@forklaunch/implementation-billing-base 0.1.13 → 0.1.15

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 (50) hide show
  1. package/lib/__test__/schemaEquality.test.d.ts +1 -1
  2. package/lib/__test__/schemaEquality.test.js +305 -146
  3. package/lib/jest.config.d.ts +1 -1
  4. package/lib/jest.config.js +16 -16
  5. package/lib/schemas/billingPortal.schema.d.ts +103 -34
  6. package/lib/schemas/billingPortal.schema.js +4 -1
  7. package/lib/schemas/checkoutSession.schema.d.ts +169 -54
  8. package/lib/schemas/checkoutSession.schema.js +4 -1
  9. package/lib/schemas/index.d.ts +1 -1
  10. package/lib/schemas/paymentLink.schema.d.ts +220 -64
  11. package/lib/schemas/paymentLink.schema.js +4 -1
  12. package/lib/schemas/plan.schema.d.ts +328 -76
  13. package/lib/schemas/plan.schema.js +4 -1
  14. package/lib/schemas/subscription.schema.d.ts +356 -88
  15. package/lib/schemas/subscription.schema.js +4 -1
  16. package/lib/schemas/typebox/billingPortal.schema.d.ts +152 -38
  17. package/lib/schemas/typebox/billingPortal.schema.js +23 -17
  18. package/lib/schemas/typebox/checkoutSession.schema.d.ts +189 -55
  19. package/lib/schemas/typebox/checkoutSession.schema.js +25 -13
  20. package/lib/schemas/typebox/paymentLink.schema.d.ts +267 -65
  21. package/lib/schemas/typebox/paymentLink.schema.js +27 -15
  22. package/lib/schemas/typebox/plan.schema.d.ts +401 -77
  23. package/lib/schemas/typebox/plan.schema.js +31 -17
  24. package/lib/schemas/typebox/subscription.schema.d.ts +449 -89
  25. package/lib/schemas/typebox/subscription.schema.js +31 -19
  26. package/lib/schemas/zod/billingPortal.schema.d.ts +54 -38
  27. package/lib/schemas/zod/billingPortal.schema.js +23 -17
  28. package/lib/schemas/zod/checkoutSession.schema.d.ts +115 -55
  29. package/lib/schemas/zod/checkoutSession.schema.js +25 -13
  30. package/lib/schemas/zod/paymentLink.schema.d.ts +111 -65
  31. package/lib/schemas/zod/paymentLink.schema.js +27 -15
  32. package/lib/schemas/zod/plan.schema.d.ts +189 -77
  33. package/lib/schemas/zod/plan.schema.js +31 -17
  34. package/lib/schemas/zod/subscription.schema.d.ts +197 -89
  35. package/lib/schemas/zod/subscription.schema.js +31 -19
  36. package/lib/services/billingPortal.service.d.ts +77 -28
  37. package/lib/services/billingPortal.service.js +64 -45
  38. package/lib/services/checkoutSession.service.d.ts +77 -29
  39. package/lib/services/checkoutSession.service.js +54 -43
  40. package/lib/services/index.d.ts +1 -1
  41. package/lib/services/paymentLink.service.d.ts +82 -32
  42. package/lib/services/paymentLink.service.js +84 -66
  43. package/lib/services/plan.service.d.ts +73 -26
  44. package/lib/services/plan.service.js +45 -40
  45. package/lib/services/subscription.service.d.ts +136 -44
  46. package/lib/services/subscription.service.js +111 -88
  47. package/lib/tsconfig.tsbuildinfo +1 -1
  48. package/lib/vitest.config.d.ts +2 -2
  49. package/lib/vitest.config.js +4 -4
  50. package/package.json +8 -8
@@ -1,96 +1,204 @@
1
1
  import { LiteralSchema } from '@forklaunch/validator';
