@carlonicora/nestjs-neo4jsonapi 6.8.0 → 7.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 (186) hide show
  1. package/dist/common/decorators/cache-invalidate.decorator.d.ts +2 -1
  2. package/dist/common/decorators/cache-invalidate.decorator.d.ts.map +1 -1
  3. package/dist/common/decorators/cache-invalidate.decorator.js +23 -3
  4. package/dist/common/decorators/cache-invalidate.decorator.js.map +1 -1
  5. package/dist/common/decorators/validate-id.decorator.d.ts +4 -1
  6. package/dist/common/decorators/validate-id.decorator.d.ts.map +1 -1
  7. package/dist/common/decorators/validate-id.decorator.js +22 -2
  8. package/dist/common/decorators/validate-id.decorator.js.map +1 -1
  9. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  10. package/dist/foundations/foundations.modules.js +2 -0
  11. package/dist/foundations/foundations.modules.js.map +1 -1
  12. package/dist/foundations/handbook/controllers/handbook.controller.d.ts +2 -1
  13. package/dist/foundations/handbook/controllers/handbook.controller.d.ts.map +1 -1
  14. package/dist/foundations/handbook/controllers/handbook.controller.js +5 -4
  15. package/dist/foundations/handbook/controllers/handbook.controller.js.map +1 -1
  16. package/dist/foundations/role/controllers/role.controller.d.ts +3 -2
  17. package/dist/foundations/role/controllers/role.controller.d.ts.map +1 -1
  18. package/dist/foundations/role/controllers/role.controller.js +9 -7
  19. package/dist/foundations/role/controllers/role.controller.js.map +1 -1
  20. package/dist/foundations/stripe/index.d.ts +1 -0
  21. package/dist/foundations/stripe/index.d.ts.map +1 -1
  22. package/dist/foundations/stripe/index.js +2 -0
  23. package/dist/foundations/stripe/index.js.map +1 -1
  24. package/dist/foundations/stripe/services/stripe.payment.service.d.ts +33 -0
  25. package/dist/foundations/stripe/services/stripe.payment.service.d.ts.map +1 -1
  26. package/dist/foundations/stripe/services/stripe.payment.service.js +68 -0
  27. package/dist/foundations/stripe/services/stripe.payment.service.js.map +1 -1
  28. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.d.ts +14 -0
  29. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.d.ts.map +1 -0
  30. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.js +62 -0
  31. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.js.map +1 -0
  32. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.d.ts +28 -0
  33. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.d.ts.map +1 -0
  34. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.js +136 -0
  35. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.js.map +1 -0
  36. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.d.ts +26 -0
  37. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.d.ts.map +1 -0
  38. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.js +131 -0
  39. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.js.map +1 -0
  40. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.d.ts +11 -0
  41. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.d.ts.map +1 -0
  42. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.js +45 -0
  43. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.js.map +1 -0
  44. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.d.ts +13 -0
  45. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.d.ts.map +1 -0
  46. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.js +55 -0
  47. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.js.map +1 -0
  48. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.d.ts +24 -0
  49. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.d.ts.map +1 -0
  50. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.js +105 -0
  51. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.js.map +1 -0
  52. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.d.ts +8 -0
  53. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.d.ts.map +1 -0
  54. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.js +36 -0
  55. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.js.map +1 -0
  56. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.d.ts +12 -0
  57. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.d.ts.map +1 -0
  58. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.js +51 -0
  59. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.js.map +1 -0
  60. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.d.ts +31 -0
  61. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.d.ts.map +1 -0
  62. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.js +120 -0
  63. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.js.map +1 -0
  64. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.d.ts +28 -0
  65. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.d.ts.map +1 -0
  66. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.js +35 -0
  67. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.js.map +1 -0
  68. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.d.ts +5 -0
  69. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.d.ts.map +1 -0
  70. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.js +12 -0
  71. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.js.map +1 -0
  72. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.d.ts +18 -0
  73. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.d.ts.map +1 -0
  74. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.js +21 -0
  75. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.js.map +1 -0
  76. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.d.ts +6 -0
  77. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.d.ts.map +1 -0
  78. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.js +13 -0
  79. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.js.map +1 -0
  80. package/dist/foundations/stripe-coupon/entities/stripe-coupon.d.ts +32 -0
  81. package/dist/foundations/stripe-coupon/entities/stripe-coupon.d.ts.map +1 -0
  82. package/dist/foundations/stripe-coupon/entities/stripe-coupon.js +37 -0
  83. package/dist/foundations/stripe-coupon/entities/stripe-coupon.js.map +1 -0
  84. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.d.ts +5 -0
  85. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.d.ts.map +1 -0
  86. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.js +12 -0
  87. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.js.map +1 -0
  88. package/dist/foundations/stripe-coupon/index.d.ts +21 -0
  89. package/dist/foundations/stripe-coupon/index.d.ts.map +1 -0
  90. package/dist/foundations/stripe-coupon/index.js +43 -0
  91. package/dist/foundations/stripe-coupon/index.js.map +1 -0
  92. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.d.ts +41 -0
  93. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.d.ts.map +1 -0
  94. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.js +97 -0
  95. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.js.map +1 -0
  96. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.d.ts +29 -0
  97. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.d.ts.map +1 -0
  98. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.js +55 -0
  99. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.js.map +1 -0
  100. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.d.ts +70 -0
  101. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.d.ts.map +1 -0
  102. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.js +172 -0
  103. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.js.map +1 -0
  104. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.d.ts +81 -0
  105. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.d.ts.map +1 -0
  106. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.js +206 -0
  107. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.js.map +1 -0
  108. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.d.ts +92 -0
  109. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.d.ts.map +1 -0
  110. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.js +134 -0
  111. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.js.map +1 -0
  112. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.d.ts +29 -0
  113. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.d.ts.map +1 -0
  114. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.js +73 -0
  115. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.js.map +1 -0
  116. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.d.ts +65 -0
  117. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.d.ts.map +1 -0
  118. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.js +200 -0
  119. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.js.map +1 -0
  120. package/dist/foundations/stripe-coupon/stripe-coupon.module.d.ts +14 -0
  121. package/dist/foundations/stripe-coupon/stripe-coupon.module.d.ts.map +1 -0
  122. package/dist/foundations/stripe-coupon/stripe-coupon.module.js +91 -0
  123. package/dist/foundations/stripe-coupon/stripe-coupon.module.js.map +1 -0
  124. package/dist/foundations/stripe-coupon/utils/places-left.d.ts +19 -0
  125. package/dist/foundations/stripe-coupon/utils/places-left.d.ts.map +1 -0
  126. package/dist/foundations/stripe-coupon/utils/places-left.js +33 -0
  127. package/dist/foundations/stripe-coupon/utils/places-left.js.map +1 -0
  128. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.d.ts +22 -0
  129. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.d.ts.map +1 -0
  130. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.js +48 -0
  131. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.js.map +1 -0
  132. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.d.ts +51 -0
  133. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.d.ts.map +1 -0
  134. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.js +129 -0
  135. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.js.map +1 -0
  136. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts +7 -1
  137. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts.map +1 -1
  138. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js +18 -5
  139. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js.map +1 -1
  140. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.d.ts +30 -0
  141. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.d.ts.map +1 -0
  142. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.js +57 -0
  143. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.js.map +1 -0
  144. package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.d.ts +7 -0
  145. package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.d.ts.map +1 -1
  146. package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.d.ts.map +1 -1
  147. package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.js +6 -0
  148. package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.js.map +1 -1
  149. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.d.ts +8 -0
  150. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.d.ts.map +1 -1
  151. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.js +9 -1
  152. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.js.map +1 -1
  153. package/dist/foundations/stripe-subscription/index.d.ts +3 -2
  154. package/dist/foundations/stripe-subscription/index.d.ts.map +1 -1
  155. package/dist/foundations/stripe-subscription/index.js +5 -1
  156. package/dist/foundations/stripe-subscription/index.js.map +1 -1
  157. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.d.ts +14 -0
  158. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.d.ts.map +1 -1
  159. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.js +32 -0
  160. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.js.map +1 -1
  161. package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.d.ts.map +1 -1
  162. package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.js +6 -0
  163. package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.js.map +1 -1
  164. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts +36 -3
  165. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts.map +1 -1
  166. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js +174 -38
  167. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js.map +1 -1
  168. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.d.ts +7 -0
  169. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.d.ts.map +1 -1
  170. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.js +29 -2
  171. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.js.map +1 -1
  172. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.d.ts +27 -0
  173. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.d.ts.map +1 -0
  174. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.js +62 -0
  175. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.js.map +1 -0
  176. package/dist/foundations/stripe-subscription/stripe-subscription.module.d.ts.map +1 -1
  177. package/dist/foundations/stripe-subscription/stripe-subscription.module.js +10 -0
  178. package/dist/foundations/stripe-subscription/stripe-subscription.module.js.map +1 -1
  179. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.d.ts.map +1 -1
  180. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js +16 -1
  181. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js.map +1 -1
  182. package/dist/foundations/two-factor/controllers/passkey.controller.d.ts +1 -1
  183. package/dist/foundations/two-factor/controllers/passkey.controller.d.ts.map +1 -1
  184. package/dist/foundations/two-factor/controllers/passkey.controller.js +6 -5
  185. package/dist/foundations/two-factor/controllers/passkey.controller.js.map +1 -1
  186. package/package.json +1 -1
