sequenzy 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +201 -0
  3. package/README.md +358 -0
  4. package/api-promise.d.mts +2 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +2 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +6 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +2 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +183 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +183 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +464 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +460 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/resource.d.mts +6 -0
  37. package/core/resource.d.mts.map +1 -0
  38. package/core/resource.d.ts +6 -0
  39. package/core/resource.d.ts.map +1 -0
  40. package/core/resource.js +11 -0
  41. package/core/resource.js.map +1 -0
  42. package/core/resource.mjs +7 -0
  43. package/core/resource.mjs.map +1 -0
  44. package/core/uploads.d.mts +3 -0
  45. package/core/uploads.d.mts.map +1 -0
  46. package/core/uploads.d.ts +3 -0
  47. package/core/uploads.d.ts.map +1 -0
  48. package/core/uploads.js +6 -0
  49. package/core/uploads.js.map +1 -0
  50. package/core/uploads.mjs +2 -0
  51. package/core/uploads.mjs.map +1 -0
  52. package/error.d.mts +2 -0
  53. package/error.d.mts.map +1 -0
  54. package/error.d.ts +2 -0
  55. package/error.d.ts.map +1 -0
  56. package/error.js +6 -0
  57. package/error.js.map +1 -0
  58. package/error.mjs +2 -0
  59. package/error.mjs.map +1 -0
  60. package/index.d.mts +6 -0
  61. package/index.d.mts.map +1 -0
  62. package/index.d.ts +6 -0
  63. package/index.d.ts.map +1 -0
  64. package/index.js +30 -0
  65. package/index.js.map +1 -0
  66. package/index.mjs +7 -0
  67. package/index.mjs.map +1 -0
  68. package/internal/builtin-types.d.mts +73 -0
  69. package/internal/builtin-types.d.mts.map +1 -0
  70. package/internal/builtin-types.d.ts +73 -0
  71. package/internal/builtin-types.d.ts.map +1 -0
  72. package/internal/builtin-types.js +4 -0
  73. package/internal/builtin-types.js.map +1 -0
  74. package/internal/builtin-types.mjs +3 -0
  75. package/internal/builtin-types.mjs.map +1 -0
  76. package/internal/detect-platform.d.mts +15 -0
  77. package/internal/detect-platform.d.mts.map +1 -0
  78. package/internal/detect-platform.d.ts +15 -0
  79. package/internal/detect-platform.d.ts.map +1 -0
  80. package/internal/detect-platform.js +162 -0
  81. package/internal/detect-platform.js.map +1 -0
  82. package/internal/detect-platform.mjs +157 -0
  83. package/internal/detect-platform.mjs.map +1 -0
  84. package/internal/errors.d.mts +3 -0
  85. package/internal/errors.d.mts.map +1 -0
  86. package/internal/errors.d.ts +3 -0
  87. package/internal/errors.d.ts.map +1 -0
  88. package/internal/errors.js +41 -0
  89. package/internal/errors.js.map +1 -0
  90. package/internal/errors.mjs +36 -0
  91. package/internal/errors.mjs.map +1 -0
  92. package/internal/headers.d.mts +20 -0
  93. package/internal/headers.d.mts.map +1 -0
  94. package/internal/headers.d.ts +20 -0
  95. package/internal/headers.d.ts.map +1 -0
  96. package/internal/headers.js +79 -0
  97. package/internal/headers.js.map +1 -0
  98. package/internal/headers.mjs +74 -0
  99. package/internal/headers.mjs.map +1 -0
  100. package/internal/parse.d.mts +12 -0
  101. package/internal/parse.d.mts.map +1 -0
  102. package/internal/parse.d.ts +12 -0
  103. package/internal/parse.d.ts.map +1 -0
  104. package/internal/parse.js +35 -0
  105. package/internal/parse.js.map +1 -0
  106. package/internal/parse.mjs +32 -0
  107. package/internal/parse.mjs.map +1 -0
  108. package/internal/request-options.d.mts +75 -0
  109. package/internal/request-options.d.mts.map +1 -0
  110. package/internal/request-options.d.ts +75 -0
  111. package/internal/request-options.d.ts.map +1 -0
  112. package/internal/request-options.js +14 -0
  113. package/internal/request-options.js.map +1 -0
  114. package/internal/request-options.mjs +10 -0
  115. package/internal/request-options.mjs.map +1 -0
  116. package/internal/shim-types.d.mts +17 -0
  117. package/internal/shim-types.d.mts.map +1 -0
  118. package/internal/shim-types.d.ts +17 -0
  119. package/internal/shim-types.d.ts.map +1 -0
  120. package/internal/shim-types.js +4 -0
  121. package/internal/shim-types.js.map +1 -0
  122. package/internal/shim-types.mjs +3 -0
  123. package/internal/shim-types.mjs.map +1 -0
  124. package/internal/shims.d.mts +20 -0
  125. package/internal/shims.d.mts.map +1 -0
  126. package/internal/shims.d.ts +20 -0
  127. package/internal/shims.d.ts.map +1 -0
  128. package/internal/shims.js +92 -0
  129. package/internal/shims.js.map +1 -0
  130. package/internal/shims.mjs +85 -0
  131. package/internal/shims.mjs.map +1 -0
  132. package/internal/to-file.d.mts +45 -0
  133. package/internal/to-file.d.mts.map +1 -0
  134. package/internal/to-file.d.ts +45 -0
  135. package/internal/to-file.d.ts.map +1 -0
  136. package/internal/to-file.js +91 -0
  137. package/internal/to-file.js.map +1 -0
  138. package/internal/to-file.mjs +88 -0
  139. package/internal/to-file.mjs.map +1 -0
  140. package/internal/tslib.js +81 -0
  141. package/internal/tslib.mjs +17 -0
  142. package/internal/types.d.mts +69 -0
  143. package/internal/types.d.mts.map +1 -0
  144. package/internal/types.d.ts +69 -0
  145. package/internal/types.d.ts.map +1 -0
  146. package/internal/types.js +4 -0
  147. package/internal/types.js.map +1 -0
  148. package/internal/types.mjs +3 -0
  149. package/internal/types.mjs.map +1 -0
  150. package/internal/uploads.d.mts +42 -0
  151. package/internal/uploads.d.mts.map +1 -0
  152. package/internal/uploads.d.ts +42 -0
  153. package/internal/uploads.d.ts.map +1 -0
  154. package/internal/uploads.js +141 -0
  155. package/internal/uploads.js.map +1 -0
  156. package/internal/uploads.mjs +131 -0
  157. package/internal/uploads.mjs.map +1 -0
  158. package/internal/utils/base64.d.mts +3 -0
  159. package/internal/utils/base64.d.mts.map +1 -0
  160. package/internal/utils/base64.d.ts +3 -0
  161. package/internal/utils/base64.d.ts.map +1 -0
  162. package/internal/utils/base64.js +38 -0
  163. package/internal/utils/base64.js.map +1 -0
  164. package/internal/utils/base64.mjs +33 -0
  165. package/internal/utils/base64.mjs.map +1 -0
  166. package/internal/utils/bytes.d.mts +4 -0
  167. package/internal/utils/bytes.d.mts.map +1 -0
  168. package/internal/utils/bytes.d.ts +4 -0
  169. package/internal/utils/bytes.d.ts.map +1 -0
  170. package/internal/utils/bytes.js +31 -0
  171. package/internal/utils/bytes.js.map +1 -0
  172. package/internal/utils/bytes.mjs +26 -0
  173. package/internal/utils/bytes.mjs.map +1 -0
  174. package/internal/utils/env.d.mts +9 -0
  175. package/internal/utils/env.d.mts.map +1 -0
  176. package/internal/utils/env.d.ts +9 -0
  177. package/internal/utils/env.d.ts.map +1 -0
  178. package/internal/utils/env.js +22 -0
  179. package/internal/utils/env.js.map +1 -0
  180. package/internal/utils/env.mjs +18 -0
  181. package/internal/utils/env.mjs.map +1 -0
  182. package/internal/utils/log.d.mts +37 -0
  183. package/internal/utils/log.d.mts.map +1 -0
  184. package/internal/utils/log.d.ts +37 -0
  185. package/internal/utils/log.d.ts.map +1 -0
  186. package/internal/utils/log.js +85 -0
  187. package/internal/utils/log.js.map +1 -0
  188. package/internal/utils/log.mjs +79 -0
  189. package/internal/utils/log.mjs.map +1 -0
  190. package/internal/utils/path.d.mts +15 -0
  191. package/internal/utils/path.d.mts.map +1 -0
  192. package/internal/utils/path.d.ts +15 -0
  193. package/internal/utils/path.d.ts.map +1 -0
  194. package/internal/utils/path.js +79 -0
  195. package/internal/utils/path.js.map +1 -0
  196. package/internal/utils/path.mjs +74 -0
  197. package/internal/utils/path.mjs.map +1 -0
  198. package/internal/utils/sleep.d.mts +2 -0
  199. package/internal/utils/sleep.d.mts.map +1 -0
  200. package/internal/utils/sleep.d.ts +2 -0
  201. package/internal/utils/sleep.d.ts.map +1 -0
  202. package/internal/utils/sleep.js +7 -0
  203. package/internal/utils/sleep.js.map +1 -0
  204. package/internal/utils/sleep.mjs +3 -0
  205. package/internal/utils/sleep.mjs.map +1 -0
  206. package/internal/utils/uuid.d.mts +5 -0
  207. package/internal/utils/uuid.d.mts.map +1 -0
  208. package/internal/utils/uuid.d.ts +5 -0
  209. package/internal/utils/uuid.d.ts.map +1 -0
  210. package/internal/utils/uuid.js +19 -0
  211. package/internal/utils/uuid.js.map +1 -0
  212. package/internal/utils/uuid.mjs +15 -0
  213. package/internal/utils/uuid.mjs.map +1 -0
  214. package/internal/utils/values.d.mts +18 -0
  215. package/internal/utils/values.d.mts.map +1 -0
  216. package/internal/utils/values.d.ts +18 -0
  217. package/internal/utils/values.d.ts.map +1 -0
  218. package/internal/utils/values.js +112 -0
  219. package/internal/utils/values.js.map +1 -0
  220. package/internal/utils/values.mjs +94 -0
  221. package/internal/utils/values.mjs.map +1 -0
  222. package/internal/utils.d.mts +7 -0
  223. package/internal/utils.d.mts.map +1 -0
  224. package/internal/utils.d.ts +7 -0
  225. package/internal/utils.d.ts.map +1 -0
  226. package/internal/utils.js +11 -0
  227. package/internal/utils.js.map +1 -0
  228. package/internal/utils.mjs +8 -0
  229. package/internal/utils.mjs.map +1 -0
  230. package/package.json +137 -0
  231. package/resource.d.mts +2 -0
  232. package/resource.d.mts.map +1 -0
  233. package/resource.d.ts +2 -0
  234. package/resource.d.ts.map +1 -0
  235. package/resource.js +6 -0
  236. package/resource.js.map +1 -0
  237. package/resource.mjs +2 -0
  238. package/resource.mjs.map +1 -0
  239. package/resources/index.d.mts +3 -0
  240. package/resources/index.d.mts.map +1 -0
  241. package/resources/index.d.ts +3 -0
  242. package/resources/index.d.ts.map +1 -0
  243. package/resources/index.js +9 -0
  244. package/resources/index.js.map +1 -0
  245. package/resources/index.mjs +4 -0
  246. package/resources/index.mjs.map +1 -0
  247. package/resources/subscribers/events.d.mts +107 -0
  248. package/resources/subscribers/events.d.mts.map +1 -0
  249. package/resources/subscribers/events.d.ts +107 -0
  250. package/resources/subscribers/events.d.ts.map +1 -0
  251. package/resources/subscribers/events.js +40 -0
  252. package/resources/subscribers/events.js.map +1 -0
  253. package/resources/subscribers/events.mjs +36 -0
  254. package/resources/subscribers/events.mjs.map +1 -0
  255. package/resources/subscribers/index.d.mts +4 -0
  256. package/resources/subscribers/index.d.mts.map +1 -0
  257. package/resources/subscribers/index.d.ts +4 -0
  258. package/resources/subscribers/index.d.ts.map +1 -0
  259. package/resources/subscribers/index.js +11 -0
  260. package/resources/subscribers/index.js.map +1 -0
  261. package/resources/subscribers/index.mjs +5 -0
  262. package/resources/subscribers/index.mjs.map +1 -0
  263. package/resources/subscribers/subscribers.d.mts +146 -0
  264. package/resources/subscribers/subscribers.d.mts.map +1 -0
  265. package/resources/subscribers/subscribers.d.ts +146 -0
  266. package/resources/subscribers/subscribers.d.ts.map +1 -0
  267. package/resources/subscribers/subscribers.js +82 -0
  268. package/resources/subscribers/subscribers.js.map +1 -0
  269. package/resources/subscribers/subscribers.mjs +77 -0
  270. package/resources/subscribers/subscribers.mjs.map +1 -0
  271. package/resources/subscribers/tags.d.mts +99 -0
  272. package/resources/subscribers/tags.d.mts.map +1 -0
  273. package/resources/subscribers/tags.d.ts +99 -0
  274. package/resources/subscribers/tags.d.ts.map +1 -0
  275. package/resources/subscribers/tags.js +39 -0
  276. package/resources/subscribers/tags.js.map +1 -0
  277. package/resources/subscribers/tags.mjs +35 -0
  278. package/resources/subscribers/tags.mjs.map +1 -0
  279. package/resources/subscribers.d.mts +2 -0
  280. package/resources/subscribers.d.mts.map +1 -0
  281. package/resources/subscribers.d.ts +2 -0
  282. package/resources/subscribers.d.ts.map +1 -0
  283. package/resources/subscribers.js +6 -0
  284. package/resources/subscribers.js.map +1 -0
  285. package/resources/subscribers.mjs +3 -0
  286. package/resources/subscribers.mjs.map +1 -0
  287. package/resources/transactional.d.mts +121 -0
  288. package/resources/transactional.d.mts.map +1 -0
  289. package/resources/transactional.d.ts +121 -0
  290. package/resources/transactional.d.ts.map +1 -0
  291. package/resources/transactional.js +56 -0
  292. package/resources/transactional.js.map +1 -0
  293. package/resources/transactional.mjs +52 -0
  294. package/resources/transactional.mjs.map +1 -0
  295. package/resources.d.mts +2 -0
  296. package/resources.d.mts.map +1 -0
  297. package/resources.d.ts +2 -0
  298. package/resources.d.ts.map +1 -0
  299. package/resources.js +5 -0
  300. package/resources.js.map +1 -0
  301. package/resources.mjs +2 -0
  302. package/resources.mjs.map +1 -0
  303. package/src/api-promise.ts +2 -0
  304. package/src/client.ts +767 -0
  305. package/src/core/README.md +3 -0
  306. package/src/core/api-promise.ts +92 -0
  307. package/src/core/error.ts +130 -0
  308. package/src/core/resource.ts +11 -0
  309. package/src/core/uploads.ts +2 -0
  310. package/src/error.ts +2 -0
  311. package/src/index.ts +22 -0
  312. package/src/internal/README.md +3 -0
  313. package/src/internal/builtin-types.ts +93 -0
  314. package/src/internal/detect-platform.ts +196 -0
  315. package/src/internal/errors.ts +33 -0
  316. package/src/internal/headers.ts +97 -0
  317. package/src/internal/parse.ts +50 -0
  318. package/src/internal/request-options.ts +91 -0
  319. package/src/internal/shim-types.ts +26 -0
  320. package/src/internal/shims.ts +107 -0
  321. package/src/internal/to-file.ts +154 -0
  322. package/src/internal/types.ts +95 -0
  323. package/src/internal/uploads.ts +187 -0
  324. package/src/internal/utils/base64.ts +40 -0
  325. package/src/internal/utils/bytes.ts +32 -0
  326. package/src/internal/utils/env.ts +18 -0
  327. package/src/internal/utils/log.ts +126 -0
  328. package/src/internal/utils/path.ts +88 -0
  329. package/src/internal/utils/sleep.ts +3 -0
  330. package/src/internal/utils/uuid.ts +17 -0
  331. package/src/internal/utils/values.ts +105 -0
  332. package/src/internal/utils.ts +8 -0
  333. package/src/lib/.keep +4 -0
  334. package/src/resource.ts +2 -0
  335. package/src/resources/index.ts +22 -0
  336. package/src/resources/subscribers/events.ts +142 -0
  337. package/src/resources/subscribers/index.ts +28 -0
  338. package/src/resources/subscribers/subscribers.ts +238 -0
  339. package/src/resources/subscribers/tags.ts +133 -0
  340. package/src/resources/subscribers.ts +3 -0
  341. package/src/resources/transactional.ts +167 -0
  342. package/src/resources.ts +1 -0
  343. package/src/tsconfig.json +11 -0
  344. package/src/uploads.ts +2 -0
  345. package/src/version.ts +1 -0
  346. package/uploads.d.mts +2 -0
  347. package/uploads.d.mts.map +1 -0
  348. package/uploads.d.ts +2 -0
  349. package/uploads.d.ts.map +1 -0
  350. package/uploads.js +6 -0
  351. package/uploads.js.map +1 -0
  352. package/uploads.mjs +2 -0
  353. package/uploads.mjs.map +1 -0
  354. package/version.d.mts +2 -0
  355. package/version.d.mts.map +1 -0
  356. package/version.d.ts +2 -0
  357. package/version.d.ts.map +1 -0
  358. package/version.js +5 -0
  359. package/version.js.map +1 -0
  360. package/version.mjs +2 -0
  361. package/version.mjs.map +1 -0
