@forklaunch/implementation-billing-stripe 1.2.12 → 1.3.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 (60) hide show
  1. package/lib/domain/schemas/billingPortal.schema.d.ts +2 -2
  2. package/lib/domain/schemas/index.js +27 -14
  3. package/lib/domain/schemas/index.mjs +33 -14
  4. package/lib/domain/schemas/plan.schema.d.ts +2 -2
  5. package/lib/domain/schemas/typebox/billingPortal.schema.d.ts +2 -2
  6. package/lib/domain/schemas/typebox/checkoutSession.schema.d.ts +3 -3
  7. package/lib/domain/schemas/typebox/checkoutSession.schema.d.ts.map +1 -1
  8. package/lib/domain/schemas/typebox/paymentLink.schema.d.ts +2 -1
  9. package/lib/domain/schemas/typebox/paymentLink.schema.d.ts.map +1 -1
  10. package/lib/domain/schemas/typebox/plan.schema.d.ts +2 -2
  11. package/lib/domain/schemas/typebox/subscription.schema.d.ts +1 -1
  12. package/lib/domain/schemas/zod/billingPortal.schema.d.ts +2 -2
  13. package/lib/domain/schemas/zod/checkoutSession.schema.d.ts +3 -3
  14. package/lib/domain/schemas/zod/checkoutSession.schema.d.ts.map +1 -1
  15. package/lib/domain/schemas/zod/paymentLink.schema.d.ts.map +1 -1
  16. package/lib/domain/schemas/zod/plan.schema.d.ts +2 -2
  17. package/lib/domain/schemas/zod/subscription.schema.d.ts +1 -1
  18. package/lib/domain/schemas/zod/subscription.schema.d.ts.map +1 -1
  19. package/lib/domain/types/billingPortal.mapper.types.d.ts +8 -0
  20. package/lib/domain/types/billingPortal.mapper.types.d.ts.map +1 -1
  21. package/lib/domain/types/checkoutSession.mapper.types.d.ts +6 -0
  22. package/lib/domain/types/checkoutSession.mapper.types.d.ts.map +1 -1
  23. package/lib/domain/types/paymentLink.mapper.types.d.ts +20 -0
  24. package/lib/domain/types/paymentLink.mapper.types.d.ts.map +1 -1
  25. package/lib/domain/types/plan.mapper.types.d.ts +10 -0
  26. package/lib/domain/types/plan.mapper.types.d.ts.map +1 -1
  27. package/lib/domain/types/stripe.dto.types.d.ts +6 -8
  28. package/lib/domain/types/stripe.dto.types.d.ts.map +1 -1
  29. package/lib/domain/types/stripe.entity.types.d.ts.map +1 -1
  30. package/lib/domain/types/subscription.mapper.types.d.ts +15 -0
  31. package/lib/domain/types/subscription.mapper.types.d.ts.map +1 -1
  32. package/lib/eject/domain/schemas/billingPortal.schema.ts +1 -1
  33. package/lib/eject/domain/schemas/checkoutSession.schema.ts +5 -3
  34. package/lib/eject/domain/schemas/paymentLink.schema.ts +12 -1
  35. package/lib/eject/domain/schemas/plan.schema.ts +1 -1
  36. package/lib/eject/domain/schemas/subscription.schema.ts +2 -1
  37. package/lib/eject/domain/types/billingPortal.mapper.types.ts +17 -0
  38. package/lib/eject/domain/types/checkoutSession.mapper.types.ts +9 -0
  39. package/lib/eject/domain/types/paymentLink.mapper.types.ts +36 -0
  40. package/lib/eject/domain/types/plan.mapper.types.ts +16 -0
  41. package/lib/eject/domain/types/stripe.dto.types.ts +6 -8
  42. package/lib/eject/domain/types/stripe.entity.types.ts +0 -6
  43. package/lib/eject/domain/types/subscription.mapper.types.ts +21 -0
  44. package/lib/eject/services/billingPortal.service.ts +24 -0
  45. package/lib/eject/services/checkoutSession.service.ts +54 -9
  46. package/lib/eject/services/paymentLink.service.ts +149 -25
  47. package/lib/eject/services/plan.service.ts +34 -4
  48. package/lib/eject/services/subscription.service.ts +42 -1
  49. package/lib/eject/services/webhook.service.ts +10 -1
  50. package/lib/services/billingPortal.service.d.ts.map +1 -1
  51. package/lib/services/checkoutSession.service.d.ts +8 -0
  52. package/lib/services/checkoutSession.service.d.ts.map +1 -1
  53. package/lib/services/index.js +238 -25
  54. package/lib/services/index.mjs +238 -25
  55. package/lib/services/paymentLink.service.d.ts +12 -0
  56. package/lib/services/paymentLink.service.d.ts.map +1 -1
  57. package/lib/services/plan.service.d.ts.map +1 -1
  58. package/lib/services/subscription.service.d.ts.map +1 -1
  59. package/lib/services/webhook.service.d.ts.map +1 -1
  60. package/package.json +8 -8
