@linqapp/sdk 0.1.0 → 0.1.3

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 (223) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +198 -4
  3. package/README.md +52 -52
  4. package/client.d.mts +34 -22
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +34 -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/uploads.d.mts +4 -4
  51. package/internal/uploads.d.mts.map +1 -1
  52. package/internal/uploads.d.ts +4 -4
  53. package/internal/uploads.d.ts.map +1 -1
  54. package/internal/uploads.js.map +1 -1
  55. package/internal/uploads.mjs.map +1 -1
  56. package/internal/utils/base64.js +2 -2
  57. package/internal/utils/base64.js.map +1 -1
  58. package/internal/utils/base64.mjs +3 -3
  59. package/internal/utils/base64.mjs.map +1 -1
  60. package/internal/utils/log.d.mts +3 -3
  61. package/internal/utils/log.d.mts.map +1 -1
  62. package/internal/utils/log.d.ts +3 -3
  63. package/internal/utils/log.d.ts.map +1 -1
  64. package/internal/utils/log.js.map +1 -1
  65. package/internal/utils/log.mjs.map +1 -1
  66. package/internal/utils/path.js +1 -1
  67. package/internal/utils/path.js.map +1 -1
  68. package/internal/utils/path.mjs +2 -2
  69. package/internal/utils/path.mjs.map +1 -1
  70. package/internal/utils/values.js +5 -5
  71. package/internal/utils/values.js.map +1 -1
  72. package/internal/utils/values.mjs +6 -6
  73. package/internal/utils/values.mjs.map +1 -1
  74. package/package.json +4 -4
  75. package/resources/attachments.d.mts +28 -3
  76. package/resources/attachments.d.mts.map +1 -1
  77. package/resources/attachments.d.ts +28 -3
  78. package/resources/attachments.d.ts.map +1 -1
  79. package/resources/capability.d.mts +74 -0
  80. package/resources/capability.d.mts.map +1 -0
  81. package/resources/capability.d.ts +74 -0
  82. package/resources/capability.d.ts.map +1 -0
  83. package/resources/capability.js +36 -0
  84. package/resources/capability.js.map +1 -0
  85. package/resources/capability.mjs +32 -0
  86. package/resources/capability.mjs.map +1 -0
  87. package/resources/chats/chats.d.mts +133 -663
  88. package/resources/chats/chats.d.mts.map +1 -1
  89. package/resources/chats/chats.d.ts +133 -663
  90. package/resources/chats/chats.d.ts.map +1 -1
  91. package/resources/chats/chats.js +2 -2
  92. package/resources/chats/chats.js.map +1 -1
  93. package/resources/chats/chats.mjs +2 -2
  94. package/resources/chats/chats.mjs.map +1 -1
  95. package/resources/chats/index.d.mts +2 -2
  96. package/resources/chats/index.d.mts.map +1 -1
  97. package/resources/chats/index.d.ts +2 -2
  98. package/resources/chats/index.d.ts.map +1 -1
  99. package/resources/chats/index.js.map +1 -1
  100. package/resources/chats/index.mjs.map +1 -1
  101. package/resources/chats/messages.d.mts +55 -716
  102. package/resources/chats/messages.d.mts.map +1 -1
  103. package/resources/chats/messages.d.ts +55 -716
  104. package/resources/chats/messages.d.ts.map +1 -1
  105. package/resources/chats/messages.js.map +1 -1
  106. package/resources/chats/messages.mjs.map +1 -1
  107. package/resources/index.d.mts +8 -5
  108. package/resources/index.d.mts.map +1 -1
  109. package/resources/index.d.ts +8 -5
  110. package/resources/index.d.ts.map +1 -1
  111. package/resources/index.js +9 -3
  112. package/resources/index.js.map +1 -1
  113. package/resources/index.mjs +5 -2
  114. package/resources/index.mjs.map +1 -1
  115. package/resources/messages.d.mts +129 -553
  116. package/resources/messages.d.mts.map +1 -1
  117. package/resources/messages.d.ts +129 -553
  118. package/resources/messages.d.ts.map +1 -1
  119. package/resources/messages.js +1 -1
  120. package/resources/messages.js.map +1 -1
  121. package/resources/messages.mjs +1 -1
  122. package/resources/messages.mjs.map +1 -1
  123. package/resources/phone-numbers.d.mts +1 -50
  124. package/resources/phone-numbers.d.mts.map +1 -1
  125. package/resources/phone-numbers.d.ts +1 -50
  126. package/resources/phone-numbers.d.ts.map +1 -1
  127. package/resources/phone-numbers.js +0 -8
  128. package/resources/phone-numbers.js.map +1 -1
  129. package/resources/phone-numbers.mjs +0 -8
  130. package/resources/phone-numbers.mjs.map +1 -1
  131. package/resources/phonenumbers.d.mts +58 -0
  132. package/resources/phonenumbers.d.mts.map +1 -0
  133. package/resources/phonenumbers.d.ts +58 -0
  134. package/resources/phonenumbers.d.ts.map +1 -0
  135. package/resources/phonenumbers.js +17 -0
  136. package/resources/phonenumbers.js.map +1 -0
  137. package/resources/phonenumbers.mjs +13 -0
  138. package/resources/phonenumbers.mjs.map +1 -0
  139. package/resources/webhook-events.d.mts +29 -0
  140. package/resources/webhook-events.d.mts.map +1 -0
  141. package/resources/webhook-events.d.ts +29 -0
  142. package/resources/webhook-events.d.ts.map +1 -0
  143. package/resources/{webhooks/events.js → webhook-events.js} +5 -10
  144. package/resources/webhook-events.js.map +1 -0
  145. package/resources/{webhooks/events.mjs → webhook-events.mjs} +3 -8
  146. package/resources/webhook-events.mjs.map +1 -0
  147. package/resources/webhook-subscriptions.d.mts +184 -0
  148. package/resources/webhook-subscriptions.d.mts.map +1 -0
  149. package/resources/webhook-subscriptions.d.ts +184 -0
  150. package/resources/webhook-subscriptions.d.ts.map +1 -0
  151. package/resources/{webhooks/subscriptions.js → webhook-subscriptions.js} +16 -16
  152. package/resources/webhook-subscriptions.js.map +1 -0
  153. package/resources/{webhooks/subscriptions.mjs → webhook-subscriptions.mjs} +14 -14
  154. package/resources/webhook-subscriptions.mjs.map +1 -0
  155. package/src/client.ts +97 -41
  156. package/src/core/api-promise.ts +4 -4
  157. package/src/core/error.ts +2 -2
  158. package/src/core/resource.ts +3 -3
  159. package/src/index.ts +3 -3
  160. package/src/internal/parse.ts +2 -2
  161. package/src/internal/shims.ts +1 -1
  162. package/src/internal/uploads.ts +5 -5
  163. package/src/internal/utils/base64.ts +3 -3
  164. package/src/internal/utils/log.ts +3 -3
  165. package/src/internal/utils/path.ts +2 -2
  166. package/src/internal/utils/values.ts +6 -6
  167. package/src/resources/attachments.ts +81 -106
  168. package/src/resources/capability.ts +98 -0
  169. package/src/resources/chats/chats.ts +135 -770
  170. package/src/resources/chats/index.ts +4 -2
  171. package/src/resources/chats/messages.ts +60 -839
  172. package/src/resources/index.ts +29 -9
  173. package/src/resources/messages.ts +153 -659
  174. package/src/resources/phone-numbers.ts +1 -65
  175. package/src/resources/phonenumbers.ts +72 -0
  176. package/src/resources/webhook-events.ts +57 -0
  177. package/src/resources/webhook-subscriptions.ts +238 -0
  178. package/src/version.ts +1 -1
  179. package/version.d.mts +1 -1
  180. package/version.d.ts +1 -1
  181. package/version.js +1 -1
  182. package/version.mjs +1 -1
  183. package/resources/webhooks/events.d.mts +0 -30
  184. package/resources/webhooks/events.d.mts.map +0 -1
  185. package/resources/webhooks/events.d.ts +0 -30
  186. package/resources/webhooks/events.d.ts.map +0 -1
  187. package/resources/webhooks/events.js.map +0 -1
  188. package/resources/webhooks/events.mjs.map +0 -1
  189. package/resources/webhooks/index.d.mts +0 -4
  190. package/resources/webhooks/index.d.mts.map +0 -1
  191. package/resources/webhooks/index.d.ts +0 -4
  192. package/resources/webhooks/index.d.ts.map +0 -1
  193. package/resources/webhooks/index.js +0 -11
  194. package/resources/webhooks/index.js.map +0 -1
  195. package/resources/webhooks/index.mjs +0 -5
  196. package/resources/webhooks/index.mjs.map +0 -1
  197. package/resources/webhooks/subscriptions.d.mts +0 -237
  198. package/resources/webhooks/subscriptions.d.mts.map +0 -1
  199. package/resources/webhooks/subscriptions.d.ts +0 -237
  200. package/resources/webhooks/subscriptions.d.ts.map +0 -1
  201. package/resources/webhooks/subscriptions.js.map +0 -1
  202. package/resources/webhooks/subscriptions.mjs.map +0 -1
  203. package/resources/webhooks/webhooks.d.mts +0 -14
  204. package/resources/webhooks/webhooks.d.mts.map +0 -1
  205. package/resources/webhooks/webhooks.d.ts +0 -14
  206. package/resources/webhooks/webhooks.d.ts.map +0 -1
  207. package/resources/webhooks/webhooks.js +0 -21
  208. package/resources/webhooks/webhooks.js.map +0 -1
  209. package/resources/webhooks/webhooks.mjs +0 -16
  210. package/resources/webhooks/webhooks.mjs.map +0 -1
  211. package/resources/webhooks.d.mts +0 -2
  212. package/resources/webhooks.d.mts.map +0 -1
  213. package/resources/webhooks.d.ts +0 -2
  214. package/resources/webhooks.d.ts.map +0 -1
  215. package/resources/webhooks.js +0 -6
  216. package/resources/webhooks.js.map +0 -1
  217. package/resources/webhooks.mjs +0 -3
  218. package/resources/webhooks.mjs.map +0 -1
  219. package/src/resources/webhooks/events.ts +0 -55
  220. package/src/resources/webhooks/index.ts +0 -13
  221. package/src/resources/webhooks/subscriptions.ts +0 -409
  222. package/src/resources/webhooks/webhooks.ts +0 -37
  223. package/src/resources/webhooks.ts +0 -3
