@misterhomer1992/miit-bot-payment 1.0.7 → 1.0.9

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 (53) hide show
  1. package/README.md +1 -359
  2. package/dist/modules/cancellableAPI/utils.d.ts +1 -2
  3. package/dist/modules/cancellableAPI/utils.d.ts.map +1 -1
  4. package/dist/modules/cancellableAPI/utils.js.map +1 -1
  5. package/dist/modules/invoice/repository.d.ts +0 -25
  6. package/dist/modules/invoice/repository.d.ts.map +1 -1
  7. package/dist/modules/invoice/repository.js +0 -25
  8. package/dist/modules/invoice/repository.js.map +1 -1
  9. package/dist/modules/invoice/service.d.ts +0 -21
  10. package/dist/modules/invoice/service.d.ts.map +1 -1
  11. package/dist/modules/invoice/service.js +0 -21
  12. package/dist/modules/invoice/service.js.map +1 -1
  13. package/dist/modules/invoice/types.d.ts +0 -8
  14. package/dist/modules/invoice/types.d.ts.map +1 -1
  15. package/dist/modules/payments/api.d.ts +3 -4
  16. package/dist/modules/payments/api.d.ts.map +1 -1
  17. package/dist/modules/payments/api.js +3 -3
  18. package/dist/modules/payments/api.js.map +1 -1
  19. package/dist/modules/payments/repository.d.ts +1 -59
  20. package/dist/modules/payments/repository.d.ts.map +1 -1
  21. package/dist/modules/payments/repository.js +2 -59
  22. package/dist/modules/payments/repository.js.map +1 -1
  23. package/dist/modules/payments/service.d.ts +2 -66
  24. package/dist/modules/payments/service.d.ts.map +1 -1
  25. package/dist/modules/payments/service.js +5 -68
  26. package/dist/modules/payments/service.js.map +1 -1
  27. package/dist/modules/payments/types.d.ts +4 -11
  28. package/dist/modules/payments/types.d.ts.map +1 -1
  29. package/dist/modules/payments/utils.d.ts +3 -4
  30. package/dist/modules/payments/utils.d.ts.map +1 -1
  31. package/dist/modules/payments/utils.js +6 -6
  32. package/dist/modules/payments/utils.js.map +1 -1
  33. package/dist/modules/subscription/repository.d.ts +5 -83
  34. package/dist/modules/subscription/repository.d.ts.map +1 -1
  35. package/dist/modules/subscription/repository.js +40 -104
  36. package/dist/modules/subscription/repository.js.map +1 -1
  37. package/dist/modules/subscription/service.d.ts +6 -89
  38. package/dist/modules/subscription/service.d.ts.map +1 -1
  39. package/dist/modules/subscription/service.js +24 -83
  40. package/dist/modules/subscription/service.js.map +1 -1
  41. package/dist/modules/subscription/types.d.ts +13 -27
  42. package/dist/modules/subscription/types.d.ts.map +1 -1
  43. package/dist/modules/user/types.d.ts +7 -8
  44. package/dist/modules/user/types.d.ts.map +1 -1
  45. package/dist/modules/user/userRepository.d.ts +3 -46
  46. package/dist/modules/user/userRepository.d.ts.map +1 -1
  47. package/dist/modules/user/userRepository.js +6 -48
  48. package/dist/modules/user/userRepository.js.map +1 -1
  49. package/dist/modules/user/userService.d.ts +3 -37
  50. package/dist/modules/user/userService.d.ts.map +1 -1
  51. package/dist/modules/user/userService.js +3 -36
  52. package/dist/modules/user/userService.js.map +1 -1
  53. package/package.json +1 -1
@@ -8,31 +8,12 @@ const moment_1 = __importDefault(require("moment"));
8
8
  const repository_1 = require("./repository");
9
9
  const utils_1 = require("./utils");
10
10
  const service_1 = require("../payments/service");
