@volter/twin-stripe 2.0.38 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/README.md +82 -207
  2. package/dist/generated/pack-facts.json +94 -0
  3. package/dist/spec/SOURCE.md +14 -0
  4. package/dist/spec/fixtures3.json.gz +0 -0
  5. package/dist/spec/openapi.json.gz +0 -0
  6. package/dist/spec/patches.json +34 -0
  7. package/dist/spec/sources.json +378 -0
  8. package/dist/src/cli.js +12 -30
  9. package/dist/src/engine/after-payment.d.ts +9 -0
  10. package/dist/src/engine/after-payment.js +28 -0
  11. package/dist/src/engine/apps-secrets.d.ts +1 -0
  12. package/dist/src/engine/apps-secrets.js +3 -0
  13. package/dist/src/engine/balance.d.ts +5 -0
  14. package/dist/src/engine/balance.js +15 -0
  15. package/dist/src/engine/billing.d.ts +5 -0
  16. package/dist/src/engine/billing.js +6 -0
  17. package/dist/src/engine/charges.d.ts +6 -0
  18. package/dist/src/engine/charges.js +13 -0
  19. package/dist/src/engine/checkout.d.ts +24 -0
  20. package/dist/src/engine/checkout.js +30 -0
  21. package/dist/src/engine/common.d.ts +19 -0
  22. package/dist/src/engine/common.js +32 -0
  23. package/dist/src/{screens → engine}/connect-settings.d.ts +1 -7
  24. package/dist/src/engine/connect-settings.js +26 -0
  25. package/dist/src/engine/connect.d.ts +66 -0
  26. package/dist/src/engine/connect.js +189 -0
  27. package/dist/src/engine/coupons.d.ts +0 -0
  28. package/dist/src/engine/coupons.js +5 -0
  29. package/dist/src/engine/credit-notes.d.ts +1 -0
  30. package/dist/src/engine/credit-notes.js +5 -0
  31. package/dist/src/engine/customers.d.ts +12 -0
  32. package/dist/src/engine/customers.js +30 -0
  33. package/dist/src/engine/display.d.ts +14 -0
  34. package/dist/src/engine/display.js +16 -0
  35. package/dist/src/engine/disputes.d.ts +0 -0
  36. package/dist/src/engine/disputes.js +9 -0
  37. package/dist/src/engine/entitlements.d.ts +1 -0
  38. package/dist/src/engine/entitlements.js +4 -0
  39. package/dist/src/engine/ephemeral-keys.d.ts +0 -0
  40. package/dist/src/engine/ephemeral-keys.js +4 -0
  41. package/dist/src/engine/files.d.ts +18 -0
  42. package/dist/src/engine/files.js +33 -0
  43. package/dist/src/engine/front.d.ts +5 -0
  44. package/dist/src/engine/front.js +25 -0
  45. package/dist/src/engine/invoices.d.ts +24 -0
  46. package/dist/src/engine/invoices.js +57 -0
  47. package/dist/src/engine/issuing.d.ts +35 -0
  48. package/dist/src/engine/issuing.js +45 -0
  49. package/dist/src/engine/ledger.d.ts +9 -0
  50. package/dist/src/engine/ledger.js +9 -0
  51. package/dist/src/engine/oauth.d.ts +4 -0
  52. package/dist/src/engine/oauth.js +25 -0
  53. package/dist/src/engine/onboarding.d.ts +13 -0
  54. package/dist/src/engine/onboarding.js +42 -0
  55. package/dist/src/{stripe-params.d.ts → engine/params.d.ts} +20 -3
  56. package/dist/src/{stripe-params.js → engine/params.js} +7 -60
  57. package/dist/src/engine/payment-intents.d.ts +10 -0
  58. package/dist/src/engine/payment-intents.js +27 -0
  59. package/dist/src/engine/payment-links.d.ts +1 -0
  60. package/dist/src/engine/payment-links.js +5 -0
  61. package/dist/src/engine/payment-methods.d.ts +16 -0
  62. package/dist/src/engine/payment-methods.js +22 -0
  63. package/dist/src/engine/plans.d.ts +6 -0
  64. package/dist/src/engine/plans.js +26 -0
  65. package/dist/src/engine/platform.d.ts +39 -0
  66. package/dist/src/engine/platform.js +34 -0
  67. package/dist/src/engine/products.d.ts +0 -0
  68. package/dist/src/engine/products.js +4 -0
  69. package/dist/src/engine/radar.d.ts +2 -0
  70. package/dist/src/engine/radar.js +5 -0
  71. package/dist/src/engine/refunds.d.ts +1 -0
  72. package/dist/src/engine/refunds.js +28 -0
  73. package/dist/src/engine/renewals.d.ts +36 -0
  74. package/dist/src/engine/renewals.js +65 -0
  75. package/dist/src/engine/setup-intents.d.ts +1 -0
  76. package/dist/src/engine/setup-intents.js +4 -0
  77. package/dist/src/{stripe-twin.d.ts → engine/stripe.d.ts} +11 -39
  78. package/dist/src/{stripe-twin.js → engine/stripe.js} +25 -310
  79. package/dist/src/engine/subscription-schedules.d.ts +3 -0
  80. package/dist/src/engine/subscription-schedules.js +1 -0
  81. package/dist/src/engine/subscriptions.d.ts +12 -0
  82. package/dist/src/engine/subscriptions.js +31 -0
  83. package/dist/src/engine/tax.d.ts +7 -0
  84. package/dist/src/engine/tax.js +28 -0
  85. package/dist/src/engine/terminal.d.ts +4 -0
  86. package/dist/src/engine/terminal.js +20 -0
  87. package/dist/src/engine/test-clocks.d.ts +5 -0
  88. package/dist/src/engine/test-clocks.js +9 -0
  89. package/dist/src/engine/tokens.d.ts +7 -0
  90. package/dist/src/engine/tokens.js +20 -0
  91. package/dist/src/engine/transfers.d.ts +2 -0
  92. package/dist/src/engine/transfers.js +1 -0
  93. package/dist/src/engine/treasury.d.ts +23 -0
  94. package/dist/src/engine/treasury.js +45 -0
  95. package/dist/src/{stripe-version.js → engine/version.js} +4 -3
  96. package/dist/src/engine/webhook-endpoints.d.ts +1 -0
  97. package/dist/src/engine/webhook-endpoints.js +12 -0
  98. package/dist/src/engine/webhooks.d.ts +31 -0
  99. package/dist/src/engine/webhooks.js +68 -0
  100. package/dist/src/fetch.d.ts +2 -0
  101. package/dist/src/fetch.js +26 -0
  102. package/dist/src/generated/surface.gen.json +1 -1
  103. package/dist/src/generated/ui.gen.json +1 -1
  104. package/dist/src/index.d.ts +5 -14
  105. package/dist/src/index.js +8 -75
  106. package/dist/src/manifest.js +232 -758
  107. package/dist/src/screens/billing-portal.d.ts +3 -0
  108. package/dist/src/screens/{portal.js → billing-portal.js} +28 -54
  109. package/dist/src/screens/checkout.d.ts +2 -31
  110. package/dist/src/screens/checkout.js +32 -121
  111. package/dist/src/screens/connect-oauth.d.ts +3 -27
  112. package/dist/src/screens/connect-oauth.js +51 -132
  113. package/dist/src/screens/connect-onboarding.d.ts +3 -0
  114. package/dist/src/screens/{onboarding.js → connect-onboarding.js} +36 -102
  115. package/dist/src/screens/dashboard.d.ts +3 -0
  116. package/dist/src/screens/dashboard.js +117 -0
  117. package/dist/src/screens/shared.d.ts +27 -0
  118. package/dist/src/screens/shared.js +87 -0
  119. package/dist/src/screens/stripe-js.d.ts +3 -0
  120. package/dist/src/screens/stripe-js.js +135 -0
  121. package/dist/src/semantics/account_links.d.ts +2 -0
  122. package/dist/src/semantics/account_links.js +22 -0
  123. package/dist/src/semantics/accounts.d.ts +4 -0
  124. package/dist/src/semantics/accounts.js +38 -0
  125. package/dist/src/semantics/apps.d.ts +4 -0
  126. package/dist/src/semantics/{apps-secrets.js → apps.js} +14 -26
  127. package/dist/src/semantics/around.d.ts +2 -0
  128. package/dist/src/semantics/around.js +16 -0
  129. package/dist/src/semantics/balance.d.ts +2 -11
  130. package/dist/src/semantics/balance.js +3 -194
  131. package/dist/src/semantics/balance_transactions.d.ts +2 -0
  132. package/dist/src/semantics/balance_transactions.js +15 -0
  133. package/dist/src/semantics/billing_portal.d.ts +5 -0
  134. package/dist/src/semantics/billing_portal.js +42 -0
  135. package/dist/src/semantics/charges.d.ts +3 -28
  136. package/dist/src/semantics/charges.js +5 -202
  137. package/dist/src/semantics/checkout.d.ts +3 -20
  138. package/dist/src/semantics/checkout.js +8 -261
  139. package/dist/src/semantics/clock.d.ts +2 -0
  140. package/dist/src/semantics/clock.js +21 -0
  141. package/dist/src/semantics/coupons.d.ts +2 -6
  142. package/dist/src/semantics/coupons.js +2 -60
  143. package/dist/src/semantics/customers.d.ts +6 -6
  144. package/dist/src/semantics/customers.js +27 -387
  145. package/dist/src/semantics/disputes.d.ts +2 -2
  146. package/dist/src/semantics/disputes.js +3 -49
  147. package/dist/src/semantics/doors.d.ts +23 -0
  148. package/dist/src/semantics/doors.js +73 -0
  149. package/dist/src/semantics/entitlements.d.ts +2 -2
  150. package/dist/src/semantics/entitlements.js +5 -50
  151. package/dist/src/semantics/events.d.ts +12 -0
  152. package/dist/src/semantics/events.js +36 -0
  153. package/dist/src/semantics/index.d.ts +2 -0
  154. package/dist/src/semantics/index.js +107 -0
  155. package/dist/src/semantics/invoice_payments.d.ts +2 -0
  156. package/dist/src/semantics/invoice_payments.js +12 -0
  157. package/dist/src/semantics/invoiceitems.d.ts +3 -0
  158. package/dist/src/semantics/invoiceitems.js +59 -0
  159. package/dist/src/semantics/invoices.d.ts +16 -18
  160. package/dist/src/semantics/invoices.js +118 -444
  161. package/dist/src/semantics/payment_intents.d.ts +4 -0
  162. package/dist/src/semantics/payment_intents.js +79 -0
  163. package/dist/src/semantics/payment_methods.d.ts +5 -0
  164. package/dist/src/semantics/payment_methods.js +39 -0
  165. package/dist/src/semantics/payouts.d.ts +2 -0
  166. package/dist/src/semantics/payouts.js +21 -0
  167. package/dist/src/semantics/prices.d.ts +4 -0
  168. package/dist/src/semantics/prices.js +37 -0
  169. package/dist/src/semantics/products.d.ts +6 -2
  170. package/dist/src/semantics/products.js +15 -130
  171. package/dist/src/semantics/promotion_codes.d.ts +3 -0
  172. package/dist/src/semantics/promotion_codes.js +35 -0
  173. package/dist/src/semantics/radar.d.ts +2 -2
  174. package/dist/src/semantics/radar.js +5 -74
  175. package/dist/src/semantics/refunds.d.ts +3 -9
  176. package/dist/src/semantics/refunds.js +6 -192
  177. package/dist/src/semantics/setup_intents.d.ts +3 -0
  178. package/dist/src/semantics/{setup-intents.js → setup_intents.js} +10 -53
  179. package/dist/src/semantics/shared.d.ts +822 -47
  180. package/dist/src/semantics/shared.js +3044 -78
  181. package/dist/src/semantics/states.d.ts +531 -0
  182. package/dist/src/semantics/states.js +852 -0
  183. package/dist/src/semantics/subscription_items.d.ts +5 -0
  184. package/dist/src/semantics/subscription_items.js +55 -0
  185. package/dist/src/semantics/subscription_schedules.d.ts +4 -0
  186. package/dist/src/semantics/subscription_schedules.js +60 -0
  187. package/dist/src/semantics/subscriptions.d.ts +7 -11
  188. package/dist/src/semantics/subscriptions.js +44 -415
  189. package/dist/src/semantics/test_helpers.d.ts +6 -0
  190. package/dist/src/semantics/{test-clocks.js → test_helpers.js} +14 -40
  191. package/dist/src/semantics/transfers.d.ts +2 -2
  192. package/dist/src/semantics/transfers.js +6 -101
  193. package/dist/src/server.d.ts +7 -0
  194. package/dist/src/server.js +7 -0
  195. package/generated/pack-facts.json +94 -0
  196. package/package.json +10 -20
  197. package/spec/SOURCE.md +14 -0
  198. package/spec/fixtures3.json.gz +0 -0
  199. package/spec/openapi.json.gz +0 -0
  200. package/spec/patches.json +34 -0
  201. package/spec/sources.json +378 -0
  202. package/src/cli.ts +12 -26
  203. package/src/engine/after-payment.ts +31 -0
  204. package/src/engine/apps-secrets.ts +4 -0
  205. package/src/engine/balance.ts +33 -0
  206. package/src/engine/billing.ts +16 -0
  207. package/src/engine/charges.ts +19 -0
  208. package/src/engine/checkout.ts +40 -0
  209. package/src/engine/common.ts +47 -0
  210. package/src/engine/connect-settings.ts +23 -0
  211. package/src/engine/connect.ts +184 -0
  212. package/src/engine/coupons.ts +5 -0
  213. package/src/engine/credit-notes.ts +6 -0
  214. package/src/engine/customers.ts +35 -0
  215. package/src/engine/display.ts +19 -0
  216. package/src/engine/disputes.ts +9 -0
  217. package/src/engine/entitlements.ts +5 -0
  218. package/src/engine/ephemeral-keys.ts +3 -0
  219. package/src/engine/files.ts +41 -0
  220. package/src/engine/front.ts +31 -0
  221. package/src/engine/invoices.ts +71 -0
  222. package/src/engine/issuing.ts +61 -0
  223. package/src/engine/ledger.ts +50 -0
  224. package/src/engine/oauth.ts +19 -0
  225. package/src/engine/onboarding.ts +54 -0
  226. package/src/{stripe-params.ts → engine/params.ts} +8 -56
  227. package/src/engine/payment-intents.ts +33 -0
  228. package/src/engine/payment-links.ts +6 -0
  229. package/src/engine/payment-methods.ts +25 -0
  230. package/src/engine/plans.ts +42 -0
  231. package/src/engine/platform.ts +47 -0
  232. package/src/engine/products.ts +3 -0
  233. package/src/engine/radar.ts +6 -0
  234. package/src/engine/refunds.ts +29 -0
  235. package/src/engine/renewals.ts +73 -0
  236. package/src/engine/setup-intents.ts +5 -0
  237. package/src/{stripe-twin.ts → engine/stripe.ts} +28 -323
  238. package/src/engine/subscription-schedules.ts +10 -0
  239. package/src/engine/subscriptions.ts +40 -0
  240. package/src/engine/tax.ts +39 -0
  241. package/src/engine/terminal.ts +23 -0
  242. package/src/engine/test-clocks.ts +11 -0
  243. package/src/engine/tokens.ts +22 -0
  244. package/src/engine/transfers.ts +23 -0
  245. package/src/engine/treasury.ts +47 -0
  246. package/src/{stripe-version.ts → engine/version.ts} +4 -3
  247. package/src/engine/webhook-endpoints.ts +14 -0
  248. package/src/engine/webhooks.ts +72 -0
  249. package/src/fetch.ts +27 -0
  250. package/src/generated/surface.gen.json +1 -1
  251. package/src/generated/ui.gen.json +1 -1
  252. package/src/index.ts +8 -116
  253. package/src/manifest.ts +234 -786
  254. package/src/screens/{portal.tsx → billing-portal.tsx} +32 -37
  255. package/src/screens/checkout.tsx +33 -95
  256. package/src/screens/connect-oauth.tsx +64 -88
  257. package/src/screens/{onboarding.tsx → connect-onboarding.tsx} +38 -82
  258. package/src/screens/dashboard.tsx +198 -0
  259. package/src/screens/shared.tsx +84 -0
  260. package/src/screens/stripe-js.ts +170 -0
  261. package/src/semantics/account_links.ts +21 -0
  262. package/src/semantics/accounts.ts +43 -0
  263. package/src/semantics/{apps-secrets.ts → apps.ts} +17 -32
  264. package/src/semantics/around.ts +20 -0
  265. package/src/semantics/balance.ts +6 -207
  266. package/src/semantics/balance_transactions.ts +20 -0
  267. package/src/semantics/billing_portal.ts +51 -0
  268. package/src/semantics/charges.ts +12 -211
  269. package/src/semantics/checkout.ts +13 -268
  270. package/src/semantics/clock.ts +26 -0
  271. package/src/semantics/coupons.ts +5 -67
  272. package/src/semantics/customers.ts +29 -392
  273. package/src/semantics/disputes.ts +9 -59
  274. package/src/semantics/doors.ts +80 -0
  275. package/src/semantics/entitlements.ts +9 -56
  276. package/src/semantics/events.ts +44 -0
  277. package/src/semantics/index.ts +111 -0
  278. package/src/semantics/invoice_payments.ts +18 -0
  279. package/src/semantics/invoiceitems.ts +59 -0
  280. package/src/semantics/invoices.ts +109 -443
  281. package/src/semantics/payment_intents.ts +83 -0
  282. package/src/semantics/payment_methods.ts +43 -0
  283. package/src/semantics/payouts.ts +23 -0
  284. package/src/semantics/prices.ts +42 -0
  285. package/src/semantics/products.ts +18 -142
  286. package/src/semantics/promotion_codes.ts +39 -0
  287. package/src/semantics/radar.ts +8 -77
  288. package/src/semantics/refunds.ts +9 -212
  289. package/src/semantics/setup_intents.ts +45 -0
  290. package/src/semantics/shared.ts +3092 -106
  291. package/src/semantics/states.ts +883 -0
  292. package/src/semantics/subscription_items.ts +54 -0
  293. package/src/semantics/subscription_schedules.ts +66 -0
  294. package/src/semantics/subscriptions.ts +49 -432
  295. package/src/semantics/{test-clocks.ts → test_helpers.ts} +23 -47
  296. package/src/semantics/transfers.ts +11 -131
  297. package/src/server.ts +8 -0
  298. package/client/dashboard-api.ts +0 -286
  299. package/client/stripe-mirror.css +0 -277
  300. package/client/stripe-mirror.tsx +0 -1559
  301. package/dist/client/dashboard-api.d.ts +0 -107
  302. package/dist/client/dashboard-api.js +0 -238
  303. package/dist/client/dashboard-api.ts +0 -286
  304. package/dist/client/stripe-mirror.bundle.js +0 -236
  305. package/dist/client/stripe-mirror.css +0 -277
  306. package/dist/client/stripe-mirror.d.ts +0 -134
  307. package/dist/client/stripe-mirror.js +0 -859
  308. package/dist/client/stripe-mirror.tsx +0 -1559
  309. package/dist/src/screens/connect-settings.js +0 -103
  310. package/dist/src/screens/consent-skin.d.ts +0 -4
  311. package/dist/src/screens/consent-skin.js +0 -18
  312. package/dist/src/screens/financial-connections.d.ts +0 -5
  313. package/dist/src/screens/financial-connections.js +0 -90
  314. package/dist/src/screens/identity.d.ts +0 -5
  315. package/dist/src/screens/identity.js +0 -86
  316. package/dist/src/screens/onboarding.d.ts +0 -13
  317. package/dist/src/screens/portal.d.ts +0 -5
  318. package/dist/src/screens/public-details.d.ts +0 -5
  319. package/dist/src/screens/public-details.js +0 -90
  320. package/dist/src/semantics/after-payment.d.ts +0 -22
  321. package/dist/src/semantics/after-payment.js +0 -99
  322. package/dist/src/semantics/apps-secrets.d.ts +0 -2
  323. package/dist/src/semantics/billing.d.ts +0 -2
  324. package/dist/src/semantics/billing.js +0 -220
  325. package/dist/src/semantics/connect.d.ts +0 -5
  326. package/dist/src/semantics/connect.js +0 -493
  327. package/dist/src/semantics/credit-notes.d.ts +0 -2
  328. package/dist/src/semantics/credit-notes.js +0 -172
  329. package/dist/src/semantics/ephemeral-keys.d.ts +0 -2
  330. package/dist/src/semantics/ephemeral-keys.js +0 -34
  331. package/dist/src/semantics/files.d.ts +0 -2
  332. package/dist/src/semantics/files.js +0 -125
  333. package/dist/src/semantics/issuing.d.ts +0 -13
  334. package/dist/src/semantics/issuing.js +0 -575
  335. package/dist/src/semantics/ledger.d.ts +0 -59
  336. package/dist/src/semantics/ledger.js +0 -200
  337. package/dist/src/semantics/payment-intents.d.ts +0 -18
  338. package/dist/src/semantics/payment-intents.js +0 -452
  339. package/dist/src/semantics/payment-links.d.ts +0 -2
  340. package/dist/src/semantics/payment-links.js +0 -133
  341. package/dist/src/semantics/payment-methods.d.ts +0 -20
  342. package/dist/src/semantics/payment-methods.js +0 -140
  343. package/dist/src/semantics/plans.d.ts +0 -5
  344. package/dist/src/semantics/plans.js +0 -121
  345. package/dist/src/semantics/platform.d.ts +0 -9
  346. package/dist/src/semantics/platform.js +0 -206
  347. package/dist/src/semantics/renewals.d.ts +0 -47
  348. package/dist/src/semantics/renewals.js +0 -281
  349. package/dist/src/semantics/setup-intents.d.ts +0 -2
  350. package/dist/src/semantics/subscription-schedules.d.ts +0 -2
  351. package/dist/src/semantics/subscription-schedules.js +0 -119
  352. package/dist/src/semantics/tax.d.ts +0 -2
  353. package/dist/src/semantics/tax.js +0 -197
  354. package/dist/src/semantics/terminal.d.ts +0 -5
  355. package/dist/src/semantics/terminal.js +0 -182
  356. package/dist/src/semantics/test-clocks.d.ts +0 -6
  357. package/dist/src/semantics/tokens.d.ts +0 -4
  358. package/dist/src/semantics/tokens.js +0 -44
  359. package/dist/src/semantics/treasury.d.ts +0 -2
  360. package/dist/src/semantics/treasury.js +0 -377
  361. package/dist/src/semantics/webhook-endpoints.d.ts +0 -3
  362. package/dist/src/semantics/webhook-endpoints.js +0 -85
  363. package/dist/src/stripe-budget.d.ts +0 -55
  364. package/dist/src/stripe-budget.js +0 -155
  365. package/dist/src/stripe-capabilities.d.ts +0 -3
  366. package/dist/src/stripe-capabilities.js +0 -5836
  367. package/dist/src/stripe-conformance.d.ts +0 -43
  368. package/dist/src/stripe-conformance.js +0 -105
  369. package/dist/src/stripe-connector.d.ts +0 -161
  370. package/dist/src/stripe-connector.js +0 -414
  371. package/dist/src/stripe-emit.d.ts +0 -2
  372. package/dist/src/stripe-emit.js +0 -145
  373. package/dist/src/stripe-events.d.ts +0 -93
  374. package/dist/src/stripe-events.js +0 -392
  375. package/dist/src/stripe-js.d.ts +0 -4
  376. package/dist/src/stripe-js.js +0 -70
  377. package/dist/src/stripe-mirror-ui.d.ts +0 -15
  378. package/dist/src/stripe-mirror-ui.js +0 -87
  379. package/dist/src/stripe-perform-harness.d.ts +0 -9
  380. package/dist/src/stripe-perform-harness.js +0 -26
  381. package/dist/src/stripe-server.d.ts +0 -33
  382. package/dist/src/stripe-server.js +0 -429
  383. package/dist/src/stripe-shared.d.ts +0 -109
  384. package/dist/src/stripe-shared.js +0 -276
  385. package/dist/src/stripe-ui-conformance.d.ts +0 -5
  386. package/dist/src/stripe-ui-conformance.js +0 -79
  387. package/dist/src/stripe-ui-structure.d.ts +0 -3
  388. package/dist/src/stripe-ui-structure.js +0 -168
  389. package/dist/test-fixtures/stripe-known-deviations.json +0 -110
  390. package/dist/test-fixtures/stripe-openapi-operations.SOURCE.md +0 -14
  391. package/dist/test-fixtures/stripe-openapi-operations.json +0 -4717
  392. package/dist/test-fixtures/stripe-schemas.SOURCE.md +0 -35
  393. package/dist/test-fixtures/stripe-schemas.json +0 -3813
  394. package/src/screens/connect-settings.tsx +0 -121
  395. package/src/screens/consent-skin.ts +0 -20
  396. package/src/screens/financial-connections.tsx +0 -101
  397. package/src/screens/identity.tsx +0 -96
  398. package/src/screens/public-details.tsx +0 -105
  399. package/src/semantics/after-payment.ts +0 -118
  400. package/src/semantics/billing.ts +0 -216
  401. package/src/semantics/connect.ts +0 -487
  402. package/src/semantics/credit-notes.ts +0 -168
  403. package/src/semantics/ephemeral-keys.ts +0 -34
  404. package/src/semantics/files.ts +0 -143
  405. package/src/semantics/issuing.ts +0 -590
  406. package/src/semantics/ledger.ts +0 -253
  407. package/src/semantics/payment-intents.ts +0 -463
  408. package/src/semantics/payment-links.ts +0 -148
  409. package/src/semantics/payment-methods.ts +0 -145
  410. package/src/semantics/plans.ts +0 -131
  411. package/src/semantics/platform.ts +0 -220
  412. package/src/semantics/renewals.ts +0 -279
  413. package/src/semantics/setup-intents.ts +0 -87
  414. package/src/semantics/subscription-schedules.ts +0 -129
  415. package/src/semantics/tax.ts +0 -220
  416. package/src/semantics/terminal.ts +0 -195
  417. package/src/semantics/tokens.ts +0 -52
  418. package/src/semantics/treasury.ts +0 -383
  419. package/src/semantics/webhook-endpoints.ts +0 -87
  420. package/src/stripe-budget.ts +0 -181
  421. package/src/stripe-capabilities.ts +0 -5651
  422. package/src/stripe-conformance.ts +0 -124
  423. package/src/stripe-connector.ts +0 -462
  424. package/src/stripe-emit.ts +0 -157
  425. package/src/stripe-events.ts +0 -434
  426. package/src/stripe-js.ts +0 -70
  427. package/src/stripe-mirror-ui.ts +0 -90
  428. package/src/stripe-perform-harness.ts +0 -29
  429. package/src/stripe-server.ts +0 -393
  430. package/src/stripe-shared.ts +0 -297
  431. package/src/stripe-ui-conformance.ts +0 -88
  432. package/src/stripe-ui-structure.ts +0 -182
  433. package/test-fixtures/stripe-known-deviations.json +0 -110
  434. package/test-fixtures/stripe-openapi-operations.json +0 -4717
  435. package/test-fixtures/stripe-schemas.json +0 -3813
  436. /package/dist/src/{screens → engine}/industries.d.ts +0 -0
  437. /package/dist/src/{screens → engine}/industries.js +0 -0
  438. /package/dist/src/{semantics → engine}/test-cards.d.ts +0 -0
  439. /package/dist/src/{semantics → engine}/test-cards.js +0 -0
  440. /package/dist/src/{stripe-version.d.ts → engine/version.d.ts} +0 -0
  441. /package/src/{screens → engine}/industries.ts +0 -0
  442. /package/src/{semantics → engine}/test-cards.ts +0 -0