@@ -8,6 +8,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var StripeSubscriptionAdminService_1;
11
15
  Object.defineProperty(exports, "__esModule", { value: true });
12
16
  exports.StripeSubscriptionAdminService = void 0;
13
17
  const common_1 = require("@nestjs/common");
@@ -15,10 +19,14 @@ const jsonapi_1 = require("../../../core/jsonapi");
15
19
  const stripe_customer_repository_1 = require("../../stripe-customer/repositories/stripe-customer.repository");
16
20
  const stripe_customer_api_service_1 = require("../../stripe-customer/services/stripe-customer-api.service");
17
21
  const stripe_price_repository_1 = require("../../stripe-price/repositories/stripe-price.repository");
22
+ const stripe_coupon_code_checkout_service_1 = require("../../stripe-coupon/services/stripe-coupon-code-checkout.service");
23
+ const stripe_errors_1 = require("../../stripe/errors/stripe.errors");
18
24
  const stripe_payment_service_1 = require("../../stripe/services/stripe.payment.service");
19
25
  const stripe_subscription_model_1 = require("../entities/stripe-subscription.model");
26
+ const stripe_subscription_discount_1 = require("../entities/stripe-subscription.discount");
20
27
  const stripe_subscription_repository_1 = require("../repositories/stripe-subscription.repository");