@@ -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 ChatsAPI from './chats/chats';
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: ChatsAPI.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?: ChatsAPI.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,91 @@ export interface MessageRetrieveResponse {
184
262
  /**
185
263
  * Messaging service type
186
264
  */
187
- service?: 'iMessage' | 'SMS' | 'RCS' | null;
265
+ service?: ChatsAPI.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;
243
-
244
- /**
245
- * Participant status
246
- */
247
- status?: 'active' | 'left' | 'removed' | null;
248
- }
284
+ type?: 'screen' | 'bubble';
285
+ }
286
+
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
- }
269
-
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
- }
293
+ is_me: boolean;
331
294
 
332
295
  /**
333
- * A media attachment part
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.
334
299
  */
335
- export interface MediaPartResponse {
336
- /**
337
- * Unique attachment identifier
338
- */
339
- id: string;
340
-
341
- /**
342
- * Original filename
343
- */
344
- filename: string;
345
-
346
- /**
347
- * MIME type of the file
348
- */
349
- mime_type: string;
350
-
351
- /**
352
- * Reactions on this message part
353
- */
354
- reactions: Array<MediaPartResponse.Reaction> | null;
300
+ type: ReactionType;
355
301
 
356
- /**
357
- * File size in bytes
358
- */
359
- size_bytes: number;
360
-
361
- /**
362
- * Indicates this is a media attachment part
363
- */
364
- type: 'media';
302
+ /**
303
+ * Custom emoji if type is "custom", null otherwise
304
+ */
305
+ custom_emoji?: string | null;
306
+ }
365
307
 
