@volter/twin-stripe 2.0.38 → 3.0.1

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 (402) hide show
  1. package/README.md +112 -207
  2. package/dist/generated/pack-facts.json +94 -0
  3. package/dist/journeys/coverage.json +596 -0
  4. package/dist/journeys/customer-life.json +6108 -0
  5. package/dist/journeys/customer-life.outline.md +371 -0
  6. package/dist/journeys/decisions.json +677 -0
  7. package/dist/journeys/demand.json +706 -0
  8. package/dist/journeys/score.json +853 -0
  9. package/dist/journeys/unreachable.json +102 -0
  10. package/dist/journeys/vendor-examples.json +8010 -0
  11. package/dist/spec/SOURCE.md +18 -0
  12. package/dist/spec/doc-examples.json +445 -0
  13. package/dist/spec/fixtures3.json.gz +0 -0
  14. package/dist/spec/openapi.json.gz +0 -0
  15. package/dist/spec/patches.json +34 -0
  16. package/dist/spec/sources.json +306 -0
  17. package/dist/src/cli.d.ts +0 -1
  18. package/dist/src/cli.js +11 -31
  19. package/dist/src/engine/after-payment.d.ts +8 -0
  20. package/dist/src/engine/after-payment.js +27 -0
  21. package/dist/src/engine/apps-secrets.d.ts +1 -0
  22. package/dist/src/engine/apps-secrets.js +3 -0
  23. package/dist/src/engine/balance.d.ts +5 -0
  24. package/dist/src/engine/balance.js +15 -0
  25. package/dist/src/engine/checkout.d.ts +24 -0
  26. package/dist/src/engine/checkout.js +30 -0
  27. package/dist/src/engine/common.d.ts +19 -0
  28. package/dist/src/engine/common.js +34 -0
  29. package/dist/src/engine/connect.d.ts +45 -0
  30. package/dist/src/engine/connect.js +108 -0
  31. package/dist/src/engine/customers.d.ts +4 -0
  32. package/dist/src/engine/customers.js +8 -0
  33. package/dist/src/engine/display.d.ts +11 -0
  34. package/dist/src/engine/display.js +13 -0
  35. package/dist/src/engine/files.d.ts +11 -0
  36. package/dist/src/engine/files.js +23 -0
  37. package/dist/src/engine/invoices.d.ts +21 -0
  38. package/dist/src/engine/invoices.js +84 -0
  39. package/dist/src/engine/issuing.d.ts +33 -0
  40. package/dist/src/engine/issuing.js +54 -0
  41. package/dist/src/engine/ledger.d.ts +8 -0
  42. package/dist/src/engine/ledger.js +8 -0
  43. package/dist/src/engine/oauth.d.ts +4 -0
  44. package/dist/src/engine/oauth.js +24 -0
  45. package/dist/src/engine/onboarding.d.ts +13 -0
  46. package/dist/src/engine/onboarding.js +42 -0
  47. package/dist/src/{stripe-params.d.ts → engine/params.d.ts} +20 -3
  48. package/dist/src/{stripe-params.js → engine/params.js} +7 -60
  49. package/dist/src/engine/payment-intents.d.ts +10 -0
  50. package/dist/src/engine/payment-intents.js +27 -0
  51. package/dist/src/engine/payment-methods.d.ts +16 -0
  52. package/dist/src/engine/payment-methods.js +22 -0
  53. package/dist/src/engine/radar.d.ts +2 -0
  54. package/dist/src/engine/radar.js +5 -0
  55. package/dist/src/engine/refunds.d.ts +1 -0
  56. package/dist/src/engine/refunds.js +3 -0
  57. package/dist/src/engine/renewals.d.ts +36 -0
  58. package/dist/src/engine/renewals.js +65 -0
  59. package/dist/src/{stripe-twin.d.ts → engine/stripe.d.ts} +12 -45
  60. package/dist/src/{stripe-twin.js → engine/stripe.js} +53 -387
  61. package/dist/src/engine/subscriptions.d.ts +11 -0
  62. package/dist/src/engine/subscriptions.js +30 -0
  63. package/dist/src/engine/transfers.d.ts +2 -0
  64. package/dist/src/engine/transfers.js +1 -0
  65. package/dist/src/{stripe-version.d.ts → engine/version.d.ts} +0 -2
  66. package/dist/src/{stripe-version.js → engine/version.js} +21 -9
  67. package/dist/src/engine/webhook-endpoints.d.ts +1 -0
  68. package/dist/src/engine/webhook-endpoints.js +12 -0
  69. package/dist/src/engine/webhooks.d.ts +31 -0
  70. package/dist/src/engine/webhooks.js +68 -0
  71. package/dist/src/fetch.d.ts +2 -0
  72. package/dist/src/fetch.js +26 -0
  73. package/dist/src/generated/surface.gen.json +1 -1
  74. package/dist/src/generated/ui.gen.json +1 -1
  75. package/dist/src/index.d.ts +5 -14
  76. package/dist/src/index.js +10 -75
  77. package/dist/src/manifest.js +478 -876
  78. package/dist/src/screens/billing-portal.d.ts +3 -0
  79. package/dist/src/screens/{portal.js → billing-portal.js} +32 -58
  80. package/dist/src/screens/checkout-js.d.ts +2 -0
  81. package/dist/src/screens/checkout-js.js +84 -0
  82. package/dist/src/screens/checkout.d.ts +2 -31
  83. package/dist/src/screens/checkout.js +32 -121
  84. package/dist/src/screens/connect-onboarding.d.ts +3 -0
  85. package/dist/src/screens/{onboarding.js → connect-onboarding.js} +38 -104
  86. package/dist/src/screens/dashboard.d.ts +3 -0
  87. package/dist/src/screens/dashboard.js +116 -0
  88. package/dist/src/screens/shared.d.ts +27 -0
  89. package/dist/src/screens/shared.js +87 -0
  90. package/dist/src/screens/stripe-js.d.ts +3 -0
  91. package/dist/src/screens/stripe-js.js +95 -0
  92. package/dist/src/semantics/account.d.ts +2 -0
  93. package/dist/src/semantics/account.js +8 -0
  94. package/dist/src/semantics/account_links.d.ts +2 -0
  95. package/dist/src/semantics/account_links.js +22 -0
  96. package/dist/src/semantics/accounts.d.ts +4 -0
  97. package/dist/src/semantics/accounts.js +40 -0
  98. package/dist/src/semantics/apps.d.ts +4 -0
  99. package/dist/src/semantics/{apps-secrets.js → apps.js} +14 -26
  100. package/dist/src/semantics/around.d.ts +2 -0
  101. package/dist/src/semantics/around.js +13 -0
  102. package/dist/src/semantics/balance.d.ts +2 -11
  103. package/dist/src/semantics/balance.js +3 -194
  104. package/dist/src/semantics/balance_transactions.d.ts +2 -0
  105. package/dist/src/semantics/balance_transactions.js +15 -0
  106. package/dist/src/semantics/billing_portal.d.ts +4 -0
  107. package/dist/src/semantics/billing_portal.js +36 -0
  108. package/dist/src/semantics/charges.d.ts +3 -28
  109. package/dist/src/semantics/charges.js +5 -202
  110. package/dist/src/semantics/checkout.d.ts +3 -20
  111. package/dist/src/semantics/checkout.js +21 -271
  112. package/dist/src/semantics/clock.d.ts +2 -0
  113. package/dist/src/semantics/clock.js +15 -0
  114. package/dist/src/semantics/coupons.d.ts +2 -6
  115. package/dist/src/semantics/coupons.js +2 -60
  116. package/dist/src/semantics/customers.d.ts +5 -6
  117. package/dist/src/semantics/customers.js +47 -413
  118. package/dist/src/semantics/doors.d.ts +23 -0
  119. package/dist/src/semantics/doors.js +73 -0
  120. package/dist/src/semantics/entitlements.d.ts +0 -2
  121. package/dist/src/semantics/entitlements.js +4 -95
  122. package/dist/src/semantics/events.d.ts +11 -0
  123. package/dist/src/semantics/events.js +31 -0
  124. package/dist/src/semantics/index.d.ts +2 -0
  125. package/dist/src/semantics/index.js +85 -0
  126. package/dist/src/semantics/invoice_payments.d.ts +2 -0
  127. package/dist/src/semantics/invoice_payments.js +12 -0
  128. package/dist/src/semantics/invoices.d.ts +11 -18
  129. package/dist/src/semantics/invoices.js +121 -440
  130. package/dist/src/semantics/issuing.d.ts +6 -13
  131. package/dist/src/semantics/issuing.js +58 -556
  132. package/dist/src/semantics/payment_intents.d.ts +3 -0
  133. package/dist/src/semantics/payment_intents.js +71 -0
  134. package/dist/src/semantics/payment_methods.d.ts +3 -0
  135. package/dist/src/semantics/payment_methods.js +15 -0
  136. package/dist/src/semantics/payouts.d.ts +3 -0
  137. package/dist/src/semantics/payouts.js +28 -0
  138. package/dist/src/semantics/prices.d.ts +4 -0
  139. package/dist/src/semantics/prices.js +37 -0
  140. package/dist/src/semantics/products.d.ts +4 -2
  141. package/dist/src/semantics/products.js +12 -138
  142. package/dist/src/semantics/promotion_codes.d.ts +3 -0
  143. package/dist/src/semantics/promotion_codes.js +35 -0
  144. package/dist/src/semantics/radar.d.ts +2 -2
  145. package/dist/src/semantics/radar.js +5 -74
  146. package/dist/src/semantics/refunds.d.ts +2 -9
  147. package/dist/src/semantics/refunds.js +3 -193
  148. package/dist/src/semantics/shared.d.ts +558 -55
  149. package/dist/src/semantics/shared.js +2070 -114
  150. package/dist/src/semantics/states.d.ts +462 -0
  151. package/dist/src/semantics/states.js +634 -0
  152. package/dist/src/semantics/subscriptions.d.ts +6 -11
  153. package/dist/src/semantics/subscriptions.js +37 -530
  154. package/dist/src/semantics/test_helpers.d.ts +3 -0
  155. package/dist/src/semantics/test_helpers.js +125 -0
  156. package/dist/src/semantics/transfers.d.ts +2 -2
  157. package/dist/src/semantics/transfers.js +6 -101
  158. package/dist/src/semantics/webhook_endpoints.d.ts +2 -0
  159. package/dist/src/semantics/webhook_endpoints.js +26 -0
  160. package/dist/src/server.d.ts +7 -0
  161. package/dist/src/server.js +7 -0
  162. package/generated/pack-facts.json +94 -0
  163. package/journeys/coverage.json +596 -0
  164. package/journeys/customer-life.json +6108 -0
  165. package/journeys/customer-life.outline.md +371 -0
  166. package/journeys/decisions.json +677 -0
  167. package/journeys/demand.json +706 -0
  168. package/journeys/score.json +853 -0
  169. package/journeys/unreachable.json +102 -0
  170. package/journeys/vendor-examples.json +8010 -0
  171. package/package.json +11 -20
  172. package/spec/SOURCE.md +18 -0
  173. package/spec/doc-examples.json +445 -0
  174. package/spec/fixtures3.json.gz +0 -0
  175. package/spec/openapi.json.gz +0 -0
  176. package/spec/patches.json +34 -0
  177. package/spec/sources.json +306 -0
  178. package/src/cli.ts +11 -28
  179. package/src/engine/after-payment.ts +29 -0
  180. package/src/engine/apps-secrets.ts +4 -0
  181. package/src/engine/balance.ts +32 -0
  182. package/src/engine/checkout.ts +39 -0
  183. package/src/engine/common.ts +49 -0
  184. package/src/engine/connect.ts +106 -0
  185. package/src/engine/customers.ts +10 -0
  186. package/src/engine/display.ts +18 -0
  187. package/src/engine/files.ts +28 -0
  188. package/src/engine/invoices.ts +102 -0
  189. package/src/engine/issuing.ts +66 -0
  190. package/src/engine/ledger.ts +48 -0
  191. package/src/engine/oauth.ts +18 -0
  192. package/src/engine/onboarding.ts +53 -0
  193. package/src/{stripe-params.ts → engine/params.ts} +7 -56
  194. package/src/engine/payment-intents.ts +32 -0
  195. package/src/engine/payment-methods.ts +24 -0
  196. package/src/engine/radar.ts +6 -0
  197. package/src/engine/refunds.ts +3 -0
  198. package/src/engine/renewals.ts +72 -0
  199. package/src/{stripe-twin.ts → engine/stripe.ts} +57 -400
  200. package/src/engine/subscriptions.ts +37 -0
  201. package/src/engine/transfers.ts +22 -0
  202. package/src/{stripe-version.ts → engine/version.ts} +19 -10
  203. package/src/engine/webhook-endpoints.ts +14 -0
  204. package/src/engine/webhooks.ts +70 -0
  205. package/src/fetch.ts +27 -0
  206. package/src/generated/surface.gen.json +1 -1
  207. package/src/generated/ui.gen.json +1 -1
  208. package/src/index.ts +10 -116
  209. package/src/manifest.ts +480 -904
  210. package/src/screens/{portal.tsx → billing-portal.tsx} +35 -42
  211. package/src/screens/checkout-js.ts +80 -0
  212. package/src/screens/checkout.tsx +32 -96
  213. package/src/screens/{onboarding.tsx → connect-onboarding.tsx} +39 -85
  214. package/src/screens/dashboard.tsx +178 -0
  215. package/src/screens/shared.tsx +84 -0
  216. package/src/screens/stripe-js.ts +102 -0
  217. package/src/semantics/account.ts +10 -0
  218. package/src/semantics/account_links.ts +20 -0
  219. package/src/semantics/accounts.ts +44 -0
  220. package/src/semantics/{apps-secrets.ts → apps.ts} +17 -33
  221. package/src/semantics/around.ts +17 -0
  222. package/src/semantics/balance.ts +6 -208
  223. package/src/semantics/balance_transactions.ts +18 -0
  224. package/src/semantics/billing_portal.ts +45 -0
  225. package/src/semantics/charges.ts +8 -212
  226. package/src/semantics/checkout.ts +25 -276
  227. package/src/semantics/clock.ts +19 -0
  228. package/src/semantics/coupons.ts +5 -68
  229. package/src/semantics/customers.ts +48 -414
  230. package/src/semantics/doors.ts +79 -0
  231. package/src/semantics/entitlements.ts +3 -94
  232. package/src/semantics/events.ts +37 -0
  233. package/src/semantics/index.ts +89 -0
  234. package/src/semantics/invoice_payments.ts +16 -0
  235. package/src/semantics/invoices.ts +112 -441
  236. package/src/semantics/issuing.ts +57 -573
  237. package/src/semantics/payment_intents.ts +76 -0
  238. package/src/semantics/payment_methods.ts +20 -0
  239. package/src/semantics/payouts.ts +29 -0
  240. package/src/semantics/prices.ts +41 -0
  241. package/src/semantics/products.ts +12 -146
  242. package/src/semantics/promotion_codes.ts +38 -0
  243. package/src/semantics/radar.ts +8 -79
  244. package/src/semantics/refunds.ts +4 -216
  245. package/src/semantics/shared.ts +2089 -135
  246. package/src/semantics/states.ts +662 -0
  247. package/src/semantics/subscriptions.ts +39 -542
  248. package/src/semantics/test_helpers.ts +119 -0
  249. package/src/semantics/transfers.ts +10 -132
  250. package/src/semantics/webhook_endpoints.ts +27 -0
  251. package/src/server.ts +7 -0
  252. package/client/dashboard-api.ts +0 -286
  253. package/client/stripe-mirror.css +0 -277
  254. package/client/stripe-mirror.tsx +0 -1559
  255. package/dist/client/dashboard-api.d.ts +0 -107
  256. package/dist/client/dashboard-api.js +0 -238
  257. package/dist/client/dashboard-api.ts +0 -286
  258. package/dist/client/stripe-mirror.bundle.js +0 -236
  259. package/dist/client/stripe-mirror.css +0 -277
  260. package/dist/client/stripe-mirror.d.ts +0 -134
  261. package/dist/client/stripe-mirror.js +0 -859
  262. package/dist/client/stripe-mirror.tsx +0 -1559
  263. package/dist/src/screens/connect-oauth.d.ts +0 -27
  264. package/dist/src/screens/connect-oauth.js +0 -414
  265. package/dist/src/screens/connect-settings.d.ts +0 -22
  266. package/dist/src/screens/connect-settings.js +0 -103
  267. package/dist/src/screens/consent-skin.d.ts +0 -4
  268. package/dist/src/screens/consent-skin.js +0 -18
  269. package/dist/src/screens/financial-connections.d.ts +0 -5
  270. package/dist/src/screens/financial-connections.js +0 -90
  271. package/dist/src/screens/identity.d.ts +0 -5
  272. package/dist/src/screens/identity.js +0 -86
  273. package/dist/src/screens/onboarding.d.ts +0 -13
  274. package/dist/src/screens/portal.d.ts +0 -5
  275. package/dist/src/screens/public-details.d.ts +0 -5
  276. package/dist/src/screens/public-details.js +0 -90
  277. package/dist/src/semantics/after-payment.d.ts +0 -22
  278. package/dist/src/semantics/after-payment.js +0 -99
  279. package/dist/src/semantics/apps-secrets.d.ts +0 -2
  280. package/dist/src/semantics/billing.d.ts +0 -2
  281. package/dist/src/semantics/billing.js +0 -220
  282. package/dist/src/semantics/connect.d.ts +0 -5
  283. package/dist/src/semantics/connect.js +0 -493
  284. package/dist/src/semantics/credit-notes.d.ts +0 -2
  285. package/dist/src/semantics/credit-notes.js +0 -172
  286. package/dist/src/semantics/disputes.d.ts +0 -2
  287. package/dist/src/semantics/disputes.js +0 -51
  288. package/dist/src/semantics/ephemeral-keys.d.ts +0 -2
  289. package/dist/src/semantics/ephemeral-keys.js +0 -34
  290. package/dist/src/semantics/files.d.ts +0 -2
  291. package/dist/src/semantics/files.js +0 -125
  292. package/dist/src/semantics/ledger.d.ts +0 -59
  293. package/dist/src/semantics/ledger.js +0 -200
  294. package/dist/src/semantics/payment-intents.d.ts +0 -18
  295. package/dist/src/semantics/payment-intents.js +0 -452
  296. package/dist/src/semantics/payment-links.d.ts +0 -2
  297. package/dist/src/semantics/payment-links.js +0 -133
  298. package/dist/src/semantics/payment-methods.d.ts +0 -20
  299. package/dist/src/semantics/payment-methods.js +0 -140
  300. package/dist/src/semantics/plans.d.ts +0 -5
  301. package/dist/src/semantics/plans.js +0 -121
  302. package/dist/src/semantics/platform.d.ts +0 -9
  303. package/dist/src/semantics/platform.js +0 -206
  304. package/dist/src/semantics/renewals.d.ts +0 -47
  305. package/dist/src/semantics/renewals.js +0 -281
  306. package/dist/src/semantics/setup-intents.d.ts +0 -2
  307. package/dist/src/semantics/setup-intents.js +0 -84
  308. package/dist/src/semantics/subscription-schedules.d.ts +0 -2
  309. package/dist/src/semantics/subscription-schedules.js +0 -119
  310. package/dist/src/semantics/tax.d.ts +0 -2
  311. package/dist/src/semantics/tax.js +0 -197
  312. package/dist/src/semantics/terminal.d.ts +0 -5
  313. package/dist/src/semantics/terminal.js +0 -182
  314. package/dist/src/semantics/test-clocks.d.ts +0 -6
  315. package/dist/src/semantics/test-clocks.js +0 -73
  316. package/dist/src/semantics/tokens.d.ts +0 -4
  317. package/dist/src/semantics/tokens.js +0 -44
  318. package/dist/src/semantics/treasury.d.ts +0 -2
  319. package/dist/src/semantics/treasury.js +0 -377
  320. package/dist/src/semantics/webhook-endpoints.d.ts +0 -3
  321. package/dist/src/semantics/webhook-endpoints.js +0 -85
  322. package/dist/src/stripe-budget.d.ts +0 -55
  323. package/dist/src/stripe-budget.js +0 -155
  324. package/dist/src/stripe-capabilities.d.ts +0 -3
  325. package/dist/src/stripe-capabilities.js +0 -5836
  326. package/dist/src/stripe-conformance.d.ts +0 -43
  327. package/dist/src/stripe-conformance.js +0 -105
  328. package/dist/src/stripe-connector.d.ts +0 -161
  329. package/dist/src/stripe-connector.js +0 -414
  330. package/dist/src/stripe-emit.d.ts +0 -2
  331. package/dist/src/stripe-emit.js +0 -145
  332. package/dist/src/stripe-events.d.ts +0 -93
  333. package/dist/src/stripe-events.js +0 -392
  334. package/dist/src/stripe-js.d.ts +0 -4
  335. package/dist/src/stripe-js.js +0 -70
  336. package/dist/src/stripe-mirror-ui.d.ts +0 -15
  337. package/dist/src/stripe-mirror-ui.js +0 -87
  338. package/dist/src/stripe-perform-harness.d.ts +0 -9
  339. package/dist/src/stripe-perform-harness.js +0 -26
  340. package/dist/src/stripe-server.d.ts +0 -33
  341. package/dist/src/stripe-server.js +0 -429
  342. package/dist/src/stripe-shared.d.ts +0 -109
  343. package/dist/src/stripe-shared.js +0 -276
  344. package/dist/src/stripe-ui-conformance.d.ts +0 -5
  345. package/dist/src/stripe-ui-conformance.js +0 -79
  346. package/dist/src/stripe-ui-structure.d.ts +0 -3
  347. package/dist/src/stripe-ui-structure.js +0 -168
  348. package/dist/test-fixtures/stripe-known-deviations.json +0 -110
  349. package/dist/test-fixtures/stripe-openapi-operations.SOURCE.md +0 -14
  350. package/dist/test-fixtures/stripe-openapi-operations.json +0 -4717
  351. package/dist/test-fixtures/stripe-schemas.SOURCE.md +0 -35
  352. package/dist/test-fixtures/stripe-schemas.json +0 -3813
  353. package/src/screens/connect-oauth.tsx +0 -400
  354. package/src/screens/connect-settings.tsx +0 -121
  355. package/src/screens/consent-skin.ts +0 -20
  356. package/src/screens/financial-connections.tsx +0 -101
  357. package/src/screens/identity.tsx +0 -96
  358. package/src/screens/public-details.tsx +0 -105
  359. package/src/semantics/after-payment.ts +0 -118
  360. package/src/semantics/billing.ts +0 -216
  361. package/src/semantics/connect.ts +0 -487
  362. package/src/semantics/credit-notes.ts +0 -168
  363. package/src/semantics/disputes.ts +0 -62
  364. package/src/semantics/ephemeral-keys.ts +0 -34
  365. package/src/semantics/files.ts +0 -143
  366. package/src/semantics/ledger.ts +0 -253
  367. package/src/semantics/payment-intents.ts +0 -463
  368. package/src/semantics/payment-links.ts +0 -148
  369. package/src/semantics/payment-methods.ts +0 -145
  370. package/src/semantics/plans.ts +0 -131
  371. package/src/semantics/platform.ts +0 -220
  372. package/src/semantics/renewals.ts +0 -279
  373. package/src/semantics/setup-intents.ts +0 -87
  374. package/src/semantics/subscription-schedules.ts +0 -129
  375. package/src/semantics/tax.ts +0 -220
  376. package/src/semantics/terminal.ts +0 -195
  377. package/src/semantics/test-clocks.ts +0 -77
  378. package/src/semantics/tokens.ts +0 -52
  379. package/src/semantics/treasury.ts +0 -383
  380. package/src/semantics/webhook-endpoints.ts +0 -87
  381. package/src/stripe-budget.ts +0 -181
  382. package/src/stripe-capabilities.ts +0 -5651
  383. package/src/stripe-conformance.ts +0 -124
  384. package/src/stripe-connector.ts +0 -462
  385. package/src/stripe-emit.ts +0 -157
  386. package/src/stripe-events.ts +0 -434
  387. package/src/stripe-js.ts +0 -70
  388. package/src/stripe-mirror-ui.ts +0 -90
  389. package/src/stripe-perform-harness.ts +0 -29
  390. package/src/stripe-server.ts +0 -393
  391. package/src/stripe-shared.ts +0 -297
  392. package/src/stripe-ui-conformance.ts +0 -88
  393. package/src/stripe-ui-structure.ts +0 -182
  394. package/test-fixtures/stripe-known-deviations.json +0 -110
  395. package/test-fixtures/stripe-openapi-operations.json +0 -4717
  396. package/test-fixtures/stripe-schemas.json +0 -3813
  397. /package/dist/src/{screens → engine}/industries.d.ts +0 -0
  398. /package/dist/src/{screens → engine}/industries.js +0 -0
  399. /package/dist/src/{semantics → engine}/test-cards.d.ts +0 -0
  400. /package/dist/src/{semantics → engine}/test-cards.js +0 -0
  401. /package/src/{screens → engine}/industries.ts +0 -0
  402. /package/src/{semantics → engine}/test-cards.ts +0 -0