11
- /**
12
- * SubscriptionService class handles business logic related to subscriptions.
13
- * Acts as an intermediary between controllers/handlers and the repository layer.
14
- */
15
11
  class SubscriptionService {
16
- /**
17
- * Creates an instance of SubscriptionService.
18
- * @param params - Service dependencies
19
- * @param params.logger - Application logger instance for logging operations
20
- * @param params.repository - Optional subscription repository instance for dependency injection (defaults to new SubscriptionRepository())
21
- * @param params.paymentService - Optional payment service instance for dependency injection (defaults to new PaymentService())
22
- */
23
12
  constructor({ logger, repository, paymentService, }) {
24
13
  this.logger = logger;
25
14
  this.repository = repository || new repository_1.SubscriptionRepository();
26
15
  this.paymentService = paymentService || new service_1.PaymentService({ logger });
27
16
  }
28
- /**
29
- * Retrieves a subscription for a specific user.
30
- * @param params - Query parameters
31
- * @param params.userId - The user's unique identifier
32
- * @param params.appNamespace - The application namespace/platform
33
- * @param params.status - Optional status filter. Can be a single status or array of statuses. Defaults to 'active'
34
- * @returns Promise resolving to SubscriptionEntity or null if not found
35
- */
36
17
  async findSubscription(params) {
37
18
  try {
38
19
  return await this.repository.findSubscription(params);
@@ -42,24 +23,13 @@ class SubscriptionService {
42
23
  message: 'Error in subscription service findSubscription',
43
24
  payload: {
44
25
  userId: params.userId,
45
- appNamespace: params.appNamespace,
26
+ platform: params.platform,
46
27
  error: JSON.stringify(error),
47
28
  },
48
29
  });
49
30
  return null;
50
31
  }
51
32
  }
