@fantastic.dev/better-stripe 0.23.2 → 0.25.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 +27 -2
  2. package/README.md +46 -5
  3. package/dist/client/affiliateRecovery/disputes.d.ts +18 -0
  4. package/dist/client/affiliateRecovery/disputes.d.ts.map +1 -0
  5. package/dist/client/affiliateRecovery/disputes.js +33 -0
  6. package/dist/client/affiliateRecovery/disputes.js.map +1 -0
  7. package/dist/client/affiliateRecovery/engine.d.ts +29 -0
  8. package/dist/client/affiliateRecovery/engine.d.ts.map +1 -0
  9. package/dist/client/affiliateRecovery/engine.js +116 -0
  10. package/dist/client/affiliateRecovery/engine.js.map +1 -0
  11. package/dist/client/affiliateRecovery/payoutGate.d.ts +24 -0
  12. package/dist/client/affiliateRecovery/payoutGate.d.ts.map +1 -0
  13. package/dist/client/affiliateRecovery/payoutGate.js +30 -0
  14. package/dist/client/affiliateRecovery/payoutGate.js.map +1 -0
  15. package/dist/client/affiliateRecovery/provider.d.ts +14 -0
  16. package/dist/client/affiliateRecovery/provider.d.ts.map +1 -0
  17. package/dist/client/affiliateRecovery/provider.js +96 -0
  18. package/dist/client/affiliateRecovery/provider.js.map +1 -0
  19. package/dist/client/affiliateRecovery/review.d.ts +28 -0
  20. package/dist/client/affiliateRecovery/review.d.ts.map +1 -0
  21. package/dist/client/affiliateRecovery/review.js +86 -0
  22. package/dist/client/affiliateRecovery/review.js.map +1 -0
  23. package/dist/client/affiliateRecovery/validators.d.ts +402 -0
  24. package/dist/client/affiliateRecovery/validators.d.ts.map +1 -0
  25. package/dist/client/affiliateRecovery/validators.js +27 -0
  26. package/dist/client/affiliateRecovery/validators.js.map +1 -0
  27. package/dist/client/affiliateRecovery.d.ts +131 -0
  28. package/dist/client/affiliateRecovery.d.ts.map +1 -0
  29. package/dist/client/affiliateRecovery.js +69 -0
  30. package/dist/client/affiliateRecovery.js.map +1 -0
  31. package/dist/client/billing/checkout.d.ts +3 -43
  32. package/dist/client/billing/checkout.d.ts.map +1 -1
  33. package/dist/client/billing/checkout.js +5 -260
  34. package/dist/client/billing/checkout.js.map +1 -1
  35. package/dist/client/billing/checkoutRequest.d.ts +129 -0
  36. package/dist/client/billing/checkoutRequest.d.ts.map +1 -0
  37. package/dist/client/billing/checkoutRequest.js +263 -0
  38. package/dist/client/billing/checkoutRequest.js.map +1 -0
  39. package/dist/client/billing/preparedCheckout.d.ts +22 -0
  40. package/dist/client/billing/preparedCheckout.d.ts.map +1 -0
  41. package/dist/client/billing/preparedCheckout.js +86 -0
  42. package/dist/client/billing/preparedCheckout.js.map +1 -0
  43. package/dist/client/checkoutRequests.d.ts +80 -0
  44. package/dist/client/checkoutRequests.d.ts.map +1 -0
  45. package/dist/client/checkoutRequests.js +28 -0
  46. package/dist/client/checkoutRequests.js.map +1 -0
  47. package/dist/client/connect/commissionReceipts.d.ts +4 -0
  48. package/dist/client/connect/commissionReceipts.d.ts.map +1 -0
  49. package/dist/client/connect/commissionReceipts.js +17 -0
  50. package/dist/client/connect/commissionReceipts.js.map +1 -0
  51. package/dist/client/connect/payoutAdoptionTestHelpers.d.ts +958 -2
  52. package/dist/client/connect/payoutAdoptionTestHelpers.d.ts.map +1 -1
  53. package/dist/client/connect/payoutCollection.d.ts +21 -0
  54. package/dist/client/connect/payoutCollection.d.ts.map +1 -0
  55. package/dist/client/connect/payoutCollection.js +47 -0
  56. package/dist/client/connect/payoutCollection.js.map +1 -0
  57. package/dist/client/connect/payoutExecutionTestHelpers.d.ts +1805 -0
  58. package/dist/client/connect/payoutExecutionTestHelpers.d.ts.map +1 -0
  59. package/dist/client/connect/payoutExecutionTestHelpers.js +194 -0
  60. package/dist/client/connect/payoutExecutionTestHelpers.js.map +1 -0
  61. package/dist/client/connect/payoutSyncTestHelpers.d.ts +479 -1
  62. package/dist/client/connect/payoutSyncTestHelpers.d.ts.map +1 -1
  63. package/dist/client/connect/payoutWorker.d.ts +48 -0
  64. package/dist/client/connect/payoutWorker.d.ts.map +1 -0
  65. package/dist/client/connect/payoutWorker.js +78 -0
  66. package/dist/client/connect/payoutWorker.js.map +1 -0
  67. package/dist/client/connect/payouts.d.ts +3 -1
  68. package/dist/client/connect/payouts.d.ts.map +1 -1
  69. package/dist/client/connect/payouts.js +45 -12
  70. package/dist/client/connect/payouts.js.map +1 -1
  71. package/dist/client/connect/refundPrincipal.d.ts +4 -0
  72. package/dist/client/connect/refundPrincipal.d.ts.map +1 -0
  73. package/dist/client/connect/refundPrincipal.js +21 -0
  74. package/dist/client/connect/refundPrincipal.js.map +1 -0
  75. package/dist/client/connect/reversalExecution.d.ts +47 -0
  76. package/dist/client/connect/reversalExecution.d.ts.map +1 -0
  77. package/dist/client/connect/reversalExecution.js +84 -0
  78. package/dist/client/connect/reversalExecution.js.map +1 -0
  79. package/dist/client/connect/transfers.d.ts +8 -4
  80. package/dist/client/connect/transfers.d.ts.map +1 -1
  81. package/dist/client/connect/transfers.js +52 -57
  82. package/dist/client/connect/transfers.js.map +1 -1
  83. package/dist/client/index.d.ts +7 -11
  84. package/dist/client/index.d.ts.map +1 -1
  85. package/dist/client/index.js +10 -10
  86. package/dist/client/index.js.map +1 -1
  87. package/dist/client/payoutPolicy.d.ts +67 -0
  88. package/dist/client/payoutPolicy.d.ts.map +1 -1
  89. package/dist/client/payoutPolicy.js +10 -0
  90. package/dist/client/payoutPolicy.js.map +1 -1
  91. package/dist/client/readContracts.d.ts +11 -1
  92. package/dist/client/readContracts.d.ts.map +1 -1
  93. package/dist/client/readContracts.js +10 -0
  94. package/dist/client/readContracts.js.map +1 -1
  95. package/dist/client/settlement/execution.d.ts.map +1 -1
  96. package/dist/client/settlement/execution.js +30 -3
  97. package/dist/client/settlement/execution.js.map +1 -1
  98. package/dist/client/settlement/reconciliation.d.ts.map +1 -1
  99. package/dist/client/settlement/reconciliation.js +16 -2
  100. package/dist/client/settlement/reconciliation.js.map +1 -1
  101. package/dist/client/webhooks/disputeRecovery.d.ts +4 -0
  102. package/dist/client/webhooks/disputeRecovery.d.ts.map +1 -0
  103. package/dist/client/webhooks/disputeRecovery.js +40 -0
  104. package/dist/client/webhooks/disputeRecovery.js.map +1 -0
  105. package/dist/client/webhooks/processors.d.ts.map +1 -1
  106. package/dist/client/webhooks/processors.js +14 -29
  107. package/dist/client/webhooks/processors.js.map +1 -1
  108. package/dist/component/_generated/component.d.ts +784 -0
  109. package/dist/component/_generated/component.d.ts.map +1 -1
  110. package/dist/component/affiliateEarnings/mutations.d.ts +22 -0
  111. package/dist/component/affiliateEarnings/mutations.d.ts.map +1 -0
  112. package/dist/component/affiliateEarnings/mutations.js +160 -0
  113. package/dist/component/affiliateEarnings/mutations.js.map +1 -0
  114. package/dist/component/affiliatePayouts/mutations.d.ts +25 -0
  115. package/dist/component/affiliatePayouts/mutations.d.ts.map +1 -0
  116. package/dist/component/affiliatePayouts/mutations.js +104 -0
  117. package/dist/component/affiliatePayouts/mutations.js.map +1 -0
  118. package/dist/component/affiliatePayouts/queries.d.ts +23 -0
  119. package/dist/component/affiliatePayouts/queries.d.ts.map +1 -0
  120. package/dist/component/affiliatePayouts/queries.js +23 -0
  121. package/dist/component/affiliatePayouts/queries.js.map +1 -0
  122. package/dist/component/affiliatePayouts/recipientGuard.d.ts +12 -0
  123. package/dist/component/affiliatePayouts/recipientGuard.d.ts.map +1 -0
  124. package/dist/component/affiliatePayouts/recipientGuard.js +26 -0
  125. package/dist/component/affiliatePayouts/recipientGuard.js.map +1 -0
  126. package/dist/component/affiliateRecovery/accounting.d.ts +28 -0
  127. package/dist/component/affiliateRecovery/accounting.d.ts.map +1 -0
  128. package/dist/component/affiliateRecovery/accounting.js +71 -0
  129. package/dist/component/affiliateRecovery/accounting.js.map +1 -0
  130. package/dist/component/affiliateRecovery/mutations.d.ts +65 -0
  131. package/dist/component/affiliateRecovery/mutations.d.ts.map +1 -0
  132. package/dist/component/affiliateRecovery/mutations.js +250 -0
  133. package/dist/component/affiliateRecovery/mutations.js.map +1 -0
  134. package/dist/component/affiliateRecovery/queries.d.ts +305 -0
  135. package/dist/component/affiliateRecovery/queries.d.ts.map +1 -0
  136. package/dist/component/affiliateRecovery/queries.js +113 -0
  137. package/dist/component/affiliateRecovery/queries.js.map +1 -0
  138. package/dist/component/affiliateRecovery/schema.d.ts +171 -0
  139. package/dist/component/affiliateRecovery/schema.d.ts.map +1 -0
  140. package/dist/component/affiliateRecovery/schema.js +71 -0
  141. package/dist/component/affiliateRecovery/schema.js.map +1 -0
  142. package/dist/component/connect/mutations.d.ts +36 -23
  143. package/dist/component/connect/mutations.d.ts.map +1 -1
  144. package/dist/component/connect/mutations.js +7 -124
  145. package/dist/component/connect/mutations.js.map +1 -1
  146. package/dist/component/connect/queries.d.ts +10 -0
  147. package/dist/component/connect/queries.d.ts.map +1 -1
  148. package/dist/component/connect/queries.js +3 -40
  149. package/dist/component/connect/queries.js.map +1 -1
  150. package/dist/component/connect/reversalClaims.d.ts +169 -0
  151. package/dist/component/connect/reversalClaims.d.ts.map +1 -0
  152. package/dist/component/connect/reversalClaims.js +176 -0
  153. package/dist/component/connect/reversalClaims.js.map +1 -0
  154. package/dist/component/connect/reversalDiagnostics.d.ts +59 -0
  155. package/dist/component/connect/reversalDiagnostics.d.ts.map +1 -0
  156. package/dist/component/connect/reversalDiagnostics.js +50 -0
  157. package/dist/component/connect/reversalDiagnostics.js.map +1 -0
  158. package/dist/component/connect/reversalReceipts.d.ts +27 -0
  159. package/dist/component/connect/reversalReceipts.d.ts.map +1 -0
  160. package/dist/component/connect/reversalReceipts.js +85 -0
  161. package/dist/component/connect/reversalReceipts.js.map +1 -0
  162. package/dist/component/connect/schema.d.ts +31 -1
  163. package/dist/component/connect/schema.d.ts.map +1 -1
  164. package/dist/component/connect/schema.js +3 -1
  165. package/dist/component/connect/schema.js.map +1 -1
  166. package/dist/component/connect/validators.d.ts +49 -1
  167. package/dist/component/connect/validators.d.ts.map +1 -1
  168. package/dist/component/connect/validators.js +2 -0
  169. package/dist/component/connect/validators.js.map +1 -1
  170. package/dist/component/core/mutations.d.ts.map +1 -1
  171. package/dist/component/core/mutations.js +2 -0
  172. package/dist/component/core/mutations.js.map +1 -1
  173. package/dist/component/core/resetSafety.d.ts +4 -0
  174. package/dist/component/core/resetSafety.d.ts.map +1 -0
  175. package/dist/component/core/resetSafety.js +54 -0
  176. package/dist/component/core/resetSafety.js.map +1 -0
  177. package/dist/component/earnings/triggers.d.ts +828 -2
  178. package/dist/component/earnings/triggers.d.ts.map +1 -1
  179. package/dist/component/earnings/triggers.js +2 -0
  180. package/dist/component/earnings/triggers.js.map +1 -1
  181. package/dist/component/payoutPolicy/schema.d.ts +2 -0
  182. package/dist/component/payoutPolicy/schema.d.ts.map +1 -1
  183. package/dist/component/payoutPolicy/schema.js +3 -1
  184. package/dist/component/payoutPolicy/schema.js.map +1 -1
  185. package/dist/component/payoutRelease/mutations.d.ts.map +1 -1
  186. package/dist/component/payoutRelease/mutations.js +7 -1
  187. package/dist/component/payoutRelease/mutations.js.map +1 -1
  188. package/dist/component/payoutRelease/queries.d.ts.map +1 -1
  189. package/dist/component/payoutRelease/queries.js +3 -1
  190. package/dist/component/payoutRelease/queries.js.map +1 -1
  191. package/dist/component/payoutRelease/schema.d.ts +1 -0
  192. package/dist/component/payoutRelease/schema.d.ts.map +1 -1
  193. package/dist/component/payoutRelease/schema.js +1 -0
  194. package/dist/component/payoutRelease/schema.js.map +1 -1
  195. package/dist/component/payoutSnapshots/localState.d.ts +89 -0
  196. package/dist/component/payoutSnapshots/localState.d.ts.map +1 -0
  197. package/dist/component/payoutSnapshots/localState.js +186 -0
  198. package/dist/component/payoutSnapshots/localState.js.map +1 -0
  199. package/dist/component/payoutSnapshots/mutations.d.ts +108 -0
  200. package/dist/component/payoutSnapshots/mutations.d.ts.map +1 -0
  201. package/dist/component/payoutSnapshots/mutations.js +263 -0
  202. package/dist/component/payoutSnapshots/mutations.js.map +1 -0
  203. package/dist/component/payoutSnapshots/revisions.d.ts +12 -0
  204. package/dist/component/payoutSnapshots/revisions.d.ts.map +1 -0
  205. package/dist/component/payoutSnapshots/revisions.js +173 -0
  206. package/dist/component/payoutSnapshots/revisions.js.map +1 -0
  207. package/dist/component/payoutSnapshots/schema.d.ts +285 -0
  208. package/dist/component/payoutSnapshots/schema.d.ts.map +1 -0
  209. package/dist/component/payoutSnapshots/schema.js +108 -0
  210. package/dist/component/payoutSnapshots/schema.js.map +1 -0
  211. package/dist/component/payoutSnapshots/scope.d.ts +7 -0
  212. package/dist/component/payoutSnapshots/scope.d.ts.map +1 -0
  213. package/dist/component/payoutSnapshots/scope.js +8 -0
  214. package/dist/component/payoutSnapshots/scope.js.map +1 -0
  215. package/dist/component/payoutWorker/helpers.d.ts +30 -0
  216. package/dist/component/payoutWorker/helpers.d.ts.map +1 -0
  217. package/dist/component/payoutWorker/helpers.js +21 -0
  218. package/dist/component/payoutWorker/helpers.js.map +1 -0
  219. package/dist/component/payoutWorker/mutations.d.ts +68 -0
  220. package/dist/component/payoutWorker/mutations.d.ts.map +1 -0
  221. package/dist/component/payoutWorker/mutations.js +161 -0
  222. package/dist/component/payoutWorker/mutations.js.map +1 -0
  223. package/dist/component/payoutWorker/queries.d.ts +123 -0
  224. package/dist/component/payoutWorker/queries.d.ts.map +1 -0
  225. package/dist/component/payoutWorker/queries.js +61 -0
  226. package/dist/component/payoutWorker/queries.js.map +1 -0
  227. package/dist/component/payoutWorker/schema.d.ts +91 -0
  228. package/dist/component/payoutWorker/schema.d.ts.map +1 -0
  229. package/dist/component/payoutWorker/schema.js +27 -0
  230. package/dist/component/payoutWorker/schema.js.map +1 -0
  231. package/dist/component/schema.d.ts +479 -1
  232. package/dist/component/schema.js +19 -0
  233. package/dist/component/schema.js.map +1 -1
  234. package/dist/component/settlement/clawbackSchema.d.ts +161 -0
  235. package/dist/component/settlement/clawbackSchema.d.ts.map +1 -0
  236. package/dist/component/settlement/clawbackSchema.js +73 -0
  237. package/dist/component/settlement/clawbackSchema.js.map +1 -0
  238. package/dist/component/settlement/clawbacks.d.ts +55 -0
  239. package/dist/component/settlement/clawbacks.d.ts.map +1 -0
  240. package/dist/component/settlement/clawbacks.js +146 -0
  241. package/dist/component/settlement/clawbacks.js.map +1 -0
  242. package/dist/component/settlement/mutations.d.ts +16 -0
  243. package/dist/component/settlement/mutations.d.ts.map +1 -1
  244. package/dist/component/settlement/mutations.js +48 -0
  245. package/dist/component/settlement/mutations.js.map +1 -1
  246. package/dist/component/settlement/queries.d.ts +53 -0
  247. package/dist/component/settlement/queries.d.ts.map +1 -1
  248. package/dist/component/settlement/queries.js +26 -0
  249. package/dist/component/settlement/queries.js.map +1 -1
  250. package/dist/react/workflows/AffiliateRecovery.d.ts +46 -0
  251. package/dist/react/workflows/AffiliateRecovery.d.ts.map +1 -0
  252. package/dist/react/workflows/AffiliateRecovery.js +84 -0
  253. package/dist/react/workflows/AffiliateRecovery.js.map +1 -0
  254. package/dist/react/workflows/index.d.ts +2 -0
  255. package/dist/react/workflows/index.d.ts.map +1 -1
  256. package/dist/react/workflows/index.js +1 -0
  257. package/dist/react/workflows/index.js.map +1 -1
  258. package/dist/testing/affiliate-recovery.d.ts +10 -0
  259. package/dist/testing/affiliate-recovery.d.ts.map +1 -0
  260. package/dist/testing/affiliate-recovery.js +126 -0
  261. package/dist/testing/affiliate-recovery.js.map +1 -0
  262. package/dist/testing/index.d.ts +2 -0
  263. package/dist/testing/index.d.ts.map +1 -1
  264. package/dist/testing/index.js +1 -0
  265. package/dist/testing/index.js.map +1 -1
  266. package/docs/affiliate-clawbacks.md +306 -0
  267. package/docs/read-contracts.md +48 -0
  268. package/docs/settlement.md +145 -1
  269. package/package.json +2 -1
  270. package/src/client/affiliateRecovery/disputes.ts +62 -0
  271. package/src/client/affiliateRecovery/engine.ts +196 -0
  272. package/src/client/affiliateRecovery/payoutGate.ts +65 -0
  273. package/src/client/affiliateRecovery/provider.ts +127 -0
  274. package/src/client/affiliateRecovery/review.ts +117 -0
  275. package/src/client/affiliateRecovery/validators.ts +38 -0
  276. package/src/client/affiliateRecovery.ts +173 -0
  277. package/src/client/billing/checkout.ts +11 -359
  278. package/src/client/billing/checkoutRequest.ts +362 -0
  279. package/src/client/billing/prepared-checkout.test.ts +430 -0
  280. package/src/client/billing/preparedCheckout.ts +143 -0
  281. package/src/client/checkoutRequests.ts +40 -0
  282. package/src/client/connect/commissionReceipts.test.ts +157 -0
  283. package/src/client/connect/commissionReceipts.ts +23 -0
  284. package/src/client/connect/payoutCollection.test.ts +74 -0
  285. package/src/client/connect/payoutCollection.ts +82 -0
  286. package/src/client/connect/payoutExecution.test.ts +1 -211
  287. package/src/client/connect/payoutExecutionTestHelpers.ts +213 -0
  288. package/src/client/connect/payoutWorker.test.ts +145 -0
  289. package/src/client/connect/payoutWorker.ts +144 -0
  290. package/src/client/connect/payouts.ts +75 -15
  291. package/src/client/connect/refundPrincipal.test.ts +46 -0
  292. package/src/client/connect/refundPrincipal.ts +26 -0
  293. package/src/client/connect/reversalExecution.ts +130 -0
  294. package/src/client/connect/transfers.test.ts +3 -3
  295. package/src/client/connect/transfers.ts +93 -92
  296. package/src/client/index.ts +16 -28
  297. package/src/client/payoutPolicy.ts +26 -1
  298. package/src/client/readContracts.ts +23 -0
  299. package/src/client/settlement/execution.test.ts +5 -0
  300. package/src/client/settlement/execution.ts +50 -3
  301. package/src/client/settlement/reconciliation.ts +20 -2
  302. package/src/client/webhooks/disputeRecovery.ts +74 -0
  303. package/src/client/webhooks/processors.test.ts +36 -53
  304. package/src/client/webhooks/processors.ts +18 -31
  305. package/src/component/_generated/api.ts +40 -0
  306. package/src/component/_generated/component.ts +975 -1
  307. package/src/component/affiliate-clawbacks.test.ts +370 -0
  308. package/src/component/affiliate-component-pagination.test.ts +83 -0
  309. package/src/component/affiliate-direct-payout.test.ts +160 -0
  310. package/src/component/affiliate-recovery-lifecycle.test.ts +587 -0
  311. package/src/component/affiliateEarnings/mutations.ts +196 -0
  312. package/src/component/affiliatePayouts/mutations.ts +121 -0
  313. package/src/component/affiliatePayouts/queries.ts +28 -0
  314. package/src/component/affiliatePayouts/recipientGuard.ts +42 -0
  315. package/src/component/affiliateRecovery/accounting.ts +111 -0
  316. package/src/component/affiliateRecovery/mutations.ts +275 -0
  317. package/src/component/affiliateRecovery/queries.ts +138 -0
  318. package/src/component/affiliateRecovery/schema.ts +86 -0
  319. package/src/component/connect/mutations.ts +9 -160
  320. package/src/component/connect/queries.ts +4 -47
  321. package/src/component/connect/reversalClaims.ts +232 -0
  322. package/src/component/connect/reversalDiagnostics.ts +61 -0
  323. package/src/component/connect/reversalReceipts.ts +147 -0
  324. package/src/component/connect/schema.ts +3 -3
  325. package/src/component/connect/validators.ts +2 -0
  326. package/src/component/core/mutations.ts +2 -0
  327. package/src/component/core/resetSafety.ts +67 -0
  328. package/src/component/earnings/triggers.ts +2 -0
  329. package/src/component/payout-recovery-integration.test.ts +172 -0
  330. package/src/component/payout-reset-safety.test.ts +148 -0
  331. package/src/component/payout-revisions.test.ts +125 -0
  332. package/src/component/payout-snapshots.test.ts +395 -0
  333. package/src/component/payout-worker.test.ts +165 -0
  334. package/src/component/payoutPolicy/schema.ts +3 -1
  335. package/src/component/payoutRelease/mutations.ts +10 -1
  336. package/src/component/payoutRelease/queries.ts +3 -1
  337. package/src/component/payoutRelease/schema.ts +1 -0
  338. package/src/component/payoutSnapshots/localState.ts +238 -0
  339. package/src/component/payoutSnapshots/mutations.ts +275 -0
  340. package/src/component/payoutSnapshots/revisions.ts +247 -0
  341. package/src/component/payoutSnapshots/schema.ts +125 -0
  342. package/src/component/payoutSnapshots/scope.ts +7 -0
  343. package/src/component/payoutWorker/helpers.ts +30 -0
  344. package/src/component/payoutWorker/mutations.ts +181 -0
  345. package/src/component/payoutWorker/queries.ts +64 -0
  346. package/src/component/payoutWorker/schema.ts +26 -0
  347. package/src/component/public.test.ts +2 -2
  348. package/src/component/schema.ts +36 -0
  349. package/src/component/settlement/clawbackSchema.ts +78 -0
  350. package/src/component/settlement/clawbacks.ts +233 -0
  351. package/src/component/settlement/mutations.ts +54 -0
  352. package/src/component/settlement/queries.ts +35 -0
  353. package/src/component/summary-arithmetic.test.ts +9 -4
  354. package/src/react/workflows/AffiliateRecovery.test.tsx +106 -0
  355. package/src/react/workflows/AffiliateRecovery.tsx +273 -0
  356. package/src/react/workflows/index.ts +9 -0
  357. package/src/testing/affiliate-recovery.ts +137 -0
  358. package/src/testing/index.ts +2 -0
