@linqapp/sdk 0.28.0 → 0.28.2

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.
Files changed (147) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/client.d.mts +59 -9
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +59 -9
  5. package/client.d.ts.map +1 -1
  6. package/client.js +63 -5
  7. package/client.js.map +1 -1
  8. package/client.mjs +64 -6
  9. package/client.mjs.map +1 -1
  10. package/internal/qs/formats.d.mts +7 -0
  11. package/internal/qs/formats.d.mts.map +1 -0
  12. package/internal/qs/formats.d.ts +7 -0
  13. package/internal/qs/formats.d.ts.map +1 -0
  14. package/internal/qs/formats.js +13 -0
  15. package/internal/qs/formats.js.map +1 -0
  16. package/internal/qs/formats.mjs +9 -0
  17. package/internal/qs/formats.mjs.map +1 -0
  18. package/internal/qs/index.d.mts +10 -0
  19. package/internal/qs/index.d.mts.map +1 -0
  20. package/internal/qs/index.d.ts +10 -0
  21. package/internal/qs/index.d.ts.map +1 -0
  22. package/internal/qs/index.js +14 -0
  23. package/internal/qs/index.js.map +1 -0
  24. package/internal/qs/index.mjs +10 -0
  25. package/internal/qs/index.mjs.map +1 -0
  26. package/internal/qs/stringify.d.mts +3 -0
  27. package/internal/qs/stringify.d.mts.map +1 -0
  28. package/internal/qs/stringify.d.ts +3 -0
  29. package/internal/qs/stringify.d.ts.map +1 -0
  30. package/internal/qs/stringify.js +277 -0
  31. package/internal/qs/stringify.js.map +1 -0
  32. package/internal/qs/stringify.mjs +274 -0
  33. package/internal/qs/stringify.mjs.map +1 -0
  34. package/internal/qs/types.d.mts +57 -0
  35. package/internal/qs/types.d.mts.map +1 -0
  36. package/internal/qs/types.d.ts +57 -0
  37. package/internal/qs/types.d.ts.map +1 -0
  38. package/internal/qs/types.js +3 -0
  39. package/internal/qs/types.js.map +1 -0
  40. package/internal/qs/types.mjs +2 -0
  41. package/internal/qs/types.mjs.map +1 -0
  42. package/internal/qs/utils.d.mts +15 -0
  43. package/internal/qs/utils.d.mts.map +1 -0
  44. package/internal/qs/utils.d.ts +15 -0
  45. package/internal/qs/utils.d.ts.map +1 -0
  46. package/internal/qs/utils.js +230 -0
  47. package/internal/qs/utils.js.map +1 -0
  48. package/internal/qs/utils.mjs +217 -0
  49. package/internal/qs/utils.mjs.map +1 -0
  50. package/internal/tslib.js +17 -17
  51. package/internal/utils/query.d.mts +0 -3
  52. package/internal/utils/query.d.mts.map +1 -1
  53. package/internal/utils/query.d.ts +0 -3
  54. package/internal/utils/query.d.ts.map +1 -1
  55. package/internal/utils/query.js +3 -16
  56. package/internal/utils/query.js.map +1 -1
  57. package/internal/utils/query.mjs +2 -16
  58. package/internal/utils/query.mjs.map +1 -1
  59. package/package.json +1 -1
  60. package/resources/attachments.d.mts +1 -1
  61. package/resources/attachments.d.ts +1 -1
  62. package/resources/attachments.js +1 -1
  63. package/resources/attachments.mjs +1 -1
  64. package/resources/available-number.d.mts +58 -0
  65. package/resources/available-number.d.mts.map +1 -0
  66. package/resources/available-number.d.ts +58 -0
  67. package/resources/available-number.d.ts.map +1 -0
  68. package/resources/available-number.js +36 -0
  69. package/resources/available-number.js.map +1 -0
  70. package/resources/available-number.mjs +32 -0
  71. package/resources/available-number.mjs.map +1 -0
  72. package/resources/chats/chats.d.mts +59 -11
  73. package/resources/chats/chats.d.mts.map +1 -1
  74. package/resources/chats/chats.d.ts +59 -11
  75. package/resources/chats/chats.d.ts.map +1 -1
  76. package/resources/chats/chats.js.map +1 -1
  77. package/resources/chats/chats.mjs.map +1 -1
  78. package/resources/chats/location.d.mts +9 -8
  79. package/resources/chats/location.d.mts.map +1 -1
  80. package/resources/chats/location.d.ts +9 -8
  81. package/resources/chats/location.d.ts.map +1 -1
  82. package/resources/chats/location.js +9 -8
  83. package/resources/chats/location.js.map +1 -1
  84. package/resources/chats/location.mjs +9 -8
  85. package/resources/chats/location.mjs.map +1 -1
  86. package/resources/chats/messages.d.mts +84 -6
  87. package/resources/chats/messages.d.mts.map +1 -1
  88. package/resources/chats/messages.d.ts +84 -6
  89. package/resources/chats/messages.d.ts.map +1 -1
  90. package/resources/chats/messages.js +40 -0
  91. package/resources/chats/messages.js.map +1 -1
  92. package/resources/chats/messages.mjs +40 -0
  93. package/resources/chats/messages.mjs.map +1 -1
  94. package/resources/contact-card.d.mts +1 -2
  95. package/resources/contact-card.d.mts.map +1 -1
  96. package/resources/contact-card.d.ts +1 -2
  97. package/resources/contact-card.d.ts.map +1 -1
  98. package/resources/index.d.mts +3 -2
  99. package/resources/index.d.mts.map +1 -1
  100. package/resources/index.d.ts +3 -2
  101. package/resources/index.d.ts.map +1 -1
  102. package/resources/index.js +3 -1
  103. package/resources/index.js.map +1 -1
  104. package/resources/index.mjs +2 -1
  105. package/resources/index.mjs.map +1 -1
  106. package/resources/messages.d.mts +400 -7
  107. package/resources/messages.d.mts.map +1 -1
  108. package/resources/messages.d.ts +400 -7
  109. package/resources/messages.d.ts.map +1 -1
  110. package/resources/messages.js +148 -0
  111. package/resources/messages.js.map +1 -1
  112. package/resources/messages.mjs +148 -0
  113. package/resources/messages.mjs.map +1 -1
  114. package/resources/phone-numbers.d.mts +68 -23
  115. package/resources/phone-numbers.d.mts.map +1 -1
  116. package/resources/phone-numbers.d.ts +68 -23
  117. package/resources/phone-numbers.d.ts.map +1 -1
  118. package/resources/phone-numbers.js +23 -0
  119. package/resources/phone-numbers.js.map +1 -1
  120. package/resources/phone-numbers.mjs +23 -0
  121. package/resources/phone-numbers.mjs.map +1 -1
  122. package/resources/webhooks.d.mts +14 -14
  123. package/resources/webhooks.d.ts +14 -14
  124. package/src/client.ts +94 -8
  125. package/src/internal/qs/LICENSE.md +13 -0
  126. package/src/internal/qs/README.md +3 -0
  127. package/src/internal/qs/formats.ts +10 -0
  128. package/src/internal/qs/index.ts +13 -0
  129. package/src/internal/qs/stringify.ts +385 -0
  130. package/src/internal/qs/types.ts +71 -0
  131. package/src/internal/qs/utils.ts +265 -0
  132. package/src/internal/utils/query.ts +2 -18
  133. package/src/resources/attachments.ts +1 -1
  134. package/src/resources/available-number.ts +72 -0
  135. package/src/resources/chats/chats.ts +64 -12
  136. package/src/resources/chats/location.ts +9 -8
  137. package/src/resources/chats/messages.ts +87 -6
  138. package/src/resources/contact-card.ts +1 -2
  139. package/src/resources/index.ts +15 -1
  140. package/src/resources/messages.ts +453 -6
  141. package/src/resources/phone-numbers.ts +85 -23
  142. package/src/resources/webhooks.ts +14 -14
  143. package/src/version.ts +1 -1
  144. package/version.d.mts +1 -1
  145. package/version.d.ts +1 -1
  146. package/version.js +1 -1
  147. package/version.mjs +1 -1