2
- export declare const CreateSubscriptionSchema: <T extends Record<string, LiteralSchema>, U extends Record<string, LiteralSchema>>(PartyEnum: T, BillingProviderEnum: U) => {
3
- partyId: import("zod").ZodString;
4
- partyType: import("zod").ZodUnion<[{ [K in keyof T]: import("zod").ZodLiteral<T[K]>; }[keyof T]]>;
5
- productId: import("zod").ZodString;
6
- description: import("zod").ZodOptional<import("zod").ZodString>;
7
- active: import("zod").ZodEffects<import("zod").ZodBoolean, boolean, unknown>;
8
- externalId: import("zod").ZodString;
9
- startDate: import("zod").ZodDate;
10
- endDate: import("zod").ZodDate;
11
- status: import("zod").ZodString;
12
- billingProvider: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K_1 in keyof U]: import("zod").ZodLiteral<U[K_1]>; }[keyof U]]>>;
13
- extraFields: import("zod").ZodOptional<import("zod").ZodUnknown>;
2
+ export declare const CreateSubscriptionSchema: <
3
+ T extends Record<string, LiteralSchema>,
4
+ U extends Record<string, LiteralSchema>
5
+ >(
6
+ PartyEnum: T,
7
+ BillingProviderEnum: U
8
+ ) => {
9
+ partyId: import('zod').ZodString;
10
+ partyType: import('zod').ZodUnion<
11
+ [{ [K in keyof T]: import('zod').ZodLiteral<T[K]> }[keyof T]]
12
+ >;
13
+ productId: import('zod').ZodString;
14
+ description: import('zod').ZodOptional<import('zod').ZodString>;
15
+ active: import('zod').ZodEffects<import('zod').ZodBoolean, boolean, unknown>;
16
+ externalId: import('zod').ZodString;
17
+ startDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
18
+ endDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
19
+ status: import('zod').ZodString;
20
+ billingProvider: import('zod').ZodOptional<
21
+ import('zod').ZodUnion<
22
+ [{ [K_1 in keyof U]: import('zod').ZodLiteral<U[K_1]> }[keyof U]]
23
+ >
24
+ >;
25
+ extraFields: import('zod').ZodOptional<import('zod').ZodUnknown>;
14
26
  };
15
- export declare const UpdateSubscriptionSchema: ({ uuidId }: {
16
- uuidId: boolean;
17
- }) => <T extends Record<string, LiteralSchema>, U extends Record<string, LiteralSchema>>(PartyEnum: T, BillingProviderEnum: U) => {
18
- id: import("zod").ZodString;
19
- partyId: import("zod").ZodOptional<import("zod").ZodString>;
20
- partyType: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K in keyof T]: import("zod").ZodLiteral<T[K]>; }[keyof T]]>>;
21
- productId: import("zod").ZodOptional<import("zod").ZodString>;
22
- description: import("zod").ZodOptional<import("zod").ZodString>;
23
- active: import("zod").ZodOptional<import("zod").ZodEffects<import("zod").ZodBoolean, boolean, unknown>>;
24
- externalId: import("zod").ZodOptional<import("zod").ZodString>;
25
- startDate: import("zod").ZodOptional<import("zod").ZodDate>;
26
- endDate: import("zod").ZodOptional<import("zod").ZodDate>;
27
- status: import("zod").ZodOptional<import("zod").ZodString>;
28
- billingProvider: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K_1 in keyof U]: import("zod").ZodLiteral<U[K_1]>; }[keyof U]]>>;
29
- extraFields: import("zod").ZodOptional<import("zod").ZodUnknown>;
27
+ export declare const UpdateSubscriptionSchema: ({
28
+ uuidId
29
+ }: {
30
+ uuidId: boolean;
31
+ }) => <
32
+ T extends Record<string, LiteralSchema>,
33
+ U extends Record<string, LiteralSchema>
34
+ >(
35
+ PartyEnum: T,
36
+ BillingProviderEnum: U
37
+ ) => {
38
+ id: import('zod').ZodString;
39
+ partyId: import('zod').ZodOptional<import('zod').ZodString>;
40
+ partyType: import('zod').ZodOptional<
41
+ import('zod').ZodUnion<
42
+ [{ [K in keyof T]: import('zod').ZodLiteral<T[K]> }[keyof T]]
43
+ >
44
+ >;
45
+ productId: import('zod').ZodOptional<import('zod').ZodString>;
46
+ description: import('zod').ZodOptional<import('zod').ZodString>;
47
+ active: import('zod').ZodOptional<
48
+ import('zod').ZodEffects<import('zod').ZodBoolean, boolean, unknown>
49
+ >;
50
+ externalId: import('zod').ZodOptional<import('zod').ZodString>;
51
+ startDate: import('zod').ZodOptional<
52
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
53
+ >;
54
+ endDate: import('zod').ZodOptional<
55
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
56
+ >;
57
+ status: import('zod').ZodOptional<import('zod').ZodString>;
58
+ billingProvider: import('zod').ZodOptional<
59
+ import('zod').ZodUnion<
60
+ [{ [K_1 in keyof U]: import('zod').ZodLiteral<U[K_1]> }[keyof U]]
61
+ >
62
+ >;
63
+ extraFields: import('zod').ZodOptional<import('zod').ZodUnknown>;
30
64
  };
