@owlmeans/server-payment 0.1.18-rc.2 → 0.1.18-rc.21

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 (222) hide show
  1. package/README.md +109 -25
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/server-payment/SKILL.md +475 -52
  4. package/build/actions/index.d.ts +1 -0
  5. package/build/actions/index.d.ts.map +1 -1
  6. package/build/actions/index.js +1 -0
  7. package/build/actions/index.js.map +1 -1
  8. package/build/actions/resync-subscriptions.d.ts +3 -0
  9. package/build/actions/resync-subscriptions.d.ts.map +1 -0
  10. package/build/actions/resync-subscriptions.js +7 -0
  11. package/build/actions/resync-subscriptions.js.map +1 -0
  12. package/build/actions/resync.d.ts +1 -0
  13. package/build/actions/resync.d.ts.map +1 -1
  14. package/build/actions/resync.js +7 -3
  15. package/build/actions/resync.js.map +1 -1
  16. package/build/actions/webhook.d.ts.map +1 -1
  17. package/build/actions/webhook.js +6 -3
  18. package/build/actions/webhook.js.map +1 -1
  19. package/build/config.d.ts +60 -5
  20. package/build/config.d.ts.map +1 -1
  21. package/build/config.js +237 -5
  22. package/build/config.js.map +1 -1
  23. package/build/consts.d.ts +75 -3
  24. package/build/consts.d.ts.map +1 -1
  25. package/build/consts.js +94 -5
  26. package/build/consts.js.map +1 -1
  27. package/build/consumer/capture.d.ts +74 -0
  28. package/build/consumer/capture.d.ts.map +1 -0
  29. package/build/consumer/capture.js +291 -0
  30. package/build/consumer/capture.js.map +1 -0
  31. package/build/consumer/format.d.ts +27 -0
  32. package/build/consumer/format.d.ts.map +1 -0
  33. package/build/consumer/format.js +81 -0
  34. package/build/consumer/format.js.map +1 -0
  35. package/build/consumer/handlers.d.ts +28 -0
  36. package/build/consumer/handlers.d.ts.map +1 -0
  37. package/build/consumer/handlers.js +173 -0
  38. package/build/consumer/handlers.js.map +1 -0
  39. package/build/consumer/index.d.ts +7 -0
  40. package/build/consumer/index.d.ts.map +1 -0
  41. package/build/consumer/index.js +6 -0
  42. package/build/consumer/index.js.map +1 -0
  43. package/build/consumer/mail.d.ts +27 -0
  44. package/build/consumer/mail.d.ts.map +1 -0
  45. package/build/consumer/mail.js +314 -0
  46. package/build/consumer/mail.js.map +1 -0
  47. package/build/consumer/origin.d.ts +14 -0
  48. package/build/consumer/origin.d.ts.map +1 -0
  49. package/build/consumer/origin.js +47 -0
  50. package/build/consumer/origin.js.map +1 -0
  51. package/build/consumer/reconcile.d.ts +12 -0
  52. package/build/consumer/reconcile.d.ts.map +1 -0
  53. package/build/consumer/reconcile.js +317 -0
  54. package/build/consumer/reconcile.js.map +1 -0
  55. package/build/consumer/records.d.ts +78 -0
  56. package/build/consumer/records.d.ts.map +1 -0
  57. package/build/consumer/records.js +296 -0
  58. package/build/consumer/records.js.map +1 -0
  59. package/build/consumer/service.d.ts +51 -0
  60. package/build/consumer/service.d.ts.map +1 -0
  61. package/build/consumer/service.js +760 -0
  62. package/build/consumer/service.js.map +1 -0
  63. package/build/consumer/withdrawal.d.ts +57 -0
  64. package/build/consumer/withdrawal.d.ts.map +1 -0
  65. package/build/consumer/withdrawal.js +247 -0
  66. package/build/consumer/withdrawal.js.map +1 -0
  67. package/build/entitlement.d.ts +10 -0
  68. package/build/entitlement.d.ts.map +1 -0
  69. package/build/entitlement.js +69 -0
  70. package/build/entitlement.js.map +1 -0
  71. package/build/entrypoints.d.ts +1 -1
  72. package/build/entrypoints.d.ts.map +1 -1
  73. package/build/entrypoints.js +2 -1
  74. package/build/entrypoints.js.map +1 -1
  75. package/build/gate.d.ts +32 -4
  76. package/build/gate.d.ts.map +1 -1
  77. package/build/gate.js +59 -19
  78. package/build/gate.js.map +1 -1
  79. package/build/index.d.ts +18 -3
  80. package/build/index.d.ts.map +1 -1
  81. package/build/index.js +15 -3
  82. package/build/index.js.map +1 -1
  83. package/build/limit.d.ts +13 -0
  84. package/build/limit.d.ts.map +1 -0
  85. package/build/limit.js +47 -0
  86. package/build/limit.js.map +1 -0
  87. package/build/model.d.ts +10 -1
  88. package/build/model.d.ts.map +1 -1
  89. package/build/model.js +215 -17
  90. package/build/model.js.map +1 -1
  91. package/build/observer.d.ts +9 -0
  92. package/build/observer.d.ts.map +1 -1
  93. package/build/observer.js +38 -12
  94. package/build/observer.js.map +1 -1
  95. package/build/plan.d.ts +22 -0
  96. package/build/plan.d.ts.map +1 -0
  97. package/build/plan.js +72 -0
  98. package/build/plan.js.map +1 -0
  99. package/build/plugins/checkout-plugins.d.ts +49 -0
  100. package/build/plugins/checkout-plugins.d.ts.map +1 -0
  101. package/build/plugins/checkout-plugins.js +124 -0
  102. package/build/plugins/checkout-plugins.js.map +1 -0
  103. package/build/plugins/estimate.d.ts +43 -0
  104. package/build/plugins/estimate.d.ts.map +1 -0
  105. package/build/plugins/estimate.js +268 -0
  106. package/build/plugins/estimate.js.map +1 -0
  107. package/build/plugins/events.d.ts +45 -10
  108. package/build/plugins/events.d.ts.map +1 -1
  109. package/build/plugins/events.js +605 -136
  110. package/build/plugins/events.js.map +1 -1
  111. package/build/plugins/fx.d.ts +31 -0
  112. package/build/plugins/fx.d.ts.map +1 -0
  113. package/build/plugins/fx.js +81 -0
  114. package/build/plugins/fx.js.map +1 -0
  115. package/build/plugins/portal.d.ts +37 -0
  116. package/build/plugins/portal.d.ts.map +1 -0
  117. package/build/plugins/portal.js +265 -0
  118. package/build/plugins/portal.js.map +1 -0
  119. package/build/plugins/refunds.d.ts +33 -0
  120. package/build/plugins/refunds.d.ts.map +1 -0
  121. package/build/plugins/refunds.js +80 -0
  122. package/build/plugins/refunds.js.map +1 -0
  123. package/build/plugins/stripe.d.ts +36 -4
  124. package/build/plugins/stripe.d.ts.map +1 -1
  125. package/build/plugins/stripe.js +492 -97
  126. package/build/plugins/stripe.js.map +1 -1
  127. package/build/plugins/webhook-manager.d.ts +46 -0
  128. package/build/plugins/webhook-manager.d.ts.map +1 -0
  129. package/build/plugins/webhook-manager.js +231 -0
  130. package/build/plugins/webhook-manager.js.map +1 -0
  131. package/build/reconcile.d.ts +15 -0
  132. package/build/reconcile.d.ts.map +1 -0
  133. package/build/reconcile.js +88 -0
  134. package/build/reconcile.js.map +1 -0
  135. package/build/resource.d.ts +12 -1
  136. package/build/resource.d.ts.map +1 -1
  137. package/build/resource.js +97 -6
  138. package/build/resource.js.map +1 -1
  139. package/build/service.d.ts +28 -3
  140. package/build/service.d.ts.map +1 -1
  141. package/build/service.js +146 -19
  142. package/build/service.js.map +1 -1
  143. package/build/subscription.d.ts +48 -0
  144. package/build/subscription.d.ts.map +1 -0
  145. package/build/subscription.js +176 -0
  146. package/build/subscription.js.map +1 -0
  147. package/build/sync.d.ts +28 -1
  148. package/build/sync.d.ts.map +1 -1
  149. package/build/sync.js +208 -31
  150. package/build/sync.js.map +1 -1
  151. package/build/types.d.ts +1115 -36
  152. package/build/types.d.ts.map +1 -1
  153. package/build/usage.d.ts +63 -0
  154. package/build/usage.d.ts.map +1 -0
  155. package/build/usage.js +363 -0
  156. package/build/usage.js.map +1 -0
  157. package/build/utils.d.ts +52 -1
  158. package/build/utils.d.ts.map +1 -1
  159. package/build/utils.js +69 -7
  160. package/build/utils.js.map +1 -1
  161. package/package.json +17 -13
  162. package/src/actions/index.ts +1 -0
  163. package/src/actions/resync-subscriptions.ts +10 -0
  164. package/src/actions/resync.ts +6 -3
  165. package/src/actions/webhook.ts +5 -3
  166. package/src/config.ts +264 -8
  167. package/src/consts.ts +114 -6
  168. package/src/consumer/capture.ts +362 -0
  169. package/src/consumer/format.ts +90 -0
  170. package/src/consumer/handlers.ts +211 -0
  171. package/src/consumer/index.ts +6 -0
  172. package/src/consumer/mail.ts +368 -0
  173. package/src/consumer/origin.ts +63 -0
  174. package/src/consumer/reconcile.ts +329 -0
  175. package/src/consumer/records.ts +374 -0
  176. package/src/consumer/service.ts +868 -0
  177. package/src/consumer/withdrawal.ts +302 -0
  178. package/src/entitlement.ts +84 -0
  179. package/src/entrypoints.ts +2 -1
  180. package/src/gate.ts +88 -21
  181. package/src/index.ts +24 -3
  182. package/src/limit.ts +57 -0
  183. package/src/model.ts +237 -18
  184. package/src/observer.ts +44 -11
  185. package/src/plan.ts +89 -0
  186. package/src/plugins/checkout-plugins.ts +155 -0
  187. package/src/plugins/estimate.ts +339 -0
  188. package/src/plugins/events.ts +677 -121
  189. package/src/plugins/fx.ts +122 -0
  190. package/src/plugins/portal.ts +306 -0
  191. package/src/plugins/refunds.ts +108 -0
  192. package/src/plugins/stripe.ts +581 -96
  193. package/src/plugins/webhook-manager.ts +270 -0
  194. package/src/reconcile.ts +103 -0
  195. package/src/resource.ts +152 -7
  196. package/src/service.ts +174 -18
  197. package/src/subscription.ts +231 -0
  198. package/src/sync.ts +249 -29
  199. package/src/types.ts +1227 -32
  200. package/src/usage.ts +453 -0
  201. package/src/utils.ts +127 -10
  202. package/tests/checkout-consumer.spec.ts +348 -0
  203. package/tests/checkout-plugins.spec.ts +164 -0
  204. package/tests/checkout.spec.ts +184 -83
  205. package/tests/consumer-events.spec.ts +218 -0
  206. package/tests/consumer-fixtures.ts +132 -0
  207. package/tests/consumer-ops.spec.ts +351 -0
  208. package/tests/consumer-rights.integration.spec.ts +150 -0
  209. package/tests/consumer-rights.spec.ts +501 -0
  210. package/tests/context.ts +109 -0
  211. package/tests/entitlement.spec.ts +103 -0
  212. package/tests/estimate.spec.ts +240 -0
  213. package/tests/events.spec.ts +356 -0
  214. package/tests/fake-stripe.ts +972 -0
  215. package/tests/gate.spec.ts +62 -72
  216. package/tests/limit-gate.spec.ts +68 -0
  217. package/tests/portal.spec.ts +200 -0
  218. package/tests/protocol.spec.ts +23 -6
  219. package/tests/sync.spec.ts +114 -0
  220. package/tests/usage.integration.spec.ts +101 -0
  221. package/tests/usage.spec.ts +171 -0
  222. package/tests/webhook-manager.spec.ts +152 -0