@@ -1,5 +1,7 @@
1
1
  import { APIResource } from "../core/resource.mjs";
2
2
  import * as Shared from "./shared.mjs";
3
+ import * as ChatsAPI from "./chats/chats.mjs";
4
+ import * as ChatsMessagesAPI from "./chats/messages.mjs";
3
5
  import { APIPromise } from "../core/api-promise.mjs";
4
6
  import { ListMessagesPagination, type ListMessagesPaginationParams, PagePromise } from "../core/pagination.mjs";
5
7
  import { RequestOptions } from "../internal/request-options.mjs";
@@ -22,8 +24,107 @@ import { RequestOptions } from "../internal/request-options.mjs";
22
24
  * **Limitations:**
23
25
  * - A `link` part cannot be combined with other parts in the same message.
24
26
  * - Maximum URL length: 2,048 characters.
27
+ *
28
+ * ## Ephemeral Messages (Privacy Tier)
29
+ *
30
+ * For regulated or sensitive conversations, opt in to the **ephemeral messages** tier by contacting your Linq support contact. When enabled, every message on the covered phone numbers is automatically given a fixed **24-hour retention window** — after that window the platform permanently deletes the message from Linq storage. There is no per-message flag; ephemerality is applied automatically based on your configuration.
31
+ *
32
+ * You can request it at two scopes:
33
+ *
34
+ * | Scope | Effect |
35
+ * |---|---|
36
+ * | **Partner-wide** | Every outbound and inbound message on every phone number under your account is retained for 24 hours, then deleted. |
37
+ * | **Per phone number** | Only the specified phone numbers have their messages auto-deleted. The rest follow the standard message-retention policy. |
38
+ *
39
+ * **Behavioral differences vs the standard default:**
40
+ *
41
+ * | Aspect | Standard | Ephemeral |
42
+ * |---|---|---|
43
+ * | Retention | Retained per the standard message-retention policy | **Hard backstop: 24 hours** from when the message is created |
44
+ * | After expiry | Message stays retrievable | Message is permanently deleted — `GET /v3/messages/{messageId}` returns `404` and it no longer appears in `GET /v3/chats/{chatId}/messages` |
45
+ * | Content on expiry | N/A | Text, formatting, and attachment references are scrubbed; the message is gone, not blanked out |
46
+ * | Cross-partner isolation | Enforced | Enforced |
47
+ *
48
+ * **How the 24-hour window works:**
49
+ *
50
+ * - The window is fixed at **24 hours from message creation** (`created_at`) and cannot be configured per message.
51
+ * - It mirrors the ephemeral *attachments* 1-day backstop, so a message and any media it carries expire together.
52
+ * - Expiry is delivery-independent — the clock starts when the message is created, not when it is delivered or read.
53
+ *
54
+ * **What you observe:**
55
+ *
56
+ * - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
57
+ * - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
58
+ * - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
59
+ *
60
+ * **When to choose ephemeral:**
61
+ *
62
+ * - You have a compliance requirement that the platform must not retain message content beyond a short window.
63
+ * - The conversation is high-sensitivity (PHI, financial, identity verification) and you do not want it sitting in storage long-term.
64
+ * - Your application is the system of record — you capture what you need from the delivery webhook in real time and do not rely on reading message history back from Linq later.
65
+ *
66
+ * **Important:** ephemeral applies in *both directions* — messages you send **and** messages received by the phone numbers in that scope. Because Linq can no longer return the message after 24 hours, persist anything you need to keep from the webhook payload at the time it is delivered.
25
67
  */
