@volter/twin-stripe 2.0.37 → 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,85 +0,0 @@
1
- // Webhook endpoint semantics: registering a URL and the events it subscribes to. Delivery reads
2
- // the endpoints from the tree, signing each POST with the endpoint's own secret; a disabled one
3
- // (the machine in ../manifest.ts) receives nothing. Endpoint list, retrieve and delete are the derived core's.
4
- //
5
- // The Events API lists and retrieves the stored events of the account a request acts for: an event of a connected
6
- // account carries it ("Each event for a connected account contains a top-level `account` property that identifies the
7
- // connected account. Because the connected account owns the object that triggered the event, you must make API
8
- // requests for that object as the connected account", docs.stripe.com/connect/webhooks; the event's `account`: "The
9
- // connected account that originates the event", spec/openapi.json.gz), so a request with the Stripe-Account header
10
- // sees that account's events and one without it the platform's, those with no `account`. Where the documentation
11
- // stops and the twin decides: a platform request does not see its connected accounts' events.
12
- import { worldEnvValue } from '@volter/world-core';
13
- import { asBool } from "../stripe-twin.js";
14
- import { actingAccount } from "./ledger.js";
15
- import { at, created, fail, inRange, list, newest, where } from "./shared.js";
16
- const WE = 'webhook_endpoint';
17
- // The signing secret is the World's where the World set one. Stripe mints an endpoint's secret and the app is given it
18
- // (the dashboard, `stripe listen`); in a World the app's env is the World's, made at boot, so the World's value is the
19
- // one the app verifies with, and an endpoint the app registers is signed with it: the twin's decision, since Stripe
20
- // lets no one choose a secret. A Connect endpoint (`connect`) takes a Connect name first. Only a value the World sets
21
- // counts (worldEnvValue), never one the caller's shell passes through; with none (a twin outside a World) the twin
22
- // mints, as Stripe does.
23
- const ACCOUNT_SECRET_ENV = ['STRIPE_WEBHOOK_SECRET', 'STRIPE_WEBHOOK_SIGNING_SECRET', 'STRIPE_ENDPOINT_SECRET', 'STRIPE_WEBHOOK_SECRET_KEY', 'NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET'];
24
- const CONNECT_SECRET_ENV = ['STRIPE_CONNECT_WEBHOOK_SECRET', 'STRIPE_WEBHOOK_SECRET_CONNECT', 'STRIPE_CONNECT_WEBHOOK_SIGNING_SECRET'];
25
- export function worldEndpointSecret(connect) {
26
- for (const name of connect ? [...CONNECT_SECRET_ENV, ...ACCOUNT_SECRET_ENV] : ACCOUNT_SECRET_ENV) {
27
- const value = worldEnvValue(name);
28
- if (value)
29
- return value;
30
- }
31
- return undefined;
32
- }
33
- const create = async (ctx) => {
34
- const params = ctx.params;
35
- const url = typeof params.url === 'string' ? params.url : '';
36
- if (!url)
37
- return fail(ctx, 'Missing required param: url.', 400, 'parameter_missing');
38
- const enabledEvents = Array.isArray(params.enabled_events) ? params.enabled_events.map(String) : typeof params.enabled_events === 'string' ? [params.enabled_events] : undefined;
39
- if (!enabledEvents || enabledEvents.length === 0)
40
- return fail(ctx, 'Missing required param: enabled_events.', 400, 'parameter_missing');
41
- const id = ctx.mint(WE);
42
- return ctx.reply(await created(ctx, WE, { ...params, id }, {
43
- url, enabled_events: enabledEvents, status: 'enabled', livemode: false, metadata: {},
44
- api_version: '2024-06-20', application: null, description: typeof params.description === 'string' ? params.description : null,
45
- secret: worldEndpointSecret(asBool(params.connect)) ?? `whsec_twin_${id}`,
46
- }));
47
- };
48
- // `disabled` switches delivery off (status disabled) and back on; it is a parameter, not a field
49
- const update = async (ctx) => {
50
- const id = at(ctx, 'webhook_endpoint');
51
- const we = ctx.get(WE, id);
52
- if (!we)
53
- return ctx.notFound(WE, id);
54
- const { disabled, ...fields } = { ...ctx.params };
55
- if (Array.isArray(ctx.params.enabled_events))
56
- fields.enabled_events = ctx.params.enabled_events.map(String);
57
- if (disabled !== undefined)
58
- return switchDelivery(ctx, id, we, fields, asBool(disabled));
59
- return ctx.reply(await ctx.write(WE, id, fields, 'webhook_endpoint.update'));
60
- };
61
- /** `disabled` switches delivery off or back on (docs.stripe.com/api/webhook_endpoints/update#update_webhook_endpoint-disabled). */
62
- async function switchDelivery(ctx, id, we, fields, off) {
63
- const status = off ? 'disabled' : 'enabled';
64
- const refused = ctx.legal(WE, 'status', 'PostWebhookEndpointsWebhookEndpoint', we.status, status, id);
65
- if (refused)
66
- return ctx.refuse(refused);
67
- return ctx.reply(await ctx.write(WE, id, { ...fields, status }, 'webhook_endpoint.update'));
68
- }
69
- /** Whether a stored event is the acting account's (no `account`: the platform's). */
70
- const ownEvent = (ctx, e) => (typeof e.account === 'string' ? e.account : undefined) === actingAccount(ctx);
71
- const listEvents = async (ctx) => list(ctx, 'event', where(ctx, newest(ctx, 'event').filter((e) => ownEvent(ctx, e)), {
72
- type: (e, v) => e.type === v,
73
- types: (e, v) => (Array.isArray(v) ? v.map(String) : [String(v)]).includes(String(e.type)),
74
- created: (e, v) => inRange(e.created, v),
75
- }));
76
- const retrieveEvent = async (ctx) => {
77
- const e = ctx.get('event', at(ctx, 'id'));
78
- return e && ownEvent(ctx, e) ? ctx.reply(e) : ctx.notFound('event', at(ctx, 'id'));
79
- };
80
- export const webhookEndpoints = {
81
- GetEvents: listEvents,
82
- GetEventsId: retrieveEvent,
83
- PostWebhookEndpoints: create,
84
- PostWebhookEndpointsWebhookEndpoint: update,
85
- };
@@ -1,55 +0,0 @@
1
- import { RateBudget, type RateBudgetDeclaration, type RateBudgetOptions, type RateBudgetReservation, type RateBudgetSnapshot } from '@volter/world-core';
2
- /** Rolling window, in ms. Spend older than this is pruned. */
3
- export declare const STRIPE_BUDGET_WINDOW_MS = 60000;
4
- /**
5
- * Weighted units allowed inside one window. 120/60s = 120 reads a minute (2/second) — 2% of
6
- * Stripe's documented live-mode 100/second and 8% of the 25/second a sandbox key or any single
7
- * endpoint gets.
8
- */
9
- export declare const STRIPE_BUDGET_CEILING = 120;
10
- /** Seconds. A `Retry-After` above this means the key is throttled hard — fail loudly, don't sleep. */
11
- export declare const STRIPE_BUDGET_MAX_RETRY_AFTER_S = 300;
12
- /** Per-call cost, keyed by `"<METHOD> <path>"`. See the header for what is documented vs. judged. */
13
- export declare const STRIPE_CALL_WEIGHTS: {
14
- /** `POST /v1/payouts` — documented at 15 creates/second, and the most irreversible object here. */
15
- readonly payout: 5;
16
- /** Any other `POST`/`DELETE` — creates charges, refunds, subscriptions, receipt e-mail. */
17
- readonly write: 2;
18
- /** Reads: list/retrieve. */
19
- readonly other: 1;
20
- };
21
- /** THE PACK'S DECLARATION — pure data, the only Stripe-specific thing in the whole budget. */
22
- export declare const STRIPE_RATE_BUDGET: RateBudgetDeclaration;
23
- /**
24
- * Price one call. The key is `"<METHOD> <path>"` — Stripe's executor carries filters as separate
25
- * `params` rather than in the path, so there is no query string to split off here; a `?` is still
26
- * handled defensively in case a caller inlines one. An unclassified endpoint costs `defaultWeight`.
27
- */
28
- export declare function stripeCallWeight(method: string, path: string): number;
29
- /** Where Stripe's ledger lives. Key-keyed and cwd-independent by default (limits attach to the
30
- * account behind the secret key, so a cwd-scoped ledger would hand the same key a fresh allowance
31
- * in every checkout, worktree and CI matrix leg); pass `root` for world-scoped accounting.
32
- *
33
- * A live key and a test key are different strings, so they get different ledgers — which matches
34
- * Stripe, whose live and sandbox limits are separate (100/s vs 25/s). */
35
- export declare function stripeBudgetPath(opts?: {
36
- root?: string;
37
- token?: string;
38
- } | string): string;
39
- /** Construction options for Stripe's budget. The vendor is fixed; everything else may only TIGHTEN. */
40
- export type StripeBudgetOptions = Omit<RateBudgetOptions, 'vendor'>;
41
- /**
42
- * Stripe's budget — the shared kernel guard bound to this vendor's declaration. A real subclass,
43
- * not an alias, so `budget instanceof StripeBudget` in `liveStripeExecute` means "a budget that
44
- * accounts against STRIPE's ledger under STRIPE's ceiling": another vendor's `RateBudget` (with its
45
- * own, possibly larger, ceiling) is NOT assignable there.
46
- */
47
- export declare class StripeBudget extends RateBudget {
48
- constructor(opts?: StripeBudgetOptions);
49
- }
50
- /** The typed refusal. One error class shared with every other vendor's budget; `err.vendor` says
51
- * which one refused, and `err.kind` says why. */
52
- export { RateBudgetError as StripeBudgetError } from '@volter/world-core';
53
- export type { RateBudgetErrorKind as StripeBudgetErrorKind } from '@volter/world-core';
54
- export type StripeBudgetReservation = RateBudgetReservation;
55
- export type StripeBudgetSnapshot = RateBudgetSnapshot;
@@ -1,155 +0,0 @@
1
- // Stripe's CLIENT-SIDE RATE BUDGET — the pack's DECLARATION (the numbers) plus the thin typed
2
- // bindings `liveStripeExecute` uses. The MECHANISM — the durable token-keyed ledger, the rolling
3
- // window, reserve-under-lock, the `Retry-After`/429 cooldown, fail-CLOSED on a corrupt ledger —
4
- // lives ONCE in the vendor-agnostic kernel (`@volter/world-core` → `rateBudget.ts`). Read that module's
5
- // header for the full rationale AND for the honest list of what the guard does not guarantee (an
6
- // injected clock or ledger path still defeats it — it guards carelessness, not malice).
7
- //
8
- // ── WHY THIS EXISTS ─────────────────────────────────────────────────────────────────────────
9
- // A real ~4.5-DAY vendor lockout (Figma, 2026-07-25) happened because raw API calls were made
10
- // outside the pack's connector — no cache, no batching, no ceiling. Discipline only binds the code
11
- // that follows it; a BUDGET binds the code that does not. Stripe is the pack where a runaway loop
12
- // is not merely rude: its writes MOVE MONEY.
13
- //
14
- // ── HOW THE CEILING WAS CHOSEN ──────────────────────────────────────────────────────────────
15
- // Stripe DOES publish scalar limits, so this models the real thing rather than guessing. From
16
- // https://docs.stripe.com/rate-limits (read 2026-07-26):
17
- // • live mode: 100 requests/second
18
- // • sandbox (test mode): 25 requests/second
19
- // • an individual endpoint: 25 requests/second unless noted otherwise
20
- // • Payouts, create: 15 requests/second
21
- // • Subscriptions: 10 new invoices per subscription per minute
22
- // • Payment Intents: 1,000 update requests per PaymentIntent per hour
23
- // Over the limit: 429, with a `Stripe-Rate-Limited-Reason` header naming which limit was hit.
24
- //
25
- // The ceiling is 120 weighted units per 60s — 120 calls a minute, i.e. 2 requests/second at the
26
- // default weight. That is 2% of the live-mode 100/s and 8% of the tightest general limit (25/s,
27
- // which is what a sandbox key and any single endpoint get). It is more permissive than the kernel's
28
- // undeclared fallback (30 calls/min) precisely because those limits are documented and are one to
29
- // three ORDERS of magnitude higher; without them it would not be.
30
- //
31
- // It bounds the 60-second AVERAGE; it does NOT pace (the kernel refuses, it never sleeps — see its
32
- // header). Stripe's own window is a SECOND, so a tight loop can legitimately fire all 120 inside
33
- // one second here — 120 req/s, above the sandbox 25/s — and in that shape Stripe's 429 arrives
34
- // before this ceiling does. The backstop is then the cooldown: the guard reads the 429 off the
35
- // response and refuses every later call without touching Stripe. The honest claim is therefore
36
- // "bounds the minute, and converts Stripe's first 429 into a hard stop", not "refuses before Stripe
37
- // ever 429s". Pacing is the caller's job; this is the ceiling underneath it.
38
- //
39
- // ── HOW THE WEIGHTS WERE CHOSEN ─────────────────────────────────────────────────────────────
40
- // • `POST` / `DELETE` cost 2. Stripe counts them the same as a read, so this is NOT a published
41
- // ratio — it is a judgement call about blast radius: a write creates a charge, a refund, a
42
- // subscription or a receipt e-mail, and unlike a read it cannot be taken back. Halving the rate
43
- // at which a runaway loop can do that is worth the cost to a legitimate push, which is small
44
- // (a push is a handful of writes).
45
- // • `POST /v1/payouts` costs 5, because Stripe documents payout creation at 15/second — six times
46
- // tighter than live mode's 100/s — and a payout is the single most irreversible object in the
47
- // API. At weight 5 at most 24 land in a window: 0.4/s against a documented 15/s.
48
- import { declareRateBudget, rateBudgetPath, rateBudgetWeight, RateBudget, } from '@volter/world-core';
49
- const VENDOR = 'stripe';
50
- /** Rolling window, in ms. Spend older than this is pruned. */
51
- export const STRIPE_BUDGET_WINDOW_MS = 60_000;
52
- /**
53
- * Weighted units allowed inside one window. 120/60s = 120 reads a minute (2/second) — 2% of
54
- * Stripe's documented live-mode 100/second and 8% of the 25/second a sandbox key or any single
55
- * endpoint gets.
56
- */
57
- export const STRIPE_BUDGET_CEILING = 120;
58
- /** Seconds. A `Retry-After` above this means the key is throttled hard — fail loudly, don't sleep. */
59
- export const STRIPE_BUDGET_MAX_RETRY_AFTER_S = 300;
60
- /** Per-call cost, keyed by `"<METHOD> <path>"`. See the header for what is documented vs. judged. */
61
- export const STRIPE_CALL_WEIGHTS = {
62
- /** `POST /v1/payouts` — documented at 15 creates/second, and the most irreversible object here. */
63
- payout: 5,
64
- /** Any other `POST`/`DELETE` — creates charges, refunds, subscriptions, receipt e-mail. */
65
- write: 2,
66
- /** Reads: list/retrieve. */
67
- other: 1,
68
- };
69
- /** THE PACK'S DECLARATION — pure data, the only Stripe-specific thing in the whole budget. */
70
- export const STRIPE_RATE_BUDGET = {
71
- windowMs: STRIPE_BUDGET_WINDOW_MS,
72
- ceiling: STRIPE_BUDGET_CEILING,
73
- defaultWeight: STRIPE_CALL_WEIGHTS.other,
74
- maxRetryAfterSeconds: STRIPE_BUDGET_MAX_RETRY_AFTER_S,
75
- rules: [
76
- { match: '^POST /v1/payouts$', weight: STRIPE_CALL_WEIGHTS.payout },
77
- { match: '^(POST|DELETE) ', weight: STRIPE_CALL_WEIGHTS.write },
78
- ],
79
- reason: 'Stripe documents scalar limits (docs.stripe.com/rate-limits, read 2026-07-26): 100 requests/' +
80
- 'second in live mode, 25/second in sandbox, 25/second for an individual endpoint unless noted, ' +
81
- '15 payout creates/second, 10 new invoices per subscription per minute, 1,000 PaymentIntent ' +
82
- 'updates per intent per hour; over it, 429 with a Stripe-Rate-Limited-Reason header. 120 ' +
83
- 'weighted units / 60s is 120 reads a minute = 2 requests/second — 2% of live mode and 8% of the ' +
84
- "tightest general limit. It is more permissive than the kernel's undeclared fallback (30 calls/" +
85
- 'min) BECAUSE those documented limits are one to three orders of magnitude higher. POST/DELETE ' +
86
- 'cost 2 — NOT a published ratio, a judgement call about blast radius: a write creates a charge, ' +
87
- 'refund or receipt e-mail and cannot be taken back. POST /v1/payouts costs 5 because Stripe ' +
88
- 'documents payout creation at 15/second, six times tighter than live mode. The window bounds the ' +
89
- "60s AVERAGE and does not pace, and Stripe's own window is a SECOND, so an intra-second burst " +
90
- "reaches Stripe's limiter first — the 429 cooldown is the backstop for that shape, not this " +
91
- 'ceiling.',
92
- };
93
- // Declared at module load, so merely importing this module (which `stripe-connector.ts` does) is
94
- // enough to arm the real ceiling. `RateBudget` reads its policy live precisely so this declaration
95
- // takes effect the moment it lands, and constructing through the subclass below (which imports this
96
- // module) is what makes the ordering a non-issue in practice.
97
- declareRateBudget(VENDOR, STRIPE_RATE_BUDGET);
98
- /**
99
- * Price one call. The key is `"<METHOD> <path>"` — Stripe's executor carries filters as separate
100
- * `params` rather than in the path, so there is no query string to split off here; a `?` is still
101
- * handled defensively in case a caller inlines one. An unclassified endpoint costs `defaultWeight`.
102
- */
103
- export function stripeCallWeight(method, path) {
104
- const { bare, query } = splitQuery(path);
105
- // UPPER-CASE the method: `fetch` normalizes a known lowercase method before sending, so
106
- // `execute('post', …)` really does issue a POST and must be priced as one.
107
- return rateBudgetWeight(VENDOR, `${String(method).toUpperCase()} ${bare}`, query);
108
- }
109
- /**
110
- * `/v1/x?a=1` -> `{ bare: '/v1/x', query: { a: '1' } }`. Rules match the path; `whenQuery*` the query.
111
- *
112
- * NORMALIZED, because the anchored rules are otherwise trivially evaded (§9 finding, 2026-07-26):
113
- * `fetch` upper-cases a known method before sending, so `execute('post', …)` issues a real WRITE
114
- * that a `^POST ` rule would price as a read; and a trailing slash makes a path miss a `$` anchor
115
- * while most routers treat it as the same endpoint. Both are input variations, not attacks, and
116
- * either one silently voids the "expensive endpoints are priced up" claim the ceiling rests on.
117
- */
118
- function splitQuery(path) {
119
- const at = path.indexOf('?');
120
- const query = {};
121
- if (at !== -1)
122
- for (const [k, v] of new URLSearchParams(path.slice(at + 1)))
123
- query[k] = v;
124
- const raw = at === -1 ? path : path.slice(0, at);
125
- // Collapse a trailing slash, but never turn the root path into the empty string.
126
- const bare = raw.length > 1 && raw.endsWith('/') ? raw.replace(/\/+$/, '') : raw;
127
- return { bare, query };
128
- }
129
- /** Where Stripe's ledger lives. Key-keyed and cwd-independent by default (limits attach to the
130
- * account behind the secret key, so a cwd-scoped ledger would hand the same key a fresh allowance
131
- * in every checkout, worktree and CI matrix leg); pass `root` for world-scoped accounting.
132
- *
133
- * A live key and a test key are different strings, so they get different ledgers — which matches
134
- * Stripe, whose live and sandbox limits are separate (100/s vs 25/s). */
135
- export function stripeBudgetPath(opts = {}) {
136
- const o = typeof opts === 'string' ? { root: opts } : opts;
137
- // VENDOR spread LAST: a loosely-typed `{ vendor: 'other', … }` slipping through (TypeScript's
138
- // excess-property check only catches object literals) must not redirect this pack's ledger to
139
- // another vendor's file.
140
- return rateBudgetPath({ ...o, vendor: VENDOR });
141
- }
142
- /**
143
- * Stripe's budget — the shared kernel guard bound to this vendor's declaration. A real subclass,
144
- * not an alias, so `budget instanceof StripeBudget` in `liveStripeExecute` means "a budget that
145
- * accounts against STRIPE's ledger under STRIPE's ceiling": another vendor's `RateBudget` (with its
146
- * own, possibly larger, ceiling) is NOT assignable there.
147
- */
148
- export class StripeBudget extends RateBudget {
149
- constructor(opts = {}) {
150
- super({ ...opts, vendor: VENDOR });
151
- }
152
- }
153
- /** The typed refusal. One error class shared with every other vendor's budget; `err.vendor` says
154
- * which one refused, and `err.kind` says why. */
155
- export { RateBudgetError as StripeBudgetError } from '@volter/world-core';
@@ -1,3 +0,0 @@
1
- import { type CapabilityReport, type CapabilitySpec } from '@volter/world-tooling';
2
- export declare const STRIPE_CAPABILITIES: CapabilitySpec[];
3
- export declare function stripeCapabilities(): Promise<CapabilityReport>;