@@ -1,172 +0,0 @@
1
- import { paginate } from "../stripe-twin.js";
2
- import { refundCharge } from "./refunds.js";
3
- import { at, created, fail, path } from "./shared.js";
4
- const CN = 'credit_note';
5
- const noteMissing = (ctx, id) => fail(ctx, `No such credit note: '${id}'`, 404, 'resource_missing');
6
- /** The credit note the request describes (the `amount` form: one custom line), or Stripe's refusal. */
7
- function build(ctx, id) {
8
- const params = ctx.params;
9
- const invoiceId = typeof params.invoice === 'string' ? params.invoice : '';
10
- if (!invoiceId)
11
- return fail(ctx, 'Missing required param: invoice.', 400, 'parameter_missing');
12
- const invoice = ctx.get('invoice', invoiceId);
13
- if (!invoice)
14
- return fail(ctx, `No such invoice: '${invoiceId}'`, 404, 'resource_missing');
15
- if (params.amount === undefined)
16
- return fail(ctx, 'Missing required param: amount.', 400, 'parameter_missing');
17
- const amount = Number(params.amount);
18
- if (!Number.isInteger(amount) || amount <= 0)
19
- return fail(ctx, 'Invalid integer: amount must be a positive integer.', 400, 'parameter_invalid_integer');
20
- const vendorType = invoice.status === 'paid' ? 'post_payment' : 'pre_payment';
21
- const outOfBand = Number(params.out_of_band_amount) || 0;
22
- // a paid invoice's credit is paid back: "The sum of refunds, customer balance credits, and outside of Stripe credits
23
- // must equal the post_payment_amount" (docs.stripe.com/api/credit_notes/create); the message's wording is the twin's
24
- if (vendorType === 'post_payment') {
25
- const split = (Number(params.refund_amount) || 0) + (Number(params.credit_amount) || 0) + outOfBand;
26
- if (split !== amount)
27
- return fail(ctx, `The sum of refund_amount, credit_amount and out_of_band_amount (${split}) must equal the credit note's post_payment_amount (${amount}).`, 400, 'parameter_invalid_integer');
28
- }
29
- const line = {
30
- object: 'credit_note_line_item', id: `cnli_${id}_1`, type: 'custom_line_item',
31
- amount, description: typeof params.memo === 'string' ? params.memo : null,
32
- // a custom line credits no invoice line: invoice_line_item ("ID of the invoice line item being credited") is left
33
- // out, the served spec not letting it be null
34
- discount_amount: 0, discount_amounts: [], livemode: false,
35
- pretax_credit_amounts: [], quantity: null, tax_rates: [], taxes: [],
36
- unit_amount: null, unit_amount_decimal: null,
37
- };
38
- return {
39
- amount, amount_shipping: 0, created: ctx.now(), currency: typeof invoice.currency === 'string' ? invoice.currency : 'usd', customer: typeof invoice.customer === 'string' ? invoice.customer : null,
40
- customer_balance_transaction: null,
41
- // "The date when this credit note is in effect. Same as `created` unless overwritten" (the served spec)
42
- discount_amount: 0, discount_amounts: [], effective_at: params.effective_at !== undefined ? Number(params.effective_at) : ctx.now(), invoice: invoiceId,
43
- lines: { object: 'list', data: [line], has_more: false, total_count: 1, url: `/v1/credit_notes/${id}/lines` },
44
- livemode: false, memo: params.memo ?? null, metadata: params.metadata && typeof params.metadata === 'object' ? params.metadata : {},
45
- number: `${invoiceId}-CN-01`, out_of_band_amount: outOfBand || null,
46
- pdf: `https://files.twin.local/credit_notes/${id}.pdf`,
47
- post_payment_amount: vendorType === 'post_payment' ? amount : 0,
48
- pre_payment_amount: vendorType === 'pre_payment' ? amount : 0,
49
- pretax_credit_amounts: [],
50
- reason: typeof params.reason === 'string' ? params.reason : null,
51
- refunds: [], shipping_cost: null, status: 'issued',
52
- subtotal: amount, subtotal_excluding_tax: amount,
53
- type: vendorType, total: amount, total_excluding_tax: amount, total_taxes: [],
54
- voided_at: null,
55
- };
56
- }
57
- /** The invoice's credit-note sums, from its issued credit notes; a pre-payment credit lowers what is owed. */
58
- async function syncInvoice(ctx, invoiceId) {
59
- const inv = ctx.get('invoice', invoiceId);
60
- if (!inv)
61
- return;
62
- let pre = 0;
63
- let post = 0;
64
- for (const cn of ctx.rows(CN)) {
65
- if (cn.invoice !== invoiceId || cn.status === 'void')
66
- continue;
67
- if (cn.type === 'post_payment')
68
- post += Number(cn.amount) || 0;
69
- else
70
- pre += Number(cn.amount) || 0;
71
- }
72
- const total = Number(inv.total ?? inv.amount_due) || 0;
73
- const paid = Number(inv.amount_paid) || 0;
74
- await ctx.write('invoice', invoiceId, { pre_payment_credit_notes_amount: pre, post_payment_credit_notes_amount: post, amount_remaining: Math.max(0, total - paid - pre) }, 'invoice.update');
75
- }
76
- // the preview computes the credit note without keeping it
77
- const preview = async (ctx) => {
78
- const id = 'cn_preview';
79
- const cn = build(ctx, id);
80
- return cn instanceof Response ? cn : ctx.reply({ object: CN, ...cn, id });
81
- };
82
- /** What a post-payment credit pays back: "Refunds: create a new refund (using refund_amount)"; "Customer balance credit:
83
- * credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when
84
- * it's finalized" (docs.stripe.com/api/credit_notes/create). The refund is made on the invoice's charge as a refund
85
- * call makes it (refunds.ts); the credit is a customer balance transaction of type credit_note. Where the documentation
86
- * stops and the twin decides: the refund carries no reason of its own. */
87
- async function payBack(ctx, id, cn) {
88
- const params = ctx.params;
89
- const out = {};
90
- const refundAmount = Number(params.refund_amount) || 0;
91
- if (refundAmount > 0) {
92
- const invoice = ctx.get('invoice', String(cn.invoice));
93
- const pi = typeof invoice?.payment_intent === 'string' ? ctx.get('payment_intent', invoice.payment_intent) : undefined;
94
- const chargeId = typeof invoice?.charge === 'string' ? invoice.charge : typeof pi?.latest_charge === 'string' ? pi.latest_charge : undefined;
95
- const charge = chargeId ? ctx.get('charge', chargeId) : undefined;
96
- if (!charge)
97
- return fail(ctx, 'This invoice was not paid with a charge that can be refunded.', 400, 'invoice_no_charge_to_refund');
98
- const answer = await refundCharge(ctx, charge, { amount: refundAmount });
99
- if (answer.status >= 400)
100
- return answer;
101
- const refund = (await answer.json());
102
- out.refunds = [{ amount_refunded: refundAmount, refund: refund.id, type: 'refund', payment_record_refund: null }];
103
- }
104
- const creditAmount = Number(params.credit_amount) || 0;
105
- const customer = typeof cn.customer === 'string' ? cn.customer : undefined;
106
- if (creditAmount > 0 && customer) {
107
- const ending = (Number(ctx.get('customer', customer)?.balance) || 0) - creditAmount;
108
- const txn = await created(ctx, 'customer_balance_transaction', { customer, amount: -creditAmount, currency: cn.currency, credit_note: id, invoice: cn.invoice }, {
109
- ending_balance: ending, type: 'credit_note', livemode: false, metadata: {}, description: null, checkout_session: null,
110
- });
111
- await ctx.write('customer', customer, { balance: ending }, `customer.balance_adjusted:${String(txn.id)}`);
112
- out.customer_balance_transaction = txn.id;
113
- }
114
- return out;
115
- }
116
- const create = async (ctx) => {
117
- const id = ctx.mint(CN);
118
- const cn = build(ctx, id);
119
- if (cn instanceof Response)
120
- return cn;
121
- const paid = cn.type === 'post_payment' ? await payBack(ctx, id, cn) : {};
122
- if (paid instanceof Response)
123
- return paid;
124
- const body = await created(ctx, CN, { id, ...cn, ...paid }, {});
125
- await syncInvoice(ctx, String(cn.invoice));
126
- return ctx.reply(body);
127
- };
128
- const retrieve = async (ctx) => {
129
- const c = ctx.get(CN, at(ctx, 'id'));
130
- return c ? ctx.reply(c) : noteMissing(ctx, at(ctx, 'id'));
131
- };
132
- const lines = async (ctx) => {
133
- const c = ctx.get(CN, at(ctx, 'credit_note'));
134
- if (!c)
135
- return noteMissing(ctx, at(ctx, 'credit_note'));
136
- const l = c.lines;
137
- const { page, hasMore } = paginate(Array.isArray(l?.data) ? l.data : [], ctx.params);
138
- return ctx.reply({ object: 'list', url: path(ctx), has_more: hasMore, data: page });
139
- };
140
- const voidNote = async (ctx) => {
141
- const id = at(ctx, 'id');
142
- const c = ctx.get(CN, id);
143
- if (!c)
144
- return noteMissing(ctx, id);
145
- const refused = ctx.legal(CN, 'status', 'PostCreditNotesIdVoid', c.status, undefined, id);
146
- if (refused)
147
- return ctx.refuse(refused);
148
- const voided = await ctx.write(CN, id, { status: 'void', voided_at: ctx.now() }, 'credit_note.void');
149
- if (typeof c.invoice === 'string')
150
- await syncInvoice(ctx, c.invoice);
151
- return ctx.reply(voided);
152
- };
153
- // only the memo and metadata change
154
- const update = async (ctx) => {
155
- const id = at(ctx, 'id');
156
- if (!ctx.get(CN, id))
157
- return noteMissing(ctx, id);
158
- const patch = {};
159
- if (ctx.params.memo !== undefined)
160
- patch.memo = ctx.params.memo;
161
- if (ctx.params.metadata !== undefined)
162
- patch.metadata = ctx.params.metadata;
163
- return ctx.reply(await ctx.write(CN, id, patch, 'credit_note.update'));
164
- };
165
- export const creditNotes = {
166
- GetCreditNotesPreview: preview,
167
- PostCreditNotes: create,
168
- GetCreditNotesId: retrieve,
169
- GetCreditNotesCreditNoteLines: lines,
170
- PostCreditNotesIdVoid: voidNote,
171
- PostCreditNotesId: update,
172
- };
@@ -1,2 +0,0 @@
1
- import type { Semantics } from '@volter/world-core';
2
- export declare const ephemeralKeys: Record<string, Semantics>;
@@ -1,34 +0,0 @@
1
- import { at, fail } from "./shared.js";
2
- const create = async (ctx) => {
3
- const version = ctx.call.request.headers.get('stripe-version');
4
- if (!version)
5
- return fail(ctx, 'You must pass the `Stripe-Version` header (e.g. via the apiVersion option) when creating an ephemeral key.', 400, 'parameter_missing');
6
- const params = ctx.params;
7
- const scopes = [];
8
- if (typeof params.customer === 'string' && params.customer)
9
- scopes.push(['customer', params.customer]);
10
- if (typeof params.issuing_card === 'string' && params.issuing_card)
11
- scopes.push(['issuing.card', params.issuing_card]);
12
- if (typeof params.verification_session === 'string' && params.verification_session)
13
- scopes.push(['identity.verification_session', params.verification_session]);
14
- if (scopes.length !== 1)
15
- return fail(ctx, 'You must pass exactly one of `customer`, `issuing_card`, or `verification_session`.', 400, 'parameter_missing');
16
- const [scope, scopedId] = scopes[0];
17
- if (scope === 'customer' && !ctx.get('customer', scopedId))
18
- return fail(ctx, `No such customer: '${scopedId}'`, 400, 'resource_missing');
19
- const id = ctx.mint('ephemeral_key');
20
- const now = Number(ctx.now());
21
- const associated_objects = [{ type: scope, id: scopedId }];
22
- await ctx.write('ephemeral_key', id, { object: 'ephemeral_key', created: now, expires: now + 3600, livemode: false, associated_objects }, 'ephemeral_key.create');
23
- return ctx.reply({ id, object: 'ephemeral_key', created: now, expires: now + 3600, livemode: false, secret: `ek_test_twin_${id}`, associated_objects });
24
- };
25
- const expire = async (ctx) => {
26
- const id = at(ctx, 'key');
27
- if (!ctx.get('ephemeral_key', id))
28
- return fail(ctx, `No such ephemeral key: '${id}'`, 404, 'resource_missing');
29
- return ctx.reply(await ctx.write('ephemeral_key', id, { expires: ctx.now() }, 'ephemeral_key.delete'));
30
- };
31
- export const ephemeralKeys = {
32
- PostEphemeralKeys: create,
33
- DeleteEphemeralKeysKey: expire,
34
- };
@@ -1,2 +0,0 @@
1
- import type { Semantics } from '@volter/world-core';
2
- export declare const files: Record<string, Semantics>;
@@ -1,125 +0,0 @@
1
- import { asBool } from "../stripe-twin.js";
2
- import { actingAccount } from "./ledger.js";
3
- import { at, created, fail, filePurposeRefused, list, mergeUpdate, newest, where } from "./shared.js";
4
- /** The type Stripe answers for an uploaded file: "The returned file type (for example, csv, pdf, jpg, or png)"
5
- * (docs.stripe.com/api/files/object). Where the documentation stops and the twin decides: read from the name's
6
- * extension (jpeg as jpg), and null for a name without one. */
7
- function fileType(name) {
8
- const ext = /\.([a-z0-9]+)$/i.exec(name)?.[1]?.toLowerCase();
9
- return ext ? (ext === 'jpeg' ? 'jpg' : ext) : null;
10
- }
11
- // multipart on Stripe; the file is described by the part uploaded: its name, its size in bytes and its type
12
- const createFile = async (ctx) => {
13
- const purpose = typeof ctx.params.purpose === 'string' ? ctx.params.purpose : '';
14
- if (!purpose)
15
- return fail(ctx, 'Missing required param: purpose.', 400, 'parameter_missing');
16
- const part = ctx.params.file && typeof ctx.params.file === 'object' ? ctx.params.file : undefined;
17
- const filename = typeof ctx.params.file === 'string' ? ctx.params.file : typeof part?.name === 'string' ? part.name : 'twin_upload';
18
- const made = await created(ctx, 'file', { purpose }, {
19
- filename, size: typeof part?.size === 'number' ? part.size : 0,
20
- type: fileType(filename), title: null, expires_at: null, url: null,
21
- links: { object: 'list', data: [], has_more: false, total_count: 0, url: '' },
22
- });
23
- await syncLinks(ctx, String(made.id));
24
- return ctx.reply(ctx.get('file', String(made.id)));
25
- };
26
- /** A file's links, kept in step with the links made to it, at the address Stripe lists them
27
- * (/v1/file_links?file=…, the File object's example). */
28
- async function syncLinks(ctx, fileId) {
29
- const data = newest(ctx, 'file_link').filter((l) => l.file === fileId);
30
- await ctx.write('file', fileId, { links: { object: 'list', data, has_more: false, url: `/v1/file_links?file=${fileId}` } }, 'file.links_synced');
31
- }
32
- /** The purposes a file link may be made to: "The file's `purpose` must be one of the following: …" (the served
33
- * spec, POST /v1/file_links `file`). */
34
- const LINKABLE = ['business_icon', 'business_logo', 'customer_signature', 'dispute_evidence', 'finance_report_run', 'financial_account_statement', 'identity_document_downloadable', 'issuing_regulatory_reporting', 'pci_document', 'selfie', 'sigma_scheduled_query', 'tax_document_user_upload', 'terminal_android_apk', 'terminal_reader_splashscreen'];
35
- // `file` is required; a link is kept, has its own public url, and is listed on its file
36
- const createFileLink = async (ctx) => {
37
- if (ctx.params.file === undefined || ctx.params.file === '')
38
- return fail(ctx, 'Missing required param: file.', 400, 'parameter_missing');
39
- const fileId = String(ctx.params.file);
40
- const refused = filePurposeRefused(ctx, 'file', LINKABLE);
41
- if (refused)
42
- return refused;
43
- const id = ctx.mint('file_link');
44
- const link = await created(ctx, 'file_link', { ...ctx.params, id, file: fileId }, {
45
- url: `https://files.twin.local/links/${id}`, expired: false, livemode: false, metadata: {},
46
- expires_at: ctx.params.expires_at !== undefined ? Number(ctx.params.expires_at) : null,
47
- });
48
- await syncLinks(ctx, fileId);
49
- return ctx.reply(link);
50
- };
51
- // the person verifies at the session's url, Stripe Identity's hosted page (../screens/identity.tsx)
52
- const createVerificationSession = async (ctx) => {
53
- const id = ctx.mint('identity.verification_session');
54
- return ctx.reply(await created(ctx, 'identity.verification_session', { ...ctx.params, id }, {
55
- status: 'requires_input', livemode: false, client_secret: `${id}_secret_twin`, url: `https://verify.stripe.com/start/${id}`,
56
- last_error: null, last_verification_report: null, verified_outputs: null, return_url: ctx.params.return_url ?? null,
57
- }));
58
- };
59
- // ── the customer portal ──
60
- // the configuration defaults to the account's default one
61
- const createPortalSession = async (ctx) => {
62
- const customer = typeof ctx.params.customer === 'string' ? ctx.params.customer : '';
63
- if (!customer)
64
- return fail(ctx, 'Missing required param: customer.', 400, 'parameter_missing');
65
- if (!ctx.row('customer', customer, { withDeleted: true }))
66
- return fail(ctx, `No such customer: '${customer}'`, 404, 'resource_missing');
67
- const configuration = typeof ctx.params.configuration === 'string' && ctx.params.configuration
68
- ? ctx.params.configuration
69
- : (ctx.rowsRaw('billing_portal.configuration', { withDeleted: true }).find((c) => c.is_default)?.id ?? 'bpc_twin_default');
70
- const id = ctx.mint('billing_portal.session');
71
- return ctx.reply(await created(ctx, 'billing_portal.session', {
72
- id, customer, configuration, return_url: ctx.params.return_url ?? null, url: `https://billing.stripe.com/p/session/${id}`,
73
- locale: ctx.params.locale ?? null, on_behalf_of: ctx.params.on_behalf_of ?? null, livemode: false,
74
- // the account the session was made on (Stripe-Account), whose name the portal shows (screens/portal.tsx)
75
- ...(actingAccount(ctx) ? { _brand_account: actingAccount(ctx) } : {}),
76
- }, {}));
77
- };
78
- const PBC = 'billing_portal.configuration';
79
- /** A portal configuration's features, each filled where the request leaves it: every feature is answered (the served
80
- * spec requires all five), as the create page's example answers a request that sets only customer_update and
81
- * invoice_history: payment_method_update disabled, subscription_cancel disabled at_period_end with proration_behavior
82
- * none and its five default reasons, subscription_update disabled with no allowed updates and proration_behavior none
83
- * (docs.stripe.com/api/customer_portal/configurations/create); trial_update_behavior "Defaults to a value of
84
- * `end_trial` if you don't set it during creation" (the served spec). Where the documentation stops and the twin
85
- * decides: a feature the request leaves out is disabled, and schedule_at_period_end has no conditions. */
86
- const PORTAL_FEATURES = {
87
- customer_update: { allowed_updates: [], enabled: false },
88
- invoice_history: { enabled: false },
89
- payment_method_update: { enabled: false, payment_method_configuration: null },
90
- subscription_cancel: { cancellation_reason: { enabled: false, options: ['too_expensive', 'missing_features', 'switched_service', 'unused', 'other'] }, enabled: false, mode: 'at_period_end', proration_behavior: 'none' },
91
- subscription_update: { default_allowed_updates: [], enabled: false, proration_behavior: 'none', schedule_at_period_end: { conditions: [] }, trial_update_behavior: 'end_trial' },
92
- };
93
- const filled = (base, given) => {
94
- if (!given || typeof given !== 'object' || Array.isArray(given) || !base || typeof base !== 'object' || Array.isArray(base))
95
- return given === undefined ? base : given;
96
- const out = { ...base };
97
- for (const [k, v] of Object.entries(given))
98
- out[k] = filled(base[k], v);
99
- return out;
100
- };
101
- const createPortalConfiguration = async (ctx) => ctx.reply(await created(ctx, PBC, { ...ctx.params, business_profile: filled({ headline: null, privacy_policy_url: null, terms_of_service_url: null }, ctx.params.business_profile), features: filled(PORTAL_FEATURES, ctx.params.features) }, {
102
- active: true, is_default: false, livemode: false,
103
- login_page: { enabled: false, url: null },
104
- metadata: {}, default_return_url: ctx.params.default_return_url ?? null,
105
- updated: ctx.now(),
106
- }));
107
- const listPortalConfigurations = async (ctx) => list(ctx, PBC, where(ctx, newest(ctx, PBC), {
108
- active: (c, v) => asBool(c.active) === asBool(v),
109
- is_default: (c, v) => asBool(c.is_default) === asBool(v),
110
- }));
111
- const updatePortalConfiguration = async (ctx) => {
112
- const id = at(ctx, 'configuration');
113
- if (!ctx.get(PBC, id))
114
- return ctx.notFound(PBC, id);
115
- return ctx.reply(await ctx.write(PBC, id, mergeUpdate(ctx, PBC, id, { ...ctx.params, updated: ctx.now() }), 'billing_portal.configuration.update'));
116
- };
117
- export const files = {
118
- PostFiles: createFile,
119
- PostFileLinks: createFileLink,
120
- PostIdentityVerificationSessions: createVerificationSession,
121
- PostBillingPortalSessions: createPortalSession,
122
- PostBillingPortalConfigurations: createPortalConfiguration,
123
- GetBillingPortalConfigurations: listPortalConfigurations,
124
- PostBillingPortalConfigurationsConfiguration: updatePortalConfiguration,
125
- };
@@ -1,13 +0,0 @@
1
- import type { Semantics, SemanticsContext } from '@volter/world-core';
2
- import { type Row } from './shared.js';
3
- /** The id of a card's cardholder: the card answers the cardholder in full (the served spec's issuing.card.cardholder is
4
- * the Cardholder object, not an id); its id is read from it for filtering and for the objects that name it by id. */
5
- export declare const holderId: (c: Row) => string;
6
- /** Time's decision on a real-time request no one answered, caught up to the World's clock: once its window has ended,
7
- * a pending authorization whose issuing_authorization.request went unanswered, and that no approve or decline decided,
8
- * is decided automatically, its request_history reason webhook_timeout ("webhook_timeout for all other failure modes",
9
- * the same page, beside webhook_error for a response Stripe cannot process).
10
- * Where the documentation stops and the twin decides: the timeout setting is the Dashboard's, which the API does not
11
- * answer, and the twin's is to decline; the window is measured in World time from the authorization's created. */
12
- export declare function lapseRealtimeRequests(ctx: SemanticsContext): Promise<void>;
13
- export declare const issuing: Record<string, Semantics>;