@antelopejs/dms-saas 0.3.8 → 0.3.10

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 (65) hide show
  1. package/README.md +45 -0
  2. package/dist/invoice-line-items/injection.js +3 -4
  3. package/dist/invoice-line-items/injection.js.map +1 -1
  4. package/dist/routes/tenant/index.d.ts +2 -0
  5. package/dist/routes/tenant/index.js +2 -0
  6. package/dist/routes/tenant/index.js.map +1 -1
  7. package/dist/routes/tenant/tenant-plan-checkout-recovery.d.ts +21 -0
  8. package/dist/routes/tenant/tenant-plan-checkout-recovery.js +140 -0
  9. package/dist/routes/tenant/tenant-plan-checkout-recovery.js.map +1 -0
  10. package/dist/routes/tenant/tenant-plan-checkout.d.ts +2 -0
  11. package/dist/routes/tenant/tenant-plan-checkout.js +180 -0
  12. package/dist/routes/tenant/tenant-plan-checkout.js.map +1 -0
  13. package/dist/routes/tenant/tenant-plan-ops.d.ts +0 -1
  14. package/dist/routes/tenant/tenant-plan-ops.js +0 -100
  15. package/dist/routes/tenant/tenant-plan-ops.js.map +1 -1
  16. package/dist/routes/tenant/tenant-plan.d.ts +3 -0
  17. package/dist/routes/tenant/tenant-plan.js +29 -1
  18. package/dist/routes/tenant/tenant-plan.js.map +1 -1
  19. package/dist/stripe/client.d.ts +1 -0
  20. package/dist/stripe/client.js +3 -2
  21. package/dist/stripe/client.js.map +1 -1
  22. package/dist/stripe/index.d.ts +1 -0
  23. package/dist/stripe/index.js +1 -0
  24. package/dist/stripe/index.js.map +1 -1
  25. package/dist/stripe/payload-shapes.d.ts +17 -0
  26. package/dist/stripe/payload-shapes.js +58 -0
  27. package/dist/stripe/payload-shapes.js.map +1 -0
  28. package/dist/stripe/plan-schedule.js +2 -1
  29. package/dist/stripe/plan-schedule.js.map +1 -1
  30. package/dist/stripe/upcoming-invoice.d.ts +5 -1
  31. package/dist/stripe/upcoming-invoice.js +20 -5
  32. package/dist/stripe/upcoming-invoice.js.map +1 -1
  33. package/dist/stripe/webhook-checkout.js +4 -1
  34. package/dist/stripe/webhook-checkout.js.map +1 -1
  35. package/dist/stripe/webhook-credit-notes.js +4 -8
  36. package/dist/stripe/webhook-credit-notes.js.map +1 -1
  37. package/dist/stripe/webhook-handlers.js +7 -4
  38. package/dist/stripe/webhook-handlers.js.map +1 -1
  39. package/dist/stripe/webhook-shared.js +9 -5
  40. package/dist/stripe/webhook-shared.js.map +1 -1
  41. package/dist/stripe/workspace-checkout.d.ts +6 -0
  42. package/dist/stripe/workspace-checkout.js +60 -2
  43. package/dist/stripe/workspace-checkout.js.map +1 -1
  44. package/dist/upcoming-invoice/mapping.d.ts +2 -2
  45. package/dist/upcoming-invoice/mapping.js +25 -14
  46. package/dist/upcoming-invoice/mapping.js.map +1 -1
  47. package/dist/upcoming-invoice/pricing.js +3 -3
  48. package/dist/upcoming-invoice/pricing.js.map +1 -1
  49. package/dist/workspaces/provisioning.js +2 -4
  50. package/dist/workspaces/provisioning.js.map +1 -1
  51. package/frontend-vue/app/components/PendingCheckoutModal.vue +78 -0
  52. package/frontend-vue/app/components/PlanComparisonModal.vue +5 -0
  53. package/frontend-vue/app/components/PlanUpgradeModal.vue +5 -0
  54. package/frontend-vue/app/components/TenantPlanCard.vue +27 -1
  55. package/frontend-vue/app/components/WorkspaceCreateModal.vue +2 -0
  56. package/frontend-vue/app/composables/useApiErrorMessage.ts +9 -8
  57. package/frontend-vue/app/composables/usePendingCheckout.ts +88 -0
  58. package/frontend-vue/app/composables/useSaasRegistration.ts +1 -0
  59. package/frontend-vue/app/composables/useStripePaymentElement.ts +90 -13
  60. package/frontend-vue/app/composables/useTenantPlan.ts +41 -1
  61. package/frontend-vue/app/custom-pages/auth/no-workspace.vue +1 -0
  62. package/frontend-vue/i18n/locales/saas-en-GB.json +18 -2
  63. package/frontend-vue/i18n/locales/saas-fr-FR.json +18 -2
  64. package/frontend-vue/package.json +3 -0
  65. package/package.json +2 -2
@@ -5,26 +5,18 @@ exports.loadAndValidateTargetPlan = loadAndValidateTargetPlan;
5
5
  exports.assertSeatLimit = assertSeatLimit;
6
6
  exports.finalizeImmediateChange = finalizeImmediateChange;
7
7
  exports.isPaidPlan = isPaidPlan;
8
- exports.startPaidCheckout = startPaidCheckout;
9
8
  exports.insertFreeSubscription = insertFreeSubscription;
10
9
  exports.scheduleDowngrade = scheduleDowngrade;
11
10
  exports.dropPendingChange = dropPendingChange;
12
11
  exports.applyImmediateChange = applyImmediateChange;
13
12
  const node_crypto_1 = require("node:crypto");
14
13
  const interface_api_util_1 = require("@antelopejs/interface-api-util");
15
- const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
16
14
  const tenant_lifecycle_1 = require("@antelopejs/interface-dms/tenant-lifecycle");
17
15
  const billing_state_1 = require("../../billing-state");
18
- const config_1 = require("../../config");
19
- const db_1 = require("../../db");
20
16
  const plan_changes_1 = require("../../plan-changes");
21
17
  const plans_1 = require("../../plans");
22
18
  const client_1 = require("../../stripe/client");
23
- const workspace_checkout_1 = require("../../stripe/workspace-checkout");
24
- const utils_1 = require("../../utils");
25
19
  const workers_1 = require("../../workers");
26
- const complimentary_1 = require("../../workspaces/complimentary");
27
- const trial_identity_model_1 = require("../../workspaces/db/trial-identity.model");
28
20
  exports.HTTP_NOT_FOUND = 404;
29
21
  exports.HTTP_BAD_REQUEST = 400;
30
22
  const HTTP_PAYMENT_REQUIRED = 402;
@@ -32,26 +24,12 @@ exports.HTTP_CONFLICT = 409;
32
24
  exports.PAST_DUE_STATUS = "past_due";
33
25
  const PRORATION_BEHAVIOR = "create_prorations";
34
26
  const ACTIVE_STATUS = "active";
35
- const PENDING_PAYMENT_STATUS = "pending_payment";
36
- const PLACEHOLDER_PLAN_ID = null;
37
27
  exports.UNCHANGED_RESULT_BASE = {
38
28
  changed: false,
39
29
  scheduled: false,
40
30
  effectiveAt: null,
41
31
  checkoutUrl: null,
42
32
  };
