@linqapp/sdk 0.1.0 → 0.1.4

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 (231) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/LICENSE +198 -4
  3. package/README.md +52 -52
  4. package/client.d.mts +35 -22
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +35 -22
  7. package/client.d.ts.map +1 -1
  8. package/client.js +50 -41
  9. package/client.js.map +1 -1
  10. package/client.mjs +49 -40
  11. package/client.mjs.map +1 -1
  12. package/core/api-promise.d.mts +2 -2
  13. package/core/api-promise.d.mts.map +1 -1
  14. package/core/api-promise.d.ts +2 -2
  15. package/core/api-promise.d.ts.map +1 -1
  16. package/core/api-promise.js.map +1 -1
  17. package/core/api-promise.mjs.map +1 -1
  18. package/core/error.d.mts +2 -2
  19. package/core/error.d.mts.map +1 -1
  20. package/core/error.d.ts +2 -2
  21. package/core/error.d.ts.map +1 -1
  22. package/core/error.js +4 -4
  23. package/core/error.js.map +1 -1
  24. package/core/error.mjs +2 -2
  25. package/core/error.mjs.map +1 -1
  26. package/core/resource.d.mts +3 -3
  27. package/core/resource.d.mts.map +1 -1
  28. package/core/resource.d.ts +3 -3
  29. package/core/resource.d.ts.map +1 -1
  30. package/core/resource.js.map +1 -1
  31. package/core/resource.mjs.map +1 -1
  32. package/index.d.mts +3 -3
  33. package/index.d.mts.map +1 -1
  34. package/index.d.ts +3 -3
  35. package/index.d.ts.map +1 -1
  36. package/index.js +4 -4
  37. package/index.js.map +1 -1
  38. package/index.mjs +3 -3
  39. package/index.mjs.map +1 -1
  40. package/internal/parse.d.mts +2 -2
  41. package/internal/parse.d.mts.map +1 -1
  42. package/internal/parse.d.ts +2 -2
  43. package/internal/parse.d.ts.map +1 -1
  44. package/internal/parse.js.map +1 -1
  45. package/internal/parse.mjs.map +1 -1
  46. package/internal/shims.js +1 -1
  47. package/internal/shims.js.map +1 -1
  48. package/internal/shims.mjs +1 -1
  49. package/internal/shims.mjs.map +1 -1
  50. package/internal/tslib.js +6 -6
  51. package/internal/uploads.d.mts +4 -4
  52. package/internal/uploads.d.mts.map +1 -1
  53. package/internal/uploads.d.ts +4 -4
  54. package/internal/uploads.d.ts.map +1 -1
  55. package/internal/uploads.js.map +1 -1
  56. package/internal/uploads.mjs.map +1 -1
  57. package/internal/utils/base64.js +2 -2
  58. package/internal/utils/base64.js.map +1 -1
  59. package/internal/utils/base64.mjs +3 -3
  60. package/internal/utils/base64.mjs.map +1 -1
  61. package/internal/utils/log.d.mts +3 -3
  62. package/internal/utils/log.d.mts.map +1 -1
  63. package/internal/utils/log.d.ts +3 -3
  64. package/internal/utils/log.d.ts.map +1 -1
  65. package/internal/utils/log.js.map +1 -1
  66. package/internal/utils/log.mjs.map +1 -1
  67. package/internal/utils/path.js +1 -1
  68. package/internal/utils/path.js.map +1 -1
  69. package/internal/utils/path.mjs +2 -2
  70. package/internal/utils/path.mjs.map +1 -1
  71. package/internal/utils/values.js +5 -5
  72. package/internal/utils/values.js.map +1 -1
  73. package/internal/utils/values.mjs +6 -6
  74. package/internal/utils/values.mjs.map +1 -1
  75. package/package.json +4 -4
  76. package/resources/attachments.d.mts +28 -3
  77. package/resources/attachments.d.mts.map +1 -1
  78. package/resources/attachments.d.ts +28 -3
  79. package/resources/attachments.d.ts.map +1 -1
  80. package/resources/capability.d.mts +74 -0
  81. package/resources/capability.d.mts.map +1 -0
  82. package/resources/capability.d.ts +74 -0
  83. package/resources/capability.d.ts.map +1 -0
  84. package/resources/capability.js +36 -0
  85. package/resources/capability.js.map +1 -0
  86. package/resources/capability.mjs +32 -0
  87. package/resources/capability.mjs.map +1 -0
  88. package/resources/chats/chats.d.mts +129 -663
  89. package/resources/chats/chats.d.mts.map +1 -1
  90. package/resources/chats/chats.d.ts +129 -663
  91. package/resources/chats/chats.d.ts.map +1 -1
  92. package/resources/chats/chats.js +2 -2
  93. package/resources/chats/chats.js.map +1 -1
  94. package/resources/chats/chats.mjs +2 -2
  95. package/resources/chats/chats.mjs.map +1 -1
  96. package/resources/chats/index.d.mts +2 -2
  97. package/resources/chats/index.d.mts.map +1 -1
  98. package/resources/chats/index.d.ts +2 -2
  99. package/resources/chats/index.d.ts.map +1 -1
  100. package/resources/chats/index.js.map +1 -1
  101. package/resources/chats/index.mjs.map +1 -1
  102. package/resources/chats/messages.d.mts +56 -716
  103. package/resources/chats/messages.d.mts.map +1 -1
  104. package/resources/chats/messages.d.ts +56 -716
  105. package/resources/chats/messages.d.ts.map +1 -1
  106. package/resources/chats/messages.js.map +1 -1
  107. package/resources/chats/messages.mjs.map +1 -1
  108. package/resources/index.d.mts +9 -5
  109. package/resources/index.d.mts.map +1 -1
  110. package/resources/index.d.ts +9 -5
  111. package/resources/index.d.ts.map +1 -1
  112. package/resources/index.js +11 -3
  113. package/resources/index.js.map +1 -1
  114. package/resources/index.mjs +6 -2
  115. package/resources/index.mjs.map +1 -1
  116. package/resources/messages.d.mts +156 -544
  117. package/resources/messages.d.mts.map +1 -1
  118. package/resources/messages.d.ts +156 -544
  119. package/resources/messages.d.ts.map +1 -1
  120. package/resources/messages.js +1 -1
  121. package/resources/messages.js.map +1 -1
  122. package/resources/messages.mjs +1 -1
  123. package/resources/messages.mjs.map +1 -1
  124. package/resources/phone-numbers.d.mts +1 -50
  125. package/resources/phone-numbers.d.mts.map +1 -1
  126. package/resources/phone-numbers.d.ts +1 -50
  127. package/resources/phone-numbers.d.ts.map +1 -1
  128. package/resources/phone-numbers.js +0 -8
  129. package/resources/phone-numbers.js.map +1 -1
  130. package/resources/phone-numbers.mjs +0 -8
  131. package/resources/phone-numbers.mjs.map +1 -1
  132. package/resources/phonenumbers.d.mts +58 -0
  133. package/resources/phonenumbers.d.mts.map +1 -0
  134. package/resources/phonenumbers.d.ts +58 -0
  135. package/resources/phonenumbers.d.ts.map +1 -0
  136. package/resources/phonenumbers.js +17 -0
  137. package/resources/phonenumbers.js.map +1 -0
  138. package/resources/phonenumbers.mjs +13 -0
  139. package/resources/phonenumbers.mjs.map +1 -0
  140. package/resources/shared.d.mts +5 -0
  141. package/resources/shared.d.mts.map +1 -0
  142. package/resources/shared.d.ts +5 -0
  143. package/resources/shared.d.ts.map +1 -0
  144. package/resources/{webhooks.js → shared.js} +1 -3
  145. package/resources/shared.js.map +1 -0
  146. package/{src/resources/webhooks.ts → resources/shared.mjs} +2 -2
  147. package/resources/shared.mjs.map +1 -0
  148. package/resources/webhook-events.d.mts +29 -0
  149. package/resources/webhook-events.d.mts.map +1 -0
  150. package/resources/webhook-events.d.ts +29 -0
  151. package/resources/webhook-events.d.ts.map +1 -0
  152. package/resources/{webhooks/events.js → webhook-events.js} +5 -10
  153. package/resources/webhook-events.js.map +1 -0
  154. package/resources/{webhooks/events.mjs → webhook-events.mjs} +3 -8
  155. package/resources/webhook-events.mjs.map +1 -0
  156. package/resources/webhook-subscriptions.d.mts +184 -0
  157. package/resources/webhook-subscriptions.d.mts.map +1 -0
  158. package/resources/webhook-subscriptions.d.ts +184 -0
  159. package/resources/webhook-subscriptions.d.ts.map +1 -0
  160. package/resources/{webhooks/subscriptions.js → webhook-subscriptions.js} +16 -16
  161. package/resources/webhook-subscriptions.js.map +1 -0
  162. package/resources/{webhooks/subscriptions.mjs → webhook-subscriptions.mjs} +14 -14
  163. package/resources/webhook-subscriptions.mjs.map +1 -0
  164. package/src/client.ts +97 -41
  165. package/src/core/api-promise.ts +4 -4
  166. package/src/core/error.ts +2 -2
  167. package/src/core/resource.ts +3 -3
  168. package/src/index.ts +3 -3
  169. package/src/internal/parse.ts +2 -2
  170. package/src/internal/shims.ts +1 -1
  171. package/src/internal/uploads.ts +5 -5
  172. package/src/internal/utils/base64.ts +3 -3
  173. package/src/internal/utils/log.ts +3 -3
  174. package/src/internal/utils/path.ts +2 -2
  175. package/src/internal/utils/values.ts +6 -6
  176. package/src/resources/attachments.ts +81 -106
  177. package/src/resources/capability.ts +98 -0
  178. package/src/resources/chats/chats.ts +130 -771
  179. package/src/resources/chats/index.ts +3 -2
  180. package/src/resources/chats/messages.ts +61 -839
  181. package/src/resources/index.ts +29 -9
  182. package/src/resources/messages.ts +186 -642
  183. package/src/resources/phone-numbers.ts +1 -65
  184. package/src/resources/phonenumbers.ts +72 -0
  185. package/src/resources/shared.ts +6 -0
  186. package/src/resources/webhook-events.ts +57 -0
  187. package/src/resources/webhook-subscriptions.ts +238 -0
  188. package/src/version.ts +1 -1
  189. package/version.d.mts +1 -1
  190. package/version.d.ts +1 -1
  191. package/version.js +1 -1
  192. package/version.mjs +1 -1
  193. package/resources/webhooks/events.d.mts +0 -30
  194. package/resources/webhooks/events.d.mts.map +0 -1
  195. package/resources/webhooks/events.d.ts +0 -30
  196. package/resources/webhooks/events.d.ts.map +0 -1
  197. package/resources/webhooks/events.js.map +0 -1
  198. package/resources/webhooks/events.mjs.map +0 -1
  199. package/resources/webhooks/index.d.mts +0 -4
  200. package/resources/webhooks/index.d.mts.map +0 -1
  201. package/resources/webhooks/index.d.ts +0 -4
  202. package/resources/webhooks/index.d.ts.map +0 -1
  203. package/resources/webhooks/index.js +0 -11
  204. package/resources/webhooks/index.js.map +0 -1
  205. package/resources/webhooks/index.mjs +0 -5
  206. package/resources/webhooks/index.mjs.map +0 -1
  207. package/resources/webhooks/subscriptions.d.mts +0 -237
  208. package/resources/webhooks/subscriptions.d.mts.map +0 -1
  209. package/resources/webhooks/subscriptions.d.ts +0 -237
  210. package/resources/webhooks/subscriptions.d.ts.map +0 -1
  211. package/resources/webhooks/subscriptions.js.map +0 -1
  212. package/resources/webhooks/subscriptions.mjs.map +0 -1
  213. package/resources/webhooks/webhooks.d.mts +0 -14
  214. package/resources/webhooks/webhooks.d.mts.map +0 -1
  215. package/resources/webhooks/webhooks.d.ts +0 -14
  216. package/resources/webhooks/webhooks.d.ts.map +0 -1
  217. package/resources/webhooks/webhooks.js +0 -21
  218. package/resources/webhooks/webhooks.js.map +0 -1
  219. package/resources/webhooks/webhooks.mjs +0 -16
  220. package/resources/webhooks/webhooks.mjs.map +0 -1
  221. package/resources/webhooks.d.mts +0 -2
  222. package/resources/webhooks.d.mts.map +0 -1
  223. package/resources/webhooks.d.ts +0 -2
  224. package/resources/webhooks.d.ts.map +0 -1
  225. package/resources/webhooks.js.map +0 -1
  226. package/resources/webhooks.mjs +0 -3
  227. package/resources/webhooks.mjs.map +0 -1
  228. package/src/resources/webhooks/events.ts +0 -55
  229. package/src/resources/webhooks/index.ts +0 -13
  230. package/src/resources/webhooks/subscriptions.ts +0 -409
  231. package/src/resources/webhooks/webhooks.ts +0 -37
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../core/resource';
4
+ import * as Shared from './shared';
4
5
  import { APIPromise } from '../core/api-promise';
