growsurf-typescript 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/CHANGELOG.md +12 -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 +181 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +181 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +476 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +472 -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 +40 -0
  105. package/internal/parse.js.map +1 -0
  106. package/internal/parse.mjs +37 -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 +87 -0
  187. package/internal/utils/log.js.map +1 -0
  188. package/internal/utils/log.mjs +81 -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/query.d.mts +5 -0
  199. package/internal/utils/query.d.mts.map +1 -0
  200. package/internal/utils/query.d.ts +5 -0
  201. package/internal/utils/query.d.ts.map +1 -0
  202. package/internal/utils/query.js +23 -0
  203. package/internal/utils/query.js.map +1 -0
  204. package/internal/utils/query.mjs +20 -0
  205. package/internal/utils/query.mjs.map +1 -0
  206. package/internal/utils/sleep.d.mts +2 -0
  207. package/internal/utils/sleep.d.mts.map +1 -0
  208. package/internal/utils/sleep.d.ts +2 -0
  209. package/internal/utils/sleep.d.ts.map +1 -0
  210. package/internal/utils/sleep.js +7 -0
  211. package/internal/utils/sleep.js.map +1 -0
  212. package/internal/utils/sleep.mjs +3 -0
  213. package/internal/utils/sleep.mjs.map +1 -0
  214. package/internal/utils/uuid.d.mts +5 -0
  215. package/internal/utils/uuid.d.mts.map +1 -0
  216. package/internal/utils/uuid.d.ts +5 -0
  217. package/internal/utils/uuid.d.ts.map +1 -0
  218. package/internal/utils/uuid.js +19 -0
  219. package/internal/utils/uuid.js.map +1 -0
  220. package/internal/utils/uuid.mjs +15 -0
  221. package/internal/utils/uuid.mjs.map +1 -0
  222. package/internal/utils/values.d.mts +18 -0
  223. package/internal/utils/values.d.mts.map +1 -0
  224. package/internal/utils/values.d.ts +18 -0
  225. package/internal/utils/values.d.ts.map +1 -0
  226. package/internal/utils/values.js +112 -0
  227. package/internal/utils/values.js.map +1 -0
  228. package/internal/utils/values.mjs +94 -0
  229. package/internal/utils/values.mjs.map +1 -0
  230. package/internal/utils.d.mts +8 -0
  231. package/internal/utils.d.mts.map +1 -0
  232. package/internal/utils.d.ts +8 -0
  233. package/internal/utils.d.ts.map +1 -0
  234. package/internal/utils.js +12 -0
  235. package/internal/utils.js.map +1 -0
  236. package/internal/utils.mjs +9 -0
  237. package/internal/utils.mjs.map +1 -0
  238. package/package.json +143 -0
  239. package/resource.d.mts +2 -0
  240. package/resource.d.mts.map +1 -0
  241. package/resource.d.ts +2 -0
  242. package/resource.d.ts.map +1 -0
  243. package/resource.js +6 -0
  244. package/resource.js.map +1 -0
  245. package/resource.mjs +2 -0
  246. package/resource.mjs.map +1 -0
  247. package/resources/campaign/campaign.d.mts +398 -0
  248. package/resources/campaign/campaign.d.mts.map +1 -0
  249. package/resources/campaign/campaign.d.ts +398 -0
  250. package/resources/campaign/campaign.d.ts.map +1 -0
  251. package/resources/campaign/campaign.js +123 -0
  252. package/resources/campaign/campaign.js.map +1 -0
  253. package/resources/campaign/campaign.mjs +118 -0
  254. package/resources/campaign/campaign.mjs.map +1 -0
  255. package/resources/campaign/commission.d.mts +54 -0
  256. package/resources/campaign/commission.d.mts.map +1 -0
  257. package/resources/campaign/commission.d.ts +54 -0
  258. package/resources/campaign/commission.d.ts.map +1 -0
  259. package/resources/campaign/commission.js +43 -0
  260. package/resources/campaign/commission.js.map +1 -0
  261. package/resources/campaign/commission.mjs +39 -0
  262. package/resources/campaign/commission.mjs.map +1 -0
  263. package/resources/campaign/index.d.mts +5 -0
  264. package/resources/campaign/index.d.mts.map +1 -0
  265. package/resources/campaign/index.d.ts +5 -0
  266. package/resources/campaign/index.d.ts.map +1 -0
  267. package/resources/campaign/index.js +13 -0
  268. package/resources/campaign/index.js.map +1 -0
  269. package/resources/campaign/index.mjs +6 -0
  270. package/resources/campaign/index.mjs.map +1 -0
  271. package/resources/campaign/participant.d.mts +611 -0
  272. package/resources/campaign/participant.d.mts.map +1 -0
  273. package/resources/campaign/participant.d.ts +611 -0
  274. package/resources/campaign/participant.d.ts.map +1 -0
  275. package/resources/campaign/participant.js +234 -0
  276. package/resources/campaign/participant.js.map +1 -0
  277. package/resources/campaign/participant.mjs +230 -0
  278. package/resources/campaign/participant.mjs.map +1 -0
  279. package/resources/campaign/reward.d.mts +80 -0
  280. package/resources/campaign/reward.d.mts.map +1 -0
  281. package/resources/campaign/reward.d.ts +80 -0
  282. package/resources/campaign/reward.d.ts.map +1 -0
  283. package/resources/campaign/reward.js +59 -0
  284. package/resources/campaign/reward.js.map +1 -0
  285. package/resources/campaign/reward.mjs +55 -0
  286. package/resources/campaign/reward.mjs.map +1 -0
  287. package/resources/campaign.d.mts +2 -0
  288. package/resources/campaign.d.mts.map +1 -0
  289. package/resources/campaign.d.ts +2 -0
  290. package/resources/campaign.d.ts.map +1 -0
  291. package/resources/campaign.js +6 -0
  292. package/resources/campaign.js.map +1 -0
  293. package/resources/campaign.mjs +3 -0
  294. package/resources/campaign.mjs.map +1 -0
  295. package/resources/index.d.mts +2 -0
  296. package/resources/index.d.mts.map +1 -0
  297. package/resources/index.d.ts +2 -0
  298. package/resources/index.d.ts.map +1 -0
  299. package/resources/index.js +7 -0
  300. package/resources/index.js.map +1 -0
  301. package/resources/index.mjs +3 -0
  302. package/resources/index.mjs.map +1 -0
  303. package/resources.d.mts +2 -0
  304. package/resources.d.mts.map +1 -0
  305. package/resources.d.ts +2 -0
  306. package/resources.d.ts.map +1 -0
  307. package/resources.js +5 -0
  308. package/resources.js.map +1 -0
  309. package/resources.mjs +2 -0
  310. package/resources.mjs.map +1 -0
  311. package/src/api-promise.ts +2 -0
  312. package/src/client.ts +774 -0
  313. package/src/core/README.md +3 -0
  314. package/src/core/api-promise.ts +92 -0
  315. package/src/core/error.ts +130 -0
  316. package/src/core/resource.ts +11 -0
  317. package/src/core/uploads.ts +2 -0
  318. package/src/error.ts +2 -0
  319. package/src/index.ts +22 -0
  320. package/src/internal/README.md +3 -0
  321. package/src/internal/builtin-types.ts +93 -0
  322. package/src/internal/detect-platform.ts +196 -0
  323. package/src/internal/errors.ts +33 -0
  324. package/src/internal/headers.ts +97 -0
  325. package/src/internal/parse.ts +56 -0
  326. package/src/internal/request-options.ts +91 -0
  327. package/src/internal/shim-types.ts +26 -0
  328. package/src/internal/shims.ts +107 -0
  329. package/src/internal/to-file.ts +154 -0
  330. package/src/internal/types.ts +93 -0
  331. package/src/internal/uploads.ts +187 -0
  332. package/src/internal/utils/base64.ts +40 -0
  333. package/src/internal/utils/bytes.ts +32 -0
  334. package/src/internal/utils/env.ts +18 -0
  335. package/src/internal/utils/log.ts +128 -0
  336. package/src/internal/utils/path.ts +88 -0
  337. package/src/internal/utils/query.ts +23 -0
  338. package/src/internal/utils/sleep.ts +3 -0
  339. package/src/internal/utils/uuid.ts +17 -0
  340. package/src/internal/utils/values.ts +105 -0
  341. package/src/internal/utils.ts +9 -0
  342. package/src/lib/.keep +4 -0
  343. package/src/resource.ts +2 -0
  344. package/src/resources/campaign/campaign.ts +718 -0
  345. package/src/resources/campaign/commission.ts +82 -0
  346. package/src/resources/campaign/index.ts +59 -0
  347. package/src/resources/campaign/participant.ts +897 -0
  348. package/src/resources/campaign/reward.ts +121 -0
  349. package/src/resources/campaign.ts +3 -0
  350. package/src/resources/index.ts +19 -0
  351. package/src/resources.ts +1 -0
  352. package/src/tsconfig.json +11 -0
  353. package/src/uploads.ts +2 -0
  354. package/src/version.ts +1 -0
  355. package/uploads.d.mts +2 -0
  356. package/uploads.d.mts.map +1 -0
  357. package/uploads.d.ts +2 -0
  358. package/uploads.d.ts.map +1 -0
  359. package/uploads.js +6 -0
  360. package/uploads.js.map +1 -0
  361. package/uploads.mjs +2 -0
  362. package/uploads.mjs.map +1 -0
  363. package/version.d.mts +2 -0
  364. package/version.d.mts.map +1 -0
  365. package/version.d.ts +2 -0
  366. package/version.d.ts.map +1 -0
  367. package/version.js +5 -0
  368. package/version.js.map +1 -0
  369. package/version.mjs +2 -0
  370. package/version.mjs.map +1 -0
