@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
@@ -2,8 +2,6 @@
2
2
  export declare const SERVED_VERSION: string;
3
3
  /** Whether a request is answered in the served version's shape. */
4
4
  export declare const servesCurrent: (pinned?: string | null) => boolean;
5
- /** Every includable field name, as `expand` paths on a top-level object: what a check of an object's FULL answer expands. */
6
- export declare const INCLUDABLE_FIELDS: string[];
7
5
  /** The `expand[]` paths a request names, in its query or its body (JSON or form). */
8
6
  export declare function expandOf(request: Request): Promise<string[]>;
9
7
  /** An answer with every webhook endpoint's `secret` left out: Stripe answers it only when the endpoint is created. */
@@ -8,16 +8,20 @@
8
8
  // Where the evidence stops: the changes below are the ones between the kept shape and the vendored spec that
9
9
  // the pack's journeys reach, each from Stripe's changelog for basil (docs.stripe.com/changelog/basil); a version
10
10
  // pinned between basil and the spec's is rendered in the spec's shape, not its own.
11
- import surface from './generated/surface.gen.json' with { type: 'json' };
11
+ import surface from '../generated/surface.gen.json' with { type: 'json' };
12
12
  /** The version the pack serves: its vendored spec's. */
13
13
  export const SERVED_VERSION = String(surface.version);
14
14
  const BASIL = '2025-03-31';
15
+ const CLOVER = '2025-09-30';
15
16
  /** Whether a request is answered in the served version's shape. */
16
17
  export const servesCurrent = (pinned) => !pinned || pinned >= BASIL;
17
18
  // What the twin keeps on an object for its rules that Stripe never answers: request parameters (a capture
18
19
  // flag, the payment behavior a subscription was created with) and links it follows internally.