@@ -0,0 +1,80 @@
1
+ import { STRIPE_PAYGATE_ALIAS } from '../consts.js';
2
+ import { fulfillments, idOf, isMissingObject, subscriptions } from '../utils.js';
3
+ /** A charge by id, or `null` when the paygate has none. */
4
+ export const retrieveCharge = async (stripe, chargeId) => {
5
+ try {
6
+ return await stripe.charges.retrieve(chargeId);
7
+ }
8
+ catch (error) {
9
+ if (isMissingObject(error)) {
10
+ return null;
11
+ }
12
+ throw error;
13
+ }
14
+ };
15
+ const subscriptionOfInvoice = async (ctx, stripe, invoiceId) => {
16
+ const latest = await subscriptions(ctx).load({ paygate: STRIPE_PAYGATE_ALIAS, latestInvoiceId: invoiceId });
17
+ if (latest != null) {
18
+ return latest;
19
+ }
20
+ let invoice;
21
+ try {
22
+ invoice = await stripe.invoices.retrieve(invoiceId);
23
+ }
24
+ catch (error) {
25
+ if (isMissingObject(error)) {
26
+ return null;
27
+ }
28
+ throw error;
29
+ }
30
+ // `invoice.subscription` is top-level on the API version the client is pinned to.
31
+ const subscriptionId = idOf(invoice.subscription);
32
+ return subscriptionId != null
33
+ ? await subscriptions(ctx).byExternalId(subscriptionId, STRIPE_PAYGATE_ALIAS)
34
+ : null;
35
+ };
36
+ /**
37
+ * Resolve a refund or a dispute to the record it is about: by payment intent to a fulfillment;
38
+ * by charge to a fulfillment (stored charge, else the charge's payment intent — whose charge id is
39
+ * then remembered), else the charge's invoice; by invoice to the subscription whose latest invoice
40
+ * it is, else the invoice's subscription. `null` when nothing here paid for it.
41
+ */
42
+ export const resolvePaymentTarget = async (ctx, stripe, ref) => {
43
+ const ledger = fulfillments(ctx);
44
+ let charge = ref.charge ?? null;
45
+ let paymentIntentId = ref.paymentIntentId;
46
+ const chargeId = ref.chargeId ?? charge?.id;
47
+ if (paymentIntentId != null) {
48
+ const record = await ledger.load({ paygate: STRIPE_PAYGATE_ALIAS, paymentIntentId });
49
+ if (record != null) {
50
+ return { kind: 'fulfillment', record, charge, paymentIntentId };
51
+ }
52
+ }
53
+ let invoiceId = ref.invoiceId;
54
+ if (chargeId != null) {
55
+ const record = await ledger.load({ paygate: STRIPE_PAYGATE_ALIAS, chargeId });
56
+ if (record != null) {
57
+ return { kind: 'fulfillment', record, charge, paymentIntentId: paymentIntentId ?? record.paymentIntentId };
58
+ }
59
+ charge = charge ?? await retrieveCharge(stripe, chargeId);
60
+ const chargeIntent = idOf(charge?.payment_intent);
61
+ if (chargeIntent != null && chargeIntent !== paymentIntentId) {
62
+ paymentIntentId = chargeIntent;
63
+ const byIntent = await ledger.load({ paygate: STRIPE_PAYGATE_ALIAS, paymentIntentId: chargeIntent });
64
+ if (byIntent != null) {
65
+ const record = byIntent.chargeId == null ? await ledger.update({ ...byIntent, chargeId }) : byIntent;
66
+ return { kind: 'fulfillment', record, charge, paymentIntentId: chargeIntent };
67
+ }
68
+ }
69
+ // `charge.invoice` is top-level on the API version the client is pinned to.
70
+ invoiceId = invoiceId ?? idOf(charge?.invoice);
71
+ }
72
+ if (invoiceId != null) {
73
+ const record = await subscriptionOfInvoice(ctx, stripe, invoiceId);
74
+ if (record != null) {
75
+ return { kind: 'subscription', record, charge, paymentIntentId, invoiceId };
76
+ }
77
+ }
78
+ return null;
79
+ };
80
+ //# sourceMappingURL=refunds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refunds.js","sourceRoot":"","sources":["../../src/plugins/refunds.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAmBhF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,MAAc,EAAE,QAAgB,EAAiC,EAAE;IACtG,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,KAAK,EACjC,GAAe,EAAE,MAAc,EAAE,SAAiB,EACP,EAAE;IAC7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAA;IAC3G,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAA;IACf,CAAC;IACD,IAAI,OAAuB,CAAA;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IACD,kFAAkF;IAClF,MAAM,cAAc,GAAG,IAAI,CAAE,OAAyE,CAAC,YAAY,CAAC,CAAA;IAEpH,OAAO,cAAc,IAAI,IAAI;QAC3B,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,oBAAoB,CAAC;QAC7E,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,GAAe,EAAE,MAAc,EAAE,GAAqB,EACvB,EAAE;IACjC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,CAAA;IAC/B,IAAI,eAAe,GAAG,GAAG,CAAC,eAAe,CAAA;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAA;IAE3C,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC,CAAA;QACpF,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACjE,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,CAAA;IAC7B,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC7E,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,IAAI,MAAM,CAAC,eAAe,EAAE,CAAA;QAC5G,CAAC;QACD,MAAM,GAAG,MAAM,IAAI,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QACjD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;YAC7D,eAAe,GAAG,YAAY,CAAA;YAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAA;YACpG,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;gBACpG,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,CAAA;YAC/E,CAAC;QACH,CAAC;QACD,4EAA4E;QAC5E,SAAS,GAAG,SAAS,IAAI,IAAI,CAAE,MAA0E,EAAE,OAAO,CAAC,CAAA;IACrH,CAAC;IAED,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QAClE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -1,6 +1,8 @@
1
- import Stripe from 'stripe';
2
- import type { PaymentPlan, PaymentPlugin, PaymentProduct } from '../types.js';
3
- export declare const amountCheckoutLineItem: (product: PaymentProduct, plan: PaymentPlan, amountMinor: number) => {
1
+ import type Stripe from 'stripe';
2
+ import { TaxBehavior } from '@owlmeans/payment';
3
+ import type { Context as ApiContext } from '@owlmeans/server-api';
4
+ import type { CheckoutPlugin, CreateLinkParams, PaymentPlan, PaymentProduct } from '../types.js';
5
+ export declare const amountCheckoutLineItem: (product: PaymentProduct, plan: PaymentPlan, amountMinor: number, behavior?: TaxBehavior) => {
4
6
  lineItem: Stripe.Checkout.SessionCreateParams.LineItem;
5
7
  chargeMinor: number;
6
8
  currency: string;
@@ -10,5 +12,35 @@ export declare const quantityCheckoutLineItem: (price: Stripe.Price, policy: {
10
12
  maximum: number;
11
13
  default: number;
12
14
  }) => Stripe.Checkout.SessionCreateParams.LineItem;
13
- export declare const stripePlugin: PaymentPlugin;
15
+ /** The plan an amount/quantity checkout of a consumable product sells: the named one, else the first. */
16
+ export declare const consumablePlanOf: (ctx: ApiContext, productSku: string, planSku?: string) => Promise<{
17
+ product: PaymentProduct;
18
+ plan: PaymentPlan;
19
+ }>;
20
+ /**
21
+ * Stripe refuses `consent_collection.terms_of_service` while the account has no terms-of-service URL
22
+ * in its Dashboard (Settings → Public details): an `invalid_request_error` on the param
23
+ * `consent_collection[terms_of_service]` saying "You cannot collect consent to your terms of service
24
+ * unless a URL is set in the Stripe Dashboard …". Matched on the param with a terms message, or on
25
+ * the message alone; any other error type never matches.
26
+ */
27
+ export declare const isMissingTermsUrl: (error: unknown) => boolean;
28
+ /**
29
+ * A Stripe Checkout URL: an amount or quantity purchase of a consumable product, or a subscription
30
+ * to `planSku` (else the product's first recurring plan). A free plan is never checked out.
31
+ *
32
+ * With a consumer-rights policy: a locked billing country overrides the declared one (another is
33
+ * `BillingCountryLocked`); the charge currency is the profile's, else the region's; an amount
34
+ * checkout is narrowed by the checkout plugins (`CheckoutLimitExceeded`) and charged without FX
35
+ * when its policy currency is the charge currency; a subscription needs a fresh start request
36
+ * bound to its plan; the terms checkbox and the legal submit texts come from the copy.
37
+ */
38
+ export declare const createCheckoutLink: (ctx: ApiContext, stripe: Stripe, params: CreateLinkParams, plugins?: readonly CheckoutPlugin[]) => Promise<string>;
39
+ /**
40
+ * Verify a Stripe webhook against the configured override secret, then the managed endpoint's
41
+ * stored one, and dispatch it.
42
+ *
43
+ * @throws PaygateError('signature') | WebhookSetupError('secret')
44
+ */
45
+ export declare const handleStripeWebhook: (ctx: ApiContext, stripe: Stripe, request: unknown) => Promise<void>;
14
46
  //# sourceMappingURL=stripe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/plugins/stripe.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAS3B,OAAO,KAAK,EAAoB,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA8D/F,eAAO,MAAM,sBAAsB,YACxB,cAAc,QAAQ,WAAW,eAAe,MAAM,KAC9D;IAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAejG,CAAA;AAED,eAAO,MAAM,wBAAwB,UAC5B,MAAM,CAAC,KAAK,UAAU;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KACjF,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAIrC,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,aAoF1B,CAAA"}
1
+ {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/plugins/stripe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,EAG8C,WAAW,EAC/D,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAejE,OAAO,KAAK,EACO,cAAc,EAAuB,gBAAgB,EAAE,WAAW,EAAE,cAAc,EACpG,MAAM,aAAa,CAAA;AAqGpB,eAAO,MAAM,sBAAsB,YACxB,cAAc,QAAQ,WAAW,eAAe,MAAM,aAAY,WAAW,KACrF;IAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAejG,CAAA;AAED,eAAO,MAAM,wBAAwB,UAC5B,MAAM,CAAC,KAAK,UAAU;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KACjF,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAIrC,CAAA;AAEF,yGAAyG;AACzG,eAAO,MAAM,gBAAgB,QACtB,UAAU,cAAc,MAAM,YAAY,MAAM,KACpD,OAAO,CAAC;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAWxD,CAAA;AAuJD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UAAW,OAAO,KAAG,OAelD,CAAA;AA+GD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,QACxB,UAAU,UAAU,MAAM,UAAU,gBAAgB,YAAW,SAAS,cAAc,EAAE,KAC5F,OAAO,CAAC,MAAM,CAuKhB,CAAA;AAQD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAe,UAAU,UAAU,MAAM,WAAW,OAAO,KAAG,OAAO,CAAC,IAAI,CAwBzG,CAAA"}