@@ -0,0 +1,897 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as ParticipantAPI from './participant';
5
+ import * as CampaignAPI from './campaign';
6
+ import { APIPromise } from '../../core/api-promise';
7
+ import { RequestOptions } from '../../internal/request-options';
8
+ import { path } from '../../internal/utils/path';
9
+
10
+ export class ParticipantResource extends APIResource {
11
+ /**
12
+ * Retrieves a single participant by GrowSurf participant ID or email address.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const participant =
17
+ * await client.campaign.participant.retrieve(
18
+ * 'participantIdOrEmail',
19
+ * { id: 'id' },
20
+ * );
21
+ * ```
22
+ */
23
+ retrieve(
24
+ participantIDOrEmail: string,
25
+ params: ParticipantRetrieveParams,
26
+ options?: RequestOptions,
27
+ ): APIPromise<Participant> {
28
+ const { id } = params;
29
+ return this._client.get(path`/campaign/${id}/participant/${participantIDOrEmail}`, options);
30
+ }
31
+
32
+ /**
33
+ * Updates a participant by GrowSurf participant ID or email address.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const participant =
38
+ * await client.campaign.participant.update(
39
+ * 'participantIdOrEmail',
40
+ * {
41
+ * id: 'id',
42
+ * firstName: 'Gavin',
43
+ * lastName: 'Belson',
44
+ * metadata: { company: 'Hooli, Inc' },
45
+ * },
46
+ * );
47
+ * ```
48
+ */
49
+ update(
50
+ participantIDOrEmail: string,
51
+ params: ParticipantUpdateParams,
52
+ options?: RequestOptions,
53
+ ): APIPromise<Participant> {
54
+ const { id, ...body } = params;
55
+ return this._client.post(path`/campaign/${id}/participant/${participantIDOrEmail}`, { body, ...options });
56
+ }
57
+
58
+ /**
59
+ * Removes a participant by GrowSurf participant ID or email address.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const participant =
64
+ * await client.campaign.participant.delete(
65
+ * 'participantIdOrEmail',
66
+ * { id: 'id' },
67
+ * );
68
+ * ```
69
+ */
70
+ delete(
71
+ participantIDOrEmail: string,
72
+ params: ParticipantDeleteParams,
73
+ options?: RequestOptions,
74
+ ): APIPromise<ParticipantDeleteResponse> {
75
+ const { id } = params;
76
+ return this._client.delete(path`/campaign/${id}/participant/${participantIDOrEmail}`, options);
77
+ }
78
+
79
+ /**
80
+ * Adds a new participant to the program. If the email already exists, the existing
81
+ * participant is returned.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * const participant = await client.campaign.participant.add(
86
+ * 'id',
87
+ * {
88
+ * email: 'gavin@hooli.com',
89
+ * firstName: 'Gavin',
90
+ * ipAddress: '203.0.113.10',
91
+ * lastName: 'Belson',
92
+ * metadata: {
93
+ * companyName: 'Hooli',
94
+ * industry: 'Software',
95
+ * },
96
+ * referredBy: 'richard-h8kp6l',
97
+ * },
98
+ * );
99
+ * ```
100
+ */
101
+ add(id: string, body: ParticipantAddParams, options?: RequestOptions): APIPromise<Participant> {
102
+ return this._client.post(path`/campaign/${id}/participant`, { body, ...options });
103
+ }
104
+
105
+ /**
106
+ * Retrieves a paged list of commissions earned by a participant.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * const participantCommissionList =
111
+ * await client.campaign.participant.listCommissions(
112
+ * 'participantIdOrEmail',
113
+ * { id: 'id' },
114
+ * );
115
+ * ```
116
+ */
117
+ listCommissions(
118
+ participantIDOrEmail: string,
119
+ params: ParticipantListCommissionsParams,
120
+ options?: RequestOptions,
121
+ ): APIPromise<CampaignAPI.ParticipantCommissionList> {
122
+ const { id, ...query } = params;
123
+ return this._client.get(path`/campaign/${id}/participant/${participantIDOrEmail}/commissions`, {
124
+ query,
125
+ ...options,
126
+ });
127
+ }
128
+
129
+ /**
130
+ * Retrieves a paged list of payouts that belong to a participant.
131
+ *
132
+ * @example
133
+ * ```ts
134
+ * const participantPayoutList =
135
+ * await client.campaign.participant.listPayouts(
136
+ * 'participantIdOrEmail',
137
+ * { id: 'id' },
138
+ * );
139
+ * ```
140
+ */
141
+ listPayouts(
142
+ participantIDOrEmail: string,
143
+ params: ParticipantListPayoutsParams,
144
+ options?: RequestOptions,
145
+ ): APIPromise<CampaignAPI.ParticipantPayoutList> {
146
+ const { id, ...query } = params;
147
+ return this._client.get(path`/campaign/${id}/participant/${participantIDOrEmail}/payouts`, {
148
+ query,
149
+ ...options,
150
+ });
151
+ }
152
+
153
+ /**
154
+ * Retrieves referrals and email invites made by a participant.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * const referralList =
159
+ * await client.campaign.participant.listReferrals(
160
+ * 'participantIdOrEmail',
161
+ * { id: 'id' },
162
+ * );
163
+ * ```
164
+ */
165
+ listReferrals(
166
+ participantIDOrEmail: string,
167
+ params: ParticipantListReferralsParams,
168
+ options?: RequestOptions,
169
+ ): APIPromise<CampaignAPI.ReferralList> {
170
+ const { id, ...query } = params;
171
+ return this._client.get(path`/campaign/${id}/participant/${participantIDOrEmail}/referrals`, {
172
+ query,
173
+ ...options,
174
+ });
175
+ }
176
+
177
+ /**
178
+ * Retrieves a paged list of rewards earned by a participant.
179
+ *
180
+ * @example
181
+ * ```ts
182
+ * const response =
183
+ * await client.campaign.participant.listRewards(
184
+ * 'participantIdOrEmail',
185
+ * { id: 'id' },
186
+ * );
187
+ * ```
188
+ */
189
+ listRewards(
190
+ participantIDOrEmail: string,
191
+ params: ParticipantListRewardsParams,
192
+ options?: RequestOptions,
193
+ ): APIPromise<ParticipantListRewardsResponse> {
194
+ const { id, ...query } = params;
195
+ return this._client.get(path`/campaign/${id}/participant/${participantIDOrEmail}/rewards`, {
196
+ query,
197
+ ...options,
198
+ });
199
+ }
200
+
201
+ /**
202
+ * Records a sale made by a referred customer and generates affiliate commissions
203
+ * for their referrer when applicable.
204
+ *
205
+ * @example
206
+ * ```ts
207
+ * const response =
208
+ * await client.campaign.participant.recordTransaction(
209
+ * 'participantIdOrEmail',
210
+ * {
211
+ * id: 'id',
212
+ * currency: 'USD',
213
+ * grossAmount: 9900,
214
+ * amountCashNet: 7900,
215
+ * description: 'Renewal for Pro subscription',
216
+ * invoiceId: 'invoice_54',
217
+ * paidAt: 1733702400000,
218
+ * },
219
+ * );
220
+ * ```
221
+ */
222
+ recordTransaction(
223
+ participantIDOrEmail: string,
224
+ params: ParticipantRecordTransactionParams,
225
+ options?: RequestOptions,
226
+ ): APIPromise<ParticipantRecordTransactionResponse> {
227
+ const { id, ...body } = params;
228
+ return this._client.post(path`/campaign/${id}/participant/${participantIDOrEmail}/transaction`, {
229
+ body,
230
+ ...options,
231
+ });
232
+ }
233
+
234
+ /**
235
+ * Sends email invites on behalf of a participant to a list of email addresses.
236
+ *
237
+ * @example
238
+ * ```ts
239
+ * const response =
240
+ * await client.campaign.participant.sendInvites(
241
+ * 'participantIdOrEmail',
242
+ * {
243
+ * id: 'id',
244
+ * emailAddresses: ['erlich@aviato.com'],
245
+ * messageText:
246
+ * '{{referrerFirstName}} invited you with {{referrerShareUrl}}.',
247
+ * subjectText: 'Join me on Pied Piper',
248
+ * },
249
+ * );
250
+ * ```
251
+ */
252
+ sendInvites(
253
+ participantIDOrEmail: string,
254
+ params: ParticipantSendInvitesParams,
255
+ options?: RequestOptions,
256
+ ): APIPromise<ParticipantSendInvitesResponse> {
257
+ const { id, ...body } = params;
258
+ return this._client.post(path`/campaign/${id}/participant/${participantIDOrEmail}/invites`, {
259
+ body,
260
+ ...options,
261
+ });
262
+ }
263
+
264
+ /**
265
+ * Triggers referral credit for an existing referred participant by GrowSurf
266
+ * participant ID or email address.
267
+ *
268
+ * @example
269
+ * ```ts
270
+ * const response =
271
+ * await client.campaign.participant.triggerReferral(
272
+ * 'participantIdOrEmail',
273
+ * { id: 'id' },
274
+ * );
275
+ * ```
276
+ */
277
+ triggerReferral(
278
+ participantIDOrEmail: string,
279
+ params: ParticipantTriggerReferralParams,
280
+ options?: RequestOptions,
281
+ ): APIPromise<ParticipantTriggerReferralResponse> {
282
+ const { id } = params;
283
+ return this._client.post(path`/campaign/${id}/participant/${participantIDOrEmail}/ref`, options);
284
+ }
285
+ }
286
+
287
+ export type FraudRiskLevel = 'LOW' | 'MEDIUM' | 'HIGH';
288
+
289
+ export interface Participant {
290
+ id: string;
291
+
292
+ email: string;
293
+
294
+ monthlyRank: number;
295
+
296
+ monthlyReferralCount: number;
297
+
298
+ rank: number;
299
+
300
+ referralCount: number;
301
+
302
+ rewards: Array<ParticipantReward>;
303
+
304
+ shareUrl: string;
305
+
306
+ allMatchingFraudsters?: Array<{ [key: string]: unknown }>;
307
+
308
+ createdAt?: number;
309
+
310
+ fingerprint?: string | null;
311
+
312
+ firstName?: string | null;
313
+
314
+ fraudReasonCode?: string;
315
+
316
+ fraudRiskLevel?: FraudRiskLevel;
317
+
318
+ impressionCount?: number;
319
+
320
+ inviteCount?: number;
321
+
322
+ ipAddress?: string | null;
323
+
324
+ isNew?: boolean;
325
+
326
+ isWinner?: boolean;
327
+
328
+ lastName?: string | null;
329
+
330
+ /**
331
+ * Shallow custom metadata object.
332
+ */
333
+ metadata?: { [key: string]: unknown };
334
+
335
+ monthlyReferrals?: Array<string>;
336
+
337
+ notes?: string | null;
338
+
339
+ paypalEmailAddress?: string;
340
+
341
+ prevMonthlyRank?: number;
342
+
343
+ prevMonthlyReferralCount?: number;
344
+
345
+ referrals?: Array<string>;
346
+
347
+ referralSource?: ReferralSource;
348
+
349
+ referralStatus?: ReferralStatus;
350
+
351
+ referredBy?: string;
352
+
353
+ referrer?: Participant.Referrer | null;
354
+
355
+ shareCount?: { [key: string]: number };
356
+
357
+ uniqueImpressionCount?: number;
358
+
359
+ unreadCommissionsCount?: number;
360
+
361
+ unreadPayoutsCount?: number;
362
+
363
+ unsubscribed?: boolean;
364
+
365
+ vanityKeys?: Array<string>;
366
+ }
367
+
368
+ export namespace Participant {
369
+ export interface Referrer {
370
+ id?: string;
371
+
372
+ createdAt?: number;
373
+
374
+ email?: string;
375
+
376
+ fingerprint?: string | null;
377
+
378
+ firstName?: string | null;
379
+
380
+ fraudReasonCode?: string;
381
+
382
+ fraudRiskLevel?: ParticipantAPI.FraudRiskLevel;
383
+
384
+ impressionCount?: number;
385
+
386
+ inviteCount?: number;
387
+
388
+ ipAddress?: string | null;
389
+
390
+ isWinner?: boolean;
391
+
392
+ lastName?: string | null;
393
+
394
+ /**
395
+ * Shallow custom metadata object.
396
+ */
397
+ metadata?: { [key: string]: unknown };
398
+
399
+ monthlyRank?: number;
400
+
401
+ monthlyReferralCount?: number;
402
+
403
+ monthlyReferrals?: Array<string>;
404
+
405
+ prevMonthlyRank?: number;
406
+
407
+ prevMonthlyReferralCount?: number;
408
+
409
+ rank?: number;
410
+
411
+ referralCount?: number;
412
+
413
+ referrals?: Array<string>;
414
+
415
+ referralSource?: ParticipantAPI.ReferralSource;
416
+
417
+ referralStatus?: ParticipantAPI.ReferralStatus;
418
+
419
+ shareCount?: { [key: string]: number };
420
+
421
+ shareUrl?: string;
422
+
423
+ uniqueImpressionCount?: number;
424
+
425
+ unsubscribed?: boolean;
426
+ }
427
+ }
428
+
429
+ export interface ParticipantReward {
430
+ id: string;
431
+
432
+ rewardId: string;
433
+
434
+ status: 'PENDING' | 'FULFILLED';
435
+
436
+ approved?: boolean;
437
+
438
+ approvedAt?: number;
439
+
440
+ commissionStructure?: CampaignAPI.CommissionStructure | null;
441
+
442
+ fulfilledAt?: number;
443
+
444
+ isAvailable?: boolean;
445
+
446
+ isFulfilled?: boolean;
447
+
448
+ isReferrer?: boolean;
449
+
450
+ referredId?: string;
451
+
452
+ referrerId?: string;
453
+
454
+ unread?: boolean;
455
+ }
456
+
457
+ export type ReferralSource = 'DIRECT' | 'PARTICIPANT';
458
+
459
+ export type ReferralStatus = 'CREDIT_PENDING' | 'CREDIT_AWARDED' | 'CREDIT_EXPIRED' | 'INVITE_SENT';
460
+
461
+ export interface ParticipantDeleteResponse {
462
+ success: boolean;
463
+ }
464
+
465
+ export interface ParticipantListRewardsResponse {
466
+ limit: number;
467
+
468
+ nextId: string | null;
469
+
470
+ rewards: Array<ParticipantReward>;
471
+ }
472
+
473
+ export type ParticipantRecordTransactionResponse =
474
+ | ParticipantRecordTransactionResponse.UnionMember0
475
+ | ParticipantRecordTransactionResponse.UnionMember1;
476
+
477
+ export namespace ParticipantRecordTransactionResponse {
478
+ export interface UnionMember0 {
479
+ duplicate: false;
480
+
481
+ firstSale: boolean;
482
+
483
+ message: string;
484
+
485
+ success: true;
486
+ }
487
+
488
+ export interface UnionMember1 {
489
+ commissionsCreated: number;
490
+
491
+ duplicate: true;
492
+
493
+ duplicateFields: Array<string>;
494
+
495
+ matchingCommissionIds: Array<string>;
496
+
497
+ message: string;
498
+
499
+ success: false;
500
+ }
501
+ }
502
+
503
+ export interface ParticipantSendInvitesResponse {
504
+ invitesSent: number;
505
+
506
+ messageType: string;
507
+
508
+ success: boolean;
509
+ }
510
+
511
+ export interface ParticipantTriggerReferralResponse {
512
+ success: boolean;
513
+
514
+ message?: string;
515
+ }
516
+
517
+ export interface ParticipantRetrieveParams {
518
+ /**
519
+ * GrowSurf program ID.
520
+ */
521
+ id: string;
522
+ }
523
+
524
+ export interface ParticipantUpdateParams {
525
+ /**
526
+ * Path param: GrowSurf program ID.
527
+ */
528
+ id: string;
529
+
530
+ /**
531
+ * Body param
532
+ */
533
+ email?: string;
534
+
535
+ /**
536
+ * Body param
537
+ */
538
+ firstName?: string;
539
+
540
+ /**
541
+ * Body param
542
+ */
543
+ lastName?: string;
544
+
545
+ /**
546
+ * Body param: Shallow custom metadata object.
547
+ */
548
+ metadata?: { [key: string]: unknown };
549
+
550
+ /**
551
+ * Body param
552
+ */
553
+ referralStatus?: 'CREDIT_PENDING' | 'CREDIT_AWARDED' | 'CREDIT_EXPIRED';
554
+
555
+ /**
556
+ * Body param
557
+ */
558
+ referredBy?: string;
559
+
560
+ /**
561
+ * Body param
562
+ */
563
+ unsubscribed?: boolean;
564
+
565
+ /**
566
+ * Body param
567
+ */
568
+ vanityKeys?: Array<string>;
569
+ }
570
+
571
+ export interface ParticipantDeleteParams {
572
+ /**
573
+ * GrowSurf program ID.
574
+ */
575
+ id: string;
576
+ }
577
+
578
+ export interface ParticipantAddParams {
579
+ email: string;
580
+
581
+ fingerprint?: string;
582
+
583
+ firstName?: string;
584
+
585
+ ipAddress?: string;
586
+
587
+ lastName?: string;
588
+
589
+ /**
590
+ * Shallow custom metadata object.
591
+ */
592
+ metadata?: { [key: string]: unknown };
593
+
594
+ referralStatus?: 'CREDIT_PENDING' | 'CREDIT_AWARDED';
595
+
596
+ /**
597
+ * Referrer participant ID or email address.
598
+ */
599
+ referredBy?: string;
600
+ }
601
+
602
+ export interface ParticipantListCommissionsParams {
603
+ /**
604
+ * Path param: GrowSurf program ID.
605
+ */
606
+ id: string;
607
+
608
+ /**
609
+ * Query param: Number of results to return. Maximum 100.
610
+ */
611
+ limit?: number;
612
+
613
+ /**
614
+ * Query param: ID to start the next paged result set with.
615
+ */
616
+ nextId?: string;
617
+
618
+ /**
619
+ * Query param: Participant commission status.
620
+ */
621
+ status?: 'PENDING' | 'APPROVED' | 'PAID' | 'REVERSED' | 'DELETED';
622
+ }
623
+
624
+ export interface ParticipantListPayoutsParams {
625
+ /**
626
+ * Path param: GrowSurf program ID.
627
+ */
628
+ id: string;
629
+
630
+ /**
631
+ * Query param: Number of results to return. Maximum 100.
632
+ */
633
+ limit?: number;
634
+
635
+ /**
636
+ * Query param: ID to start the next paged result set with.
637
+ */
638
+ nextId?: string;
639
+
640
+ /**
641
+ * Query param: Participant payout status.
642
+ */
643
+ status?: 'UPCOMING' | 'QUEUED' | 'ISSUED' | 'FAILED';
644
+ }
645
+
646
+ export interface ParticipantListReferralsParams {
647
+ /**
648
+ * Path param: GrowSurf program ID.
649
+ */
650
+ id: string;
651
+
652
+ /**
653
+ * Query param: Return results in descending order when true.
654
+ */
655
+ desc?: boolean;
656
+
657
+ /**
658
+ * Query param: URL-encoded email value to filter referral results.
659
+ */
660
+ email?: string;
661
+
662
+ /**
663
+ * Query param: First name value to filter results.
664
+ */
665
+ firstName?: string;
666
+
667
+ /**
668
+ * Query param: Last name value to filter results.
669
+ */
670
+ lastName?: string;
671
+
672
+ /**
673
+ * Query param: Number of results to return. Maximum 100.
674
+ */
675
+ limit?: number;
676
+
677
+ /**
678
+ * Query param: ID to start the next paged result set with.
679
+ */
680
+ nextId?: string;
681
+
682
+ /**
683
+ * Query param: Offset number used to skip through a result set.
684
+ */
685
+ offset?: number;
686
+
687
+ /**
688
+ * Query param
689
+ */
690
+ referralStatus?: ReferralStatus;
691
+
692
+ /**
693
+ * Query param: Field used to sort referral results.
694
+ */
695
+ sortBy?:
696
+ | 'updatedAt'
697
+ | 'createdAt'
698
+ | 'email'
699
+ | 'firstName'
700
+ | 'lastName'
701
+ | 'referralStatus'
702
+ | 'referralTriggeredAt';
703
+ }
704
+
705
+ export interface ParticipantListRewardsParams {
706
+ /**
707
+ * Path param: GrowSurf program ID.
708
+ */
709
+ id: string;
710
+
711
+ /**
712
+ * Query param: Number of results to return. Maximum 100.
713
+ */
714
+ limit?: number;
715
+
716
+ /**
717
+ * Query param: ID to start the next paged result set with.
718
+ */
719
+ nextId?: string;
720
+ }
721
+
722
+ export interface ParticipantRecordTransactionParams {
723
+ /**
724
+ * Path param: GrowSurf program ID.
725
+ */
726
+ id: string;
727
+
728
+ /**
729
+ * Body param
730
+ */
731
+ currency: string;
732
+
733
+ /**
734
+ * Body param
735
+ */
736
+ grossAmount: number;
737
+
738
+ /**
739
+ * Body param
740
+ */
741
+ amountCashNet?: number;
742
+
743
+ /**
744
+ * Body param
745
+ */
746
+ amountPaid?: number;
747
+
748
+ /**
749
+ * Body param
750
+ */
751
+ chargeId?: string;
752
+
753
+ /**
754
+ * Body param
755
+ */
756
+ customerId?: string;
757
+
758
+ /**
759
+ * Body param
760
+ */
761
+ description?: string;
762
+
763
+ /**
764
+ * Body param
765
+ */
766
+ externalId?: string;
767
+
768
+ /**
769
+ * Body param
770
+ */
771
+ invoiceId?: string;
772
+
773
+ /**
774
+ * Body param
775
+ */
776
+ invoiceSubtotalExcludingTax?: number;
777
+
778
+ /**
779
+ * Body param
780
+ */
781
+ invoiceTotal?: number;
782
+
783
+ /**
784
+ * Body param
785
+ */
786
+ invoiceTotalExcludingTax?: number;
787
+
788
+ /**
789
+ * Body param
790
+ */
791
+ netAmount?: number;
792
+
793
+ /**
794
+ * Body param
795
+ */
796
+ orderId?: string;
797
+
798
+ /**
799
+ * Body param
800
+ */
801
+ paidAt?: number;
802
+
803
+ /**
804
+ * Body param
805
+ */
806
+ paymentId?: string;
807
+
808
+ /**
809
+ * Body param
810
+ */
811
+ paymentIntentId?: string;
812
+
813
+ /**
814
+ * Body param
815
+ */
816
+ subscriptionId?: string;
817
+
818
+ /**
819
+ * Body param
820
+ */
821
+ taxAmount?: number;
822
+
823
+ /**
824
+ * Body param
825
+ */
826
+ totalTaxAmount?: number;
827
+
828
+ /**
829
+ * Body param
830
+ */
831
+ totalTaxAmounts?: Array<{ [key: string]: unknown }>;
832
+
833
+ /**
834
+ * Body param
835
+ */
836
+ totalTaxes?: Array<{ [key: string]: unknown }>;
837
+
838
+ /**
839
+ * Body param
840
+ */
841
+ transactionId?: string;
842
+ }
843
+
844
+ export interface ParticipantSendInvitesParams {
845
+ /**
846
+ * Path param: GrowSurf program ID.
847
+ */
848
+ id: string;
849
+
850
+ /**
851
+ * Body param
852
+ */
853
+ emailAddresses: Array<string>;
854
+
855
+ /**
856
+ * Body param
857
+ */
858
+ messageText: string;
859
+
860
+ /**
861
+ * Body param
862
+ */
863
+ subjectText: string;
864
+ }
865
+
866
+ export interface ParticipantTriggerReferralParams {
867
+ /**
868
+ * GrowSurf program ID.
869
+ */
870
+ id: string;
871
+ }
872
+
873
+ export declare namespace ParticipantResource {
874
+ export {
875
+ type FraudRiskLevel as FraudRiskLevel,
876
+ type Participant as Participant,
877
+ type ParticipantReward as ParticipantReward,
878
+ type ReferralSource as ReferralSource,
879
+ type ReferralStatus as ReferralStatus,
880
+ type ParticipantDeleteResponse as ParticipantDeleteResponse,
881
+ type ParticipantListRewardsResponse as ParticipantListRewardsResponse,
882
+ type ParticipantRecordTransactionResponse as ParticipantRecordTransactionResponse,
883
+ type ParticipantSendInvitesResponse as ParticipantSendInvitesResponse,
884
+ type ParticipantTriggerReferralResponse as ParticipantTriggerReferralResponse,
885
+ type ParticipantRetrieveParams as ParticipantRetrieveParams,
886
+ type ParticipantUpdateParams as ParticipantUpdateParams,
887
+ type ParticipantDeleteParams as ParticipantDeleteParams,
888
+ type ParticipantAddParams as ParticipantAddParams,
889
+ type ParticipantListCommissionsParams as ParticipantListCommissionsParams,
890
+ type ParticipantListPayoutsParams as ParticipantListPayoutsParams,
891
+ type ParticipantListReferralsParams as ParticipantListReferralsParams,
892
+ type ParticipantListRewardsParams as ParticipantListRewardsParams,
893
+ type ParticipantRecordTransactionParams as ParticipantRecordTransactionParams,
894
+ type ParticipantSendInvitesParams as ParticipantSendInvitesParams,
895
+ type ParticipantTriggerReferralParams as ParticipantTriggerReferralParams,
896
+ };
897
+ }