@webbers/pay-payments-medusa 1.0.14 → 2.0.0
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/.medusa/server/package.json +36 -32
- package/.medusa/server/src/admin/index.js +1 -1
- package/.medusa/server/src/admin/index.mjs +1 -1
- package/.medusa/server/src/api/store/carts/[id]/duplicate/route.js +17 -0
- package/.medusa/server/src/providers/pay/core/pay-base.js +22 -22
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.js +21 -0
- package/.medusa/server/src/providers/pay/types/index.js +2 -1
- package/.medusa/server/src/workflows/cart/duplicate-cart.js +138 -0
- package/.medusa/server/src/workflows/cart/steps/validate-cart-completed.js +12 -0
- package/README.md +182 -59
- package/package.json +36 -32
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webbers/pay-payments-medusa",
|
|
3
3
|
"displayName": "Medusa v2 Pay. Plugin",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.0",
|
|
5
5
|
"description": "The Pay.nl payment provider plugin for Medusa v2",
|
|
6
6
|
"author": "Webbers B.V. <development@webbers.com>",
|
|
7
7
|
"license": "MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/webbersagency/pay-payments-medusa"
|
|
11
|
+
},
|
|
8
12
|
"files": [
|
|
9
13
|
".medusa/server"
|
|
10
14
|
],
|
|
@@ -23,11 +27,11 @@
|
|
|
23
27
|
"./constants.js": "./constants.js"
|
|
24
28
|
},
|
|
25
29
|
"keywords": [
|
|
26
|
-
"medusa",
|
|
27
|
-
"plugin",
|
|
28
|
-
"medusa-plugin-
|
|
29
|
-
"
|
|
30
|
-
"medusa-
|
|
30
|
+
"medusa-v2",
|
|
31
|
+
"medusa-plugin-integration",
|
|
32
|
+
"medusa-plugin-payment",
|
|
33
|
+
"pay.",
|
|
34
|
+
"medusa-webbers"
|
|
31
35
|
],
|
|
32
36
|
"scripts": {
|
|
33
37
|
"build": "medusa plugin:build",
|
|
@@ -35,43 +39,43 @@
|
|
|
35
39
|
"prepublishOnly": "medusa plugin:build"
|
|
36
40
|
},
|
|
37
41
|
"devDependencies": {
|
|
38
|
-
"@medusajs/admin-sdk": "^2.
|
|
39
|
-
"@medusajs/cli": "^2.
|
|
40
|
-
"@medusajs/framework": "^2.
|
|
41
|
-
"@medusajs/icons": "^2.
|
|
42
|
-
"@medusajs/medusa": "^2.
|
|
43
|
-
"@medusajs/test-utils": "^2.
|
|
44
|
-
"@medusajs/types": "^2.
|
|
45
|
-
"@medusajs/ui": "^4.0.
|
|
46
|
-
"@mikro-orm/cli": "
|
|
47
|
-
"@mikro-orm/core": "
|
|
48
|
-
"@mikro-orm/knex": "
|
|
49
|
-
"@mikro-orm/migrations": "
|
|
50
|
-
"@mikro-orm/postgresql": "
|
|
42
|
+
"@medusajs/admin-sdk": "^2.10.1",
|
|
43
|
+
"@medusajs/cli": "^2.10.1",
|
|
44
|
+
"@medusajs/framework": "^2.10.1",
|
|
45
|
+
"@medusajs/icons": "^2.10.1",
|
|
46
|
+
"@medusajs/medusa": "^2.10.1",
|
|
47
|
+
"@medusajs/test-utils": "^2.10.1",
|
|
48
|
+
"@medusajs/types": "^2.10.1",
|
|
49
|
+
"@medusajs/ui": "^4.0.21",
|
|
50
|
+
"@mikro-orm/cli": "6.4.3",
|
|
51
|
+
"@mikro-orm/core": "6.4.3",
|
|
52
|
+
"@mikro-orm/knex": "6.4.3",
|
|
53
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
54
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
51
55
|
"@swc/core": "1.5.7",
|
|
52
|
-
"@types/node": "^20.19.
|
|
53
|
-
"@types/react": "^18.3.
|
|
56
|
+
"@types/node": "^20.19.11",
|
|
57
|
+
"@types/react": "^18.3.24",
|
|
54
58
|
"@types/react-dom": "^18.3.7",
|
|
55
59
|
"awilix": "^8.0.1",
|
|
56
|
-
"pg": "^8.16.
|
|
57
|
-
"prettier": "^3.6.
|
|
60
|
+
"pg": "^8.16.3",
|
|
61
|
+
"prettier": "^3.6.2",
|
|
58
62
|
"prop-types": "^15.8.1",
|
|
59
63
|
"react": "^18.2.0",
|
|
60
64
|
"react-dom": "^18.2.0",
|
|
61
65
|
"ts-node": "^10.9.2",
|
|
62
|
-
"typescript": "^5.
|
|
66
|
+
"typescript": "^5.9.2",
|
|
63
67
|
"vite": "^5.4.19",
|
|
64
68
|
"yalc": "^1.0.0-pre.53"
|
|
65
69
|
},
|
|
66
70
|
"peerDependencies": {
|
|
67
|
-
"@medusajs/admin-sdk": "^2.
|
|
68
|
-
"@medusajs/cli": "^2.
|
|
69
|
-
"@medusajs/core-flows": "^2.
|
|
70
|
-
"@medusajs/framework": "^2.
|
|
71
|
-
"@medusajs/icons": "^2.
|
|
72
|
-
"@medusajs/js-sdk": "^2.
|
|
73
|
-
"@medusajs/medusa": "^2.
|
|
74
|
-
"@medusajs/test-utils": "^2.
|
|
71
|
+
"@medusajs/admin-sdk": "^2.10.1",
|
|
72
|
+
"@medusajs/cli": "^2.10.1",
|
|
73
|
+
"@medusajs/core-flows": "^2.10.1",
|
|
74
|
+
"@medusajs/framework": "^2.10.1",
|
|
75
|
+
"@medusajs/icons": "^2.10.1",
|
|
76
|
+
"@medusajs/js-sdk": "^2.10.1",
|
|
77
|
+
"@medusajs/medusa": "^2.10.1",
|
|
78
|
+
"@medusajs/test-utils": "^2.10.1",
|
|
75
79
|
"@medusajs/ui": "^4.0.3",
|
|
76
80
|
"@mikro-orm/cli": "6.4.3",
|
|
77
81
|
"@mikro-orm/core": "6.4.3",
|
|
@@ -57,7 +57,7 @@ const sdk = new Medusa__default.default({
|
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
const displayName = "Medusa v2 Pay. Plugin";
|
|
60
|
-
const version = "
|
|
60
|
+
const version = "2.0.0";
|
|
61
61
|
function getSortedPaymentMethods(data) {
|
|
62
62
|
const { checkoutOptions, checkoutSequence } = data;
|
|
63
63
|
const { primary } = checkoutSequence.default;
|
|
@@ -54,7 +54,7 @@ const sdk = new Medusa({
|
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
const displayName = "Medusa v2 Pay. Plugin";
|
|
57
|
-
const version = "
|
|
57
|
+
const version = "2.0.0";
|
|
58
58
|
function getSortedPaymentMethods(data) {
|
|
59
59
|
const { checkoutOptions, checkoutSequence } = data;
|
|
60
60
|
const { primary } = checkoutSequence.default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const duplicate_cart_1 = require("../../../../../workflows/cart/duplicate-cart");
|
|
6
|
+
const GET = async (req, res) => {
|
|
7
|
+
const we = req.scope.resolve(utils_1.Modules.WORKFLOW_ENGINE);
|
|
8
|
+
const response = await we.run(duplicate_cart_1.duplicateCartWorkflowId, {
|
|
9
|
+
input: {
|
|
10
|
+
id: req.params.id,
|
|
11
|
+
},
|
|
12
|
+
transactionId: "cart-duplicate-" + req.params.id,
|
|
13
|
+
});
|
|
14
|
+
res.status(200).json({ cart: response.result });
|
|
15
|
+
};
|
|
16
|
+
exports.GET = GET;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhcnRzL1tpZF0vZHVwbGljYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFpRDtBQUNqRCxpRkFBb0Y7QUFFN0UsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUVyRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsd0NBQXVCLEVBQUU7UUFDckQsS0FBSyxFQUFFO1lBQ0wsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtTQUNsQjtRQUNELGFBQWEsRUFBRSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7S0FDakQsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUE7QUFDL0MsQ0FBQyxDQUFBO0FBWFksUUFBQSxHQUFHLE9BV2YifQ==
|
|
@@ -62,8 +62,6 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
62
62
|
}
|
|
63
63
|
createPayOrderPayload(order, paymentSession) {
|
|
64
64
|
const session_id = paymentSession.data?.session_id;
|
|
65
|
-
const paymentMethodInput = paymentSession.data
|
|
66
|
-
?.paymentMethodInput;
|
|
67
65
|
const currency = order.currency_code.toUpperCase();
|
|
68
66
|
const products = order.items.map((item) => ({
|
|
69
67
|
id: item.variant_sku || item.variant_id || item.id,
|
|
@@ -103,13 +101,16 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
103
101
|
});
|
|
104
102
|
}
|
|
105
103
|
let paymentMethod;
|
|
106
|
-
|
|
104
|
+
const methodId = this.paymentCreateOptions.methodId;
|
|
105
|
+
if (typeof methodId !== "undefined") {
|
|
106
|
+
const paymentMethodInput = paymentSession.data?.paymentMethodInput;
|
|
107
107
|
paymentMethod = {
|
|
108
|
-
id:
|
|
108
|
+
id: methodId,
|
|
109
109
|
input: paymentMethodInput,
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
const baseReturnUrl =
|
|
112
|
+
const baseReturnUrl = order?.sales_channel?.metadata?.pay_return_url ??
|
|
113
|
+
this.options_.returnUrl;
|
|
113
114
|
const payload = {
|
|
114
115
|
reference: order.display_id.toString(),
|
|
115
116
|
description: this.getPaymentDescription(order),
|
|
@@ -134,6 +135,15 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
134
135
|
email: order.email,
|
|
135
136
|
locale: order.metadata?.locale?.toString()?.toUpperCase() ?? "EN",
|
|
136
137
|
reference: order.customer?.id,
|
|
138
|
+
...(!!order.billing_address?.company
|
|
139
|
+
? {
|
|
140
|
+
company: {
|
|
141
|
+
name: order.billing_address.company,
|
|
142
|
+
vatNumber: order.metadata?.vat_number?.toString(),
|
|
143
|
+
country: order.billing_address?.country_code?.toUpperCase(),
|
|
144
|
+
},
|
|
145
|
+
}
|
|
146
|
+
: {}),
|
|
137
147
|
},
|
|
138
148
|
order: {
|
|
139
149
|
countryCode: order.billing_address?.country_code?.toUpperCase(),
|
|
@@ -244,14 +254,9 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
244
254
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Payment ID is required");
|
|
245
255
|
}
|
|
246
256
|
try {
|
|
247
|
-
const payment = await this.
|
|
248
|
-
data: {
|
|
249
|
-
id,
|
|
250
|
-
},
|
|
251
|
-
});
|
|
257
|
+
const payment = await this.client_.getTransaction(id);
|
|
252
258
|
const value = (input.data?.amount).value;
|
|
253
|
-
const currency = payment.
|
|
254
|
-
?.currency;
|
|
259
|
+
const currency = payment.amount.currency;
|
|
255
260
|
if (!currency) {
|
|
256
261
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Currency information is missing from payment data");
|
|
257
262
|
}
|
|
@@ -372,7 +377,9 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
372
377
|
}
|
|
373
378
|
}
|
|
374
379
|
/**
|
|
375
|
-
* Retrieves payment details
|
|
380
|
+
* Retrieves payment details, for payment data within 35 days.
|
|
381
|
+
* Pay. Orders that are already PAID, will be on the GMS for 13 months.
|
|
382
|
+
* Otherwise, it is available for 35 days on the TGU.
|
|
376
383
|
* @param input - The payment retrieval input
|
|
377
384
|
* @returns The payment details
|
|
378
385
|
*/
|
|
@@ -382,14 +389,7 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
382
389
|
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, "Payment id not present");
|
|
383
390
|
}
|
|
384
391
|
try {
|
|
385
|
-
|
|
386
|
-
// Check if the order ID starts with a 2, in that case we will need to use the legacy Pay API.
|
|
387
|
-
if (id.startsWith("2")) {
|
|
388
|
-
data = await this.client_.getTransaction(id);
|
|
389
|
-
}
|
|
390
|
-
else {
|
|
391
|
-
data = await this.client_.getOrder(id);
|
|
392
|
-
}
|
|
392
|
+
const data = await this.client_.getOrder(id);
|
|
393
393
|
return {
|
|
394
394
|
data: data,
|
|
395
395
|
};
|
|
@@ -575,4 +575,4 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
575
575
|
}
|
|
576
576
|
}
|
|
577
577
|
exports.default = PayBase;
|
|
578
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQU9rQztBQVdsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLFNBQVMsRUFBRTtnQkFDL0MsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUE7WUFFbkIsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixXQUFXO29CQUNULFFBQVEsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDekMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQzt3QkFDL0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxJQUFJLGNBQWMsQ0FBQyxDQUFBO2dCQUN0RCxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFBO1FBQ3BCLENBQUMsQ0FBQTtRQWxDQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU07WUFDVCxPQUFPLENBQUMsUUFBUTtnQkFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssYUFBYTtnQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtnQkFDL0IsS0FBSyxDQUFBO1FBRVAsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHNCQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQTtJQUM3QyxDQUFDO0lBMEJELHFCQUFxQixDQUNuQixLQUF5RSxFQUN6RSxjQUFpQztRQUVqQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQW9CLENBQUE7UUFDNUQsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsSUFBSTtZQUM1QyxFQUFFLGtCQUErQyxDQUFBO1FBQ25ELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUE7UUFFbEQsTUFBTSxRQUFRLEdBQWlCLEtBQUssQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEVBQUU7WUFDbEQsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzVELElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNmLENBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUNsRTtnQkFDRCxRQUFRO2FBQ1Q7WUFDRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1NBQ3pDLENBQUMsQ0FBQyxDQUFBO1FBRUgsTUFBTSxRQUFRLEdBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQWEsR0FBRyxHQUFHLENBQUE7UUFFakUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakIsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDWixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLEtBQUssRUFBRTtvQkFDTCxLQUFLLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQztvQkFDcEIsUUFBUTtpQkFDVDtnQkFDRCxRQUFRLEVBQUUsQ0FBQzthQUNaLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBSSxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBYSxHQUFHLEdBQUcsQ0FBQTtRQUV0RSxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLElBQUksRUFBRSxVQUFVO2dCQUNoQixFQUFFLEVBQUUsVUFBVTtnQkFDZCxXQUFXLEVBQUUsVUFBVTtnQkFDdkIsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRSxhQUFhO29CQUNwQixRQUFRO2lCQUNUO2dCQUNELFFBQVEsRUFBRSxDQUFDO2FBQ1osQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELElBQUksYUFBMkMsQ0FBQTtRQUUvQyxJQUFJLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUM5RCxhQUFhLEdBQUc7Z0JBQ2QsRUFBRSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRO2dCQUN0QyxLQUFLLEVBQUUsa0JBQWtCO2FBQzFCLENBQUE7UUFDSCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsQ0FBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxjQUF5QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFN0csTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDOUMsYUFBYTtZQUNiLFNBQVMsRUFBRSxHQUFHLGFBQWEsV0FBVyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsWUFBWSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzdHLE1BQU0sRUFBRSxhQUFhO2dCQUNuQixDQUFDLENBQUMsSUFBQSx1Q0FBNkIsRUFBQyxhQUFhLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVO1lBQ2pELFlBQVksRUFBRTtnQkFDWixVQUFVO2FBQ1g7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQWEsR0FBRyxHQUFHLENBQUM7Z0JBQ3BFLFFBQVE7YUFDVDtZQUNELFFBQVEsRUFBRTtnQkFDUixTQUFTLEVBQ1AsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxVQUFVO2dCQUNqRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxTQUFTLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxTQUFTO2dCQUN2RSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFZO2dCQUN2QyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLO2dCQUM1RCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxJQUFJO2dCQUNqRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFO2FBQzlCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUU7Z0JBQy9ELGNBQWMsRUFBRTtvQkFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxVQUFVO29CQUM1QyxRQUFRLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxTQUFTO29CQUMxQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxTQUFTO29CQUN4QyxZQUFZLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxTQUFTO29CQUM5QyxPQUFPLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxXQUFXO29CQUMzQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxJQUFJO29CQUNqQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFO2lCQUM1RDtnQkFDRCxlQUFlLEVBQUU7b0JBQ2YsU0FBUyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVO29CQUM3QyxRQUFRLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFNBQVM7b0JBQzNDLE1BQU0sRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsU0FBUztvQkFDekMsWUFBWSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTO29CQUMvQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFdBQVc7b0JBQzVDLElBQUksRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSTtvQkFDbEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFO2lCQUM3RDtnQkFDRCxRQUFRO2FBQ1Q7U0FDRixDQUFBO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQztnQkFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7WUFDN0MsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsRUFDcEIsT0FBTyxFQUNQLE1BQU0sRUFDTixJQUFJLEVBQ0osYUFBYSxHQUNRO1FBQ3JCLE9BQU87WUFDTCxJQUFJLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQW9CLEVBQUM7WUFDOUMsRUFBRSxFQUFFLGdCQUFNLENBQUMsVUFBVSxFQUFFO1NBQ3hCLENBQUE7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsS0FBNEI7UUFFNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUVuRCxPQUFPLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUE7UUFDbkMsQ0FBQztRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsNEJBQW9CLENBQUMsVUFBVSxFQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUNsQixLQUEwQjtRQUUxQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQWlCLENBQUE7UUFFeEMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsd0JBQXdCLENBQ3pCLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUN6QyxJQUFJLEVBQUU7b0JBQ0osRUFBRTtpQkFDSDthQUNGLENBQUMsQ0FBcUMsQ0FBQTtZQUV2Qyw0RUFBNEU7WUFDNUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksS0FBSyw0QkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNyQyxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3pDLElBQUksRUFBRTtvQkFDSixFQUFFO2lCQUNIO2FBQ0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQThCLENBQUMsQ0FBQTtZQUVwRCxJQUFJLE1BQU0sS0FBSyw0QkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsOENBQThDLE1BQU0sRUFBRSxDQUN2RCxDQUFBO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLGdCQUFnQixFQUFFLHlCQUNoQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBNEIsQ0FBQSxDQUFDLGFBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQTRCLENBQUEsQ0FBQyxLQUFLLEVBQUUsQ0FDdEQsQ0FBQTtZQUVILE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDekMsSUFBSSxFQUFFO29CQUNKLEVBQUU7aUJBQ0g7YUFDRixDQUFDLENBQUE7WUFFRixPQUFPO2dCQUNMLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTthQUNuQixDQUFBO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQ3JFLE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUF5QjtRQUMzQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQWlCLENBQUE7UUFFeEMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsd0JBQXdCLENBQ3pCLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUN6QyxJQUFJLEVBQUU7b0JBQ0osRUFBRTtpQkFDSDthQUNGLENBQUMsQ0FBQTtZQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUE0QixDQUFBLENBQUMsS0FBSyxDQUFBO1lBQzdELE1BQU0sUUFBUSxHQUFZLE9BQU8sQ0FBQyxJQUE0QixFQUFFLE1BQU07Z0JBQ3BFLEVBQUUsUUFBa0IsQ0FBQTtZQUV0QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsbURBQW1ELENBQ3BELENBQUE7WUFDSCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xELE1BQU0sRUFBRTtvQkFDTixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEdBQUc7b0JBQ3ZDLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFO2lCQUNqQzthQUNGLENBQUMsQ0FBQTtZQUVGLElBQUksQ0FBQyxNQUFNO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLDJCQUEyQixFQUFFLHdCQUF3QixRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksVUFBVSxDQUN2RixLQUFLLENBQUMsUUFBUSxFQUFFLENBQ2pCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2YsQ0FBQTtZQUVILE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEVBQUMsR0FBRyxNQUFNLEVBQUM7YUFDbEIsQ0FBQTtRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUNyRSxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBeUI7UUFDM0MsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFpQixDQUFBO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7WUFFL0MsTUFBTSxrQkFBa0IsR0FBb0I7Z0JBQzFDLDRCQUFnQixDQUFDLE1BQU07Z0JBQ3ZCLDRCQUFnQixDQUFDLE9BQU87Z0JBQ3hCLDRCQUFnQixDQUFDLFNBQVM7Z0JBQzFCLDRCQUFnQixDQUFDLFNBQVM7Z0JBQzFCLDRCQUFnQixDQUFDLFNBQVM7Z0JBQzFCLDRCQUFnQixDQUFDLFVBQVU7YUFDNUIsQ0FBQTtZQUVELElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxDQUFDLE1BQU07b0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsZ0JBQWdCLEVBQUUsb0RBQW9ELENBQ3ZFLENBQUE7Z0JBQ0gsT0FBTztvQkFDTCxJQUFJLEVBQUU7d0JBQ0osRUFBRTtxQkFDSDtpQkFDRixDQUFBO1lBQ0gsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLGlDQUFpQyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN4RCxDQUFBO2dCQUNELE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBOEIsRUFBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUFBO1lBRUYsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUseUJBQXlCLENBQUMsQ0FBQTtZQUVoRSxPQUFPO2dCQUNMLElBQUksRUFBRSxVQUFpQzthQUN4QyxDQUFBO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQ3RFLE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUF5QjtRQUMzQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLEtBQTRCO1FBRTVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBWSxDQUFBO1FBRW5DLElBQUksQ0FBQztZQUNILE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRXREOzs7OztlQUtHO1lBQ0gsTUFBTSxTQUFTLEdBQUc7Z0JBQ2hCLENBQUMsNEJBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsT0FBTztnQkFDckQsb0VBQW9FO2dCQUNwRSxDQUFDLDRCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLE9BQU87Z0JBQzNELENBQUMsNEJBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsT0FBTztnQkFDM0QsQ0FBQyw0QkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxPQUFPO2dCQUMzRCxDQUFDLDRCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLDRCQUFvQixDQUFDLFFBQVE7Z0JBQ3hELENBQUMsNEJBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTtnQkFDekQsQ0FBQyw0QkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxRQUFRO2dCQUMzRCxDQUFDLDRCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLFFBQVE7Z0JBQzNELENBQUMsNEJBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTtnQkFDM0QsQ0FBQyw0QkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxLQUFLO2dCQUN0RCxDQUFDLDRCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsNEJBQW9CLENBQUMsS0FBSztnQkFDL0QsQ0FBQyw0QkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxhQUFhO2dCQUN0RSxDQUFDLDRCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLDRCQUFvQixDQUFDLE9BQU87Z0JBQ3ZELENBQUMsNEJBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsNEJBQW9CLENBQUMsVUFBVTtnQkFDN0QsQ0FBQyw0QkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxhQUFhO2dCQUN0RSxDQUFDLDRCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLDRCQUFvQixDQUFDLFFBQVE7Z0JBQ3RELENBQUMsNEJBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTthQUM3RCxDQUFBO1lBRUQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQXlCLENBQUE7WUFFbkUsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLGdCQUFnQixFQUFFLFlBQVksTUFBTSxnQkFBZ0IsWUFBWSxHQUFHLENBQ3BFLENBQUE7WUFFSCxPQUFPO2dCQUNMLE1BQU0sRUFBRSxZQUFZO2FBQ3JCLENBQUE7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUNoQix1Q0FBdUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDOUQsQ0FBQTtZQUNELE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsS0FBMkI7UUFFM0IsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFZLENBQUE7UUFFbkMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQ25CLHdCQUFnQixDQUFDLFlBQVksRUFDN0Isd0JBQXdCLENBQ3pCLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUE7WUFFUiw4RkFBOEY7WUFDOUYsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQzlDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN4QyxDQUFDO1lBRUQsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBMkI7YUFDbEMsQ0FBQTtRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLGlDQUFpQyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN4RCxDQUFBO1lBQ0QsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQXlCO1FBQzNDLDZFQUE2RTtRQUM3RSxvQkFBb0I7UUFDcEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxPQUczQixDQUFBO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNuRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7b0JBQ3BFLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3RFLENBQUMsQ0FBQyxDQUFBO2dCQUVGLElBQUksQ0FBQyxNQUFNO29CQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLGdCQUFnQixJQUFJLENBQUMsRUFBRSxxQ0FBcUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FDOUcsQ0FBQTtnQkFFSCxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQTJCLEVBQUMsQ0FBQTtZQUM1QyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7Z0JBQ3JFLE1BQU0sS0FBSyxDQUFBO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFBO0lBQ25CLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPO1lBQ0wsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUM5QyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQzlDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRSxDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLE9BQTBDO1FBRTFDLE1BQU0sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLE9BQU8sQ0FBQTtRQUV4QyxJQUFJLENBQUM7WUFDSCxJQUFJLE9BQU8sR0FBeUIsSUFBSSxDQUFBO1lBRXhDLHdFQUF3RTtZQUN4RSxtREFBbUQ7WUFDbkQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO29CQUN0RCxJQUFJLEVBQUU7d0JBQ0osRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRO3FCQUNsQjtpQkFDRixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDL0QsQ0FBQyxDQUFDLENBQXFDLENBQUE7Z0JBRXZDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDYixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQixtQkFBbUIsQ0FDcEIsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELE9BQU8sR0FBRyxXQUFXLENBQUE7WUFDdkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHlFQUF5RTtnQkFDekUsc0VBQXNFO2dCQUN0RSw4QkFBOEI7Z0JBQzlCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBVyxDQUFBO2dCQUM3RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQVcsQ0FBQTtnQkFDM0QsTUFBTSxrQkFBa0IsR0FDckIsT0FBTyxDQUFDLHFCQUFxQixDQUFZLElBQUksUUFBUSxDQUFBO2dCQUN4RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFXLENBQUE7Z0JBRWhELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7Z0JBRTFDLElBQUksZUFBZSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUMvQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsd0JBQWdCLENBQUMsWUFBWSxFQUM3QiwwQkFBMEIsQ0FDM0IsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDWixNQUFNLElBQUksbUJBQVcsQ0FDbkIsd0JBQWdCLENBQUMsWUFBWSxFQUM3QiwrQkFBK0IsY0FBYyxFQUFFLENBQ2hELENBQUE7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDMUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFFOUQsSUFBSSxtQkFBbUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLHdCQUFnQixDQUFDLFlBQVksRUFDN0IsbUJBQW1CLENBQ3BCLENBQUE7Z0JBQ0gsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDO3dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtvQkFDMUMsQ0FBQztvQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztnQkFDaEIsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQzFCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBdUIsQ0FBQTtnQkFDeEMsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUE7WUFDekUsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHO2dCQUNmLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVU7Z0JBQzNDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHO2FBQ25DLENBQUE7WUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1lBQzlDLENBQUM7WUFFRCxRQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVCLEtBQUssNEJBQWdCLENBQUMsSUFBSTtvQkFDeEIsT0FBTzt3QkFDTCxNQUFNLEVBQUUsc0JBQWMsQ0FBQyxVQUFVO3dCQUNqQyxJQUFJLEVBQUUsUUFBUTtxQkFDZixDQUFBO2dCQUNILEtBQUssNEJBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUMzQixLQUFLLDRCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDakMsS0FBSyw0QkFBZ0IsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLEtBQUssNEJBQWdCLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxLQUFLLDRCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDakMsS0FBSyw0QkFBZ0IsQ0FBQyxNQUFNO29CQUMxQixPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLE9BQU87d0JBQzlCLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0gsS0FBSyw0QkFBZ0IsQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLEtBQUssNEJBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUM5QixLQUFLLDRCQUFnQixDQUFDLFNBQVMsQ0FBQztnQkFDaEMsS0FBSyw0QkFBZ0IsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLEtBQUssNEJBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxLQUFLLDRCQUFnQixDQUFDLFVBQVU7b0JBQzlCLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDOUI7d0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjt3QkFDNUIsSUFBSSxFQUFFOzRCQUNKLGlGQUFpRjs0QkFDakYsRUFBRSxFQUFFLE9BQU8sQ0FBQyxTQUFTO3lCQUN0QjtxQkFDRixFQUNELEVBQUUsQ0FDSCxDQUFBO29CQUVELE9BQU87d0JBQ0wsTUFBTSxFQUFFLHNCQUFjLENBQUMsUUFBUTt3QkFDL0IsSUFBSSxFQUFFLFFBQVE7cUJBQ2YsQ0FBQTtnQkFDSCxLQUFLLDRCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDOUIsS0FBSyw0QkFBZ0IsQ0FBQyxnQkFBZ0I7b0JBQ3BDLE9BQU87d0JBQ0wsTUFBTSxFQUFFLHNCQUFjLENBQUMsTUFBTTt3QkFDN0IsSUFBSSxFQUFFLFFBQVE7cUJBQ2YsQ0FBQTtnQkFDSCxLQUFLLDRCQUFnQixDQUFDLGVBQWUsQ0FBQztnQkFDdEMsS0FBSyw0QkFBZ0IsQ0FBQyxlQUFlO29CQUNuQyxPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLGFBQWE7d0JBQ3BDLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0gsS0FBSyw0QkFBZ0IsQ0FBQyxTQUFTO29CQUM3QixPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLFVBQVU7d0JBQ2pDLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0g7b0JBQ0UsT0FBTzt3QkFDTCxNQUFNLEVBQUUsc0JBQWMsQ0FBQyxhQUFhO3dCQUNwQyxJQUFJLEVBQUUsUUFBUTtxQkFDZixDQUFBO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLHdDQUF3QyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDcEUsQ0FBQTtZQUVELDZFQUE2RTtZQUM3RSxNQUFNLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDakQsSUFBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUM7YUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQTtZQUU5QixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU87b0JBQ0wsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixVQUFVLEVBQUcsT0FBTyxFQUFFLFFBQWdDLEVBQUUsVUFBVTt3QkFDbEUsTUFBTSxFQUFFLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFnQixDQUFDO3dCQUNoRCxHQUFHLE9BQU87cUJBQ1g7aUJBQ0YsQ0FBQTtZQUNILENBQUM7WUFFRCxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxrQkFBZSxPQUFPLENBQUEifQ==
|
|
578
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQU9rQztBQVlsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENB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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pay_base_1 = __importDefault(require("../core/pay-base"));
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
class PayCreditcardService extends pay_base_1.default {
|
|
9
|
+
get paymentCreateOptions() {
|
|
10
|
+
return {
|
|
11
|
+
methodId: 137,
|
|
12
|
+
webhookUrl: this.options_.medusaUrl +
|
|
13
|
+
"/hooks/payment/" +
|
|
14
|
+
types_1.PaymentProviderKeys.DIRECTDEBIT +
|
|
15
|
+
"_pay",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
PayCreditcardService.identifier = types_1.PaymentProviderKeys.DIRECTDEBIT;
|
|
20
|
+
exports.default = PayCreditcardService;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWRpcmVjdC1kZWJpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcGF5L3NlcnZpY2VzL3BheS1kaXJlY3QtZGViaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBc0M7QUFDdEMsb0NBQTREO0FBRTVELE1BQU0sb0JBQXFCLFNBQVEsa0JBQU87SUFHeEMsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTztZQUNMLFFBQVEsRUFBRSxHQUFHO1lBQ2IsVUFBVSxFQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDdkIsaUJBQWlCO2dCQUNqQiwyQkFBbUIsQ0FBQyxXQUFXO2dCQUMvQixNQUFNO1NBQ1QsQ0FBQTtJQUNILENBQUM7O0FBWE0sK0JBQVUsR0FBRywyQkFBbUIsQ0FBQyxXQUFXLENBQUE7QUFjckQsa0JBQWUsb0JBQW9CLENBQUEifQ==
|
|
@@ -39,8 +39,9 @@ exports.PaymentProviderKeys = {
|
|
|
39
39
|
PAYBYBANK: "pay-paybybank",
|
|
40
40
|
MOBILEPAY: "pay-mobilepay",
|
|
41
41
|
WECHATPAY: "pay-wechatpay",
|
|
42
|
+
DIRECTDEBIT: "pay-direct-debit",
|
|
42
43
|
};
|
|
43
44
|
__exportStar(require("./common"), exports);
|
|
44
45
|
__exportStar(require("./order"), exports);
|
|
45
46
|
__exportStar(require("./transaction"), exports);
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXdCYSxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsZ0JBQWdCO0lBQzdCLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsS0FBSyxFQUFFLFdBQVc7SUFDbEIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixNQUFNLEVBQUUsWUFBWTtJQUNwQixTQUFTLEVBQUUsZUFBZTtJQUMxQixPQUFPLEVBQUUsYUFBYTtJQUN0QixRQUFRLEVBQUUsY0FBYztJQUN4QixPQUFPLEVBQUUsYUFBYTtJQUN0QixLQUFLLEVBQUUsV0FBVztJQUNsQixPQUFPLEVBQUUsYUFBYTtJQUN0QixNQUFNLEVBQUUsWUFBWTtJQUNwQixRQUFRLEVBQUUsY0FBYztJQUN4QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsV0FBVztJQUNsQixHQUFHLEVBQUUsU0FBUztJQUNkLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsV0FBVyxFQUFFLGtCQUFrQjtDQUNoQyxDQUFBO0FBS0QsMkNBQXdCO0FBQ3hCLDBDQUF1QjtBQUN2QixnREFBNkIifQ==
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.duplicateCartWorkflow = exports.duplicateCartWorkflowId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const validate_cart_completed_1 = require("./steps/validate-cart-completed");
|
|
8
|
+
const query_config_1 = require("@medusajs/medusa/api/store/carts/query-config");
|
|
9
|
+
exports.duplicateCartWorkflowId = "duplicate-cart";
|
|
10
|
+
const THREE_DAYS = 60 * 60 * 24 * 3;
|
|
11
|
+
exports.duplicateCartWorkflow = (0, workflows_sdk_1.createWorkflow)({
|
|
12
|
+
name: exports.duplicateCartWorkflowId,
|
|
13
|
+
idempotent: true,
|
|
14
|
+
store: true,
|
|
15
|
+
retentionTime: THREE_DAYS,
|
|
16
|
+
}, (input) => {
|
|
17
|
+
const { data: carts } = (0, core_flows_1.useQueryGraphStep)({
|
|
18
|
+
entity: utils_1.Modules.CART,
|
|
19
|
+
filters: {
|
|
20
|
+
id: input.id,
|
|
21
|
+
},
|
|
22
|
+
fields: [
|
|
23
|
+
"id",
|
|
24
|
+
"email",
|
|
25
|
+
"customer.id",
|
|
26
|
+
"type",
|
|
27
|
+
"metadata",
|
|
28
|
+
"sales_channel_id",
|
|
29
|
+
"completed_at",
|
|
30
|
+
"billing_address.*",
|
|
31
|
+
"shipping_address.*",
|
|
32
|
+
"items.*",
|
|
33
|
+
"items.adjustments.promotion.*",
|
|
34
|
+
"promotions.*",
|
|
35
|
+
"region.id",
|
|
36
|
+
"shipping_methods.*",
|
|
37
|
+
],
|
|
38
|
+
});
|
|
39
|
+
const cart = (0, workflows_sdk_1.transform)({ carts }, (data) => {
|
|
40
|
+
return data.carts?.[0];
|
|
41
|
+
});
|
|
42
|
+
(0, validate_cart_completed_1.validateCartCompletedStep)({
|
|
43
|
+
cart: cart,
|
|
44
|
+
});
|
|
45
|
+
const billing_address = (0, workflows_sdk_1.transform)({ cart }, (data) => {
|
|
46
|
+
return data.cart?.billing_address;
|
|
47
|
+
});
|
|
48
|
+
const shipping_address = (0, workflows_sdk_1.transform)({ cart }, (data) => {
|
|
49
|
+
return data.cart?.shipping_address;
|
|
50
|
+
});
|
|
51
|
+
const newCart = core_flows_1.createCartWorkflow.runAsStep({
|
|
52
|
+
input: {
|
|
53
|
+
region_id: cart?.region_id ?? "",
|
|
54
|
+
email: cart?.email ?? "",
|
|
55
|
+
billing_address: {
|
|
56
|
+
first_name: billing_address?.first_name ?? undefined,
|
|
57
|
+
last_name: billing_address?.last_name ?? undefined,
|
|
58
|
+
phone: billing_address?.phone ?? undefined,
|
|
59
|
+
company: billing_address?.company ?? undefined,
|
|
60
|
+
address_1: billing_address?.address_1 ?? undefined,
|
|
61
|
+
address_2: billing_address?.address_2 ?? undefined,
|
|
62
|
+
city: billing_address?.city ?? undefined,
|
|
63
|
+
country_code: billing_address?.country_code ?? undefined,
|
|
64
|
+
province: billing_address?.province ?? undefined,
|
|
65
|
+
postal_code: billing_address?.postal_code ?? undefined,
|
|
66
|
+
metadata: billing_address?.metadata ?? undefined,
|
|
67
|
+
},
|
|
68
|
+
shipping_address: {
|
|
69
|
+
first_name: shipping_address?.first_name ?? undefined,
|
|
70
|
+
last_name: shipping_address?.last_name ?? undefined,
|
|
71
|
+
phone: shipping_address?.phone ?? undefined,
|
|
72
|
+
company: shipping_address?.company ?? undefined,
|
|
73
|
+
address_1: shipping_address?.address_1 ?? undefined,
|
|
74
|
+
address_2: shipping_address?.address_2 ?? undefined,
|
|
75
|
+
city: shipping_address?.city ?? undefined,
|
|
76
|
+
country_code: shipping_address?.country_code ?? undefined,
|
|
77
|
+
province: shipping_address?.province ?? undefined,
|
|
78
|
+
postal_code: shipping_address?.postal_code ?? undefined,
|
|
79
|
+
metadata: shipping_address?.metadata ?? undefined,
|
|
80
|
+
},
|
|
81
|
+
customer_id: cart?.customer_id ?? undefined,
|
|
82
|
+
metadata: cart?.metadata ?? undefined,
|
|
83
|
+
sales_channel_id: cart.sales_channel_id ?? undefined,
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
const options = (0, workflows_sdk_1.transform)({ cart }, (data) => {
|
|
87
|
+
return data.cart?.shipping_methods?.map((sm) => ({
|
|
88
|
+
id: sm?.shipping_option_id ?? "",
|
|
89
|
+
data: {
|
|
90
|
+
...sm?.data,
|
|
91
|
+
},
|
|
92
|
+
}));
|
|
93
|
+
});
|
|
94
|
+
core_flows_1.addShippingMethodToCartWorkflow.runAsStep({
|
|
95
|
+
input: {
|
|
96
|
+
cart_id: newCart.id,
|
|
97
|
+
options,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
const promoCodes = (0, workflows_sdk_1.transform)({ cart }, (data) => {
|
|
101
|
+
return data.cart?.promotions?.map((promotion) => promotion?.code ?? "");
|
|
102
|
+
});
|
|
103
|
+
const items = (0, workflows_sdk_1.transform)({ cart }, (data) => {
|
|
104
|
+
return data.cart?.items?.map((item) => ({
|
|
105
|
+
variant_id: item?.variant_id ?? undefined,
|
|
106
|
+
quantity: item?.quantity ?? 0,
|
|
107
|
+
}));
|
|
108
|
+
});
|
|
109
|
+
// Add the line items
|
|
110
|
+
core_flows_1.addToCartWorkflow.runAsStep({
|
|
111
|
+
input: {
|
|
112
|
+
cart_id: newCart.id,
|
|
113
|
+
items,
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
core_flows_1.updateCartWorkflow.runAsStep({
|
|
117
|
+
input: {
|
|
118
|
+
id: newCart.id,
|
|
119
|
+
region_id: cart?.region_id ?? "",
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
core_flows_1.updateCartPromotionsWorkflow.runAsStep({
|
|
123
|
+
input: {
|
|
124
|
+
cart_id: newCart.id,
|
|
125
|
+
promo_codes: promoCodes,
|
|
126
|
+
action: utils_1.PromotionActions.ADD,
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
const { data: duplicatedCart } = (0, core_flows_1.useQueryGraphStep)({
|
|
130
|
+
entity: utils_1.Modules.CART,
|
|
131
|
+
filters: {
|
|
132
|
+
id: newCart.id,
|
|
133
|
+
},
|
|
134
|
+
fields: query_config_1.defaultStoreCartFields,
|
|
135
|
+
}).config({ name: "retrieve-duplicated-cart" });
|
|
136
|
+
return new workflows_sdk_1.WorkflowResponse(duplicatedCart?.[0]);
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLWNhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NhcnQvZHVwbGljYXRlLWNhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBTTBDO0FBQzFDLHFEQUFnRjtBQUNoRiw0REFPb0M7QUFDcEMsNkVBQXlFO0FBRXpFLGdGQUFvRjtBQUV2RSxRQUFBLHVCQUF1QixHQUFHLGdCQUFnQixDQUFBO0FBRXZELE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQVN0QixRQUFBLHFCQUFxQixHQUFHLElBQUEsOEJBQWMsRUFDakQ7SUFDRSxJQUFJLEVBQUUsK0JBQXVCO0lBQzdCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLFVBQVU7Q0FDMUIsRUFDRCxDQUFDLEtBQStDLEVBQUUsRUFBRTtJQUNsRCxNQUFNLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDdEMsTUFBTSxFQUFFLGVBQU8sQ0FBQyxJQUFJO1FBQ3BCLE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtTQUNiO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxhQUFhO1lBQ2IsTUFBTTtZQUNOLFVBQVU7WUFDVixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsU0FBUztZQUNULCtCQUErQjtZQUMvQixjQUFjO1lBQ2QsV0FBVztZQUNYLG9CQUFvQjtTQUNyQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sSUFBSSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFDLEtBQUssRUFBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFF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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateCartCompletedStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
exports.validateCartCompletedStep = (0, workflows_sdk_1.createStep)("validate-cart-completed", async (data) => {
|
|
7
|
+
const { cart } = data;
|
|
8
|
+
if (!cart.completed_at) {
|
|
9
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Cannot duplicate uncompleted cart.");
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtY2FydC1jb21wbGV0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NhcnQvc3RlcHMvdmFsaWRhdGUtY2FydC1jb21wbGV0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTBFO0FBQzFFLHFEQUFxRDtBQU94QyxRQUFBLHlCQUF5QixHQUFHLElBQUEsMEJBQVUsRUFDakQseUJBQXlCLEVBQ3pCLEtBQUssRUFBRSxJQUFvQyxFQUFFLEVBQUU7SUFDN0MsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLElBQUksQ0FBQTtJQUVuQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLG9DQUFvQyxDQUNyQyxDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFBIn0=
|
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<p align="center">
|
|
18
18
|
<a href="#">
|
|
19
|
-
<img src="https://img.shields.io/badge/license-
|
|
19
|
+
<img src="https://img.shields.io/badge/license-MIT-blue.svg" />
|
|
20
20
|
</a>
|
|
21
21
|
<a href="#">
|
|
22
22
|
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" alt="PRs welcome!" />
|
|
@@ -30,13 +30,25 @@
|
|
|
30
30
|
</a>
|
|
31
31
|
</p>
|
|
32
32
|
|
|
33
|
+
## Getting Started
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
Don’t have an account with Pay. yet? [Register now!](https://signup.pay.nl/welcome?id=M-1030-9252)
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
> [!CAUTION] If you have subscribers listening to the `order.placed` event, update them to listen to the
|
|
38
|
+
> `payment.captured` event instead. See below.
|
|
39
|
+
|
|
40
|
+
> [!WARNING]
|
|
41
|
+
> This plugin creates orders in Medusa **immediately**, even if the payment has not yet been captured. If a payment
|
|
42
|
+
> expires,
|
|
43
|
+
> the associated order will be automatically canceled.
|
|
44
|
+
>
|
|
45
|
+
> This change in flow is required to support asynchronous payment methods (e.g., SprayPay), where payment confirmation
|
|
46
|
+
> can take hours depending on customer input.
|
|
37
47
|
|
|
38
48
|
## Table of Contents
|
|
39
49
|
|
|
50
|
+
- [Demo store](#demo-store)
|
|
51
|
+
- [Pay. Payment Methods](#pay-payment-methods)
|
|
40
52
|
- [Features](#features)
|
|
41
53
|
- [Prerequisites](#prerequisites)
|
|
42
54
|
- [Installation](#installation)
|
|
@@ -44,37 +56,104 @@ TBD from here
|
|
|
44
56
|
- [Configuration Options](#configuration-options)
|
|
45
57
|
- [Environment Variables](#environment-variables)
|
|
46
58
|
- [Usage](#usage)
|
|
47
|
-
- [Client-Side Integration](#client-side-integration)
|
|
48
59
|
- [Supported Payment Methods](#supported-payment-methods)
|
|
60
|
+
- [Client-Side Integration](#client-side-integration)
|
|
61
|
+
- [Duplicate cart endpoint](#duplicate-cart-endpoint)
|
|
62
|
+
- [Adding payment method icons](#adding-payment-method-icons)
|
|
49
63
|
- [Extending the Plugin](#extending-the-plugin)
|
|
50
|
-
- [
|
|
51
|
-
- [License](#license)
|
|
64
|
+
- [Medusa v1 Support](#medusa-v1-support)
|
|
52
65
|
|
|
53
|
-
##
|
|
66
|
+
## Demo store
|
|
54
67
|
|
|
55
|
-
|
|
68
|
+
Visit the demo store here: https://pay-demo.webbers.com
|
|
56
69
|
|
|
57
|
-
|
|
58
|
-
- Bancontact
|
|
59
|
-
- Credit Card
|
|
60
|
-
- PayPal
|
|
61
|
-
- Apple Pay
|
|
62
|
-
- Gift Card
|
|
70
|
+
## Pay. payment methods
|
|
63
71
|
|
|
64
|
-
|
|
72
|
+
### Card payment methods
|
|
65
73
|
|
|
66
|
-
-
|
|
74
|
+
- Mastercard
|
|
75
|
+
- VISA
|
|
76
|
+
- American Express
|
|
77
|
+
- Carte Bancaire
|
|
78
|
+
- Maestro
|
|
79
|
+
- PostePay
|
|
80
|
+
- DanKort
|
|
81
|
+
- Nexi
|
|
82
|
+
- Visa Mastercard
|
|
83
|
+
|
|
84
|
+
### Digital wallets
|
|
85
|
+
|
|
86
|
+
- Apple Pay
|
|
87
|
+
- Google Pay
|
|
88
|
+
|
|
89
|
+
### Afterpay methods / Buy now pay later
|
|
90
|
+
|
|
91
|
+
- iDEAL IN3
|
|
92
|
+
- Billink
|
|
93
|
+
- SprayPay
|
|
94
|
+
- Riverty
|
|
95
|
+
- Mondu
|
|
96
|
+
- AlmaPAY
|
|
97
|
+
- Klarna
|
|
98
|
+
|
|
99
|
+
### Other
|
|
100
|
+
|
|
101
|
+
- PayPal
|
|
102
|
+
|
|
103
|
+
### Recurring payments
|
|
104
|
+
|
|
105
|
+
- SEPA Direct Debit
|
|
106
|
+
- Card-on-file / recurring card payments (tokenisation) [Coming soon]
|
|
107
|
+
|
|
108
|
+
### Region specific payment methods
|
|
109
|
+
|
|
110
|
+
<div style="display: flex; gap: 30px;">
|
|
111
|
+
<div>
|
|
112
|
+
|
|
113
|
+
| <div style="width:200px">Payment Method</div> | <div style="width:200px">Region(s)</div> |
|
|
114
|
+
|-----------------------------------------------|-------------------------------------------------------------------------------------------------|
|
|
115
|
+
| iDEAL | 🇳🇱 Netherlands |
|
|
116
|
+
| Bancontact | 🇧🇪 Belgium |
|
|
117
|
+
| Vipps | 🇳🇴 Norway<br>🇸🇪 Sweden |
|
|
118
|
+
| Bizum | 🇪🇸 Spain |
|
|
119
|
+
| Payconiq | 🇧🇪 Belgium<br>🇱🇺 Luxembourg |
|
|
120
|
+
| Twint | 🇨🇭 Switzerland |
|
|
121
|
+
| MB Way | 🇵🇹 Portugal |
|
|
122
|
+
| Pay By Bank | 🇧🇪 Belgium<br>🇩🇪 Germany<br>🇮🇹 Italy<br>🇱🇺 Luxembourg<br>🇳🇱 Netherlands<br>🇪🇸 Spain |
|
|
123
|
+
| WeChat Pay | 🇨🇳 China |
|
|
124
|
+
|
|
125
|
+
</div>
|
|
126
|
+
<div>
|
|
127
|
+
|
|
128
|
+
| <div style="width:200px">Payment Method</div> | <div style="width:200px">Region(s)</div> |
|
|
129
|
+
|-----------------------------------------------|------------------------------------------|
|
|
130
|
+
| Alipay Plus | 🇨🇳 China<br>🇭🇰 Hong Kong |
|
|
131
|
+
| MultiBanco | 🇵🇹 Portugal |
|
|
132
|
+
| Swish | 🇸🇪 Sweden |
|
|
133
|
+
| Satispay | 🇮🇹 Italy |
|
|
134
|
+
| Blik | 🇵🇱 Poland |
|
|
135
|
+
| EPS | 🇦🇹 Austria |
|
|
136
|
+
| Przelewy24 | 🇵🇱 Poland |
|
|
137
|
+
| MobilePay | 🇩🇰 Denmark<br>🇫🇮 Finland |
|
|
138
|
+
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
### InStore / SoftPOS payments
|
|
143
|
+
|
|
144
|
+
Would you like to integrate Pay. (Soft)P0S? [Get in touch!](mailto:hi@webbers.com)
|
|
145
|
+
|
|
146
|
+
## Features
|
|
67
147
|
|
|
148
|
+
- **Easily Extendable**: The modular architecture makes it easy to add support for additional Pay payment methods.
|
|
149
|
+
- **Webhook Support**: Full support for Pay webhooks for real-time payment status updates.
|
|
68
150
|
- **Automatic Capture**: Configurable automatic capture of payments.
|
|
69
151
|
|
|
70
152
|
## Prerequisites
|
|
71
153
|
|
|
72
|
-
- Medusa server v2.
|
|
154
|
+
- Medusa server v2.20.1 or later
|
|
73
155
|
- Node.js v20 or later
|
|
74
|
-
- A [Pay](https://
|
|
75
|
-
|
|
76
|
-
> [!NOTE]
|
|
77
|
-
> _You can get the API token & secret from your Pay dashboard: click Settings > Click sales channel > Copy api tokens_
|
|
156
|
+
- A [Pay](https://signup.pay.nl/welcome?id=M-1030-9252) account and token & secret with payment methods enabled.
|
|
78
157
|
|
|
79
158
|
## Installation
|
|
80
159
|
|
|
@@ -123,21 +202,24 @@ module.exports = defineConfig({
|
|
|
123
202
|
})
|
|
124
203
|
```
|
|
125
204
|
|
|
126
|
-
|
|
205
|
+
### Configuration Options
|
|
127
206
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
|
132
|
-
|
|
133
|
-
| `
|
|
134
|
-
| `
|
|
135
|
-
| `
|
|
136
|
-
| `
|
|
137
|
-
| `
|
|
138
|
-
| `
|
|
207
|
+
> [!NOTE]
|
|
208
|
+
> _You can get the API token & secret from your Pay dashboard: click Settings > Click sales channel > Copy api tokens_
|
|
209
|
+
|
|
210
|
+
| Option | Description | Default |
|
|
211
|
+
|----------------|-----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
212
|
+
| `atCode` | Your Pay AT code | Required |
|
|
213
|
+
| `apiToken` | Your Pay API token | Required |
|
|
214
|
+
| `slCode` | Your Pay sales channel code | Required |
|
|
215
|
+
| `slSecret` | Your Pay sales channel secret | Required |
|
|
216
|
+
| `returnUrl` | The URL to return to after payment | Required |
|
|
217
|
+
| `medusaUrl` | The URL of your Medusa server | Required |
|
|
218
|
+
| `testMode` | Whether to enable test payments | Optional |
|
|
219
|
+
| `tguApiUrl` | Pay TGU API Url | Optional, use if you want to use a specific or private TGU, see [here](https://developer.pay.nl/docs/transaction-gateway-unit#multi-cores-more-tgus). |
|
|
220
|
+
| `otherSlCodes` | Your other Pay sales channel code and secrets | Optional, used for webhook signature validation when using multiple Pay. sales channels. Format `'{"SL-CODE-X":"secretX","SL-CODE-Y":"secretY"}'` |
|
|
139
221
|
|
|
140
|
-
|
|
222
|
+
### Environment Variables
|
|
141
223
|
|
|
142
224
|
Create or update your `.env` file with the following variables:
|
|
143
225
|
|
|
@@ -160,7 +242,47 @@ dropdown.
|
|
|
160
242
|
|
|
161
243
|
Make sure that the selected payment methods are enabled in your Pay origanization settings as well.
|
|
162
244
|
|
|
163
|
-
|
|
245
|
+
## Supported Payment Methods
|
|
246
|
+
|
|
247
|
+
The plugin currently supports the following Pay payment methods:
|
|
248
|
+
|
|
249
|
+
| <div style="width: 400px">Payment Method</div> | Provider ID |
|
|
250
|
+
|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
|
|
251
|
+
| **Pay. hosted checkout** | `pp_pay-hosted-checkout_pay` |
|
|
252
|
+
| **Creditcards**<br>Mastercard / VISA / American Express/ Carte Bancaire / <br> Maestro / PostePay / DanKort / Nexi / Visa Mastercard | `pp_pay-creditcard-group_pay` |
|
|
253
|
+
| **Card-on-file / recurring card payments (tokenisation)** | Coming soon |
|
|
254
|
+
| **Apple Pay** | `pp_pay-apple-pay_pay` |
|
|
255
|
+
| **Google Pay** | `pp_pay-google-pay_pay` |
|
|
256
|
+
| **iDEAL IN3** | `pp_pay-ideal-in3_pay` |
|
|
257
|
+
| **Billink** | `pp_pay-billink_pay` |
|
|
258
|
+
| **SprayPay** | `pp_pay-spraypay_pay` |
|
|
259
|
+
| **Riverty** | `pp_pay-riverty_pay` |
|
|
260
|
+
| **Mondu** | `pp_pay-mondu_pay` |
|
|
261
|
+
| **AlmaPAY** | `pp_pay-almapay_pay` |
|
|
262
|
+
| **Klarna** | `pp_pay-klarna_pay` |
|
|
263
|
+
| **PayPal** | `pp_pay-paypal_pay` |
|
|
264
|
+
| **SEPA Direct Debit** | `pp_pay-direct-debit_pay` |
|
|
265
|
+
| **iDEAL** | `pp_pay-ideal_pay` |
|
|
266
|
+
| **Bancontact** | `pp_pay-bancontact_pay` |
|
|
267
|
+
| **Vipps** | [Get in touch](mailto:hi@webbers.com) |
|
|
268
|
+
| **Bizum** | [Get in touch](mailto:hi@webbers.com) |
|
|
269
|
+
| **Payconiq** | `pp_pay-payconiq_pay` |
|
|
270
|
+
| **Twint** | `pp_pay-twint_pay` |
|
|
271
|
+
| **MB Way** | [Get in touch](mailto:hi@webbers.com) |
|
|
272
|
+
| **Pay by Bank** | `pp_pay-paybybank_pay` |
|
|
273
|
+
| **WeChat Pay** | `pay-wechatpay` |
|
|
274
|
+
| **AliPay Plus** | [Get in touch](mailto:hi@webbers.com) |
|
|
275
|
+
| **MultiBanco** | [Get in touch](mailto:hi@webbers.com) |
|
|
276
|
+
| **Swish** | [Get in touch](mailto:hi@webbers.com) |
|
|
277
|
+
| **Satispay** | [Get in touch](mailto:hi@webbers.com) |
|
|
278
|
+
| **Blik** | `pp_pay-blik_pay` |
|
|
279
|
+
| **EPS** | `pp_pay-eps_pay` |
|
|
280
|
+
| **Przelewy24** | `pp_przelewy24_pay` |
|
|
281
|
+
| **MobilePAY** | `pp_pay-mobilepay_pay` |
|
|
282
|
+
| **SoftPOS** | `pp_pay-softpos_pay` |
|
|
283
|
+
| **Gift Card** | `pp_pay-giftcard_pay` |
|
|
284
|
+
|
|
285
|
+
## Client-Side Integration
|
|
164
286
|
|
|
165
287
|
To integrate with your storefront, you'll need to implement the payment flow according to Pay's and Medusa's
|
|
166
288
|
documentation. Here's a basic example:
|
|
@@ -173,22 +295,33 @@ _Example integration using the [Medusa Next.js Starter](https://github.com/medus
|
|
|
173
295
|
|
|
174
296
|
https://github.com/user-attachments/assets/742ee261-5e41-4e33-9a72-faf1a424fc52
|
|
175
297
|
|
|
176
|
-
###
|
|
298
|
+
### Duplicate cart endpoint
|
|
177
299
|
|
|
178
|
-
|
|
300
|
+
> [!TIP]
|
|
301
|
+
> Use the duplicate cart endpoint in your storefront
|
|
302
|
+
>
|
|
303
|
+
> When a customer cancels a payment or returns to the storefront without completing the Pay. checkout, a new duplicate
|
|
304
|
+
> cart should automatically be created. This allows the customer to easily start a new transaction without losing the
|
|
305
|
+
> items they had selected.
|
|
179
306
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
307
|
+
**API Route**: `GET /store/carts/:id/duplicate`
|
|
308
|
+
|
|
309
|
+
Alter your storefront retrieve cart function(s) and check if the returned cart.completed_at value is set. If so request
|
|
310
|
+
a new cart with the duplicate cart endpoint and update cart id in cookies accordingly.
|
|
311
|
+
|
|
312
|
+
The duplicate cart endpoint is idempotent, so it can be called multiple times with the same cart id.
|
|
313
|
+
|
|
314
|
+
## Adding payment method icons
|
|
315
|
+
|
|
316
|
+
1. Download the latest payment images from here: https://github.com/paynl/payment-images
|
|
317
|
+
2. Add these to your storefront public assets
|
|
318
|
+
3. In your checkout, create the mapping from the provider id to the icon.
|
|
319
|
+
1. You can also utilize the exported `payPaymentMethods` from this plugin to find the corresponding ID.
|
|
320
|
+
2. I.e. ```const paymentMethodData = payPaymentMethods.find(method => `pp_${method.value}_pay` === provider_id)```
|
|
188
321
|
|
|
189
322
|
## Extending the Plugin
|
|
190
323
|
|
|
191
|
-
To add
|
|
324
|
+
To add one of the missing Pay payment methods, create a new service in `src/providers/Pay/services` that extends the
|
|
192
325
|
`PayBase` class:
|
|
193
326
|
|
|
194
327
|
```typescript
|
|
@@ -214,18 +347,8 @@ Make sure to replace `new method` with the actual Pay payment method ID.
|
|
|
214
347
|
Export your new service from `src/providers/Pay/services/index.ts`. Then add your new service to the list of services in
|
|
215
348
|
`src/providers/Pay/index.ts`.
|
|
216
349
|
|
|
217
|
-
|
|
218
|
-
1. Download the latest payment images from here: https://github.com/paynl/payment-images
|
|
219
|
-
2. Add these to your storefront public assets
|
|
220
|
-
3. In your checkout, create the mapping from the provider id to the icon.
|
|
221
|
-
1. You can also utilize the exported `payPaymentMethods` from this plugin to find the corresponding ID.
|
|
222
|
-
2. I.e. ```const paymentMethodData = payPaymentMethods.find(method => `pp_${method.value}_pay` === provider_id)```
|
|
223
|
-
|
|
224
|
-
## Local development and customization
|
|
225
|
-
|
|
226
|
-
In case you want to customize and test the plugin locally, refer to
|
|
227
|
-
the [Medusa Plugin docs](https://docs.medusajs.com/learn/fundamentals/plugins/create#3-publish-plugin-locally-for-development-and-testing).
|
|
350
|
+
We will be working on providing all the available Pay. options in the near future.
|
|
228
351
|
|
|
229
|
-
##
|
|
352
|
+
## Medusa v1 Support
|
|
230
353
|
|
|
231
|
-
|
|
354
|
+
Searching for support for Medusa v1, we have a legacy plugin available. [Get in touch](mailto:hi@webbers.com)
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webbers/pay-payments-medusa",
|
|
3
3
|
"displayName": "Medusa v2 Pay. Plugin",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.0",
|
|
5
5
|
"description": "The Pay.nl payment provider plugin for Medusa v2",
|
|
6
6
|
"author": "Webbers B.V. <development@webbers.com>",
|
|
7
7
|
"license": "MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/webbersagency/pay-payments-medusa"
|
|
11
|
+
},
|
|
8
12
|
"files": [
|
|
9
13
|
".medusa/server"
|
|
10
14
|
],
|
|
@@ -23,11 +27,11 @@
|
|
|
23
27
|
"./constants.js": "./constants.js"
|
|
24
28
|
},
|
|
25
29
|
"keywords": [
|
|
26
|
-
"medusa",
|
|
27
|
-
"plugin",
|
|
28
|
-
"medusa-plugin-
|
|
29
|
-
"
|
|
30
|
-
"medusa-
|
|
30
|
+
"medusa-v2",
|
|
31
|
+
"medusa-plugin-integration",
|
|
32
|
+
"medusa-plugin-payment",
|
|
33
|
+
"pay.",
|
|
34
|
+
"medusa-webbers"
|
|
31
35
|
],
|
|
32
36
|
"scripts": {
|
|
33
37
|
"build": "medusa plugin:build",
|
|
@@ -35,43 +39,43 @@
|
|
|
35
39
|
"prepublishOnly": "medusa plugin:build"
|
|
36
40
|
},
|
|
37
41
|
"devDependencies": {
|
|
38
|
-
"@medusajs/admin-sdk": "^2.
|
|
39
|
-
"@medusajs/cli": "^2.
|
|
40
|
-
"@medusajs/framework": "^2.
|
|
41
|
-
"@medusajs/icons": "^2.
|
|
42
|
-
"@medusajs/medusa": "^2.
|
|
43
|
-
"@medusajs/test-utils": "^2.
|
|
44
|
-
"@medusajs/types": "^2.
|
|
45
|
-
"@medusajs/ui": "^4.0.
|
|
46
|
-
"@mikro-orm/cli": "
|
|
47
|
-
"@mikro-orm/core": "
|
|
48
|
-
"@mikro-orm/knex": "
|
|
49
|
-
"@mikro-orm/migrations": "
|
|
50
|
-
"@mikro-orm/postgresql": "
|
|
42
|
+
"@medusajs/admin-sdk": "^2.10.1",
|
|
43
|
+
"@medusajs/cli": "^2.10.1",
|
|
44
|
+
"@medusajs/framework": "^2.10.1",
|
|
45
|
+
"@medusajs/icons": "^2.10.1",
|
|
46
|
+
"@medusajs/medusa": "^2.10.1",
|
|
47
|
+
"@medusajs/test-utils": "^2.10.1",
|
|
48
|
+
"@medusajs/types": "^2.10.1",
|
|
49
|
+
"@medusajs/ui": "^4.0.21",
|
|
50
|
+
"@mikro-orm/cli": "6.4.3",
|
|
51
|
+
"@mikro-orm/core": "6.4.3",
|
|
52
|
+
"@mikro-orm/knex": "6.4.3",
|
|
53
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
54
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
51
55
|
"@swc/core": "1.5.7",
|
|
52
|
-
"@types/node": "^20.19.
|
|
53
|
-
"@types/react": "^18.3.
|
|
56
|
+
"@types/node": "^20.19.11",
|
|
57
|
+
"@types/react": "^18.3.24",
|
|
54
58
|
"@types/react-dom": "^18.3.7",
|
|
55
59
|
"awilix": "^8.0.1",
|
|
56
|
-
"pg": "^8.16.
|
|
57
|
-
"prettier": "^3.6.
|
|
60
|
+
"pg": "^8.16.3",
|
|
61
|
+
"prettier": "^3.6.2",
|
|
58
62
|
"prop-types": "^15.8.1",
|
|
59
63
|
"react": "^18.2.0",
|
|
60
64
|
"react-dom": "^18.2.0",
|
|
61
65
|
"ts-node": "^10.9.2",
|
|
62
|
-
"typescript": "^5.
|
|
66
|
+
"typescript": "^5.9.2",
|
|
63
67
|
"vite": "^5.4.19",
|
|
64
68
|
"yalc": "^1.0.0-pre.53"
|
|
65
69
|
},
|
|
66
70
|
"peerDependencies": {
|
|
67
|
-
"@medusajs/admin-sdk": "^2.
|
|
68
|
-
"@medusajs/cli": "^2.
|
|
69
|
-
"@medusajs/core-flows": "^2.
|
|
70
|
-
"@medusajs/framework": "^2.
|
|
71
|
-
"@medusajs/icons": "^2.
|
|
72
|
-
"@medusajs/js-sdk": "^2.
|
|
73
|
-
"@medusajs/medusa": "^2.
|
|
74
|
-
"@medusajs/test-utils": "^2.
|
|
71
|
+
"@medusajs/admin-sdk": "^2.10.1",
|
|
72
|
+
"@medusajs/cli": "^2.10.1",
|
|
73
|
+
"@medusajs/core-flows": "^2.10.1",
|
|
74
|
+
"@medusajs/framework": "^2.10.1",
|
|
75
|
+
"@medusajs/icons": "^2.10.1",
|
|
76
|
+
"@medusajs/js-sdk": "^2.10.1",
|
|
77
|
+
"@medusajs/medusa": "^2.10.1",
|
|
78
|
+
"@medusajs/test-utils": "^2.10.1",
|
|
75
79
|
"@medusajs/ui": "^4.0.3",
|
|
76
80
|
"@mikro-orm/cli": "6.4.3",
|
|
77
81
|
"@mikro-orm/core": "6.4.3",
|