@@ -23,6 +23,505 @@ import type { FunctionReference } from "convex/server";
23
23
  */
24
24
  export type ComponentApi<Name extends string | undefined = string | undefined> =
25
25
  {
26
+ affiliateEarnings: {
27
+ mutations: {
28
+ confirmEarning: FunctionReference<
29
+ "mutation",
30
+ "internal",
31
+ { earningId: string; stripeTransferId?: string },
32
+ null,
33
+ Name
34
+ >;
35
+ reserveEarning: FunctionReference<
36
+ "mutation",
37
+ "internal",
38
+ { affiliateAccountId: string; sourceChargeId: string },
39
+ {
40
+ _creationTime: number;
41
+ _id: string;
42
+ affiliateAccountId: string;
43
+ currency: string;
44
+ originalCommission: number;
45
+ paymentIntentId?: string;
46
+ releaseAmount: number;
47
+ sourceChargeId: string;
48
+ sourceInvoiceId?: string;
49
+ status: "reserved" | "paid";
50
+ stripeTransferId?: string;
51
+ withheldAmount: number;
52
+ },
53
+ Name
54
+ >;
55
+ };
56
+ };
57
+ affiliatePayouts: {
58
+ mutations: {
59
+ finishPayout: FunctionReference<
60
+ "mutation",
61
+ "internal",
62
+ {
63
+ operationKey: string;
64
+ state: "unknown" | "submitted" | "failed";
65
+ stripePayoutId?: string;
66
+ },
67
+ null,
68
+ Name
69
+ >;
70
+ reservePayout: FunctionReference<
71
+ "mutation",
72
+ "internal",
73
+ {
74
+ affiliateAccountId: string;
75
+ amount: number;
76
+ currency: string;
77
+ minimumAmount: number;
78
+ now: number;
79
+ operationKey?: string;
80
+ },
81
+ {
82
+ _creationTime: number;
83
+ _id: string;
84
+ affiliateAccountId: string;
85
+ amount: number;
86
+ createdAt: number;
87
+ currency: string;
88
+ minimumAmount: number;
89
+ operationKey: string;
90
+ state: "pending" | "unknown" | "submitted" | "failed";
91
+ stripePayoutId?: string;
92
+ } | null,
93
+ Name
94
+ >;
95
+ };
96
+ queries: {
97
+ pendingPayouts: FunctionReference<
98
+ "query",
99
+ "internal",
100
+ {
101
+ paginationOpts: {
102
+ cursor: string | null;
103
+ endCursor?: string | null;
104
+ id?: number;
105
+ maximumBytesRead?: number;
106
+ maximumRowsRead?: number;
107
+ numItems: number;
108
+ };
109
+ state: "pending" | "unknown";
110
+ },
111
+ {
112
+ continueCursor: string;
113
+ isDone: boolean;
114
+ page: Array<{
115
+ _creationTime: number;
116
+ _id: string;
117
+ affiliateAccountId: string;
118
+ amount: number;
119
+ createdAt: number;
120
+ currency: string;
121
+ minimumAmount: number;
122
+ operationKey: string;
123
+ state: "pending" | "unknown" | "submitted" | "failed";
124
+ stripePayoutId?: string;
125
+ }>;
126
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
127
+ splitCursor?: string | null;
128
+ },
129
+ Name
130
+ >;
131
+ };
132
+ };
133
+ affiliateRecovery: {
134
+ mutations: {
135
+ beginOperation: FunctionReference<
136
+ "mutation",
137
+ "internal",
138
+ { operationId: string },
139
+ {
140
+ _creationTime: number;
141
+ _id: string;
142
+ amount: number;
143
+ attempted: boolean;
144
+ createdAt: number;
145
+ error?: string;
146
+ kind: "recovery" | "restoration";
147
+ obligationId: string;
148
+ providerBaseline?: number;
149
+ receiptId?: string;
150
+ sourceEventId?: string;
151
+ state:
152
+ | "pending"
153
+ | "unknown"
154
+ | "insufficient_balance"
155
+ | "unsupported"
156
+ | "failed"
157
+ | "succeeded"
158
+ | "canceled";
159
+ },
160
+ Name
161
+ >;
162
+ completeOperation: FunctionReference<
163
+ "mutation",
164
+ "internal",
165
+ {
166
+ confirmedTransferReversed?: number;
167
+ error?: string;
168
+ operationId: string;
169
+ receiptId?: string;
170
+ state:
171
+ | "pending"
172
+ | "unknown"
173
+ | "insufficient_balance"
174
+ | "unsupported"
175
+ | "failed"
176
+ | "succeeded"
177
+ | "canceled";
178
+ },
179
+ null,
180
+ Name
181
+ >;
182
+ reserveOperation: FunctionReference<
183
+ "mutation",
184
+ "internal",
185
+ {
186
+ kind: "recovery" | "restoration";
187
+ now: number;
188
+ obligationId: string;
189
+ },
190
+ {
191
+ _creationTime: number;
192
+ _id: string;
193
+ amount: number;
194
+ attempted: boolean;
195
+ createdAt: number;
196
+ error?: string;
197
+ kind: "recovery" | "restoration";
198
+ obligationId: string;
199
+ providerBaseline?: number;
200
+ receiptId?: string;
201
+ sourceEventId?: string;
202
+ state:
203
+ | "pending"
204
+ | "unknown"
205
+ | "insufficient_balance"
206
+ | "unsupported"
207
+ | "failed"
208
+ | "succeeded"
209
+ | "canceled";
210
+ } | null,
211
+ Name
212
+ >;
213
+ reviewLegacy: FunctionReference<
214
+ "mutation",
215
+ "internal",
216
+ {
217
+ exposure: {
218
+ chargeAmount: number;
219
+ disputeId?: string;
220
+ disputeState?: "open" | "lost" | "won";
221
+ finalized: boolean;
222
+ kind: "refund" | "dispute";
223
+ principal: number;
224
+ refundId?: string;
225
+ refundedPrincipal?: number;
226
+ };
227
+ note: string;
228
+ obligationId: string;
229
+ receipts: Array<{ amount: number; id: string }>;
230
+ recoveredAmount: number;
231
+ restorationIds: Array<string>;
232
+ restoredAmount: number;
233
+ },
234
+ null,
235
+ Name
236
+ >;
237
+ };
238
+ queries: {
239
+ chargeObligations: FunctionReference<
240
+ "query",
241
+ "internal",
242
+ { sourceChargeId: string },
243
+ Array<{
244
+ _creationTime: number;
245
+ _id: string;
246
+ accounted?: boolean;
247
+ activeOperationId?: string;
248
+ affiliateAccountId: string;
249
+ chargeAmount: number;
250
+ creditAmount?: number;
251
+ currency: string;
252
+ debtAmount?: number;
253
+ debtStatus?: "open" | "settled";
254
+ disputeId?: string;
255
+ disputeState?: "open" | "lost" | "won";
256
+ disputedPrincipal: number;
257
+ earningId?: string;
258
+ finalizedAmount: number;
259
+ lastError?: string;
260
+ lastRefundId?: string;
261
+ lastState?: string;
262
+ legacyReceiptIds?: Array<string>;
263
+ legacyRestorationIds?: Array<string>;
264
+ lostPrincipal: number;
265
+ needsReconciliation: boolean;
266
+ offsetAmount?: number;
267
+ operationSequence?: number;
268
+ operatorNote?: string;
269
+ originalCommission: number;
270
+ paymentId?: string;
271
+ paymentIntentId?: string;
272
+ provisionalAmount: number;
273
+ recoveredAmount: number;
274
+ refundedPrincipal: number;
275
+ releasedCommission?: number;
276
+ reservedRecovery?: number;
277
+ reservedRestoration?: number;
278
+ restoredAmount?: number;
279
+ sourceChargeId: string;
280
+ sourceInvoiceId?: string;
281
+ storeAccountId?: string;
282
+ stripeTransferId?: string;
283
+ }>,
284
+ Name
285
+ >;
286
+ getEarning: FunctionReference<
287
+ "query",
288
+ "internal",
289
+ { affiliateAccountId: string; sourceChargeId: string },
290
+ {
291
+ _creationTime: number;
292
+ _id: string;
293
+ affiliateAccountId: string;
294
+ currency: string;
295
+ originalCommission: number;
296
+ paymentIntentId?: string;
297
+ releaseAmount: number;
298
+ sourceChargeId: string;
299
+ sourceInvoiceId?: string;
300
+ status: "reserved" | "paid";
301
+ stripeTransferId?: string;
302
+ withheldAmount: number;
303
+ } | null,
304
+ Name
305
+ >;
306
+ getObligation: FunctionReference<
307
+ "query",
308
+ "internal",
309
+ { obligationId: string },
310
+ {
311
+ _creationTime: number;
312
+ _id: string;
313
+ accounted?: boolean;
314
+ activeOperationId?: string;
315
+ affiliateAccountId: string;
316
+ chargeAmount: number;
317
+ creditAmount?: number;
318
+ currency: string;
319
+ debtAmount?: number;
320
+ debtStatus?: "open" | "settled";
321
+ disputeId?: string;
322
+ disputeState?: "open" | "lost" | "won";
323
+ disputedPrincipal: number;
324
+ earningId?: string;
325
+ finalizedAmount: number;
326
+ lastError?: string;
327
+ lastRefundId?: string;
328
+ lastState?: string;
329
+ legacyReceiptIds?: Array<string>;
330
+ legacyRestorationIds?: Array<string>;
331
+ lostPrincipal: number;
332
+ needsReconciliation: boolean;
333
+ offsetAmount?: number;
334
+ operationSequence?: number;
335
+ operatorNote?: string;
336
+ originalCommission: number;
337
+ paymentId?: string;
338
+ paymentIntentId?: string;
339
+ provisionalAmount: number;
340
+ recoveredAmount: number;
341
+ refundedPrincipal: number;
342
+ releasedCommission?: number;
343
+ reservedRecovery?: number;
344
+ reservedRestoration?: number;
345
+ restoredAmount?: number;
346
+ sourceChargeId: string;
347
+ sourceInvoiceId?: string;
348
+ storeAccountId?: string;
349
+ stripeTransferId?: string;
350
+ } | null,
351
+ Name
352
+ >;
353
+ operationHistory: FunctionReference<
354
+ "query",
355
+ "internal",
356
+ {
357
+ obligationId: string;
358
+ paginationOpts: {
359
+ cursor: string | null;
360
+ endCursor?: string | null;
361
+ id?: number;
362
+ maximumBytesRead?: number;
363
+ maximumRowsRead?: number;
364
+ numItems: number;
365
+ };
366
+ },
367
+ {
368
+ continueCursor: string;
369
+ isDone: boolean;
370
+ page: Array<{
371
+ _creationTime: number;
372
+ _id: string;
373
+ amount: number;
374
+ attempted: boolean;
375
+ createdAt: number;
376
+ error?: string;
377
+ kind: "recovery" | "restoration";
378
+ obligationId: string;
379
+ providerBaseline?: number;
380
+ receiptId?: string;
381
+ sourceEventId?: string;
382
+ state:
383
+ | "pending"
384
+ | "unknown"
385
+ | "insufficient_balance"
386
+ | "unsupported"
387
+ | "failed"
388
+ | "succeeded"
389
+ | "canceled";
390
+ }>;
391
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
392
+ splitCursor?: string | null;
393
+ },
394
+ Name
395
+ >;
396
+ pendingOperations: FunctionReference<
397
+ "query",
398
+ "internal",
399
+ {
400
+ paginationOpts: {
401
+ cursor: string | null;
402
+ endCursor?: string | null;
403
+ id?: number;
404
+ maximumBytesRead?: number;
405
+ maximumRowsRead?: number;
406
+ numItems: number;
407
+ };
408
+ state: "pending" | "unknown";
409
+ },
410
+ {
411
+ continueCursor: string;
412
+ isDone: boolean;
413
+ page: Array<{
414
+ _creationTime: number;
415
+ _id: string;
416
+ amount: number;
417
+ attempted: boolean;
418
+ createdAt: number;
419
+ error?: string;
420
+ kind: "recovery" | "restoration";
421
+ obligationId: string;
422
+ providerBaseline?: number;
423
+ receiptId?: string;
424
+ sourceEventId?: string;
425
+ state:
426
+ | "pending"
427
+ | "unknown"
428
+ | "insufficient_balance"
429
+ | "unsupported"
430
+ | "failed"
431
+ | "succeeded"
432
+ | "canceled";
433
+ }>;
434
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
435
+ splitCursor?: string | null;
436
+ },
437
+ Name
438
+ >;
439
+ recoverySnapshot: FunctionReference<
440
+ "query",
441
+ "internal",
442
+ {
443
+ affiliateAccountId: string;
444
+ currency: string;
445
+ paginationOpts: {
446
+ cursor: string | null;
447
+ endCursor?: string | null;
448
+ id?: number;
449
+ maximumBytesRead?: number;
450
+ maximumRowsRead?: number;
451
+ numItems: number;
452
+ };
453
+ },
454
+ {
455
+ balance: {
456
+ _creationTime: number;
457
+ _id: string;
458
+ activePayoutKey?: string;
459
+ affiliateAccountId: string;
460
+ currency: string;
461
+ netPayable: number;
462
+ offsetAmount: number;
463
+ originalCommission: number;
464
+ outstandingDebt: number;
465
+ pendingPayoutAmount?: number;
466
+ recoveredAmount: number;
467
+ reservedRecovery: number;
468
+ reservedRestoration: number;
469
+ restorationDue: number;
470
+ restoredAmount: number;
471
+ withheldAmount: number;
472
+ } | null;
473
+ obligations: {
474
+ continueCursor: string;
475
+ isDone: boolean;
476
+ page: Array<{
477
+ _creationTime: number;
478
+ _id: string;
479
+ accounted?: boolean;
480
+ activeOperationId?: string;
481
+ affiliateAccountId: string;
482
+ chargeAmount: number;
483
+ creditAmount?: number;
484
+ currency: string;
485
+ debtAmount?: number;
486
+ debtStatus?: "open" | "settled";
487
+ disputeId?: string;
488
+ disputeState?: "open" | "lost" | "won";
489
+ disputedPrincipal: number;
490
+ earningId?: string;
491
+ finalizedAmount: number;
492
+ lastError?: string;
493
+ lastRefundId?: string;
494
+ lastState?: string;
495
+ legacyReceiptIds?: Array<string>;
496
+ legacyRestorationIds?: Array<string>;
497
+ lostPrincipal: number;
498
+ needsReconciliation: boolean;
499
+ offsetAmount?: number;
500
+ operationSequence?: number;
501
+ operatorNote?: string;
502
+ originalCommission: number;
503
+ paymentId?: string;
504
+ paymentIntentId?: string;
505
+ provisionalAmount: number;
506
+ recoveredAmount: number;
507
+ refundedPrincipal: number;
508
+ releasedCommission?: number;
509
+ reservedRecovery?: number;
510
+ reservedRestoration?: number;
511
+ restoredAmount?: number;
512
+ sourceChargeId: string;
513
+ sourceInvoiceId?: string;
514
+ storeAccountId?: string;
515
+ stripeTransferId?: string;
516
+ }>;
517
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
518
+ splitCursor?: string | null;
519
+ };
520
+ },
521
+ Name
522
+ >;
523
+ };
524
+ };
26
525
  billing: {
27
526
  mutations: {
28
527
  upsertCheckoutSession: FunctionReference<
@@ -753,6 +1252,16 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
753
1252
  "mutation",
754
1253
  "internal",
755
1254
  {
1255
+ commissionExposure?: {
1256
+ chargeAmount: number;
1257
+ disputeId?: string;
1258
+ disputeState?: "open" | "lost" | "won";
1259
+ finalized: boolean;
1260
+ kind: "refund" | "dispute";
1261
+ principal: number;
1262
+ refundId?: string;
1263
+ refundedPrincipal?: number;
1264
+ };
756
1265
  mode:
757
1266
  | { kind: "full" }
758
1267
  | { kind: "percent"; percent: number }
@@ -768,6 +1277,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
768
1277
  {
769
1278
  replay: boolean;
770
1279
  slices: Array<{
1280
+ commissionTracked?: boolean;
771
1281
  confirmed: number;
772
1282
  from: number;
773
1283
  stripeTransferId: string;
@@ -790,7 +1300,15 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
790
1300
  recordTransferReversal: FunctionReference<
791
1301
  "mutation",
792
1302
  "internal",
793
- { reversedAmount: number; stripeTransferId: string },
1303
+ {
1304
+ receipt?: {
1305
+ amount: number;
1306
+ operationId: string;
1307
+ stripeReversalId: string;
1308
+ };
1309
+ reversedAmount: number;
1310
+ stripeTransferId: string;
1311
+ },
794
1312
  null,
795
1313
  Name
796
1314
  >;
@@ -1207,6 +1725,16 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
1207
1725
  {
1208
1726
  _creationTime: number;
1209
1727
  _id: string;
1728
+ commissionExposure?: {
1729
+ chargeAmount: number;
1730
+ disputeId?: string;
1731
+ disputeState?: "open" | "lost" | "won";
1732
+ finalized: boolean;
1733
+ kind: "refund" | "dispute";
1734
+ principal: number;
1735
+ refundId?: string;
1736
+ refundedPrincipal?: number;
1737
+ };
1210
1738
  operationId: string;
1211
1739
  slices: Array<{
1212
1740
  from: number;
@@ -3155,6 +3683,161 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
3155
3683
  >;
3156
3684
  };
3157
3685
  };
3686
+ payoutSnapshots: {
3687
+ mutations: {
3688
+ advance: FunctionReference<
3689
+ "mutation",
3690
+ "internal",
3691
+ {
3692
+ accountId: string;
3693
+ batchSize?: number;
3694
+ expectedStep: number;
3695
+ operationKey: string;
3696
+ ownerKey: string;
3697
+ },
3698
+ {
3699
+ _creationTime: number;
3700
+ _id: string;
3701
+ accountId: string;
3702
+ allocationCount: number;
3703
+ allocationCursor?: string;
3704
+ claimCount: number;
3705
+ claimCursor?: string;
3706
+ deferredPositiveChanges: boolean;
3707
+ expectedRevision: number;
3708
+ expiresAt: number;
3709
+ feeCount: number;
3710
+ feeCursor?: string;
3711
+ initialRevision: number;
3712
+ initialRiskRevision: number;
3713
+ observedRevision: number;
3714
+ operationKey: string;
3715
+ ownerKey: string;
3716
+ phase:
3717
+ | "sources"
3718
+ | "allocations"
3719
+ | "fees"
3720
+ | "claims"
3721
+ | "repair"
3722
+ | "check"
3723
+ | "local_ready"
3724
+ | "invalidated"
3725
+ | "discarding";
3726
+ policyMode?: string;
3727
+ policyOperationKey?: string;
3728
+ providerChanged: boolean;
3729
+ readOnly: boolean;
3730
+ reason?: string;
3731
+ riskRevision: number;
3732
+ sourceCount: number;
3733
+ sourceCursor?: string;
3734
+ sourceFence: number;
3735
+ step: number;
3736
+ },
3737
+ Name
3738
+ >;
3739
+ begin: FunctionReference<
3740
+ "mutation",
3741
+ "internal",
3742
+ {
3743
+ accountId: string;
3744
+ expectedRevision: number;
3745
+ operationKey: string;
3746
+ ownerKey: string;
3747
+ },
3748
+ {
3749
+ _creationTime: number;
3750
+ _id: string;
3751
+ accountId: string;
3752
+ allocationCount: number;
3753
+ allocationCursor?: string;
3754
+ claimCount: number;
3755
+ claimCursor?: string;
3756
+ deferredPositiveChanges: boolean;
3757
+ expectedRevision: number;
3758
+ expiresAt: number;
3759
+ feeCount: number;
3760
+ feeCursor?: string;
3761
+ initialRevision: number;
3762
+ initialRiskRevision: number;
3763
+ observedRevision: number;
3764
+ operationKey: string;
3765
+ ownerKey: string;
3766
+ phase:
3767
+ | "sources"
3768
+ | "allocations"
3769
+ | "fees"
3770
+ | "claims"
3771
+ | "repair"
3772
+ | "check"
3773
+ | "local_ready"
3774
+ | "invalidated"
3775
+ | "discarding";
3776
+ policyMode?: string;
3777
+ policyOperationKey?: string;
3778
+ providerChanged: boolean;
3779
+ readOnly: boolean;
3780
+ reason?: string;
3781
+ riskRevision: number;
3782
+ sourceCount: number;
3783
+ sourceCursor?: string;
3784
+ sourceFence: number;
3785
+ step: number;
3786
+ },
3787
+ Name
3788
+ >;
3789
+ discard: FunctionReference<
3790
+ "mutation",
3791
+ "internal",
3792
+ {
3793
+ accountId: string;
3794
+ batchSize?: number;
3795
+ operationKey: string;
3796
+ ownerKey: string;
3797
+ },
3798
+ {
3799
+ _creationTime: number;
3800
+ _id: string;
3801
+ accountId: string;
3802
+ allocationCount: number;
3803
+ allocationCursor?: string;
3804
+ claimCount: number;
3805
+ claimCursor?: string;
3806
+ deferredPositiveChanges: boolean;
3807
+ expectedRevision: number;
3808
+ expiresAt: number;
3809
+ feeCount: number;
3810
+ feeCursor?: string;
3811
+ initialRevision: number;
3812
+ initialRiskRevision: number;
3813
+ observedRevision: number;
3814
+ operationKey: string;
3815
+ ownerKey: string;
3816
+ phase:
3817
+ | "sources"
3818
+ | "allocations"
3819
+ | "fees"
3820
+ | "claims"
3821
+ | "repair"
3822
+ | "check"
3823
+ | "local_ready"
3824
+ | "invalidated"
3825
+ | "discarding";
3826
+ policyMode?: string;
3827
+ policyOperationKey?: string;
3828
+ providerChanged: boolean;
3829
+ readOnly: boolean;
3830
+ reason?: string;
3831
+ riskRevision: number;
3832
+ sourceCount: number;
3833
+ sourceCursor?: string;
3834
+ sourceFence: number;
3835
+ step: number;
3836
+ } | null,
3837
+ Name
3838
+ >;
3839
+ };
3840
+ };
3158
3841
  payoutSync: {
3159
3842
  mutations: {
3160
3843
  begin: FunctionReference<
@@ -3237,6 +3920,212 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
3237
3920
  >;
3238
3921
  };
3239
3922
  };
3923
+ payoutWorker: {
3924
+ mutations: {
3925
+ begin: FunctionReference<
3926
+ "mutation",
3927
+ "internal",
3928
+ {
3929
+ accountId: string;
3930
+ cadenceMs: number;
3931
+ currency: string;
3932
+ ownerKey: string;
3933
+ },
3934
+ | { nextAttemptAt?: number; reason: string; status: "held" }
3935
+ | {
3936
+ job: {
3937
+ _creationTime: number;
3938
+ _id: string;
3939
+ accountId: string;
3940
+ cadenceMs: number;
3941
+ completedGeneration?: number;
3942
+ completedOperationKey?: string;
3943
+ currency: string;
3944
+ generation: number;
3945
+ hasOperation: boolean;
3946
+ lastAttemptAt?: number;
3947
+ lastReason?: string;
3948
+ leaseUntil?: number;
3949
+ nextAttemptAt: number;
3950
+ operationKey?: string;
3951
+ ownerKey: string;
3952
+ sequence: number;
3953
+ };
3954
+ reconcileOnly: boolean;
3955
+ status: "run";
3956
+ },
3957
+ Name
3958
+ >;
3959
+ finish: FunctionReference<
3960
+ "mutation",
3961
+ "internal",
3962
+ {
3963
+ accountId: string;
3964
+ currency: string;
3965
+ generation: number;
3966
+ operationKey: string;
3967
+ ownerKey: string;
3968
+ reason: string;
3969
+ },
3970
+ {
3971
+ _creationTime: number;
3972
+ _id: string;
3973
+ accountId: string;
3974
+ cadenceMs: number;
3975
+ completedGeneration?: number;
3976
+ completedOperationKey?: string;
3977
+ currency: string;
3978
+ generation: number;
3979
+ hasOperation: boolean;
3980
+ lastAttemptAt?: number;
3981
+ lastReason?: string;
3982
+ leaseUntil?: number;
3983
+ nextAttemptAt: number;
3984
+ operationKey?: string;
3985
+ ownerKey: string;
3986
+ sequence: number;
3987
+ },
3988
+ Name
3989
+ >;
3990
+ };
3991
+ queries: {
3992
+ changing: FunctionReference<
3993
+ "query",
3994
+ "internal",
3995
+ {
3996
+ paginationOpts: {
3997
+ cursor: string | null;
3998
+ endCursor?: string | null;
3999
+ id?: number;
4000
+ maximumBytesRead?: number;
4001
+ maximumRowsRead?: number;
4002
+ numItems: number;
4003
+ };
4004
+ },
4005
+ {
4006
+ continueCursor: string;
4007
+ isDone: boolean;
4008
+ page: Array<{
4009
+ _creationTime: number;
4010
+ _id: string;
4011
+ accountId: string;
4012
+ country: string;
4013
+ holdDeadline?: number;
4014
+ mode: "stripe_managed" | "custom";
4015
+ operationKey: string;
4016
+ ownerKey: string;
4017
+ previousSchedule?: {
4018
+ interval: "daily" | "weekly" | "monthly" | "manual";
4019
+ monthlyDays?: Array<number>;
4020
+ weeklyDays?: Array<string>;
4021
+ };
4022
+ revision: number;
4023
+ status: "changing" | "ready";
4024
+ thresholds: Array<{ amount: number; currency: string }>;
4025
+ }>;
4026
+ },
4027
+ Name
4028
+ >;
4029
+ get: FunctionReference<
4030
+ "query",
4031
+ "internal",
4032
+ { accountId: string; currency: string; ownerKey: string },
4033
+ {
4034
+ _creationTime: number;
4035
+ _id: string;
4036
+ accountId: string;
4037
+ cadenceMs: number;
4038
+ completedGeneration?: number;
4039
+ completedOperationKey?: string;
4040
+ currency: string;
4041
+ generation: number;
4042
+ hasOperation: boolean;
4043
+ lastAttemptAt?: number;
4044
+ lastReason?: string;
4045
+ leaseUntil?: number;
4046
+ nextAttemptAt: number;
4047
+ operationKey?: string;
4048
+ ownerKey: string;
4049
+ sequence: number;
4050
+ } | null,
4051
+ Name
4052
+ >;
4053
+ policies: FunctionReference<
4054
+ "query",
4055
+ "internal",
4056
+ {
4057
+ paginationOpts: {
4058
+ cursor: string | null;
4059
+ endCursor?: string | null;
4060
+ id?: number;
4061
+ maximumBytesRead?: number;
4062
+ maximumRowsRead?: number;
4063
+ numItems: number;
4064
+ };
4065
+ },
4066
+ {
4067
+ continueCursor: string;
4068
+ isDone: boolean;
4069
+ page: Array<{
4070
+ _creationTime: number;
4071
+ _id: string;
4072
+ accountId: string;
4073
+ country: string;
4074
+ holdDeadline?: number;
4075
+ mode: "stripe_managed" | "custom";
4076
+ operationKey: string;
4077
+ ownerKey: string;
4078
+ previousSchedule?: {
4079
+ interval: "daily" | "weekly" | "monthly" | "manual";
4080
+ monthlyDays?: Array<number>;
4081
+ weeklyDays?: Array<string>;
4082
+ };
4083
+ revision: number;
4084
+ status: "changing" | "ready";
4085
+ thresholds: Array<{ amount: number; currency: string }>;
4086
+ }>;
4087
+ },
4088
+ Name
4089
+ >;
4090
+ recovering: FunctionReference<
4091
+ "query",
4092
+ "internal",
4093
+ {
4094
+ paginationOpts: {
4095
+ cursor: string | null;
4096
+ endCursor?: string | null;
4097
+ id?: number;
4098
+ maximumBytesRead?: number;
4099
+ maximumRowsRead?: number;
4100
+ numItems: number;
4101
+ };
4102
+ },
4103
+ {
4104
+ continueCursor: string;
4105
+ isDone: boolean;
4106
+ page: Array<{
4107
+ _creationTime: number;
4108
+ _id: string;
4109
+ accountId: string;
4110
+ cadenceMs: number;
4111
+ completedGeneration?: number;
4112
+ completedOperationKey?: string;
4113
+ currency: string;
4114
+ generation: number;
4115
+ hasOperation: boolean;
4116
+ lastAttemptAt?: number;
4117
+ lastReason?: string;
4118
+ leaseUntil?: number;
4119
+ nextAttemptAt: number;
4120
+ operationKey?: string;
4121
+ ownerKey: string;
4122
+ sequence: number;
4123
+ }>;
4124
+ },
4125
+ Name
4126
+ >;
4127
+ };
4128
+ };
3240
4129
  products: {
3241
4130
  mutations: {
3242
4131
  upsertPrice: FunctionReference<
@@ -3556,6 +4445,27 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
3556
4445
  },
3557
4446
  Name
3558
4447
  >;
4448
+ migrateAffiliateObligations: FunctionReference<
4449
+ "mutation",
4450
+ "internal",
4451
+ {
4452
+ paginationOpts: {
4453
+ cursor: string | null;
4454
+ endCursor?: string | null;
4455
+ id?: number;
4456
+ maximumBytesRead?: number;
4457
+ maximumRowsRead?: number;
4458
+ numItems: number;
4459
+ };
4460
+ },
4461
+ {
4462
+ continueCursor: string;
4463
+ isDone: boolean;
4464
+ migrated: number;
4465
+ skipped: number;
4466
+ },
4467
+ Name
4468
+ >;
3559
4469
  reserveSettlementAllocation: FunctionReference<
3560
4470
  "mutation",
3561
4471
  "internal",
@@ -3633,6 +4543,70 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
3633
4543
  } | null,
3634
4544
  Name
3635
4545
  >;
4546
+ listAffiliateObligations: FunctionReference<
4547
+ "query",
4548
+ "internal",
4549
+ {
4550
+ affiliateAccountId: string;
4551
+ currency: string;
4552
+ paginationOpts: {
4553
+ cursor: string | null;
4554
+ endCursor?: string | null;
4555
+ id?: number;
4556
+ maximumBytesRead?: number;
4557
+ maximumRowsRead?: number;
4558
+ numItems: number;
4559
+ };
4560
+ },
4561
+ {
4562
+ continueCursor: string;
4563
+ isDone: boolean;
4564
+ page: Array<{
4565
+ _creationTime: number;
4566
+ _id: string;
4567
+ accounted?: boolean;
4568
+ activeOperationId?: string;
4569
+ affiliateAccountId: string;
4570
+ chargeAmount: number;
4571
+ creditAmount?: number;
4572
+ currency: string;
4573
+ debtAmount?: number;
4574
+ debtStatus?: "open" | "settled";
4575
+ disputeId?: string;
4576
+ disputeState?: "open" | "lost" | "won";
4577
+ disputedPrincipal: number;
4578
+ earningId?: string;
4579
+ finalizedAmount: number;
4580
+ lastError?: string;
4581
+ lastRefundId?: string;
4582
+ lastState?: string;
4583
+ legacyReceiptIds?: Array<string>;
4584
+ legacyRestorationIds?: Array<string>;
4585
+ lostPrincipal: number;
4586
+ needsReconciliation: boolean;
4587
+ offsetAmount?: number;
4588
+ operationSequence?: number;
4589
+ operatorNote?: string;
4590
+ originalCommission: number;
4591
+ paymentId?: string;
4592
+ paymentIntentId?: string;
4593
+ provisionalAmount: number;
4594
+ recoveredAmount: number;
4595
+ refundedPrincipal: number;
4596
+ releasedCommission?: number;
4597
+ reservedRecovery?: number;
4598
+ reservedRestoration?: number;
4599
+ restoredAmount?: number;
4600
+ sourceChargeId: string;
4601
+ sourceInvoiceId?: string;
4602
+ storeAccountId?: string;
4603
+ stripeTransferId?: string;
4604
+ }>;
4605
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
4606
+ splitCursor?: string | null;
4607
+ },
4608
+ Name
4609
+ >;
3636
4610
  };
3637
4611
  };
3638
4612
  webhooks: {