@trycourier/courier 7.21.0 → 7.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/client.d.mts +60 -0
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +60 -0
  5. package/client.d.ts.map +1 -1
  6. package/client.js +60 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +60 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/audiences.d.mts +13 -5
  12. package/resources/audiences.d.mts.map +1 -1
  13. package/resources/audiences.d.ts +13 -5
  14. package/resources/audiences.d.ts.map +1 -1
  15. package/resources/audiences.js +13 -5
  16. package/resources/audiences.js.map +1 -1
  17. package/resources/audiences.mjs +13 -5
  18. package/resources/audiences.mjs.map +1 -1
  19. package/resources/audit-events.d.mts +7 -2
  20. package/resources/audit-events.d.mts.map +1 -1
  21. package/resources/audit-events.d.ts +7 -2
  22. package/resources/audit-events.d.ts.map +1 -1
  23. package/resources/audit-events.js +7 -2
  24. package/resources/audit-events.js.map +1 -1
  25. package/resources/audit-events.mjs +7 -2
  26. package/resources/audit-events.mjs.map +1 -1
  27. package/resources/auth.d.mts +5 -1
  28. package/resources/auth.d.mts.map +1 -1
  29. package/resources/auth.d.ts +5 -1
  30. package/resources/auth.d.ts.map +1 -1
  31. package/resources/auth.js +5 -1
  32. package/resources/auth.js.map +1 -1
  33. package/resources/auth.mjs +5 -1
  34. package/resources/auth.mjs.map +1 -1
  35. package/resources/automations/automations.d.mts +5 -1
  36. package/resources/automations/automations.d.mts.map +1 -1
  37. package/resources/automations/automations.d.ts +5 -1
  38. package/resources/automations/automations.d.ts.map +1 -1
  39. package/resources/automations/automations.js +5 -1
  40. package/resources/automations/automations.js.map +1 -1
  41. package/resources/automations/automations.mjs +5 -1
  42. package/resources/automations/automations.mjs.map +1 -1
  43. package/resources/automations/invoke.d.mts +74 -7
  44. package/resources/automations/invoke.d.mts.map +1 -1
  45. package/resources/automations/invoke.d.ts +74 -7
  46. package/resources/automations/invoke.d.ts.map +1 -1
  47. package/resources/automations/invoke.js +38 -9
  48. package/resources/automations/invoke.js.map +1 -1
  49. package/resources/automations/invoke.mjs +38 -9
  50. package/resources/automations/invoke.mjs.map +1 -1
  51. package/resources/brands.d.mts +42 -7
  52. package/resources/brands.d.mts.map +1 -1
  53. package/resources/brands.d.ts +42 -7
  54. package/resources/brands.d.ts.map +1 -1
  55. package/resources/brands.js +28 -8
  56. package/resources/brands.js.map +1 -1
  57. package/resources/brands.mjs +28 -8
  58. package/resources/brands.mjs.map +1 -1
  59. package/resources/broadcasts.d.mts +381 -0
  60. package/resources/broadcasts.d.mts.map +1 -0
  61. package/resources/broadcasts.d.ts +381 -0
  62. package/resources/broadcasts.d.ts.map +1 -0
  63. package/resources/broadcasts.js +181 -0
  64. package/resources/broadcasts.js.map +1 -0
  65. package/resources/broadcasts.mjs +177 -0
  66. package/resources/broadcasts.mjs.map +1 -0
  67. package/resources/digests/schedules.d.mts +5 -3
  68. package/resources/digests/schedules.d.mts.map +1 -1
  69. package/resources/digests/schedules.d.ts +5 -3
  70. package/resources/digests/schedules.d.ts.map +1 -1
  71. package/resources/digests/schedules.js +5 -3
  72. package/resources/digests/schedules.js.map +1 -1
  73. package/resources/digests/schedules.mjs +5 -3
  74. package/resources/digests/schedules.mjs.map +1 -1
  75. package/resources/inbound.d.mts +5 -1
  76. package/resources/inbound.d.mts.map +1 -1
  77. package/resources/inbound.d.ts +5 -1
  78. package/resources/inbound.d.ts.map +1 -1
  79. package/resources/inbound.js +5 -1
  80. package/resources/inbound.js.map +1 -1
  81. package/resources/inbound.mjs +5 -1
  82. package/resources/inbound.mjs.map +1 -1
  83. package/resources/inbox/inbox.d.mts +10 -0
  84. package/resources/inbox/inbox.d.mts.map +1 -0
  85. package/resources/inbox/inbox.d.ts +10 -0
  86. package/resources/inbox/inbox.d.ts.map +1 -0
  87. package/resources/inbox/inbox.js +17 -0
  88. package/resources/inbox/inbox.js.map +1 -0
  89. package/resources/inbox/inbox.mjs +12 -0
  90. package/resources/inbox/inbox.mjs.map +1 -0
  91. package/resources/inbox/index.d.mts +3 -0
  92. package/resources/inbox/index.d.mts.map +1 -0
  93. package/resources/inbox/index.d.ts +3 -0
  94. package/resources/inbox/index.d.ts.map +1 -0
  95. package/resources/inbox/index.js +9 -0
  96. package/resources/inbox/index.js.map +1 -0
  97. package/resources/inbox/index.mjs +4 -0
  98. package/resources/inbox/index.mjs.map +1 -0
  99. package/resources/inbox/messages.d.mts +23 -0
  100. package/resources/inbox/messages.d.mts.map +1 -0
  101. package/resources/inbox/messages.d.ts +23 -0
  102. package/resources/inbox/messages.d.ts.map +1 -0
  103. package/resources/inbox/messages.js +34 -0
  104. package/resources/inbox/messages.js.map +1 -0
  105. package/resources/inbox/messages.mjs +30 -0
  106. package/resources/inbox/messages.mjs.map +1 -0
  107. package/resources/inbox.d.mts +2 -0
  108. package/resources/inbox.d.mts.map +1 -0
  109. package/resources/inbox.d.ts +2 -0
  110. package/resources/inbox.d.ts.map +1 -0
  111. package/resources/inbox.js +6 -0
  112. package/resources/inbox.js.map +1 -0
  113. package/resources/inbox.mjs +3 -0
  114. package/resources/inbox.mjs.map +1 -0
  115. package/resources/index.d.mts +2 -0
  116. package/resources/index.d.mts.map +1 -1
  117. package/resources/index.d.ts +2 -0
  118. package/resources/index.d.ts.map +1 -1
  119. package/resources/index.js +5 -1
  120. package/resources/index.js.map +1 -1
  121. package/resources/index.mjs +2 -0
  122. package/resources/index.mjs.map +1 -1
  123. package/resources/journeys/journeys.d.mts +130 -39
  124. package/resources/journeys/journeys.d.mts.map +1 -1
  125. package/resources/journeys/journeys.d.ts +130 -39
  126. package/resources/journeys/journeys.d.ts.map +1 -1
  127. package/resources/journeys/journeys.js +79 -34
  128. package/resources/journeys/journeys.js.map +1 -1
  129. package/resources/journeys/journeys.mjs +79 -34
  130. package/resources/journeys/journeys.mjs.map +1 -1
  131. package/resources/journeys/templates.d.mts +60 -17
  132. package/resources/journeys/templates.d.mts.map +1 -1
  133. package/resources/journeys/templates.d.ts +60 -17
  134. package/resources/journeys/templates.d.ts.map +1 -1
  135. package/resources/journeys/templates.js +41 -20
  136. package/resources/journeys/templates.js.map +1 -1
  137. package/resources/journeys/templates.mjs +41 -20
  138. package/resources/journeys/templates.mjs.map +1 -1
  139. package/resources/lists/lists.d.mts +40 -5
  140. package/resources/lists/lists.d.mts.map +1 -1
  141. package/resources/lists/lists.d.ts +40 -5
  142. package/resources/lists/lists.d.ts.map +1 -1
  143. package/resources/lists/lists.js +40 -5
  144. package/resources/lists/lists.js.map +1 -1
  145. package/resources/lists/lists.mjs +40 -5
  146. package/resources/lists/lists.mjs.map +1 -1
  147. package/resources/lists/subscriptions.d.mts +65 -5
  148. package/resources/lists/subscriptions.d.mts.map +1 -1
  149. package/resources/lists/subscriptions.d.ts +65 -5
  150. package/resources/lists/subscriptions.d.ts.map +1 -1
  151. package/resources/lists/subscriptions.js +57 -6
  152. package/resources/lists/subscriptions.js.map +1 -1
  153. package/resources/lists/subscriptions.mjs +57 -6
  154. package/resources/lists/subscriptions.mjs.map +1 -1
  155. package/resources/messages.d.mts +15 -14
  156. package/resources/messages.d.mts.map +1 -1
  157. package/resources/messages.d.ts +15 -14
  158. package/resources/messages.d.ts.map +1 -1
  159. package/resources/messages.js +15 -14
  160. package/resources/messages.js.map +1 -1
  161. package/resources/messages.mjs +15 -14
  162. package/resources/messages.mjs.map +1 -1
  163. package/resources/notifications/checks.d.mts +9 -3
  164. package/resources/notifications/checks.d.mts.map +1 -1
  165. package/resources/notifications/checks.d.ts +9 -3
  166. package/resources/notifications/checks.d.ts.map +1 -1
  167. package/resources/notifications/checks.js +9 -3
  168. package/resources/notifications/checks.js.map +1 -1
  169. package/resources/notifications/checks.mjs +9 -3
  170. package/resources/notifications/checks.mjs.map +1 -1
  171. package/resources/notifications/notifications.d.mts +62 -29
  172. package/resources/notifications/notifications.d.mts.map +1 -1
  173. package/resources/notifications/notifications.d.ts +62 -29
  174. package/resources/notifications/notifications.d.ts.map +1 -1
  175. package/resources/notifications/notifications.js +49 -26
  176. package/resources/notifications/notifications.js.map +1 -1
  177. package/resources/notifications/notifications.mjs +49 -26
  178. package/resources/notifications/notifications.mjs.map +1 -1
  179. package/resources/profiles/lists.d.mts +49 -5
  180. package/resources/profiles/lists.d.mts.map +1 -1
  181. package/resources/profiles/lists.d.ts +49 -5
  182. package/resources/profiles/lists.d.ts.map +1 -1
  183. package/resources/profiles/lists.js +45 -6
  184. package/resources/profiles/lists.js.map +1 -1
  185. package/resources/profiles/lists.mjs +45 -6
  186. package/resources/profiles/lists.mjs.map +1 -1
  187. package/resources/profiles/profiles.d.mts +70 -11
  188. package/resources/profiles/profiles.d.mts.map +1 -1
  189. package/resources/profiles/profiles.d.ts +70 -11
  190. package/resources/profiles/profiles.d.ts.map +1 -1
  191. package/resources/profiles/profiles.js +65 -12
  192. package/resources/profiles/profiles.js.map +1 -1
  193. package/resources/profiles/profiles.mjs +65 -12
  194. package/resources/profiles/profiles.mjs.map +1 -1
  195. package/resources/providers/catalog.d.mts +10 -4
  196. package/resources/providers/catalog.d.mts.map +1 -1
  197. package/resources/providers/catalog.d.ts +10 -4
  198. package/resources/providers/catalog.d.ts.map +1 -1
  199. package/resources/providers/catalog.js +10 -4
  200. package/resources/providers/catalog.js.map +1 -1
  201. package/resources/providers/catalog.mjs +10 -4
  202. package/resources/providers/catalog.mjs.map +1 -1
  203. package/resources/providers/providers.d.mts +68 -22
  204. package/resources/providers/providers.d.mts.map +1 -1
  205. package/resources/providers/providers.d.ts +68 -22
  206. package/resources/providers/providers.d.ts.map +1 -1
  207. package/resources/providers/providers.js +57 -14
  208. package/resources/providers/providers.js.map +1 -1
  209. package/resources/providers/providers.mjs +57 -14
  210. package/resources/providers/providers.mjs.map +1 -1
  211. package/resources/requests.d.mts +5 -1
  212. package/resources/requests.d.mts.map +1 -1
  213. package/resources/requests.d.ts +5 -1
  214. package/resources/requests.d.ts.map +1 -1
  215. package/resources/requests.js +5 -1
  216. package/resources/requests.js.map +1 -1
  217. package/resources/requests.mjs +5 -1
  218. package/resources/requests.mjs.map +1 -1
  219. package/resources/routing-strategies.d.mts +30 -11
  220. package/resources/routing-strategies.d.mts.map +1 -1
  221. package/resources/routing-strategies.d.ts +30 -11
  222. package/resources/routing-strategies.d.ts.map +1 -1
  223. package/resources/routing-strategies.js +22 -6
  224. package/resources/routing-strategies.js.map +1 -1
  225. package/resources/routing-strategies.mjs +22 -6
  226. package/resources/routing-strategies.mjs.map +1 -1
  227. package/resources/send.d.mts +24 -4
  228. package/resources/send.d.mts.map +1 -1
  229. package/resources/send.d.ts +24 -4
  230. package/resources/send.d.ts.map +1 -1
  231. package/resources/send.js +21 -3
  232. package/resources/send.js.map +1 -1
  233. package/resources/send.mjs +21 -3
  234. package/resources/send.mjs.map +1 -1
  235. package/resources/tenants/preferences/items.d.mts +7 -2
  236. package/resources/tenants/preferences/items.d.mts.map +1 -1
  237. package/resources/tenants/preferences/items.d.ts +7 -2
  238. package/resources/tenants/preferences/items.d.ts.map +1 -1
  239. package/resources/tenants/preferences/items.js +7 -2
  240. package/resources/tenants/preferences/items.js.map +1 -1
  241. package/resources/tenants/preferences/items.mjs +7 -2
  242. package/resources/tenants/preferences/items.mjs.map +1 -1
  243. package/resources/tenants/templates/templates.d.mts +13 -19
  244. package/resources/tenants/templates/templates.d.mts.map +1 -1
  245. package/resources/tenants/templates/templates.d.ts +13 -19
  246. package/resources/tenants/templates/templates.d.ts.map +1 -1
  247. package/resources/tenants/templates/templates.js +13 -19
  248. package/resources/tenants/templates/templates.js.map +1 -1
  249. package/resources/tenants/templates/templates.mjs +13 -19
  250. package/resources/tenants/templates/templates.mjs.map +1 -1
  251. package/resources/tenants/templates/versions.d.mts +5 -7
  252. package/resources/tenants/templates/versions.d.mts.map +1 -1
  253. package/resources/tenants/templates/versions.d.ts +5 -7
  254. package/resources/tenants/templates/versions.d.ts.map +1 -1
  255. package/resources/tenants/templates/versions.js +5 -7
  256. package/resources/tenants/templates/versions.js.map +1 -1
  257. package/resources/tenants/templates/versions.mjs +5 -7
  258. package/resources/tenants/templates/versions.mjs.map +1 -1
  259. package/resources/tenants/tenants.d.mts +13 -5
  260. package/resources/tenants/tenants.d.mts.map +1 -1
  261. package/resources/tenants/tenants.d.ts +13 -5
  262. package/resources/tenants/tenants.d.ts.map +1 -1
  263. package/resources/tenants/tenants.js +13 -5
  264. package/resources/tenants/tenants.js.map +1 -1
  265. package/resources/tenants/tenants.mjs +13 -5
  266. package/resources/tenants/tenants.mjs.map +1 -1
  267. package/resources/translations.d.mts +7 -2
  268. package/resources/translations.d.mts.map +1 -1
  269. package/resources/translations.d.ts +7 -2
  270. package/resources/translations.d.ts.map +1 -1
  271. package/resources/translations.js +7 -2
  272. package/resources/translations.js.map +1 -1
  273. package/resources/translations.mjs +7 -2
  274. package/resources/translations.mjs.map +1 -1
  275. package/resources/users/preferences.d.mts +64 -42
  276. package/resources/users/preferences.d.mts.map +1 -1
  277. package/resources/users/preferences.d.ts +64 -42
  278. package/resources/users/preferences.d.ts.map +1 -1
  279. package/resources/users/preferences.js +30 -42
  280. package/resources/users/preferences.js.map +1 -1
  281. package/resources/users/preferences.mjs +30 -42
  282. package/resources/users/preferences.mjs.map +1 -1
  283. package/resources/users/tenants.d.mts +13 -10
  284. package/resources/users/tenants.d.mts.map +1 -1
  285. package/resources/users/tenants.d.ts +13 -10
  286. package/resources/users/tenants.d.ts.map +1 -1
  287. package/resources/users/tenants.js +13 -10
  288. package/resources/users/tenants.js.map +1 -1
  289. package/resources/users/tenants.mjs +13 -10
  290. package/resources/users/tenants.mjs.map +1 -1
  291. package/resources/users/tokens.d.mts +15 -6
  292. package/resources/users/tokens.d.mts.map +1 -1
  293. package/resources/users/tokens.d.ts +15 -6
  294. package/resources/users/tokens.d.ts.map +1 -1
  295. package/resources/users/tokens.js +15 -6
  296. package/resources/users/tokens.js.map +1 -1
  297. package/resources/users/tokens.mjs +15 -6
  298. package/resources/users/tokens.mjs.map +1 -1
  299. package/resources/workspace-preferences/topics.d.mts +40 -18
  300. package/resources/workspace-preferences/topics.d.mts.map +1 -1
  301. package/resources/workspace-preferences/topics.d.ts +40 -18
  302. package/resources/workspace-preferences/topics.d.ts.map +1 -1
  303. package/resources/workspace-preferences/topics.js +26 -11
  304. package/resources/workspace-preferences/topics.js.map +1 -1
  305. package/resources/workspace-preferences/topics.mjs +26 -11
  306. package/resources/workspace-preferences/topics.mjs.map +1 -1
  307. package/resources/workspace-preferences/workspace-preferences.d.mts +56 -19
  308. package/resources/workspace-preferences/workspace-preferences.d.mts.map +1 -1
  309. package/resources/workspace-preferences/workspace-preferences.d.ts +56 -19
  310. package/resources/workspace-preferences/workspace-preferences.d.ts.map +1 -1
  311. package/resources/workspace-preferences/workspace-preferences.js +41 -13
  312. package/resources/workspace-preferences/workspace-preferences.js.map +1 -1
  313. package/resources/workspace-preferences/workspace-preferences.mjs +41 -13
  314. package/resources/workspace-preferences/workspace-preferences.mjs.map +1 -1
  315. package/src/client.ts +96 -0
  316. package/src/resources/audiences.ts +13 -5
  317. package/src/resources/audit-events.ts +7 -2
  318. package/src/resources/auth.ts +5 -1
  319. package/src/resources/automations/automations.ts +5 -1
  320. package/src/resources/automations/invoke.ts +115 -9
  321. package/src/resources/brands.ts +62 -8
  322. package/src/resources/broadcasts.ts +489 -0
  323. package/src/resources/digests/schedules.ts +5 -3
  324. package/src/resources/inbound.ts +5 -1
  325. package/src/resources/inbox/inbox.ts +15 -0
  326. package/src/resources/inbox/index.ts +4 -0
  327. package/src/resources/inbox/messages.ts +40 -0
  328. package/src/resources/inbox.ts +3 -0
  329. package/src/resources/index.ts +18 -0
  330. package/src/resources/journeys/journeys.ts +212 -43
  331. package/src/resources/journeys/templates.ts +98 -20
  332. package/src/resources/lists/lists.ts +40 -5
  333. package/src/resources/lists/subscriptions.ts +82 -6
  334. package/src/resources/messages.ts +15 -14
  335. package/src/resources/notifications/checks.ts +9 -3
  336. package/src/resources/notifications/notifications.ts +102 -31
  337. package/src/resources/profiles/lists.ts +70 -6
  338. package/src/resources/profiles/profiles.ts +90 -12
  339. package/src/resources/providers/catalog.ts +10 -4
  340. package/src/resources/providers/providers.ts +86 -21
  341. package/src/resources/requests.ts +5 -1
  342. package/src/resources/routing-strategies.ts +50 -12
  343. package/src/resources/send.ts +45 -5
  344. package/src/resources/tenants/preferences/items.ts +7 -2
  345. package/src/resources/tenants/templates/templates.ts +13 -19
  346. package/src/resources/tenants/templates/versions.ts +5 -7
  347. package/src/resources/tenants/tenants.ts +13 -5
  348. package/src/resources/translations.ts +7 -2
  349. package/src/resources/users/preferences.ts +86 -44
  350. package/src/resources/users/tenants.ts +13 -10
  351. package/src/resources/users/tokens.ts +15 -6
  352. package/src/resources/workspace-preferences/topics.ts +60 -19
  353. package/src/resources/workspace-preferences/workspace-preferences.ts +96 -21
  354. package/src/version.ts +1 -1
  355. package/version.d.mts +1 -1
  356. package/version.d.ts +1 -1
  357. package/version.js +1 -1
  358. package/version.mjs +1 -1
