@volter/twin-stripe 2.0.38 → 3.0.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 (442) hide show
  1. package/README.md +82 -207
  2. package/dist/generated/pack-facts.json +94 -0
  3. package/dist/spec/SOURCE.md +14 -0
  4. package/dist/spec/fixtures3.json.gz +0 -0
  5. package/dist/spec/openapi.json.gz +0 -0
  6. package/dist/spec/patches.json +34 -0
  7. package/dist/spec/sources.json +378 -0
  8. package/dist/src/cli.js +12 -30
  9. package/dist/src/engine/after-payment.d.ts +9 -0
  10. package/dist/src/engine/after-payment.js +28 -0
  11. package/dist/src/engine/apps-secrets.d.ts +1 -0
  12. package/dist/src/engine/apps-secrets.js +3 -0
  13. package/dist/src/engine/balance.d.ts +5 -0
  14. package/dist/src/engine/balance.js +15 -0
  15. package/dist/src/engine/billing.d.ts +5 -0
  16. package/dist/src/engine/billing.js +6 -0
  17. package/dist/src/engine/charges.d.ts +6 -0
  18. package/dist/src/engine/charges.js +13 -0
  19. package/dist/src/engine/checkout.d.ts +24 -0
  20. package/dist/src/engine/checkout.js +30 -0
  21. package/dist/src/engine/common.d.ts +19 -0
  22. package/dist/src/engine/common.js +32 -0
  23. package/dist/src/{screens → engine}/connect-settings.d.ts +1 -7
  24. package/dist/src/engine/connect-settings.js +26 -0
  25. package/dist/src/engine/connect.d.ts +66 -0
  26. package/dist/src/engine/connect.js +189 -0
  27. package/dist/src/engine/coupons.d.ts +0 -0
  28. package/dist/src/engine/coupons.js +5 -0
  29. package/dist/src/engine/credit-notes.d.ts +1 -0
  30. package/dist/src/engine/credit-notes.js +5 -0
  31. package/dist/src/engine/customers.d.ts +12 -0
  32. package/dist/src/engine/customers.js +30 -0
  33. package/dist/src/engine/display.d.ts +14 -0
  34. package/dist/src/engine/display.js +16 -0
  35. package/dist/src/engine/disputes.d.ts +0 -0
  36. package/dist/src/engine/disputes.js +9 -0
  37. package/dist/src/engine/entitlements.d.ts +1 -0
  38. package/dist/src/engine/entitlements.js +4 -0
  39. package/dist/src/engine/ephemeral-keys.d.ts +0 -0
  40. package/dist/src/engine/ephemeral-keys.js +4 -0
  41. package/dist/src/engine/files.d.ts +18 -0
  42. package/dist/src/engine/files.js +33 -0
  43. package/dist/src/engine/front.d.ts +5 -0
  44. package/dist/src/engine/front.js +25 -0
  45. package/dist/src/engine/invoices.d.ts +24 -0
  46. package/dist/src/engine/invoices.js +57 -0
  47. package/dist/src/engine/issuing.d.ts +35 -0
  48. package/dist/src/engine/issuing.js +45 -0
  49. package/dist/src/engine/ledger.d.ts +9 -0
  50. package/dist/src/engine/ledger.js +9 -0
  51. package/dist/src/engine/oauth.d.ts +4 -0
  52. package/dist/src/engine/oauth.js +25 -0
  53. package/dist/src/engine/onboarding.d.ts +13 -0
  54. package/dist/src/engine/onboarding.js +42 -0
  55. package/dist/src/{stripe-params.d.ts → engine/params.d.ts} +20 -3
  56. package/dist/src/{stripe-params.js → engine/params.js} +7 -60
  57. package/dist/src/engine/payment-intents.d.ts +10 -0
  58. package/dist/src/engine/payment-intents.js +27 -0
  59. package/dist/src/engine/payment-links.d.ts +1 -0
  60. package/dist/src/engine/payment-links.js +5 -0
  61. package/dist/src/engine/payment-methods.d.ts +16 -0
  62. package/dist/src/engine/payment-methods.js +22 -0
  63. package/dist/src/engine/plans.d.ts +6 -0
  64. package/dist/src/engine/plans.js +26 -0
  65. package/dist/src/engine/platform.d.ts +39 -0
  66. package/dist/src/engine/platform.js +34 -0
  67. package/dist/src/engine/products.d.ts +0 -0
  68. package/dist/src/engine/products.js +4 -0
  69. package/dist/src/engine/radar.d.ts +2 -0
  70. package/dist/src/engine/radar.js +5 -0
  71. package/dist/src/engine/refunds.d.ts +1 -0
  72. package/dist/src/engine/refunds.js +28 -0
  73. package/dist/src/engine/renewals.d.ts +36 -0
  74. package/dist/src/engine/renewals.js +65 -0
  75. package/dist/src/engine/setup-intents.d.ts +1 -0
  76. package/dist/src/engine/setup-intents.js +4 -0
  77. package/dist/src/{stripe-twin.d.ts → engine/stripe.d.ts} +11 -39
  78. package/dist/src/{stripe-twin.js → engine/stripe.js} +25 -310
  79. package/dist/src/engine/subscription-schedules.d.ts +3 -0
  80. package/dist/src/engine/subscription-schedules.js +1 -0
  81. package/dist/src/engine/subscriptions.d.ts +12 -0
  82. package/dist/src/engine/subscriptions.js +31 -0
  83. package/dist/src/engine/tax.d.ts +7 -0
  84. package/dist/src/engine/tax.js +28 -0
  85. package/dist/src/engine/terminal.d.ts +4 -0
  86. package/dist/src/engine/terminal.js +20 -0
  87. package/dist/src/engine/test-clocks.d.ts +5 -0
  88. package/dist/src/engine/test-clocks.js +9 -0
  89. package/dist/src/engine/tokens.d.ts +7 -0
  90. package/dist/src/engine/tokens.js +20 -0
  91. package/dist/src/engine/transfers.d.ts +2 -0
  92. package/dist/src/engine/transfers.js +1 -0
  93. package/dist/src/engine/treasury.d.ts +23 -0
  94. package/dist/src/engine/treasury.js +45 -0
  95. package/dist/src/{stripe-version.js → engine/version.js} +4 -3
  96. package/dist/src/engine/webhook-endpoints.d.ts +1 -0
  97. package/dist/src/engine/webhook-endpoints.js +12 -0
  98. package/dist/src/engine/webhooks.d.ts +31 -0
  99. package/dist/src/engine/webhooks.js +68 -0
  100. package/dist/src/fetch.d.ts +2 -0
  101. package/dist/src/fetch.js +26 -0
  102. package/dist/src/generated/surface.gen.json +1 -1
  103. package/dist/src/generated/ui.gen.json +1 -1
  104. package/dist/src/index.d.ts +5 -14
  105. package/dist/src/index.js +8 -75
  106. package/dist/src/manifest.js +232 -758
  107. package/dist/src/screens/billing-portal.d.ts +3 -0
  108. package/dist/src/screens/{portal.js → billing-portal.js} +28 -54
  109. package/dist/src/screens/checkout.d.ts +2 -31
  110. package/dist/src/screens/checkout.js +32 -121
  111. package/dist/src/screens/connect-oauth.d.ts +3 -27
  112. package/dist/src/screens/connect-oauth.js +51 -132
  113. package/dist/src/screens/connect-onboarding.d.ts +3 -0
  114. package/dist/src/screens/{onboarding.js → connect-onboarding.js} +36 -102
  115. package/dist/src/screens/dashboard.d.ts +3 -0
  116. package/dist/src/screens/dashboard.js +117 -0
  117. package/dist/src/screens/shared.d.ts +27 -0
  118. package/dist/src/screens/shared.js +87 -0
  119. package/dist/src/screens/stripe-js.d.ts +3 -0
  120. package/dist/src/screens/stripe-js.js +135 -0
  121. package/dist/src/semantics/account_links.d.ts +2 -0
  122. package/dist/src/semantics/account_links.js +22 -0
  123. package/dist/src/semantics/accounts.d.ts +4 -0
  124. package/dist/src/semantics/accounts.js +38 -0
  125. package/dist/src/semantics/apps.d.ts +4 -0
  126. package/dist/src/semantics/{apps-secrets.js → apps.js} +14 -26
  127. package/dist/src/semantics/around.d.ts +2 -0
  128. package/dist/src/semantics/around.js +16 -0
  129. package/dist/src/semantics/balance.d.ts +2 -11
  130. package/dist/src/semantics/balance.js +3 -194
  131. package/dist/src/semantics/balance_transactions.d.ts +2 -0
  132. package/dist/src/semantics/balance_transactions.js +15 -0
  133. package/dist/src/semantics/billing_portal.d.ts +5 -0
  134. package/dist/src/semantics/billing_portal.js +42 -0
  135. package/dist/src/semantics/charges.d.ts +3 -28
  136. package/dist/src/semantics/charges.js +5 -202
  137. package/dist/src/semantics/checkout.d.ts +3 -20
  138. package/dist/src/semantics/checkout.js +8 -261
  139. package/dist/src/semantics/clock.d.ts +2 -0
  140. package/dist/src/semantics/clock.js +21 -0
  141. package/dist/src/semantics/coupons.d.ts +2 -6
  142. package/dist/src/semantics/coupons.js +2 -60
  143. package/dist/src/semantics/customers.d.ts +6 -6
  144. package/dist/src/semantics/customers.js +27 -387
  145. package/dist/src/semantics/disputes.d.ts +2 -2
  146. package/dist/src/semantics/disputes.js +3 -49
  147. package/dist/src/semantics/doors.d.ts +23 -0
  148. package/dist/src/semantics/doors.js +73 -0
  149. package/dist/src/semantics/entitlements.d.ts +2 -2
  150. package/dist/src/semantics/entitlements.js +5 -50
  151. package/dist/src/semantics/events.d.ts +12 -0
  152. package/dist/src/semantics/events.js +36 -0
  153. package/dist/src/semantics/index.d.ts +2 -0
  154. package/dist/src/semantics/index.js +107 -0
  155. package/dist/src/semantics/invoice_payments.d.ts +2 -0
  156. package/dist/src/semantics/invoice_payments.js +12 -0
  157. package/dist/src/semantics/invoiceitems.d.ts +3 -0
  158. package/dist/src/semantics/invoiceitems.js +59 -0
  159. package/dist/src/semantics/invoices.d.ts +16 -18
  160. package/dist/src/semantics/invoices.js +118 -444
  161. package/dist/src/semantics/payment_intents.d.ts +4 -0
  162. package/dist/src/semantics/payment_intents.js +79 -0
  163. package/dist/src/semantics/payment_methods.d.ts +5 -0
  164. package/dist/src/semantics/payment_methods.js +39 -0
  165. package/dist/src/semantics/payouts.d.ts +2 -0
  166. package/dist/src/semantics/payouts.js +21 -0
  167. package/dist/src/semantics/prices.d.ts +4 -0
  168. package/dist/src/semantics/prices.js +37 -0
  169. package/dist/src/semantics/products.d.ts +6 -2
  170. package/dist/src/semantics/products.js +15 -130
  171. package/dist/src/semantics/promotion_codes.d.ts +3 -0
  172. package/dist/src/semantics/promotion_codes.js +35 -0
  173. package/dist/src/semantics/radar.d.ts +2 -2
  174. package/dist/src/semantics/radar.js +5 -74
  175. package/dist/src/semantics/refunds.d.ts +3 -9
  176. package/dist/src/semantics/refunds.js +6 -192
  177. package/dist/src/semantics/setup_intents.d.ts +3 -0
  178. package/dist/src/semantics/{setup-intents.js → setup_intents.js} +10 -53
  179. package/dist/src/semantics/shared.d.ts +822 -47
  180. package/dist/src/semantics/shared.js +3044 -78
  181. package/dist/src/semantics/states.d.ts +531 -0
  182. package/dist/src/semantics/states.js +852 -0
  183. package/dist/src/semantics/subscription_items.d.ts +5 -0
  184. package/dist/src/semantics/subscription_items.js +55 -0
  185. package/dist/src/semantics/subscription_schedules.d.ts +4 -0
  186. package/dist/src/semantics/subscription_schedules.js +60 -0
  187. package/dist/src/semantics/subscriptions.d.ts +7 -11
  188. package/dist/src/semantics/subscriptions.js +44 -415
  189. package/dist/src/semantics/test_helpers.d.ts +6 -0
  190. package/dist/src/semantics/{test-clocks.js → test_helpers.js} +14 -40
  191. package/dist/src/semantics/transfers.d.ts +2 -2
  192. package/dist/src/semantics/transfers.js +6 -101
  193. package/dist/src/server.d.ts +7 -0
  194. package/dist/src/server.js +7 -0
  195. package/generated/pack-facts.json +94 -0
  196. package/package.json +10 -20
  197. package/spec/SOURCE.md +14 -0
  198. package/spec/fixtures3.json.gz +0 -0
  199. package/spec/openapi.json.gz +0 -0
  200. package/spec/patches.json +34 -0
  201. package/spec/sources.json +378 -0
  202. package/src/cli.ts +12 -26
  203. package/src/engine/after-payment.ts +31 -0
  204. package/src/engine/apps-secrets.ts +4 -0
  205. package/src/engine/balance.ts +33 -0
  206. package/src/engine/billing.ts +16 -0
  207. package/src/engine/charges.ts +19 -0
  208. package/src/engine/checkout.ts +40 -0
  209. package/src/engine/common.ts +47 -0
  210. package/src/engine/connect-settings.ts +23 -0
  211. package/src/engine/connect.ts +184 -0
  212. package/src/engine/coupons.ts +5 -0
  213. package/src/engine/credit-notes.ts +6 -0
  214. package/src/engine/customers.ts +35 -0
  215. package/src/engine/display.ts +19 -0
  216. package/src/engine/disputes.ts +9 -0
  217. package/src/engine/entitlements.ts +5 -0
  218. package/src/engine/ephemeral-keys.ts +3 -0
  219. package/src/engine/files.ts +41 -0
  220. package/src/engine/front.ts +31 -0
  221. package/src/engine/invoices.ts +71 -0
  222. package/src/engine/issuing.ts +61 -0
  223. package/src/engine/ledger.ts +50 -0
  224. package/src/engine/oauth.ts +19 -0
  225. package/src/engine/onboarding.ts +54 -0
  226. package/src/{stripe-params.ts → engine/params.ts} +8 -56
  227. package/src/engine/payment-intents.ts +33 -0
  228. package/src/engine/payment-links.ts +6 -0
  229. package/src/engine/payment-methods.ts +25 -0
  230. package/src/engine/plans.ts +42 -0
  231. package/src/engine/platform.ts +47 -0
  232. package/src/engine/products.ts +3 -0
  233. package/src/engine/radar.ts +6 -0
  234. package/src/engine/refunds.ts +29 -0
  235. package/src/engine/renewals.ts +73 -0
  236. package/src/engine/setup-intents.ts +5 -0
  237. package/src/{stripe-twin.ts → engine/stripe.ts} +28 -323
  238. package/src/engine/subscription-schedules.ts +10 -0
  239. package/src/engine/subscriptions.ts +40 -0
  240. package/src/engine/tax.ts +39 -0
  241. package/src/engine/terminal.ts +23 -0
  242. package/src/engine/test-clocks.ts +11 -0
  243. package/src/engine/tokens.ts +22 -0
  244. package/src/engine/transfers.ts +23 -0
  245. package/src/engine/treasury.ts +47 -0
  246. package/src/{stripe-version.ts → engine/version.ts} +4 -3
  247. package/src/engine/webhook-endpoints.ts +14 -0
  248. package/src/engine/webhooks.ts +72 -0
  249. package/src/fetch.ts +27 -0
  250. package/src/generated/surface.gen.json +1 -1
  251. package/src/generated/ui.gen.json +1 -1
  252. package/src/index.ts +8 -116
  253. package/src/manifest.ts +234 -786
  254. package/src/screens/{portal.tsx → billing-portal.tsx} +32 -37
  255. package/src/screens/checkout.tsx +33 -95
  256. package/src/screens/connect-oauth.tsx +64 -88
  257. package/src/screens/{onboarding.tsx → connect-onboarding.tsx} +38 -82
  258. package/src/screens/dashboard.tsx +198 -0
  259. package/src/screens/shared.tsx +84 -0
  260. package/src/screens/stripe-js.ts +170 -0
  261. package/src/semantics/account_links.ts +21 -0
  262. package/src/semantics/accounts.ts +43 -0
  263. package/src/semantics/{apps-secrets.ts → apps.ts} +17 -32
  264. package/src/semantics/around.ts +20 -0
  265. package/src/semantics/balance.ts +6 -207
  266. package/src/semantics/balance_transactions.ts +20 -0
  267. package/src/semantics/billing_portal.ts +51 -0
  268. package/src/semantics/charges.ts +12 -211
  269. package/src/semantics/checkout.ts +13 -268
  270. package/src/semantics/clock.ts +26 -0
  271. package/src/semantics/coupons.ts +5 -67
  272. package/src/semantics/customers.ts +29 -392
  273. package/src/semantics/disputes.ts +9 -59
  274. package/src/semantics/doors.ts +80 -0
  275. package/src/semantics/entitlements.ts +9 -56
  276. package/src/semantics/events.ts +44 -0
  277. package/src/semantics/index.ts +111 -0
  278. package/src/semantics/invoice_payments.ts +18 -0
  279. package/src/semantics/invoiceitems.ts +59 -0
  280. package/src/semantics/invoices.ts +109 -443
  281. package/src/semantics/payment_intents.ts +83 -0
  282. package/src/semantics/payment_methods.ts +43 -0
  283. package/src/semantics/payouts.ts +23 -0
  284. package/src/semantics/prices.ts +42 -0
  285. package/src/semantics/products.ts +18 -142
  286. package/src/semantics/promotion_codes.ts +39 -0
  287. package/src/semantics/radar.ts +8 -77
  288. package/src/semantics/refunds.ts +9 -212
  289. package/src/semantics/setup_intents.ts +45 -0
  290. package/src/semantics/shared.ts +3092 -106
  291. package/src/semantics/states.ts +883 -0
  292. package/src/semantics/subscription_items.ts +54 -0
  293. package/src/semantics/subscription_schedules.ts +66 -0
  294. package/src/semantics/subscriptions.ts +49 -432
  295. package/src/semantics/{test-clocks.ts → test_helpers.ts} +23 -47
  296. package/src/semantics/transfers.ts +11 -131
  297. package/src/server.ts +8 -0
  298. package/client/dashboard-api.ts +0 -286
  299. package/client/stripe-mirror.css +0 -277
  300. package/client/stripe-mirror.tsx +0 -1559
  301. package/dist/client/dashboard-api.d.ts +0 -107
  302. package/dist/client/dashboard-api.js +0 -238
  303. package/dist/client/dashboard-api.ts +0 -286
  304. package/dist/client/stripe-mirror.bundle.js +0 -236
  305. package/dist/client/stripe-mirror.css +0 -277
  306. package/dist/client/stripe-mirror.d.ts +0 -134
  307. package/dist/client/stripe-mirror.js +0 -859
  308. package/dist/client/stripe-mirror.tsx +0 -1559
  309. package/dist/src/screens/connect-settings.js +0 -103
  310. package/dist/src/screens/consent-skin.d.ts +0 -4
  311. package/dist/src/screens/consent-skin.js +0 -18
  312. package/dist/src/screens/financial-connections.d.ts +0 -5
  313. package/dist/src/screens/financial-connections.js +0 -90
  314. package/dist/src/screens/identity.d.ts +0 -5
  315. package/dist/src/screens/identity.js +0 -86
  316. package/dist/src/screens/onboarding.d.ts +0 -13
  317. package/dist/src/screens/portal.d.ts +0 -5
  318. package/dist/src/screens/public-details.d.ts +0 -5
  319. package/dist/src/screens/public-details.js +0 -90
  320. package/dist/src/semantics/after-payment.d.ts +0 -22
  321. package/dist/src/semantics/after-payment.js +0 -99
  322. package/dist/src/semantics/apps-secrets.d.ts +0 -2
  323. package/dist/src/semantics/billing.d.ts +0 -2
  324. package/dist/src/semantics/billing.js +0 -220
  325. package/dist/src/semantics/connect.d.ts +0 -5
  326. package/dist/src/semantics/connect.js +0 -493
  327. package/dist/src/semantics/credit-notes.d.ts +0 -2
  328. package/dist/src/semantics/credit-notes.js +0 -172
  329. package/dist/src/semantics/ephemeral-keys.d.ts +0 -2
  330. package/dist/src/semantics/ephemeral-keys.js +0 -34
  331. package/dist/src/semantics/files.d.ts +0 -2
  332. package/dist/src/semantics/files.js +0 -125
  333. package/dist/src/semantics/issuing.d.ts +0 -13
  334. package/dist/src/semantics/issuing.js +0 -575
  335. package/dist/src/semantics/ledger.d.ts +0 -59
  336. package/dist/src/semantics/ledger.js +0 -200
  337. package/dist/src/semantics/payment-intents.d.ts +0 -18
  338. package/dist/src/semantics/payment-intents.js +0 -452
  339. package/dist/src/semantics/payment-links.d.ts +0 -2
  340. package/dist/src/semantics/payment-links.js +0 -133
  341. package/dist/src/semantics/payment-methods.d.ts +0 -20
  342. package/dist/src/semantics/payment-methods.js +0 -140
  343. package/dist/src/semantics/plans.d.ts +0 -5
  344. package/dist/src/semantics/plans.js +0 -121
  345. package/dist/src/semantics/platform.d.ts +0 -9
  346. package/dist/src/semantics/platform.js +0 -206
  347. package/dist/src/semantics/renewals.d.ts +0 -47
  348. package/dist/src/semantics/renewals.js +0 -281
  349. package/dist/src/semantics/setup-intents.d.ts +0 -2
  350. package/dist/src/semantics/subscription-schedules.d.ts +0 -2
  351. package/dist/src/semantics/subscription-schedules.js +0 -119
  352. package/dist/src/semantics/tax.d.ts +0 -2
  353. package/dist/src/semantics/tax.js +0 -197
  354. package/dist/src/semantics/terminal.d.ts +0 -5
  355. package/dist/src/semantics/terminal.js +0 -182
  356. package/dist/src/semantics/test-clocks.d.ts +0 -6
  357. package/dist/src/semantics/tokens.d.ts +0 -4
  358. package/dist/src/semantics/tokens.js +0 -44
  359. package/dist/src/semantics/treasury.d.ts +0 -2
  360. package/dist/src/semantics/treasury.js +0 -377
  361. package/dist/src/semantics/webhook-endpoints.d.ts +0 -3
  362. package/dist/src/semantics/webhook-endpoints.js +0 -85
  363. package/dist/src/stripe-budget.d.ts +0 -55
  364. package/dist/src/stripe-budget.js +0 -155
  365. package/dist/src/stripe-capabilities.d.ts +0 -3
  366. package/dist/src/stripe-capabilities.js +0 -5836
  367. package/dist/src/stripe-conformance.d.ts +0 -43
  368. package/dist/src/stripe-conformance.js +0 -105
  369. package/dist/src/stripe-connector.d.ts +0 -161
  370. package/dist/src/stripe-connector.js +0 -414
  371. package/dist/src/stripe-emit.d.ts +0 -2
  372. package/dist/src/stripe-emit.js +0 -145
  373. package/dist/src/stripe-events.d.ts +0 -93
  374. package/dist/src/stripe-events.js +0 -392
  375. package/dist/src/stripe-js.d.ts +0 -4
  376. package/dist/src/stripe-js.js +0 -70
  377. package/dist/src/stripe-mirror-ui.d.ts +0 -15
  378. package/dist/src/stripe-mirror-ui.js +0 -87
  379. package/dist/src/stripe-perform-harness.d.ts +0 -9
  380. package/dist/src/stripe-perform-harness.js +0 -26
  381. package/dist/src/stripe-server.d.ts +0 -33
  382. package/dist/src/stripe-server.js +0 -429
  383. package/dist/src/stripe-shared.d.ts +0 -109
  384. package/dist/src/stripe-shared.js +0 -276
  385. package/dist/src/stripe-ui-conformance.d.ts +0 -5
  386. package/dist/src/stripe-ui-conformance.js +0 -79
  387. package/dist/src/stripe-ui-structure.d.ts +0 -3
  388. package/dist/src/stripe-ui-structure.js +0 -168
  389. package/dist/test-fixtures/stripe-known-deviations.json +0 -110
  390. package/dist/test-fixtures/stripe-openapi-operations.SOURCE.md +0 -14
  391. package/dist/test-fixtures/stripe-openapi-operations.json +0 -4717
  392. package/dist/test-fixtures/stripe-schemas.SOURCE.md +0 -35
  393. package/dist/test-fixtures/stripe-schemas.json +0 -3813
  394. package/src/screens/connect-settings.tsx +0 -121
  395. package/src/screens/consent-skin.ts +0 -20
  396. package/src/screens/financial-connections.tsx +0 -101
  397. package/src/screens/identity.tsx +0 -96
  398. package/src/screens/public-details.tsx +0 -105
  399. package/src/semantics/after-payment.ts +0 -118
  400. package/src/semantics/billing.ts +0 -216
  401. package/src/semantics/connect.ts +0 -487
  402. package/src/semantics/credit-notes.ts +0 -168
  403. package/src/semantics/ephemeral-keys.ts +0 -34
  404. package/src/semantics/files.ts +0 -143
  405. package/src/semantics/issuing.ts +0 -590
  406. package/src/semantics/ledger.ts +0 -253
  407. package/src/semantics/payment-intents.ts +0 -463
  408. package/src/semantics/payment-links.ts +0 -148
  409. package/src/semantics/payment-methods.ts +0 -145
  410. package/src/semantics/plans.ts +0 -131
  411. package/src/semantics/platform.ts +0 -220
  412. package/src/semantics/renewals.ts +0 -279
  413. package/src/semantics/setup-intents.ts +0 -87
  414. package/src/semantics/subscription-schedules.ts +0 -129
  415. package/src/semantics/tax.ts +0 -220
  416. package/src/semantics/terminal.ts +0 -195
  417. package/src/semantics/tokens.ts +0 -52
  418. package/src/semantics/treasury.ts +0 -383
  419. package/src/semantics/webhook-endpoints.ts +0 -87
  420. package/src/stripe-budget.ts +0 -181
  421. package/src/stripe-capabilities.ts +0 -5651
  422. package/src/stripe-conformance.ts +0 -124
  423. package/src/stripe-connector.ts +0 -462
  424. package/src/stripe-emit.ts +0 -157
  425. package/src/stripe-events.ts +0 -434
  426. package/src/stripe-js.ts +0 -70
  427. package/src/stripe-mirror-ui.ts +0 -90
  428. package/src/stripe-perform-harness.ts +0 -29
  429. package/src/stripe-server.ts +0 -393
  430. package/src/stripe-shared.ts +0 -297
  431. package/src/stripe-ui-conformance.ts +0 -88
  432. package/src/stripe-ui-structure.ts +0 -182
  433. package/test-fixtures/stripe-known-deviations.json +0 -110
  434. package/test-fixtures/stripe-openapi-operations.json +0 -4717
  435. package/test-fixtures/stripe-schemas.json +0 -3813
  436. /package/dist/src/{screens → engine}/industries.d.ts +0 -0
  437. /package/dist/src/{screens → engine}/industries.js +0 -0
  438. /package/dist/src/{semantics → engine}/test-cards.d.ts +0 -0
  439. /package/dist/src/{semantics → engine}/test-cards.js +0 -0
  440. /package/dist/src/{stripe-version.d.ts → engine/version.d.ts} +0 -0
  441. /package/src/{screens → engine}/industries.ts +0 -0
  442. /package/src/{semantics → engine}/test-cards.ts +0 -0