366
- /**
367
- * Presigned URL for downloading the attachment (expires in 1 hour).
368
- */
369
- url: string;
370
- }
308
+ /**
309
+ * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
310
+ * emphasize, question. Custom emoji reactions have type "custom" with the actual
311
+ * emoji in the custom_emoji field.
312
+ */
313
+ export type ReactionType = 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
371
314
 
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
- }
315
+ /**
316
+ * Indicates this message is a threaded reply to another message
317
+ */
318
+ export interface ReplyTo {
319
+ /**
320
+ * The ID of the message to reply to
321
+ */
322
+ message_id: string;
433
323
 
434
324
  /**
435
- * Indicates this message is a threaded reply to another message
325
+ * The specific message part to reply to (0-based index). Defaults to 0 (first
326
+ * part) if not provided. Use this when replying to a specific part of a multipart
327
+ * message.
436
328
  */
437
- export interface ReplyTo {
438
- /**
439
- * The ID of the message to reply to
440
- */
441
- message_id: string;
442
-
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
- }
329
+ part_index?: number;
450
330
  }
451
331
 
452
- export interface MessageAddReactionResponse {
453
- handle: MessageAddReactionResponse.Handle;
454
-
332
+ /**
333
+ * A text message part
334
+ */
335
+ export interface TextPart {
455
336
  /**
456
- * Whether this reaction is from the current user
337
+ * Reactions on this message part
457
338
  */
458
- is_me: boolean;
339
+ reactions: Array<Reaction> | null;
459
340
 
460
341
  /**
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.
342
+ * Indicates this is a text message part
464
343
  */
465
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
344
+ type: 'text';
466
345
 
467
346
  /**
468
- * Custom emoji if type is "custom", null otherwise
347
+ * The text content
469
348
  */
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
- }
349
+ value: string;
510
350
  }