@@ -3,20 +3,45 @@ import * as Shared from "../shared.mjs";
3
3
  import * as ProfilesAPI from "./profiles.mjs";
4
4
  import { APIPromise } from "../../core/api-promise.mjs";
5
5
  import { RequestOptions } from "../../internal/request-options.mjs";
6
+ /**
7
+ * Store the contact information Courier delivers to for each user — email, phone number, push tokens, and any custom data you send to.
8
+ */
6
9
  export declare class Lists extends APIResource {
7
10
  /**
8
- * Returns the subscribed lists for a specified user.
11
+ * Returns the lists a user is subscribed to, with paging. Use it to check what a
12
+ * recipient will receive before sending to a list.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const list = await client.profiles.lists.retrieve(
17
+ * 'user_id',
18
+ * );
19
+ * ```
9
20
  */
10
21
  retrieve(userID: string, query?: ListRetrieveParams | null | undefined, options?: RequestOptions): APIPromise<ListRetrieveResponse>;
11
22
  /**
12
- * Removes all list subscriptions for given user.
23
+ * Removes every list subscription for a user at once. Their profile and
24
+ * preferences are untouched, so this only affects list-targeted sends.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const list = await client.profiles.lists.delete('user_id');
29
+ * ```
13
30
  */
14
31
  delete(userID: string, options?: RequestOptions): APIPromise<ListDeleteResponse>;
15
32
  /**
16
- * Subscribes the given user to one or more lists. If the list does not exist, it
17
- * will be created.
33
+ * Subscribes a user to one or more lists, creating any list that does not yet
34
+ * exist. Optional preferences apply to each subscription.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const response = await client.profiles.lists.subscribe(
39
+ * 'user_id',
40
+ * { lists: [{ listId: 'listId' }] },
41
+ * );
42
+ * ```
18
43
  */
19
- subscribe(userID: string, body: ListSubscribeParams, options?: RequestOptions): APIPromise<ListSubscribeResponse>;
44
+ subscribe(userID: string, params: ListSubscribeParams, options?: RequestOptions): APIPromise<ListSubscribeResponse>;
20
45
  }