5
6
  import { buildHeaders } from '../internal/headers';
6
7
  import { RequestOptions } from '../internal/request-options';
@@ -18,7 +19,7 @@ export class Messages extends APIResource {
18
19
  * );
19
20
  * ```
20
21
  */
21
- retrieve(messageID: string, options?: RequestOptions): APIPromise<MessageRetrieveResponse> {
22
+ retrieve(messageID: string, options?: RequestOptions): APIPromise<Message> {
22
23
  return this._client.get(path`/v3/messages/${messageID}`, options);
23
24
  }
24
25
 
@@ -61,7 +62,7 @@ export class Messages extends APIResource {
61
62
  *
62
63
  * @example
63
64
  * ```ts
64
- * const response = await client.messages.addReaction(
65
+ * const reaction = await client.messages.addReaction(
65
66
  * '69a37c7d-af4f-4b5e-af42-e28e98ce873a',
66
67
  * { operation: 'add', type: 'love' },
67
68
  * );
@@ -71,7 +72,7 @@ export class Messages extends APIResource {
71
72
  messageID: string,
72
73
  body: MessageAddReactionParams,
73
74
  options?: RequestOptions,
74
- ): APIPromise<MessageAddReactionResponse> {
75
+ ): APIPromise<Reaction> {
75
76
  return this._client.post(path`/v3/messages/${messageID}/reactions`, { body, ...options });
76
77
  }
77
78
 
@@ -99,7 +100,84 @@ export class Messages extends APIResource {
99
100
  }
100
101
  }