21
28
  const stripe_subscription_api_service_1 = require("./stripe-subscription-api.service");
29
+ const subscription_payment_confirmation_1 = require("./subscription-payment-confirmation");
22
30
  /**
23
31
  * StripeSubscriptionAdminService
24
32
  *
@@ -37,8 +45,8 @@ const stripe_subscription_api_service_1 = require("./stripe-subscription-api.ser
37
45
  *
38
46
  * All operations update both Stripe and the local Neo4j database to maintain consistency.
39
47
  */
40
- let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
41
- constructor(subscriptionRepository, stripeCustomerRepository, stripePriceRepository, stripeSubscriptionApiService, stripeCustomerApiService, stripePaymentService, jsonApiService) {
48
+ let StripeSubscriptionAdminService = StripeSubscriptionAdminService_1 = class StripeSubscriptionAdminService {
49
+ constructor(subscriptionRepository, stripeCustomerRepository, stripePriceRepository, stripeSubscriptionApiService, stripeCustomerApiService, stripePaymentService, jsonApiService, stripeCouponCodeCheckoutService) {
42
50
  this.subscriptionRepository = subscriptionRepository;
43
51
  this.stripeCustomerRepository = stripeCustomerRepository;
44
52
  this.stripePriceRepository = stripePriceRepository;
@@ -46,6 +54,8 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
46
54
  this.stripeCustomerApiService = stripeCustomerApiService;
47
55
  this.stripePaymentService = stripePaymentService;
48
56
  this.jsonApiService = jsonApiService;
57
+ this.stripeCouponCodeCheckoutService = stripeCouponCodeCheckoutService;
58
+ this.logger = new common_1.Logger(StripeSubscriptionAdminService_1.name);
49
59
  }
50
60
  /**
51
61
  * List subscriptions for a company
@@ -133,8 +143,9 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
133
143
  throw new common_1.HttpException("Price not found", common_1.HttpStatus.NOT_FOUND);
134
144
  }
135
145
  // Prevent duplicate recurring subscriptions
146
+ let existingSubscriptions = [];
136
147
  if (price.priceType === "recurring") {
137
- const existingSubscriptions = await this.subscriptionRepository.findByStripeCustomerId({
148
+ existingSubscriptions = await this.subscriptionRepository.findByStripeCustomerId({
138
149
  stripeCustomerId: customer.id,
139
150
  });
140
151
  const hasActiveRecurring = existingSubscriptions.some((sub) => (sub.status === "active" || sub.status === "trialing") && sub.stripePrice?.priceType === "recurring");
@@ -151,7 +162,9 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
151
162
  if (paymentMethods.length === 0) {
152
163
  throw new common_1.HttpException("No payment method available. Please add a payment method before creating a subscription.", common_1.HttpStatus.PAYMENT_REQUIRED);
153
164
  }
154
- paymentMethodId = paymentMethods[0].id;
165
+ // The customer default (the card picked last, e.g. "Use another card"); the first card only without one
166
+ paymentMethodId =
167
+ paymentMethods.find((method) => method.id === customer.defaultPaymentMethodId)?.id ?? paymentMethods[0].id;
155
168
  }
156
169
  // Branch based on price type: one-time vs recurring
157
170
  if (price.priceType === "one_time") {
@@ -165,7 +178,17 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
165
178
  });
166
179
  }
167
180
  // Recurring subscription flow
168
- const stripeSubscription = await this.stripeSubscriptionApiService.createSubscription({
181
+ // A first payment gets the automatic code only when the server confirms it still applies.
182
+ const { promotionCode, automatic } = await this.resolvePromotionCode({
183
+ companyId: params.companyId,
184
+ priceId: params.priceId,
185
+ promotionCode: params.promotionCode,
186
+ firstPayment: !params.trialPeriodDays && !params.trialEnd,
187
+ });
188
+ // An earlier attempt that was never paid (declined card, failed 3D Secure) is
189
+ // cancelled first, so retries do not pile up unpaid subscriptions
190
+ await this.cancelUnpaidRecurringSubscriptions(existingSubscriptions);
191
+ const stripeSubscription = await this.withDiscountSoldOutMapping(automatic, promotionCode, () => this.stripeSubscriptionApiService.createSubscription({
169
192
  stripeCustomerId: customer.stripeCustomerId,
170
193
  priceId: price.stripePriceId,
171
194
  paymentMethodId,
@@ -175,21 +198,12 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
175
198
  companyId: params.companyId,
176
199
  priceId: params.priceId,
177
200
  },
178
- promotionCode: params.promotionCode,
179
- });
180
- // Extract payment intent details for SCA confirmation
181
- let clientSecret = null;
182
- let paymentIntentId = null;
183
- const latestInvoice = stripeSubscription.latest_invoice;
184
- if (latestInvoice && typeof latestInvoice !== "string") {
185
- const invoice = latestInvoice;
186
- const paymentIntent = invoice.payment_intent;
187
- if (paymentIntent && typeof paymentIntent !== "string") {
188
- clientSecret = paymentIntent.client_secret;
189
- paymentIntentId = paymentIntent.id;
190
- }
191
- }
192
- const requiresAction = stripeSubscription.status === "incomplete" && clientSecret !== null;
201
+ promotionCode,
202
+ }));
203
+ if (promotionCode)
204
+ await this.stripeCouponCodeCheckoutService.refreshCountsByStripePromotionCodeId(promotionCode);
205
+ // Payment details the browser needs to confirm the first payment (SCA)
206
+ const { clientSecret, paymentIntentId, requiresAction } = (0, subscription_payment_confirmation_1.subscriptionPaymentConfirmation)(stripeSubscription);
193
207
  const subscriptionItem = stripeSubscription.items.data[0];
194
208
  const subscription = await this.subscriptionRepository.create({
195
209
  stripeCustomerId: customer.id,
@@ -203,6 +217,7 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
203
217
  trialStart: stripeSubscription.trial_start ? new Date(stripeSubscription.trial_start * 1000) : undefined,
204
218
  trialEnd: stripeSubscription.trial_end ? new Date(stripeSubscription.trial_end * 1000) : undefined,
205
219
  quantity: params.quantity ?? 1,
220
+ discount: (0, stripe_subscription_discount_1.discountFromStripeSubscription)(stripeSubscription),
206
221
  });
207
222
  const data = await this.jsonApiService.buildSingle(stripe_subscription_model_1.StripeSubscriptionModel, subscription);
208
223
  return {
@@ -243,13 +258,46 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
243
258
  throw new common_1.HttpException("Subscription does not belong to this company", common_1.HttpStatus.FORBIDDEN);
244
259
  }
245
260
  const stripeSubscription = await this.stripeSubscriptionApiService.cancelSubscription(subscription.stripeSubscriptionId, !params.cancelImmediately);
246
- const updatedSubscription = await this.subscriptionRepository.update({
247
- id: params.id,
261
+ const updatedSubscription = await this.storeCancellation(params.id, stripeSubscription);
262
+ return this.jsonApiService.buildSingle(stripe_subscription_model_1.StripeSubscriptionModel, updatedSubscription);
263
+ }
264
+ /**
265
+ * Stores the cancellation Stripe answered with on our subscription node.
266
+ */
267
+ async storeCancellation(id, stripeSubscription) {
268
+ return this.subscriptionRepository.update({
269
+ id,
248
270
  status: stripeSubscription.status,
249
271
  cancelAtPeriodEnd: stripeSubscription.cancel_at_period_end,
250
272
  canceledAt: stripeSubscription.canceled_at ? new Date(stripeSubscription.canceled_at * 1000) : undefined,
251
273
  });
252
- return this.jsonApiService.buildSingle(stripe_subscription_model_1.StripeSubscriptionModel, updatedSubscription);
274
+ }
275
+ /**
276
+ * Cancels, in Stripe and at once, every recurring subscription of the customer that is
277
+ * still `incomplete`: a first payment that never went through. Active, trialing and
278
+ * past_due subscriptions are never touched, nor one-time purchases (their node holds a
279
+ * PaymentIntent id, not a subscription id).
280
+ *
281
+ * A failed cancellation never blocks the new subscription: the node is re-read from
282
+ * Stripe instead (an attempt older than 23 hours is already `incomplete_expired`).
283
+ */
284
+ async cancelUnpaidRecurringSubscriptions(subscriptions) {
285
+ const unpaid = subscriptions.filter((sub) => sub.status === "incomplete" && sub.stripePrice?.priceType === "recurring" && sub.stripeSubscriptionId);
286
+ for (const sub of unpaid) {
287
+ try {
288
+ const stripeSubscription = await this.stripeSubscriptionApiService.cancelUnpaidAttempt(sub.stripeSubscriptionId);
289
+ await this.storeCancellation(sub.id, stripeSubscription);
290
+ }
291
+ catch (error) {
292
+ this.logger.warn(`Could not cancel unpaid subscription ${sub.stripeSubscriptionId}: ${error instanceof Error ? error.message : String(error)}`);
293
+ try {
294
+ await this.syncSubscriptionFromStripe({ stripeSubscriptionId: sub.stripeSubscriptionId });
295
+ }
296
+ catch (syncError) {
297
+ this.logger.warn(`Could not re-read unpaid subscription ${sub.stripeSubscriptionId}: ${syncError instanceof Error ? syncError.message : String(syncError)}`);
298
+ }
299
+ }
300
+ }
253
301
  }
254
302
  /**
255
303
  * Pause a subscription
@@ -343,21 +391,38 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
343
391
  }
344
392
  // Check if subscription is in trial status
345
393
  const isTrialUpgrade = subscription.status === "trialing";
394
+ // The subscription charges the customer default from now on: a card saved on the
395
+ // subscription by an earlier payment would otherwise beat a card added since
396
+ let defaultPaymentMethodId = customer.defaultPaymentMethodId || undefined;
346
397
  // For trial upgrades, require a payment method
347
398
  if (isTrialUpgrade) {
348
399
  const paymentMethods = await this.stripeCustomerApiService.listPaymentMethods(customer.stripeCustomerId);
349
400
  if (paymentMethods.length === 0) {
350
401
  throw new common_1.HttpException("A payment method is required to upgrade from trial", common_1.HttpStatus.PAYMENT_REQUIRED);
351
402
  }
403
+ // A default that is no longer attached is not sent
404
+ if (!paymentMethods.some((method) => method.id === defaultPaymentMethodId))
405
+ defaultPaymentMethodId = undefined;
352
406
  }
407
+ // Paying for a trial is a first payment and can get the automatic code.
408
+ // A paid plan change sends no code unless the GM typed one, so an existing discount stays.
409
+ const { promotionCode, automatic } = await this.resolvePromotionCode({
410
+ companyId: params.companyId,
411
+ priceId: params.newPriceId,
412
+ promotionCode: params.promotionCode,
413
+ firstPayment: isTrialUpgrade,
414
+ });
353
415
  // Update with trial_end: 'now' for trial upgrades
354
- const stripeSubscription = await this.stripeSubscriptionApiService.updateSubscription({
416
+ const stripeSubscription = await this.withDiscountSoldOutMapping(automatic, promotionCode, () => this.stripeSubscriptionApiService.updateSubscription({
355
417
  subscriptionId: subscription.stripeSubscriptionId,
356
418
  priceId: newPrice.stripePriceId,
357
419
  prorationBehavior: isTrialUpgrade ? "none" : "create_prorations",
358
- promotionCode: params.promotionCode,
420
+ promotionCode,
359
421
  trialEnd: isTrialUpgrade ? "now" : undefined,
360
- });
422
+ defaultPaymentMethodId,
423
+ }));
424
+ if (promotionCode)
425
+ await this.stripeCouponCodeCheckoutService.refreshCountsByStripePromotionCodeId(promotionCode);
361
426
  await this.subscriptionRepository.updatePrice({
362
427
  id: params.id,
363
428
  newPriceId: params.newPriceId,
@@ -368,8 +433,15 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
368
433
  status: stripeSubscription.status,
369
434
  currentPeriodStart: new Date(subscriptionItem.current_period_start * 1000),
370
435
  currentPeriodEnd: new Date(subscriptionItem.current_period_end * 1000),
436
+ discount: (0, stripe_subscription_discount_1.discountFromStripeSubscription)(stripeSubscription),
371
437
  });
372
- return this.jsonApiService.buildSingle(stripe_subscription_model_1.StripeSubscriptionModel, updatedSubscription);
438
+ const document = await this.jsonApiService.buildSingle(stripe_subscription_model_1.StripeSubscriptionModel, updatedSubscription);
439
+ // A trial upgrade charges at once; a card that asks for 3D Secure leaves the
440
+ // invoice open. The browser confirms it with the client secret in meta.
441
+ const confirmation = (0, subscription_payment_confirmation_1.subscriptionPaymentConfirmation)(stripeSubscription);
442
+ if (!confirmation.requiresAction)
443
+ return document;
444
+ return { ...document, meta: { ...document.meta, ...confirmation } };
373
445
  }
374
446
  /**
375
447
  * Preview proration for plan change
@@ -499,14 +571,15 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
499
571
  canceledAt: stripeSubscription.canceled_at ? new Date(stripeSubscription.canceled_at * 1000) : null,
500
572
  trialStart: stripeSubscription.trial_start ? new Date(stripeSubscription.trial_start * 1000) : undefined,
501
573
  trialEnd: stripeSubscription.trial_end ? new Date(stripeSubscription.trial_end * 1000) : undefined,
574
+ discount: (0, stripe_subscription_discount_1.discountFromStripeSubscription)(stripeSubscription),
502
575
  });
503
576
  }
504
577
  }
505
578
  /**
506
- * Create a one-time purchase using PaymentIntent flow
579
+ * Create a one-time purchase charged through a Stripe invoice
507
580
  *
508
581
  * Unlike recurring subscriptions, one-time purchases:
509
- * - Use PaymentIntent API instead of Subscription API
582
+ * - Are charged through a one-off invoice instead of the Subscription API
510
583
  * - Don't block or get blocked by existing subscriptions
511
584
  * - Store as StripeSubscription record with PaymentIntent ID
512
585
  *
@@ -515,20 +588,20 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
515
588
  */
516
589
  async createOneTimePurchase(params) {
517
590
  const { customer, price, paymentMethodId, companyId, priceId, quantity } = params;
518
- // Create PaymentIntent for the one-time amount
519
- const paymentIntent = await this.stripePaymentService.createPaymentIntent({
520
- amount: (price.unitAmount ?? 0) * quantity,
521
- currency: price.currency,
591
+ // Charge the one-time price through an invoice so the customer gets an invoice
592
+ const { paymentIntent: confirmedPaymentIntent } = await this.stripePaymentService.createAndPayOneTimeInvoice({
522
593
  stripeCustomerId: customer.stripeCustomerId,
594
+ stripePriceId: price.stripePriceId,
595
+ quantity,
596
+ currency: price.currency,
597
+ description: price.description ?? `One-time purchase: ${price.nickname ?? priceId}`,
523
598
  metadata: {
524
599
  companyId,
525
600
  priceId,
526
601
  type: "one_time_purchase",
527
602
  },
528
- description: price.description ?? `One-time purchase: ${price.nickname ?? priceId}`,
603
+ paymentMethodId,
529
604
  });
530
- // Confirm the PaymentIntent with the payment method
531
- const confirmedPaymentIntent = await this.stripePaymentService.confirmPaymentIntent(paymentIntent.id, paymentMethodId);
532
605
  // Determine status and if SCA is required
533
606
  let clientSecret = null;
534
607
  let status;
@@ -565,16 +638,79 @@ let StripeSubscriptionAdminService = class StripeSubscriptionAdminService {
565
638
  requiresAction,
566
639
  };
567
640
  }
641
+ /**
642
+ * Decides which promotion code goes to Stripe and whether it is our automatic code.
643
+ * - No code sent: on a first payment the server attaches the automatic code when it applies.
644
+ * - Our automatic code sent (the review showed it): it goes to Stripe only when it still applies.
645
+ * Otherwise the payment stops here, so the GM is never charged full price silently:
646
+ * 410 `discount_sold_out` when the places ran out, 422 `discount_unavailable` for any other reason.
647
+ * - Any other code (typed, or not ours): passed to Stripe unchanged.
648
+ */
649
+ async resolvePromotionCode(params) {
650
+ if (!params.promotionCode) {
651
+ if (!params.firstPayment)
652
+ return { promotionCode: undefined, automatic: false };
653
+ const code = await this.stripeCouponCodeCheckoutService.findAutomaticForPrice({
654
+ companyId: params.companyId,
655
+ priceId: params.priceId,
656
+ });
657
+ return { promotionCode: code?.stripePromotionCodeId, automatic: !!code };
658
+ }
659
+ const status = await this.stripeCouponCodeCheckoutService.checkAutomaticForPrice({
660
+ companyId: params.companyId,
661
+ priceId: params.priceId,
662
+ stripePromotionCodeId: params.promotionCode,
663
+ firstPayment: params.firstPayment,
664
+ });
665
+ switch (status) {
666
+ case "eligible":
667
+ return { promotionCode: params.promotionCode, automatic: true };
668
+ case "sold_out":
669
+ throw new common_1.HttpException({ message: "The discount has no places left", code: "discount_sold_out" }, common_1.HttpStatus.GONE);
670
+ case "unavailable":
671
+ throw new common_1.HttpException({ message: "The discount is no longer available", code: "discount_unavailable" }, common_1.HttpStatus.UNPROCESSABLE_ENTITY);
672
+ case "not_automatic":
673
+ return { promotionCode: params.promotionCode, automatic: false };
674
+ }
675
+ }
676
+ /**
677
+ * Runs a Stripe call. When it carries our automatic code and Stripe refuses it because the code
678
+ * has no places left (two GMs on the last place), answers 410 `discount_sold_out`; Stripe
679
+ * refused the whole call, so nothing was charged. A typed code, and any other failure, is
680
+ * re-thrown unchanged: the "last founding place" message is only true for the automatic code.
681
+ */
682
+ async withDiscountSoldOutMapping(automatic, promotionCode, call) {
683
+ try {
684
+ return await call();
685
+ }
686
+ catch (error) {
687
+ if (!(error instanceof stripe_errors_1.StripeError) || !automatic || !promotionCode)
688
+ throw error;
689
+ let exhausted = false;
690
+ try {
691
+ exhausted = await this.stripeCouponCodeCheckoutService.isExhausted(promotionCode);
692
+ }
693
+ catch {
694
+ throw error;
695
+ }
696
+ if (exhausted) {
697
+ throw new common_1.HttpException({ message: "The discount has no places left", code: "discount_sold_out" }, common_1.HttpStatus.GONE);
698
+ }
699
+ throw error;
700
+ }
701
+ }
568
702
  };
569
703
  exports.StripeSubscriptionAdminService = StripeSubscriptionAdminService;
570
- exports.StripeSubscriptionAdminService = StripeSubscriptionAdminService = __decorate([
704
+ exports.StripeSubscriptionAdminService = StripeSubscriptionAdminService = StripeSubscriptionAdminService_1 = __decorate([
571
705
  (0, common_1.Injectable)(),
706
+ __param(7, (0, common_1.Inject)((0, common_1.forwardRef)(() => stripe_coupon_code_checkout_service_1.StripeCouponCodeCheckoutService))),
572
707
  __metadata("design:paramtypes", [stripe_subscription_repository_1.StripeSubscriptionRepository,
573
708
  stripe_customer_repository_1.StripeCustomerRepository,
574
709
  stripe_price_repository_1.StripePriceRepository,
575
710
  stripe_subscription_api_service_1.StripeSubscriptionApiService,
576
711
  stripe_customer_api_service_1.StripeCustomerApiService,
577
712
  stripe_payment_service_1.StripePaymentService,
578
- jsonapi_1.JsonApiService])
713
+ jsonapi_1.JsonApiService,
714
+ stripe_coupon_code_checkout_service_1.StripeCouponCodeCheckoutService])
579
715
  ], StripeSubscriptionAdminService);
580
716
  //# sourceMappingURL=stripe-subscription-admin.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-subscription-admin.service.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-subscription/services/stripe-subscription-admin.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe-subscription-admin.service.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-subscription/services/stripe-subscription-admin.service.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,8 @@ export declare class StripeSubscriptionApiService {
89
89
  metadata?: Record<string, string>;
90
90
  promotionCode?: string;
91
91
  trialEnd?: "now";
92
+ /** The card the subscription charges from now on (the customer default) */
93
+ defaultPaymentMethodId?: string;
92
94
  }): Promise<Stripe.Subscription>;
93
95
  /**
94
96
  * Cancel a subscription
@@ -108,6 +110,11 @@ export declare class StripeSubscriptionApiService {
108
110
  * ```
109
111
  */
110
112
  cancelSubscription(subscriptionId: string, cancelAtPeriodEnd?: boolean): Promise<Stripe.Subscription>;
113
+ /**
114
+ * Cancel at once an unpaid first-payment attempt that a new attempt replaces, marking it
115
+ * so the webhook knows it never granted anything.
116
+ */
117
+ cancelUnpaidAttempt(subscriptionId: string): Promise<Stripe.Subscription>;
111
118
  /**
112
119
  * Pause a subscription
113
120
  *
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-subscription-api.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/stripe-subscription/services/stripe-subscription-api.service.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,qBACa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEzD;;;;;;;;;;;;;;;;;;;;;OAqBG;IAEG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IA6BhC;;;;;;;;;;;OAWG;IAEG,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAOhF;;;;;;;;;;;;;;;;;;;OAmBG;IAEG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,iBAAiB,CAAC;QACtE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,KAAK,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IA+BhC;;;;;;;;;;;;;;;;OAgBG;IAEG,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IASjH;;;;;;;;;;;;;OAaG;IAEG,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAa9F;;;;;;;;;;;OAWG;IAEG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAK9E;;;;;;;;;;;;;OAaG;IAEG,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAe3F;;;;;;;;;;;;;;;;OAgBG;IAEG,iBAAiB,CACrB,gBAAgB,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,MAAM,GAC5C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;CAYlC"}
1
+ {"version":3,"file":"stripe-subscription-api.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/stripe-subscription/services/stripe-subscription-api.service.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAKrE;;;;;;;;;;;;;;GAcG;AACH,qBACa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEzD;;;;;;;;;;;;;;;;;;;;;OAqBG;IAEG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IA6BhC;;;;;;;;;;;OAWG;IAEG,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAOhF;;;;;;;;;;;;;;;;;;;OAmBG;IAEG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,iBAAiB,CAAC;QACtE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,2EAA2E;QAC3E,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAyChC;;;;;;;;;;;;;;;;OAgBG;IAEG,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IASjH;;;OAGG;IAEG,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAO/E;;;;;;;;;;;;;OAaG;IAEG,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAa9F;;;;;;;;;;;OAWG;IAEG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAK9E;;;;;;;;;;;;;OAaG;IAEG,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAe3F;;;;;;;;;;;;;;;;OAgBG;IAEG,iBAAiB,CACrB,gBAAgB,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,MAAM,GAC5C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;CAYlC"}
@@ -17,6 +17,9 @@ const common_1 = require("@nestjs/common");
17
17
  const stripe_1 = __importDefault(require("stripe"));
18
18
  const stripe_errors_1 = require("../../stripe/errors/stripe.errors");
19
19
  const stripe_service_1 = require("../../stripe/services/stripe.service");
20
+ const stripe_subscription_discount_1 = require("../entities/stripe-subscription.discount");
21
+ const stripe_subscription_meta_1 = require("../entities/stripe-subscription.meta");
22
+ const subscription_payment_confirmation_1 = require("./subscription-payment-confirmation");
20
23
  /**
21
24
  * Stripe Subscription API Service
22
25
  *
@@ -65,7 +68,7 @@ let StripeSubscriptionApiService = class StripeSubscriptionApiService {
65
68
  items: [{ price: params.priceId }],
66
69
  payment_behavior: "default_incomplete",
67
70
  payment_settings: { save_default_payment_method: "on_subscription" },
68
- expand: ["latest_invoice.payment_intent", "pending_setup_intent"],
71
+ expand: [...subscription_payment_confirmation_1.SUBSCRIPTION_PAYMENT_EXPAND, "pending_setup_intent", stripe_subscription_discount_1.STRIPE_SUBSCRIPTION_DISCOUNT_EXPAND],
69
72
  metadata: params.metadata,
70
73
  };
71
74
  if (params.paymentMethodId) {
@@ -98,7 +101,7 @@ let StripeSubscriptionApiService = class StripeSubscriptionApiService {
98
101
  async retrieveSubscription(subscriptionId) {
99
102
  const stripe = this.stripeService.getClient();
100
103
  return stripe.subscriptions.retrieve(subscriptionId, {
101
- expand: ["latest_invoice", "default_payment_method"],
104
+ expand: ["latest_invoice", "default_payment_method", stripe_subscription_discount_1.STRIPE_SUBSCRIPTION_DISCOUNT_EXPAND],
102
105
  });
103
106
  }
104
107
  /**
@@ -143,6 +146,14 @@ let StripeSubscriptionApiService = class StripeSubscriptionApiService {
143
146
  if (params.trialEnd === "now") {
144
147
  updateParams.trial_end = "now";
145
148
  }
149
+ // A card saved on the subscription by an earlier payment would otherwise beat the customer default
150
+ if (params.defaultPaymentMethodId) {
151
+ updateParams.default_payment_method = params.defaultPaymentMethodId;
152
+ }
153
+ // A change that charges at once (trial upgrade) can leave the invoice open
154
+ // when the card needs 3D Secure; the caller reads the client secret from it
155
+ // The discount is expanded so the caller can store what the subscription carries after the update.
156
+ updateParams.expand = [...subscription_payment_confirmation_1.SUBSCRIPTION_PAYMENT_EXPAND, stripe_subscription_discount_1.STRIPE_SUBSCRIPTION_DISCOUNT_EXPAND];
146
157
  return stripe.subscriptions.update(params.subscriptionId, updateParams);
147
158
  }
148
159
  /**
@@ -169,6 +180,16 @@ let StripeSubscriptionApiService = class StripeSubscriptionApiService {
169
180
  }
170
181
  return stripe.subscriptions.cancel(subscriptionId);
171
182
  }
183
+ /**
184
+ * Cancel at once an unpaid first-payment attempt that a new attempt replaces, marking it
185
+ * so the webhook knows it never granted anything.
186
+ */
187
+ async cancelUnpaidAttempt(subscriptionId) {
188
+ const stripe = this.stripeService.getClient();
189
+ return stripe.subscriptions.cancel(subscriptionId, {
190
+ cancellation_details: { comment: stripe_subscription_meta_1.STRIPE_UNPAID_ATTEMPT_CANCELLATION_COMMENT },
191
+ });
192
+ }
172
193
  /**
173
194
  * Pause a subscription
174
195
  *
@@ -291,6 +312,12 @@ __decorate([
291
312
  __metadata("design:paramtypes", [String, Boolean]),
292
313
  __metadata("design:returntype", Promise)
293
314
  ], StripeSubscriptionApiService.prototype, "cancelSubscription", null);
315
+ __decorate([
316
+ (0, stripe_errors_1.HandleStripeErrors)(),
317
+ __metadata("design:type", Function),
318
+ __metadata("design:paramtypes", [String]),
319
+ __metadata("design:returntype", Promise)
320
+ ], StripeSubscriptionApiService.prototype, "cancelUnpaidAttempt", null);
294
321
  __decorate([
295
322
  (0, stripe_errors_1.HandleStripeErrors)(),
296
323
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-subscription-api.service.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-subscription/services/stripe-subscription-api.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe-subscription-api.service.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-subscription/services/stripe-subscription-api.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import Stripe from "stripe";
2
+ /**
3
+ * What a subscription create / update must expand so the first invoice's
4
+ * payment can be confirmed in the browser.
5
+ *
6
+ * Since Stripe API 2025-03-31 (basil) an invoice has no `payment_intent`: the
7
+ * client secret is on `confirmation_secret` and the PaymentIntent id under
8
+ * `payments`. `latest_invoice.payment_intent` stays for an app that pins an
9
+ * older `STRIPE_API_VERSION`; a newer version ignores it.
10
+ */
11
+ export declare const SUBSCRIPTION_PAYMENT_EXPAND: readonly ["latest_invoice.confirmation_secret", "latest_invoice.payments", "latest_invoice.payment_intent"];
12
+ export type SubscriptionPaymentConfirmation = {
13
+ clientSecret: string | null;
14
+ paymentIntentId: string | null;
15
+ requiresAction: boolean;
16
+ };
17
+ /**
18
+ * Whether the browser must confirm the subscription's first payment, and with
19
+ * which client secret.
20
+ *
21
+ * It must when the latest invoice is still `open` (not paid) and the
22
+ * subscription waits on it: `incomplete` after a create with
23
+ * `payment_behavior: "default_incomplete"`, or `past_due` after a trial upgrade
24
+ * whose card asked for 3D Secure.
25
+ */
26
+ export declare function subscriptionPaymentConfirmation(subscription: Stripe.Subscription): SubscriptionPaymentConfirmation;
27
+ //# sourceMappingURL=subscription-payment-confirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription-payment-confirmation.d.ts","sourceRoot":"","sources":["../../../../src/foundations/stripe-subscription/services/subscription-payment-confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,6GAI9B,CAAC;AAEX,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AA0BF;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,+BAA+B,CAclH"}