@@ -0,0 +1,73 @@
1
+ import { platformAccountDefault } from "../engine/connect.js";
2
+ import { accountSettings, PLATFORM_ACCOUNT_ID } from "../engine/stripe.js";
3
+ import { balanceBody, payDuePayouts, settleDueEntries } from "./shared.js";
4
+ /** The platform's own account settings (its payout schedule, its public name) change on Stripe's Dashboard, which has no
5
+ * API: this stands in for that page. The account is Stripe's default until the page first changes it (the same default
6
+ * GET /v1/account answers); a hash is merged into what the account holds, as an update merges it. */
7
+ export async function account(ctx) {
8
+ const ex = ctx.get('account', PLATFORM_ACCOUNT_ID);
9
+ const given = ctx.params;
10
+ const { type: _t, settings: rawSettings, business_profile: rawProfile, ...rest } = given;
11
+ const { id: _id, ...base } = platformAccountDefault();
12
+ const fields = {
13
+ ...(ex ? {} : base),
14
+ ...rest,
15
+ settings: accountSettings(rawSettings, ex?.settings),
16
+ ...(rawProfile && typeof rawProfile === 'object' ? { business_profile: { ...(ex?.business_profile ?? {}), ...rawProfile } } : {}),
17
+ };
18
+ return ctx.reply(await ctx.write('account', PLATFORM_ACCOUNT_ID, fields, 'account.update'));
19
+ }
20
+ /** Time's events, sent when a caller drives them (a runner's drainer): what time settled on each account is written —
21
+ * payouts whose arrival date came (pending → paid, sent as payout.paid) and funds that came due (pending → available),
22
+ * for which the account is sent one balance.available ("Occurs whenever your Stripe balance has been updated (e.g., when
23
+ * a charge is available to be paid out)", docs.stripe.com/api/events/types) carrying its Balance, when an entry that
24
+ * settled adds to it ("This event is not fired for negative transactions", the same page); a connected account's
25
+ * events go to Connect endpoints. A read already sees these moves; the drain is what makes Stripe's events about them
26
+ * arrive. Answers what it sent. */
27
+ export async function drain(ctx) {
28
+ const accounts = [undefined, ...ctx.rows('account').map((a) => String(a.id)).filter((id) => id !== PLATFORM_ACCOUNT_ID)];
29
+ const delivered = [];
30
+ for (const account of accounts) {
31
+ for (const id of await payDuePayouts(ctx, account))
32
+ delivered.push({ type: 'payout.paid', id, ...(account ? { account } : {}) });
33
+ if ((await settleDueEntries(ctx, account)).some((t) => Number(t.net) > 0)) {
34
+ // the notice the event is sent for: the account's Balance, which has no id of its own (./events.ts renders it)
35
+ await ctx.write('_balance_notice', `${account ?? PLATFORM_ACCOUNT_ID}:${ctx.occurredAt}`, { account: account ?? null, balance: balanceBody(ctx, account) }, 'balance.available');
36
+ delivered.push({ type: 'balance.available', ...(account ? { account } : {}) });
37
+ }
38
+ }
39
+ return Response.json({ delivered });
40
+ }
41
+ /** POST /_twin/app-credentials: the platform's API keys as the dashboard's API keys page shows them, a secret key and a
42
+ * publishable key (`sk_test_…`, `pk_test_…`), held by their SHA-256, and the signing secrets its webhook endpoints
43
+ * are made with. The runtime issues them to a World's applications at every boot (the descriptor's credentialDoor), so
44
+ * the answer is the same each time: the account's one pair of keys, made the first time. Where the documentation
45
+ * stops: the keys' length and alphabet after the prefix. */
46
+ // source: https://docs.stripe.com/keys "Publishable keys"
47
+ export async function appCredentials(ctx) {
48
+ const secretKey = `sk_test_51${(await ctx.secret('stripe-platform-key:app')).replace(/[^A-Za-z0-9]/g, '').slice(0, 96)}`;
49
+ const publishableKey = `pk_test_51${(await ctx.secret('stripe-publishable-key:app')).replace(/[^A-Za-z0-9]/g, '').slice(0, 96)}`;
50
+ if (!ctx.rowsRaw('_platform_key').some((k) => k.id === 'secret:app' && k._sha256 === ctx.crypto.sha256(secretKey))) {
51
+ await ctx.record('_platform_key', { kind: 'secret', _sha256: ctx.crypto.sha256(secretKey), created: ctx.occurredAt, deleted: false }, 'secret:app');
52
+ await ctx.record('_platform_key', { kind: 'publishable', _sha256: ctx.crypto.sha256(publishableKey), created: ctx.occurredAt, deleted: false }, 'publishable:app');
53
+ }
54
+ // the signing secrets the application verifies its webhooks with, its account's and its Connect endpoint's: an
55
+ // endpoint made for it (the webhookEndpoints door) is signed with the one of its kind, so the two agree
56
+ return Response.json({ secret_key: secretKey, publishable_key: publishableKey, webhook_secret: await appEndpointSecret(ctx, false), connect_webhook_secret: await appEndpointSecret(ctx, true) }, { status: 201 });
57
+ }
58
+ /** The signing secret the World's application is issued for its account's endpoints, or for its Connect endpoint. */
59
+ const appEndpointSecret = async (ctx, connect) => `whsec_${(await ctx.secret(connect ? 'stripe-webhook-secret:connect' : 'stripe-webhook-secret:app')).replace(/[^A-Za-z0-9]/g, '').slice(0, 32)}`;
60
+ /** POST /_twin/webhook-endpoints {url, events, connect?}: an endpoint added on the Dashboard's Webhooks page, the events
61
+ * it takes, signed with the secret the World's application is issued (./doors.ts `appCredentials`): the twin's
62
+ * decision, since Stripe mints an endpoint's secret and lets no one choose one. */
63
+ // source: https://docs.stripe.com/webhooks "register a webhook endpoint, Stripe pushes real-time data to it when"
64
+ export async function webhookEndpoints(ctx) {
65
+ const b = (ctx.body && typeof ctx.body === 'object' ? ctx.body : {});
66
+ if (typeof b.url !== 'string' || !/^https?:\/\//.test(b.url) || !Array.isArray(b.events) || !b.events.length)
67
+ return Response.json({ error: 'a url and its events are required' }, { status: 400 });
68
+ const connect = b.connect === true;
69
+ const id = ctx.mint('webhook_endpoint');
70
+ const secret = await appEndpointSecret(ctx, connect);
71
+ await ctx.write('webhook_endpoint', id, { id, object: 'webhook_endpoint', url: b.url, enabled_events: b.events.map(String), status: 'enabled', connect, livemode: false, metadata: {}, api_version: null, application: null, description: null, secret, created: Math.floor(Date.parse(ctx.occurredAt) / 1000) }, 'webhook_endpoint.create');
72
+ return Response.json({ id, secret }, { status: 201 });
73
+ }
@@ -1,2 +0,0 @@
1
- import type { Semantics } from '@volter/world-core';
2
- export declare const entitlements: Record<string, Semantics>;
@@ -1,95 +1,4 @@
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
- };
43
- // a customer is entitled to every feature granted to a product its live subscriptions bill, as the product stood when
44
- // the subscription's current period began: "When a customer purchases or subscribes to a product with an attached
45
- // feature, Stripe creates and manages an Active Entitlement for that customer and feature"; "Existing subscriptions will
46
- // create active entitlements for any product feature changes at the start of the next billing period"
47
- // (docs.stripe.com/billing/entitlements). Where the documentation stops and the twin decides: a feature removed from a
48
- // product is kept, the same way, until the next period begins.
49
- const activeEntitlements = async (ctx) => {
50
- const customer = typeof ctx.params.customer === 'string' ? ctx.params.customer : '';
51
- if (!customer)
52
- return fail(ctx, 'Missing required param: customer.', 400, 'parameter_missing');
53
- if (!ctx.row('customer', customer, { withDeleted: true }))
54
- return fail(ctx, `No such customer: '${customer}'`, 404, 'resource_missing');
55
- // each product a live subscription bills, with the start of the period it is billed for
56
- const productIds = new Map();
57
- for (const sub of newest(ctx, 'subscription')) {
58
- // a subscription entitles while it runs: not before its first payment (incomplete), nor once it has ended
59
- // (docs.stripe.com/billing/entitlements; past_due keeps access during retries — that edge is the twin's reading)
60
- if (sub.customer !== customer || !['active', 'trialing', 'past_due'].includes(String(sub.status)))
61
- continue;
62
- const periodStart = Number(sub.current_period_start ?? sub.start_date ?? sub.created ?? 0);
63
- for (const it of subscriptionItemPairs(sub)) {
64
- const price = ctx.get('price', it.price);
65
- if (price && typeof price.product === 'string')
66
- productIds.set(price.product, Math.max(productIds.get(price.product) ?? -Infinity, periodStart));
67
- }
68
- }
69
- const seen = new Set();
70
- const data = [];
71
- for (const pf of ctx.rowsRaw('product_feature', { withDeleted: true })) {
72
- const periodStart = productIds.get(String(pf._product));
73
- if (periodStart === undefined)
74
- continue;
75
- // attached by the period's start, and not removed before it
76
- if (Number(pf._created ?? 0) > periodStart)
77
- continue;
78
- if (pf.deleted && !(Number(pf._removed_at) > periodStart))
79
- continue;
80
- const featId = String(pf._feature ?? pf.entitlement_feature?.id ?? pf.entitlement_feature);
81
- if (seen.has(featId))
82
- continue;
83
- seen.add(featId);
84
- const feat = ctx.get(FEAT, featId);
85
- if (feat)
86
- data.push({ id: `ent_twin_${customer}_${featId}`, object: 'entitlements.active_entitlement', feature: featId, lookup_key: feat.lookup_key, livemode: false });
87
- }
88
- 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
- };
1
+ "use strict";
2
+ // Stripe's entitlements operations (docs/contributing/architecture.md, "What an author writes"): each handler over the
3
+ // handler contract's context, computing with the engine (../engine/).
4
+ // source: spec:PostEntitlementsFeatures "Creates a feature"
@@ -0,0 +1,11 @@
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. An Issuing
3
+ * authorization carries its full card; the balance notice the drain writes carries the account's Balance. */
4
+ export declare function data(ctx: WriteHookContext, write: EventWrite): Record<string, unknown>;
5
+ /** An event's further envelope values: the connected account it is about ("Each event for a connected account contains
6
+ * a top-level `account` property that identifies the connected account", docs.stripe.com/connect/webhooks) — the
7
+ * account a request acts as (Stripe-Account), a connected account's own account.updated, or the account whose books the
8
+ * written row is kept on (its `_account`) — and the API version it is rendered in. A connected account whose OAuth
9
+ * connection was revoked "can't be accessed by your platform" (docs.stripe.com/connect/oauth-reference): its events are
10
+ * kept but no longer sent (`$send: false`), except the account.application.deauthorized that says so. */
11
+ export declare function values(ctx: WriteHookContext, write: EventWrite, type: string): Record<string, unknown>;
@@ -0,0 +1,31 @@
1
+ import { isValidApiVersion, PLATFORM_ACCOUNT_ID, TWIN_API_VERSION } from "../engine/stripe.js";
2
+ import { render } from "../engine/version.js";
3
+ // ── the events Stripe's writes send (the manifest's `events`: ./shared.ts STRIPE_EVENTS) ──
4
+ /** An event's `data`: the object the write concerns, as Stripe sends it in the event's API version. An Issuing
5
+ * authorization carries its full card; the balance notice the drain writes carries the account's Balance. */
6
+ export function data(ctx, write) {
7
+ const object = write.storedType === '_balance_notice' ? write.body.balance
8
+ : write.storedType === 'issuing_authorization' ? ctx.expand('issuing.authorization', write.body)
9
+ : write.storedType === 'issuing_card' ? ctx.expand('issuing.card', write.body) : ctx.expand(String(write.body.object ?? write.storedType), write.body);
10
+ return { object: render(object, eventVersion(write)) };
11
+ }
12
+ /** An event's further envelope values: the connected account it is about ("Each event for a connected account contains
13
+ * a top-level `account` property that identifies the connected account", docs.stripe.com/connect/webhooks) — the
14
+ * account a request acts as (Stripe-Account), a connected account's own account.updated, or the account whose books the
15
+ * written row is kept on (its `_account`) — and the API version it is rendered in. A connected account whose OAuth
16
+ * connection was revoked "can't be accessed by your platform" (docs.stripe.com/connect/oauth-reference): its events are
17
+ * kept but no longer sent (`$send: false`), except the account.application.deauthorized that says so. */
18
+ export function values(ctx, write, type) {
19
+ const id = write.body.id;
20
+ const kept = typeof id === 'string' ? ctx.rowsRaw(write.storedType, { withDeleted: true }).find((r) => r.id === id)?._account : undefined;
21
+ const account = write.request?.headers.get('stripe-account')
22
+ ?? (write.storedType === 'account' && typeof id === 'string' && id !== PLATFORM_ACCOUNT_ID ? id : undefined)
23
+ ?? (write.storedType === '_balance_notice' && typeof write.body.account === 'string' ? write.body.account : undefined)
24
+ ?? (typeof kept === 'string' ? kept : undefined);
25
+ return { $account: account, $version: eventVersion(write) };
26
+ }
27
+ /** The API version an event is rendered in: the one the writing request pinned, when it is one, else the served one. */
28
+ const eventVersion = (write) => {
29
+ const pinned = write.request?.headers.get('stripe-version');
30
+ return pinned && isValidApiVersion(pinned) ? pinned : TWIN_API_VERSION;
31
+ };
@@ -0,0 +1,2 @@
1
+ import type { Handler } from '@volter/world-core';
2
+ export declare const stripeSemantics: Record<string, Handler>;
@@ -0,0 +1,85 @@
1
+ import * as account from "./account.js";
2
+ import * as account_links from "./account_links.js";
3
+ import * as accounts from "./accounts.js";
4
+ import * as apps from "./apps.js";
5
+ import * as balance from "./balance.js";
6
+ import * as balance_transactions from "./balance_transactions.js";
7
+ import * as billing_portal from "./billing_portal.js";
8
+ import * as charges from "./charges.js";
9
+ import * as checkout from "./checkout.js";
10
+ import * as coupons from "./coupons.js";
11
+ import * as customers from "./customers.js";
12
+ import * as invoice_payments from "./invoice_payments.js";
13
+ import * as invoices from "./invoices.js";
14
+ import * as issuing from "./issuing.js";
15
+ import * as payment_intents from "./payment_intents.js";
16
+ import * as payment_methods from "./payment_methods.js";
17
+ import * as payouts from "./payouts.js";
18
+ import * as prices from "./prices.js";
19
+ import * as products from "./products.js";
20
+ import * as promotion_codes from "./promotion_codes.js";
21
+ import * as radar from "./radar.js";
22
+ import * as refunds from "./refunds.js";
23
+ import * as subscriptions from "./subscriptions.js";
24
+ import * as test_helpers from "./test_helpers.js";
25
+ import * as transfers from "./transfers.js";
26
+ import * as webhook_endpoints from "./webhook_endpoints.js";
27
+ export const stripeSemantics = {
28
+ DeleteSubscriptionsSubscriptionExposedId: subscriptions.DeleteSubscriptionsSubscriptionExposedId,
29
+ DeleteSubscriptionsSubscriptionExposedIdDiscount: subscriptions.DeleteSubscriptionsSubscriptionExposedIdDiscount,
30
+ GetAccount: account.GetAccount,
31
+ GetAccountsAccountExternalAccounts: accounts.GetAccountsAccountExternalAccounts,
32
+ GetAppsSecretsFind: apps.GetAppsSecretsFind,
33
+ GetBalance: balance.GetBalance,
34
+ GetBalanceTransactions: balance_transactions.GetBalanceTransactions,
35
+ GetBillingPortalConfigurations: billing_portal.GetBillingPortalConfigurations,
36
+ GetCharges: charges.GetCharges,
37
+ GetChargesCharge: charges.GetChargesCharge,
38
+ GetCheckoutSessionsSessionLineItems: checkout.GetCheckoutSessionsSessionLineItems,
39
+ GetCustomersCustomer: customers.GetCustomersCustomer,
40
+ GetCustomersSearch: customers.GetCustomersSearch,
41
+ GetInvoicePayments: invoice_payments.GetInvoicePayments,
42
+ GetInvoicesInvoice: invoices.GetInvoicesInvoice,
43
+ GetIssuingCardsCard: issuing.GetIssuingCardsCard,
44
+ GetPaymentMethodsPaymentMethod: payment_methods.GetPaymentMethodsPaymentMethod,
45
+ GetPayouts: payouts.GetPayouts,
46
+ GetPrices: prices.GetPrices,
47
+ GetPricesPrice: prices.GetPricesPrice,
48
+ GetProducts: products.GetProducts,
49
+ GetPromotionCodes: promotion_codes.GetPromotionCodes,
50
+ GetSubscriptions: subscriptions.GetSubscriptions,
51
+ GetSubscriptionsSubscriptionExposedId: subscriptions.GetSubscriptionsSubscriptionExposedId,
52
+ PostAccountLinks: account_links.PostAccountLinks,
53
+ PostAccounts: accounts.PostAccounts,
54
+ PostAccountsAccountLoginLinks: accounts.PostAccountsAccountLoginLinks,
55
+ PostAppsSecrets: apps.PostAppsSecrets,
56
+ PostAppsSecretsDelete: apps.PostAppsSecretsDelete,
57
+ PostBillingPortalConfigurations: billing_portal.PostBillingPortalConfigurations,
58
+ PostBillingPortalSessions: billing_portal.PostBillingPortalSessions,
59
+ PostCheckoutSessions: checkout.PostCheckoutSessions,
60
+ PostCoupons: coupons.PostCoupons,
61
+ PostCustomers: customers.PostCustomers,
62
+ PostCustomersCustomer: customers.PostCustomersCustomer,
63
+ PostInvoices: invoices.PostInvoices,
64
+ PostInvoicesCreatePreview: invoices.PostInvoicesCreatePreview,
65
+ PostInvoicesInvoicePay: invoices.PostInvoicesInvoicePay,
66
+ PostInvoicesInvoiceVoid: invoices.PostInvoicesInvoiceVoid,
67
+ PostIssuingAuthorizationsAuthorizationApprove: issuing.PostIssuingAuthorizationsAuthorizationApprove,
68
+ PostIssuingAuthorizationsAuthorizationDecline: issuing.PostIssuingAuthorizationsAuthorizationDecline,
69
+ PostIssuingCards: issuing.PostIssuingCards,
70
+ PostIssuingCardsCard: issuing.PostIssuingCardsCard,
71
+ PostPaymentIntents: payment_intents.PostPaymentIntents,
72
+ PostPaymentIntentsIntentCancel: payment_intents.PostPaymentIntentsIntentCancel,
73
+ PostPaymentMethodsPaymentMethodDetach: payment_methods.PostPaymentMethodsPaymentMethodDetach,
74
+ PostPayouts: payouts.PostPayouts,
75
+ PostPrices: prices.PostPrices,
76
+ PostProducts: products.PostProducts,
77
+ PostPromotionCodes: promotion_codes.PostPromotionCodes,
78
+ PostRadarValueListItems: radar.PostRadarValueListItems,
79
+ PostRefunds: refunds.PostRefunds,
80
+ PostSubscriptionsSubscriptionExposedId: subscriptions.PostSubscriptionsSubscriptionExposedId,
81
+ PostTestHelpersIssuingAuthorizations: test_helpers.PostTestHelpersIssuingAuthorizations,
82
+ PostTestHelpersIssuingAuthorizationsAuthorizationCapture: test_helpers.PostTestHelpersIssuingAuthorizationsAuthorizationCapture,
83
+ PostTransfers: transfers.PostTransfers,
84
+ PostWebhookEndpoints: webhook_endpoints.PostWebhookEndpoints,
85
+ };
@@ -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
+ }
@@ -1,18 +1,11 @@
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 GetInvoicesInvoice(ctx: HandlerContext): Promise<Response>;
3
+ export declare function PostInvoicesInvoicePay(ctx: HandlerContext): Promise<Response>;
4
+ export declare function PostInvoicesInvoiceVoid(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 an update's unused-time credit and remaining-time charge at the old and new prices.
10
+ */
11
+ export declare function PostInvoicesCreatePreview(ctx: HandlerContext): Promise<Response>;