@@ -0,0 +1,142 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { RequestOptions } from '../../internal/request-options';
6
+
7
+ export class Events extends APIResource {
8
+ /**
9
+ * Triggers an event for a subscriber. Creates the subscriber if they don't exist.
10
+ * Creates the event definition if it doesn't exist.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const response = await client.subscribers.events.trigger({
15
+ * email: 'user@example.com',
16
+ * event: 'purchase.completed',
17
+ * });
18
+ * ```
19
+ */
20
+ trigger(body: EventTriggerParams, options?: RequestOptions): APIPromise<EventTriggerResponse> {
21
+ return this._client.post('/subscribers/events', { body, ...options });
22
+ }
23
+
24
+ /**
25
+ * Triggers multiple events for a subscriber. Creates the subscriber if they don't
26
+ * exist. Creates event definitions if they don't exist.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const response =
31
+ * await client.subscribers.events.triggerMultiple({
32
+ * email: 'user@example.com',
33
+ * events: [{ name: 'page.viewed' }],
34
+ * });
35
+ * ```
36
+ */
37
+ triggerMultiple(
38
+ body: EventTriggerMultipleParams,
39
+ options?: RequestOptions,
40
+ ): APIPromise<EventTriggerMultipleResponse> {
41
+ return this._client.post('/subscribers/events/bulk', { body, ...options });
42
+ }
43
+ }
44
+
45
+ export interface EventTriggerResponse {
46
+ event?: EventTriggerResponse.Event;
47
+
48
+ subscriber?: EventTriggerResponse.Subscriber;
49
+
50
+ success?: boolean;
51
+ }
52
+
53
+ export namespace EventTriggerResponse {
54
+ export interface Event {
55
+ /**
56
+ * The created event record ID
57
+ */
58
+ id?: string;
59
+
60
+ /**
61
+ * Whether the event definition was newly created
62
+ */
63
+ definitionCreated?: boolean;
64
+
65
+ name?: string;
66
+ }
67
+
68
+ export interface Subscriber {
69
+ id?: string;
70
+
71
+ created?: boolean;
72
+
73
+ email?: string;
74
+ }
75
+ }
76
+
77
+ export interface EventTriggerMultipleResponse {
78
+ events?: Array<EventTriggerMultipleResponse.Event>;
79
+
80
+ subscriber?: EventTriggerMultipleResponse.Subscriber;
81
+
82
+ success?: boolean;
83
+ }
84
+
85
+ export namespace EventTriggerMultipleResponse {
86
+ export interface Event {
87
+ id?: string;
88
+
89
+ definitionCreated?: boolean;
90
+
91
+ name?: string;
92
+ }
93
+
94
+ export interface Subscriber {
95
+ id?: string;
96
+
97
+ created?: boolean;
98
+
99
+ email?: string;
100
+ }
101
+ }
102
+
103
+ export interface EventTriggerParams {
104
+ email: string;
105
+
106
+ event: string;
107
+
108
+ /**
109
+ * Optional attributes to set on the subscriber if created
110
+ */
111
+ customAttributes?: { [key: string]: unknown };
112
+
113
+ /**
114
+ * Event properties/metadata
115
+ */
116
+ properties?: { [key: string]: unknown };
117
+ }
118
+
119
+ export interface EventTriggerMultipleParams {
120
+ email: string;
121
+
122
+ events: Array<EventTriggerMultipleParams.Event>;
123
+
124
+ customAttributes?: { [key: string]: unknown };
125
+ }
126
+
127
+ export namespace EventTriggerMultipleParams {
128
+ export interface Event {
129
+ name: string;
130
+
131
+ properties?: { [key: string]: unknown };
132
+ }
133
+ }
134
+
135
+ export declare namespace Events {
136
+ export {
137
+ type EventTriggerResponse as EventTriggerResponse,
138
+ type EventTriggerMultipleResponse as EventTriggerMultipleResponse,
139
+ type EventTriggerParams as EventTriggerParams,
140
+ type EventTriggerMultipleParams as EventTriggerMultipleParams,
141
+ };
142
+ }
@@ -0,0 +1,28 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ Events,
5
+ type EventTriggerResponse,
6
+ type EventTriggerMultipleResponse,
7
+ type EventTriggerParams,
8
+ type EventTriggerMultipleParams,
9
+ } from './events';
10
+ export {
11
+ Subscribers,
12
+ type Subscriber,
13
+ type SubscriberCreateResponse,
14
+ type SubscriberRetrieveResponse,
15
+ type SubscriberUpdateResponse,
16
+ type SubscriberListResponse,
17
+ type SubscriberDeleteResponse,
18
+ type SubscriberCreateParams,
19
+ type SubscriberUpdateParams,
20
+ type SubscriberListParams,
21
+ } from './subscribers';
22
+ export {
23
+ Tags,
24
+ type TagAddResponse,
25
+ type TagAddMultipleResponse,
26
+ type TagAddParams,
27
+ type TagAddMultipleParams,
28
+ } from './tags';
@@ -0,0 +1,238 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as EventsAPI from './events';
5
+ import {
6
+ EventTriggerMultipleParams,
7
+ EventTriggerMultipleResponse,
8
+ EventTriggerParams,
9
+ EventTriggerResponse,
10
+ Events,
11
+ } from './events';
12
+ import * as TagsAPI from './tags';
13
+ import { TagAddMultipleParams, TagAddMultipleResponse, TagAddParams, TagAddResponse, Tags } from './tags';
14
+ import { APIPromise } from '../../core/api-promise';
15
+ import { RequestOptions } from '../../internal/request-options';
16
+ import { path } from '../../internal/utils/path';
17
+
18
+ export class Subscribers extends APIResource {
19
+ tags: TagsAPI.Tags = new TagsAPI.Tags(this._client);
20
+ events: EventsAPI.Events = new EventsAPI.Events(this._client);
21
+
22
+ /**
23
+ * Creates a new subscriber. Returns 409 if subscriber already exists.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const subscriber = await client.subscribers.create({
28
+ * email: 'user@example.com',
29
+ * });
30
+ * ```
31
+ */
32
+ create(body: SubscriberCreateParams, options?: RequestOptions): APIPromise<SubscriberCreateResponse> {
33
+ return this._client.post('/subscribers', { body, ...options });
34
+ }
35
+
36
+ /**
37
+ * Retrieves a subscriber by their email address.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const subscriber = await client.subscribers.retrieve(
42
+ * 'email',
43
+ * );
44
+ * ```
45
+ */
46
+ retrieve(email: string, options?: RequestOptions): APIPromise<SubscriberRetrieveResponse> {
47
+ return this._client.get(path`/subscribers/${email}`, options);
48
+ }
49
+
50
+ /**
51
+ * Updates a subscriber's first name, last name, status, tags, or custom
52
+ * attributes.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const subscriber = await client.subscribers.update('email');
57
+ * ```
58
+ */
59
+ update(
60
+ email: string,
61
+ body: SubscriberUpdateParams,
62
+ options?: RequestOptions,
63
+ ): APIPromise<SubscriberUpdateResponse> {
64
+ return this._client.patch(path`/subscribers/${email}`, { body, ...options });
65
+ }
66
+
67
+ /**
68
+ * Lists subscribers with pagination and optional filtering by status or email.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const subscribers = await client.subscribers.list();
73
+ * ```
74
+ */
75
+ list(
76
+ query: SubscriberListParams | null | undefined = {},
77
+ options?: RequestOptions,
78
+ ): APIPromise<SubscriberListResponse> {
79
+ return this._client.get('/subscribers', { query, ...options });
80
+ }
81
+
82
+ /**
83
+ * Deletes a subscriber by their email address.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * const subscriber = await client.subscribers.delete('email');
88
+ * ```
89
+ */
90
+ delete(email: string, options?: RequestOptions): APIPromise<SubscriberDeleteResponse> {
91
+ return this._client.delete(path`/subscribers/${email}`, options);
92
+ }
93
+ }
94
+
95
+ export interface Subscriber {
96
+ id?: string;
97
+
98
+ createdAt?: string;
99
+
100
+ customAttributes?: { [key: string]: unknown };
101
+
102
+ email?: string;
103
+
104
+ firstName?: string | null;
105
+
106
+ lastName?: string | null;
107
+
108
+ status?: 'active' | 'unsubscribed';
109
+
110
+ tags?: Array<string>;
111
+
112
+ updatedAt?: string;
113
+ }
114
+
115
+ export interface SubscriberCreateResponse {
116
+ subscriber?: Subscriber;
117
+
118
+ success?: boolean;
119
+ }
120
+
121
+ export interface SubscriberRetrieveResponse {
122
+ subscriber?: Subscriber;
123
+
124
+ success?: boolean;
125
+ }
126
+
127
+ export interface SubscriberUpdateResponse {
128
+ subscriber?: Subscriber;
129
+
130
+ success?: boolean;
131
+ }
132
+
133
+ export interface SubscriberListResponse {
134
+ pagination?: SubscriberListResponse.Pagination;
135
+
136
+ subscribers?: Array<Subscriber>;
137
+
138
+ success?: boolean;
139
+ }
140
+
141
+ export namespace SubscriberListResponse {
142
+ export interface Pagination {
143
+ limit?: number;
144
+
145
+ page?: number;
146
+
147
+ total?: number;
148
+
149
+ totalPages?: number;
150
+ }
151
+ }
152
+
153
+ export interface SubscriberDeleteResponse {
154
+ deleted?: boolean;
155
+
156
+ success?: boolean;
157
+ }
158
+
159
+ export interface SubscriberCreateParams {
160
+ email: string;
161
+
162
+ customAttributes?: { [key: string]: unknown };
163
+
164
+ firstName?: string;
165
+
166
+ lastName?: string;
167
+
168
+ status?: 'active' | 'unsubscribed';
169
+
170
+ tags?: Array<string>;
171
+ }
172
+
173
+ export interface SubscriberUpdateParams {
174
+ customAttributes?: { [key: string]: unknown };
175
+
176
+ firstName?: string;
177
+
178
+ lastName?: string;
179
+
180
+ status?: 'active' | 'unsubscribed';
181
+
182
+ tags?: Array<string>;
183
+ }
184
+
185
+ export interface SubscriberListParams {
186
+ /**
187
+ * Filter by email (partial match)
188
+ */
189
+ email?: string;
190
+
191
+ /**
192
+ * Number of items per page (max 100)
193
+ */
194
+ limit?: number;
195
+
196
+ /**
197
+ * Page number
198
+ */
199
+ page?: number;
200
+
201
+ /**
202
+ * Filter by subscriber status
203
+ */
204
+ status?: 'active' | 'unsubscribed';
205
+ }
206
+
207
+ Subscribers.Tags = Tags;
208
+ Subscribers.Events = Events;
209
+
210
+ export declare namespace Subscribers {
211
+ export {
212
+ type Subscriber as Subscriber,
213
+ type SubscriberCreateResponse as SubscriberCreateResponse,
214
+ type SubscriberRetrieveResponse as SubscriberRetrieveResponse,
215
+ type SubscriberUpdateResponse as SubscriberUpdateResponse,
216
+ type SubscriberListResponse as SubscriberListResponse,
217
+ type SubscriberDeleteResponse as SubscriberDeleteResponse,
218
+ type SubscriberCreateParams as SubscriberCreateParams,
219
+ type SubscriberUpdateParams as SubscriberUpdateParams,
220
+ type SubscriberListParams as SubscriberListParams,
221
+ };
222
+
223
+ export {
224
+ Tags as Tags,
225
+ type TagAddResponse as TagAddResponse,
226
+ type TagAddMultipleResponse as TagAddMultipleResponse,
227
+ type TagAddParams as TagAddParams,
228
+ type TagAddMultipleParams as TagAddMultipleParams,
229
+ };
230
+
231
+ export {
232
+ Events as Events,
233
+ type EventTriggerResponse as EventTriggerResponse,
234
+ type EventTriggerMultipleResponse as EventTriggerMultipleResponse,
235
+ type EventTriggerParams as EventTriggerParams,
236
+ type EventTriggerMultipleParams as EventTriggerMultipleParams,
237
+ };
238
+ }
@@ -0,0 +1,133 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { RequestOptions } from '../../internal/request-options';
6
+
7
+ export class Tags extends APIResource {
8
+ /**
9
+ * Adds a tag to a subscriber. Creates the subscriber if they don't exist. Creates
10
+ * the tag definition if it doesn't exist.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const response = await client.subscribers.tags.add({
15
+ * email: 'user@example.com',
16
+ * tag: 'premium',
17
+ * });
18
+ * ```
19
+ */
20
+ add(body: TagAddParams, options?: RequestOptions): APIPromise<TagAddResponse> {
21
+ return this._client.post('/subscribers/tags', { body, ...options });
22
+ }
23
+
24
+ /**
25
+ * Adds multiple tags to a subscriber. Creates the subscriber if they don't exist.
26
+ * Creates tag definitions if they don't exist.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const response = await client.subscribers.tags.addMultiple({
31
+ * email: 'user@example.com',
32
+ * tags: ['premium', 'newsletter', 'vip'],
33
+ * });
34
+ * ```
35
+ */
36
+ addMultiple(body: TagAddMultipleParams, options?: RequestOptions): APIPromise<TagAddMultipleResponse> {
37
+ return this._client.post('/subscribers/tags/bulk', { body, ...options });
38
+ }
39
+ }
40
+
41
+ export interface TagAddResponse {
42
+ subscriber?: TagAddResponse.Subscriber;
43
+
44
+ success?: boolean;
45
+
46
+ tag?: TagAddResponse.Tag;
47
+ }
48
+
49
+ export namespace TagAddResponse {
50
+ export interface Subscriber {
51
+ id?: string;
52
+
53
+ /**
54
+ * Whether the subscriber was newly created
55
+ */
56
+ created?: boolean;
57
+
58
+ email?: string;
59
+
60
+ tags?: Array<string>;
61
+ }
62
+
63
+ export interface Tag {
64
+ id?: string;
65
+
66
+ /**
67
+ * Whether the tag definition was newly created
68
+ */
69
+ created?: boolean;
70
+
71
+ name?: string;
72
+ }
73
+ }
74
+
75
+ export interface TagAddMultipleResponse {
76
+ subscriber?: TagAddMultipleResponse.Subscriber;
77
+
78
+ success?: boolean;
79
+
80
+ tags?: TagAddMultipleResponse.Tags;
81
+ }
82
+
83
+ export namespace TagAddMultipleResponse {
84
+ export interface Subscriber {
85
+ id?: string;
86
+
87
+ created?: boolean;
88
+
89
+ email?: string;
90
+
91
+ tags?: Array<string>;
92
+ }
93
+
94
+ export interface Tags {
95
+ /**
96
+ * Tag names that were added
97
+ */
98
+ added?: Array<string>;
99
+
100
+ /**
101
+ * Tag definitions that were newly created
102
+ */
103
+ created?: Array<string>;
104
+ }
105
+ }
106
+
107
+ export interface TagAddParams {
108
+ email: string;
109
+
110
+ tag: string;
111
+
112
+ /**
113
+ * Optional attributes to set on the subscriber if created
114
+ */
115
+ customAttributes?: { [key: string]: unknown };
116
+ }
117
+
118
+ export interface TagAddMultipleParams {
119
+ email: string;
120
+
121
+ tags: Array<string>;
122
+
123
+ customAttributes?: { [key: string]: unknown };
124
+ }
125
+
126
+ export declare namespace Tags {
127
+ export {
128
+ type TagAddResponse as TagAddResponse,
129
+ type TagAddMultipleResponse as TagAddMultipleResponse,
130
+ type TagAddParams as TagAddParams,
131
+ type TagAddMultipleParams as TagAddMultipleParams,
132
+ };
133
+ }
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './subscribers/index';
@@ -0,0 +1,167 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import * as TransactionalAPI from './transactional';
5
+ import { APIPromise } from '../core/api-promise';
6
+ import { RequestOptions } from '../internal/request-options';
7
+ import { path } from '../internal/utils/path';
8
+
9
+ export class Transactional extends APIResource {
10
+ /**
11
+ * Gets details of a transactional email template including available template
12
+ * variables.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const transactional = await client.transactional.retrieve(
17
+ * 'welcome-email',
18
+ * );
19
+ * ```
20
+ */
21
+ retrieve(slug: string, options?: RequestOptions): APIPromise<TransactionalRetrieveResponse> {
22
+ return this._client.get(path`/transactional/${slug}`, options);
23
+ }
24
+
25
+ /**
26
+ * Lists all transactional email templates for your company.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const transactionals = await client.transactional.list();
31
+ * ```
32
+ */
33
+ list(options?: RequestOptions): APIPromise<TransactionalListResponse> {
34
+ return this._client.get('/transactional', options);
35
+ }
36
+
37
+ /**
38
+ * Queues a transactional email for sending. You can either:
39
+ *
40
+ * - Provide a `slug` to use a saved template
41
+ * - Provide `subject` and `body` to send custom content directly
42
+ *
43
+ * Variables can be passed to customize the email content. Returns immediately with
44
+ * a job ID.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const response = await client.transactional.send({
49
+ * to: 'recipient@example.com',
50
+ * slug: 'welcome-email',
51
+ * variables: { NAME: 'John' },
52
+ * });
53
+ * ```
54
+ */
55
+ send(body: TransactionalSendParams, options?: RequestOptions): APIPromise<TransactionalSendResponse> {
56
+ return this._client.post('/transactional/send', { body, ...options });
57
+ }
58
+ }
59
+
60
+ export interface TransactionalEmail {
61
+ id?: string;
62
+
63
+ createdAt?: string;
64
+
65
+ enabled?: boolean;
66
+
67
+ name?: string;
68
+
69
+ slug?: string;
70
+
71
+ updatedAt?: string;
72
+ }
73
+
74
+ export interface TransactionalRetrieveResponse {
75
+ success?: boolean;
76
+
77
+ transactional?: TransactionalRetrieveResponse.Transactional;
78
+ }
79
+
80
+ export namespace TransactionalRetrieveResponse {
81
+ export interface Transactional extends TransactionalAPI.TransactionalEmail {
82
+ variables?: Array<string>;
83
+ }
84
+ }
85
+
86
+ export interface TransactionalListResponse {
87
+ success?: boolean;
88
+
89
+ transactional?: Array<TransactionalEmail>;
90
+ }
91
+
92
+ export type TransactionalSendResponse =
93
+ | TransactionalSendResponse.SlugBasedResponse
94
+ | TransactionalSendResponse.DirectContentResponse;
95
+
96
+ export namespace TransactionalSendResponse {
97
+ export interface SlugBasedResponse {
98
+ jobId?: string;
99
+
100
+ success?: boolean;
101
+
102
+ to?: string;
103
+
104
+ transactional?: SlugBasedResponse.Transactional;
105
+ }
106
+
107
+ export namespace SlugBasedResponse {
108
+ export interface Transactional {
109
+ id?: string;
110
+
111
+ name?: string;
112
+
113
+ slug?: string;
114
+ }
115
+ }
116
+
117
+ export interface DirectContentResponse {
118
+ jobId?: string;
119
+
120
+ success?: boolean;
121
+
122
+ to?: string;
123
+ }
124
+ }
125
+
126
+ export interface TransactionalSendParams {
127
+ /**
128
+ * Recipient email address
129
+ */
130
+ to: string;
131
+
132
+ /**
133
+ * Email body HTML content (required if not using slug)
134
+ */
135
+ body?: string;
136
+
137
+ /**
138
+ * Preview text for the email (only used with direct content)
139
+ */
140
+ preview?: string;
141
+
142
+ /**
143
+ * Slug of the transactional email template to use (mutually exclusive with
144
+ * subject/body)
145
+ */
146
+ slug?: string;
147
+
148
+ /**
149
+ * Email subject (required if not using slug)
150
+ */
151
+ subject?: string;
152
+
153
+ /**
154
+ * Variables for template replacement (works with both modes)
155
+ */
156
+ variables?: { [key: string]: unknown };
157
+ }
158
+
159
+ export declare namespace Transactional {
160
+ export {
161
+ type TransactionalEmail as TransactionalEmail,
162
+ type TransactionalRetrieveResponse as TransactionalRetrieveResponse,
163
+ type TransactionalListResponse as TransactionalListResponse,
164
+ type TransactionalSendResponse as TransactionalSendResponse,
165
+ type TransactionalSendParams as TransactionalSendParams,
166
+ };
167
+ }
@@ -0,0 +1 @@
1
+ export * from './resources/index';