31
- export declare const SubscriptionSchema: ({ uuidId }: {
32
- uuidId: boolean;
33
- }) => <T extends Record<string, LiteralSchema>, U extends Record<string, LiteralSchema>>(PartyEnum: T, BillingProviderEnum: U) => {
34
- id: import("zod").ZodString;
35
- partyId: import("zod").ZodString;
36
- partyType: import("zod").ZodUnion<[{ [K in keyof T]: import("zod").ZodLiteral<T[K]>; }[keyof T]]>;
37
- productId: import("zod").ZodString;
38
- description: import("zod").ZodOptional<import("zod").ZodString>;
39
- active: import("zod").ZodEffects<import("zod").ZodBoolean, boolean, unknown>;
40
- externalId: import("zod").ZodString;
41
- startDate: import("zod").ZodDate;
42
- endDate: import("zod").ZodDate;
43
- status: import("zod").ZodString;
44
- billingProvider: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K_1 in keyof U]: import("zod").ZodLiteral<U[K_1]>; }[keyof U]]>>;
45
- extraFields: import("zod").ZodOptional<import("zod").ZodUnknown>;
46
- createdAt: import("zod").ZodOptional<import("zod").ZodDate>;
47
- updatedAt: import("zod").ZodOptional<import("zod").ZodDate>;
65
+ export declare const SubscriptionSchema: ({
66
+ uuidId
67
+ }: {
68
+ uuidId: boolean;
69
+ }) => <
70
+ T extends Record<string, LiteralSchema>,
71
+ U extends Record<string, LiteralSchema>
72
+ >(
73
+ PartyEnum: T,
74
+ BillingProviderEnum: U
75
+ ) => {
76
+ id: import('zod').ZodString;
77
+ partyId: import('zod').ZodString;
78
+ partyType: import('zod').ZodUnion<
79
+ [{ [K in keyof T]: import('zod').ZodLiteral<T[K]> }[keyof T]]
80
+ >;
81
+ productId: import('zod').ZodString;
82
+ description: import('zod').ZodOptional<import('zod').ZodString>;
83
+ active: import('zod').ZodEffects<import('zod').ZodBoolean, boolean, unknown>;
84
+ externalId: import('zod').ZodString;
85
+ startDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
86
+ endDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
87
+ status: import('zod').ZodString;
88
+ billingProvider: import('zod').ZodOptional<
89
+ import('zod').ZodUnion<
90
+ [{ [K_1 in keyof U]: import('zod').ZodLiteral<U[K_1]> }[keyof U]]
91
+ >
92
+ >;
93
+ extraFields: import('zod').ZodOptional<import('zod').ZodUnknown>;
94
+ createdAt: import('zod').ZodOptional<
95
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
96
+ >;
97
+ updatedAt: import('zod').ZodOptional<
98
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
99
+ >;
48
100
  };