101
102
 
102
- export interface MessageRetrieveResponse {
103
+ export interface ChatHandle {
104
+ /**
105
+ * Unique identifier for this handle
106
+ */
107
+ id: string;
108
+
109
+ /**
110
+ * Phone number (E.164) or email address of the participant
111
+ */
112
+ handle: string;
113
+
114
+ /**
115
+ * When this participant joined the chat
116
+ */
117
+ joined_at: string;
118
+
119
+ /**
120
+ * Messaging service type
121
+ */
122
+ service: Shared.ServiceType;
123
+
124
+ /**
125
+ * Whether this handle belongs to the sender (your phone number)
126
+ */
127
+ is_me?: boolean | null;
128
+
129
+ /**
130
+ * When they left (if applicable)
131
+ */
132
+ left_at?: string | null;
133
+
134
+ /**
135
+ * Participant status
136
+ */
137
+ status?: 'active' | 'left' | 'removed' | null;
138
+ }
139
+
140
+ /**
141
+ * A media attachment part
142
+ */
143
+ export interface MediaPart {
144
+ /**
145
+ * Unique attachment identifier
146
+ */
147
+ id: string;
148
+
149
+ /**
150
+ * Original filename
151
+ */
152
+ filename: string;
153
+
154
+ /**
155
+ * MIME type of the file
156
+ */
157
+ mime_type: string;
158
+
159
+ /**
160
+ * Reactions on this message part
161
+ */
162
+ reactions: Array<Reaction> | null;
163
+
164
+ /**
165
+ * File size in bytes
166
+ */
167
+ size_bytes: number;
168
+
169
+ /**
170
+ * Indicates this is a media attachment part
171
+ */
172
+ type: 'media';
173
+
174
+ /**
175
+ * Presigned URL for downloading the attachment (expires in 1 hour).
176
+ */
177
+ url: string;
178
+ }
179
+
180
+ export interface Message {
103
181
  /**
104
182
  * Unique identifier for the message
105
183
  */
@@ -143,7 +221,7 @@ export interface MessageRetrieveResponse {
143
221
  /**
144
222
  * iMessage effect applied to a message (screen or bubble effect)
145
223
  */
146
- effect?: MessageRetrieveResponse.Effect | null;
224
+ effect?: MessageEffect | null;
147
225
 
148
226
  /**
149
227
  * @deprecated DEPRECATED: Use from_handle instead. Phone number of the message
@@ -154,17 +232,17 @@ export interface MessageRetrieveResponse {
154
232
  /**
155
233
  * The sender of this message as a full handle object
156
234
  */
157
- from_handle?: MessageRetrieveResponse.FromHandle | null;
235
+ from_handle?: ChatHandle | null;
158
236
 
159
237
  /**
160
238
  * Message parts in order (text and media)
161
239
  */
162
- parts?: Array<MessageRetrieveResponse.TextPartResponse | MessageRetrieveResponse.MediaPartResponse> | null;
240
+ parts?: Array<TextPart | MediaPart> | null;
163
241
 
164
242
  /**
165
243
  * Messaging service type
166
244
  */
167
- preferred_service?: 'iMessage' | 'SMS' | 'RCS' | null;
245
+ preferred_service?: Shared.ServiceType | null;
168
246
 
169
247
  /**
170
248
  * When the message was read
@@ -174,7 +252,7 @@ export interface MessageRetrieveResponse {
174
252
  /**
175
253
  * Indicates this message is a threaded reply to another message
176
254
  */
177
- reply_to?: MessageRetrieveResponse.ReplyTo | null;
255
+ reply_to?: ReplyTo | null;
178
256
 
179
257
  /**
180
258
  * When the message was sent
@@ -184,329 +262,140 @@ export interface MessageRetrieveResponse {
184
262
  /**
185
263
  * Messaging service type
186
264
  */
187
- service?: 'iMessage' | 'SMS' | 'RCS' | null;
265
+ service?: Shared.ServiceType | null;
188
266
  }
189
267
 
190
- export namespace MessageRetrieveResponse {
268
+ /**
269
+ * iMessage effect applied to a message (screen or bubble effect)
270
+ */
271
+ export interface MessageEffect {
191
272
  /**
192
- * iMessage effect applied to a message (screen or bubble effect)
273
+ * Name of the effect. Common values:
274
+ *
275
+ * - Screen effects: confetti, fireworks, lasers, sparkles, celebration, hearts,
276
+ * love, balloons, happy_birthday, echo, spotlight
277
+ * - Bubble effects: slam, loud, gentle, invisible
193
278
  */
194
- export interface Effect {
195
- /**
196
- * Name of the effect. Common values:
197
- *
198
- * - Screen effects: confetti, fireworks, lasers, sparkles, celebration, hearts,
199
- * love, balloons, happy_birthday, echo, spotlight
200
- * - Bubble effects: slam, loud, gentle, invisible
201
- */
202
- name?: string;
203
-
204
- /**
205
- * Type of effect
206
- */
207
- type?: 'screen' | 'bubble';
208
- }
279
+ name?: string;
209
280
 
210
281
  /**
211
- * The sender of this message as a full handle object
282
+ * Type of effect
212
283
  */
213
- export interface FromHandle {
214
- /**
215
- * Unique identifier for this handle
216
- */
217
- id: string;
218
-
219
- /**
220
- * Phone number (E.164) or email address of the participant
221
- */
222
- handle: string;
223
-
224
- /**
225
- * When this participant joined the chat
226
- */
227
- joined_at: string;
228
-
229
- /**
230
- * Messaging service type
231
- */
232
- service: 'iMessage' | 'SMS' | 'RCS';
233
-
234
- /**
235
- * Whether this handle belongs to the sender (your phone number)
236
- */
237
- is_me?: boolean | null;
238
-
239
- /**
240
- * When they left (if applicable)
241
- */
242
- left_at?: string | null;
284
+ type?: 'screen' | 'bubble';
285
+ }
243
286
 
244
- /**
245
- * Participant status
246
- */
247
- status?: 'active' | 'left' | 'removed' | null;
248
- }
287
+ export interface Reaction {
288
+ handle: ChatHandle;
249
289
 
250
290
  /**
251
- * A text message part
291
+ * Whether this reaction is from the current user
252
292
  */
253
- export interface TextPartResponse {
254
- /**
255
- * Reactions on this message part
256
- */
257
- reactions: Array<TextPartResponse.Reaction> | null;
258
-
259
- /**
260
- * Indicates this is a text message part
261
- */
262
- type: 'text';
263
-
264
- /**
265
- * The text content
266
- */
267
- value: string;
268
- }
293
+ is_me: boolean;
269
294
 
270
- export namespace TextPartResponse {
271
- export interface Reaction {
272
- handle: Reaction.Handle;
273
-
274
- /**
275
- * Whether this reaction is from the current user
276
- */
277
- is_me: boolean;
278
-
279
- /**
280
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
281
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
282
- * emoji in the custom_emoji field.
283
- */
284
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
285
-
286
- /**
287
- * Custom emoji if type is "custom", null otherwise
288
- */
289
- custom_emoji?: string | null;
290
- }
291
-
292
- export namespace Reaction {
293
- export interface Handle {
294
- /**
295
- * Unique identifier for this handle
296
- */
297
- id: string;
298
-
299
- /**
300
- * Phone number (E.164) or email address of the participant
301
- */
302
- handle: string;
303
-
304
- /**
305
- * When this participant joined the chat
306
- */
307
- joined_at: string;
308
-
309
- /**
310
- * Messaging service type
311
- */
312
- service: 'iMessage' | 'SMS' | 'RCS';
313
-
314
- /**
315
- * Whether this handle belongs to the sender (your phone number)
316
- */
317
- is_me?: boolean | null;
318
-
319
- /**
320
- * When they left (if applicable)
321
- */
322
- left_at?: string | null;
323
-
324
- /**
325
- * Participant status
326
- */
327
- status?: 'active' | 'left' | 'removed' | null;
328
- }
329
- }
330
- }
295
+ /**
296
+ * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
297
+ * emphasize, question. Custom emoji reactions have type "custom" with the actual
298
+ * emoji in the custom_emoji field. Sticker reactions have type "sticker" with
299
+ * sticker attachment details in the sticker field.
300
+ */
301
+ type: ReactionType;
331
302
 
332
303
  /**
333
- * A media attachment part
304
+ * Custom emoji if type is "custom", null otherwise
334
305
  */
335
- export interface MediaPartResponse {
336
- /**
337
- * Unique attachment identifier
338
- */
339
- id: string;
306
+ custom_emoji?: string | null;
340
307
 
341
- /**
342
- * Original filename
343
- */
344
- filename: string;
308
+ /**
309
+ * Sticker attachment details when reaction_type is "sticker". Null for non-sticker
310
+ * reactions.
311
+ */
312
+ sticker?: Reaction.Sticker | null;
313
+ }
345
314
 
315
+ export namespace Reaction {
316
+ /**
317
+ * Sticker attachment details when reaction_type is "sticker". Null for non-sticker
318
+ * reactions.
319
+ */
320
+ export interface Sticker {
346
321
  /**
347
- * MIME type of the file
322
+ * Filename of the sticker
348
323
  */
349
- mime_type: string;
324
+ file_name?: string;
350
325
 
351
326
  /**
352
- * Reactions on this message part
327
+ * Sticker image height in pixels
353
328
  */
354
- reactions: Array<MediaPartResponse.Reaction> | null;
329
+ height?: number;
355
330
 
356
331
  /**
357
- * File size in bytes
332
+ * MIME type of the sticker image
358
333
  */
359
- size_bytes: number;
334
+ mime_type?: string;
360
335
 
361
336
  /**
362
- * Indicates this is a media attachment part
337
+ * Presigned URL for downloading the sticker image (expires in 1 hour).
363
338
  */
364
- type: 'media';
339
+ url?: string;
365
340
 
366
341
  /**
367
- * Presigned URL for downloading the attachment (expires in 1 hour).
342
+ * Sticker image width in pixels
368
343
  */
369
- url: string;
344
+ width?: number;
370
345
  }
346
+ }
371
347
 
372
- export namespace MediaPartResponse {
373
- export interface Reaction {
374
- handle: Reaction.Handle;
375
-
376
- /**
377
- * Whether this reaction is from the current user
378
- */
379
- is_me: boolean;
380
-
381
- /**
382
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
383
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
384
- * emoji in the custom_emoji field.
385
- */
386
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
387
-
388
- /**
389
- * Custom emoji if type is "custom", null otherwise
390
- */
391
- custom_emoji?: string | null;
392
- }
393
-
394
- export namespace Reaction {
395
- export interface Handle {
396
- /**
397
- * Unique identifier for this handle
398
- */
399
- id: string;
400
-
401
- /**
402
- * Phone number (E.164) or email address of the participant
403
- */
404
- handle: string;
405
-
406
- /**
407
- * When this participant joined the chat
408
- */
409
- joined_at: string;
410
-
411
- /**
412
- * Messaging service type
413
- */
414
- service: 'iMessage' | 'SMS' | 'RCS';
415
-
416
- /**
417
- * Whether this handle belongs to the sender (your phone number)
418
- */
419
- is_me?: boolean | null;
420
-
421
- /**
422
- * When they left (if applicable)
423
- */
424
- left_at?: string | null;
425
-
426
- /**
427
- * Participant status
428
- */
429
- status?: 'active' | 'left' | 'removed' | null;
430
- }
431
- }
432
- }
348
+ /**
349
+ * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
350
+ * emphasize, question. Custom emoji reactions have type "custom" with the actual
351
+ * emoji in the custom_emoji field. Sticker reactions have type "sticker" with
352
+ * sticker attachment details in the sticker field.
353
+ */
354
+ export type ReactionType =
355
+ | 'love'
356
+ | 'like'
357
+ | 'dislike'
358
+ | 'laugh'
359
+ | 'emphasize'
360
+ | 'question'
361
+ | 'custom'
362
+ | 'sticker';
433
363
 
364
+ /**
365
+ * Indicates this message is a threaded reply to another message
366
+ */
367
+ export interface ReplyTo {
434
368
  /**
435
- * Indicates this message is a threaded reply to another message
369
+ * The ID of the message to reply to
436
370
  */
437
- export interface ReplyTo {
438
- /**
439
- * The ID of the message to reply to
440
- */
441
- message_id: string;
371
+ message_id: string;
442
372
 
443
- /**
444
- * The specific message part to reply to (0-based index). Defaults to 0 (first
445
- * part) if not provided. Use this when replying to a specific part of a multipart
446
- * message.
447
- */
448
- part_index?: number;
449
- }
373
+ /**
374
+ * The specific message part to reply to (0-based index). Defaults to 0 (first
375
+ * part) if not provided. Use this when replying to a specific part of a multipart
376
+ * message.
377
+ */
378
+ part_index?: number;
450
379
  }
451
380
 
452
- export interface MessageAddReactionResponse {
453
- handle: MessageAddReactionResponse.Handle;
454
-
381
+ /**
382
+ * A text message part
383
+ */
384
+ export interface TextPart {
455
385
  /**
456
- * Whether this reaction is from the current user
386
+ * Reactions on this message part
457
387
  */
458
- is_me: boolean;
388
+ reactions: Array<Reaction> | null;
459
389
 
460
390
  /**
461
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
462
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
463
- * emoji in the custom_emoji field.
391
+ * Indicates this is a text message part
464
392
  */
465
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
393
+ type: 'text';
466
394
 
467
395
  /**
468
- * Custom emoji if type is "custom", null otherwise
396
+ * The text content
469
397
  */
470
- custom_emoji?: string | null;
471
- }
472
-
473
- export namespace MessageAddReactionResponse {
474
- export interface Handle {
475
- /**
476
- * Unique identifier for this handle
477
- */
478
- id: string;
479
-
480
- /**
481
- * Phone number (E.164) or email address of the participant
482
- */
483
- handle: string;
484
-
485
- /**
486
- * When this participant joined the chat
487
- */
488
- joined_at: string;
489
-
490
- /**
491
- * Messaging service type
492
- */
493
- service: 'iMessage' | 'SMS' | 'RCS';
494
-
495
- /**
496
- * Whether this handle belongs to the sender (your phone number)
497
- */
498
- is_me?: boolean | null;
499
-
500
- /**
501
- * When they left (if applicable)
502
- */
503
- left_at?: string | null;
504
-
505
- /**
506
- * Participant status
507
- */
508
- status?: 'active' | 'left' | 'removed' | null;
509
- }
398
+ value: string;
510
399
  }
511
400
 
512
401
  /**
@@ -516,7 +405,7 @@ export interface MessageRetrieveThreadResponse {
516
405
  /**
517
406
  * Messages in the thread, ordered by the specified order parameter
518
407
  */
519
- messages: Array<MessageRetrieveThreadResponse.Message>;
408
+ messages: Array<Message>;
520
409
 
521
410
  /**
522
411
  * Cursor for fetching the next page of results (null if no more results)
@@ -524,358 +413,6 @@ export interface MessageRetrieveThreadResponse {
524
413
  next_cursor?: string | null;
525
414
  }
526
415
 
527
- export namespace MessageRetrieveThreadResponse {
528
- export interface Message {
529
- /**
530
- * Unique identifier for the message
531
- */
532
- id: string;
533
-
534
- /**
535
- * ID of the chat this message belongs to
536
- */
537
- chat_id: string;
538
-
539
- /**
540
- * When the message was created
541
- */
542
- created_at: string;
543
-
544
- /**
545
- * Whether the message has been delivered
546
- */
547
- is_delivered: boolean;
548
-
549
- /**
550
- * Whether this message was sent by the authenticated user
551
- */
552
- is_from_me: boolean;
553
-
554
- /**
555
- * Whether the message has been read
556
- */
557
- is_read: boolean;
558
-
559
- /**
560
- * When the message was last updated
561
- */
562
- updated_at: string;
563
-
564
- /**
565
- * When the message was delivered
566
- */
567
- delivered_at?: string | null;
568
-
569
- /**
570
- * iMessage effect applied to a message (screen or bubble effect)
571
- */
572
- effect?: Message.Effect | null;
573
-
574
- /**
575
- * @deprecated DEPRECATED: Use from_handle instead. Phone number of the message
576
- * sender.
577
- */
578
- from?: string | null;
579
-
580
- /**
581
- * The sender of this message as a full handle object
582
- */
583
- from_handle?: Message.FromHandle | null;
584
-
585
- /**
586
- * Message parts in order (text and media)
587
- */
588
- parts?: Array<Message.TextPartResponse | Message.MediaPartResponse> | null;
589
-
590
- /**
591
- * Messaging service type
592
- */
593
- preferred_service?: 'iMessage' | 'SMS' | 'RCS' | null;
594
-
595
- /**
596
- * When the message was read
597
- */
598
- read_at?: string | null;
599
-
600
- /**
601
- * Indicates this message is a threaded reply to another message
602
- */
603
- reply_to?: Message.ReplyTo | null;
604
-
605
- /**
606
- * When the message was sent
607
- */
608
- sent_at?: string | null;
609
-
610
- /**
611
- * Messaging service type
612
- */
613
- service?: 'iMessage' | 'SMS' | 'RCS' | null;
614
- }
615
-
616
- export namespace Message {
617
- /**
618
- * iMessage effect applied to a message (screen or bubble effect)
619
- */
620
- export interface Effect {
621
- /**
622
- * Name of the effect. Common values:
623
- *
624
- * - Screen effects: confetti, fireworks, lasers, sparkles, celebration, hearts,
625
- * love, balloons, happy_birthday, echo, spotlight
626
- * - Bubble effects: slam, loud, gentle, invisible
627
- */
628
- name?: string;
629
-
630
- /**
631
- * Type of effect
632
- */
633
- type?: 'screen' | 'bubble';
634
- }
635
-
636
- /**
637
- * The sender of this message as a full handle object
638
- */
639
- export interface FromHandle {
640
- /**
641
- * Unique identifier for this handle
642
- */
643
- id: string;
644
-
645
- /**
646
- * Phone number (E.164) or email address of the participant
647
- */
648
- handle: string;
649
-
650
- /**
651
- * When this participant joined the chat
652
- */
653
- joined_at: string;
654
-
655
- /**
656
- * Messaging service type
657
- */
658
- service: 'iMessage' | 'SMS' | 'RCS';
659
-
660
- /**
661
- * Whether this handle belongs to the sender (your phone number)
662
- */
663
- is_me?: boolean | null;
664
-
665
- /**
666
- * When they left (if applicable)
667
- */
668
- left_at?: string | null;
669
-
670
- /**
671
- * Participant status
672
- */
673
- status?: 'active' | 'left' | 'removed' | null;
674
- }
675
-
676
- /**
677
- * A text message part
678
- */
679
- export interface TextPartResponse {
680
- /**
681
- * Reactions on this message part
682
- */
683
- reactions: Array<TextPartResponse.Reaction> | null;
684
-
685
- /**
686
- * Indicates this is a text message part
687
- */
688
- type: 'text';
689
-
690
- /**
691
- * The text content
692
- */
693
- value: string;
694
- }
695
-
696
- export namespace TextPartResponse {
697
- export interface Reaction {
698
- handle: Reaction.Handle;
699
-
700
- /**
701
- * Whether this reaction is from the current user
702
- */
703
- is_me: boolean;
704
-
705
- /**
706
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
707
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
708
- * emoji in the custom_emoji field.
709
- */
710
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
711
-
712
- /**
713
- * Custom emoji if type is "custom", null otherwise
714
- */
715
- custom_emoji?: string | null;
716
- }
717
-
718
- export namespace Reaction {
719
- export interface Handle {
720
- /**
721
- * Unique identifier for this handle
722
- */
723
- id: string;
724
-
725
- /**
726
- * Phone number (E.164) or email address of the participant
727
- */
728
- handle: string;
729
-
730
- /**
731
- * When this participant joined the chat
732
- */
733
- joined_at: string;
734
-
735
- /**
736
- * Messaging service type
737
- */
738
- service: 'iMessage' | 'SMS' | 'RCS';
739
-
740
- /**
741
- * Whether this handle belongs to the sender (your phone number)
742
- */
743
- is_me?: boolean | null;
744
-
745
- /**
746
- * When they left (if applicable)
747
- */
748
- left_at?: string | null;
749
-
750
- /**
751
- * Participant status
752
- */
753
- status?: 'active' | 'left' | 'removed' | null;
754
- }
755
- }
756
- }
757
-
758
- /**
759
- * A media attachment part
760
- */
761
- export interface MediaPartResponse {
762
- /**
763
- * Unique attachment identifier
764
- */
765
- id: string;
766
-
767
- /**
768
- * Original filename
769
- */
770
- filename: string;
771
-
772
- /**
773
- * MIME type of the file
774
- */
775
- mime_type: string;
776
-
777
- /**
778
- * Reactions on this message part
779
- */
780
- reactions: Array<MediaPartResponse.Reaction> | null;
781
-
782
- /**
783
- * File size in bytes
784
- */
785
- size_bytes: number;
786
-
787
- /**
788
- * Indicates this is a media attachment part
789
- */
790
- type: 'media';
791
-
792
- /**
793
- * Presigned URL for downloading the attachment (expires in 1 hour).
794
- */
795
- url: string;
796
- }
797
-
798
- export namespace MediaPartResponse {
799
- export interface Reaction {
800
- handle: Reaction.Handle;
801
-
802
- /**
803
- * Whether this reaction is from the current user
804
- */
805
- is_me: boolean;
806
-
807
- /**
808
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
809
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
810
- * emoji in the custom_emoji field.
811
- */
812
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
813
-
814
- /**
815
- * Custom emoji if type is "custom", null otherwise
816
- */
817
- custom_emoji?: string | null;
818
- }
819
-
820
- export namespace Reaction {
821
- export interface Handle {
822
- /**
823
- * Unique identifier for this handle
824
- */
825
- id: string;
826
-
827
- /**
828
- * Phone number (E.164) or email address of the participant
829
- */
830
- handle: string;
831
-
832
- /**
833
- * When this participant joined the chat
834
- */
835
- joined_at: string;
836
-
837
- /**
838
- * Messaging service type
839
- */
840
- service: 'iMessage' | 'SMS' | 'RCS';
841
-
842
- /**
843
- * Whether this handle belongs to the sender (your phone number)
844
- */
845
- is_me?: boolean | null;
846
-
847
- /**
848
- * When they left (if applicable)
849
- */
850
- left_at?: string | null;
851
-
852
- /**
853
- * Participant status
854
- */
855
- status?: 'active' | 'left' | 'removed' | null;
856
- }
857
- }
858
- }
859
-
860
- /**
861
- * Indicates this message is a threaded reply to another message
862
- */
863
- export interface ReplyTo {
864
- /**
865
- * The ID of the message to reply to
866
- */
867
- message_id: string;
868
-
869
- /**
870
- * The specific message part to reply to (0-based index). Defaults to 0 (first
871
- * part) if not provided. Use this when replying to a specific part of a multipart
872
- * message.
873
- */
874
- part_index?: number;
875
- }
876
- }
877
- }
878
-
879
416
  export interface MessageDeleteParams {
880
417
  /**
881
418
  * ID of the chat containing the message to delete
@@ -892,9 +429,10 @@ export interface MessageAddReactionParams {
892
429
  /**
893
430
  * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
894
431
  * emphasize, question. Custom emoji reactions have type "custom" with the actual
895
- * emoji in the custom_emoji field.
432
+ * emoji in the custom_emoji field. Sticker reactions have type "sticker" with
433
+ * sticker attachment details in the sticker field.
896
434
  */
897
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
435
+ type: ReactionType;
898
436
 
899
437
  /**
900
438
  * Custom emoji string. Required when type is "custom".
@@ -927,8 +465,14 @@ export interface MessageRetrieveThreadParams {
927
465
 
928
466
  export declare namespace Messages {
929
467
  export {
930
- type MessageRetrieveResponse as MessageRetrieveResponse,
931
- type MessageAddReactionResponse as MessageAddReactionResponse,
468
+ type ChatHandle as ChatHandle,
469
+ type MediaPart as MediaPart,
470
+ type Message as Message,
471
+ type MessageEffect as MessageEffect,
472
+ type Reaction as Reaction,
473
+ type ReactionType as ReactionType,
474
+ type ReplyTo as ReplyTo,
475
+ type TextPart as TextPart,
932
476
  type MessageRetrieveThreadResponse as MessageRetrieveThreadResponse,
933
477
  type MessageDeleteParams as MessageDeleteParams,
934
478
  type MessageAddReactionParams as MessageAddReactionParams,