21
46
  export interface ListRetrieveResponse {
22
47
  paging: Shared.Paging;
@@ -58,7 +83,26 @@ export interface ListRetrieveParams {
58
83
  cursor?: string | null;
59
84
  }
60
85
  export interface ListSubscribeParams {
86
+ /**
87
+ * Body param
88
+ */
61
89
  lists: Array<ProfilesAPI.SubscribeToListsRequestItem>;
90
+ /**
91
+ * Header param: A unique key that makes this request idempotent. If Courier
92
+ * receives another request with the same `Idempotency-Key`, it returns the stored
93
+ * response from the first request without performing the operation again
94
+ * (including the original status code and any error). Use it to safely retry
95
+ * `POST` requests after network failures without risking duplicate sends. The key
96
+ * is scoped to this endpoint.
97
+ */
98
+ 'Idempotency-Key'?: string;
99
+ /**
100
+ * Header param: How long the idempotency key remains valid, as a Unix epoch
101
+ * timestamp in seconds or an ISO 8601 date string. Only applies when
102
+ * `Idempotency-Key` is provided. If omitted, the key is retained for 25 hours; the
103
+ * maximum is 1 year.
104
+ */
105
+ 'x-idempotency-expiration'?: string;
62
106
  }
63
107
  export declare namespace Lists {
64
108
  export { type ListRetrieveResponse as ListRetrieveResponse, type ListDeleteResponse as ListDeleteResponse, type ListSubscribeResponse as ListSubscribeResponse, type ListRetrieveParams as ListRetrieveParams, type ListSubscribeParams as ListSubscribeParams, };
@@ -1 +1 @@
1
- {"version":3,"file":"lists.d.mts","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,gCAA4B;AAClD,OAAO,KAAK,MAAM,sBAAkB;AACpC,OAAO,KAAK,WAAW,uBAAmB;AAC1C,OAAO,EAAE,UAAU,EAAE,mCAA+B;AACpD,OAAO,EAAE,cAAc,EAAE,2CAAuC;AAGhE,qBAAa,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,kBAAkB,GAAG,IAAI,GAAG,SAAc,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,oBAAoB,CAAC;IAInC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAIhF;;;OAGG;IACH,SAAS,CACP,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,qBAAqB,CAAC;CAGrC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,yBAAiB,oBAAoB,CAAC;IACpC,UAAiB,MAAM;QACrB,EAAE,EAAE,MAAM,CAAC;QAEX;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB,WAAW,CAAC,EAAE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClD;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;CACvD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,OAAO,EACL,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
1
+ {"version":3,"file":"lists.d.mts","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,gCAA4B;AAClD,OAAO,KAAK,MAAM,sBAAkB;AACpC,OAAO,KAAK,WAAW,uBAAmB;AAC1C,OAAO,EAAE,UAAU,EAAE,mCAA+B;AAEpD,OAAO,EAAE,cAAc,EAAE,2CAAuC;AAGhE;;GAEG;AACH,qBAAa,KAAM,SAAQ,WAAW;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,kBAAkB,GAAG,IAAI,GAAG,SAAc,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,oBAAoB,CAAC;IAInC;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAIhF;;;;;;;;;;;OAWG;IACH,SAAS,CACP,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,qBAAqB,CAAC;CAoBrC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,yBAAiB,oBAAoB,CAAC;IACpC,UAAiB,MAAM;QACrB,EAAE,EAAE,MAAM,CAAC;QAEX;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB,WAAW,CAAC,EAAE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClD;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAEtD;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,OAAO,EACL,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
@@ -3,20 +3,45 @@ import * as Shared from "../shared.js";
3
3
  import * as ProfilesAPI from "./profiles.js";
4
4
  import { APIPromise } from "../../core/api-promise.js";
5
5
  import { RequestOptions } from "../../internal/request-options.js";
6
+ /**
7
+ * Store the contact information Courier delivers to for each user — email, phone number, push tokens, and any custom data you send to.
8
+ */
6
9
  export declare class Lists extends APIResource {
7
10
  /**
8
- * Returns the subscribed lists for a specified user.
11
+ * Returns the lists a user is subscribed to, with paging. Use it to check what a
12
+ * recipient will receive before sending to a list.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const list = await client.profiles.lists.retrieve(
17
+ * 'user_id',
18
+ * );
19
+ * ```
9
20
  */
10
21
  retrieve(userID: string, query?: ListRetrieveParams | null | undefined, options?: RequestOptions): APIPromise<ListRetrieveResponse>;
11
22
  /**
12
- * Removes all list subscriptions for given user.
23
+ * Removes every list subscription for a user at once. Their profile and
24
+ * preferences are untouched, so this only affects list-targeted sends.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const list = await client.profiles.lists.delete('user_id');
29
+ * ```
13
30
  */
14
31
  delete(userID: string, options?: RequestOptions): APIPromise<ListDeleteResponse>;
15
32
  /**
16
- * Subscribes the given user to one or more lists. If the list does not exist, it
17
- * will be created.
33
+ * Subscribes a user to one or more lists, creating any list that does not yet
34
+ * exist. Optional preferences apply to each subscription.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const response = await client.profiles.lists.subscribe(
39
+ * 'user_id',
40
+ * { lists: [{ listId: 'listId' }] },
41
+ * );
42
+ * ```
18
43
  */
19
- subscribe(userID: string, body: ListSubscribeParams, options?: RequestOptions): APIPromise<ListSubscribeResponse>;
44
+ subscribe(userID: string, params: ListSubscribeParams, options?: RequestOptions): APIPromise<ListSubscribeResponse>;
20
45
  }
21
46
  export interface ListRetrieveResponse {
22
47
  paging: Shared.Paging;
@@ -58,7 +83,26 @@ export interface ListRetrieveParams {
58
83
  cursor?: string | null;
59
84
  }
60
85
  export interface ListSubscribeParams {
86
+ /**
87
+ * Body param
88
+ */
61
89
  lists: Array<ProfilesAPI.SubscribeToListsRequestItem>;
90
+ /**
91
+ * Header param: A unique key that makes this request idempotent. If Courier
92
+ * receives another request with the same `Idempotency-Key`, it returns the stored
93
+ * response from the first request without performing the operation again
94
+ * (including the original status code and any error). Use it to safely retry
95
+ * `POST` requests after network failures without risking duplicate sends. The key
96
+ * is scoped to this endpoint.
97
+ */
98
+ 'Idempotency-Key'?: string;
99
+ /**
100
+ * Header param: How long the idempotency key remains valid, as a Unix epoch
101
+ * timestamp in seconds or an ISO 8601 date string. Only applies when
102
+ * `Idempotency-Key` is provided. If omitted, the key is retained for 25 hours; the
103
+ * maximum is 1 year.
104
+ */
105
+ 'x-idempotency-expiration'?: string;
62
106
  }
63
107
  export declare namespace Lists {
64
108
  export { type ListRetrieveResponse as ListRetrieveResponse, type ListDeleteResponse as ListDeleteResponse, type ListSubscribeResponse as ListSubscribeResponse, type ListRetrieveParams as ListRetrieveParams, type ListSubscribeParams as ListSubscribeParams, };
@@ -1 +1 @@
1
- {"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,+BAA4B;AAClD,OAAO,KAAK,MAAM,qBAAkB;AACpC,OAAO,KAAK,WAAW,sBAAmB;AAC1C,OAAO,EAAE,UAAU,EAAE,kCAA+B;AACpD,OAAO,EAAE,cAAc,EAAE,0CAAuC;AAGhE,qBAAa,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,kBAAkB,GAAG,IAAI,GAAG,SAAc,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,oBAAoB,CAAC;IAInC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAIhF;;;OAGG;IACH,SAAS,CACP,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,qBAAqB,CAAC;CAGrC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,yBAAiB,oBAAoB,CAAC;IACpC,UAAiB,MAAM;QACrB,EAAE,EAAE,MAAM,CAAC;QAEX;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB,WAAW,CAAC,EAAE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClD;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;CACvD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,OAAO,EACL,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
1
+ {"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,+BAA4B;AAClD,OAAO,KAAK,MAAM,qBAAkB;AACpC,OAAO,KAAK,WAAW,sBAAmB;AAC1C,OAAO,EAAE,UAAU,EAAE,kCAA+B;AAEpD,OAAO,EAAE,cAAc,EAAE,0CAAuC;AAGhE;;GAEG;AACH,qBAAa,KAAM,SAAQ,WAAW;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,kBAAkB,GAAG,IAAI,GAAG,SAAc,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,oBAAoB,CAAC;IAInC;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAIhF;;;;;;;;;;;OAWG;IACH,SAAS,CACP,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,qBAAqB,CAAC;CAoBrC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,yBAAiB,oBAAoB,CAAC;IACpC,UAAiB,MAAM;QACrB,EAAE,EAAE,MAAM,CAAC;QAEX;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB,WAAW,CAAC,EAAE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClD;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAEtD;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,OAAO,EACL,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
@@ -3,26 +3,65 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Lists = void 0;
5
5
  const resource_1 = require("../../core/resource.js");
6
+ const headers_1 = require("../../internal/headers.js");
6
7
  const path_1 = require("../../internal/utils/path.js");
8
+ /**
9
+ * Store the contact information Courier delivers to for each user — email, phone number, push tokens, and any custom data you send to.
10
+ */
7
11
  class Lists extends resource_1.APIResource {
8
12
  /**
9
- * Returns the subscribed lists for a specified user.
13
+ * Returns the lists a user is subscribed to, with paging. Use it to check what a
14
+ * recipient will receive before sending to a list.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const list = await client.profiles.lists.retrieve(
19
+ * 'user_id',
20
+ * );
21
+ * ```
10
22
  */
11
23
  retrieve(userID, query = {}, options) {
12
24
  return this._client.get((0, path_1.path) `/profiles/${userID}/lists`, { query, ...options });
13
25
  }
14
26
  /**
15
- * Removes all list subscriptions for given user.
27
+ * Removes every list subscription for a user at once. Their profile and
28
+ * preferences are untouched, so this only affects list-targeted sends.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const list = await client.profiles.lists.delete('user_id');
33
+ * ```
16
34
  */
17
35
  delete(userID, options) {
18
36
  return this._client.delete((0, path_1.path) `/profiles/${userID}/lists`, options);
19
37
  }
20
38
  /**
21
- * Subscribes the given user to one or more lists. If the list does not exist, it
22
- * will be created.
39
+ * Subscribes a user to one or more lists, creating any list that does not yet
40
+ * exist. Optional preferences apply to each subscription.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const response = await client.profiles.lists.subscribe(
45
+ * 'user_id',
46
+ * { lists: [{ listId: 'listId' }] },
47
+ * );
48
+ * ```
23
49
  */
24
- subscribe(userID, body, options) {
25
- return this._client.post((0, path_1.path) `/profiles/${userID}/lists`, { body, ...options });
50
+ subscribe(userID, params, options) {
51
+ const { 'Idempotency-Key': idempotencyKey, 'x-idempotency-expiration': xIdempotencyExpiration, ...body } = params;
52
+ return this._client.post((0, path_1.path) `/profiles/${userID}/lists`, {
53
+ body,
54
+ ...options,
55
+ headers: (0, headers_1.buildHeaders)([
56
+ {
57
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
58
+ ...(xIdempotencyExpiration != null ?
59
+ { 'x-idempotency-expiration': xIdempotencyExpiration }
60
+ : undefined),
61
+ },
62
+ options?.headers,
63
+ ]),
64
+ });
26
65
  }
27
66
  }
28
67
  exports.Lists = Lists;
@@ -1 +1 @@
1
- {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,qDAAkD;AAKlD,uDAAiD;AAEjD,MAAa,KAAM,SAAQ,sBAAW;IACpC;;OAEG;IACH,QAAQ,CACN,MAAc,EACd,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,aAAa,MAAM,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAc,EAAE,OAAwB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,aAAa,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;;OAGG;IACH,SAAS,CACP,MAAc,EACd,IAAyB,EACzB,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,aAAa,MAAM,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;CACF;AA9BD,sBA8BC"}
1
+ {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,qDAAkD;AAIlD,uDAAsD;AAEtD,uDAAiD;AAEjD;;GAEG;AACH,MAAa,KAAM,SAAQ,sBAAW;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CACN,MAAc,EACd,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,aAAa,MAAM,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAc,EAAE,OAAwB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,aAAa,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CACP,MAAc,EACd,MAA2B,EAC3B,OAAwB;QAExB,MAAM,EACJ,iBAAiB,EAAE,cAAc,EACjC,0BAA0B,EAAE,sBAAsB,EAClD,GAAG,IAAI,EACR,GAAG,MAAM,CAAC;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,aAAa,MAAM,QAAQ,EAAE;YACxD,IAAI;YACJ,GAAG,OAAO;YACV,OAAO,EAAE,IAAA,sBAAY,EAAC;gBACpB;oBACE,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC/E,GAAG,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC;wBAClC,EAAE,0BAA0B,EAAE,sBAAsB,EAAE;wBACxD,CAAC,CAAC,SAAS,CAAC;iBACb;gBACD,OAAO,EAAE,OAAO;aACjB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;CACF;AArED,sBAqEC"}
@@ -1,25 +1,64 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
  import { APIResource } from "../../core/resource.mjs";
3
+ import { buildHeaders } from "../../internal/headers.mjs";
3
4
  import { path } from "../../internal/utils/path.mjs";
5
+ /**
6
+ * Store the contact information Courier delivers to for each user — email, phone number, push tokens, and any custom data you send to.
7
+ */
4
8
  export class Lists extends APIResource {
5
9
  /**
6
- * Returns the subscribed lists for a specified user.
10
+ * Returns the lists a user is subscribed to, with paging. Use it to check what a
11
+ * recipient will receive before sending to a list.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const list = await client.profiles.lists.retrieve(
16
+ * 'user_id',
17
+ * );
18
+ * ```
7
19
  */
8
20
  retrieve(userID, query = {}, options) {
9
21
  return this._client.get(path `/profiles/${userID}/lists`, { query, ...options });
10
22
  }
11
23
  /**
12
- * Removes all list subscriptions for given user.
24
+ * Removes every list subscription for a user at once. Their profile and
25
+ * preferences are untouched, so this only affects list-targeted sends.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const list = await client.profiles.lists.delete('user_id');
30
+ * ```
13
31
  */
14
32
  delete(userID, options) {
15
33
  return this._client.delete(path `/profiles/${userID}/lists`, options);
16
34
  }
17
35
  /**
18
- * Subscribes the given user to one or more lists. If the list does not exist, it
19
- * will be created.
36
+ * Subscribes a user to one or more lists, creating any list that does not yet
37
+ * exist. Optional preferences apply to each subscription.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const response = await client.profiles.lists.subscribe(
42
+ * 'user_id',
43
+ * { lists: [{ listId: 'listId' }] },
44
+ * );
45
+ * ```
20
46
  */
21
- subscribe(userID, body, options) {
22
- return this._client.post(path `/profiles/${userID}/lists`, { body, ...options });
47
+ subscribe(userID, params, options) {
48
+ const { 'Idempotency-Key': idempotencyKey, 'x-idempotency-expiration': xIdempotencyExpiration, ...body } = params;
49
+ return this._client.post(path `/profiles/${userID}/lists`, {
50
+ body,
51
+ ...options,
52
+ headers: buildHeaders([
53
+ {
54
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
55
+ ...(xIdempotencyExpiration != null ?
56
+ { 'x-idempotency-expiration': xIdempotencyExpiration }
57
+ : undefined),
58
+ },
59
+ options?.headers,
60
+ ]),
61
+ });
23
62
  }
24
63
  }
25
64
  //# sourceMappingURL=lists.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lists.mjs","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,gCAA4B;AAKlD,OAAO,EAAE,IAAI,EAAE,sCAAkC;AAEjD,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,QAAQ,CACN,MAAc,EACd,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,aAAa,MAAM,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAc,EAAE,OAAwB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,aAAa,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;;OAGG;IACH,SAAS,CACP,MAAc,EACd,IAAyB,EACzB,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,aAAa,MAAM,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;CACF"}
1
+ {"version":3,"file":"lists.mjs","sourceRoot":"","sources":["../../src/resources/profiles/lists.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,gCAA4B;AAIlD,OAAO,EAAE,YAAY,EAAE,mCAA+B;AAEtD,OAAO,EAAE,IAAI,EAAE,sCAAkC;AAEjD;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CACN,MAAc,EACd,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,aAAa,MAAM,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAc,EAAE,OAAwB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,aAAa,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CACP,MAAc,EACd,MAA2B,EAC3B,OAAwB;QAExB,MAAM,EACJ,iBAAiB,EAAE,cAAc,EACjC,0BAA0B,EAAE,sBAAsB,EAClD,GAAG,IAAI,EACR,GAAG,MAAM,CAAC;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,aAAa,MAAM,QAAQ,EAAE;YACxD,IAAI;YACJ,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC;gBACpB;oBACE,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC/E,GAAG,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC;wBAClC,EAAE,0BAA0B,EAAE,sBAAsB,EAAE;wBACxD,CAAC,CAAC,SAAS,CAAC;iBACb;gBACD,OAAO,EAAE,OAAO;aACjB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -4,31 +4,71 @@ import * as ListsAPI from "./lists.mjs";
4
4
  import { ListDeleteResponse, ListRetrieveParams, ListRetrieveResponse, ListSubscribeParams, ListSubscribeResponse, Lists } from "./lists.mjs";
5
5
  import { APIPromise } from "../../core/api-promise.mjs";
6
6
  import { RequestOptions } from "../../internal/request-options.mjs";
7
+ /**
8
+ * Store the contact information Courier delivers to for each user — email, phone number, push tokens, and any custom data you send to.
9
+ */
7
10
  export declare class Profiles extends APIResource {
8
11
  lists: ListsAPI.Lists;
9
12
  /**
10
- * Merge the supplied values with an existing profile or create a new profile if
11
- * one doesn't already exist.
13
+ * Merges the supplied values into a user's profile, creating it if absent and
14
+ * leaving any key you omit untouched. Prefer this for everyday writes.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const profile = await client.profiles.create('user_id', {
19
+ * profile: { foo: 'bar' },
20
+ * });
21
+ * ```
12
22
  */
13
- create(userID: string, body: ProfileCreateParams, options?: RequestOptions): APIPromise<ProfileCreateResponse>;
23
+ create(userID: string, params: ProfileCreateParams, options?: RequestOptions): APIPromise<ProfileCreateResponse>;
14
24
  /**
15
- * Returns the specified user profile.
25
+ * Returns a user's stored profile and preferences, including the email address,
26
+ * phone number, and push tokens Courier can reach them on.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const profile = await client.profiles.retrieve('user_id');
31
+ * ```
16
32
  */
17
33
  retrieve(userID: string, options?: RequestOptions): APIPromise<ProfileRetrieveResponse>;
18
34
  /**
19
- * Update a profile
35
+ * Applies a JSON Patch to a user profile, adding, removing, or replacing
36
+ * individual fields without sending the whole object.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * await client.profiles.update('user_id', {
41
+ * patch: [
42
+ * {
43
+ * op: 'op',
44
+ * path: 'path',
45
+ * value: 'value',
46
+ * },
47
+ * ],
48
+ * });
49
+ * ```
20
50
  */
21
51
  update(userID: string, body: ProfileUpdateParams, options?: RequestOptions): APIPromise<void>;
22
52
  /**
23
- * Deletes the specified user profile.
53
+ * Deletes a user's profile and stored contact details. List subscriptions and
54
+ * preferences are separate resources, so remove those too if required.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * await client.profiles.delete('user_id');
59
+ * ```
24
60
  */
25
61
  delete(userID: string, options?: RequestOptions): APIPromise<void>;
26
62
  /**
27
- * When using `PUT`, be sure to include all the key-value pairs required by the
28
- * recipient's profile. Any key-value pairs that exist in the profile but fail to
29
- * be included in the `PUT` request will be removed from the profile. Remember, a
30
- * `PUT` update is a full replacement of the data. For partial updates, use the
31
- * [Patch](https://www.courier.com/docs/reference/profiles/patch/) request.
63
+ * Overwrites a user profile in full, removing any key absent from the request
64
+ * body. Use the patch endpoint when changing a single field.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const response = await client.profiles.replace('user_id', {
69
+ * profile: { foo: 'bar' },
70
+ * });
71
+ * ```
32
72
  */
33
73
  replace(userID: string, body: ProfileReplaceParams, options?: RequestOptions): APIPromise<ProfileReplaceResponse>;
34
74
  }
@@ -49,9 +89,28 @@ export interface ProfileReplaceResponse {
49
89
  status: 'SUCCESS';
50
90
  }
51
91
  export interface ProfileCreateParams {
92
+ /**
93
+ * Body param
94
+ */
52
95
  profile: {
53
96
  [key: string]: unknown;
54
97
  };
98
+ /**
99
+ * Header param: A unique key that makes this request idempotent. If Courier
100
+ * receives another request with the same `Idempotency-Key`, it returns the stored
101
+ * response from the first request without performing the operation again
102
+ * (including the original status code and any error). Use it to safely retry
103
+ * `POST` requests after network failures without risking duplicate sends. The key
104
+ * is scoped to this endpoint.
105
+ */
106
+ 'Idempotency-Key'?: string;
107
+ /**
108
+ * Header param: How long the idempotency key remains valid, as a Unix epoch
109
+ * timestamp in seconds or an ISO 8601 date string. Only applies when
110
+ * `Idempotency-Key` is provided. If omitted, the key is retained for 25 hours; the
111
+ * maximum is 1 year.
112
+ */
113
+ 'x-idempotency-expiration'?: string;
55
114
  }
56
115
  export interface ProfileUpdateParams {
57
116
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.mts","sourceRoot":"","sources":["../../src/resources/profiles/profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiles.d.mts","sourceRoot":"","sources":["../../src/resources/profiles/profiles.ts"],"names":[],"mappings":"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"}
@@ -4,31 +4,71 @@ import * as ListsAPI from "./lists.js";
4
4
  import { ListDeleteResponse, ListRetrieveParams, ListRetrieveResponse, ListSubscribeParams, ListSubscribeResponse, Lists } from "./lists.js";
5
5
  import { APIPromise } from "../../core/api-promise.js";
6
6
  import { RequestOptions } from "../../internal/request-options.js";
7
+ /**
8
+ * Store the contact information Courier delivers to for each user — email, phone number, push tokens, and any custom data you send to.
9
+ */
7
10
  export declare class Profiles extends APIResource {
8
11
  lists: ListsAPI.Lists;
9
12
  /**
10
- * Merge the supplied values with an existing profile or create a new profile if
11
- * one doesn't already exist.
13
+ * Merges the supplied values into a user's profile, creating it if absent and
14
+ * leaving any key you omit untouched. Prefer this for everyday writes.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const profile = await client.profiles.create('user_id', {
19
+ * profile: { foo: 'bar' },
20
+ * });
21
+ * ```
12
22
  */
13
- create(userID: string, body: ProfileCreateParams, options?: RequestOptions): APIPromise<ProfileCreateResponse>;
23
+ create(userID: string, params: ProfileCreateParams, options?: RequestOptions): APIPromise<ProfileCreateResponse>;
14
24
  /**
15
- * Returns the specified user profile.
25
+ * Returns a user's stored profile and preferences, including the email address,
26
+ * phone number, and push tokens Courier can reach them on.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const profile = await client.profiles.retrieve('user_id');
31
+ * ```
16
32
  */
17
33
  retrieve(userID: string, options?: RequestOptions): APIPromise<ProfileRetrieveResponse>;
18
34
  /**
19
- * Update a profile
35
+ * Applies a JSON Patch to a user profile, adding, removing, or replacing
36
+ * individual fields without sending the whole object.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * await client.profiles.update('user_id', {
41
+ * patch: [
42
+ * {
43
+ * op: 'op',
44
+ * path: 'path',
45
+ * value: 'value',
46
+ * },
47
+ * ],
48
+ * });
49
+ * ```
20
50
  */
21
51
  update(userID: string, body: ProfileUpdateParams, options?: RequestOptions): APIPromise<void>;
22
52
  /**
23
- * Deletes the specified user profile.
53
+ * Deletes a user's profile and stored contact details. List subscriptions and
54
+ * preferences are separate resources, so remove those too if required.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * await client.profiles.delete('user_id');
59
+ * ```
24
60
  */
25
61
  delete(userID: string, options?: RequestOptions): APIPromise<void>;
26
62
  /**
27
- * When using `PUT`, be sure to include all the key-value pairs required by the
28
- * recipient's profile. Any key-value pairs that exist in the profile but fail to
29
- * be included in the `PUT` request will be removed from the profile. Remember, a
30
- * `PUT` update is a full replacement of the data. For partial updates, use the
31
- * [Patch](https://www.courier.com/docs/reference/profiles/patch/) request.
63
+ * Overwrites a user profile in full, removing any key absent from the request
64
+ * body. Use the patch endpoint when changing a single field.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const response = await client.profiles.replace('user_id', {
69
+ * profile: { foo: 'bar' },
70
+ * });
71
+ * ```
32
72
  */
33
73
  replace(userID: string, body: ProfileReplaceParams, options?: RequestOptions): APIPromise<ProfileReplaceResponse>;
34
74
  }
@@ -49,9 +89,28 @@ export interface ProfileReplaceResponse {
49
89
  status: 'SUCCESS';
50
90
  }
51
91
  export interface ProfileCreateParams {
92
+ /**
93
+ * Body param
94
+ */
52
95
  profile: {
53
96
  [key: string]: unknown;
54
97
  };
98
+ /**
99
+ * Header param: A unique key that makes this request idempotent. If Courier
100
+ * receives another request with the same `Idempotency-Key`, it returns the stored
101
+ * response from the first request without performing the operation again
102
+ * (including the original status code and any error). Use it to safely retry
103
+ * `POST` requests after network failures without risking duplicate sends. The key
104
+ * is scoped to this endpoint.
105
+ */
106
+ 'Idempotency-Key'?: string;
107
+ /**
108
+ * Header param: How long the idempotency key remains valid, as a Unix epoch
109
+ * timestamp in seconds or an ISO 8601 date string. Only applies when
110
+ * `Idempotency-Key` is provided. If omitted, the key is retained for 25 hours; the
111
+ * maximum is 1 year.
112
+ */
113
+ 'x-idempotency-expiration'?: string;
55
114
  }
56
115
  export interface ProfileUpdateParams {
57
116
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/resources/profiles/profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/resources/profiles/profiles.ts"],"names":[],"mappings":"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"}