49
101
  export declare const BaseSubscriptionServiceSchemas: (options: {
50
- uuidId: boolean;
102
+ uuidId: boolean;
51
103
  }) => {
52
- CreateSubscriptionSchema: <T extends Record<string, LiteralSchema>, U extends Record<string, LiteralSchema>>(PartyEnum: T, BillingProviderEnum: U) => {
53
- partyId: import("zod").ZodString;
54
- partyType: import("zod").ZodUnion<[{ [K in keyof T]: import("zod").ZodLiteral<T[K]>; }[keyof T]]>;
55
- productId: import("zod").ZodString;
56
- description: import("zod").ZodOptional<import("zod").ZodString>;
57
- active: import("zod").ZodEffects<import("zod").ZodBoolean, boolean, unknown>;
58
- externalId: import("zod").ZodString;
59
- startDate: import("zod").ZodDate;
60
- endDate: import("zod").ZodDate;
61
- status: import("zod").ZodString;
62
- billingProvider: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K_1 in keyof U]: import("zod").ZodLiteral<U[K_1]>; }[keyof U]]>>;
63
- extraFields: import("zod").ZodOptional<import("zod").ZodUnknown>;
64
- };
65
- UpdateSubscriptionSchema: <T extends Record<string, LiteralSchema>, U extends Record<string, LiteralSchema>>(PartyEnum: T, BillingProviderEnum: U) => {
66
- id: import("zod").ZodString;
67
- partyId: import("zod").ZodOptional<import("zod").ZodString>;
68
- partyType: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K in keyof T]: import("zod").ZodLiteral<T[K]>; }[keyof T]]>>;
69
- productId: import("zod").ZodOptional<import("zod").ZodString>;
70
- description: import("zod").ZodOptional<import("zod").ZodString>;
71
- active: import("zod").ZodOptional<import("zod").ZodEffects<import("zod").ZodBoolean, boolean, unknown>>;
72
- externalId: import("zod").ZodOptional<import("zod").ZodString>;
73
- startDate: import("zod").ZodOptional<import("zod").ZodDate>;
74
- endDate: import("zod").ZodOptional<import("zod").ZodDate>;
75
- status: import("zod").ZodOptional<import("zod").ZodString>;
76
- billingProvider: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K_1 in keyof U]: import("zod").ZodLiteral<U[K_1]>; }[keyof U]]>>;
77
- extraFields: import("zod").ZodOptional<import("zod").ZodUnknown>;
78
- };
79
- SubscriptionSchema: <T extends Record<string, LiteralSchema>, U extends Record<string, LiteralSchema>>(PartyEnum: T, BillingProviderEnum: U) => {
80
- id: import("zod").ZodString;
81
- partyId: import("zod").ZodString;
82
- partyType: import("zod").ZodUnion<[{ [K in keyof T]: import("zod").ZodLiteral<T[K]>; }[keyof T]]>;
83
- productId: import("zod").ZodString;
84
- description: import("zod").ZodOptional<import("zod").ZodString>;
85
- active: import("zod").ZodEffects<import("zod").ZodBoolean, boolean, unknown>;
86
- externalId: import("zod").ZodString;
87
- startDate: import("zod").ZodDate;
88
- endDate: import("zod").ZodDate;
89
- status: import("zod").ZodString;
90
- billingProvider: import("zod").ZodOptional<import("zod").ZodUnion<[{ [K_1 in keyof U]: import("zod").ZodLiteral<U[K_1]>; }[keyof U]]>>;
91
- extraFields: import("zod").ZodOptional<import("zod").ZodUnknown>;
92
- createdAt: import("zod").ZodOptional<import("zod").ZodDate>;
93
- updatedAt: import("zod").ZodOptional<import("zod").ZodDate>;
94
- };
104
+ CreateSubscriptionSchema: <
105
+ T extends Record<string, LiteralSchema>,
106
+ U extends Record<string, LiteralSchema>
107
+ >(
108
+ PartyEnum: T,
109
+ BillingProviderEnum: U
110
+ ) => {
111
+ partyId: import('zod').ZodString;
112
+ partyType: import('zod').ZodUnion<
113
+ [{ [K in keyof T]: import('zod').ZodLiteral<T[K]> }[keyof T]]
114
+ >;
115
+ productId: import('zod').ZodString;
116
+ description: import('zod').ZodOptional<import('zod').ZodString>;
117
+ active: import('zod').ZodEffects<
118
+ import('zod').ZodBoolean,
119
+ boolean,
120
+ unknown
121
+ >;
122
+ externalId: import('zod').ZodString;
123
+ startDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
124
+ endDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
125
+ status: import('zod').ZodString;
126
+ billingProvider: import('zod').ZodOptional<
127
+ import('zod').ZodUnion<
128
+ [{ [K_1 in keyof U]: import('zod').ZodLiteral<U[K_1]> }[keyof U]]
129
+ >
130
+ >;
131
+ extraFields: import('zod').ZodOptional<import('zod').ZodUnknown>;
132
+ };
133
+ UpdateSubscriptionSchema: <
134
+ T extends Record<string, LiteralSchema>,
135
+ U extends Record<string, LiteralSchema>
136
+ >(
137
+ PartyEnum: T,
138
+ BillingProviderEnum: U
139
+ ) => {
140
+ id: import('zod').ZodString;
141
+ partyId: import('zod').ZodOptional<import('zod').ZodString>;
142
+ partyType: import('zod').ZodOptional<
143
+ import('zod').ZodUnion<
144
+ [{ [K in keyof T]: import('zod').ZodLiteral<T[K]> }[keyof T]]
145
+ >
146
+ >;
147
+ productId: import('zod').ZodOptional<import('zod').ZodString>;
148
+ description: import('zod').ZodOptional<import('zod').ZodString>;
149
+ active: import('zod').ZodOptional<
150
+ import('zod').ZodEffects<import('zod').ZodBoolean, boolean, unknown>
151
+ >;
152
+ externalId: import('zod').ZodOptional<import('zod').ZodString>;
153
+ startDate: import('zod').ZodOptional<
154
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
155
+ >;
156
+ endDate: import('zod').ZodOptional<
157
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
158
+ >;
159
+ status: import('zod').ZodOptional<import('zod').ZodString>;
160
+ billingProvider: import('zod').ZodOptional<
161
+ import('zod').ZodUnion<
162
+ [{ [K_1 in keyof U]: import('zod').ZodLiteral<U[K_1]> }[keyof U]]
163
+ >
164
+ >;
165
+ extraFields: import('zod').ZodOptional<import('zod').ZodUnknown>;
166
+ };
167
+ SubscriptionSchema: <
168
+ T extends Record<string, LiteralSchema>,
169
+ U extends Record<string, LiteralSchema>
170
+ >(
171
+ PartyEnum: T,
172
+ BillingProviderEnum: U
173
+ ) => {
174
+ id: import('zod').ZodString;
175
+ partyId: import('zod').ZodString;
176
+ partyType: import('zod').ZodUnion<
177
+ [{ [K in keyof T]: import('zod').ZodLiteral<T[K]> }[keyof T]]
178
+ >;
179
+ productId: import('zod').ZodString;
180
+ description: import('zod').ZodOptional<import('zod').ZodString>;
181
+ active: import('zod').ZodEffects<
182
+ import('zod').ZodBoolean,
183
+ boolean,
184
+ unknown
185
+ >;
186
+ externalId: import('zod').ZodString;
187
+ startDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
188
+ endDate: import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>;
189
+ status: import('zod').ZodString;
190
+ billingProvider: import('zod').ZodOptional<
191
+ import('zod').ZodUnion<
192
+ [{ [K_1 in keyof U]: import('zod').ZodLiteral<U[K_1]> }[keyof U]]
193
+ >
194
+ >;
195
+ extraFields: import('zod').ZodOptional<import('zod').ZodUnknown>;
196
+ createdAt: import('zod').ZodOptional<
197
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
198
+ >;
199
+ updatedAt: import('zod').ZodOptional<
200
+ import('zod').ZodEffects<import('zod').ZodDate, Date, unknown>
201
+ >;
202
+ };
95
203
  };