52
- /**
53
- * Creates a new subscription record in the database.
54
- * @param params - Subscription creation parameters
55
- * @param params.userId - The user's unique identifier
56
- * @param params.appNamespace - The application namespace/platform
57
- * @param params.planId - The subscription plan identifier
58
- * @param params.expiresAt - ISO timestamp when subscription expires
59
- * @param params.startedAt - ISO timestamp when subscription started
60
- * @returns Promise resolving to created SubscriptionEntity with ID
61
- * @throws Error if subscription creation fails
62
- */
63
33
  async create(params) {
64
34
  try {
65
35
  return await this.repository.create(params);
@@ -69,7 +39,7 @@ class SubscriptionService {
69
39
  message: 'Error in subscription service create',
70
40
  payload: {
71
41
  userId: params.userId,
72
- appNamespace: params.appNamespace,
42
+ platform: params.platform,
73
43
  planId: params.planId,
74
44
  error: JSON.stringify(error),
75
45
  },
@@ -77,14 +47,6 @@ class SubscriptionService {
77
47
  throw error;
78
48
  }
79
49
  }
80
- /**
81
- * Updates specific fields of a subscription identified by userId and appNamespace.
82
- * @param params - Update parameters
83
- * @param params.userId - The user's unique identifier
84
- * @param params.appNamespace - The application namespace/platform
85
- * @param params.fields - Array of field paths and values to update
86
- * @throws Error if subscription not found or update fails
87
- */
88
50
  async updateFieldsByUserId(params) {
89
51
  try {
90
52
  await this.repository.updateFieldsByUserId(params);
@@ -94,7 +56,7 @@ class SubscriptionService {
94
56
  message: 'Error in subscription service updateFieldsByUserId',
95
57
  payload: {
96
58
  userId: params.userId,
97
- appNamespace: params.appNamespace,
59
+ platform: params.platform,
98
60
  fields: JSON.stringify(params.fields),
99
61
  error: JSON.stringify(error),
100
62
  },
@@ -102,11 +64,6 @@ class SubscriptionService {
102
64
  throw error;
103
65
  }
104
66
  }
105
- /**
106
- * Retrieves all active subscriptions that have expired.
107
- * Used for batch processing to update subscription statuses.
108
- * @returns Promise resolving to array of expired SubscriptionEntity
109
- */
110
67
  async getExpiredActiveSubscriptions() {
111
68
  try {
112
69
  return await this.repository.getExpiredActiveSubscriptions();
@@ -121,13 +78,6 @@ class SubscriptionService {
121
78
  return [];
122
79
  }
123
80
  }
124
- /**
125
- * Updates specific fields of a subscription identified by subscription ID.
126
- * @param params - Update parameters
127
- * @param params.subscriptionId - The subscription document ID
128
- * @param params.fields - Array of field paths and values to update
129
- * @throws Error if update fails
130
- */
131
81
  async updateFieldsById(params) {
132
82
  try {
133
83
  await this.repository.updateFieldsById(params);
@@ -144,25 +94,12 @@ class SubscriptionService {
144
94
  throw error;
145
95
  }
146
96
  }
147
- /**
148
- * Gets or creates a subscription payment URL.
149
- * Checks for recent pending payments (within 3 minutes) and reuses the payment link if found.
150
- * Otherwise creates a new payment intent for the subscription.
151
- * @param params - Payment URL creation parameters
152
- * @param params.userId - The user's unique identifier
153
- * @param params.appNamespace - The application namespace/platform
154
- * @param params.planId - The subscription plan identifier
155
- * @param params.languageCode - Language code for translations
156
- * @param params.translate - Translation function
157
- * @returns Promise resolving to the payment URL string
158
- * @throws Error if subscription plan not found or payment creation fails
159
- */
160
97
  async getOrCreateSubscriptionPaymentUrl(params) {
161
98
  try {
162
99
  // Check for existing pending payments for this plan
163
100
  const existingPayments = await this.paymentService.getByUserId({
164
101
  userId: params.userId,
165
- appNamespace: params.appNamespace,
102
+ platform: params.platform,
166
103
  status: 'pending',
167
104
  });
168
105
  const recentPayment = existingPayments
@@ -181,7 +118,7 @@ class SubscriptionService {
181
118
  }));
182
119
  const paymentEntity = await this.paymentService.createPaymentIntent({
183
120
  userId: params.userId,
184
- appNamespace: params.appNamespace,
121
+ platform: params.platform,
185
122
  planId: subscriptionPlan.id,
186
123
  productName,
187
124
  productPrice: subscriptionPlan.amount,
@@ -196,7 +133,7 @@ class SubscriptionService {
196
133
  message: 'Error in subscription service getOrCreateSubscriptionPaymentUrl',
197
134
  payload: {
198
135
  userId: params.userId,
199
- appNamespace: params.appNamespace,
136
+ platform: params.platform,
200
137
  planId: params.planId,
201
138
  error: JSON.stringify(error),
202
139
  },
@@ -204,19 +141,6 @@ class SubscriptionService {
204
141
  throw error;
205
142
  }
206
143
  }
207
- /**
208
- * Activates a subscription for a user.
209
- * This operation is transactional - it creates/updates the subscription document
210
- * and updates the user's subscription status atomically.
211
- * @param params - Activation parameters
212
- * @param params.userId - The user's unique identifier
213
- * @param params.appNamespace - The application namespace/platform
214
- * @param params.startedAt - ISO timestamp when subscription period starts
215
- * @param params.expiresAt - ISO timestamp when subscription period ends
216
- * @param params.planId - The subscription plan identifier
217
- * @param params.provider - Payment provider (e.g., 'wayforpay')
218
- * @throws Error if user not found or activation fails
219
- */
220
144
  async activateSubscription(params) {
221
145
  try {
222
146
  await this.repository.activateSubscription(params);
@@ -226,7 +150,7 @@ class SubscriptionService {
226
150
  message: 'Error in subscription service activateSubscription',
227
151
  payload: {
228
152
  userId: params.userId,
229
- appNamespace: params.appNamespace,
153
+ platform: params.platform,
230
154
  planId: params.planId,
231
155
  error: JSON.stringify(error),
232
156
  },
@@ -234,6 +158,23 @@ class SubscriptionService {
234
158
  throw error;
235
159
  }
236
160
  }
161
+ async renewSubscription(params) {
162
+ try {
163
+ await this.repository.renewSubscription(params);
164
+ }
165
+ catch (error) {
166
+ this.logger.error({
167
+ message: 'Error in subscription service renewSubscription',
168
+ payload: {
169
+ userId: params.userId,
170
+ platform: params.platform,
171
+ expiresAt: params.expiresAt,
172
+ error: JSON.stringify(error),
173
+ },
174
+ });
175
+ throw error;
176
+ }
177
+ }
237
178
  }
238
179
  exports.SubscriptionService = SubscriptionService;
239
180
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/subscription/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/subscription/service.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,6CAAkF;AAElF,mCAAoE;AACpE,iDAAqD;AAGrD,MAAa,mBAAmB;IAI5B,YAAY,EACR,MAAM,EACN,UAAU,EACV,cAAc,GAKjB;QACG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,mCAAsB,EAAE,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,wBAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAI7B;QACG,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAMnB;QACG,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,sCAAsC;gBAC/C,OAAO,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IACM,KAAK,CAAC,oBAAoB,CAAC,MAIjC;QACG,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,oDAAoD;gBAC7D,OAAO,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;oBACrC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,6BAA6B;QACtC,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,6DAA6D;gBACtE,OAAO,EAAE;oBACL,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAG7B;QACG,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE;oBACL,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;oBACrC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,iCAAiC,CAAC,MAM9C;QACG,IAAI,CAAC;YACD,oDAAoD;YACpD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;gBAC3D,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,SAAS;aACpB,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,gBAAgB;iBACjC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;iBACrD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAEzF,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC7C,OAAO,aAAa,CAAC,WAAW,CAAC;YACrC,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,WAAW,GAAG,IAAA,4BAAoB,EACpC,MAAM,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC,YAAY;gBACzB,IAAI,EAAE,gBAAgB,CAAC,SAAS;aACnC,CAAC,CACL,CAAC;YAEF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC;gBAChE,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,gBAAgB,CAAC,EAAE;gBAC3B,WAAW;gBACX,YAAY,EAAE,gBAAgB,CAAC,MAAM;gBACrC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;gBACnC,QAAQ,EAAE,MAAM,CAAC,YAAY;gBAC7B,WAAW,EAAE,gBAAgB,CAAC,WAAW;aAC5C,CAAC,CAAC;YAEH,OAAO,aAAa,CAAC,WAAW,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,iEAAiE;gBAC1E,OAAO,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,MAAiD;QAC/E,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,oDAAoD;gBAC7D,OAAO,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC1B,MAAqE;QAErE,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,iDAAiD;gBAC1D,OAAO,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC/B;aACJ,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ;AAxND,kDAwNC"}
@@ -1,5 +1,4 @@
1
1
  import { NestedPathsAccess } from '../../types/utilities';
2
- import { AppNamespace } from '../app/types';
3
2
  type SubscriptionEntity = {
4
3
  /** Auto-generated unique ID (document ID) */
5
4
  id?: string;
@@ -14,7 +13,7 @@ type SubscriptionEntity = {
14
13
  /** Timestamp when this period began */
15
14
  startedAt: string;
16
15
  /** Platform/app namespace */
17
- platform: AppNamespace;
16
+ platform: string;
18
17
  /** Payment provider */
19
18
  provider: 'wayforpay';
20
19
  };
@@ -45,7 +44,7 @@ interface ISubscriptionRepository {
45
44
  */
46
45
  findSubscription(params: {
47
46
  userId: string;
48
- appNamespace: string;
47
+ platform: string;
49
48
  status?: SubscriptionEntity['status'] | SubscriptionEntity['status'][];
50
49
  }): Promise<SubscriptionEntity | null>;
51
50
  /**
@@ -55,18 +54,18 @@ interface ISubscriptionRepository {
55
54
  */
56
55
  create(params: {
57
56
  userId: string;
58
- appNamespace: AppNamespace;
57
+ platform: string;
59
58
  planId: string;
60
59
  expiresAt: string;
61
60
  startedAt: string;
62
61
  }): Promise<SubscriptionEntity>;
63
62
  /**
64
- * Updates specific fields of a subscription identified by userId and appNamespace.
63
+ * Updates specific fields of a subscription identified by userId and platform.
65
64
  * @param params - Update parameters
66
65
  */
67
66
  updateFieldsByUserId(params: {
68
67
  userId: string;
69
- appNamespace: AppNamespace;
68
+ platform: string;
70
69
  fields: any;
71
70
  }): Promise<void>;
72
71
  /**
@@ -86,14 +85,8 @@ interface ISubscriptionRepository {
86
85
  * Activates a subscription for a user using a transaction.
87
86
  * @param params - Activation parameters
88
87
  */
89
- activateSubscription(params: {
90
- userId: string;
91
- appNamespace: AppNamespace;
92
- startedAt: string;
93
- expiresAt: string;
94
- planId: string;
95
- provider: 'wayforpay';
96
- }): Promise<void>;
88
+ activateSubscription(params: Omit<SubscriptionEntity, 'id' | 'status'>): Promise<void>;
89
+ renewSubscription(params: Pick<SubscriptionEntity, 'userId' | 'platform' | 'expiresAt'>): Promise<void>;
97
90
  }
98
91
  /**
99
92
  * Interface for subscription service operations.
@@ -107,7 +100,7 @@ interface ISubscriptionService {
107
100
  */
108
101
  findSubscription(params: {
109
102
  userId: string;
110
- appNamespace: string;
103
+ platform: string;
111
104
  status?: SubscriptionEntity['status'] | SubscriptionEntity['status'][];
112
105
  }): Promise<SubscriptionEntity | null>;
113
106
  /**
@@ -117,18 +110,18 @@ interface ISubscriptionService {
117
110
  */
118
111
  create(params: {
119
112
  userId: string;
120
- appNamespace: AppNamespace;
113
+ platform: string;
121
114
  planId: string;
122
115
  expiresAt: string;
123
116
  startedAt: string;
124
117
  }): Promise<SubscriptionEntity>;
125
118
  /**
126
- * Updates specific fields of a subscription identified by userId and appNamespace.
119
+ * Updates specific fields of a subscription identified by userId and platform.
127
120
  * @param params - Update parameters
128
121
  */
129
122
  updateFieldsByUserId(params: {
130
123
  userId: string;
131
- appNamespace: AppNamespace;
124
+ platform: string;
132
125
  fields: any;
133
126
  }): Promise<void>;
134
127
  /**
@@ -151,7 +144,7 @@ interface ISubscriptionService {
151
144
  */
152
145
  getOrCreateSubscriptionPaymentUrl(params: {
153
146
  userId: string;
154
- appNamespace: AppNamespace;
147
+ platform: string;
155
148
  planId: string;
156
149
  languageCode: string;
157
150
  translate: (params: {
@@ -163,14 +156,7 @@ interface ISubscriptionService {
163
156
  * Activates a subscription for a user.
164
157
  * @param params - Activation parameters
165
158
  */
166
- activateSubscription(params: {
167
- userId: string;
168
- appNamespace: AppNamespace;
169
- startedAt: string;
170
- expiresAt: string;
171
- planId: string;
172
- provider: 'wayforpay';
173
- }): Promise<void>;
159
+ activateSubscription(params: Omit<SubscriptionEntity, 'id' | 'status'>): Promise<void>;
174
160
  }
175
161
  export type { SubscriptionEntity, SubscriptionPlan, SubscriptionFieldPath, ISubscriptionRepository, ISubscriptionService, };
176
162
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/subscription/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/subscription/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { NestedPathsAccess } from '../../types/utilities';
2
- import { AppNamespace } from '../app/types';
3
2
  export interface User {
4
3
  user: {
5
4
  id: string;
@@ -34,7 +33,7 @@ export interface User {
34
33
  }
35
34
  export interface UserAnalytics {
36
35
  id: string;
37
- platform: AppNamespace;
36
+ platform: string;
38
37
  createdDate: string;
39
38
  chatGPT: {
40
39
  completions: Partial<Record<number, {
@@ -87,7 +86,7 @@ export interface IUserRepository {
87
86
  */
88
87
  getByUserId(params: {
89
88
  userId: string;
90
- appNamespace: string;
89
+ platform: string;
91
90
  }): Promise<User | null>;
92
91
  /**
93
92
  * Creates a new user record in the database.
@@ -96,14 +95,14 @@ export interface IUserRepository {
96
95
  */
97
96
  create(params: {
98
97
  user: User;
99
- appNamespace: string;
98
+ platform: string;
100
99
  }): Promise<void>;
101
100
  /**
102
101
  * Updates specific fields of a user identified by userId.
103
102
  * @param params - Update parameters
104
103
  */
105
104
  updateFieldsByUserId(params: {
106
- appNamespace: AppNamespace;
105
+ platform: string;
107
106
  userId: string;
108
107
  fields: any;
109
108
  }): Promise<void>;
@@ -120,7 +119,7 @@ export interface IUserService {
120
119
  */
121
120
  getByUserId(params: {
122
121
  userId: string;
123
- appNamespace: string;
122
+ platform: string;
124
123
  }): Promise<User | null>;
125
124
  /**
126
125
  * Creates a new user record in the database.
@@ -129,14 +128,14 @@ export interface IUserService {
129
128
  */
130
129
  create(params: {
131
130
  user: User;
132
- appNamespace: string;
131
+ platform: string;
133
132
  }): Promise<void>;
134
133
  /**
135
134
  * Updates specific fields of a user identified by userId.
136
135
  * @param params - Update parameters
137
136
  */
138
137
  updateFieldsByUserId(params: {
139
- appNamespace: AppNamespace;
138
+ platform: string;
140
139
  userId: string;
141
140
  fields: any;
142
141
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/user/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/user/types.ts"],"names":[],"mappings":"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"}
@@ -1,68 +1,25 @@
1
1
  import { FieldValue, Firestore } from 'firebase-admin/firestore';
2
2
  import { User, UserFieldPath, IUserRepository } from './types';
3
- import { AppNamespace } from '../app/types';
4
3
  export type UpdateDBUserFields = [UserFieldPath, FieldValue | string | number | boolean | Date | [] | {}][];
5
- /**
6
- * UserRepository class handles all database operations related to users.
7
- * Implements repository pattern for user data access.
8
- */
9
4
  export declare class UserRepository implements IUserRepository {
10
5
  private readonly db;
11
- /**
12
- * Creates an instance of UserRepository.
13
- * @param params - Repository dependencies
14
- * @param params.db - Optional Firestore instance for dependency injection (defaults to getFirestore())
15
- */
16
6
  constructor({ db }?: {
17
7
  db?: Firestore;
18
8
  });
19
- /**
20
- * Retrieves a user by their ID.
21
- * @param params - Query parameters
22
- * @param params.userId - The user's unique identifier
23
- * @param params.appNamespace - The application namespace/platform
24
- * @returns Promise resolving to User or null if not found
25
- */
26
9
  getByUserId(params: {
27
10
  userId: string;
28
- appNamespace: string;
11
+ platform: string;
29
12
  }): Promise<User | null>;
30
- /**
31
- * Creates a new user record in the database.
32
- * @param params - User creation parameters
33
- * @param params.user - The user data to create
34
- * @param params.appNamespace - The application namespace/platform
35
- * @returns Promise resolving when user is created
36
- * @throws Error if user creation fails
37
- */
38
13
  create(params: {
39
14
  user: User;
40
- appNamespace: string;
15
+ platform: string;
41
16
  }): Promise<void>;
42
- /**
43
- * Updates specific fields of a user identified by userId.
44
- * @param params - Update parameters
45
- * @param params.userId - The user's unique identifier
46
- * @param params.appNamespace - The application namespace/platform
47
- * @param params.fields - Array of field paths and values to update
48
- * @throws Error if user not found or update fails
49
- */
50
17
  updateFieldsByUserId(params: {
51
- appNamespace: AppNamespace;
18
+ platform: string;
52
19
  userId: string;
53
20
  fields: UpdateDBUserFields;
54
21
  }): Promise<void>;
55
- /**
56
- * Maps a Firestore document to a User entity.
57
- * @param doc - Firestore document snapshot
58
- * @returns User entity
59
- */
60
22
  private mapDocumentToEntity;
61
- /**
62
- * Builds an update object from field tuples.
63
- * @param fields - Array of field paths and values
64
- * @returns Object with field paths as keys and values to update
65
- */
66
23
  private buildUpdateObject;
67
24
  }
68
25
  //# sourceMappingURL=userRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userRepository.d.ts","sourceRoot":"","sources":["../../../src/modules/user/userRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAkC,MAAM,0BAA0B,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG,CAAC,aAAa,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAE5G;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B;;;;OAIG;gBACS,EAAE,EAAE,EAAE,GAAE;QAAE,EAAE,CAAC,EAAE,SAAS,CAAA;KAAO;IAI3C;;;;;;OAMG;IACU,WAAW,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAYhG;;;;;;;OAOG;IACU,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhF;;;;;;;OAOG;IACU,oBAAoB,CAAC,MAAM,EAAE;QACtC,YAAY,EAAE,YAAY,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,kBAAkB,CAAC;KAC9B,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAW5B"}
1
+ {"version":3,"file":"userRepository.d.ts","sourceRoot":"","sources":["../../../src/modules/user/userRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAkC,MAAM,0BAA0B,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,aAAa,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAE5G,qBAAa,cAAe,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;gBAEnB,EAAE,EAAE,EAAE,GAAE;QAAE,EAAE,CAAC,EAAE,SAAS,CAAA;KAAO;IAI9B,WAAW,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAY/E,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,oBAAoB,CAAC,MAAM,EAAE;QACtC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,kBAAkB,CAAC;KAC9B,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;CAW5B"}
@@ -2,76 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UserRepository = void 0;
4
4
  const firestore_1 = require("firebase-admin/firestore");
5
- /**
6
- * UserRepository class handles all database operations related to users.
7
- * Implements repository pattern for user data access.
8
- */
9
5
  class UserRepository {
10
- /**
11
- * Creates an instance of UserRepository.
12
- * @param params - Repository dependencies
13
- * @param params.db - Optional Firestore instance for dependency injection (defaults to getFirestore())
14
- */
15
6
  constructor({ db } = {}) {
16
7
  this.db = db || (0, firestore_1.getFirestore)();
17
8
  }
18
- /**
19
- * Retrieves a user by their ID.
20
- * @param params - Query parameters
21
- * @param params.userId - The user's unique identifier
22
- * @param params.appNamespace - The application namespace/platform
23
- * @returns Promise resolving to User or null if not found
24
- */
25
9
  async getByUserId(params) {
26
- const { userId, appNamespace } = params;
27
- const docSnapshot = await this.db.collection(`platform/${appNamespace}/users`).doc(userId).get();
10
+ const { userId, platform } = params;
11
+ const docSnapshot = await this.db.collection(`platform/${platform}/users`).doc(userId).get();
28
12
  if (!docSnapshot.exists) {
29
13
  return null;
30
14
  }
31
15
  return this.mapDocumentToEntity(docSnapshot);
32
16
  }
33
- /**
34
- * Creates a new user record in the database.
35
- * @param params - User creation parameters
36
- * @param params.user - The user data to create
37
- * @param params.appNamespace - The application namespace/platform
38
- * @returns Promise resolving when user is created
39
- * @throws Error if user creation fails
40
- */
41
17
  async create(params) {
42
- const { user, appNamespace } = params;
43
- await this.db.collection(`platform/${appNamespace}/users`).doc(user.user.id).set(user);
18
+ const { user, platform } = params;
19
+ await this.db.collection(`platform/${platform}/users`).doc(user.user.id).set(user);
44
20
  }
45
- /**
46
- * Updates specific fields of a user identified by userId.
47
- * @param params - Update parameters
48
- * @param params.userId - The user's unique identifier
49
- * @param params.appNamespace - The application namespace/platform
50
- * @param params.fields - Array of field paths and values to update
51
- * @throws Error if user not found or update fails
52
- */
53
21
  async updateFieldsByUserId(params) {
54
- const { userId, appNamespace, fields } = params;
22
+ const { userId, platform, fields } = params;
55
23
  const updateObject = this.buildUpdateObject(fields);
56
- const snapshot = await this.db.collection(`platform/${appNamespace}/users`).doc(userId).get();
24
+ const snapshot = await this.db.collection(`platform/${platform}/users`).doc(userId).get();
57
25
  if (!snapshot.exists) {
58
26
  throw new Error(`User not found: ${userId}`);
59
27
  }
60
28
  await snapshot.ref.update(updateObject);
61
29
  }
62
- /**
63
- * Maps a Firestore document to a User entity.
64
- * @param doc - Firestore document snapshot
65
- * @returns User entity
66
- */
67
30
  mapDocumentToEntity(doc) {
68
31
  return doc.data();
69
32
  }
70
- /**
71
- * Builds an update object from field tuples.
72
- * @param fields - Array of field paths and values
73
- * @returns Object with field paths as keys and values to update
74
- */
75
33
  buildUpdateObject(fields) {
76
34
  const updateObject = {};
77
35
  fields
@@ -1 +1 @@
1
- {"version":3,"file":"userRepository.js","sourceRoot":"","sources":["../../../src/modules/user/userRepository.ts"],"names":[],"mappings":";;;AAAA,wDAAiG;AAMjG;;;GAGG;AACH,MAAa,cAAc;IAGvB;;;;OAIG;IACH,YAAY,EAAE,EAAE,KAAyB,EAAE;QACvC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAA,wBAAY,GAAE,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,WAAW,CAAC,MAAgD;QACrE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAExC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,YAAY,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAEjG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,MAAM,CAAC,MAA4C;QAC5D,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAEtC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,YAAY,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,oBAAoB,CAAC,MAIjC;QACG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAEhD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,YAAY,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAE9F,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,GAAqB;QAC7C,OAAO,GAAG,CAAC,IAAI,EAAU,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,MAA0B;QAChD,MAAM,YAAY,GAAwB,EAAE,CAAC;QAE7C,MAAM;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC/B,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5B,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC;QAEP,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAhGD,wCAgGC"}
1
+ {"version":3,"file":"userRepository.js","sourceRoot":"","sources":["../../../src/modules/user/userRepository.ts"],"names":[],"mappings":";;;AAAA,wDAAiG;AAKjG,MAAa,cAAc;IAGvB,YAAY,EAAE,EAAE,KAAyB,EAAE;QACvC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAA,wBAAY,GAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,MAA4C;QACjE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAEpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,QAAQ,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAE7F,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAAwC;QACxD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAElC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,QAAQ,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,MAIjC;QACG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE5C,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,QAAQ,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAE1F,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAEO,mBAAmB,CAAC,GAAqB;QAC7C,OAAO,GAAG,CAAC,IAAI,EAAU,CAAC;IAC9B,CAAC;IAEO,iBAAiB,CAAC,MAA0B;QAChD,MAAM,YAAY,GAAwB,EAAE,CAAC;QAE7C,MAAM;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC/B,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5B,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC;QAEP,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AA1DD,wCA0DC"}