@misterhomer1992/miit-bot-payment 1.1.7 → 2.0.4
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/dist/config/ConfigurationManager.d.ts +64 -0
- package/dist/config/ConfigurationManager.d.ts.map +1 -0
- package/dist/config/ConfigurationManager.js +144 -0
- package/dist/config/ConfigurationManager.js.map +1 -0
- package/dist/config/defaults.d.ts +18 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +26 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/environment.d.ts +38 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +91 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +18 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +53 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/cache/InMemoryCache.d.ts +17 -0
- package/dist/modules/cache/InMemoryCache.d.ts.map +1 -0
- package/dist/modules/cache/InMemoryCache.js +77 -0
- package/dist/modules/cache/InMemoryCache.js.map +1 -0
- package/dist/modules/cache/index.d.ts +3 -0
- package/dist/modules/cache/index.d.ts.map +1 -0
- package/dist/modules/cache/index.js +19 -0
- package/dist/modules/cache/index.js.map +1 -0
- package/dist/modules/cache/types.d.ts +52 -0
- package/dist/modules/cache/types.d.ts.map +1 -0
- package/dist/modules/cache/types.js +3 -0
- package/dist/modules/cache/types.js.map +1 -0
- package/dist/modules/errors/index.d.ts +2 -0
- package/dist/modules/errors/index.d.ts.map +1 -0
- package/dist/modules/errors/index.js +19 -0
- package/dist/modules/errors/index.js.map +1 -0
- package/dist/modules/errors/types.d.ts +112 -0
- package/dist/modules/errors/types.d.ts.map +1 -0
- package/dist/modules/errors/types.js +174 -0
- package/dist/modules/errors/types.js.map +1 -0
- package/dist/modules/payments/api.d.ts +63 -1
- package/dist/modules/payments/api.d.ts.map +1 -1
- package/dist/modules/payments/api.js +103 -1
- package/dist/modules/payments/api.js.map +1 -1
- package/dist/modules/payments/const.d.ts.map +1 -1
- package/dist/modules/payments/const.js +1 -0
- package/dist/modules/payments/const.js.map +1 -1
- package/dist/modules/payments/index.d.ts +8 -0
- package/dist/modules/payments/index.d.ts.map +1 -1
- package/dist/modules/payments/index.js +8 -0
- package/dist/modules/payments/index.js.map +1 -1
- package/dist/modules/payments/service.d.ts +42 -2
- package/dist/modules/payments/service.d.ts.map +1 -1
- package/dist/modules/payments/service.js +132 -3
- package/dist/modules/payments/service.js.map +1 -1
- package/dist/modules/payments/subscription-check-webhook.handler.d.ts +85 -0
- package/dist/modules/payments/subscription-check-webhook.handler.d.ts.map +1 -0
- package/dist/modules/payments/subscription-check-webhook.handler.js +155 -0
- package/dist/modules/payments/subscription-check-webhook.handler.js.map +1 -0
- package/dist/modules/payments/subscription-check-webhook.service.d.ts +59 -0
- package/dist/modules/payments/subscription-check-webhook.service.d.ts.map +1 -0
- package/dist/modules/payments/subscription-check-webhook.service.js +330 -0
- package/dist/modules/payments/subscription-check-webhook.service.js.map +1 -0
- package/dist/modules/payments/subscription-check-webhook.types.d.ts +25 -0
- package/dist/modules/payments/subscription-check-webhook.types.d.ts.map +1 -0
- package/dist/modules/payments/subscription-check-webhook.types.js +3 -0
- package/dist/modules/payments/subscription-check-webhook.types.js.map +1 -0
- package/dist/modules/payments/types.d.ts +69 -2
- package/dist/modules/payments/types.d.ts.map +1 -1
- package/dist/modules/payments/utils.d.ts +151 -5
- package/dist/modules/payments/utils.d.ts.map +1 -1
- package/dist/modules/payments/utils.js +253 -9
- package/dist/modules/payments/utils.js.map +1 -1
- package/dist/modules/payments/wayforpay.service.d.ts +39 -0
- package/dist/modules/payments/wayforpay.service.d.ts.map +1 -0
- package/dist/modules/payments/wayforpay.service.js +217 -0
- package/dist/modules/payments/wayforpay.service.js.map +1 -0
- package/dist/modules/payments/wayforpay.types.d.ts +115 -0
- package/dist/modules/payments/wayforpay.types.d.ts.map +1 -0
- package/dist/modules/payments/wayforpay.types.js +3 -0
- package/dist/modules/payments/wayforpay.types.js.map +1 -0
- package/dist/modules/payments/webhook.handler.d.ts +98 -0
- package/dist/modules/payments/webhook.handler.d.ts.map +1 -0
- package/dist/modules/payments/webhook.handler.js +153 -0
- package/dist/modules/payments/webhook.handler.js.map +1 -0
- package/dist/modules/payments/webhook.service.d.ts +99 -0
- package/dist/modules/payments/webhook.service.d.ts.map +1 -0
- package/dist/modules/payments/webhook.service.js +672 -0
- package/dist/modules/payments/webhook.service.js.map +1 -0
- package/dist/modules/payments/webhook.types.d.ts +35 -0
- package/dist/modules/payments/webhook.types.d.ts.map +1 -0
- package/dist/modules/payments/webhook.types.js +3 -0
- package/dist/modules/payments/webhook.types.js.map +1 -0
- package/dist/modules/subscription/change.service.d.ts +80 -0
- package/dist/modules/subscription/change.service.d.ts.map +1 -0
- package/dist/modules/subscription/change.service.js +226 -0
- package/dist/modules/subscription/change.service.js.map +1 -0
- package/dist/modules/subscription/index.d.ts +2 -0
- package/dist/modules/subscription/index.d.ts.map +1 -1
- package/dist/modules/subscription/index.js +2 -0
- package/dist/modules/subscription/index.js.map +1 -1
- package/dist/modules/subscription/service.d.ts +8 -1
- package/dist/modules/subscription/service.d.ts.map +1 -1
- package/dist/modules/subscription/service.js +58 -1
- package/dist/modules/subscription/service.js.map +1 -1
- package/dist/modules/subscription/status-check.handler.d.ts +117 -0
- package/dist/modules/subscription/status-check.handler.d.ts.map +1 -0
- package/dist/modules/subscription/status-check.handler.js +164 -0
- package/dist/modules/subscription/status-check.handler.js.map +1 -0
- package/dist/modules/subscription/types.d.ts +37 -1
- package/dist/modules/subscription/types.d.ts.map +1 -1
- package/dist/modules/subscriptionPlan/const.d.ts +5 -0
- package/dist/modules/subscriptionPlan/const.d.ts.map +1 -0
- package/dist/modules/subscriptionPlan/const.js +106 -0
- package/dist/modules/subscriptionPlan/const.js.map +1 -0
- package/dist/modules/subscriptionPlan/index.d.ts +5 -0
- package/dist/modules/subscriptionPlan/index.d.ts.map +1 -0
- package/dist/modules/subscriptionPlan/index.js +21 -0
- package/dist/modules/subscriptionPlan/index.js.map +1 -0
- package/dist/modules/subscriptionPlan/repository.d.ts +22 -0
- package/dist/modules/subscriptionPlan/repository.d.ts.map +1 -0
- package/dist/modules/subscriptionPlan/repository.js +95 -0
- package/dist/modules/subscriptionPlan/repository.js.map +1 -0
- package/dist/modules/subscriptionPlan/service.d.ts +21 -0
- package/dist/modules/subscriptionPlan/service.d.ts.map +1 -0
- package/dist/modules/subscriptionPlan/service.js +128 -0
- package/dist/modules/subscriptionPlan/service.js.map +1 -0
- package/dist/modules/subscriptionPlan/types.d.ts +40 -0
- package/dist/modules/subscriptionPlan/types.d.ts.map +1 -0
- package/dist/modules/subscriptionPlan/types.js +3 -0
- package/dist/modules/subscriptionPlan/types.js.map +1 -0
- package/dist/modules/token/const.d.ts +7 -0
- package/dist/modules/token/const.d.ts.map +1 -0
- package/dist/modules/token/const.js +66 -0
- package/dist/modules/token/const.js.map +1 -0
- package/dist/modules/token/index.d.ts +4 -0
- package/dist/modules/token/index.d.ts.map +1 -0
- package/dist/modules/token/index.js +20 -0
- package/dist/modules/token/index.js.map +1 -0
- package/dist/modules/token/service.d.ts +46 -0
- package/dist/modules/token/service.d.ts.map +1 -0
- package/dist/modules/token/service.js +249 -0
- package/dist/modules/token/service.js.map +1 -0
- package/dist/modules/token/types.d.ts +109 -0
- package/dist/modules/token/types.d.ts.map +1 -0
- package/dist/modules/token/types.js +3 -0
- package/dist/modules/token/types.js.map +1 -0
- package/dist/modules/tokenPack/const.d.ts +4 -0
- package/dist/modules/tokenPack/const.d.ts.map +1 -0
- package/dist/modules/tokenPack/const.js +10 -0
- package/dist/modules/tokenPack/const.js.map +1 -0
- package/dist/modules/tokenPack/index.d.ts +5 -0
- package/dist/modules/tokenPack/index.d.ts.map +1 -0
- package/dist/modules/tokenPack/index.js +21 -0
- package/dist/modules/tokenPack/index.js.map +1 -0
- package/dist/modules/tokenPack/repository.d.ts +32 -0
- package/dist/modules/tokenPack/repository.d.ts.map +1 -0
- package/dist/modules/tokenPack/repository.js +103 -0
- package/dist/modules/tokenPack/repository.js.map +1 -0
- package/dist/modules/tokenPack/service.d.ts +28 -0
- package/dist/modules/tokenPack/service.d.ts.map +1 -0
- package/dist/modules/tokenPack/service.js +106 -0
- package/dist/modules/tokenPack/service.js.map +1 -0
- package/dist/modules/tokenPack/types.d.ts +124 -0
- package/dist/modules/tokenPack/types.d.ts.map +1 -0
- package/dist/modules/tokenPack/types.js +3 -0
- package/dist/modules/tokenPack/types.js.map +1 -0
- package/package.json +9 -5
- package/src/config/ConfigurationManager.ts +159 -0
- package/src/config/defaults.ts +27 -0
- package/src/config/environment.ts +94 -0
- package/src/config/index.ts +22 -0
- package/src/config/types.ts +56 -0
- package/src/index.ts +29 -0
- package/src/modules/cache/InMemoryCache.ts +98 -0
- package/src/modules/cache/index.ts +2 -0
- package/src/modules/cache/types.ts +60 -0
- package/src/modules/cancellableAPI/utils.ts +60 -0
- package/src/modules/errors/index.ts +16 -0
- package/src/modules/errors/types.ts +201 -0
- package/src/modules/invoice/const.ts +7 -0
- package/src/modules/invoice/index.ts +4 -0
- package/src/modules/invoice/repository.ts +52 -0
- package/src/modules/invoice/service.ts +44 -0
- package/src/modules/invoice/types.ts +47 -0
- package/src/modules/logger/types.ts +8 -0
- package/src/modules/network/utils.ts +24 -0
- package/src/modules/payments/api.ts +289 -0
- package/src/modules/payments/const.ts +11 -0
- package/src/modules/payments/index.ts +14 -0
- package/src/modules/payments/repository.ts +125 -0
- package/src/modules/payments/service.test.ts +400 -0
- package/src/modules/payments/service.ts +365 -0
- package/src/modules/payments/subscription-check-webhook.handler.integration.test.ts +935 -0
- package/src/modules/payments/subscription-check-webhook.handler.ts +211 -0
- package/src/modules/payments/subscription-check-webhook.service.ts +398 -0
- package/src/modules/payments/subscription-check-webhook.types.ts +29 -0
- package/src/modules/payments/types.ts +193 -0
- package/src/modules/payments/utils.ts +428 -0
- package/src/modules/payments/wayforpay.service.test.ts +375 -0
- package/src/modules/payments/wayforpay.service.ts +284 -0
- package/src/modules/payments/wayforpay.types.ts +138 -0
- package/src/modules/payments/webhook.handler.integration.test.ts +975 -0
- package/src/modules/payments/webhook.handler.ts +219 -0
- package/src/modules/payments/webhook.service.ts +812 -0
- package/src/modules/payments/webhook.types.ts +38 -0
- package/src/modules/subscription/change.service.ts +317 -0
- package/src/modules/subscription/const.ts +9 -0
- package/src/modules/subscription/index.ts +5 -0
- package/src/modules/subscription/repository.ts +277 -0
- package/src/modules/subscription/service.test.ts +665 -0
- package/src/modules/subscription/service.ts +328 -0
- package/src/modules/subscription/status-check.handler.ts +254 -0
- package/src/modules/subscription/types.ts +267 -0
- package/src/modules/subscription/utils.ts +5 -0
- package/src/modules/subscriptionPlan/const.ts +106 -0
- package/src/modules/subscriptionPlan/index.ts +4 -0
- package/src/modules/subscriptionPlan/repository.ts +129 -0
- package/src/modules/subscriptionPlan/service.test.ts +401 -0
- package/src/modules/subscriptionPlan/service.ts +148 -0
- package/src/modules/subscriptionPlan/types.ts +67 -0
- package/src/modules/token/const.ts +64 -0
- package/src/modules/token/index.ts +3 -0
- package/src/modules/token/service.test.ts +499 -0
- package/src/modules/token/service.ts +297 -0
- package/src/modules/token/types.ts +124 -0
- package/src/modules/tokenPack/const.ts +9 -0
- package/src/modules/tokenPack/index.ts +4 -0
- package/src/modules/tokenPack/repository.ts +144 -0
- package/src/modules/tokenPack/service.ts +119 -0
- package/src/modules/tokenPack/types.ts +131 -0
- package/src/modules/user/index.ts +3 -0
- package/src/modules/user/types.ts +143 -0
- package/src/modules/user/userRepository.ts +64 -0
- package/src/modules/user/userService.ts +68 -0
- package/src/types/extend-express.d.ts +16 -0
- package/src/types/function.ts +5 -0
- package/src/types/utilities.ts +22 -0
- package/src/utils.ts +53 -0
- package/tsconfig.json +29 -0
- package/dist/modules/subscription/subscriptionPlan.d.ts +0 -4
- package/dist/modules/subscription/subscriptionPlan.d.ts.map +0 -1
- package/dist/modules/subscription/subscriptionPlan.js +0 -67
- package/dist/modules/subscription/subscriptionPlan.js.map +0 -1
|
@@ -5,6 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createPaymentAPI = createPaymentAPI;
|
|
7
7
|
exports.editRegularPurchaseAPI = editRegularPurchaseAPI;
|
|
8
|
+
exports.createTokenPackPaymentAPI = createTokenPackPaymentAPI;
|
|
9
|
+
exports.createUpgradePaymentAPI = createUpgradePaymentAPI;
|
|
8
10
|
const moment_1 = __importDefault(require("moment"));
|
|
9
11
|
const wayforpay_api_1 = require("@misterhomer1992/wayforpay-api");
|
|
10
12
|
const utils_1 = require("../../utils");
|
|
@@ -28,7 +30,7 @@ const utils_2 = require("./utils");
|
|
|
28
30
|
async function createPaymentAPI({ userId, platform, productName, productPrice, planId, dateNext, currency, regularCount = 3, regularMode = 'daily', language = 'UA', }) {
|
|
29
31
|
const orderDate = Date.now();
|
|
30
32
|
const formattedUtc = moment_1.default.utc().toISOString();
|
|
31
|
-
const orderReference = (0, utils_2.
|
|
33
|
+
const orderReference = (0, utils_2.createSubscriptionOrderReference)({
|
|
32
34
|
userId,
|
|
33
35
|
platform,
|
|
34
36
|
planId,
|
|
@@ -90,4 +92,104 @@ async function editRegularPurchaseAPI({ orderReference, amount, dateBegin, dateE
|
|
|
90
92
|
}
|
|
91
93
|
return response;
|
|
92
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Creates a one-time payment API URL for token pack purchases via Wayforpay.
|
|
97
|
+
* Generates a unique order reference using the v2 token pack format.
|
|
98
|
+
*
|
|
99
|
+
* @param params - Payment creation parameters
|
|
100
|
+
* @param params.userId - The unique identifier of the user making the payment
|
|
101
|
+
* @param params.platform - The application namespace (e.g., 'app' or 'telegram')
|
|
102
|
+
* @param params.productName - The name of the token pack being purchased
|
|
103
|
+
* @param params.productPrice - The price of the token pack
|
|
104
|
+
* @param params.packId - The identifier of the token pack
|
|
105
|
+
* @param params.currency - The currency code (e.g., 'UAH', 'USD')
|
|
106
|
+
* @param params.language - The language for the payment page (defaults to 'UA')
|
|
107
|
+
* @param params.returnUrl - Optional URL to redirect to after payment
|
|
108
|
+
* @returns Promise resolving to an object containing the payment URL and order reference, or null
|
|
109
|
+
* @throws Error with code 'CREATE_TOKEN_PACK_PAYMENT_API' if the API response is invalid or missing URL
|
|
110
|
+
*/
|
|
111
|
+
async function createTokenPackPaymentAPI({ userId, platform, productName, productPrice, packId, currency, language = 'UA', returnUrl, }) {
|
|
112
|
+
const orderDate = Date.now();
|
|
113
|
+
const formattedUtc = moment_1.default.utc().toISOString();
|
|
114
|
+
const orderReference = (0, utils_2.createTokenPackOrderReference)({
|
|
115
|
+
userId,
|
|
116
|
+
platform,
|
|
117
|
+
packId,
|
|
118
|
+
utcDate: formattedUtc,
|
|
119
|
+
});
|
|
120
|
+
const response = (await (0, wayforpay_api_1.generatePurchase)({
|
|
121
|
+
merchantAccount: process.env.WAYFORPAY_MERCHANT_ACCOUNT,
|
|
122
|
+
merchantDomainName: process.env.WAYFORPAY_MERCHANT_DOMAIN,
|
|
123
|
+
merchantSecretKey: process.env.WAYFORPAY_MERCHANT_SECRET_KEY,
|
|
124
|
+
orderDate,
|
|
125
|
+
orderReference,
|
|
126
|
+
productName: [productName],
|
|
127
|
+
productPrice: [productPrice],
|
|
128
|
+
currency: currency,
|
|
129
|
+
language: language,
|
|
130
|
+
serviceUrl: process.env.WAYFORPAY_SERVICE_URL,
|
|
131
|
+
returnUrl,
|
|
132
|
+
}));
|
|
133
|
+
if (!(0, utils_1.isObject)(response) || (0, utils_1.isBadOrEmptyString)(response.url)) {
|
|
134
|
+
throw {
|
|
135
|
+
code: 'CREATE_TOKEN_PACK_PAYMENT_API',
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
url: response.url,
|
|
140
|
+
orderReference,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Creates a recurring payment API URL for subscription upgrades via Wayforpay.
|
|
145
|
+
* Generates a unique order reference using the upgrade format.
|
|
146
|
+
*
|
|
147
|
+
* @param params - Payment creation parameters
|
|
148
|
+
* @param params.userId - The unique identifier of the user making the payment
|
|
149
|
+
* @param params.platform - The application namespace (e.g., 'app' or 'telegram')
|
|
150
|
+
* @param params.currentPlanId - The identifier of the current subscription plan
|
|
151
|
+
* @param params.newPlanId - The identifier of the new subscription plan to upgrade to
|
|
152
|
+
* @param params.productName - The name of the upgraded plan being purchased
|
|
153
|
+
* @param params.productPrice - The price difference (upgrade cost)
|
|
154
|
+
* @param params.currency - The currency code (e.g., 'UAH', 'USD')
|
|
155
|
+
* @param params.regularMode - The frequency mode for regular payments
|
|
156
|
+
* @param params.regularCount - Number of regular payments (defaults to 3)
|
|
157
|
+
* @param params.language - The language for the payment page (defaults to 'UA')
|
|
158
|
+
* @returns Promise resolving to an object containing the payment URL and order reference, or null
|
|
159
|
+
* @throws Error with code 'CREATE_UPGRADE_PAYMENT_API' if the API response is invalid or missing URL
|
|
160
|
+
*/
|
|
161
|
+
async function createUpgradePaymentAPI({ userId, platform, currentPlanId, newPlanId, productName, productPrice, currency, regularMode = 'monthly', regularCount = 3, language = 'UA', }) {
|
|
162
|
+
const orderDate = Date.now();
|
|
163
|
+
const formattedUtc = moment_1.default.utc().toISOString();
|
|
164
|
+
const orderReference = (0, utils_2.createUpgradeOrderReference)({
|
|
165
|
+
userId,
|
|
166
|
+
platform,
|
|
167
|
+
currentPlanId,
|
|
168
|
+
newPlanId,
|
|
169
|
+
utcDate: formattedUtc,
|
|
170
|
+
});
|
|
171
|
+
const response = (await (0, wayforpay_api_1.generateRegularPurchase)({
|
|
172
|
+
merchantAccount: process.env.WAYFORPAY_MERCHANT_ACCOUNT,
|
|
173
|
+
merchantDomainName: process.env.WAYFORPAY_MERCHANT_DOMAIN,
|
|
174
|
+
merchantSecretKey: process.env.WAYFORPAY_MERCHANT_SECRET_KEY,
|
|
175
|
+
orderDate,
|
|
176
|
+
orderReference,
|
|
177
|
+
productName: [productName],
|
|
178
|
+
productPrice: [productPrice],
|
|
179
|
+
currency: currency,
|
|
180
|
+
language: language,
|
|
181
|
+
serviceUrl: process.env.WAYFORPAY_SERVICE_URL,
|
|
182
|
+
regularMode,
|
|
183
|
+
regularCount,
|
|
184
|
+
}));
|
|
185
|
+
if (!(0, utils_1.isObject)(response) || (0, utils_1.isBadOrEmptyString)(response.url)) {
|
|
186
|
+
throw {
|
|
187
|
+
code: 'CREATE_UPGRADE_PAYMENT_API',
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
url: response.url,
|
|
192
|
+
orderReference,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
93
195
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/modules/payments/api.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/modules/payments/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../src/modules/payments/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,QAAA,MAAM,sBAAsB,EAAE,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../src/modules/payments/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,QAAA,MAAM,sBAAsB,EAAE,OAAO,CAAC,aAAa,CAMlD,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/modules/payments/const.ts"],"names":[],"mappings":";;;AAEA,MAAM,sBAAsB,GAA2B;IACnD,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/modules/payments/const.ts"],"names":[],"mappings":";;;AAEA,MAAM,sBAAsB,GAA2B;IACnD,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,cAAc;CAC9B,CAAC;AAEO,wDAAsB"}
|
|
@@ -4,4 +4,12 @@ export * from './types';
|
|
|
4
4
|
export * from './const';
|
|
5
5
|
export * from './api';
|
|
6
6
|
export * from './utils';
|
|
7
|
+
export * from './wayforpay.service';
|
|
8
|
+
export * from './wayforpay.types';
|
|
9
|
+
export * from './webhook.service';
|
|
10
|
+
export * from './webhook.types';
|
|
11
|
+
export * from './webhook.handler';
|
|
12
|
+
export * from './subscription-check-webhook.service';
|
|
13
|
+
export * from './subscription-check-webhook.types';
|
|
14
|
+
export * from './subscription-check-webhook.handler';
|
|
7
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/payments/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/payments/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC"}
|
|
@@ -20,4 +20,12 @@ __exportStar(require("./types"), exports);
|
|
|
20
20
|
__exportStar(require("./const"), exports);
|
|
21
21
|
__exportStar(require("./api"), exports);
|
|
22
22
|
__exportStar(require("./utils"), exports);
|
|
23
|
+
__exportStar(require("./wayforpay.service"), exports);
|
|
24
|
+
__exportStar(require("./wayforpay.types"), exports);
|
|
25
|
+
__exportStar(require("./webhook.service"), exports);
|
|
26
|
+
__exportStar(require("./webhook.types"), exports);
|
|
27
|
+
__exportStar(require("./webhook.handler"), exports);
|
|
28
|
+
__exportStar(require("./subscription-check-webhook.service"), exports);
|
|
29
|
+
__exportStar(require("./subscription-check-webhook.types"), exports);
|
|
30
|
+
__exportStar(require("./subscription-check-webhook.handler"), exports);
|
|
23
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/payments/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,wCAAsB;AACtB,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/payments/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,wCAAsB;AACtB,0CAAwB;AACxB,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,uEAAqD;AACrD,qEAAmD;AACnD,uEAAqD"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Logger } from '../logger/types';
|
|
2
|
-
import { PaymentEntity, IPaymentRepository, IPaymentService } from './types';
|
|
2
|
+
import { PaymentEntity, IPaymentRepository, IPaymentService, SignatureValidationResult } from './types';
|
|
3
|
+
import type { IWayForPayService } from './wayforpay.types';
|
|
3
4
|
export declare class PaymentService implements IPaymentService {
|
|
4
5
|
private readonly logger;
|
|
5
6
|
private readonly repository;
|
|
6
|
-
|
|
7
|
+
private readonly wayForPayService;
|
|
8
|
+
constructor({ logger, repository, wayForPayService, }: {
|
|
7
9
|
logger: Logger;
|
|
8
10
|
repository?: IPaymentRepository;
|
|
11
|
+
wayForPayService?: IWayForPayService;
|
|
9
12
|
});
|
|
10
13
|
getByOrderReference(orderReference: string): Promise<PaymentEntity | null>;
|
|
11
14
|
getByUser(params: {
|
|
@@ -14,6 +17,10 @@ export declare class PaymentService implements IPaymentService {
|
|
|
14
17
|
status?: PaymentEntity['status'];
|
|
15
18
|
}): Promise<PaymentEntity[]>;
|
|
16
19
|
create(paymentData: Omit<PaymentEntity, 'id'>): Promise<PaymentEntity>;
|
|
20
|
+
updateStatus({ id, status }: {
|
|
21
|
+
id: string;
|
|
22
|
+
status: PaymentEntity['status'];
|
|
23
|
+
}): Promise<void>;
|
|
17
24
|
changeStatus({ id, status }: {
|
|
18
25
|
id: string;
|
|
19
26
|
status: PaymentEntity['status'];
|
|
@@ -32,5 +39,38 @@ export declare class PaymentService implements IPaymentService {
|
|
|
32
39
|
regularMode?: 'daily' | 'weekly' | 'monthly' | 'yearly';
|
|
33
40
|
language?: string;
|
|
34
41
|
}): Promise<PaymentEntity>;
|
|
42
|
+
createTokenPackPaymentIntent(params: {
|
|
43
|
+
userId: string;
|
|
44
|
+
platform: string;
|
|
45
|
+
packId: string;
|
|
46
|
+
productName: string;
|
|
47
|
+
productPrice: number;
|
|
48
|
+
currency: 'UAH' | 'USD';
|
|
49
|
+
language?: string;
|
|
50
|
+
returnUrl?: string;
|
|
51
|
+
}): Promise<PaymentEntity>;
|
|
52
|
+
validateSignature(callbackData: {
|
|
53
|
+
merchantAccount: string;
|
|
54
|
+
orderReference: string;
|
|
55
|
+
amount: number;
|
|
56
|
+
currency: string;
|
|
57
|
+
authCode: string;
|
|
58
|
+
cardPan: string;
|
|
59
|
+
transactionStatus: string;
|
|
60
|
+
reasonCode: string | number;
|
|
61
|
+
merchantSignature: string;
|
|
62
|
+
}): SignatureValidationResult;
|
|
63
|
+
createUpgradePaymentIntent(params: {
|
|
64
|
+
userId: string;
|
|
65
|
+
platform: string;
|
|
66
|
+
currentPlanId: string;
|
|
67
|
+
newPlanId: string;
|
|
68
|
+
productName: string;
|
|
69
|
+
upgradeCost: number;
|
|
70
|
+
currency: 'UAH' | 'USD';
|
|
71
|
+
regularMode?: 'daily' | 'monthly' | 'yearly';
|
|
72
|
+
regularCount?: number;
|
|
73
|
+
language?: string;
|
|
74
|
+
}): Promise<PaymentEntity>;
|
|
35
75
|
}
|
|
36
76
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/modules/payments/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/modules/payments/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,12 @@ exports.PaymentService = void 0;
|
|
|
7
7
|
const moment_1 = __importDefault(require("moment"));
|
|
8
8
|
const repository_1 = require("./repository");
|
|
9
9
|
const api_1 = require("./api");
|
|
10
|
+
const wayforpay_service_1 = require("./wayforpay.service");
|
|
10
11
|
class PaymentService {
|
|
11
|
-
constructor({ logger, repository }) {
|
|
12
|
+
constructor({ logger, repository, wayForPayService, }) {
|
|
12
13
|
this.logger = logger;
|
|
13
14
|
this.repository = repository || new repository_1.PaymentRepository();
|
|
15
|
+
this.wayForPayService = wayForPayService || new wayforpay_service_1.WayForPayService({ logger });
|
|
14
16
|
}
|
|
15
17
|
async getByOrderReference(orderReference) {
|
|
16
18
|
try {
|
|
@@ -60,7 +62,7 @@ class PaymentService {
|
|
|
60
62
|
throw error;
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
|
-
async
|
|
65
|
+
async updateStatus({ id, status }) {
|
|
64
66
|
try {
|
|
65
67
|
await this.repository.updateFields({
|
|
66
68
|
id,
|
|
@@ -69,7 +71,7 @@ class PaymentService {
|
|
|
69
71
|
}
|
|
70
72
|
catch (error) {
|
|
71
73
|
this.logger.error({
|
|
72
|
-
message: 'Error in payment service
|
|
74
|
+
message: 'Error in payment service updateStatus',
|
|
73
75
|
payload: {
|
|
74
76
|
id,
|
|
75
77
|
status,
|
|
@@ -79,6 +81,9 @@ class PaymentService {
|
|
|
79
81
|
throw error;
|
|
80
82
|
}
|
|
81
83
|
}
|
|
84
|
+
async changeStatus({ id, status }) {
|
|
85
|
+
return this.updateStatus({ id, status });
|
|
86
|
+
}
|
|
82
87
|
async getExpiredPendingPayments(params = {}) {
|
|
83
88
|
try {
|
|
84
89
|
return await this.repository.getExpiredPendingPayments(params);
|
|
@@ -120,6 +125,7 @@ class PaymentService {
|
|
|
120
125
|
status: 'pending',
|
|
121
126
|
paymentLink: paymentResponse.url,
|
|
122
127
|
planId,
|
|
128
|
+
paymentType: 'subscription',
|
|
123
129
|
amount: productPrice,
|
|
124
130
|
currency,
|
|
125
131
|
createdAt: moment_1.default.utc().toISOString(),
|
|
@@ -144,6 +150,129 @@ class PaymentService {
|
|
|
144
150
|
throw error;
|
|
145
151
|
}
|
|
146
152
|
}
|
|
153
|
+
async createTokenPackPaymentIntent(params) {
|
|
154
|
+
const { userId, platform, packId, productName, productPrice, currency, language, returnUrl } = params;
|
|
155
|
+
try {
|
|
156
|
+
// Step 1: Create payment URL from Wayforpay API for token pack
|
|
157
|
+
const paymentResponse = await (0, api_1.createTokenPackPaymentAPI)({
|
|
158
|
+
userId,
|
|
159
|
+
platform,
|
|
160
|
+
productName,
|
|
161
|
+
productPrice,
|
|
162
|
+
packId,
|
|
163
|
+
currency,
|
|
164
|
+
language,
|
|
165
|
+
returnUrl,
|
|
166
|
+
});
|
|
167
|
+
if (!paymentResponse?.url || !paymentResponse?.orderReference) {
|
|
168
|
+
throw new Error('Failed to get payment URL or order reference from Wayforpay for token pack');
|
|
169
|
+
}
|
|
170
|
+
// Step 2: Create payment record in database
|
|
171
|
+
const paymentEntity = await this.repository.create({
|
|
172
|
+
orderReference: paymentResponse.orderReference,
|
|
173
|
+
userId,
|
|
174
|
+
status: 'pending',
|
|
175
|
+
paymentLink: paymentResponse.url,
|
|
176
|
+
planId: packId,
|
|
177
|
+
paymentType: 'token_pack',
|
|
178
|
+
amount: productPrice,
|
|
179
|
+
currency,
|
|
180
|
+
createdAt: moment_1.default.utc().toISOString(),
|
|
181
|
+
platform: platform,
|
|
182
|
+
provider: 'wayforpay',
|
|
183
|
+
});
|
|
184
|
+
return paymentEntity;
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
this.logger.error({
|
|
188
|
+
message: 'Error in payment service createTokenPackPaymentIntent',
|
|
189
|
+
payload: {
|
|
190
|
+
userId,
|
|
191
|
+
platform,
|
|
192
|
+
packId,
|
|
193
|
+
productName,
|
|
194
|
+
productPrice,
|
|
195
|
+
currency,
|
|
196
|
+
error: JSON.stringify(error),
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
validateSignature(callbackData) {
|
|
203
|
+
try {
|
|
204
|
+
const result = this.wayForPayService.verifyCallbackSignature(callbackData);
|
|
205
|
+
return {
|
|
206
|
+
isValid: result.isValid,
|
|
207
|
+
error: result.error,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
this.logger.error({
|
|
212
|
+
message: 'Error in payment service validateSignature',
|
|
213
|
+
payload: {
|
|
214
|
+
orderReference: callbackData.orderReference,
|
|
215
|
+
error: JSON.stringify(error),
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
return {
|
|
219
|
+
isValid: false,
|
|
220
|
+
error: 'Error validating signature',
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
async createUpgradePaymentIntent(params) {
|
|
225
|
+
const { userId, platform, currentPlanId, newPlanId, productName, upgradeCost, currency, regularMode, regularCount, language, } = params;
|
|
226
|
+
try {
|
|
227
|
+
// Step 1: Create payment URL from Wayforpay API for upgrade
|
|
228
|
+
const paymentResponse = await (0, api_1.createUpgradePaymentAPI)({
|
|
229
|
+
userId,
|
|
230
|
+
platform,
|
|
231
|
+
currentPlanId,
|
|
232
|
+
newPlanId,
|
|
233
|
+
productName,
|
|
234
|
+
productPrice: upgradeCost,
|
|
235
|
+
currency,
|
|
236
|
+
regularMode,
|
|
237
|
+
regularCount,
|
|
238
|
+
language,
|
|
239
|
+
});
|
|
240
|
+
if (!paymentResponse?.url || !paymentResponse?.orderReference) {
|
|
241
|
+
throw new Error('Failed to get payment URL or order reference from Wayforpay for upgrade');
|
|
242
|
+
}
|
|
243
|
+
// Step 2: Create payment record in database
|
|
244
|
+
const paymentEntity = await this.repository.create({
|
|
245
|
+
orderReference: paymentResponse.orderReference,
|
|
246
|
+
userId,
|
|
247
|
+
status: 'pending',
|
|
248
|
+
paymentLink: paymentResponse.url,
|
|
249
|
+
planId: newPlanId,
|
|
250
|
+
paymentType: 'subscription_upgrade',
|
|
251
|
+
amount: upgradeCost,
|
|
252
|
+
currency,
|
|
253
|
+
createdAt: moment_1.default.utc().toISOString(),
|
|
254
|
+
platform: platform,
|
|
255
|
+
provider: 'wayforpay',
|
|
256
|
+
});
|
|
257
|
+
return paymentEntity;
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
this.logger.error({
|
|
261
|
+
message: 'Error in payment service createUpgradePaymentIntent',
|
|
262
|
+
payload: {
|
|
263
|
+
userId,
|
|
264
|
+
platform,
|
|
265
|
+
currentPlanId,
|
|
266
|
+
newPlanId,
|
|
267
|
+
productName,
|
|
268
|
+
upgradeCost,
|
|
269
|
+
currency,
|
|
270
|
+
error: JSON.stringify(error),
|
|
271
|
+
},
|
|
272
|
+
});
|
|
273
|
+
throw error;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
147
276
|
}
|
|
148
277
|
exports.PaymentService = PaymentService;
|
|
149
278
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/payments/service.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,6CAAiD;AAEjD,+
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/payments/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Logger } from '../logger/types';
|
|
2
|
+
import type { WayForPayCallbackData } from './wayforpay.types';
|
|
3
|
+
import type { WebhookRequest, WebhookResponse } from './webhook.handler';
|
|
4
|
+
import type { ISubscriptionCheckWebhookService, SubscriptionCheckWebhookResult } from './subscription-check-webhook.types';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration options for the subscription check webhook handler.
|
|
7
|
+
*/
|
|
8
|
+
interface SubscriptionCheckWebhookHandlerConfig {
|
|
9
|
+
logger: Logger;
|
|
10
|
+
webhookService?: ISubscriptionCheckWebhookService;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* SubscriptionCheckWebhookHandler provides HTTP request handling for WayForPay
|
|
14
|
+
* subscription status check callbacks. It validates incoming requests and delegates
|
|
15
|
+
* processing to the SubscriptionCheckWebhookService.
|
|
16
|
+
*
|
|
17
|
+
* Usage with Express:
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const handler = new SubscriptionCheckWebhookHandler({ logger });
|
|
20
|
+
* app.post('/webhook/subscription-check', (req, res) => handler.handleRequest(req, res));
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Usage with Cloud Functions:
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const handler = new SubscriptionCheckWebhookHandler({ logger });
|
|
26
|
+
* export const subscriptionCheckWebhook = (req, res) => handler.handleRequest(req, res);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class SubscriptionCheckWebhookHandler {
|
|
30
|
+
private readonly logger;
|
|
31
|
+
private readonly webhookService;
|
|
32
|
+
constructor(config: SubscriptionCheckWebhookHandlerConfig);
|
|
33
|
+
/**
|
|
34
|
+
* Handles an incoming HTTP request from WayForPay for subscription checks.
|
|
35
|
+
* Validates the request body, processes the subscription check callback,
|
|
36
|
+
* and returns the appropriate response.
|
|
37
|
+
*
|
|
38
|
+
* @param req - The HTTP request object
|
|
39
|
+
* @param res - The HTTP response object
|
|
40
|
+
*/
|
|
41
|
+
handleRequest(req: WebhookRequest, res: WebhookResponse): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Processes callback data directly without HTTP request parsing.
|
|
44
|
+
* Useful for testing or when data is already parsed.
|
|
45
|
+
*
|
|
46
|
+
* @param callbackData - The parsed callback data from WayForPay
|
|
47
|
+
* @returns Processing result with response to send back to WayForPay
|
|
48
|
+
*/
|
|
49
|
+
processCallback(callbackData: WayForPayCallbackData): Promise<SubscriptionCheckWebhookResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Parses and validates the webhook request body.
|
|
52
|
+
*/
|
|
53
|
+
private parseRequestBody;
|
|
54
|
+
/**
|
|
55
|
+
* Sends the response back to WayForPay.
|
|
56
|
+
* WayForPay expects a 200 status with a signed response body.
|
|
57
|
+
*/
|
|
58
|
+
private sendResponse;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Creates a subscription check webhook handler function for use with serverless platforms.
|
|
62
|
+
* Returns a function that can be directly used as a Cloud Function or Lambda handler.
|
|
63
|
+
*
|
|
64
|
+
* @param config - Configuration options for the webhook handler
|
|
65
|
+
* @returns An async function that handles webhook requests
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* // Firebase Cloud Functions
|
|
70
|
+
* import * as functions from 'firebase-functions';
|
|
71
|
+
* import { createSubscriptionCheckWebhookHandler } from 'miit-bot-payment';
|
|
72
|
+
*
|
|
73
|
+
* const logger = { info: console.log, warning: console.warn, error: console.error };
|
|
74
|
+
* export const subscriptionCheckWebhook = functions.https.onRequest(
|
|
75
|
+
* createSubscriptionCheckWebhookHandler({ logger })
|
|
76
|
+
* );
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function createSubscriptionCheckWebhookHandler(config: SubscriptionCheckWebhookHandlerConfig): (req: WebhookRequest, res: WebhookResponse) => Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Type export for the webhook handler function signature.
|
|
82
|
+
*/
|
|
83
|
+
export type SubscriptionCheckWebhookHandlerFunction = (req: WebhookRequest, res: WebhookResponse) => Promise<void>;
|
|
84
|
+
export type { SubscriptionCheckWebhookHandlerConfig };
|
|
85
|
+
//# sourceMappingURL=subscription-check-webhook.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription-check-webhook.handler.d.ts","sourceRoot":"","sources":["../../../src/modules/payments/subscription-check-webhook.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EACR,gCAAgC,EAChC,8BAA8B,EACjC,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,UAAU,qCAAqC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,gCAAgC,CAAC;CACrD;AAWD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,+BAA+B;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;gBAEtD,MAAM,EAAE,qCAAqC;IASzD;;;;;;;OAOG;IACU,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BpF;;;;;;OAMG;IACU,eAAe,CACxB,YAAY,EAAE,qBAAqB,GACpC,OAAO,CAAC,8BAA8B,CAAC;IAI1C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;;OAGG;IACH,OAAO,CAAC,YAAY;CAcvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qCAAqC,CACjD,MAAM,EAAE,qCAAqC,GAC9C,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED;;GAEG;AACH,MAAM,MAAM,uCAAuC,GAAG,CAClD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,eAAe,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,YAAY,EAAE,qCAAqC,EAAE,CAAC"}
|