@@ -1,52 +1,13 @@
1
- import { asBool, subscriptionItemPairs } from "../stripe-twin.js";
2
- import { at, created, fail, list, newest, path, where, kept } from "./shared.js";
3
- const FEAT = 'entitlements.feature';
4
- /** A feature whose lookup_key an unarchived feature already has: "A unique key you provide as your own system identifier"
5
- * (docs.stripe.com/api/entitlements/feature/create). */
6
- function lookupKeyTaken(ctx, lookupKey) {
7
- return fail(ctx, `A feature with lookup_key '${lookupKey}' already exists.`, 400, 'resource_already_exists');
8
- }
9
- const create = async (ctx) => {
10
- const params = ctx.params;
11
- if (typeof params.name !== 'string' || !params.name)
12
- return fail(ctx, 'Missing required param: name.', 400, 'parameter_missing');
13
- const lookupKey = typeof params.lookup_key === 'string' ? params.lookup_key : '';
14
- if (!lookupKey)
15
- return fail(ctx, 'Missing required param: lookup_key.', 400, 'parameter_missing');
16
- if (ctx.rowsRaw(FEAT, { withDeleted: true }).some((f) => f.lookup_key === lookupKey && !f._archived))
17
- return lookupKeyTaken(ctx, lookupKey);
18
- return ctx.reply(await created(ctx, FEAT, {}, {
19
- name: params.name, lookup_key: lookupKey, active: true, livemode: false,
20
- metadata: params.metadata && typeof params.metadata === 'object' ? params.metadata : {},
21
- }));
22
- };
23
- const listFeatures = async (ctx) => list(ctx, FEAT, where(ctx, newest(ctx, FEAT), {
24
- lookup_key: (f, v) => f.lookup_key === v,
25
- archived: (f, v) => asBool(kept(ctx, FEAT, f, '_archived')) === asBool(v),
26
- }));
27
- // name, active and metadata change
28
- const update = async (ctx) => {
29
- const id = at(ctx, 'id');
30
- if (!ctx.get(FEAT, id))
31
- return ctx.notFound(FEAT, id);
32
- const patch = {};
33
- if (ctx.params.name !== undefined)
34
- patch.name = ctx.params.name;
35
- if (ctx.params.active !== undefined) {
36
- patch.active = asBool(ctx.params.active);
37
- patch._archived = undefined;
38
- }
39
- if (ctx.params.metadata !== undefined)
40
- patch.metadata = ctx.params.metadata;
41
- return ctx.reply(await ctx.write(FEAT, id, patch, 'entitlements_feature.update'));
42
- };
1
+ import { FEAT } from "../engine/entitlements.js";
2
+ import { subscriptionItemPairs } from "../engine/stripe.js";
3
+ import { fail, newest, path } from "./shared.js";
43
4
  // a customer is entitled to every feature granted to a product its live subscriptions bill, as the product stood when