19
20
  const KEPT = {
20
21
  account: ['livemode'],
22
+ // source: spec:PostWebhookEndpoints "Whether this endpoint should receive events from connected accounts"
23
+ // connect configures event delivery; it is not a WebhookEndpoint response field.
24
+ webhook_endpoint: ['connect'],
21
25
  // a meter event is identified by its identifier; the twin's row id is its own
22
26
  'billing.meter_event': ['id'],
23
27
  // a card source's creation time is the twin's, for ordering
@@ -32,7 +36,7 @@ const KEPT = {
32
36
  payment_intent: ['mandate', 'off_session'],
33
37
  subscription: ['payment_behavior'],
34
38
  subscription_item: ['livemode'],
35
- subscription_schedule: ['from_subscription', 'renewal_interval'],
39
+ subscription_schedule: ['from_subscription', 'renewal_interval', 'proration_behavior'],
36
40
  'tax.transaction': ['calculation'],
37
41
  'terminal.reader': ['registration_code'],
38
42
  topup: ['destination_balance'],
@@ -58,9 +62,8 @@ const BASIL_CHANGES = {
58
62
  const parent = o.parent !== undefined ? o.parent : subscription ? { type: 'subscription_details', quote_details: null, subscription_details: { metadata: {}, subscription } } : null;
59
63
  // "confirmation_secret … Currently, this contains the client_secret of the PaymentIntent that Stripe creates during
60
64
  // invoice finalization" (docs.stripe.com/api/invoices/object; includable, answered only when expanded: INCLUDABLE);
61
- // the intent's client_secret is the one stripe-twin.ts mintClientSecret gives it
62
- const intent = typeof o.payment_intent === 'string' && o.payment_intent ? o.payment_intent : null;
63
- const confirmation_secret = intent ? { type: 'payment_intent', client_secret: `${intent}_secret_twin` } : null;
65
+ // the intent's client_secret is the one ./stripe.ts mintClientSecret gives it
66
+ const confirmation_secret = o.confirmation_secret ?? null;
64
67
  return { ...omit(o, ['payment_intent', 'charge', 'paid', 'paid_out_of_band', 'subscription']), parent, confirmation_secret };
65
68
  },
66
69
  charge: (o) => omit(o, ['invoice', 'source']),
@@ -221,8 +224,6 @@ const INCLUDABLE = {
221
224
  // request it with the `expand` request parameter))"
222
225
  invoice: ['confirmation_secret'],
223
226
  };
224
- /** Every includable field name, as `expand` paths on a top-level object: what a check of an object's FULL answer expands. */
225
- export const INCLUDABLE_FIELDS = [...new Set(Object.values(INCLUDABLE).flat())];
226
227
  /** The `expand[]` paths a request names, in its query or its body (JSON or form). */
227
228
  export async function expandOf(request) {
228
229
  const url = new URL(request.url);
@@ -277,11 +278,22 @@ export function render(value, pinned, expand = []) {
277
278
  return o;
278
279
  // metadata holds strings ("key-value pairs", each value up to 500 characters, docs.stripe.com/metadata); the form
279
280
  // reader coerces a numeric-looking value to a number, which the answer gives back as the string it was sent as
281
+ // reads the same, and a key posted "" to remove it is not there (../semantics/shared.ts withMetadata)
280
282
  if (o.metadata && typeof o.metadata === 'object' && !Array.isArray(o.metadata))
281
- o.metadata = Object.fromEntries(Object.entries(o.metadata).map(([k, v]) => [k, typeof v === 'number' || typeof v === 'boolean' ? String(v) : v]));
283
+ o.metadata = Object.fromEntries(Object.entries(o.metadata).filter(([, v]) => v !== '').map(([k, v]) => [k, typeof v === 'number' || typeof v === 'boolean' ? String(v) : v]));
284
+ // source: spec:/components/schemas/checkout.session/properties/ui_mode "Defaults to `hosted_page`."
285
+ // Endive names hosted/custom Checkout hosted_page/elements; older SDK versions keep their own names.
286
+ if (kind === 'checkout.session' && (!pinned || pinned >= '2026-09-30')) {
287
+ if (o.ui_mode === 'hosted')
288
+ o.ui_mode = 'hosted_page';
289
+ if (o.ui_mode === 'custom')
290
+ o.ui_mode = 'elements';
291
+ }
282
292
  const kept = KEPT[kind] ? omit(o, KEPT[kind]) : o;
283
293
  // an includable field a version's change adds (an invoice's confirmation_secret) is hidden as its stored ones are
284
- return omit(withNulls(BASIL_CHANGES[kind] ? BASIL_CHANGES[kind](kept) : kept, kind), hidden);
294
+ // source: https://docs.stripe.com/changelog/clover/2025-09-30/polymorphic-coupon "Moves the top-level coupon field on Promotion Codes to promotion.coupon"
295
+ const changed = kind === 'promotion_code' && pinned && pinned < CLOVER ? omit(kept, ['promotion']) : BASIL_CHANGES[kind] ? BASIL_CHANGES[kind](kept) : kept;
296
+ return omit(withNulls(changed, kind), hidden);
285
297
  };
286
298
  return walk(value);
287
299
  }
@@ -0,0 +1 @@
1
+ export declare const WE = "webhook_endpoint";
@@ -0,0 +1,12 @@
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
+ export const WE = 'webhook_endpoint';
@@ -0,0 +1,31 @@
1
+ /** Every event type Stripe's spec enumerates: a write whose operation is one sends it, and `<resource>.create`,
2
+ * `.update` and `.delete` send `<resource>.created`, `.updated` and `.deleted` when Stripe has that type. */
3
+ export declare const STRIPE_EVENT_TYPES: ReadonlyArray<string>;
4
+ /** The writes whose event is named otherwise than by their resource (the rest are STRIPE_EVENT_TYPES'). A refund sends
5
+ * `refund.created` for the Refund; the charge's own write is recorded as `charge.refunded`, the charge with its new
6
+ * totals. `issuing_authorization.request` is no write's: it is asked of the endpoint (askForAuthorization). */
7
+ export declare const NAMED_EVENTS: Record<string, string>;
8
+ /** Whether an endpoint's `enabled_events` takes a type: `*` takes all, `<family>.*` the family, else the type itself. */
9
+ export declare function stripeEventMatches(enabledEvents: unknown, type: string): boolean;
10
+ /** A `Stripe-Signature` header: HMAC-SHA256 over `${timestamp}.${payload}` keyed by the endpoint's secret, as
11
+ * `t=<unix>,v1=<hex>` (docs.stripe.com/webhooks#verify-manually). */
12
+ export declare const stripeSignature: (payload: string, secret: string, timestamp: number) => string;
13
+ export declare const STRIPE_REALTIME_AUTH_TIMEOUT_MS = 2000;
14
+ export type StripeAuthRequestOutcome = {
15
+ kind: 'approved';
16
+ amount?: number;
17
+ } | {
18
+ kind: 'declined';
19
+ } | {
20
+ kind: 'timeout';
21
+ message: string;
22
+ } | {
23
+ kind: 'error';
24
+ message: string;
25
+ };
26
+ /** The endpoint's answer read as the decision: `approved` (and an optional `amount`), or an error for an answer Stripe
27
+ * cannot read. */
28
+ export declare function readDecision(res: {
29
+ status: number;
30
+ body: string;
31
+ }): StripeAuthRequestOutcome;
@@ -0,0 +1,68 @@
1
+ // Stripe's events as its handlers and its declared `events` need them (the kernel renders, stores, signs and delivers
2
+ // every event a write sends: ../manifest.ts `events`, ../semantics/shared.ts STRIPE_EVENTS): which write sends which
3
+ // event type, Stripe's own event types (the spec's list, ../generated/events.gen.json), and the one message Stripe decides
4
+ // by its receiver's answer, the real-time authorization request.
5
+ import { hmac } from '@volter/world-core';
6
+ import vendorEvents from '../generated/events.gen.json' with { type: 'json' };
7
+ /** Every event type Stripe's spec enumerates: a write whose operation is one sends it, and `<resource>.create`,
8
+ * `.update` and `.delete` send `<resource>.created`, `.updated` and `.deleted` when Stripe has that type. */
9
+ export const STRIPE_EVENT_TYPES = vendorEvents.types;
10
+ /** The writes whose event is named otherwise than by their resource (the rest are STRIPE_EVENT_TYPES'). A refund sends
11
+ * `refund.created` for the Refund; the charge's own write is recorded as `charge.refunded`, the charge with its new
12
+ * totals. `issuing_authorization.request` is no write's: it is asked of the endpoint (askForAuthorization). */
13
+ export const NAMED_EVENTS = {
14
+ 'payment_intent.confirm': 'payment_intent.succeeded',
15
+ 'payment_method.attach': 'payment_method.attached',
16
+ 'payment_method.detach': 'payment_method.detached',
17
+ 'setup_intent.confirm': 'setup_intent.succeeded',
18
+ 'subscription.create': 'customer.subscription.created',
19
+ 'subscription.update': 'customer.subscription.updated',
20
+ 'subscription.cancel': 'customer.subscription.deleted',
21
+ 'invoice.finalize': 'invoice.finalized',
22
+ 'invoice.pay': 'invoice.paid',
23
+ 'invoice.void': 'invoice.voided',
24
+ 'dispute.create': 'charge.dispute.created',
25
+ };
26
+ /** Whether an endpoint's `enabled_events` takes a type: `*` takes all, `<family>.*` the family, else the type itself. */
27
+ export function stripeEventMatches(enabledEvents, type) {
28
+ if (!Array.isArray(enabledEvents))
29
+ return false;
30
+ return enabledEvents.some((p) => {
31
+ const s = String(p);
32
+ return s === '*' || (s.endsWith('.*') && type.startsWith(s.slice(0, -1))) || s === type;
33
+ });
34
+ }
35
+ /** A `Stripe-Signature` header: HMAC-SHA256 over `${timestamp}.${payload}` keyed by the endpoint's secret, as
36
+ * `t=<unix>,v1=<hex>` (docs.stripe.com/webhooks#verify-manually). */
37
+ export const stripeSignature = (payload, secret, timestamp) => `t=${timestamp},v1=${hmac(secret, `${timestamp}.${payload}`)}`;
38
+ // ── Real-time authorization (issuing_authorization.request) ──────────────────────────────────────
39
+ // Stripe delivers issuing_authorization.request to the one enrolled endpoint while the card network holds the
40
+ // authorization open, and the endpoint must answer within Stripe's 2-second window ("This request should be made within
41
+ // the timeout window of the real-time authorization flow", stripe@22.3.0 Issuing/Authorizations.d.ts; the current method
42
+ // is to "respond directly to the webhook request to approve an authorization"). The answer's body carries the decision:
43
+ // a JSON object with a boolean `approved` (and, for an amount-controllable request, an optional integer `amount`).
44
+ // Outcomes map onto request_history.reason (stripe@22.3.0 RequestHistory.Reason): webhook_approved / webhook_declined,
45
+ // the endpoint answered in time; webhook_timeout, no answer inside the window (an unreachable endpoint too);
46
+ // webhook_error, "the direct webhook response is invalid (for example, parsing errors or missing parameters)": a
47
+ // non-2xx status, a body that is not JSON, or no `approved`.
48
+ export const STRIPE_REALTIME_AUTH_TIMEOUT_MS = 2_000;
49
+ /** The endpoint's answer read as the decision: `approved` (and an optional `amount`), or an error for an answer Stripe
50
+ * cannot read. */
51
+ export function readDecision(res) {
52
+ if (res.status < 200 || res.status >= 300)
53
+ return { kind: 'error', message: `Webhook endpoint responded with HTTP status ${res.status}.` };
54
+ let parsed;
55
+ try {
56
+ parsed = JSON.parse(res.body);
57
+ }
58
+ catch {
59
+ return { kind: 'error', message: 'Webhook response body was not valid JSON.' };
60
+ }
61
+ const approved = parsed?.approved;
62
+ if (typeof approved !== 'boolean')
63
+ return { kind: 'error', message: 'Webhook response is missing the required `approved` parameter.' };
64
+ if (!approved)
65
+ return { kind: 'declined' };
66
+ const amount = parsed.amount;
67
+ return { kind: 'approved', ...(typeof amount === 'number' && Number.isInteger(amount) && amount > 0 ? { amount } : {}) };
68
+ }
@@ -0,0 +1,2 @@
1
+ import { type DerivedFetch, type PackFetchOptions } from '@volter/world-core';
2
+ export declare function createStripeFetch(options?: PackFetchOptions): DerivedFetch;
@@ -0,0 +1,26 @@
1
+ // GENERATED by scripts/create-pack.ts (--init, --index): a fixed file. The kernel serves the discovery door, the clock,
2
+ // the World's doors, the vendor's screens and the API from the pack's parts (architecture, "The pack contract").
3
+ import { createPackFetch } from '@volter/world-core';
4
+ import surface from './generated/surface.gen.json' with { type: 'json' };
5
+ import { manifest } from "./manifest.js";
6
+ import { around } from "./semantics/around.js";
7
+ import { clock } from "./semantics/clock.js";
8
+ import * as doors from "./semantics/doors.js";
9
+ import { stripeSemantics } from "./semantics/index.js";
10
+ import { screen as screen_billing_portal } from "./screens/billing-portal.js";
11
+ import { screen as screen_checkout_js } from "./screens/checkout-js.js";
12
+ import { screen as screen_checkout } from "./screens/checkout.js";
13
+ import { screen as screen_connect_onboarding } from "./screens/connect-onboarding.js";
14
+ import { screen as screen_dashboard } from "./screens/dashboard.js";
15
+ import { screen as screen_stripe_js } from "./screens/stripe-js.js";
16
+ export function createStripeFetch(options = {}) {
17
+ return createPackFetch({
18
+ manifest,
19
+ surface: surface,
20
+ handlers: stripeSemantics,
21
+ doors,
22
+ around,
23
+ clock,
24
+ screens: { "billing-portal": screen_billing_portal, "checkout-js": screen_checkout_js, "checkout": screen_checkout, "connect-onboarding": screen_connect_onboarding, "dashboard": screen_dashboard, "stripe-js": screen_stripe_js },
25
+ }, options);
26
+ }