@@ -87,6 +87,8 @@ export class StripePlanService<
87
87
  planDto: StripeCreatePlanDto,
88
88
  em?: EntityManager
89
89
  ): Promise<Dto['PlanMapper']> {
90
+ await this.mappers.CreatePlanMapper.validateCreate?.(planDto);
91
+
90
92
  let stripePlan = await this.stripeClient.plans.create({
91
93
  ...planDto.stripeFields,
92
94
  amount: planDto.price,
@@ -95,11 +97,16 @@ export class StripePlanService<
95
97
  currency: planDto.currency as string
96
98
  });
97
99
 
98
- // retrieve the plan with the product expanded
99
- stripePlan = await this.stripeClient.plans.retrieve(stripePlan.id, {
100
+ await this.mappers.CreatePlanMapper.validateProviderCreate?.(stripePlan);
101
+
102
+ // Retain the returned identity across the subsequent expanded read.
103
+ const createdId = stripePlan.id;
104
+ stripePlan = await this.stripeClient.plans.retrieve(createdId, {
100
105
  expand: ['product']
101
106
  });
102
107
 
108
+ await this.mappers.PlanMapper.validateProviderRead?.(createdId, stripePlan);
109
+
103
110
  const plan = await this.basePlanService.createPlan(
104
111
  {
105
112
  ...planDto,
@@ -121,6 +128,10 @@ export class StripePlanService<
121
128
  const plan = await this.stripeClient.plans.retrieve(planEntity.externalId, {
122
129
  expand: ['product']
123
130
  });
131
+ await this.mappers.PlanMapper.validateProviderRead?.(
132
+ planEntity.externalId,
133
+ plan
134
+ );
124
135
  planEntity.stripeFields = plan.product as Stripe.Product;
125
136
  return planEntity;
126
137
  }
@@ -129,6 +140,7 @@ export class StripePlanService<
129
140
  planDto: StripeUpdatePlanDto,
130
141
  em?: EntityManager
131
142
  ): Promise<Dto['PlanMapper']> {
143
+ await this.mappers.UpdatePlanMapper.validateUpdate?.(planDto);
132
144
  const planEntity = await this.basePlanService.getPlan(
133
145
  {
134
146
  id: planDto.id
@@ -140,6 +152,16 @@ export class StripePlanService<
140
152
  planEntity.externalId
141
153
  );
142
154
 
155
+ await this.mappers.PlanMapper.validateProviderRead?.(
156
+ planEntity.externalId,
157
+ existingPlan
158
+ );
159
+
160
+ await this.mappers.UpdatePlanMapper.validateProviderUpdate?.(
161
+ planDto,
162
+ existingPlan
163
+ );
164
+
143
165
  const existingProduct = existingPlan.product;
144
166
  if (!existingProduct) {
145
167
  throw new Error('Plan product not found');
@@ -162,15 +184,19 @@ export class StripePlanService<
162
184
  product: productId
163
185
  });
164
186
 
165
- updatedPlan = await this.stripeClient.plans.retrieve(updatedPlan.id, {
187
+ await this.mappers.CreatePlanMapper.validateProviderCreate?.(updatedPlan);
188
+
189
+ const createdId = updatedPlan.id;
190
+ updatedPlan = await this.stripeClient.plans.retrieve(createdId, {
166
191
  expand: ['product']
167
192
  });
168
193
 
194
+ await this.mappers.PlanMapper.validateProviderRead?.(createdId, updatedPlan);
195
+
169
196
  const updatedPlanEntity = await this.basePlanService.updatePlan(
170
197
  {
171
198
  ...planDto,
172
199
  externalId: updatedPlan.id,
173
- name: planDto.name,
174
200
  billingProvider: 'stripe'
175
201
  },
176
202
  em,
@@ -210,6 +236,10 @@ export class StripePlanService<
210
236
  expand: ['product']
211
237
  }
212
238
  );
239
+ await this.mappers.PlanMapper.validateProviderRead?.(
240
+ plan.externalId,
241
+ fetchedPlan
242
+ );
213
243
  return fetchedPlan.product as Stripe.Product;
214
244
  } catch {
215
245
  return null;
@@ -88,6 +88,8 @@ export class StripeSubscriptionService<
88
88
  subscriptionDto: StripeCreateSubscriptionDto<PartyType>,
89
89
  em?: EntityManager
90
90
  ): Promise<Dto['SubscriptionMapper']> {
91
+ await this.mappers.CreateSubscriptionMapper.validateCreate?.(subscriptionDto);
92
+
91
93
  const subscription = await this.stripeClient.subscriptions.create({
92
94
  ...subscriptionDto.stripeFields,
93
95
  customer: subscriptionDto.partyId,
@@ -98,6 +100,8 @@ export class StripeSubscriptionService<
98
100
  ]
99
101
  });
100
102
 
103
+ await this.mappers.CreateSubscriptionMapper.validateProviderCreate?.(subscription);
104
+
101
105
  return await this.baseSubscriptionService.createSubscription(
102
106
  {
103
107
  ...subscriptionDto,
@@ -121,6 +125,10 @@ export class StripeSubscriptionService<
121
125
  const stripeSubscription = await this.stripeClient.subscriptions.retrieve(
122
126
  subscriptionEntity.externalId
123
127
  );
128
+ await this.mappers.SubscriptionMapper.validateProviderRead?.(
129
+ subscriptionEntity.externalId,
130
+ stripeSubscription
131
+ );
124
132
  subscriptionEntity.stripeFields = stripeSubscription;
125
133
  return subscriptionEntity;
126
134
  }
@@ -137,6 +145,10 @@ export class StripeSubscriptionService<
137
145
  const stripeSubscription = await this.stripeClient.subscriptions.retrieve(
138
146
  subscriptionEntity.externalId
139
147
  );
148
+ await this.mappers.SubscriptionMapper.validateProviderRead?.(
149
+ subscriptionEntity.externalId,
150
+ stripeSubscription
151
+ );
140
152
  subscriptionEntity.stripeFields = stripeSubscription;
141
153
  return subscriptionEntity;
142
154
  }
@@ -153,6 +165,10 @@ export class StripeSubscriptionService<
153
165
  const stripeSubscription = await this.stripeClient.subscriptions.retrieve(
154
166
  subscriptionEntity.externalId
155
167
  );
168
+ await this.mappers.SubscriptionMapper.validateProviderRead?.(
169
+ subscriptionEntity.externalId,
170
+ stripeSubscription
171
+ );
156
172
  subscriptionEntity.stripeFields = stripeSubscription;
157
173
  return subscriptionEntity;
158
174
  }
@@ -172,11 +188,26 @@ export class StripeSubscriptionService<
172
188
  throw new Error('Subscription not found');
173
189
  }
174
190
 
191
+ await this.mappers.UpdateSubscriptionMapper.validateUpdate?.(
192
+ subscriptionDto,
193
+ subscriptionEntity
194
+ );
195
+
175
196
  const existingStripeSubscription =
176
197
  await this.stripeClient.subscriptions.retrieve(
177
198
  subscriptionEntity.externalId
178
199
  );
179
200
 
201
+ await this.mappers.SubscriptionMapper.validateProviderRead?.(
202
+ subscriptionEntity.externalId,
203
+ existingStripeSubscription
204
+ );
205
+
206
+ await this.mappers.UpdateSubscriptionMapper.validateProviderUpdate?.(
207
+ subscriptionDto,
208
+ existingStripeSubscription
209
+ );
210
+
180
211
  const updatedSubscription = await this.stripeClient.subscriptions.update(
181
212
  subscriptionEntity.externalId,
182
213
  {
@@ -188,6 +219,11 @@ export class StripeSubscriptionService<
188
219
  }
189
220
  );
190
221
 
222
+ await this.mappers.SubscriptionMapper.validateProviderRead?.(
223
+ subscriptionEntity.externalId,
224
+ updatedSubscription
225
+ );
226
+
191
227
  const updatedSubscriptionEntity =
192
228
  await this.baseSubscriptionService.updateSubscription(
193
229
  {
@@ -231,9 +267,14 @@ export class StripeSubscriptionService<
231
267
  const stripeSubscriptions = await Promise.all(
232
268
  subscriptions.map(async (subscription) => {
233
269
  try {
234
- return await this.stripeClient.subscriptions.retrieve(
270
+ const provider = await this.stripeClient.subscriptions.retrieve(
235
271
  subscription.externalId
236
272
  );
273
+ await this.mappers.SubscriptionMapper.validateProviderRead?.(
274
+ subscription.externalId,
275
+ provider
276
+ );
277
+ return provider;
237
278
  } catch {
238
279
  return null;
239
280
  }
@@ -52,6 +52,15 @@ export type StripeWebhookEventShape = {
52
52
  const isActiveStatus = (status: Stripe.Subscription.Status): boolean =>
53
53
  status === 'active' || status === 'trialing';
54
54
 
55
+ // Stripe's created timestamp is Unix seconds. Keep our five-minute application
56
+ // expiry within four-digit RFC3339 years; this does not extend the provider URL.
57
+ const portalExpiry = (created: number): Date => {
58
+ if (!Number.isSafeInteger(created) || created < 0 || created > 253402300499) {
59
+ throw new Error('Billing webhook payload is invalid');
60
+ }
61
+ return new Date((created + 300) * 1000);
62
+ };
63
+
55
64
  export class StripeWebhookService<
56
65
  SchemaValidator extends AnySchemaValidator,
57
66
  StatusEnum,
@@ -241,7 +250,7 @@ export class StripeWebhookService<
241
250
  {
242
251
  id: event.data.object.id,
243
252
  customerId: event.data.object.customer,
244
- expiresAt: new Date(event.data.object.created + 5 * 60 * 1000),
253
+ expiresAt: portalExpiry(event.data.object.created),
245
254
  uri: event.data.object.url
246
255
  }
247
256
  );
@@ -1 +1 @@
1
- {"version":3,"file":"billingPortal.service.d.ts","sourceRoot":"","sources":["../../services/billingPortal.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billingPortal.service.d.ts","sourceRoot":"","sources":["../../services/billingPortal.service.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,14 @@ export declare class StripeCheckoutSessionService<SchemaValidator extends AnySch
33
33
  } | undefined);
34
34
  createCheckoutSession(checkoutSessionDto: StripeCreateCheckoutSessionDto<StatusEnum>, ...args: unknown[]): Promise<Dto['CheckoutSessionMapper']>;
35
35
  getCheckoutSession(idDto: IdDto): Promise<Dto['CheckoutSessionMapper']>;
36
+ /**
37
+ * The Stripe id (`cs_...`) stored with a checkout session when it was
38
+ * created. Public ids are local; Stripe only knows its own id. The stored
39
+ * provider object's id wins; a record without one is still usable when its
40
+ * own id is a Stripe id. Anything else fails here rather than sending Stripe
41
+ * a local id.
42
+ */
43
+ protected stripeCheckoutSessionId(id: string): Promise<string>;
36
44
  expireCheckoutSession({ id }: IdDto): Promise<void>;
37
45
  handleCheckoutSuccess({ id }: IdDto): Promise<void>;
38
46
  handleCheckoutFailure({ id }: IdDto): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"checkoutSession.service.d.ts","sourceRoot":"","sources":["../../services/checkoutSession.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkoutSession.service.d.ts","sourceRoot":"","sources":["../../services/checkoutSession.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAE9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,qBAAa,4BAA4B,CACvC,eAAe,SAAS,kBAAkB,EAC1C,UAAU,EACV,cAAc,SAAS,6BAA6B,EACpD,GAAG,SAAS,yBAAyB,CAAC,UAAU,CAAC,GAC/C,yBAAyB,CAAC,UAAU,CAAC,CACvC,YAAW,sBAAsB,CACjC,OAAO,iBAAiB,EACxB,OAAO,YAAY,EACnB,UAAU,EACV;IACE,wBAAwB,EAAE,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7D,kBAAkB,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACjD,KAAK,EAAE,KAAK,CAAC;CACd,CACF;IA2BG,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;KAC9B;IA7BH,0BAA0B,EAAE,0BAA0B,CACpD,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,GAAG,CACJ,CAAC;IACF,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IACrF,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CACtD,UAAU,EACV,cAAc,EACd,GAAG,CACJ,CAAC;IAEF,YACE,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,QAAQ,EACf,sBAAsB,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EACjE,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,4BAA4B,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,EAC7D,OAAO,CAAC,EAAE;QACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;KAC9B,YAAA,EAsBF;IAEK,qBAAqB,CACzB,kBAAkB,EAAE,8BAA8B,CAAC,UAAU,CAAC,EAC9D,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CA0BvC;IAEK,kBAAkB,CACtB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAqBvC;IAED;;;;;;OAMG;IACH,UAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAanE;IAEK,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxD;IAEK,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxD;IAEK,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxD;CACF"}