26
68
  export declare class Messages extends APIResource {
69
+ /**
70
+ * Send a message to one or more recipients **without supplying a `from` number**.
71
+ * Linq resolves both the sending line and the target chat for you, then returns
72
+ * exactly which line was used, which chat the message landed in, whether a new
73
+ * chat was created, and every resulting message id.
74
+ *
75
+ * This fuses "create chat" and "send message" behind a single message-centric
76
+ * resource. Provide only the recipients (`to`) and the `message`; the platform
77
+ * decides the rest.
78
+ *
79
+ * ## How the from-number and chat are chosen
80
+ *
81
+ * - **Reuse** — if a chat with exactly these recipients already exists and the
82
+ * line it lives on is healthy, the message is sent into that chat on its
83
+ * existing line (`from_selection.reason = reused_active_chat`).
84
+ * - **New** — if no such chat exists, a new chat is created on the best available
85
+ * line (`from_selection.reason = new_best_number`).
86
+ * - **Failover** — if a matching chat exists but its line has been flagged, a
87
+ * **new** chat is created on a fresh best line and the flagged chat is abandoned
88
+ * (`from_selection.reason = failover_flagged`, `previous_chat_id` set). If you
89
+ * supply `continuation_message`, that text is sent as the single message INSTEAD
90
+ * of `message` (useful as a fresh-number-appropriate opener). Exactly one
91
+ * message is sent either way.
92
+ *
93
+ * Recipients (`to`) are an order-independent set: a single handle is a direct
94
+ * chat, multiple handles a group chat.
95
+ *
96
+ * ## Differences from POST /v3/chats
97
+ *
98
+ * - The first message **may contain a link** (including for a newly created chat).
99
+ * Note: sending a link as the very first message on a freshly selected line can
100
+ * elevate that line's flagging risk — it is allowed, not recommended.
101
+ * - Voice memos are **not** supported here. To send an iMessage voice-memo bubble,
102
+ * use `POST /v3/chats/{chatId}/voicememo` with a known chat id.
103
+ *
104
+ * ## Service preference, effects, decorations
105
+ *
106
+ * Set `message.preferred_service` (`iMessage` | `RCS` | `SMS`), `message.effect`,
107
+ * and per-part `text_decorations` exactly as on the other send endpoints.
108
+ *
109
+ * Always responds `202 Accepted` — chat creation is incidental to the send.
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * const message = await client.messages.create({
114
+ * message: {
115
+ * parts: [
116
+ * {
117
+ * type: 'text',
118
+ * value:
119
+ * 'Hi! Thanks for reaching out — how can we help?',
120
+ * },
121
+ * ],
122
+ * },
123
+ * to: ['+14155559876'],
124
+ * });
125
+ * ```
126
+ */
127
+ create(params: MessageCreateParams, options?: RequestOptions): APIPromise<MessageCreateResponse>;
27
128
  /**
28
129
  * Retrieve all messages in a conversation thread. Given any message ID in the
29
130
  * thread, returns the originator message and all replies in chronological order.
@@ -105,6 +206,43 @@ export declare class Messages extends APIResource {
105
206
  * ```
106
207
  */
107
208
  update(messageID: string, body: MessageUpdateParams, options?: RequestOptions): APIPromise<Message>;
209
+ /**
210
+ * Replaces a previously delivered `imessage_app` card on the recipient's screen
211
+ * with new content, instead of posting a new bubble (like a game move redrawing
212
+ * the board).
213
+ *
214
+ * The update is delivered as a **new message** with its own id and delivery
215
+ * lifecycle (`message.sent` / `message.delivered` / `message.failed` webhooks fire
216
+ * for the new id). To update the card again, reference the message id returned by
217
+ * this call.
218
+ *
219
+ * Constraints:
220
+ *
221
+ * - The referenced message must be an `imessage_app` card sent by you (`400`
222
+ * otherwise — inbound cards cannot be updated).
223
+ * - The referenced card must already be delivered (`409` otherwise — retry after
224
+ * the `message.delivered` webhook for it).
225
+ * - The app identity (`team_id`, `bundle_id`, name) is inherited from the original
226
+ * card and cannot change; only `url`, `fallback_text`, and `layout` are
227
+ * replaced.
228
+ * - iMessage-only, like all app cards.
229
+ * - Concurrent updates against the same card are not serialized server-side; the
230
+ * last one delivered wins on the recipient's screen. Serialize updates by always
231
+ * referencing the message id returned by the previous call.
232
+ *
233
+ * @example
234
+ * ```ts
235
+ * const response = await client.messages.updateAppCard(
236
+ * '69a37c7d-af4f-4b5e-af42-e28e98ce873a',
237
+ * {
238
+ * layout: { caption: 'Score: 2 – 1' },
239
+ * fallback_text: 'Score update',
240
+ * url: 'https://app.example.com/card?game=7f3a&move=2',
241
+ * },
242
+ * );
243
+ * ```
244
+ */
245
+ updateAppCard(messageID: string, body: MessageUpdateAppCardParams, options?: RequestOptions): APIPromise<MessageUpdateAppCardResponse>;
108
246
  }
