@forklaunch/implementation-billing-stripe 1.1.26 → 1.1.28

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 (88) hide show
  1. package/lib/domain/enum/billingProvider.enum.d.ts +5 -0
  2. package/lib/domain/enum/billingProvider.enum.d.ts.map +1 -0
  3. package/lib/domain/enum/currency.enum.d.ts +72 -0
  4. package/lib/domain/enum/currency.enum.d.ts.map +1 -0
  5. package/lib/domain/enum/index.d.ts +5 -126
  6. package/lib/domain/enum/index.d.ts.map +1 -0
  7. package/lib/domain/enum/paymentMethod.enum.d.ts +41 -0
  8. package/lib/domain/enum/paymentMethod.enum.d.ts.map +1 -0
  9. package/lib/domain/enum/planCadence.enum.d.ts +7 -0
  10. package/lib/domain/enum/planCadence.enum.d.ts.map +1 -0
  11. package/lib/domain/schemas/billingPortal.schema.d.ts +50 -0
  12. package/lib/domain/schemas/billingPortal.schema.d.ts.map +1 -0
  13. package/lib/domain/schemas/checkoutSession.schema.d.ts +12 -0
  14. package/lib/domain/schemas/checkoutSession.schema.d.ts.map +1 -0
  15. package/lib/domain/schemas/index.d.ts +6 -384
  16. package/lib/domain/schemas/index.d.ts.map +1 -0
  17. package/lib/domain/schemas/index.js +4 -4
  18. package/lib/domain/schemas/index.mjs +4 -4
  19. package/lib/domain/schemas/paymentLink.schema.d.ts +12 -0
  20. package/lib/domain/schemas/paymentLink.schema.d.ts.map +1 -0
  21. package/lib/domain/schemas/plan.schema.d.ts +88 -0
  22. package/lib/domain/schemas/plan.schema.d.ts.map +1 -0
  23. package/lib/domain/schemas/subscription.schema.d.ts +12 -0
  24. package/lib/domain/schemas/subscription.schema.d.ts.map +1 -0
  25. package/lib/domain/schemas/typebox/billingPortal.schema.d.ts +47 -0
  26. package/lib/domain/schemas/typebox/billingPortal.schema.d.ts.map +1 -0
  27. package/lib/domain/schemas/typebox/checkoutSession.schema.d.ts +46 -0
  28. package/lib/domain/schemas/typebox/checkoutSession.schema.d.ts.map +1 -0
  29. package/lib/domain/schemas/typebox/paymentLink.schema.d.ts +33 -0
  30. package/lib/domain/schemas/typebox/paymentLink.schema.d.ts.map +1 -0
  31. package/lib/domain/schemas/typebox/plan.schema.d.ts +85 -0
  32. package/lib/domain/schemas/typebox/plan.schema.d.ts.map +1 -0
  33. package/lib/domain/schemas/typebox/subscription.schema.d.ts +51 -0
  34. package/lib/domain/schemas/typebox/subscription.schema.d.ts.map +1 -0
  35. package/lib/domain/schemas/zod/billingPortal.schema.d.ts +47 -0
  36. package/lib/domain/schemas/zod/billingPortal.schema.d.ts.map +1 -0
  37. package/lib/domain/schemas/zod/checkoutSession.schema.d.ts +46 -0
  38. package/lib/domain/schemas/zod/checkoutSession.schema.d.ts.map +1 -0
  39. package/lib/domain/schemas/zod/paymentLink.schema.d.ts +34 -0
  40. package/lib/domain/schemas/zod/paymentLink.schema.d.ts.map +1 -0
  41. package/lib/domain/schemas/zod/plan.schema.d.ts +88 -0
  42. package/lib/domain/schemas/zod/plan.schema.d.ts.map +1 -0
  43. package/lib/domain/schemas/zod/subscription.schema.d.ts +54 -0
  44. package/lib/domain/schemas/zod/subscription.schema.d.ts.map +1 -0
  45. package/lib/domain/types/billingPortal.mapper.types.d.ts +19 -0
  46. package/lib/domain/types/billingPortal.mapper.types.d.ts.map +1 -0
  47. package/lib/domain/types/checkoutSession.mapper.types.d.ts +19 -0
  48. package/lib/domain/types/checkoutSession.mapper.types.d.ts.map +1 -0
  49. package/lib/domain/types/index.d.ts +8 -518
  50. package/lib/domain/types/index.d.ts.map +1 -0
  51. package/lib/domain/types/paymentLink.mapper.types.d.ts +19 -0
  52. package/lib/domain/types/paymentLink.mapper.types.d.ts.map +1 -0
  53. package/lib/domain/types/plan.mapper.types.d.ts +19 -0
  54. package/lib/domain/types/plan.mapper.types.d.ts.map +1 -0
  55. package/lib/domain/types/stripe.dto.types.d.ts +113 -0
  56. package/lib/domain/types/stripe.dto.types.d.ts.map +1 -0
  57. package/lib/domain/types/stripe.entity.types.d.ts +103 -0
  58. package/lib/domain/types/stripe.entity.types.d.ts.map +1 -0
  59. package/lib/domain/types/subscription.mapper.types.d.ts +19 -0
  60. package/lib/domain/types/subscription.mapper.types.d.ts.map +1 -0
  61. package/lib/eject/domain/schemas/plan.schema.ts +1 -1
  62. package/lib/eject/domain/schemas/subscription.schema.ts +1 -1
  63. package/lib/eject/domain/types/stripe.entity.types.ts +24 -6
  64. package/lib/persistence/entities/index.d.ts +437 -0
  65. package/lib/persistence/entities/index.d.ts.map +1 -0
  66. package/lib/services/billingPortal.service.d.ts +39 -0
  67. package/lib/services/billingPortal.service.d.ts.map +1 -0
  68. package/lib/services/checkoutSession.service.d.ts +40 -0
  69. package/lib/services/checkoutSession.service.d.ts.map +1 -0
  70. package/lib/services/index.d.ts +7 -188
  71. package/lib/services/index.d.ts.map +1 -0
  72. package/lib/services/index.js +2 -2
  73. package/lib/services/index.mjs +2 -2
  74. package/lib/services/paymentLink.service.d.ts +43 -0
  75. package/lib/services/paymentLink.service.d.ts.map +1 -0
  76. package/lib/services/plan.service.d.ts +41 -0
  77. package/lib/services/plan.service.d.ts.map +1 -0
  78. package/lib/services/subscription.service.d.ts +43 -0
  79. package/lib/services/subscription.service.d.ts.map +1 -0
  80. package/lib/services/webhook.service.d.ts +39 -0
  81. package/lib/services/webhook.service.d.ts.map +1 -0
  82. package/package.json +41 -14
  83. package/lib/domain/enum/index.d.mts +0 -126
  84. package/lib/domain/schemas/index.d.mts +0 -384
  85. package/lib/domain/types/index.d.mts +0 -518
  86. package/lib/services/index.d.mts +0 -190
  87. package/lib/stripe.dto.types-62tPCNUc.d.mts +0 -111
  88. package/lib/stripe.dto.types-BnAQ5iRQ.d.ts +0 -111