96
- //# sourceMappingURL=subscription.schema.d.ts.map
204
+ //# sourceMappingURL=subscription.schema.d.ts.map
@@ -1,18 +1,28 @@
1
- import { boolean, date, enum_, optional, string, unknown, uuid } from '@forklaunch/validator/zod';
1
+ import {
2
+ boolean,
3
+ date,
4
+ enum_,
5
+ optional,
6
+ string,
7
+ unknown,
8
+ uuid
9
+ } from '@forklaunch/validator/zod';
2
10
  export const CreateSubscriptionSchema = (PartyEnum, BillingProviderEnum) => ({
3
- partyId: string,
4
- partyType: enum_(PartyEnum),
5
- productId: string,
6
- description: optional(string),
7
- active: boolean,
8
- externalId: string,
9
- startDate: date,
10
- endDate: date,
11
- status: string,
12
- billingProvider: optional(enum_(BillingProviderEnum)),
13
- extraFields: optional(unknown)
11
+ partyId: string,
12
+ partyType: enum_(PartyEnum),
13
+ productId: string,
14
+ description: optional(string),
15
+ active: boolean,
16
+ externalId: string,
17
+ startDate: date,
18
+ endDate: date,
19
+ status: string,
20
+ billingProvider: optional(enum_(BillingProviderEnum)),
21
+ extraFields: optional(unknown)
14
22
  });