43
- function asNonEmptyString(value) {
44
- return typeof value === "string" && value.trim().length > 0
45
- ? value.trim()
46
- : null;
47
- }
48
- function validateCheckoutRedirectInput(body) {
49
- const successUrl = asNonEmptyString(body.successUrl);
50
- const cancelUrl = asNonEmptyString(body.cancelUrl);
51
- (0, interface_api_util_1.assert)(successUrl && (0, config_1.isAllowedRedirectUrl)(successUrl), exports.HTTP_BAD_REQUEST, "saas.errors.billing.invalid_return_url");
52
- (0, interface_api_util_1.assert)(cancelUrl && (0, config_1.isAllowedRedirectUrl)(cancelUrl), exports.HTTP_BAD_REQUEST, "saas.errors.billing.invalid_return_url");
53
- return { successUrl, cancelUrl };
54
- }
55
33
  async function loadAndValidateTargetPlan(planModel, planId, customerType) {
56
34
  const storedPlan = await planModel.get(planId);
57
35
  (0, interface_api_util_1.assert)(storedPlan && !storedPlan.isDeleted && storedPlan.isActive, exports.HTTP_BAD_REQUEST, "saas.errors.plan.invalid");
@@ -102,84 +80,6 @@ async function syncStripePlanChange(subscription, newPlan, operationId) {
102
80
  function isPaidPlan(plan) {
103
81
  return !!plan.paymentProviderRefs?.stripePriceId;
104
82
  }
105
- async function resolveCheckoutTrialDays(newPlan, ownerEmail, tenantId) {
106
- if (!newPlan.trialDays || newPlan.trialDays <= 0)
107
- return 0;
108
- const trialConsumptionModel = (0, interface_database_decorators_1.GetModel)(db_1.TrialConsumptionModel);
109
- const alreadyConsumed = await trialConsumptionModel.existsForIdentity((0, utils_1.hashEmail)(ownerEmail), null);
110
- if (alreadyConsumed)
111
- return 0;
112
- const identities = (0, interface_database_decorators_1.GetModel)(trial_identity_model_1.TrialIdentityModel);
113
- const id = (0, trial_identity_model_1.trialIdentityId)("email", (0, utils_1.hashEmail)(ownerEmail));
114
- if ((await identities.get(id))?.tenantId)
115
- return 0;
116
- return (await identities.reserve(id, tenantId)) ? newPlan.trialDays : 0;
117
- }
118
- async function attachCheckoutSession(checkout, subscription, tenantSubscriptionModel, operationId) {
119
- await tenantSubscriptionModel.updateDuringTransition(subscription._id, operationId, {
120
- isComplimentary: (0, complimentary_1.isComplimentarySubscription)(subscription),
121
- stripeCustomerId: checkout.customerId,
122
- stripeCheckoutSessionId: checkout.sessionId,
123
- updatedAt: new Date(),
124
- });
125
- }
126
- async function initializeCheckoutSubscription(request) {
127
- if (request.subscription)
128
- return request.subscription;
129
- await request.tenantSubscriptionModel.insert({
130
- _id: request.tenantId,
131
- planId: PLACEHOLDER_PLAN_ID,
132
- status: PENDING_PAYMENT_STATUS,
133
- isComplimentary: false,
134
- paidUsagePeriods: [],
135
- stripeCustomerId: null,
136
- stripeSubscriptionId: null,
137
- stripeCheckoutSessionId: null,
138
- createdBy: request.user._id,
139
- createdAt: new Date(),
140
- updatedAt: new Date(),
141
- });
142
- const subscription = await request.tenantSubscriptionModel.get(request.tenantId);
143
- if (!subscription)
144
- throw new Error("Checkout subscription acknowledgement requires reconciliation");
145
- return subscription;
146
- }
147
- async function createAdmittedCheckout(request) {
148
- const { tenantId, user, newPlan, body, tenantSubscriptionModel } = request;
149
- const redirect = validateCheckoutRedirectInput(body);
150
- const stripePriceId = newPlan.paymentProviderRefs?.stripePriceId;
151
- (0, interface_api_util_1.assert)(stripePriceId, exports.HTTP_BAD_REQUEST, "saas.errors.plan.no_stripe_price");
152
- const subscription = await initializeCheckoutSubscription(request);
153
- const operationId = (0, node_crypto_1.randomUUID)();
154
- await tenantSubscriptionModel.beginTransition(subscription, {
155
- operationId,
156
- kind: "checkout",
157
- targetPlanId: newPlan._id,
158
- requestedAt: new Date(),
159
- });
160
- const trialDays = await resolveCheckoutTrialDays(newPlan, user.email, tenantId);
161
- const checkout = await (0, workspace_checkout_1.createWorkspaceCheckoutSession)({
162
- operationId,
163
- tenantId,
164
- ownerEmail: user.email,
165
- stripePriceId,
166
- trialDays,
167
- successUrl: redirect.successUrl,
168
- cancelUrl: redirect.cancelUrl,
169
- planId: newPlan._id,
170
- existingCustomerId: subscription?.stripeCustomerId ?? undefined,
171
- });
172
- await attachCheckoutSession(checkout, subscription, tenantSubscriptionModel, operationId);
173
- await (0, billing_state_1.recomputeTenantBillingState)(tenantId);
174
- return {
175
- ...exports.UNCHANGED_RESULT_BASE,
176
- planId: newPlan._id,
177
- checkoutUrl: checkout.url,
178
- };
179
- }
180
- async function startPaidCheckout(request) {
181
- return (0, tenant_lifecycle_1.runTenantLifecycleOperation)(request.tenantId, () => createAdmittedCheckout(request));
182
- }
183
83
  async function insertFreeSubscription(user, newPlanId, tenantId, tenantSubscriptionModel) {
184
84
  await (0, tenant_lifecycle_1.runTenantLifecycleOperation)(tenantId, () => tenantSubscriptionModel.insert([
185
85
  {
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-plan-ops.js","sourceRoot":"","sources":["../../../src/routes/tenant/tenant-plan-ops.ts"],"names":[],"mappings":";;;AAqIA,8DAgCC;AAOD,0CAUC;AAqBD,0DAaC;AAiCD,gCAEC;AAuHD,8CAMC;AAED,wDA6BC;AAED,8CAiBC;AAED,8CAWC;AAOD,oDAgCC;AA1dD,6CAAyC;AACzC,uEAAwD;AACxD,6FAAqE;AACrE,iFAAyF;AAEzF,uDAAkE;AAClE,yCAAoD;AACpD,iCASkB;AAClB,qDAI4B;AAC5B,uCAOqB;AACrB,gDAAsD;AACtD,wEAAiF;AACjF,uCAAwC;AACxC,2CAA0D;AAC1D,kEAA6E;AAC7E,mFAGkD;AAErC,QAAA,cAAc,GAAG,GAAG,CAAC;AACrB,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACrB,QAAA,aAAa,GAAG,GAAG,CAAC;AACpB,QAAA,eAAe,GAA6B,UAAU,CAAC;AACpE,MAAM,kBAAkB,GAAG,mBAA4B,CAAC;AACxD,MAAM,aAAa,GAAG,QAAiB,CAAC;AACxC,MAAM,sBAAsB,GAAG,iBAA0B,CAAC;AAC1D,MAAM,mBAAmB,GAAkB,IAAI,CAAC;AA6CnC,QAAA,qBAAqB,GAAG;IACnC,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CACT,CAAC;AAEX,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAoB;IAEpB,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,IAAA,2BAAM,EACJ,UAAU,IAAI,IAAA,6BAAoB,EAAC,UAAU,CAAC,EAC9C,wBAAgB,EAChB,wCAAwC,CACzC,CAAC;IACF,IAAA,2BAAM,EACJ,SAAS,IAAI,IAAA,6BAAoB,EAAC,SAAS,CAAC,EAC5C,wBAAgB,EAChB,wCAAwC,CACzC,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AAOM,KAAK,UAAU,yBAAyB,CAC7C,SAAoB,EACpB,MAAc,EACd,YAAuC;IAEvC,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAA,2BAAM,EACJ,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,EAC1D,wBAAgB,EAChB,0BAA0B,CAC3B,CAAC;IACF,IAAA,2BAAM,EACJ,YAAY,EACZ,wBAAgB,EAChB,wCAAwC,CACzC,CAAC;IACF,IAAA,2BAAM,EACJ,UAAU,CAAC,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,KAAK,YAAY,EACrE,wBAAgB,EAChB,kDAAkD,CACnD,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,IAAA,4BAAoB,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAIlE,IAAA,2BAAM,EACJ,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,EAClE,wBAAgB,EAChB,yCAAyC,CAC1C,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAOM,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,IAAU;IAEV,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAkB,EAAC,QAAQ,CAAC,CAAC;IACzD,IAAA,2BAAM,EACJ,IAAA,2BAAmB,EAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EACnD,qBAAqB,EACrB,+CAA+C,CAChD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,YAAgC,EAChC,OAAa,EACb,SAAiB,EACjB,uBAAgD,EAChD,WAAmB;IAEnB,MAAM,oBAAoB,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,MAAM,uBAAuB,CAAC,sBAAsB,CAClD,YAAY,CAAC,GAAG,EAChB,WAAW,EACX;QACE,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CACF,CAAC;AACJ,CAAC;AAGM,KAAK,UAAU,uBAAuB,CAC3C,QAAgB,EAChB,YAAgC,EAChC,OAAa;IAEb,MAAM,IAAA,mCAAyB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,IAAA,8BAAsB,EAAC;QAC3B,QAAQ;QACR,IAAI,EAAE,OAAO;QACb,oBAAoB,EAAE,YAAY,CAAC,oBAAoB;QACvD,cAAc,EAAE,yBAAyB,QAAQ,IAAI,YAAY,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;KACvF,CAAC,CAAC;IACH,MAAM,IAAA,2CAA2B,EAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,YAAgC,EAChC,OAAa,EACb,WAAmB;IAEnB,IAAI,CAAC,YAAY,CAAC,oBAAoB;QAAE,OAAO;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC;IACjE,IAAA,2BAAM,EAAC,aAAa,EAAE,wBAAgB,EAAE,kCAAkC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IACjC,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAC5D,YAAY,CAAC,oBAAoB,CAClC,CAAC;IACF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAA,2BAAM,EAAC,MAAM,EAAE,wBAAgB,EAAE,yCAAyC,CAAC,CAAC;IAC5E,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAC/B,YAAY,CAAC,oBAAoB,EACjC;QACE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QAC7C,kBAAkB,EAAE,kBAAkB;QACtC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACjC,EACD;QACE,cAAc,EAAE,eAAe,WAAW,EAAE;KAC7C,CACF,CAAC;AACJ,CAAC;AAMD,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAAa,EACb,UAAkB,EAClB,QAAgB;IAEhB,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,qBAAqB,GAAG,IAAA,wCAAQ,EAAC,0BAAqB,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC,iBAAiB,CACnE,IAAA,iBAAS,EAAC,UAAU,CAAC,EACrB,IAAI,CACL,CAAC;IACF,IAAI,eAAe;QAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAA,wCAAQ,EAAC,yCAAkB,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,IAAA,sCAAe,EAAC,OAAO,EAAE,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ;QAAE,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AASD,KAAK,UAAU,qBAAqB,CAClC,QAA+B,EAC/B,YAAgC,EAChC,uBAAgD,EAChD,WAAmB;IAEnB,MAAM,uBAAuB,CAAC,sBAAsB,CAClD,YAAY,CAAC,GAAG,EAChB,WAAW,EACX;QACE,eAAe,EAAE,IAAA,2CAA2B,EAAC,YAAY,CAAC;QAC1D,gBAAgB,EAAE,QAAQ,CAAC,UAAU;QACrC,uBAAuB,EAAE,QAAQ,CAAC,SAAS;QAC3C,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,OAA0B;IAE1B,IAAI,OAAO,CAAC,YAAY;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IACtD,MAAM,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;QAC3C,GAAG,EAAE,OAAO,CAAC,QAAQ;QACrB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,sBAAsB;QAC9B,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,IAAI;QACtB,oBAAoB,EAAE,IAAI;QAC1B,uBAAuB,EAAE,IAAI;QAC7B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAC3B,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAC5D,OAAO,CAAC,QAAQ,CACjB,CAAC;IACF,IAAI,CAAC,YAAY;QACf,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAA0B;IAE1B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC;IAC3E,MAAM,QAAQ,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC;IACjE,IAAA,2BAAM,EAAC,aAAa,EAAE,wBAAgB,EAAE,kCAAkC,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,MAAM,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAA,wBAAU,GAAE,CAAC;IACjC,MAAM,uBAAuB,CAAC,eAAe,CAAC,YAAY,EAAE;QAC1D,WAAW;QACX,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,OAAO,CAAC,GAAG;QACzB,WAAW,EAAE,IAAI,IAAI,EAAE;KACxB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAC9C,OAAO,EACP,IAAI,CAAC,KAAK,EACV,QAAQ,CACT,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,IAAA,mDAA8B,EAAC;QACpD,WAAW;QACX,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,KAAK;QACtB,aAAa;QACb,SAAS;QACT,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,IAAI,SAAS;KAChE,CAAC,CAAC;IAEH,MAAM,qBAAqB,CACzB,QAAQ,EACR,YAAY,EACZ,uBAAuB,EACvB,WAAW,CACZ,CAAC;IACF,MAAM,IAAA,2CAA2B,EAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,6BAAqB;QACxB,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,WAAW,EAAE,QAAQ,CAAC,GAAG;KAC1B,CAAC;AACJ,CAAC;AAGM,KAAK,UAAU,iBAAiB,CACrC,OAA0B;IAE1B,OAAO,IAAA,8CAA2B,EAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CACxD,sBAAsB,CAAC,OAAO,CAAC,CAChC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,SAAiB,EACjB,QAAgB,EAChB,uBAAgD;IAEhD,MAAM,IAAA,8CAA2B,EAAC,QAAQ,EAAE,GAAG,EAAE,CAC/C,uBAAuB,CAAC,MAAM,CAAC;QAC7B;YACE,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,aAAa;YACrB,eAAe,EAAE,KAAK;YACtB,gBAAgB,EAAE,EAAE;YACpB,gBAAgB,EAAE,IAAI;YACtB,oBAAoB,EAAE,IAAI;YAC1B,uBAAuB,EAAE,IAAI;YAC7B,SAAS,EAAE,IAAI,CAAC,GAAG;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB;KACF,CAAC,CACH,CAAC;IACF,MAAM,IAAA,2CAA2B,EAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,6BAAqB;QACxB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,YAAgC,EAChC,OAAa;IAEb,MAAM,WAAW,GAAG,MAAM,IAAA,yCAA0B,EAAC;QACnD,QAAQ;QACR,YAAY;QACZ,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;IACH,MAAM,IAAA,2CAA2B,EAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,6BAAqB;QACxB,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,WAAW;KACZ,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,YAAgC;IAEhC,MAAM,IAAA,qCAAsB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,IAAA,2CAA2B,EAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,6BAAqB;QACxB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;KAClC,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,YAAgC,EAChC,OAAa,EACb,uBAAgD,EAChD,cAAuC;IAEvC,MAAM,MAAM,GACV,cAAc;QACb;YACC,WAAW,EAAE,IAAA,wBAAU,GAAE;YACzB,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,OAAO,CAAC,GAAG;YACzB,WAAW,EAAE,IAAI,IAAI,EAAE;SACU,CAAC;IACtC,MAAM,uBAAuB,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,IAAA,qCAAsB,EAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACzE,MAAM,eAAe,CACnB,YAAY,EACZ,OAAO,EACP,OAAO,CAAC,GAAG,EACX,uBAAuB,EACvB,MAAM,CAAC,WAAW,CACnB,CAAC;IACF,MAAM,uBAAuB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC,cAAc;QACjB,MAAM,uBAAuB,CAAC,kBAAkB,CAC9C,YAAY,CAAC,GAAG,EAChB,MAAM,CAAC,WAAW,EAClB,EAAE,CACH,CAAC;IACJ,OAAO,EAAE,GAAG,6BAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"tenant-plan-ops.js","sourceRoot":"","sources":["../../../src/routes/tenant/tenant-plan-ops.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { TenantModel } from "@antelopejs/interface-dms/db";
2
2
  import type { User } from "@antelopejs/interface-dms/auth/db";
3
3
  import { FeatureModel, PlanModel, TenantBillingInfoModel, TenantSubscriptionModel } from "../../db";
4
4
  import { type ChangePlanBody, type ChangePlanResult, type CurrentPlanResult } from "./tenant-plan-ops";
5
+ import { type CancelCheckoutResult, type PendingCheckoutResult } from "./tenant-plan-checkout-recovery";
5
6
  declare const SaasTenantPlanController_base: import("@antelopejs/interface-api").ControllerClass<object>;
6
7
  export declare class SaasTenantPlanController extends SaasTenantPlanController_base {
7
8
  tenantModel: TenantModel;
@@ -11,6 +12,8 @@ export declare class SaasTenantPlanController extends SaasTenantPlanController_b
11
12
  private loadSubscription;
12
13
  getCurrentPlan(_user: User, ctx: any, tenantSubscriptionModel: TenantSubscriptionModel): Promise<CurrentPlanResult>;
13
14
  cancelPendingChange(user: User, ctx: any, tenantSubscriptionModel: TenantSubscriptionModel): Promise<ChangePlanResult>;
15
+ getPendingCheckout(_user: User, tenantSubscriptionModel: TenantSubscriptionModel): Promise<PendingCheckoutResult>;
16
+ cancelCheckout(_user: User, operationId: unknown, ctx: any, tenantSubscriptionModel: TenantSubscriptionModel): Promise<CancelCheckoutResult>;
14
17
  changePlan(user: User, body: ChangePlanBody, ctx: any, tenantSubscriptionModel: TenantSubscriptionModel, tenantBillingInfoModel: TenantBillingInfoModel): Promise<ChangePlanResult>;
15
18
  private assertPlanChangeAllowed;
16
19
  private resolveSamePlanRequest;
@@ -18,6 +18,7 @@ const interface_api_util_1 = require("@antelopejs/interface-api-util");
18
18
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
19
19
  const db_1 = require("@antelopejs/interface-dms/db");
20
20
  const guards_1 = require("@antelopejs/interface-dms/guards");
21
+ const tenant_lifecycle_1 = require("@antelopejs/interface-dms/tenant-lifecycle");
21
22
  const request_tenant_1 = require("@antelopejs/interface-dms/request-tenant");
22
23
  const tenant_scoped_model_1 = require("@antelopejs/interface-dms/tenant-scoped-model");
23
24
  const tenant_access_1 = require("@antelopejs/interface-dms/tenant-access");
@@ -28,6 +29,8 @@ const billing_identity_1 = require("../../workspaces/billing-identity");
28
29
  const complimentary_1 = require("../../workspaces/complimentary");
29
30
  const default_plan_1 = require("../../workspaces/default-plan");
30
31
  const tenant_plan_ops_1 = require("./tenant-plan-ops");
32
+ const tenant_plan_checkout_1 = require("./tenant-plan-checkout");
33
+ const tenant_plan_checkout_recovery_1 = require("./tenant-plan-checkout-recovery");
31
34
  function startsPaidCheckout(newPlan, subscription) {
32
35
  return (0, tenant_plan_ops_1.isPaidPlan)(newPlan) && !subscription?.stripeSubscriptionId;
33
36
  }
@@ -91,6 +94,13 @@ class SaasTenantPlanController extends (0, interface_api_1.Controller)("/api/saa
91
94
  (0, interface_api_util_1.assert)(subscription?.pendingPlanId, tenant_plan_ops_1.HTTP_BAD_REQUEST, "saas.errors.plan.no_pending_change");
92
95
  return (0, tenant_plan_ops_1.dropPendingChange)(tenantId, subscription);
93
96
  }
97
+ async getPendingCheckout(_user, tenantSubscriptionModel) {
98
+ return (0, tenant_plan_checkout_recovery_1.describePendingCheckout)(await tenantSubscriptionModel.findOne());
99
+ }
100
+ async cancelCheckout(_user, operationId, ctx, tenantSubscriptionModel) {
101
+ const tenantId = (0, request_tenant_1.getRequestTenantId)(ctx);
102
+ return (0, tenant_lifecycle_1.runTenantLifecycleOperation)(tenantId, async () => (0, tenant_plan_checkout_recovery_1.cancelPendingCheckout)(await tenantSubscriptionModel.findOne(), tenantSubscriptionModel, typeof operationId === "string" && operationId ? operationId : null));
103
+ }
94
104
  async changePlan(user, body, ctx, tenantSubscriptionModel, tenantBillingInfoModel) {
95
105
  const tenantId = (0, request_tenant_1.getRequestTenantId)(ctx);
96
106
  const tenant = await this.tenantModel.get(tenantId);
@@ -131,7 +141,7 @@ class SaasTenantPlanController extends (0, interface_api_1.Controller)("/api/saa
131
141
  async routePlanChange(request) {
132
142
  const { tenantId, user, newPlan, subscription, tenantSubscriptionModel } = request;
133
143
  if (startsPaidCheckout(newPlan, subscription)) {
134
- return (0, tenant_plan_ops_1.startPaidCheckout)(request);
144
+ return (0, tenant_plan_checkout_1.startPaidCheckout)(request);
135
145
  }
136
146
  if (!subscription) {
137
147
  return (0, tenant_plan_ops_1.insertFreeSubscription)(user, newPlan._id, tenantId, tenantSubscriptionModel);
@@ -183,6 +193,24 @@ __decorate([
183
193
  __metadata("design:paramtypes", [Function, Object, db_2.TenantSubscriptionModel]),
184
194
  __metadata("design:returntype", Promise)
185
195
  ], SaasTenantPlanController.prototype, "cancelPendingChange", null);
196
+ __decorate([
197
+ (0, interface_api_1.Get)("/checkout"),
198
+ __param(0, (0, guards_1.AuthTenantOwner)({ bypassTenantAccessGate: true })),
199
+ __param(1, (0, tenant_scoped_model_1.TenantScopedModel)(db_2.TenantSubscriptionModel)),
200
+ __metadata("design:type", Function),
201
+ __metadata("design:paramtypes", [Function, db_2.TenantSubscriptionModel]),
202
+ __metadata("design:returntype", Promise)
203
+ ], SaasTenantPlanController.prototype, "getPendingCheckout", null);
204
+ __decorate([
205
+ (0, interface_api_1.Delete)("/checkout"),
206
+ __param(0, (0, guards_1.AuthTenantOwner)({ bypassTenantAccessGate: true })),
207
+ __param(1, (0, interface_api_1.Parameter)(tenant_plan_checkout_recovery_1.CHECKOUT_OPERATION_PARAM, "query")),
208
+ __param(2, (0, interface_api_1.Context)()),
209
+ __param(3, (0, tenant_scoped_model_1.TenantScopedModel)(db_2.TenantSubscriptionModel)),
210
+ __metadata("design:type", Function),
211
+ __metadata("design:paramtypes", [Function, Object, Object, db_2.TenantSubscriptionModel]),
212
+ __metadata("design:returntype", Promise)
213
+ ], SaasTenantPlanController.prototype, "cancelCheckout", null);
186
214
  __decorate([
187
215
  (0, interface_api_1.Put)("/"),
188
216
  __param(0, (0, guards_1.AuthTenantOwner)({ bypassTenantAccessGate: true })),
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-plan.js","sourceRoot":"","sources":["../../../src/routes/tenant/tenant-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenant-plan.js","sourceRoot":"","sources":["../../../src/routes/tenant/tenant-plan.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import Stripe from "stripe";
2
2
  import type { DmsSaasStripeConfig } from "../types";
3
+ export declare const STRIPE_API_VERSION: Stripe.LatestApiVersion;
3
4
  export declare function initStripeClient(config: DmsSaasStripeConfig): void;
4
5
  export declare function isStripeConfigured(): boolean;
5
6
  export declare function getStripeClient(): Stripe;
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.STRIPE_API_VERSION = void 0;
6
7
  exports.initStripeClient = initStripeClient;
7
8
  exports.isStripeConfigured = isStripeConfigured;
8
9
  exports.getStripeClient = getStripeClient;
9
10
  exports.getStripeWebhookSecret = getStripeWebhookSecret;
10
11
  const stripe_1 = __importDefault(require("stripe"));
11
- const STRIPE_API_VERSION = "2024-11-20.acacia";
12
+ exports.STRIPE_API_VERSION = "2025-08-27.basil";
12
13
  const SECRET_KEY_PREFIX = "sk_";
13
14
  const PLACEHOLDER_MARKER = "placeholder";
14
15
  let stripeClient = null;
@@ -21,7 +22,7 @@ function isUsableSecretKey(key) {
21
22
  }
22
23
  function initStripeClient(config) {
23
24
  stripeClient = new stripe_1.default(config.secretKey, {
24
- apiVersion: STRIPE_API_VERSION,
25
+ apiVersion: exports.STRIPE_API_VERSION,
25
26
  });
26
27
  stripeWebhookSecret = config.webhookSecret;
27
28
  stripeConfigured = isUsableSecretKey(config.secretKey);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/stripe/client.ts"],"names":[],"mappings":";;;;;AAmBA,4CAMC;AAED,gDAEC;AAED,0CAOC;AAED,wDAKC;AA7CD,oDAA4B;AAG5B,MAAM,kBAAkB,GAAG,mBAA4B,CAAC;AACxD,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC,IAAI,YAAY,GAAkB,IAAI,CAAC;AACvC,IAAI,mBAAmB,GAAkB,IAAI,CAAC;AAC9C,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACjC,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAA2B;IAC1D,YAAY,GAAG,IAAI,gBAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QAC1C,UAAU,EAAE,kBAA6C;KAC1D,CAAC,CAAC;IACH,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAgB,sBAAsB;IACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/stripe/client.ts"],"names":[],"mappings":";;;;;;AA0BA,4CAMC;AAED,gDAEC;AAED,0CAOC;AAED,wDAKC;AApDD,oDAA4B;AAUf,QAAA,kBAAkB,GAA4B,kBAAkB,CAAC;AAC9E,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC,IAAI,YAAY,GAAkB,IAAI,CAAC;AACvC,IAAI,mBAAmB,GAAkB,IAAI,CAAC;AAC9C,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACjC,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAA2B;IAC1D,YAAY,GAAG,IAAI,gBAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QAC1C,UAAU,EAAE,0BAAkB;KAC/B,CAAC,CAAC;IACH,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAgB,sBAAsB;IACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from "./client";
2
2
  export * from "./customer-billing";
3
+ export * from "./payload-shapes";
3
4
  export * from "./plan-schedule";
4
5
  export * from "./proration";
5
6
  export * from "./sync-plan";
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./client"), exports);
18
18
  __exportStar(require("./customer-billing"), exports);
19
+ __exportStar(require("./payload-shapes"), exports);
19
20
  __exportStar(require("./plan-schedule"), exports);
20
21
  __exportStar(require("./proration"), exports);
21
22
  __exportStar(require("./sync-plan"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,qDAAmC;AACnC,kDAAgC;AAChC,8CAA4B;AAC5B,8CAA4B;AAC5B,qDAAmC;AACnC,qDAAmC;AACnC,yDAAuC;AACvC,qDAAmC;AACnC,mDAAiC;AACjC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,qDAAmC;AACnC,mDAAiC;AACjC,kDAAgC;AAChC,8CAA4B;AAC5B,8CAA4B;AAC5B,qDAAmC;AACnC,qDAAmC;AACnC,yDAAuC;AACvC,qDAAmC;AACnC,mDAAiC;AACjC,uDAAqC"}
@@ -0,0 +1,17 @@
1
+ import type Stripe from "stripe";
2
+ export interface StripeSubscriptionPeriod {
3
+ start: number | null;
4
+ end: number | null;
5
+ }
6
+ interface StripeReference {
7
+ id?: string;
8
+ }
9
+ export declare function readStripeId(value: string | StripeReference | null | undefined): string | null;
10
+ export declare function readSubscriptionPeriod(subscription: Stripe.Subscription): StripeSubscriptionPeriod;
11
+ export declare function readSubscriptionPeriodEnd(subscription: Stripe.Subscription): Date | null;
12
+ export declare function requireInvoiceId(invoice: Stripe.Invoice): string;
13
+ export declare function readInvoiceSubscriptionId(invoice: Stripe.Invoice): string | null;
14
+ export declare function readInvoiceTax(invoice: Stripe.Invoice): number;
15
+ export declare function readCreditNoteRefundId(creditNote: Stripe.CreditNote): string | null;
16
+ export declare function readCreditNoteLineTax(creditNote: Stripe.CreditNote): number;
17
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readStripeId = readStripeId;
4
+ exports.readSubscriptionPeriod = readSubscriptionPeriod;
5
+ exports.readSubscriptionPeriodEnd = readSubscriptionPeriodEnd;
6
+ exports.requireInvoiceId = requireInvoiceId;
7
+ exports.readInvoiceSubscriptionId = readInvoiceSubscriptionId;
8
+ exports.readInvoiceTax = readInvoiceTax;
9
+ exports.readCreditNoteRefundId = readCreditNoteRefundId;
10
+ exports.readCreditNoteLineTax = readCreditNoteLineTax;
11
+ const time_1 = require("../utils/time");
12
+ function readStripeId(value) {
13
+ if (typeof value === "string")
14
+ return value;
15
+ return value?.id ?? null;
16
+ }
17
+ function sumAmounts(amounts) {
18
+ return (amounts ?? []).reduce((total, entry) => total + entry.amount, 0);
19
+ }
20
+ function readSubscriptionPeriod(subscription) {
21
+ const item = subscription.items?.data?.[0];
22
+ const legacy = subscription;
23
+ return {
24
+ start: item?.current_period_start ?? legacy.current_period_start ?? null,
25
+ end: item?.current_period_end ?? legacy.current_period_end ?? null,
26
+ };
27
+ }
28
+ function readSubscriptionPeriodEnd(subscription) {
29
+ return (0, time_1.stripeSecondsToDate)(readSubscriptionPeriod(subscription).end);
30
+ }
31
+ function requireInvoiceId(invoice) {
32
+ if (!invoice.id)
33
+ throw new Error("Stripe invoice has no id");
34
+ return invoice.id;
35
+ }
36
+ function readInvoiceSubscriptionId(invoice) {
37
+ const fromParent = invoice.parent?.subscription_details?.subscription;
38
+ if (fromParent)
39
+ return readStripeId(fromParent);
40
+ return readStripeId(invoice.subscription);
41
+ }
42
+ function readInvoiceTax(invoice) {
43
+ if (invoice.total_taxes)
44
+ return sumAmounts(invoice.total_taxes);
45
+ return invoice.tax ?? 0;
46
+ }
47
+ function readCreditNoteRefundId(creditNote) {
48
+ const refund = creditNote.refunds?.[0]?.refund;
49
+ if (refund)
50
+ return readStripeId(refund);
51
+ return readStripeId(creditNote.refund);
52
+ }
53
+ function readCreditNoteLineTax(creditNote) {
54
+ if (creditNote.total_taxes)
55
+ return sumAmounts(creditNote.total_taxes);
56
+ return sumAmounts(creditNote.tax_amounts);
57
+ }
58
+ //# sourceMappingURL=payload-shapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload-shapes.js","sourceRoot":"","sources":["../../src/stripe/payload-shapes.ts"],"names":[],"mappings":";;AA8CA,oCAKC;AAWD,wDASC;AAGD,8DAIC;AAMD,4CAGC;AAGD,8DAQC;AAGD,wCAGC;AAMD,wDAQC;AAGD,sDAKC;AApHD,wCAAoD;AAoCpD,SAAgB,YAAY,CAC1B,KAAkD;IAElD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,KAAK,EAAE,EAAE,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,OAAuC;IACzD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAOD,SAAgB,sBAAsB,CACpC,YAAiC;IAEjC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,YAA8D,CAAC;IAC9E,OAAO;QACL,KAAK,EAAE,IAAI,EAAE,oBAAoB,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI;QACxE,GAAG,EAAE,IAAI,EAAE,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,IAAI,IAAI;KACnE,CAAC;AACJ,CAAC;AAGD,SAAgB,yBAAyB,CACvC,YAAiC;IAEjC,OAAO,IAAA,0BAAmB,EAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAMD,SAAgB,gBAAgB,CAAC,OAAuB;IACtD,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC,EAAE,CAAC;AACpB,CAAC;AAGD,SAAgB,yBAAyB,CACvC,OAAuB;IAEvB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,YAAY,CAAC;IACtE,IAAI,UAAU;QAAE,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO,YAAY,CAChB,OAAgD,CAAC,YAAY,CAC/D,CAAC;AACJ,CAAC;AAGD,SAAgB,cAAc,CAAC,OAAuB;IACpD,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChE,OAAQ,OAAgD,CAAC,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AAMD,SAAgB,sBAAsB,CACpC,UAA6B;IAE7B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC/C,IAAI,MAAM;QAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,YAAY,CAChB,UAAyD,CAAC,MAAM,CAClE,CAAC;AACJ,CAAC;AAGD,SAAgB,qBAAqB,CAAC,UAA6B;IACjE,IAAI,UAAU,CAAC,WAAW;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACtE,OAAO,UAAU,CACd,UAAyD,CAAC,WAAW,CACvE,CAAC;AACJ,CAAC"}
@@ -6,6 +6,7 @@ exports.setSubscriptionCancelAtPeriodEnd = setSubscriptionCancelAtPeriodEnd;
6
6
  exports.resetSubscriptionPendingState = resetSubscriptionPendingState;
7
7
  const time_1 = require("../utils/time");
8
8
  const client_1 = require("./client");
9
+ const payload_shapes_1 = require("./payload-shapes");
9
10
  const RELEASE_END_BEHAVIOR = "release";
10
11
  const NEW_PHASE_ITERATIONS = 1;
11
12
  function toPriceId(price) {
@@ -63,7 +64,7 @@ async function setSubscriptionCancelAtPeriodEnd(stripeSubscriptionId, cancelAtPe
63
64
  const updated = await stripe.subscriptions.update(stripeSubscriptionId, {
64
65
  cancel_at_period_end: cancelAtPeriodEnd,
65
66
  });
66
- return (0, time_1.stripeSecondsToDate)(updated.current_period_end);
67
+ return (0, payload_shapes_1.readSubscriptionPeriodEnd)(updated);
67
68
  }
68
69
  function toScheduleId(schedule) {
69
70
  if (typeof schedule === "string")
@@ -1 +1 @@
1
- {"version":3,"file":"plan-schedule.js","sourceRoot":"","sources":["../../src/stripe/plan-schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-schedule.js","sourceRoot":"","sources":["../../src/stripe/plan-schedule.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ export interface StripeSubscriptionCycle {
4
4
  currentPeriodStart: Date;
5
5
  currentPeriodEnd: Date;
6
6
  }
7
+ export interface PricedUpcomingInvoice {
8
+ invoice: Stripe.Invoice;
9
+ taxRates: Map<string, Stripe.TaxRate>;
10
+ }
7
11
  export interface QuotedInvoiceItem {
8
12
  amountMinorUnits: number;
9
13
  description: string;
@@ -18,4 +22,4 @@ export interface UpcomingInvoicePreviewRequest {
18
22
  quotedItems: QuotedInvoiceItem[];
19
23
  }
20
24
  export declare function retrieveStripeSubscriptionCycle(subscriptionId: string): Promise<StripeSubscriptionCycle>;
21
- export declare function previewStripeUpcomingInvoice(request: UpcomingInvoicePreviewRequest): Promise<Stripe.Invoice>;
25
+ export declare function previewStripeUpcomingInvoice(request: UpcomingInvoicePreviewRequest): Promise<PricedUpcomingInvoice>;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.retrieveStripeSubscriptionCycle = retrieveStripeSubscriptionCycle;
4
4
  exports.previewStripeUpcomingInvoice = previewStripeUpcomingInvoice;
5
5
  const client_1 = require("./client");
6
+ const payload_shapes_1 = require("./payload-shapes");
6
7
  const MS_PER_SECOND = 1000;
7
- const TAX_RATE_EXPANSION = "total_tax_amounts.tax_rate";
8
8
  function toStripeSeconds(date) {
9
9
  return Math.floor(date.getTime() / MS_PER_SECOND);
10
10
  }
@@ -25,18 +25,33 @@ function toPreviewInvoiceItem(currency, item) {
25
25
  }
26
26
  async function retrieveStripeSubscriptionCycle(subscriptionId) {
27
27
  const subscription = await (0, client_1.getStripeClient)().subscriptions.retrieve(subscriptionId);
28
+ const period = (0, payload_shapes_1.readSubscriptionPeriod)(subscription);
29
+ if (period.start === null || period.end === null)
30
+ throw new Error(`Stripe subscription ${subscriptionId} has no billing period`);
28
31
  return {
29
32
  currency: subscription.currency,
30
- currentPeriodStart: fromStripeSeconds(subscription.current_period_start),
31
- currentPeriodEnd: fromStripeSeconds(subscription.current_period_end),
33
+ currentPeriodStart: fromStripeSeconds(period.start),
34
+ currentPeriodEnd: fromStripeSeconds(period.end),
32
35
  };
33
36
  }
37
+ function collectTaxRateIds(invoice) {
38
+ const ids = (invoice.total_taxes ?? [])
39
+ .map((tax) => tax.tax_rate_details?.tax_rate)
40
+ .filter((id) => typeof id === "string");
41
+ return [...new Set(ids)];
42
+ }
43
+ async function retrieveTaxRates(ids) {
44
+ const stripe = (0, client_1.getStripeClient)();
45
+ const rates = await Promise.all(ids.map((id) => stripe.taxRates.retrieve(id)));
46
+ return new Map(rates.map((rate) => [rate.id, rate]));
47
+ }
34
48
  async function previewStripeUpcomingInvoice(request) {
35
- return (0, client_1.getStripeClient)().invoices.createPreview({
49
+ const invoice = await (0, client_1.getStripeClient)().invoices.createPreview({
36
50
  customer: request.customerId,
37
51
  subscription: request.subscriptionId,
38
52
  invoice_items: request.quotedItems.map((item) => toPreviewInvoiceItem(request.currency, item)),
39
- expand: [TAX_RATE_EXPANSION],
40
53
  });
54
+ const taxRates = await retrieveTaxRates(collectTaxRateIds(invoice));
55
+ return { invoice, taxRates };
41
56
  }
42
57
  //# sourceMappingURL=upcoming-invoice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upcoming-invoice.js","sourceRoot":"","sources":["../../src/stripe/upcoming-invoice.ts"],"names":[],"mappings":";;AAuDA,0EAUC;AAOD,oEAWC;AAlFD,qCAA2C;AAE3C,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AA0BxD,SAAS,eAAe,CAAC,IAAU;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAgB,EAChB,IAAuB;IAEvB,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,gBAAgB;QAC7B,QAAQ;QACR,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE;YACN,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;YACxC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;SACrC;QACD,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AAGM,KAAK,UAAU,+BAA+B,CACnD,cAAsB;IAEtB,MAAM,YAAY,GAChB,MAAM,IAAA,wBAAe,GAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACjE,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,kBAAkB,EAAE,iBAAiB,CAAC,YAAY,CAAC,oBAAoB,CAAC;QACxE,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,CAAC,kBAAkB,CAAC;KACrE,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,4BAA4B,CAChD,OAAsC;IAEtC,OAAO,IAAA,wBAAe,GAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC9C,QAAQ,EAAE,OAAO,CAAC,UAAU;QAC5B,YAAY,EAAE,OAAO,CAAC,cAAc;QACpC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAC7C;QACD,MAAM,EAAE,CAAC,kBAAkB,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"upcoming-invoice.js","sourceRoot":"","sources":["../../src/stripe/upcoming-invoice.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@ const db_1 = require("../db");
10
10
  const utils_1 = require("../utils");
11
11
  const complimentary_1 = require("../workspaces/complimentary");
12
12
  const client_1 = require("./client");
13
+ const payload_shapes_1 = require("./payload-shapes");
13
14
  const webhook_shared_1 = require("./webhook-shared");
15
+ const workspace_checkout_1 = require("./workspace-checkout");
14
16
  async function promoteSubscriptionPaymentMethod(subscription) {
15
17
  const customerId = (0, webhook_shared_1.asCustomerId)(subscription.customer);
16
18
  const paymentMethodId = typeof subscription.default_payment_method === "string"
@@ -70,7 +72,7 @@ async function mirrorCheckoutSubscription(context, subscription, existing, statu
70
72
  ...(0, complimentary_1.activatePaidUsage)(existing, context.subscriptionId, (0, utils_1.stripeSecondsToDate)(subscription.start_date) ?? new Date()),
71
73
  status,
72
74
  stripeSubscriptionId: context.subscriptionId,
73
- currentPeriodEnd: (0, utils_1.stripeSecondsToDate)(subscription.current_period_end),
75
+ currentPeriodEnd: (0, payload_shapes_1.readSubscriptionPeriodEnd)(subscription),
74
76
  updatedAt: new Date(),
75
77
  };
76
78
  if (context.targetPlanId)
@@ -133,6 +135,7 @@ async function handleCheckoutSessionExpired(event) {
133
135
  });
134
136
  if (outcome !== "applied")
135
137
  throw new Error(`Checkout expiration ${outcome}; reconciliation required`);
138
+ await (0, workspace_checkout_1.releaseCheckoutTrialReservation)(session, tenantId);
136
139
  }
137
140
  async function recordCheckoutTrialConsumption(session, createdBy, planId) {
138
141
  const email = session.customer_details?.email;
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-checkout.js","sourceRoot":"","sources":["../../src/stripe/webhook-checkout.ts"],"names":[],"mappings":";;AAmMA,wEAQC;AAGD,oEAqBC;AAhOD,6FAAqE;AACrE,iFAAyF;AAEzF,8CAAoD;AACpD,oDAA+D;AAM/D,8BAAuE;AACvE,oCAAgF;AAChF,+DAAgE;AAChE,qCAA2C;AAC3C,qDAAgF;AAEhF,KAAK,UAAU,gCAAgC,CAC7C,YAAiC;IAEjC,MAAM,UAAU,GAAG,IAAA,6BAAY,EAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,eAAe,GACnB,OAAO,YAAY,CAAC,sBAAsB,KAAK,QAAQ;QACrD,CAAC,CAAC,YAAY,CAAC,sBAAsB;QACrC,CAAC,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe;QAAE,OAAO;IAC5C,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IAIjC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;QACxC,gBAAgB,EAAE,EAAE,sBAAsB,EAAE,eAAe,EAAE;KAC9D,CAAC,CAAC;AACL,CAAC;AASD,KAAK,UAAU,uBAAuB,CACpC,OAAwB,EACxB,QAA4B;IAE5B,IAAI,QAAQ,CAAC,0BAA0B,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7E,IAAI,QAAQ,CAAC,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE;QACzD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,iBAAiB;QAC5B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC1C,IACE,OAAO;QACP,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU;YAC1B,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW;YAC7D,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC;QAEhD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG;QACb,WAAW,EACT,OAAO,EAAE,WAAW,IAAI,qBAAqB,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE;QACnE,IAAI,EAAE,aAAsB;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE;KAChD,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,IAAA,wCAAQ,EAC5B,4BAAuB,EACvB,OAAO,CAAC,QAAQ,CACjB,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,IAAI,OAAO,KAAK,SAAS;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,2BAA2B,CAAC,CAAC;IAC7E,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAmB;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAiC,CAAC;IAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ;QAC5C,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;QAC3B,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,cAAc,GAClB,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;QACtC,CAAC,CAAC,OAAO,CAAC,YAAY;QACtB,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,YAAY,GAChB,OAAO,OAAO,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ;QAC1C,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM;QACzB,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,OAAwB,EACxB,YAAiC,EACjC,QAA4B,EAC5B,MAAgC;IAEhC,MAAM,KAAK,GAAgC;QACzC,GAAG,IAAA,iCAAiB,EAClB,QAAQ,EACR,OAAO,CAAC,cAAc,EACtB,IAAA,2BAAkB,EAAC,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAC1D;QACD,MAAM;QACN,oBAAoB,EAAE,OAAO,CAAC,cAAc;QAI5C,gBAAgB,EAAE,IAAA,2BAAkB,EAAC,YAAY,CAAC,kBAAkB,CAAC;QACrE,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IACF,IAAI,OAAO,CAAC,YAAY;QAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAA,wCAAQ,EAAC,4BAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,KAAK,CAAC,sBAAsB,CAChC,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,gBAAiB,CAAC,WAAW,EACtC,KAAK,CACN,CAAC;IACF,MAAM,IAAA,2CAA2B,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAwB;IACtD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAQ,EAC7B,4BAAuB,EACvB,OAAO,CAAC,QAAQ,CACjB,CAAC,OAAO,EAAE,CAAC;IACZ,MAAM,kBAAkB,GAAG,QAAQ,EAAE,gBAAgB,CAAC;IACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO;IAC7E,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,OAAO,EACP,QAAQ,EACR,kBAAkB,CACnB,CAAC;IACF,MAAM,MAAM,GACV,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,gCAAe,CAAC,CAAC,CAAC,8BAAa,CAAC;IAEvE,MAAM,0BAA0B,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,gCAAgC,CAAC,YAAY,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC;IACvD,MAAM,wBAAwB,GAC5B,YAAY,CAAC,MAAM,KAAK,UAAU;QAClC,CAAC,MAAM,8BAA8B,CACnC,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,SAAS,EAClB,MAAM,CACP,CAAC,CAAC;IAEL,MAAM,IAAA,wCAAQ,EAAC,4BAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAC1E,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,gBAAiB,CAAC,WAAW,EACtC,EAAE,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CACnD,CAAC;IACF,IAAA,gCAAmB,EAAC,2BAA2B,EAAE;QAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM;QACN,MAAM;QACN,oBAAoB,EAAE,OAAO,CAAC,cAAc;QAC5C,wBAAwB;QACxB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,OAAwB,EACxB,QAA4B,EAC5B,kBAA6D;IAE7D,MAAM,YAAY,GAAG,MAAM,IAAA,wBAAe,GAAE,CAAC,aAAa,CAAC,QAAQ,CACjE,OAAO,CAAC,cAAc,CACvB,CAAC;IACF,IACE,YAAY,CAAC,MAAM,KAAK,8BAAa;QACrC,YAAY,CAAC,MAAM,KAAK,gCAAe;QAEvC,OAAO,YAAY,CAAC;IAEtB,MAAM,IAAA,wCAAQ,EACZ,4BAAuB,EACvB,OAAO,CAAC,QAAQ,CACjB,CAAC,sBAAsB,CACtB,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,gBAAiB,CAAC,WAAW,EACtC,EAAE,gBAAgB,EAAE,kBAAkB,IAAI,IAAI,EAAE,CACjD,CAAC;IACF,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC7D,CAAC;AAGM,KAAK,UAAU,8BAA8B,CAClD,KAAmB;IAEnB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAA,8CAA2B,EAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CACvD,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAC;AACJ,CAAC;AAGM,KAAK,UAAU,4BAA4B,CAChD,KAAmB;IAEnB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAiC,CAAC;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5C,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO;IACtD,MAAM,KAAK,GAAG,IAAA,wCAAQ,EAAC,4BAAuB,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,IACE,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,EAAE;QAC/C,OAAO,CAAC,gBAAgB,EAAE,IAAI,KAAK,UAAU;QAE7C,OAAO;IACT,IAAI,OAAO,CAAC,gBAAgB,CAAC,WAAW,KAAK,OAAO,CAAC,QAAQ,EAAE,WAAW;QACxE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE;QAClD,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;KAC9B,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,SAAS;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,2BAA2B,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,OAAgC,EAChC,SAAwB,EACxB,MAAqB;IAErB,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;IAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;IACnC,MAAM,qBAAqB,GAAG,IAAA,wCAAQ,EAAC,0BAAqB,CAAC,CAAC;IAG9D,IAAI,MAAM,qBAAqB,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,qBAAqB,CAAC,MAAM,CAAC;QACjC;YACE,MAAM,EAAE,SAAS;YACjB,SAAS;YACT,kBAAkB,EAAE,IAAI;YACxB,MAAM;YACN,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"webhook-checkout.js","sourceRoot":"","sources":["../../src/stripe/webhook-checkout.ts"],"names":[],"mappings":"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"}