44
5
  // the subscription's current period began: "When a customer purchases or subscribes to a product with an attached
45
6
  // feature, Stripe creates and manages an Active Entitlement for that customer and feature"; "Existing subscriptions will
46
7
  // create active entitlements for any product feature changes at the start of the next billing period"
47
8
  // (docs.stripe.com/billing/entitlements). Where the documentation stops and the twin decides: a feature removed from a
48
9
  // product is kept, the same way, until the next period begins.
49
- const activeEntitlements = async (ctx) => {
10
+ export async function GetEntitlementsActiveEntitlements(ctx) {
50
11
  const customer = typeof ctx.params.customer === 'string' ? ctx.params.customer : '';
51
12
  if (!customer)
52
13
  return fail(ctx, 'Missing required param: customer.', 400, 'parameter_missing');
@@ -86,10 +47,4 @@ const activeEntitlements = async (ctx) => {
86
47
  data.push({ id: `ent_twin_${customer}_${featId}`, object: 'entitlements.active_entitlement', feature: featId, lookup_key: feat.lookup_key, livemode: false });
87
48
  }
88
49
  return ctx.reply({ object: 'list', url: path(ctx), has_more: false, data });
89
- };
90
- export const entitlements = {
91
- PostEntitlementsFeatures: create,
92
- GetEntitlementsFeatures: listFeatures,
93
- PostEntitlementsFeaturesId: update,
94
- GetEntitlementsActiveEntitlements: activeEntitlements,
95
- };
50
+ }
@@ -0,0 +1,12 @@
1
+ import type { EventWrite, WriteHookContext } from '@volter/world-core';
2
+ /** An event's `data`: the object the write concerns, as Stripe sends it in the event's API version. A plan is stored as
3
+ * the recurring price it is, and its own events carry the plan object; an Issuing authorization carries its full card;
4
+ * the balance notice the drain writes carries the account's Balance. */
5
+ export declare function data(ctx: WriteHookContext, write: EventWrite): Record<string, unknown>;
6
+ /** An event's further envelope values: the connected account it is about ("Each event for a connected account contains
7
+ * a top-level `account` property that identifies the connected account", docs.stripe.com/connect/webhooks) — the
8
+ * account a request acts as (Stripe-Account), a connected account's own account.updated, or the account whose books the
9
+ * written row is kept on (its `_account`) — and the API version it is rendered in. A connected account whose OAuth
10
+ * connection was revoked "can't be accessed by your platform" (docs.stripe.com/connect/oauth-reference): its events are
11
+ * kept but no longer sent (`$send: false`), except the account.application.deauthorized that says so. */
12
+ export declare function values(ctx: WriteHookContext, write: EventWrite, type: string): Record<string, unknown>;
@@ -0,0 +1,36 @@
1
+ import { planOf } from "../engine/plans.js";
2
+ import { embedIssuingAuthorizationCard, isValidApiVersion, PLATFORM_ACCOUNT_ID, TWIN_API_VERSION } from "../engine/stripe.js";
3
+ import { render } from "../engine/version.js";
4
+ import { connectionRevoked, finder } from "./shared.js";
5
+ // ── the events Stripe's writes send (the manifest's `events`: ./shared.ts STRIPE_EVENTS) ──
6
+ /** An event's `data`: the object the write concerns, as Stripe sends it in the event's API version. A plan is stored as
7
+ * the recurring price it is, and its own events carry the plan object; an Issuing authorization carries its full card;
8
+ * the balance notice the drain writes carries the account's Balance. */
9
+ export function data(ctx, write) {
10
+ const object = write.storedType === '_balance_notice' ? write.body.balance
11
+ : write.storedType === 'price' && write.operation.startsWith('plan.') ? planOf(write.body)
12
+ : write.storedType === 'issuing_authorization' ? embedIssuingAuthorizationCard({ ...write.body }, finder(ctx))
13
+ : write.body;
14
+ return { object: render(object, eventVersion(write)) };
15
+ }
16
+ /** An event's further envelope values: the connected account it is about ("Each event for a connected account contains
17
+ * a top-level `account` property that identifies the connected account", docs.stripe.com/connect/webhooks) — the
18
+ * account a request acts as (Stripe-Account), a connected account's own account.updated, or the account whose books the
19
+ * written row is kept on (its `_account`) — and the API version it is rendered in. A connected account whose OAuth
20
+ * connection was revoked "can't be accessed by your platform" (docs.stripe.com/connect/oauth-reference): its events are
21
+ * kept but no longer sent (`$send: false`), except the account.application.deauthorized that says so. */
22
+ export function values(ctx, write, type) {
23
+ const id = write.body.id;
24
+ const kept = typeof id === 'string' ? ctx.rowsRaw(write.storedType, { withDeleted: true }).find((r) => r.id === id)?._account : undefined;
25
+ const account = write.request?.headers.get('stripe-account')
26
+ ?? (write.storedType === 'account' && typeof id === 'string' && id !== PLATFORM_ACCOUNT_ID ? id : undefined)
27
+ ?? (write.storedType === '_balance_notice' && typeof write.body.account === 'string' ? write.body.account : undefined)
28
+ ?? (typeof kept === 'string' ? kept : undefined);
29
+ const withheld = account !== undefined && type !== 'account.application.deauthorized' && connectionRevoked(ctx, account);
30
+ return { $account: account, $version: eventVersion(write), ...(withheld ? { $send: false } : {}) };
31
+ }
32
+ /** The API version an event is rendered in: the one the writing request pinned, when it is one, else the served one. */
33
+ const eventVersion = (write) => {
34
+ const pinned = write.request?.headers.get('stripe-version');
35
+ return pinned && isValidApiVersion(pinned) ? pinned : TWIN_API_VERSION;
36
+ };
@@ -0,0 +1,2 @@
1
+ import type { Handler } from '@volter/world-core';
2
+ export declare const stripeSemantics: Record<string, Handler>;
@@ -0,0 +1,107 @@
1
+ import * as account_links from "./account_links.js";
2
+ import * as accounts from "./accounts.js";
3
+ import * as apps from "./apps.js";
4
+ import * as balance from "./balance.js";
5
+ import * as balance_transactions from "./balance_transactions.js";
6
+ import * as billing_portal from "./billing_portal.js";
7
+ import * as charges from "./charges.js";
8
+ import * as checkout from "./checkout.js";
9
+ import * as coupons from "./coupons.js";
10
+ import * as customers from "./customers.js";
11
+ import * as disputes from "./disputes.js";
12
+ import * as entitlements from "./entitlements.js";
13
+ import * as invoice_payments from "./invoice_payments.js";
14
+ import * as invoiceitems from "./invoiceitems.js";
15
+ import * as invoices from "./invoices.js";
16
+ import * as payment_intents from "./payment_intents.js";
17
+ import * as payment_methods from "./payment_methods.js";
18
+ import * as payouts from "./payouts.js";
19
+ import * as prices from "./prices.js";
20
+ import * as products from "./products.js";
21
+ import * as promotion_codes from "./promotion_codes.js";
22
+ import * as radar from "./radar.js";
23
+ import * as refunds from "./refunds.js";
24
+ import * as setup_intents from "./setup_intents.js";
25
+ import * as subscription_items from "./subscription_items.js";
26
+ import * as subscription_schedules from "./subscription_schedules.js";
27
+ import * as subscriptions from "./subscriptions.js";
28
+ import * as test_helpers from "./test_helpers.js";
29
+ import * as transfers from "./transfers.js";
30
+ export const stripeSemantics = {
31
+ DeleteInvoiceitemsInvoiceitem: invoiceitems.DeleteInvoiceitemsInvoiceitem,
32
+ DeleteInvoicesInvoice: invoices.DeleteInvoicesInvoice,
33
+ DeleteProductsId: products.DeleteProductsId,
34
+ DeleteSubscriptionItemsItem: subscription_items.DeleteSubscriptionItemsItem,
35
+ DeleteSubscriptionsSubscriptionExposedId: subscriptions.DeleteSubscriptionsSubscriptionExposedId,
36
+ DeleteTestHelpersTestClocksTestClock: test_helpers.DeleteTestHelpersTestClocksTestClock,
37
+ GetAccountsAccountExternalAccounts: accounts.GetAccountsAccountExternalAccounts,
38
+ GetAppsSecretsFind: apps.GetAppsSecretsFind,
39
+ GetBalance: balance.GetBalance,
40
+ GetBalanceTransactions: balance_transactions.GetBalanceTransactions,
41
+ GetBillingPortalConfigurations: billing_portal.GetBillingPortalConfigurations,
42
+ GetCharges: charges.GetCharges,
43
+ GetChargesCharge: charges.GetChargesCharge,
44
+ GetCustomersCustomer: customers.GetCustomersCustomer,
45
+ GetCustomersCustomerPaymentMethods: customers.GetCustomersCustomerPaymentMethods,
46
+ GetCustomersSearch: customers.GetCustomersSearch,
47
+ GetDisputesDispute: disputes.GetDisputesDispute,
48
+ GetEntitlementsActiveEntitlements: entitlements.GetEntitlementsActiveEntitlements,
49
+ GetInvoicePayments: invoice_payments.GetInvoicePayments,
50
+ GetInvoicesInvoice: invoices.GetInvoicesInvoice,
51
+ GetInvoicesInvoiceLines: invoices.GetInvoicesInvoiceLines,
52
+ GetPaymentMethodsPaymentMethod: payment_methods.GetPaymentMethodsPaymentMethod,
53
+ GetPrices: prices.GetPrices,
54
+ GetPricesPrice: prices.GetPricesPrice,
55
+ GetProducts: products.GetProducts,
56
+ GetProductsSearch: products.GetProductsSearch,
57
+ GetPromotionCodes: promotion_codes.GetPromotionCodes,
58
+ GetRefundsRefund: refunds.GetRefundsRefund,
59
+ GetSubscriptionItemsItem: subscription_items.GetSubscriptionItemsItem,
60
+ GetSubscriptionSchedulesSchedule: subscription_schedules.GetSubscriptionSchedulesSchedule,
61
+ GetSubscriptions: subscriptions.GetSubscriptions,
62
+ GetSubscriptionsSearch: subscriptions.GetSubscriptionsSearch,
63
+ GetSubscriptionsSubscriptionExposedId: subscriptions.GetSubscriptionsSubscriptionExposedId,
64
+ PostAccountLinks: account_links.PostAccountLinks,
65
+ PostAccounts: accounts.PostAccounts,
66
+ PostAccountsAccountLoginLinks: accounts.PostAccountsAccountLoginLinks,
67
+ PostAppsSecrets: apps.PostAppsSecrets,
68
+ PostAppsSecretsDelete: apps.PostAppsSecretsDelete,
69
+ PostBillingPortalConfigurations: billing_portal.PostBillingPortalConfigurations,
70
+ PostBillingPortalConfigurationsConfiguration: billing_portal.PostBillingPortalConfigurationsConfiguration,
71
+ PostBillingPortalSessions: billing_portal.PostBillingPortalSessions,
72
+ PostCheckoutSessions: checkout.PostCheckoutSessions,
73
+ PostCheckoutSessionsSessionExpire: checkout.PostCheckoutSessionsSessionExpire,
74
+ PostCoupons: coupons.PostCoupons,
75
+ PostCustomers: customers.PostCustomers,
76
+ PostCustomersCustomerBalanceTransactions: customers.PostCustomersCustomerBalanceTransactions,
77
+ PostInvoiceitems: invoiceitems.PostInvoiceitems,
78
+ PostInvoices: invoices.PostInvoices,
79
+ PostInvoicesCreatePreview: invoices.PostInvoicesCreatePreview,
80
+ PostInvoicesInvoiceFinalize: invoices.PostInvoicesInvoiceFinalize,
81
+ PostInvoicesInvoicePay: invoices.PostInvoicesInvoicePay,
82
+ PostInvoicesInvoiceSend: invoices.PostInvoicesInvoiceSend,
83
+ PostInvoicesInvoiceVoid: invoices.PostInvoicesInvoiceVoid,
84
+ PostPaymentIntents: payment_intents.PostPaymentIntents,
85
+ PostPaymentIntentsIntentCancel: payment_intents.PostPaymentIntentsIntentCancel,
86
+ PostPaymentIntentsIntentConfirm: payment_intents.PostPaymentIntentsIntentConfirm,
87
+ PostPaymentMethods: payment_methods.PostPaymentMethods,
88
+ PostPaymentMethodsPaymentMethodAttach: payment_methods.PostPaymentMethodsPaymentMethodAttach,
89
+ PostPaymentMethodsPaymentMethodDetach: payment_methods.PostPaymentMethodsPaymentMethodDetach,
90
+ PostPayouts: payouts.PostPayouts,
91
+ PostPrices: prices.PostPrices,
92
+ PostProducts: products.PostProducts,
93
+ PostPromotionCodes: promotion_codes.PostPromotionCodes,
94
+ PostRadarValueListItems: radar.PostRadarValueListItems,
95
+ PostRefunds: refunds.PostRefunds,
96
+ PostSetupIntents: setup_intents.PostSetupIntents,
97
+ PostSetupIntentsIntentConfirm: setup_intents.PostSetupIntentsIntentConfirm,
98
+ PostSubscriptionItems: subscription_items.PostSubscriptionItems,
99
+ PostSubscriptionItemsItem: subscription_items.PostSubscriptionItemsItem,
100
+ PostSubscriptionSchedules: subscription_schedules.PostSubscriptionSchedules,
101
+ PostSubscriptionSchedulesScheduleRelease: subscription_schedules.PostSubscriptionSchedulesScheduleRelease,
102
+ PostSubscriptions: subscriptions.PostSubscriptions,
103
+ PostSubscriptionsSubscriptionExposedId: subscriptions.PostSubscriptionsSubscriptionExposedId,
104
+ PostTestHelpersTestClocks: test_helpers.PostTestHelpersTestClocks,
105
+ PostTestHelpersTestClocksTestClockAdvance: test_helpers.PostTestHelpersTestClocksTestClockAdvance,
106
+ PostTransfers: transfers.PostTransfers,
107
+ };
@@ -0,0 +1,2 @@
1
+ import type { HandlerContext } from '@volter/world-core';
2
+ export declare function GetInvoicePayments(ctx: HandlerContext): Promise<Response>;
@@ -0,0 +1,12 @@
1
+ import { INV, invoicePayment } from "../engine/invoices.js";
2
+ import { list, newest } from "./shared.js";
3
+ export async function GetInvoicePayments(ctx) {
4
+ const p = ctx.params;
5
+ const wanted = p.payment?.payment_intent;
6
+ const items = newest(ctx, INV)
7
+ .filter((inv) => typeof p.invoice !== 'string' || inv.id === p.invoice)
8
+ .map(invoicePayment).filter((x) => !!x)
9
+ .filter((x) => typeof wanted !== 'string' || x.payment.payment_intent === wanted)
10
+ .filter((x) => typeof p.status !== 'string' || x.status === p.status);
11
+ return list(ctx, 'invoice_payment', items);
12
+ }
@@ -0,0 +1,3 @@
1
+ import type { HandlerContext } from '@volter/world-core';
2
+ export declare function DeleteInvoiceitemsInvoiceitem(ctx: HandlerContext): Promise<Response>;
3
+ export declare function PostInvoiceitems(ctx: HandlerContext): Promise<Response>;
@@ -0,0 +1,59 @@
1
+ import { INV, linesOf } from "../engine/invoices.js";
2
+ import { nowUnix } from "../engine/stripe.js";
3
+ import { at, created, fail, invoiceMissing, itemMissing, pricedItem, resyncDraftLines, writeLines } from "./shared.js";
4
+ // an item is deleted only while its invoice is still editable
5
+ export async function DeleteInvoiceitemsInvoiceitem(ctx) {
6
+ const id = at(ctx, 'invoiceitem');
7
+ const it = ctx.get('invoiceitem', id);
8
+ if (!it)
9
+ return itemMissing(ctx, id);
10
+ const onInvoice = typeof it.invoice === 'string' ? ctx.get(INV, it.invoice) : undefined;
11
+ if (onInvoice && onInvoice.status !== 'draft')
12
+ return fail(ctx, 'You cannot delete an invoice item that is attached to an invoice that is no longer editable.', 400, 'invoice_not_editable');
13
+ await ctx.write('invoiceitem', id, { deleted: true }, 'invoiceitem.delete');
14
+ if (typeof it.invoice === 'string')
15
+ await resyncDraftLines(ctx, it.invoice);
16
+ return ctx.reply({ id, object: 'invoiceitem', deleted: true });
17
+ }
18
+ export async function PostInvoiceitems(ctx) {
19
+ const params = ctx.params;
20
+ const now = Number(nowUnix(ctx.occurredAt));
21
+ const qty = Number(params.quantity) || 1;
22
+ // the served version names the price in `pricing[price]` ("The pricing information for the invoice item", the served
23
+ // spec); an older version sends `price`. It is kept as the item's price, which the answer renders as `pricing`
24
+ // (../engine/version.ts)
25
+ const { pricing: pricingParam, ...stored } = params;
26
+ const given = pricingParam?.price;
27
+ const priceRef = typeof given === 'string' && given ? given : typeof params.price === 'string' ? params.price : '';
28
+ const priced = priceRef ? pricedItem(ctx, priceRef, qty) : undefined;
29
+ if (priced instanceof Response)
30
+ return priced;
31
+ const resolvedAmount = priced?.amount;
32
+ let resolvedCurrency = priced?.currency;
33
+ // only a draft invoice takes new items
34
+ const invoiceRef = typeof params.invoice === 'string' ? params.invoice : '';
35
+ let target;
36
+ if (invoiceRef) {
37
+ target = ctx.get(INV, invoiceRef);
38
+ if (!target)
39
+ return invoiceMissing(ctx, invoiceRef);
40
+ if (target.status !== 'draft')
41
+ return fail(ctx, `This invoice cannot have invoice items added because it has status ${String(target.status)}.`, 400, 'invoice_not_editable');
42
+ if (resolvedCurrency === undefined && typeof target.currency === 'string')
43
+ resolvedCurrency = target.currency;
44
+ }
45
+ // an invoice item is dated by `date`, not `created`; its currency is the price's, else the invoice's
46
+ const item = await created(ctx, 'invoiceitem', { ...stored, ...(priceRef ? { price: priceRef } : {}) }, {
47
+ livemode: false, discountable: true, proration: false, quantity: qty, quantity_decimal: String(qty),
48
+ period: { start: now, end: now }, currency: resolvedCurrency ?? 'usd',
49
+ ...(resolvedAmount !== undefined ? { amount: resolvedAmount } : {}),
50
+ }, { timeField: 'date' });
51
+ if (target) {
52
+ await writeLines(ctx, invoiceRef, [...linesOf(target), {
53
+ id: `il_${String(item.id)}`, object: 'line_item', type: 'invoiceitem', amount: Number(item.amount) || 0, currency: String(target.currency ?? item.currency ?? 'usd'),
54
+ quantity: qty, proration: false, invoice_item: item.id, price: item.price ?? null,
55
+ period: item.period ?? { start: now, end: now }, description: item.description ?? null,
56
+ }]);
57
+ }
58
+ return ctx.reply(item);
59
+ }
@@ -1,18 +1,16 @@
1
- import type { Semantics, SemanticsContext } from '@volter/world-core';
2
- import { type Row } from './shared.js';
3
- /** A draft invoice another object makes (an accepted quote): its customer's, with an invoice item per line the
4
- * object gives, and the object named as its parent. Answers the invoice's id. */
5
- export declare function draftInvoiceFor(ctx: SemanticsContext, customer: string, currency: string, parent: Row, lines: Array<{
6
- price: unknown;
7
- quantity: number;
8
- amount: number;
9
- description: unknown;
10
- }>): Promise<string>;
11
- /** What finalizing assigns: the invoice's `number`, the customer's invoice_prefix and a sequence
12
- * (https://docs.stripe.com/api/invoices/object#invoice_object-number), and for send_invoice a
13
- * `due_date` days_until_due after finalization (#invoice_object-due_date). */
14
- /** A customer's invoice_prefix, "The prefix for the customer used to generate unique invoice numbers"
15
- * (docs.stripe.com/api/customers/object): the twin's, from the customer's id. */
16
- export declare const invoicePrefix: (customerId: string) => string;
17
- export declare function finalizedFields(ctx: SemanticsContext, inv: Row, now: number): Row;
18
- export declare const invoices: Record<string, Semantics>;
1
+ import type { HandlerContext } from '@volter/world-core';
2
+ export declare function DeleteInvoicesInvoice(ctx: HandlerContext): Promise<Response>;
3
+ export declare function GetInvoicesInvoice(ctx: HandlerContext): Promise<Response>;
4
+ export declare function GetInvoicesInvoiceLines(ctx: HandlerContext): Promise<Response>;
5
+ export declare function PostInvoices(ctx: HandlerContext): Promise<Response>;
6
+ /**
7
+ * A preview of the next invoice for a customer or subscription (create_preview), computed and never
8
+ * stored: the subscription's items at their prices, the customer's pending items, the subscription's
9
+ * discount, and with `subscription_details.proration_date` a credit for the unused period against a
10
+ * charge for the new one (split evenly: there is no clock here to measure the remaining fraction).
11
+ */
12
+ export declare function PostInvoicesCreatePreview(ctx: HandlerContext): Promise<Response>;
13
+ export declare function PostInvoicesInvoiceFinalize(ctx: HandlerContext): Promise<Response>;
14
+ export declare function PostInvoicesInvoicePay(ctx: HandlerContext): Promise<Response>;
15
+ export declare function PostInvoicesInvoiceSend(ctx: HandlerContext): Promise<Response>;
16
+ export declare function PostInvoicesInvoiceVoid(ctx: HandlerContext): Promise<Response>;