15
- export const UpdateSubscriptionSchema = ({ uuidId }) => (PartyEnum, BillingProviderEnum) => ({
23
+ export const UpdateSubscriptionSchema =
24
+ ({ uuidId }) =>
25
+ (PartyEnum, BillingProviderEnum) => ({
16
26
  id: uuidId ? uuid : string,
17
27
  partyId: optional(string),
18
28
  partyType: optional(enum_(PartyEnum)),
@@ -25,8 +35,10 @@ export const UpdateSubscriptionSchema = ({ uuidId }) => (PartyEnum, BillingProvi
25
35
  status: optional(string),
26
36
  billingProvider: optional(enum_(BillingProviderEnum)),
27
37
  extraFields: optional(unknown)
28
- });
29
- export const SubscriptionSchema = ({ uuidId }) => (PartyEnum, BillingProviderEnum) => ({
38
+ });
39
+ export const SubscriptionSchema =
40
+ ({ uuidId }) =>
41
+ (PartyEnum, BillingProviderEnum) => ({
30
42
  id: uuidId ? uuid : string,
31
43
  partyId: string,
32
44
  partyType: enum_(PartyEnum),
@@ -41,9 +53,9 @@ export const SubscriptionSchema = ({ uuidId }) => (PartyEnum, BillingProviderEnu
41
53
  extraFields: optional(unknown),
42
54
  createdAt: optional(date),
43
55
  updatedAt: optional(date)
44
- });
56
+ });
45
57
  export const BaseSubscriptionServiceSchemas = (options) => ({
46
- CreateSubscriptionSchema,
47
- UpdateSubscriptionSchema: UpdateSubscriptionSchema(options),
48
- SubscriptionSchema: SubscriptionSchema(options)
58
+ CreateSubscriptionSchema,
59
+ UpdateSubscriptionSchema: UpdateSubscriptionSchema(options),
60
+ SubscriptionSchema: SubscriptionSchema(options)
49
61
  });
@@ -1,45 +1,94 @@
1
1
  import { IdDto } from '@forklaunch/common';
2
2
  import { TtlCache } from '@forklaunch/core/cache';
3
- import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/mappers';
4
- import { MetricsDefinition, OpenTelemetryCollector } from '@forklaunch/core/http';
3
+ import {
4
+ RequestDtoMapperConstructor,
5
+ ResponseDtoMapperConstructor
6
+ } from '@forklaunch/core/mappers';
7
+ import {
8
+ MetricsDefinition,
9
+ OpenTelemetryCollector
10
+ } from '@forklaunch/core/http';
5
11
  import { BillingPortalService } from '@forklaunch/interfaces-billing/interfaces';
6
- import { BillingPortalDto, CreateBillingPortalDto, UpdateBillingPortalDto } from '@forklaunch/interfaces-billing/types';
12
+ import {
13
+ BillingPortalDto,
14
+ CreateBillingPortalDto,
15
+ UpdateBillingPortalDto
16
+ } from '@forklaunch/interfaces-billing/types';
7
17
  import { AnySchemaValidator } from '@forklaunch/validator';
8
- export declare class BaseBillingPortalService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
18
+ export declare class BaseBillingPortalService<
19
+ SchemaValidator extends AnySchemaValidator,
20
+ Metrics extends MetricsDefinition = MetricsDefinition,
21
+ Dto extends {
9
22
  BillingPortalDtoMapper: BillingPortalDto;
10
23
  CreateBillingPortalDtoMapper: CreateBillingPortalDto;
11
24
  UpdateBillingPortalDtoMapper: UpdateBillingPortalDto;
12
- } = {
25
+ } = {
13
26
  BillingPortalDtoMapper: BillingPortalDto;
14
27
  CreateBillingPortalDtoMapper: CreateBillingPortalDto;
15
28
  UpdateBillingPortalDtoMapper: UpdateBillingPortalDto;
16
- }, Entities extends {
29
+ },
30
+ Entities extends {
17
31
  BillingPortalDtoMapper: BillingPortalDto;
18
32
  CreateBillingPortalDtoMapper: BillingPortalDto;
19
33
  UpdateBillingPortalDtoMapper: BillingPortalDto;
20
- } = {
34
+ } = {
21
35
  BillingPortalDtoMapper: BillingPortalDto;
22
36
  CreateBillingPortalDtoMapper: BillingPortalDto;
23
37
  UpdateBillingPortalDtoMapper: BillingPortalDto;
24
- }> implements BillingPortalService {
25
- #private;
26
- protected cache: TtlCache;
27
- protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
28
- protected schemaValidator: SchemaValidator;
29
- protected mapperss: {
30
- BillingPortalDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['BillingPortalDtoMapper'], Entities['BillingPortalDtoMapper']>;
31
- CreateBillingPortalDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateBillingPortalDtoMapper'], Entities['CreateBillingPortalDtoMapper']>;
32
- UpdateBillingPortalDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateBillingPortalDtoMapper'], Entities['UpdateBillingPortalDtoMapper']>;
33
- };
34
- constructor(cache: TtlCache, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mapperss: {
35
- BillingPortalDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['BillingPortalDtoMapper'], Entities['BillingPortalDtoMapper']>;
36
- CreateBillingPortalDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateBillingPortalDtoMapper'], Entities['CreateBillingPortalDtoMapper']>;
37
- UpdateBillingPortalDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateBillingPortalDtoMapper'], Entities['UpdateBillingPortalDtoMapper']>;
38
- });
39
- protected createCacheKey: (id: string) => string;
40
- createBillingPortalSession(billingPortalDto: Dto['CreateBillingPortalDtoMapper']): Promise<Dto['BillingPortalDtoMapper']>;
41
- getBillingPortalSession(idDto: IdDto): Promise<Dto['BillingPortalDtoMapper']>;
42
- updateBillingPortalSession(billingPortalDto: UpdateBillingPortalDto): Promise<Dto['BillingPortalDtoMapper']>;
43
- expireBillingPortalSession(idDto: IdDto): Promise<void>;
38
+ }
39
+ > implements BillingPortalService
40
+ {
41
+ #private;
42
+ protected cache: TtlCache;
43
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
44
+ protected schemaValidator: SchemaValidator;
45
+ protected mapperss: {
46
+ BillingPortalDtoMapper: ResponseDtoMapperConstructor<
47
+ SchemaValidator,
48
+ Dto['BillingPortalDtoMapper'],
49
+ Entities['BillingPortalDtoMapper']
50
+ >;
51
+ CreateBillingPortalDtoMapper: RequestDtoMapperConstructor<
52
+ SchemaValidator,
53
+ Dto['CreateBillingPortalDtoMapper'],
54
+ Entities['CreateBillingPortalDtoMapper']
55
+ >;
56
+ UpdateBillingPortalDtoMapper: RequestDtoMapperConstructor<
57
+ SchemaValidator,
58
+ Dto['UpdateBillingPortalDtoMapper'],
59
+ Entities['UpdateBillingPortalDtoMapper']
60
+ >;
61
+ };
62
+ constructor(
63
+ cache: TtlCache,
64
+ openTelemetryCollector: OpenTelemetryCollector<Metrics>,
65
+ schemaValidator: SchemaValidator,
66
+ mapperss: {
67
+ BillingPortalDtoMapper: ResponseDtoMapperConstructor<
68
+ SchemaValidator,
69
+ Dto['BillingPortalDtoMapper'],
70
+ Entities['BillingPortalDtoMapper']
71
+ >;
72
+ CreateBillingPortalDtoMapper: RequestDtoMapperConstructor<
73
+ SchemaValidator,
74
+ Dto['CreateBillingPortalDtoMapper'],
75
+ Entities['CreateBillingPortalDtoMapper']
76
+ >;
77
+ UpdateBillingPortalDtoMapper: RequestDtoMapperConstructor<
78
+ SchemaValidator,
79
+ Dto['UpdateBillingPortalDtoMapper'],
80
+ Entities['UpdateBillingPortalDtoMapper']
81
+ >;
82
+ }
83
+ );
84
+ protected createCacheKey: (id: string) => string;
85
+ createBillingPortalSession(
86
+ billingPortalDto: Dto['CreateBillingPortalDtoMapper']
87
+ ): Promise<Dto['BillingPortalDtoMapper']>;
88
+ getBillingPortalSession(idDto: IdDto): Promise<Dto['BillingPortalDtoMapper']>;
89
+ updateBillingPortalSession(
90
+ billingPortalDto: UpdateBillingPortalDto
91
+ ): Promise<Dto['BillingPortalDtoMapper']>;
92
+ expireBillingPortalSession(idDto: IdDto): Promise<void>;
44
93
  }
45
- //# sourceMappingURL=billingPortal.service.d.ts.map
94
+ //# sourceMappingURL=billingPortal.service.d.ts.map
@@ -1,51 +1,70 @@
1
1
  import { createCacheKey } from '@forklaunch/core/cache';
2
2
  import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
3
3
  export class BaseBillingPortalService {
4
- cache;
5
- openTelemetryCollector;
6
- schemaValidator;
7
- mapperss;
8
- #mapperss;
9
- constructor(cache, openTelemetryCollector, schemaValidator, mapperss) {
10
- this.cache = cache;
11
- this.openTelemetryCollector = openTelemetryCollector;
12
- this.schemaValidator = schemaValidator;
13
- this.mapperss = mapperss;
14
- this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
4
+ cache;
5
+ openTelemetryCollector;
6
+ schemaValidator;
7
+ mapperss;
8
+ #mapperss;
9
+ constructor(cache, openTelemetryCollector, schemaValidator, mapperss) {
10
+ this.cache = cache;
11
+ this.openTelemetryCollector = openTelemetryCollector;
12
+ this.schemaValidator = schemaValidator;
13
+ this.mapperss = mapperss;
14
+ this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
15
+ }
16
+ createCacheKey = createCacheKey('billing_portal_session');
17
+ async createBillingPortalSession(billingPortalDto) {
18
+ const billingPortalSession =
19
+ this.#mapperss.CreateBillingPortalDtoMapper.deserializeDtoToEntity(
20
+ billingPortalDto
21
+ );
22
+ this.openTelemetryCollector.debug(
23
+ 'Create billing portal session',
24
+ billingPortalSession
25
+ );
26
+ await this.cache.putRecord({
27
+ key: this.createCacheKey(billingPortalSession.id),
28
+ value: billingPortalSession,
29
+ ttlMilliseconds: this.cache.getTtlMilliseconds()
30
+ });
31
+ return this.#mapperss.BillingPortalDtoMapper.serializeEntityToDto(
32
+ billingPortalSession
33
+ );
34
+ }
35
+ async getBillingPortalSession(idDto) {
36
+ const billingPortalSessionDetails = await this.cache.readRecord(
37
+ this.createCacheKey(idDto.id)
38
+ );
39
+ if (!billingPortalSessionDetails) {
40
+ throw new Error('Session not found');
15
41
  }
16
- createCacheKey = createCacheKey('billing_portal_session');
17
- async createBillingPortalSession(billingPortalDto) {
18
- const billingPortalSession = this.#mapperss.CreateBillingPortalDtoMapper.deserializeDtoToEntity(billingPortalDto);
19
- this.openTelemetryCollector.debug('Create billing portal session', billingPortalSession);
20
- await this.cache.putRecord({
21
- key: this.createCacheKey(billingPortalSession.id),
22
- value: billingPortalSession,
23
- ttlMilliseconds: this.cache.getTtlMilliseconds()
24
- });
25
- return this.#mapperss.BillingPortalDtoMapper.serializeEntityToDto(billingPortalSession);
26
- }
27
- async getBillingPortalSession(idDto) {
28
- const billingPortalSessionDetails = await this.cache.readRecord(this.createCacheKey(idDto.id));
29
- if (!billingPortalSessionDetails) {
30
- throw new Error('Session not found');
31
- }
32
- return this.#mapperss.BillingPortalDtoMapper.serializeEntityToDto(billingPortalSessionDetails.value);
33
- }
34
- async updateBillingPortalSession(billingPortalDto) {
35
- const billingPortalSession = this.#mapperss.UpdateBillingPortalDtoMapper.deserializeDtoToEntity(billingPortalDto);
36
- // Save the updated session to your database or external service
37
- await this.cache.putRecord({
38
- key: this.createCacheKey(billingPortalSession.id),
39
- value: billingPortalSession,
40
- ttlMilliseconds: this.cache.getTtlMilliseconds()
41
- });
42
- return this.#mapperss.BillingPortalDtoMapper.serializeEntityToDto(billingPortalSession);
43
- }
44
- async expireBillingPortalSession(idDto) {
45
- const sessionExists = await this.cache.readRecord(this.createCacheKey(idDto.id));
46
- if (!sessionExists) {
47
- throw new Error('Session not found');
48
- }
49
- await this.cache.deleteRecord(this.createCacheKey(idDto.id));
42
+ return this.#mapperss.BillingPortalDtoMapper.serializeEntityToDto(
43
+ billingPortalSessionDetails.value
44
+ );
45
+ }
46
+ async updateBillingPortalSession(billingPortalDto) {
47
+ const billingPortalSession =
48
+ this.#mapperss.UpdateBillingPortalDtoMapper.deserializeDtoToEntity(
49
+ billingPortalDto
50
+ );
51
+ // Save the updated session to your database or external service
52
+ await this.cache.putRecord({
53
+ key: this.createCacheKey(billingPortalSession.id),
54
+ value: billingPortalSession,
55
+ ttlMilliseconds: this.cache.getTtlMilliseconds()
56
+ });
57
+ return this.#mapperss.BillingPortalDtoMapper.serializeEntityToDto(
58
+ billingPortalSession
59
+ );
60
+ }
61
+ async expireBillingPortalSession(idDto) {
62
+ const sessionExists = await this.cache.readRecord(
63
+ this.createCacheKey(idDto.id)
64
+ );
65
+ if (!sessionExists) {
66
+ throw new Error('Session not found');
50
67
  }
68
+ await this.cache.deleteRecord(this.createCacheKey(idDto.id));
69
+ }
51
70
  }