109
247
  export type MessagesListMessagesPagination = ListMessagesPagination<Message>;
110
248
  export interface Message {
@@ -196,9 +334,19 @@ export declare namespace Message {
196
334
  app: IMessageAppPartResponse.App;
197
335
  /**
198
336
  * Visible layout of the card. At least one of `caption`, `subcaption`,
199
- * `trailing_caption`, or `trailing_subcaption` must be set, otherwise the card
200
- * renders as an empty bubble. Any image on the card is drawn by the recipient's
201
- * installed app extension; it cannot be supplied here.
337
+ * `trailing_caption`, `trailing_subcaption`, or `image_url` must be set, otherwise
338
+ * the card renders as an empty bubble.
339
+ *
340
+ * `image_url` displays a preview image at the top of the card. The image renders
341
+ * on the recipient's card whether or not they have your app installed. The small
342
+ * icon beside the caption is the app's own icon and is not settable here.
343
+ *
344
+ * `* Note - requires a trusted chat w/ inbound activity`
345
+ *
346
+ * `image_title` and `image_subtitle` render as text overlaid on the image (title
347
+ * bold, subtitle beneath it). They only appear when `image_url` is set — without
348
+ * an image there is nothing to overlay — so setting either without `image_url` is
349
+ * rejected.
202
350
  */
203
351
  layout: IMessageAppPartResponse.Layout;
204
352
  /**
@@ -243,15 +391,43 @@ export declare namespace Message {
243
391
  }
244
392
  /**
245
393
  * Visible layout of the card. At least one of `caption`, `subcaption`,
246
- * `trailing_caption`, or `trailing_subcaption` must be set, otherwise the card
247
- * renders as an empty bubble. Any image on the card is drawn by the recipient's
248
- * installed app extension; it cannot be supplied here.
394
+ * `trailing_caption`, `trailing_subcaption`, or `image_url` must be set, otherwise
395
+ * the card renders as an empty bubble.
396
+ *
397
+ * `image_url` displays a preview image at the top of the card. The image renders
398
+ * on the recipient's card whether or not they have your app installed. The small
399
+ * icon beside the caption is the app's own icon and is not settable here.
400
+ *
401
+ * `* Note - requires a trusted chat w/ inbound activity`
402
+ *
403
+ * `image_title` and `image_subtitle` render as text overlaid on the image (title
404
+ * bold, subtitle beneath it). They only appear when `image_url` is set — without
405
+ * an image there is nothing to overlay — so setting either without `image_url` is
406
+ * rejected.
249
407
  */
250
408
  interface Layout {
251
409
  /**
252
410
  * Primary label, top-left and bold.
253
411
  */
254
412
  caption?: string;
413
+ /**
414
+ * Text shown below `image_title`, overlaid on the card image. Requires
415
+ * `image_url`.
416
+ */
417
+ image_subtitle?: string;
418
+ /**
419
+ * Bold text overlaid on the card image. Requires `image_url` (rejected without
420
+ * it).
421
+ */
422
+ image_title?: string;
423
+ /**
424
+ * URL of an image (JPEG, PNG, HEIF, or WebP) to display as the card's preview
425
+ * image; an unreachable or non-image URL returns a validation error. Renders for
426
+ * all recipients regardless of whether they have the app. Note - requires a
427
+ * trusted chat w/ inbound activity. In responses, this is the re-hosted
428
+ * `cdn.linqapp.com` copy of the image you supplied, not your original URL.
429
+ */
430
+ image_url?: string;
255
431
  /**
256
432
  * Secondary label, below `caption` on the left.
257
433
  */
@@ -299,11 +475,134 @@ export interface ReplyTo {
299
475
  */
300
476
  part_index?: number;
301
477
  }
478
+ /**
479
+ * Result of an auto-from send. Self-describing: which line was used, which chat
480
+ * the message landed in, whether a new chat was created, and the resulting message
481
+ * id(s).
482
+ */
483
+ export interface MessageCreateResponse {
484
+ /**
485
+ * The resolved chat (reused or newly created) the message landed in.
486
+ */
487
+ chat_id: string;
488
+ /**
489
+ * True when a new chat was created (new or failover), false on reuse.
490
+ */
491
+ created_new_chat: boolean;
492
+ /**
493
+ * The line (E.164) the message was actually sent from.
494
+ */
495
+ from: string;
496
+ /**
497
+ * Why this line/chat was chosen.
498
+ */
499
+ from_selection: MessageCreateResponse.FromSelection;
500
+ /**
501
+ * Participants of the resolved chat.
502
+ */
503
+ handles: Array<Shared.ChatHandle>;
504
+ /**
505
+ * Whether the resolved chat is a group chat.
506
+ */
507
+ is_group: boolean;
508
+ /**
509
+ * A message that was sent (used in CreateChat and SendMessage responses)
510
+ */
511
+ message: ChatsMessagesAPI.SentMessage;
512
+ /**
513
+ * Messaging service type
514
+ */
515
+ service: Shared.ServiceType;
516
+ /**
517
+ * Set ONLY on `failover_flagged`: the abandoned flagged chat that was NOT sent
518
+ * into. Null otherwise.
519
+ */
520
+ previous_chat_id?: string | null;
521
+ }
522
+ export declare namespace MessageCreateResponse {
523
+ /**
524
+ * Why this line/chat was chosen.
525
+ */
526
+ interface FromSelection {
527
+ /**
528
+ * - `reused_active_chat` — reused an existing chat on its healthy line
529
+ * - `new_best_number` — created a new chat on the best available line
530
+ * - `failover_flagged` — prior chat's line was flagged; created a new chat on a
531
+ * fresh line
532
+ */
533
+ reason: 'reused_active_chat' | 'new_best_number' | 'failover_flagged';
534
+ /**
535
+ * True only when an existing chat was reused.
536
+ */
537
+ reused_existing_chat: boolean;
538
+ }
539
+ }
302
540
  export interface MessageAddReactionResponse {
303
541
  message?: string;
304
542
  status?: string;
305
543
  trace_id?: string;
306
544
  }
545
+ /**
546
+ * Response for sending a message to a chat
547
+ */
548
+ export interface MessageUpdateAppCardResponse {
549
+ /**
550
+ * Unique identifier of the chat this message was sent to
551
+ */
552
+ chat_id: string;
553
+ /**
554
+ * A message that was sent (used in CreateChat and SendMessage responses)
555
+ */
556
+ message: ChatsMessagesAPI.SentMessage;
557
+ }
558
+ export interface MessageCreateParams {
559
+ /**
560
+ * Body param: Message content container. Groups all message-related fields
561
+ * together, separating the "what" (message content) from the "where" (routing
562
+ * fields like from/to).
563
+ */
564
+ message: ChatsAPI.MessageContent;
565
+ /**
566
+ * Body param: Recipient handles (E.164 phone numbers or email addresses). One
567
+ * handle is a direct chat; multiple handles a group chat. Order-independent — the
568
+ * set identifies the chat.
569
+ */
570
+ to: Array<string>;
571
+ /**
572
+ * Body param: Text-only fallback that **replaces** `message` ONLY on the failover
573
+ * branch — when a chat with these recipients already existed but its line was
574
+ * flagged, so a new chat is created on a fresh line. On that branch this text is
575
+ * sent as the single message instead of `message` (the recipient is on a new
576
+ * number, so you typically want a fresh-number-appropriate opener rather than the
577
+ * original content). Ignored otherwise (a healthy reuse, or genuine first
578
+ * contact). Carries no parts, media, or effects — exactly one message is ever
579
+ * sent.
580
+ */
581
+ continuation_message?: MessageCreateParams.ContinuationMessage;
582
+ /**
583
+ * Header param: Optional idempotency key for the send. Reuse the same key to
584
+ * safely retry without sending twice. May also be supplied as
585
+ * `message.idempotency_key`.
586
+ */
587
+ 'Idempotency-Key'?: string;
588
+ }
589
+ export declare namespace MessageCreateParams {
590
+ /**
591
+ * Text-only fallback that **replaces** `message` ONLY on the failover branch —
592
+ * when a chat with these recipients already existed but its line was flagged, so a
593
+ * new chat is created on a fresh line. On that branch this text is sent as the
594
+ * single message instead of `message` (the recipient is on a new number, so you
595
+ * typically want a fresh-number-appropriate opener rather than the original
596
+ * content). Ignored otherwise (a healthy reuse, or genuine first contact). Carries
597
+ * no parts, media, or effects — exactly one message is ever sent.
598
+ */
599
+ interface ContinuationMessage {
600
+ /**
601
+ * The replacement message text, sent as the single message on failover.
602
+ */
603
+ text: string;
604
+ }
605
+ }
307
606
  export interface MessageListMessagesThreadParams extends ListMessagesPaginationParams {
308
607
  /**
309
608
  * Sort order for messages (asc = oldest first, desc = newest first)
@@ -342,7 +641,101 @@ export interface MessageUpdateParams {
342
641
  */
343
642
  part_index?: number;
344
643
  }
644
+ export interface MessageUpdateAppCardParams {
645
+ /**
646
+ * Visible layout of the card. At least one of `caption`, `subcaption`,
647
+ * `trailing_caption`, `trailing_subcaption`, or `image_url` must be set, otherwise
648
+ * the card renders as an empty bubble.
649
+ *
650
+ * `image_url` displays a preview image at the top of the card. The image renders
651
+ * on the recipient's card whether or not they have your app installed. The small
652
+ * icon beside the caption is the app's own icon and is not settable here.
653
+ *
654
+ * `* Note - requires a trusted chat w/ inbound activity`
655
+ *
656
+ * `image_title` and `image_subtitle` render as text overlaid on the image (title
657
+ * bold, subtitle beneath it). They only appear when `image_url` is set — without
658
+ * an image there is nothing to overlay — so setting either without `image_url` is
659
+ * rejected.
660
+ */
661
+ layout: MessageUpdateAppCardParams.Layout;
662
+ /**
663
+ * Text shown on surfaces that cannot render the card (notifications, lock screen).
664
+ * Defaults to the caption when omitted.
665
+ */
666
+ fallback_text?: string;
667
+ /**
668
+ * Whether the updated card renders as your app's interactive balloon for
669
+ * recipients who have your iMessage app installed. `true` (default) lets your
670
+ * installed extension draw its live view; `false` always shows the static `layout`
671
+ * card. Recipients without your app always see the static card regardless of this
672
+ * flag.
673
+ *
674
+ * Defaults to `true` when omitted — it is **not** inherited from the original
675
+ * card. To keep a card static across updates, re-send `interactive: false` on each
676
+ * update.
677
+ */
678
+ interactive?: boolean;
679
+ /**
680
+ * URL the recipient's app opens when they tap the updated card.
681
+ */
682
+ url?: string;
683
+ }
684
+ export declare namespace MessageUpdateAppCardParams {
685
+ /**
686
+ * Visible layout of the card. At least one of `caption`, `subcaption`,
687
+ * `trailing_caption`, `trailing_subcaption`, or `image_url` must be set, otherwise
688
+ * the card renders as an empty bubble.
689
+ *
690
+ * `image_url` displays a preview image at the top of the card. The image renders
691
+ * on the recipient's card whether or not they have your app installed. The small
692
+ * icon beside the caption is the app's own icon and is not settable here.
693
+ *
694
+ * `* Note - requires a trusted chat w/ inbound activity`
695
+ *
696
+ * `image_title` and `image_subtitle` render as text overlaid on the image (title
697
+ * bold, subtitle beneath it). They only appear when `image_url` is set — without
698
+ * an image there is nothing to overlay — so setting either without `image_url` is
699
+ * rejected.
700
+ */
701
+ interface Layout {
702
+ /**
703
+ * Primary label, top-left and bold.
704
+ */
705
+ caption?: string;
706
+ /**
707
+ * Text shown below `image_title`, overlaid on the card image. Requires
708
+ * `image_url`.
709
+ */
710
+ image_subtitle?: string;
711
+ /**
712
+ * Bold text overlaid on the card image. Requires `image_url` (rejected without
713
+ * it).
714
+ */
715
+ image_title?: string;
716
+ /**
717
+ * URL of an image (JPEG, PNG, HEIF, or WebP) to display as the card's preview
718
+ * image; an unreachable or non-image URL returns a validation error. Renders for
719
+ * all recipients regardless of whether they have the app. Note - requires a
720
+ * trusted chat w/ inbound activity. In responses, this is the re-hosted
721
+ * `cdn.linqapp.com` copy of the image you supplied, not your original URL.
722
+ */
723
+ image_url?: string;
724
+ /**
725
+ * Secondary label, below `caption` on the left.
726
+ */
727
+ subcaption?: string;
728
+ /**
729
+ * Label shown top-right.
730
+ */
731
+ trailing_caption?: string;
732
+ /**
733
+ * Label shown below `trailing_caption`, on the right.
734
+ */
735
+ trailing_subcaption?: string;
736
+ }
737
+ }
345
738
  export declare namespace Messages {
346
- export { type Message as Message, type MessageEffect as MessageEffect, type ReplyTo as ReplyTo, type MessageAddReactionResponse as MessageAddReactionResponse, type MessagesListMessagesPagination as MessagesListMessagesPagination, type MessageListMessagesThreadParams as MessageListMessagesThreadParams, type MessageAddReactionParams as MessageAddReactionParams, type MessageUpdateParams as MessageUpdateParams, };
739
+ export { type Message as Message, type MessageEffect as MessageEffect, type ReplyTo as ReplyTo, type MessageCreateResponse as MessageCreateResponse, type MessageAddReactionResponse as MessageAddReactionResponse, type MessageUpdateAppCardResponse as MessageUpdateAppCardResponse, type MessagesListMessagesPagination as MessagesListMessagesPagination, type MessageCreateParams as MessageCreateParams, type MessageListMessagesThreadParams as MessageListMessagesThreadParams, type MessageAddReactionParams as MessageAddReactionParams, type MessageUpdateParams as MessageUpdateParams, type MessageUpdateAppCardParams as MessageUpdateAppCardParams, };
347
740
  }
348
741
  //# sourceMappingURL=messages.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.mts","sourceRoot":"","sources":["../src/resources/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.mts","sourceRoot":"","sources":["../src/resources/messages.ts"],"names":[],"mappings":"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"}