@forklaunch/implementation-billing-stripe 0.6.0 → 1.0.1
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.
- package/lib/domain/types/index.d.mts +292 -117
- package/lib/domain/types/index.d.ts +292 -117
- package/lib/eject/domain/types/stripe.entity.types.ts +6 -6
- package/lib/eject/services/checkoutSession.service.ts +14 -12
- package/lib/eject/services/paymentLink.service.ts +16 -14
- package/lib/eject/services/webhook.service.ts +15 -13
- package/lib/services/index.d.mts +3 -1
- package/lib/services/index.d.ts +3 -1
- package/lib/services/index.js +589 -65958
- package/lib/services/index.mjs +578 -66073
- package/package.json +9 -9
|
@@ -81,21 +81,21 @@ export type StripePlanEntities = {
|
|
|
81
81
|
'~entity': (typeof Plan)['~entity'] & {
|
|
82
82
|
cadence: PlanCadenceEnum[keyof PlanCadenceEnum];
|
|
83
83
|
currency: CurrencyEnum[keyof CurrencyEnum];
|
|
84
|
-
billingProvider: BillingProviderEnum[keyof BillingProviderEnum]
|
|
84
|
+
billingProvider: BillingProviderEnum[keyof BillingProviderEnum];
|
|
85
85
|
};
|
|
86
86
|
};
|
|
87
87
|
CreatePlanMapper: {
|
|
88
88
|
'~entity': (typeof Plan)['~entity'] & {
|
|
89
89
|
cadence: PlanCadenceEnum[keyof PlanCadenceEnum];
|
|
90
90
|
currency: CurrencyEnum[keyof CurrencyEnum];
|
|
91
|
-
billingProvider: BillingProviderEnum[keyof BillingProviderEnum]
|
|
91
|
+
billingProvider: BillingProviderEnum[keyof BillingProviderEnum];
|
|
92
92
|
};
|
|
93
93
|
};
|
|
94
94
|
UpdatePlanMapper: {
|
|
95
95
|
'~entity': (typeof Plan)['~entity'] & {
|
|
96
96
|
cadence: PlanCadenceEnum[keyof PlanCadenceEnum];
|
|
97
97
|
currency: CurrencyEnum[keyof CurrencyEnum];
|
|
98
|
-
billingProvider: BillingProviderEnum[keyof BillingProviderEnum]
|
|
98
|
+
billingProvider: BillingProviderEnum[keyof BillingProviderEnum];
|
|
99
99
|
};
|
|
100
100
|
};
|
|
101
101
|
};
|
|
@@ -105,19 +105,19 @@ export type StripeSubscriptionEntities<PartyTypeEnum> = {
|
|
|
105
105
|
SubscriptionMapper: {
|
|
106
106
|
'~entity': (typeof Subscription)['~entity'] & {
|
|
107
107
|
partyType: PartyTypeEnum[keyof PartyTypeEnum];
|
|
108
|
-
billingProvider: BillingProviderEnum[keyof BillingProviderEnum]
|
|
108
|
+
billingProvider: BillingProviderEnum[keyof BillingProviderEnum];
|
|
109
109
|
};
|
|
110
110
|
};
|
|
111
111
|
CreateSubscriptionMapper: {
|
|
112
112
|
'~entity': (typeof Subscription)['~entity'] & {
|
|
113
113
|
partyType: PartyTypeEnum[keyof PartyTypeEnum];
|
|
114
|
-
billingProvider: BillingProviderEnum[keyof BillingProviderEnum]
|
|
114
|
+
billingProvider: BillingProviderEnum[keyof BillingProviderEnum];
|
|
115
115
|
};
|
|
116
116
|
};
|
|
117
117
|
UpdateSubscriptionMapper: {
|
|
118
118
|
'~entity': (typeof Subscription)['~entity'] & {
|
|
119
119
|
partyType: PartyTypeEnum[keyof PartyTypeEnum];
|
|
120
|
-
billingProvider: BillingProviderEnum[keyof BillingProviderEnum]
|
|
120
|
+
billingProvider: BillingProviderEnum[keyof BillingProviderEnum];
|
|
121
121
|
};
|
|
122
122
|
};
|
|
123
123
|
};
|
|
@@ -24,18 +24,20 @@ export class StripeCheckoutSessionService<
|
|
|
24
24
|
SchemaValidator extends AnySchemaValidator,
|
|
25
25
|
StatusEnum,
|
|
26
26
|
MapperEntities extends StripeCheckoutSessionEntities<StatusEnum>,
|
|
27
|
-
Dto extends
|
|
28
|
-
StripeCheckoutSessionDtos<StatusEnum>
|
|
29
|
-
> implements
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
Dto extends
|
|
28
|
+
StripeCheckoutSessionDtos<StatusEnum> = StripeCheckoutSessionDtos<StatusEnum>
|
|
29
|
+
> implements
|
|
30
|
+
CheckoutSessionService<
|
|
31
|
+
typeof PaymentMethodEnum,
|
|
32
|
+
typeof CurrencyEnum,
|
|
33
|
+
StatusEnum,
|
|
34
|
+
{
|
|
35
|
+
CreateCheckoutSessionDto: Dto['CreateCheckoutSessionMapper'];
|
|
36
|
+
CheckoutSessionDto: Dto['CheckoutSessionMapper'];
|
|
37
|
+
IdDto: IdDto;
|
|
38
|
+
}
|
|
39
|
+
>
|
|
40
|
+
{
|
|
39
41
|
baseCheckoutSessionService: BaseCheckoutSessionService<
|
|
40
42
|
SchemaValidator,
|
|
41
43
|
PaymentMethodEnum,
|
|
@@ -25,20 +25,22 @@ export class StripePaymentLinkService<
|
|
|
25
25
|
SchemaValidator extends AnySchemaValidator,
|
|
26
26
|
StatusEnum,
|
|
27
27
|
Entities extends StripePaymentLinkEntities<StatusEnum>,
|
|
28
|
-
Dto extends
|
|
29
|
-
StripePaymentLinkDtos<StatusEnum>
|
|
30
|
-
> implements
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
Dto extends
|
|
29
|
+
StripePaymentLinkDtos<StatusEnum> = StripePaymentLinkDtos<StatusEnum>
|
|
30
|
+
> implements
|
|
31
|
+
PaymentLinkService<
|
|
32
|
+
PaymentMethodEnum,
|
|
33
|
+
typeof CurrencyEnum,
|
|
34
|
+
StatusEnum,
|
|
35
|
+
{
|
|
36
|
+
CreatePaymentLinkDto: StripeCreatePaymentLinkDto<StatusEnum>;
|
|
37
|
+
UpdatePaymentLinkDto: StripeUpdatePaymentLinkDto<StatusEnum>;
|
|
38
|
+
PaymentLinkDto: StripePaymentLinkDto<StatusEnum>;
|
|
39
|
+
IdDto: IdDto;
|
|
40
|
+
IdsDto: IdsDto;
|
|
41
|
+
}
|
|
42
|
+
>
|
|
43
|
+
{
|
|
42
44
|
basePaymentLinkService: BasePaymentLinkService<
|
|
43
45
|
SchemaValidator,
|
|
44
46
|
PaymentMethodEnum,
|
|
@@ -5,8 +5,7 @@ import {
|
|
|
5
5
|
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
6
6
|
import { EntityManager } from '@mikro-orm/core';
|
|
7
7
|
import Stripe from 'stripe';
|
|
8
|
-
import {
|
|
9
|
-
import { StripeWebhookEvent } from '../../../../billing-stripe/persistence/entities/stripeWebhookEvent.entity';
|
|
8
|
+
import { StripeWebhookEvent } from '../persistence/entities';
|
|
10
9
|
import { BillingProviderEnum } from '../domain/enum/billingProvider.enum';
|
|
11
10
|
import { CurrencyEnum } from '../domain/enum/currency.enum';
|
|
12
11
|
import { PaymentMethodEnum } from '../domain/enum/paymentMethod.enum';
|
|
@@ -28,16 +27,17 @@ export class StripeWebhookService<
|
|
|
28
27
|
SchemaValidator extends AnySchemaValidator,
|
|
29
28
|
StatusEnum,
|
|
30
29
|
PartyEnum,
|
|
31
|
-
BillingPortalEntities extends
|
|
32
|
-
StripeBillingPortalEntities,
|
|
33
|
-
CheckoutSessionEntities extends
|
|
34
|
-
StripeCheckoutSessionEntities<StatusEnum>,
|
|
35
|
-
PaymentLinkEntities extends
|
|
36
|
-
StripePaymentLinkEntities<StatusEnum>,
|
|
30
|
+
BillingPortalEntities extends
|
|
31
|
+
StripeBillingPortalEntities = StripeBillingPortalEntities,
|
|
32
|
+
CheckoutSessionEntities extends
|
|
33
|
+
StripeCheckoutSessionEntities<StatusEnum> = StripeCheckoutSessionEntities<StatusEnum>,
|
|
34
|
+
PaymentLinkEntities extends
|
|
35
|
+
StripePaymentLinkEntities<StatusEnum> = StripePaymentLinkEntities<StatusEnum>,
|
|
37
36
|
PlanEntities extends StripePlanEntities = StripePlanEntities,
|
|
38
|
-
SubscriptionEntities extends
|
|
39
|
-
StripeSubscriptionEntities<PartyEnum>
|
|
37
|
+
SubscriptionEntities extends
|
|
38
|
+
StripeSubscriptionEntities<PartyEnum> = StripeSubscriptionEntities<PartyEnum>
|
|
40
39
|
> {
|
|
40
|
+
protected readonly defaultPartyType: PartyEnum[keyof PartyEnum];
|
|
41
41
|
protected readonly stripeClient: Stripe;
|
|
42
42
|
protected readonly em: EntityManager;
|
|
43
43
|
protected readonly schemaValidator: SchemaValidator;
|
|
@@ -90,8 +90,10 @@ export class StripeWebhookService<
|
|
|
90
90
|
SchemaValidator,
|
|
91
91
|
PartyEnum,
|
|
92
92
|
SubscriptionEntities
|
|
93
|
-
|
|
93
|
+
>,
|
|
94
|
+
defaultPartyType: PartyEnum[keyof PartyEnum]
|
|
94
95
|
) {
|
|
96
|
+
this.defaultPartyType = defaultPartyType;
|
|
95
97
|
this.stripeClient = stripeClient;
|
|
96
98
|
this.em = em;
|
|
97
99
|
this.schemaValidator = schemaValidator;
|
|
@@ -377,7 +379,7 @@ export class StripeWebhookService<
|
|
|
377
379
|
typeof event.data.object.customer === 'string'
|
|
378
380
|
? event.data.object.customer
|
|
379
381
|
: event.data.object.customer.id,
|
|
380
|
-
partyType:
|
|
382
|
+
partyType: this.defaultPartyType,
|
|
381
383
|
description: event.data.object.description ?? undefined,
|
|
382
384
|
active: true,
|
|
383
385
|
productId: event.data.object.items.data[0].plan.id,
|
|
@@ -410,7 +412,7 @@ export class StripeWebhookService<
|
|
|
410
412
|
typeof event.data.object.customer === 'string'
|
|
411
413
|
? event.data.object.customer
|
|
412
414
|
: event.data.object.customer.id,
|
|
413
|
-
partyType:
|
|
415
|
+
partyType: this.defaultPartyType,
|
|
414
416
|
description: event.data.object.description ?? undefined,
|
|
415
417
|
active: true,
|
|
416
418
|
externalId: event.data.object.id,
|
package/lib/services/index.d.mts
CHANGED
|
@@ -10,6 +10,7 @@ import Stripe__default from 'stripe';
|
|
|
10
10
|
import { StripeBillingPortalEntities, StripeBillingPortalDtos, StripeBillingPortalMappers, StripeCreateBillingPortalDto, StripeUpdateBillingPortalDto, StripeCheckoutSessionEntities, StripeCheckoutSessionDtos, StripeCheckoutSessionMappers, StripeCreateCheckoutSessionDto, StripePaymentLinkEntities, StripePaymentLinkDtos, StripeCreatePaymentLinkDto, StripeUpdatePaymentLinkDto, StripePaymentLinkDto, StripePaymentLinkMappers, StripePlanEntities, StripePlanDtos, StripeCreatePlanDto, StripeUpdatePlanDto, StripePlanDto, StripePlanMappers, StripeSubscriptionEntities, StripeSubscriptionDtos, StripeCreateSubscriptionDto, StripeUpdateSubscriptionDto, StripeSubscriptionDto, StripeSubscriptionMappers } from '../domain/types/index.mjs';
|
|
11
11
|
import { PaymentMethodEnum, CurrencyEnum, PlanCadenceEnum, BillingProviderEnum } from '../domain/enum/index.mjs';
|
|
12
12
|
export * from '@forklaunch/interfaces-billing/types';
|
|
13
|
+
import '@forklaunch/core/persistence';
|
|
13
14
|
|
|
14
15
|
declare class StripeBillingPortalService<SchemaValidator extends AnySchemaValidator, Entities extends StripeBillingPortalEntities, Dto extends StripeBillingPortalDtos = StripeBillingPortalDtos> implements BillingPortalService<{
|
|
15
16
|
CreateBillingPortalDto: Dto['CreateBillingPortalMapper'];
|
|
@@ -158,6 +159,7 @@ declare class StripeSubscriptionService<SchemaValidator extends AnySchemaValidat
|
|
|
158
159
|
}
|
|
159
160
|
|
|
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 defaultPartyType: PartyEnum[keyof PartyEnum];
|
|
161
163
|
protected readonly stripeClient: Stripe__default;
|
|
162
164
|
protected readonly em: EntityManager;
|
|
163
165
|
protected readonly schemaValidator: SchemaValidator;
|
|
@@ -167,7 +169,7 @@ declare class StripeWebhookService<SchemaValidator extends AnySchemaValidator, S
|
|
|
167
169
|
protected readonly paymentLinkService: StripePaymentLinkService<SchemaValidator, StatusEnum, PaymentLinkEntities>;
|
|
168
170
|
protected readonly planService: StripePlanService<SchemaValidator, PlanEntities>;
|
|
169
171
|
protected readonly subscriptionService: StripeSubscriptionService<SchemaValidator, PartyEnum, SubscriptionEntities>;
|
|
170
|
-
constructor(stripeClient: Stripe__default, 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
|
|
172
|
+
constructor(stripeClient: Stripe__default, 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>, defaultPartyType: PartyEnum[keyof PartyEnum]);
|
|
171
173
|
/**
|
|
172
174
|
* Extract features from Stripe product metadata.
|
|
173
175
|
* Features can be stored as:
|
package/lib/services/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import Stripe__default from 'stripe';
|
|
|
10
10
|
import { StripeBillingPortalEntities, StripeBillingPortalDtos, StripeBillingPortalMappers, StripeCreateBillingPortalDto, StripeUpdateBillingPortalDto, StripeCheckoutSessionEntities, StripeCheckoutSessionDtos, StripeCheckoutSessionMappers, StripeCreateCheckoutSessionDto, StripePaymentLinkEntities, StripePaymentLinkDtos, StripeCreatePaymentLinkDto, StripeUpdatePaymentLinkDto, StripePaymentLinkDto, StripePaymentLinkMappers, StripePlanEntities, StripePlanDtos, StripeCreatePlanDto, StripeUpdatePlanDto, StripePlanDto, StripePlanMappers, StripeSubscriptionEntities, StripeSubscriptionDtos, StripeCreateSubscriptionDto, StripeUpdateSubscriptionDto, StripeSubscriptionDto, StripeSubscriptionMappers } from '../domain/types/index.js';
|
|
11
11
|
import { PaymentMethodEnum, CurrencyEnum, PlanCadenceEnum, BillingProviderEnum } from '../domain/enum/index.js';
|
|
12
12
|
export * from '@forklaunch/interfaces-billing/types';
|
|
13
|
+
import '@forklaunch/core/persistence';
|
|
13
14
|
|
|
14
15
|
declare class StripeBillingPortalService<SchemaValidator extends AnySchemaValidator, Entities extends StripeBillingPortalEntities, Dto extends StripeBillingPortalDtos = StripeBillingPortalDtos> implements BillingPortalService<{
|
|
15
16
|
CreateBillingPortalDto: Dto['CreateBillingPortalMapper'];
|
|
@@ -158,6 +159,7 @@ declare class StripeSubscriptionService<SchemaValidator extends AnySchemaValidat
|
|
|
158
159
|
}
|
|
159
160
|
|
|
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 defaultPartyType: PartyEnum[keyof PartyEnum];
|
|
161
163
|
protected readonly stripeClient: Stripe__default;
|
|
162
164
|
protected readonly em: EntityManager;
|
|
163
165
|
protected readonly schemaValidator: SchemaValidator;
|
|
@@ -167,7 +169,7 @@ declare class StripeWebhookService<SchemaValidator extends AnySchemaValidator, S
|
|
|
167
169
|
protected readonly paymentLinkService: StripePaymentLinkService<SchemaValidator, StatusEnum, PaymentLinkEntities>;
|
|
168
170
|
protected readonly planService: StripePlanService<SchemaValidator, PlanEntities>;
|
|
169
171
|
protected readonly subscriptionService: StripeSubscriptionService<SchemaValidator, PartyEnum, SubscriptionEntities>;
|
|
170
|
-
constructor(stripeClient: Stripe__default, 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
|
|
172
|
+
constructor(stripeClient: Stripe__default, 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>, defaultPartyType: PartyEnum[keyof PartyEnum]);
|
|
171
173
|
/**
|
|
172
174
|
* Extract features from Stripe product metadata.
|
|
173
175
|
* Features can be stored as:
|