511
351
 
512
352
  /**
@@ -516,7 +356,7 @@ export interface MessageRetrieveThreadResponse {
516
356
  /**
517
357
  * Messages in the thread, ordered by the specified order parameter
518
358
  */
519
- messages: Array<MessageRetrieveThreadResponse.Message>;
359
+ messages: Array<Message>;
520
360
 
521
361
  /**
522
362
  * Cursor for fetching the next page of results (null if no more results)
@@ -524,358 +364,6 @@ export interface MessageRetrieveThreadResponse {
524
364
  next_cursor?: string | null;
525
365
  }
526
366
 
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
367
  export interface MessageDeleteParams {
880
368
  /**
881
369
  * ID of the chat containing the message to delete
@@ -894,7 +382,7 @@ export interface MessageAddReactionParams {
894
382
  * emphasize, question. Custom emoji reactions have type "custom" with the actual
895
383
  * emoji in the custom_emoji field.
896
384
  */
897
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
385
+ type: ReactionType;
898
386
 
899
387
  /**
900
388
  * Custom emoji string. Required when type is "custom".
@@ -927,8 +415,14 @@ export interface MessageRetrieveThreadParams {
927
415
 
928
416
  export declare namespace Messages {
929
417
  export {
930
- type MessageRetrieveResponse as MessageRetrieveResponse,
931
- type MessageAddReactionResponse as MessageAddReactionResponse,
418
+ type ChatHandle as ChatHandle,
419
+ type MediaPart as MediaPart,
420
+ type Message as Message,
421
+ type MessageEffect as MessageEffect,
422
+ type Reaction as Reaction,
423
+ type ReactionType as ReactionType,
424
+ type ReplyTo as ReplyTo,
425
+ type TextPart as TextPart,
932
426
  type MessageRetrieveThreadResponse as MessageRetrieveThreadResponse,
933
427
  type MessageDeleteParams as MessageDeleteParams,
934
428
  type MessageAddReactionParams as MessageAddReactionParams,