@@ -1,190 +0,0 @@
1
- import { IdDto, IdsDto } from '@forklaunch/common';
2
- import { TtlCache } from '@forklaunch/core/cache';
3
- import { TelemetryOptions, OpenTelemetryCollector, MetricsDefinition } from '@forklaunch/core/http';
4
- import { BaseBillingPortalService, BaseCheckoutSessionService, BasePaymentLinkService, BasePlanService, BaseSubscriptionService } from '@forklaunch/implementation-billing-base/services';
5
- import { BillingPortalService, CheckoutSessionService, PaymentLinkService, PlanService, SubscriptionService } from '@forklaunch/interfaces-billing/interfaces';
6
- export * from '@forklaunch/interfaces-billing/interfaces';
7
- import { AnySchemaValidator } from '@forklaunch/validator';
8
- import { EntityManager } from '@mikro-orm/core';
9
- import Stripe from 'stripe';
10
- import { StripeBillingPortalEntities, StripeBillingPortalMappers, StripeCheckoutSessionEntities, StripeCheckoutSessionMappers, StripePaymentLinkEntities, StripePaymentLinkMappers, StripePlanEntities, StripePlanMappers, StripeSubscriptionEntities, StripeSubscriptionMappers } from '../domain/types/index.mjs';
11
- import { m as StripeBillingPortalDtos, n as StripeCreateBillingPortalDto, o as StripeUpdateBillingPortalDto, p as StripeCheckoutSessionDtos, q as StripeCreateCheckoutSessionDto, r as StripePaymentLinkDtos, s as StripeCreatePaymentLinkDto, t as StripeUpdatePaymentLinkDto, u as StripePaymentLinkDto, v as StripePlanDtos, w as StripeCreatePlanDto, x as StripeUpdatePlanDto, y as StripePlanDto, z as StripeSubscriptionDtos, A as StripeCreateSubscriptionDto, B as StripeUpdateSubscriptionDto, C as StripeSubscriptionDto } from '../stripe.dto.types-62tPCNUc.mjs';
12
- import { PaymentMethodEnum, CurrencyEnum, PlanCadenceEnum, BillingProviderEnum } from '../domain/enum/index.mjs';
13
- export * from '@forklaunch/interfaces-billing/types';
14
-
15
- declare class StripeBillingPortalService<SchemaValidator extends AnySchemaValidator, Entities extends StripeBillingPortalEntities, Dto extends StripeBillingPortalDtos = StripeBillingPortalDtos> implements BillingPortalService<{
16
- CreateBillingPortalDto: Dto['CreateBillingPortalMapper'];
17
- UpdateBillingPortalDto: Dto['UpdateBillingPortalMapper'];
18
- BillingPortalDto: Dto['BillingPortalMapper'];
19
- IdDto: IdDto;
20
- }> {
21
- readonly options?: {
22
- enableDatabaseBackup?: boolean;
23
- telemetry?: TelemetryOptions;
24
- } | undefined;
25
- baseBillingPortalService: BaseBillingPortalService<SchemaValidator, Entities, Dto>;
26
- protected readonly stripeClient: Stripe;
27
- protected readonly em: EntityManager;
28
- protected readonly cache: TtlCache;
29
- protected readonly openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
30
- protected readonly schemaValidator: SchemaValidator;
31
- private readonly billingPortalSessionExpiryDurationMs;
32
- protected readonly mappers: StripeBillingPortalMappers<Entities, Dto>;
33
- constructor(stripeClient: Stripe, em: EntityManager, cache: TtlCache, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: StripeBillingPortalMappers<Entities, Dto>, options?: {
34
- enableDatabaseBackup?: boolean;
35
- telemetry?: TelemetryOptions;
36
- } | undefined);
37
- createBillingPortalSession(billingPortalDto: StripeCreateBillingPortalDto, ...args: unknown[]): Promise<Dto['BillingPortalMapper']>;
38
- getBillingPortalSession(idDto: IdDto): Promise<Dto['BillingPortalMapper']>;
39
- expireBillingPortalSession(idDto: IdDto): Promise<void>;
40
- updateBillingPortalSession(billingPortalDto: StripeUpdateBillingPortalDto, ...args: unknown[]): Promise<Dto['BillingPortalMapper']>;
41
- }
42
-
43
- declare class StripeCheckoutSessionService<SchemaValidator extends AnySchemaValidator, StatusEnum, MapperEntities extends StripeCheckoutSessionEntities<StatusEnum>, Dto extends StripeCheckoutSessionDtos<StatusEnum> = StripeCheckoutSessionDtos<StatusEnum>> implements CheckoutSessionService<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum, {
44
- CreateCheckoutSessionDto: Dto['CreateCheckoutSessionMapper'];
45
- CheckoutSessionDto: Dto['CheckoutSessionMapper'];
46
- IdDto: IdDto;
47
- }> {
48
- readonly options?: {
49
- enableDatabaseBackup?: boolean;
50
- telemetry?: TelemetryOptions;
51
- } | undefined;
52
- baseCheckoutSessionService: BaseCheckoutSessionService<SchemaValidator, PaymentMethodEnum, CurrencyEnum, StatusEnum, MapperEntities, Dto>;
53
- protected readonly stripeClient: Stripe;
54
- protected readonly em: EntityManager;
55
- protected readonly cache: TtlCache;
56
- protected readonly openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
57
- protected readonly schemaValidator: SchemaValidator;
58
- protected readonly mappers: StripeCheckoutSessionMappers<StatusEnum, MapperEntities, Dto>;
59
- constructor(stripeClient: Stripe, em: EntityManager, cache: TtlCache, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: StripeCheckoutSessionMappers<StatusEnum, MapperEntities, Dto>, options?: {
60
- enableDatabaseBackup?: boolean;
61
- telemetry?: TelemetryOptions;
62
- } | undefined);
63
- createCheckoutSession(checkoutSessionDto: StripeCreateCheckoutSessionDto<StatusEnum>, ...args: unknown[]): Promise<Dto['CheckoutSessionMapper']>;
64
- getCheckoutSession(idDto: IdDto): Promise<Dto['CheckoutSessionMapper']>;
65
- expireCheckoutSession({ id }: IdDto): Promise<void>;
66
- handleCheckoutSuccess({ id }: IdDto): Promise<void>;
67
- handleCheckoutFailure({ id }: IdDto): Promise<void>;
68
- }
69
-
70
- declare class StripePaymentLinkService<SchemaValidator extends AnySchemaValidator, StatusEnum, Entities extends StripePaymentLinkEntities<StatusEnum>, Dto extends StripePaymentLinkDtos<StatusEnum> = StripePaymentLinkDtos<StatusEnum>> implements PaymentLinkService<PaymentMethodEnum, typeof CurrencyEnum, StatusEnum, {
71
- CreatePaymentLinkDto: StripeCreatePaymentLinkDto<StatusEnum>;
72
- UpdatePaymentLinkDto: StripeUpdatePaymentLinkDto<StatusEnum>;
73
- PaymentLinkDto: StripePaymentLinkDto<StatusEnum>;
74
- IdDto: IdDto;
75
- IdsDto: IdsDto;
76
- }> {
77
- readonly options?: {
78
- enableDatabaseBackup?: boolean;
79
- telemetry?: TelemetryOptions;
80
- } | undefined;
81
- basePaymentLinkService: BasePaymentLinkService<SchemaValidator, PaymentMethodEnum, CurrencyEnum, StatusEnum, Entities, Dto>;
82
- protected readonly stripeClient: Stripe;
83
- protected readonly em: EntityManager;
84
- protected readonly cache: TtlCache;
85
- protected readonly openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
86
- protected readonly schemaValidator: SchemaValidator;
87
- protected readonly mappers: StripePaymentLinkMappers<StatusEnum, Entities, Dto>;
88
- constructor(stripeClient: Stripe, em: EntityManager, cache: TtlCache, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: StripePaymentLinkMappers<StatusEnum, Entities, Dto>, options?: {
89
- enableDatabaseBackup?: boolean;
90
- telemetry?: TelemetryOptions;
91
- } | undefined);
92
- createPaymentLink(paymentLinkDto: StripeCreatePaymentLinkDto<StatusEnum>, ...args: unknown[]): Promise<Dto['PaymentLinkMapper']>;
93
- updatePaymentLink(paymentLinkDto: StripeUpdatePaymentLinkDto<StatusEnum>, ...args: unknown[]): Promise<Dto['PaymentLinkMapper']>;
94
- getPaymentLink({ id }: IdDto): Promise<Dto['PaymentLinkMapper']>;
95
- expirePaymentLink({ id }: IdDto): Promise<void>;
96
- handlePaymentSuccess({ id }: IdDto): Promise<void>;
97
- handlePaymentFailure({ id }: IdDto): Promise<void>;
98
- listPaymentLinks(idsDto?: IdsDto): Promise<Dto['PaymentLinkMapper'][]>;
99
- }
100
-
101
- declare class StripePlanService<SchemaValidator extends AnySchemaValidator, Entities extends StripePlanEntities, Dto extends StripePlanDtos = StripePlanDtos> implements PlanService<typeof PlanCadenceEnum, typeof CurrencyEnum, typeof BillingProviderEnum, {
102
- CreatePlanDto: StripeCreatePlanDto;
103
- UpdatePlanDto: StripeUpdatePlanDto;
104
- PlanDto: StripePlanDto;
105
- IdDto: IdDto;
106
- IdsDto: IdsDto;
107
- }> {
108
- readonly options?: {
109
- telemetry?: TelemetryOptions;
110
- databaseTableName?: string;
111
- } | undefined;
112
- basePlanService: BasePlanService<SchemaValidator, PlanCadenceEnum, CurrencyEnum, BillingProviderEnum, Entities, Dto>;
113
- protected readonly stripeClient: Stripe;
114
- protected readonly em: EntityManager;
115
- protected readonly openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
116
- protected readonly schemaValidator: SchemaValidator;
117
- protected readonly mappers: StripePlanMappers<Entities, Dto>;
118
- constructor(stripeClient: Stripe, em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: StripePlanMappers<Entities, Dto>, options?: {
119
- telemetry?: TelemetryOptions;
120
- databaseTableName?: string;
121
- } | undefined);
122
- createPlan(planDto: StripeCreatePlanDto, em?: EntityManager): Promise<Dto['PlanMapper']>;
123
- getPlan(idDto: IdDto, em?: EntityManager): Promise<Dto['PlanMapper']>;
124
- updatePlan(planDto: StripeUpdatePlanDto, em?: EntityManager): Promise<Dto['PlanMapper']>;
125
- deletePlan(idDto: IdDto, em?: EntityManager): Promise<void>;
126
- listPlans(idsDto?: IdsDto, em?: EntityManager): Promise<Dto['PlanMapper'][]>;
127
- }
128
-
129
- declare class StripeSubscriptionService<SchemaValidator extends AnySchemaValidator, PartyType, Entities extends StripeSubscriptionEntities<PartyType>, Dto extends StripeSubscriptionDtos<PartyType> = StripeSubscriptionDtos<PartyType>> implements SubscriptionService<PartyType, typeof BillingProviderEnum, {
130
- CreateSubscriptionDto: StripeCreateSubscriptionDto<PartyType>;
131
- UpdateSubscriptionDto: StripeUpdateSubscriptionDto<PartyType>;
132
- SubscriptionDto: StripeSubscriptionDto<PartyType>;
133
- IdDto: IdDto;
134
- IdsDto: IdsDto;
135
- }> {
136
- readonly options?: {
137
- telemetry?: TelemetryOptions;
138
- databaseTableName?: string;
139
- } | undefined;
140
- baseSubscriptionService: BaseSubscriptionService<SchemaValidator, PartyType, BillingProviderEnum, Entities, Dto>;
141
- protected readonly stripeClient: Stripe;
142
- protected readonly em: EntityManager;
143
- protected readonly openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
144
- protected readonly schemaValidator: SchemaValidator;
145
- protected readonly mappers: StripeSubscriptionMappers<PartyType, Entities, Dto>;
146
- constructor(stripeClient: Stripe, em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: StripeSubscriptionMappers<PartyType, Entities, Dto>, options?: {
147
- telemetry?: TelemetryOptions;
148
- databaseTableName?: string;
149
- } | undefined);
150
- createSubscription(subscriptionDto: StripeCreateSubscriptionDto<PartyType>, em?: EntityManager): Promise<Dto['SubscriptionMapper']>;
151
- getSubscription(idDto: IdDto, em?: EntityManager): Promise<Dto['SubscriptionMapper']>;
152
- getUserSubscription(idDto: IdDto, em?: EntityManager): Promise<Dto['SubscriptionMapper']>;
153
- getOrganizationSubscription(idDto: IdDto, em?: EntityManager): Promise<Dto['SubscriptionMapper']>;
154
- updateSubscription(subscriptionDto: StripeUpdateSubscriptionDto<PartyType> & IdDto, em?: EntityManager): Promise<Dto['SubscriptionMapper']>;
155
- deleteSubscription(idDto: IdDto, em?: EntityManager): Promise<void>;
156
- listSubscriptions(idsDto?: IdsDto, em?: EntityManager): Promise<Dto['SubscriptionMapper'][]>;
157
- cancelSubscription(idDto: IdDto, em?: EntityManager): Promise<void>;
158
- resumeSubscription(idDto: IdDto, em?: EntityManager): Promise<void>;
159
- }
160
-
161
- declare class StripeWebhookService<SchemaValidator extends AnySchemaValidator, StatusEnum, PartyEnum, BillingPortalEntities extends StripeBillingPortalEntities = StripeBillingPortalEntities, CheckoutSessionEntities extends StripeCheckoutSessionEntities<StatusEnum> = StripeCheckoutSessionEntities<StatusEnum>, PaymentLinkEntities extends StripePaymentLinkEntities<StatusEnum> = StripePaymentLinkEntities<StatusEnum>, PlanEntities extends StripePlanEntities = StripePlanEntities, SubscriptionEntities extends StripeSubscriptionEntities<PartyEnum> = StripeSubscriptionEntities<PartyEnum>> {
162
- protected readonly partyEnum: PartyEnum;
163
- protected readonly stripeClient: Stripe;
164
- protected readonly em: EntityManager;
165
- protected readonly schemaValidator: SchemaValidator;
166
- protected readonly openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
167
- protected readonly billingPortalService: StripeBillingPortalService<SchemaValidator, BillingPortalEntities>;
168
- protected readonly checkoutSessionService: StripeCheckoutSessionService<SchemaValidator, StatusEnum, CheckoutSessionEntities>;
169
- protected readonly paymentLinkService: StripePaymentLinkService<SchemaValidator, StatusEnum, PaymentLinkEntities>;
170
- protected readonly planService: StripePlanService<SchemaValidator, PlanEntities>;
171
- protected readonly subscriptionService: StripeSubscriptionService<SchemaValidator, PartyEnum, SubscriptionEntities>;
172
- constructor(stripeClient: Stripe, em: EntityManager, schemaValidator: SchemaValidator, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, billingPortalService: StripeBillingPortalService<SchemaValidator, BillingPortalEntities>, checkoutSessionService: StripeCheckoutSessionService<SchemaValidator, StatusEnum, CheckoutSessionEntities>, paymentLinkService: StripePaymentLinkService<SchemaValidator, StatusEnum, PaymentLinkEntities>, planService: StripePlanService<SchemaValidator, PlanEntities>, subscriptionService: StripeSubscriptionService<SchemaValidator, PartyEnum, SubscriptionEntities>, partyEnum: PartyEnum);
173
- /**
174
- * Resolve the party type for a subscription event.
175
- * Stripe subscriptions are customer-scoped — customers map to users
176
- * by default. Override this method to implement organization-level
177
- * subscriptions or other party resolution logic.
178
- */
179
- protected resolvePartyType(_event: Stripe.Event): PartyEnum[keyof PartyEnum];
180
- /**
181
- * Extract features from Stripe product metadata.
182
- * Features can be stored as:
183
- * - metadata.features: comma-separated string (e.g., "feature1,feature2,feature3")
184
- * - metadata.features: JSON array string (e.g., '["feature1","feature2"]')
185
- */
186
- private extractFeaturesFromProduct;
187
- handleWebhookEvent(event: Stripe.Event): Promise<void>;
188
- }
189
-
190
- export { StripeBillingPortalService, StripeCheckoutSessionService, StripePaymentLinkService, StripePlanService, StripeSubscriptionService, StripeWebhookService };
@@ -1,111 +0,0 @@
1
- import { BillingPortalDto, CreateBillingPortalDto, UpdateBillingPortalDto, CheckoutSessionDto, CreateCheckoutSessionDto, UpdateCheckoutSessionDto, PaymentLinkDto, CreatePaymentLinkDto, UpdatePaymentLinkDto, PlanDto, CreatePlanDto, UpdatePlanDto, SubscriptionDto, CreateSubscriptionDto, UpdateSubscriptionDto } from '@forklaunch/interfaces-billing/types';
2
- import Stripe from 'stripe';
3
- import { PaymentMethodEnum, CurrencyEnum, PlanCadenceEnum, BillingProviderEnum } from './domain/enum/index.mjs';
4
-
5
- type UnwrapStripeResponse<T> = T extends Promise<infer R> ? R extends {
6
- lastResponse?: unknown;
7
- } ? Omit<R, 'lastResponse'> : R : never;
8
- interface StripeBillingPortalSessionCreateParams extends NonNullable<Parameters<Stripe['billingPortal']['sessions']['create']>[0]> {
9
- }
10
- interface StripeBillingPortalSession extends UnwrapStripeResponse<ReturnType<Stripe['billingPortal']['sessions']['create']>> {
11
- }
12
- interface StripeCheckoutSessionCreateParams extends NonNullable<Parameters<Stripe['checkout']['sessions']['create']>[0]> {
13
- }
14
- interface StripeCheckoutSession extends UnwrapStripeResponse<ReturnType<Stripe['checkout']['sessions']['create']>> {
15
- }
16
- interface StripePaymentLinkCreateParams extends NonNullable<Parameters<Stripe['paymentLinks']['create']>[0]> {
17
- }
18
- interface StripePaymentLinkUpdateParams extends NonNullable<Parameters<Stripe['paymentLinks']['update']>[1]> {
19
- }
20
- interface StripePaymentLink extends UnwrapStripeResponse<ReturnType<Stripe['paymentLinks']['create']>> {
21
- }
22
- interface StripePlanCreateParams extends NonNullable<Parameters<Stripe['plans']['create']>[0]> {
23
- }
24
- interface StripePlanUpdateParams extends NonNullable<Parameters<Stripe['plans']['update']>[1]> {
25
- }
26
- interface StripeProduct extends UnwrapStripeResponse<ReturnType<Stripe['products']['create']>> {
27
- }
28
- interface StripeSubscriptionCreateParams extends NonNullable<Parameters<Stripe['subscriptions']['create']>[0]> {
29
- }
30
- interface StripeSubscriptionUpdateParams extends NonNullable<Parameters<Stripe['subscriptions']['update']>[1]> {
31
- }
32
- interface StripeSubscription extends UnwrapStripeResponse<ReturnType<Stripe['subscriptions']['create']>> {
33
- }
34
- type BillingPortalOmissions = 'customer';
35
- type StripeCreateBillingPortalDto = Omit<CreateBillingPortalDto, 'providerFields'> & {
36
- stripeFields: Omit<StripeBillingPortalSessionCreateParams, BillingPortalOmissions>;
37
- };
38
- type StripeUpdateBillingPortalDto = Omit<UpdateBillingPortalDto, 'providerFields'> & {
39
- stripeFields?: Omit<StripeBillingPortalSessionCreateParams, BillingPortalOmissions>;
40
- };
41
- type StripeBillingPortalDto = Omit<BillingPortalDto, 'providerFields'> & {
42
- stripeFields: StripeBillingPortalSession;
43
- };
44
- type StripeBillingPortalDtos = {
45
- BillingPortalMapper: StripeBillingPortalDto;
46
- CreateBillingPortalMapper: StripeCreateBillingPortalDto;
47
- UpdateBillingPortalMapper: StripeUpdateBillingPortalDto;
48
- };
49
- type CheckoutSessionOmissions = 'payment_method_types' | 'currency' | 'success_url' | 'cancel_url';
50
- type StripeCreateCheckoutSessionDto<StatusEnum> = Omit<CreateCheckoutSessionDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields' | 'uri'> & {
51
- uri: string;
52
- stripeFields: Omit<StripeCheckoutSessionCreateParams, CheckoutSessionOmissions>;
53
- };
54
- type StripeUpdateCheckoutSessionDto<StatusEnum> = Omit<UpdateCheckoutSessionDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
55
- stripeFields?: Omit<StripeCheckoutSessionCreateParams, CheckoutSessionOmissions>;
56
- };
57
- type StripeCheckoutSessionDto<StatusEnum> = Omit<CheckoutSessionDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields' | 'uri'> & {
58
- uri: string;
59
- stripeFields: StripeCheckoutSession;
60
- };
61
- type StripeCheckoutSessionDtos<StatusEnum> = {
62
- CheckoutSessionMapper: StripeCheckoutSessionDto<StatusEnum>;
63
- CreateCheckoutSessionMapper: StripeCreateCheckoutSessionDto<StatusEnum>;
64
- UpdateCheckoutSessionMapper: StripeUpdateCheckoutSessionDto<StatusEnum>;
65
- };
66
- type StripeCreatePaymentLinkDto<StatusEnum> = Omit<CreatePaymentLinkDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
67
- stripeFields: StripePaymentLinkCreateParams;
68
- };
69
- type StripeUpdatePaymentLinkDto<StatusEnum> = Omit<UpdatePaymentLinkDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
70
- stripeFields?: StripePaymentLinkUpdateParams;
71
- };
72
- type StripePaymentLinkDto<StatusEnum> = Omit<PaymentLinkDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
73
- stripeFields: StripePaymentLink;
74
- };
75
- type StripePaymentLinkDtos<StatusEnum> = {
76
- PaymentLinkMapper: StripePaymentLinkDto<StatusEnum>;
77
- CreatePaymentLinkMapper: StripeCreatePaymentLinkDto<StatusEnum>;
78
- UpdatePaymentLinkMapper: StripeUpdatePaymentLinkDto<StatusEnum>;
79
- };
80
- type PlanOmissions = 'product' | 'interval' | 'currency';
81
- type StripeCreatePlanDto = Omit<CreatePlanDto<typeof PlanCadenceEnum, typeof CurrencyEnum, typeof BillingProviderEnum>, 'providerFields'> & {
82
- stripeFields: Omit<StripePlanCreateParams, PlanOmissions>;
83
- };
84
- type StripeUpdatePlanDto = Omit<UpdatePlanDto<typeof PlanCadenceEnum, typeof CurrencyEnum, typeof BillingProviderEnum>, 'providerFields'> & {
85
- stripeFields?: Omit<StripePlanUpdateParams, PlanOmissions>;
86
- };
87
- type StripePlanDto = Omit<PlanDto<typeof PlanCadenceEnum, typeof CurrencyEnum, typeof BillingProviderEnum>, 'providerFields'> & {
88
- stripeFields: StripeProduct;
89
- };
90
- type StripePlanDtos = {
91
- PlanMapper: StripePlanDto;
92
- CreatePlanMapper: StripeCreatePlanDto;
93
- UpdatePlanMapper: StripeUpdatePlanDto;
94
- };
95
- type SubscriptionOmissions = 'items' | 'customer';
96
- type StripeCreateSubscriptionDto<PartyType> = Omit<CreateSubscriptionDto<PartyType, typeof BillingProviderEnum>, 'providerFields'> & {
97
- stripeFields: Omit<StripeSubscriptionCreateParams, SubscriptionOmissions>;
98
- };
99
- type StripeUpdateSubscriptionDto<PartyType> = Omit<UpdateSubscriptionDto<PartyType, typeof BillingProviderEnum>, 'providerFields'> & {
100
- stripeFields?: Omit<StripeSubscriptionUpdateParams, SubscriptionOmissions>;
101
- };
102
- type StripeSubscriptionDto<PartyType> = Omit<SubscriptionDto<PartyType, typeof BillingProviderEnum>, 'providerFields'> & {
103
- stripeFields: StripeSubscription;
104
- };
105
- type StripeSubscriptionDtos<PartyType> = {
106
- SubscriptionMapper: StripeSubscriptionDto<PartyType>;
107
- CreateSubscriptionMapper: StripeCreateSubscriptionDto<PartyType>;
108
- UpdateSubscriptionMapper: StripeUpdateSubscriptionDto<PartyType>;
109
- };
110
-
111
- export type { StripeCreateSubscriptionDto as A, StripeUpdateSubscriptionDto as B, StripeSubscriptionDto as C, StripeBillingPortalDto as D, StripeCheckoutSessionDto as E, StripeUpdateCheckoutSessionDto as F, StripeBillingPortalSessionCreateParams as S, StripeBillingPortalSession as a, StripeCheckoutSessionCreateParams as b, StripeCheckoutSession as c, StripePaymentLinkCreateParams as d, StripePaymentLinkUpdateParams as e, StripePaymentLink as f, StripePlanCreateParams as g, StripePlanUpdateParams as h, StripeProduct as i, StripeSubscriptionCreateParams as j, StripeSubscriptionUpdateParams as k, StripeSubscription as l, StripeBillingPortalDtos as m, StripeCreateBillingPortalDto as n, StripeUpdateBillingPortalDto as o, StripeCheckoutSessionDtos as p, StripeCreateCheckoutSessionDto as q, StripePaymentLinkDtos as r, StripeCreatePaymentLinkDto as s, StripeUpdatePaymentLinkDto as t, StripePaymentLinkDto as u, StripePlanDtos as v, StripeCreatePlanDto as w, StripeUpdatePlanDto as x, StripePlanDto as y, StripeSubscriptionDtos as z };
@@ -1,111 +0,0 @@
1
- import { BillingPortalDto, CreateBillingPortalDto, UpdateBillingPortalDto, CheckoutSessionDto, CreateCheckoutSessionDto, UpdateCheckoutSessionDto, PaymentLinkDto, CreatePaymentLinkDto, UpdatePaymentLinkDto, PlanDto, CreatePlanDto, UpdatePlanDto, SubscriptionDto, CreateSubscriptionDto, UpdateSubscriptionDto } from '@forklaunch/interfaces-billing/types';
2
- import Stripe from 'stripe';
3
- import { PaymentMethodEnum, CurrencyEnum, PlanCadenceEnum, BillingProviderEnum } from './domain/enum/index.js';
4
-
5
- type UnwrapStripeResponse<T> = T extends Promise<infer R> ? R extends {
6
- lastResponse?: unknown;
7
- } ? Omit<R, 'lastResponse'> : R : never;
8
- interface StripeBillingPortalSessionCreateParams extends NonNullable<Parameters<Stripe['billingPortal']['sessions']['create']>[0]> {
9
- }
10
- interface StripeBillingPortalSession extends UnwrapStripeResponse<ReturnType<Stripe['billingPortal']['sessions']['create']>> {
11
- }
12
- interface StripeCheckoutSessionCreateParams extends NonNullable<Parameters<Stripe['checkout']['sessions']['create']>[0]> {
13
- }
14
- interface StripeCheckoutSession extends UnwrapStripeResponse<ReturnType<Stripe['checkout']['sessions']['create']>> {
15
- }
16
- interface StripePaymentLinkCreateParams extends NonNullable<Parameters<Stripe['paymentLinks']['create']>[0]> {
17
- }
18
- interface StripePaymentLinkUpdateParams extends NonNullable<Parameters<Stripe['paymentLinks']['update']>[1]> {
19
- }
20
- interface StripePaymentLink extends UnwrapStripeResponse<ReturnType<Stripe['paymentLinks']['create']>> {
21
- }
22
- interface StripePlanCreateParams extends NonNullable<Parameters<Stripe['plans']['create']>[0]> {
23
- }
24
- interface StripePlanUpdateParams extends NonNullable<Parameters<Stripe['plans']['update']>[1]> {
25
- }
26
- interface StripeProduct extends UnwrapStripeResponse<ReturnType<Stripe['products']['create']>> {
27
- }
28
- interface StripeSubscriptionCreateParams extends NonNullable<Parameters<Stripe['subscriptions']['create']>[0]> {
29
- }
30
- interface StripeSubscriptionUpdateParams extends NonNullable<Parameters<Stripe['subscriptions']['update']>[1]> {
31
- }
32
- interface StripeSubscription extends UnwrapStripeResponse<ReturnType<Stripe['subscriptions']['create']>> {
33
- }
34
- type BillingPortalOmissions = 'customer';
35
- type StripeCreateBillingPortalDto = Omit<CreateBillingPortalDto, 'providerFields'> & {
36
- stripeFields: Omit<StripeBillingPortalSessionCreateParams, BillingPortalOmissions>;
37
- };
38
- type StripeUpdateBillingPortalDto = Omit<UpdateBillingPortalDto, 'providerFields'> & {
39
- stripeFields?: Omit<StripeBillingPortalSessionCreateParams, BillingPortalOmissions>;
40
- };
41
- type StripeBillingPortalDto = Omit<BillingPortalDto, 'providerFields'> & {
42
- stripeFields: StripeBillingPortalSession;
43
- };
44
- type StripeBillingPortalDtos = {
45
- BillingPortalMapper: StripeBillingPortalDto;
46
- CreateBillingPortalMapper: StripeCreateBillingPortalDto;
47
- UpdateBillingPortalMapper: StripeUpdateBillingPortalDto;
48
- };
49
- type CheckoutSessionOmissions = 'payment_method_types' | 'currency' | 'success_url' | 'cancel_url';
50
- type StripeCreateCheckoutSessionDto<StatusEnum> = Omit<CreateCheckoutSessionDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields' | 'uri'> & {
51
- uri: string;
52
- stripeFields: Omit<StripeCheckoutSessionCreateParams, CheckoutSessionOmissions>;
53
- };
54
- type StripeUpdateCheckoutSessionDto<StatusEnum> = Omit<UpdateCheckoutSessionDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
55
- stripeFields?: Omit<StripeCheckoutSessionCreateParams, CheckoutSessionOmissions>;
56
- };
57
- type StripeCheckoutSessionDto<StatusEnum> = Omit<CheckoutSessionDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields' | 'uri'> & {
58
- uri: string;
59
- stripeFields: StripeCheckoutSession;
60
- };
61
- type StripeCheckoutSessionDtos<StatusEnum> = {
62
- CheckoutSessionMapper: StripeCheckoutSessionDto<StatusEnum>;
63
- CreateCheckoutSessionMapper: StripeCreateCheckoutSessionDto<StatusEnum>;
64
- UpdateCheckoutSessionMapper: StripeUpdateCheckoutSessionDto<StatusEnum>;
65
- };
66
- type StripeCreatePaymentLinkDto<StatusEnum> = Omit<CreatePaymentLinkDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
67
- stripeFields: StripePaymentLinkCreateParams;
68
- };
69
- type StripeUpdatePaymentLinkDto<StatusEnum> = Omit<UpdatePaymentLinkDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
70
- stripeFields?: StripePaymentLinkUpdateParams;
71
- };
72
- type StripePaymentLinkDto<StatusEnum> = Omit<PaymentLinkDto<typeof PaymentMethodEnum, typeof CurrencyEnum, StatusEnum>, 'providerFields'> & {
73
- stripeFields: StripePaymentLink;
74
- };
75
- type StripePaymentLinkDtos<StatusEnum> = {
76
- PaymentLinkMapper: StripePaymentLinkDto<StatusEnum>;
77
- CreatePaymentLinkMapper: StripeCreatePaymentLinkDto<StatusEnum>;
78
- UpdatePaymentLinkMapper: StripeUpdatePaymentLinkDto<StatusEnum>;
79
- };
80
- type PlanOmissions = 'product' | 'interval' | 'currency';
81
- type StripeCreatePlanDto = Omit<CreatePlanDto<typeof PlanCadenceEnum, typeof CurrencyEnum, typeof BillingProviderEnum>, 'providerFields'> & {
82
- stripeFields: Omit<StripePlanCreateParams, PlanOmissions>;
83
- };
84
- type StripeUpdatePlanDto = Omit<UpdatePlanDto<typeof PlanCadenceEnum, typeof CurrencyEnum, typeof BillingProviderEnum>, 'providerFields'> & {
85
- stripeFields?: Omit<StripePlanUpdateParams, PlanOmissions>;
86
- };
87
- type StripePlanDto = Omit<PlanDto<typeof PlanCadenceEnum, typeof CurrencyEnum, typeof BillingProviderEnum>, 'providerFields'> & {
88
- stripeFields: StripeProduct;
89
- };
90
- type StripePlanDtos = {
91
- PlanMapper: StripePlanDto;
92
- CreatePlanMapper: StripeCreatePlanDto;
93
- UpdatePlanMapper: StripeUpdatePlanDto;
94
- };
95
- type SubscriptionOmissions = 'items' | 'customer';
96
- type StripeCreateSubscriptionDto<PartyType> = Omit<CreateSubscriptionDto<PartyType, typeof BillingProviderEnum>, 'providerFields'> & {
97
- stripeFields: Omit<StripeSubscriptionCreateParams, SubscriptionOmissions>;
98
- };
99
- type StripeUpdateSubscriptionDto<PartyType> = Omit<UpdateSubscriptionDto<PartyType, typeof BillingProviderEnum>, 'providerFields'> & {
100
- stripeFields?: Omit<StripeSubscriptionUpdateParams, SubscriptionOmissions>;
101
- };
102
- type StripeSubscriptionDto<PartyType> = Omit<SubscriptionDto<PartyType, typeof BillingProviderEnum>, 'providerFields'> & {
103
- stripeFields: StripeSubscription;
104
- };
105
- type StripeSubscriptionDtos<PartyType> = {
106
- SubscriptionMapper: StripeSubscriptionDto<PartyType>;
107
- CreateSubscriptionMapper: StripeCreateSubscriptionDto<PartyType>;
108
- UpdateSubscriptionMapper: StripeUpdateSubscriptionDto<PartyType>;
109
- };
110
-
111
- export type { StripeCreateSubscriptionDto as A, StripeUpdateSubscriptionDto as B, StripeSubscriptionDto as C, StripeBillingPortalDto as D, StripeCheckoutSessionDto as E, StripeUpdateCheckoutSessionDto as F, StripeBillingPortalSessionCreateParams as S, StripeBillingPortalSession as a, StripeCheckoutSessionCreateParams as b, StripeCheckoutSession as c, StripePaymentLinkCreateParams as d, StripePaymentLinkUpdateParams as e, StripePaymentLink as f, StripePlanCreateParams as g, StripePlanUpdateParams as h, StripeProduct as i, StripeSubscriptionCreateParams as j, StripeSubscriptionUpdateParams as k, StripeSubscription as l, StripeBillingPortalDtos as m, StripeCreateBillingPortalDto as n, StripeUpdateBillingPortalDto as o, StripeCheckoutSessionDtos as p, StripeCreateCheckoutSessionDto as q, StripePaymentLinkDtos as r, StripeCreatePaymentLinkDto as s, StripeUpdatePaymentLinkDto as t, StripePaymentLinkDto as u, StripePlanDtos as v, StripeCreatePlanDto as w, StripeUpdatePlanDto as x, StripePlanDto as y, StripeSubscriptionDtos as z };