@webbers/pay-payments-medusa 1.0.15 → 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.
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "@webbers/pay-payments-medusa",
3
3
  "displayName": "Medusa v2 Pay. Plugin",
4
- "version": "1.0.15",
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-other",
29
- "medusa-plugin",
30
- "medusa-v2"
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.8.4",
39
- "@medusajs/cli": "^2.8.4",
40
- "@medusajs/framework": "^2.8.4",
41
- "@medusajs/icons": "^2.8.4",
42
- "@medusajs/medusa": "^2.8.4",
43
- "@medusajs/test-utils": "^2.8.4",
44
- "@medusajs/types": "^2.8.4",
45
- "@medusajs/ui": "^4.0.14",
46
- "@mikro-orm/cli": "^6.4.16",
47
- "@mikro-orm/core": "^6.4.16",
48
- "@mikro-orm/knex": "^6.4.16",
49
- "@mikro-orm/migrations": "^6.4.16",
50
- "@mikro-orm/postgresql": "^6.4.16",
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.1",
53
- "@types/react": "^18.3.23",
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.2",
57
- "prettier": "^3.6.0",
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.6.2",
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.8.4",
68
- "@medusajs/cli": "^2.8.4",
69
- "@medusajs/core-flows": "^2.8.4",
70
- "@medusajs/framework": "^2.8.4",
71
- "@medusajs/icons": "^2.8.4",
72
- "@medusajs/js-sdk": "^2.8.4",
73
- "@medusajs/medusa": "^2.8.4",
74
- "@medusajs/test-utils": "^2.8.4",
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 = "1.0.15";
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 = "1.0.15";
57
+ const version = "2.0.0";
58
58
  function getSortedPaymentMethods(data) {
59
59
  const { checkoutOptions, checkoutSequence } = data;
60
60
  const { primary } = checkoutSequence.default;
@@ -2,157 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GET = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
- const core_flows_1 = require("@medusajs/medusa/core-flows");
5
+ const duplicate_cart_1 = require("../../../../../workflows/cart/duplicate-cart");
6
6
  const GET = async (req, res) => {
7
- const { id } = req.params;
8
- const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
- const { data: [cart], } = await query.graph({
10
- entity: utils_1.Modules.CART,
11
- filters: {
12
- id,
13
- },
14
- fields: [
15
- "id",
16
- "email",
17
- "customer.id",
18
- "type",
19
- "metadata",
20
- "sales_channel_id",
21
- "completed_at",
22
- "billing_address.*",
23
- "shipping_address.*",
24
- "items.*",
25
- "items.adjustments.promotion.*",
26
- "promotions.*",
27
- "region.id",
28
- "shipping_methods.*",
29
- ],
30
- });
31
- if (!cart.completed_at) {
32
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Cannot duplicate uncompleted cart.");
33
- }
34
- const billing_address = cart?.billing_address;
35
- const shipping_address = cart?.shipping_address;
36
- const { result: newCart } = await (0, core_flows_1.createCartWorkflow)(req.scope).run({
37
- input: {
38
- region_id: cart?.region_id ?? "",
39
- email: cart?.email ?? "",
40
- billing_address: {
41
- first_name: billing_address?.first_name ?? undefined,
42
- last_name: billing_address?.last_name ?? undefined,
43
- phone: billing_address?.phone ?? undefined,
44
- company: billing_address?.company ?? undefined,
45
- address_1: billing_address?.address_1 ?? undefined,
46
- address_2: billing_address?.address_2 ?? undefined,
47
- city: billing_address?.city ?? undefined,
48
- country_code: billing_address?.country_code ?? undefined,
49
- province: billing_address?.province ?? undefined,
50
- postal_code: billing_address?.postal_code ?? undefined,
51
- metadata: billing_address?.metadata ?? undefined,
52
- },
53
- shipping_address: {
54
- first_name: shipping_address?.first_name ?? undefined,
55
- last_name: shipping_address?.last_name ?? undefined,
56
- phone: shipping_address?.phone ?? undefined,
57
- company: shipping_address?.company ?? undefined,
58
- address_1: shipping_address?.address_1 ?? undefined,
59
- address_2: shipping_address?.address_2 ?? undefined,
60
- city: shipping_address?.city ?? undefined,
61
- country_code: shipping_address?.country_code ?? undefined,
62
- province: shipping_address?.province ?? undefined,
63
- postal_code: shipping_address?.postal_code ?? undefined,
64
- metadata: shipping_address?.metadata ?? undefined,
65
- },
66
- customer_id: cart?.customer_id ?? undefined,
67
- metadata: cart?.metadata ?? undefined,
68
- sales_channel_id: cart.sales_channel_id ?? undefined,
69
- },
70
- });
71
- await (0, core_flows_1.addShippingMethodToCartWorkflow)(req.scope).run({
7
+ const we = req.scope.resolve(utils_1.Modules.WORKFLOW_ENGINE);
8
+ const response = await we.run(duplicate_cart_1.duplicateCartWorkflowId, {
72
9
  input: {
73
- cart_id: newCart.id,
74
- options: cart?.shipping_methods?.map((sm) => ({
75
- id: sm?.shipping_option_id ?? "",
76
- data: {
77
- ...sm?.data,
78
- },
79
- })),
10
+ id: req.params.id,
80
11
  },
12
+ transactionId: "cart-duplicate-" + req.params.id,
81
13
  });
82
- const promoCodes = cart?.promotions?.map((promotion) => promotion?.code ?? "");
83
- // Add the line items
84
- await (0, core_flows_1.addToCartWorkflow)(req.scope).run({
85
- input: {
86
- cart_id: newCart.id,
87
- items: cart?.items?.map((item) => ({
88
- variant_id: item?.variant_id ?? undefined,
89
- quantity: item?.quantity ?? 0,
90
- })),
91
- },
92
- });
93
- await (0, core_flows_1.updateCartWorkflow)(req.scope).run({
94
- input: {
95
- id: newCart.id,
96
- region_id: cart?.region_id ?? "",
97
- },
98
- });
99
- await (0, core_flows_1.updateCartPromotionsWorkflow)(req.scope).run({
100
- input: {
101
- cart_id: newCart.id,
102
- promo_codes: promoCodes,
103
- action: utils_1.PromotionActions.ADD,
104
- },
105
- });
106
- const { data: [duplicatedCart], } = await query.graph({
107
- entity: utils_1.Modules.CART,
108
- filters: {
109
- id: newCart.id,
110
- },
111
- fields: [
112
- "id",
113
- "email",
114
- "customer.id",
115
- "type",
116
- "metadata",
117
- "sales_channel_id",
118
- "completed_at",
119
- "billing_address.*",
120
- "shipping_address.*",
121
- "items.*",
122
- "items.adjustments.promotion.*",
123
- "promotions.*",
124
- "region.*",
125
- "shipping_methods.*",
126
- "payment_collection.*",
127
- "currency_code",
128
- "total",
129
- "subtotal",
130
- "tax_total",
131
- "discount_total",
132
- "discount_subtotal",
133
- "discount_tax_total",
134
- "original_total",
135
- "original_tax_total",
136
- "item_total",
137
- "item_subtotal",
138
- "item_tax_total",
139
- "original_item_total",
140
- "original_item_subtotal",
141
- "original_item_tax_total",
142
- "shipping_total",
143
- "shipping_subtotal",
144
- "shipping_tax_total",
145
- "original_shipping_tax_total",
146
- "original_shipping_subtotal",
147
- "original_shipping_total",
148
- "credit_line_subtotal",
149
- "credit_line_tax_total",
150
- "credit_line_total",
151
- ],
152
- });
153
- res.json({
154
- cart: duplicatedCart,
155
- });
14
+ res.status(200).json({ cart: response.result });
156
15
  };
157
16
  exports.GET = GET;
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhcnRzL1tpZF0vZHVwbGljYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUtrQztBQUNsQyw0REFNb0M7QUFFN0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sRUFBQyxFQUFFLEVBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXZCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FDYixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsZUFBTyxDQUFDLElBQUk7UUFDcEIsT0FBTyxFQUFFO1lBQ1AsRUFBRTtTQUNIO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxhQUFhO1lBQ2IsTUFBTTtZQUNOLFVBQVU7WUFDVixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsU0FBUztZQUNULCtCQUErQjtZQUMvQixjQUFjO1lBQ2QsV0FBVztZQUNYLG9CQUFvQjtTQUNyQjtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsb0NBQW9DLENBQ3JDLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxFQUFFLGVBQWUsQ0FBQTtJQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksRUFBRSxnQkFB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
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
- if (typeof this.paymentCreateOptions.methodId !== "undefined") {
104
+ const methodId = this.paymentCreateOptions.methodId;
105
+ if (typeof methodId !== "undefined") {
106
+ const paymentMethodInput = paymentSession.data?.paymentMethodInput;
107
107
  paymentMethod = {
108
- id: this.paymentCreateOptions.methodId,
108
+ id: methodId,
109
109
  input: paymentMethodInput,
110
110
  };
111
111
  }
112
- const baseReturnUrl = (order?.sales_channel?.metadata?.pay_return_url ?? this.options_.returnUrl);
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.retrievePayment({
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.data?.amount
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
- let data;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQU9rQztBQVdsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENB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
578
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQU9rQztBQVlsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLFNBQVMsRUFBRTtnQkFDL0MsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUE7WUFFbkIsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixXQUFXO29CQUNULFFBQVEsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDekMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQzt3QkFDL0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxJQUFJLGNBQWMsQ0FBQyxDQUFBO2dCQUN0RCxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFBO1FBQ3BCLENBQUMsQ0FBQTtRQWxDQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU07WUFDVCxPQUFPLENBQUMsUUFBUTtnQkFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssYUFBYTtnQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtnQkFDL0IsS0FBSyxDQUFBO1FBRVAsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHNCQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQTtJQUM3QyxDQUFDO0lBMEJELHFCQUFxQixDQUNuQixLQUF5RSxFQUN6RSxjQUFpQztRQUVqQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQW9CLENBQUE7UUFDNUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUVsRCxNQUFNLFFBQVEsR0FBaUIsS0FBSyxDQUFDLEtBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekQsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFBRTtZQUNsRCxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDNUQsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQ2YsQ0FBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQ2xFO2dCQUNELFFBQVE7YUFDVDtZQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7U0FDekMsQ0FBQyxDQUFDLENBQUE7UUFFSCxNQUFNLFFBQVEsR0FBSSxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBYSxHQUFHLEdBQUcsQ0FBQTtRQUVqRSxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLElBQUksRUFBRSxVQUFVO2dCQUNoQixFQUFFLEVBQUUsVUFBVTtnQkFDZCxXQUFXLEVBQUUsVUFBVTtnQkFDdkIsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUNwQixRQUFRO2lCQUNUO2dCQUNELFFBQVEsRUFBRSxDQUFDO2FBQ1osQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFhLEdBQUcsR0FBRyxDQUFBO1FBRXRFLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLEVBQUUsRUFBRSxVQUFVO2dCQUNkLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixLQUFLLEVBQUU7b0JBQ0wsS0FBSyxFQUFFLGFBQWE7b0JBQ3BCLFFBQVE7aUJBQ1Q7Z0JBQ0QsUUFBUSxFQUFFLENBQUM7YUFDWixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsSUFBSSxhQUEyQyxDQUFBO1FBRS9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUE7UUFDbkQsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUE7WUFFbEUsYUFBYSxHQUFHO2dCQUNkLEVBQUUsRUFBRSxRQUFRO2dCQUNaLEtBQUssRUFBRSxrQkFBa0I7YUFDTixDQUFBO1FBQ3ZCLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FDaEIsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBeUI7WUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUE7UUFFekIsTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDOUMsYUFBYTtZQUNiLFNBQVMsRUFBRSxHQUFHLGFBQWEsV0FBVyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsWUFBWSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzdHLE1BQU0sRUFBRSxhQUFhO2dCQUNuQixDQUFDLENBQUMsSUFBQSx1Q0FBNkIsRUFBQyxhQUFhLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVO1lBQ2pELFlBQVksRUFBRTtnQkFDWixVQUFVO2FBQ1g7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQWEsR0FBRyxHQUFHLENBQUM7Z0JBQ3BFLFFBQVE7YUFDVDtZQUNELFFBQVEsRUFBRTtnQkFDUixTQUFTLEVBQ1AsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxVQUFVO2dCQUNqRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxTQUFTLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxTQUFTO2dCQUN2RSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFZO2dCQUN2QyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLO2dCQUM1RCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxJQUFJO2dCQUNqRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUM3QixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsT0FBTztvQkFDbEMsQ0FBQyxDQUFDO3dCQUNFLE9BQU8sRUFBRTs0QkFDUCxJQUFJLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPOzRCQUNuQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFOzRCQUNqRCxPQUFPLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFO3lCQUM1RDtxQkFDRjtvQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1I7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRTtnQkFDL0QsY0FBYyxFQUFFO29CQUNkLFNBQVMsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFVBQVU7b0JBQzVDLFFBQVEsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVM7b0JBQzFDLE1BQU0sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVM7b0JBQ3hDLFlBQVksRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVM7b0JBQzlDLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFdBQVc7b0JBQzNDLElBQUksRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUk7b0JBQ2pDLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUU7aUJBQzVEO2dCQUNELGVBQWUsRUFBRTtvQkFDZixTQUFTLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFVBQVU7b0JBQzdDLFFBQVEsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsU0FBUztvQkFDM0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTO29CQUN6QyxZQUFZLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFNBQVM7b0JBQy9DLE9BQU8sRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsV0FBVztvQkFDNUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJO29CQUNsQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUU7aUJBQzdEO2dCQUNELFFBQVE7YUFDVDtTQUNGLENBQUE7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUM3QyxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUNwQixPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEdBQ1E7UUFDckIsT0FBTztZQUNMLElBQUksRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBb0IsRUFBQztZQUM5QyxFQUFFLEVBQUUsZ0JBQU0sQ0FBQyxVQUFVLEVBQUU7U0FDeEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixLQUE0QjtRQUU1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDeEIsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFBO1lBRW5ELE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQTtRQUNuQyxDQUFDO1FBRUQsT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSw0QkFBb0IsQ0FBQyxVQUFVLEVBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQ2xCLEtBQTBCO1FBRTFCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBaUIsQ0FBQTtRQUV4QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix3QkFBd0IsQ0FDekIsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ3pDLElBQUksRUFBRTtvQkFDSixFQUFFO2lCQUNIO2FBQ0YsQ0FBQyxDQUFxQyxDQUFBO1lBRXZDLDRFQUE0RTtZQUM1RSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxLQUFLLDRCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0RCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3JDLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDekMsSUFBSSxFQUFFO29CQUNKLEVBQUU7aUJBQ0g7YUFDRixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBOEIsQ0FBQyxDQUFBO1lBRXBELElBQUksTUFBTSxLQUFLLDRCQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qiw4Q0FBOEMsTUFBTSxFQUFFLENBQ3ZELENBQUE7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsZ0JBQWdCLEVBQUUseUJBQ2hCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUE0QixDQUFBLENBQUMsYUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBNEIsQ0FBQSxDQUFDLEtBQUssRUFBRSxDQUN0RCxDQUFBO1lBRUgsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUN6QyxJQUFJLEVBQUU7b0JBQ0osRUFBRTtpQkFDSDthQUNGLENBQUMsQ0FBQTtZQUVGLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2FBQ25CLENBQUE7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDckUsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQXlCO1FBQzNDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBaUIsQ0FBQTtRQUV4QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix3QkFBd0IsQ0FDekIsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRXJELE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUE0QixDQUFBLENBQUMsS0FBSyxDQUFBO1lBQzdELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFBO1lBRXhDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixtREFBbUQsQ0FDcEQsQ0FBQTtZQUNILENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRztvQkFDdkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUU7aUJBQ2pDO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsMkJBQTJCLEVBQUUsd0JBQXdCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxVQUFVLENBQ3ZGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDakIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDZixDQUFBO1lBRUgsT0FBTztnQkFDTCxJQUFJLEVBQUUsRUFBQyxHQUFHLE1BQU0sRUFBQzthQUNsQixDQUFBO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQ3JFLE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUF5QjtRQUMzQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQWlCLENBQUE7UUFFeEMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUUvQyxNQUFNLGtCQUFrQixHQUFvQjtnQkFDMUMsNEJBQWdCLENBQUMsTUFBTTtnQkFDdkIsNEJBQWdCLENBQUMsT0FBTztnQkFDeEIsNEJBQWdCLENBQUMsU0FBUztnQkFDMUIsNEJBQWdCLENBQUMsU0FBUztnQkFDMUIsNEJBQWdCLENBQUMsU0FBUztnQkFDMUIsNEJBQWdCLENBQUMsVUFBVTthQUM1QixDQUFBO1lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsTUFBTTtvQkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDZixnQkFBZ0IsRUFBRSxvREFBb0QsQ0FDdkUsQ0FBQTtnQkFDSCxPQUFPO29CQUNMLElBQUksRUFBRTt3QkFDSixFQUFFO3FCQUNIO2lCQUNGLENBQUE7WUFDSCxDQUFDO1lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsaUNBQWlDLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3hELENBQUE7Z0JBQ0QsT0FBTyxFQUFDLElBQUksRUFBRSxPQUE4QixFQUFDLENBQUE7WUFDL0MsQ0FBQyxDQUFDLENBQUE7WUFFRixJQUFJLENBQUMsTUFBTTtnQkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSx5QkFBeUIsQ0FBQyxDQUFBO1lBRWhFLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFVBQWlDO2FBQ3hDLENBQUE7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDdEUsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQXlCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsS0FBNEI7UUFFNUIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFZLENBQUE7UUFFbkMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7WUFFdEQ7Ozs7O2VBS0c7WUFDSCxNQUFNLFNBQVMsR0FBRztnQkFDaEIsQ0FBQyw0QkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxPQUFPO2dCQUNyRCxvRUFBb0U7Z0JBQ3BFLENBQUMsNEJBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsT0FBTztnQkFDM0QsQ0FBQyw0QkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxPQUFPO2dCQUMzRCxDQUFDLDRCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLE9BQU87Z0JBQzNELENBQUMsNEJBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTtnQkFDeEQsQ0FBQyw0QkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxRQUFRO2dCQUN6RCxDQUFDLDRCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLFFBQVE7Z0JBQzNELENBQUMsNEJBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTtnQkFDM0QsQ0FBQyw0QkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxRQUFRO2dCQUMzRCxDQUFDLDRCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLDRCQUFvQixDQUFDLEtBQUs7Z0JBQ3RELENBQUMsNEJBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxLQUFLO2dCQUMvRCxDQUFDLDRCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLGFBQWE7Z0JBQ3RFLENBQUMsNEJBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsT0FBTztnQkFDdkQsQ0FBQyw0QkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxVQUFVO2dCQUM3RCxDQUFDLDRCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLGFBQWE7Z0JBQ3RFLENBQUMsNEJBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTtnQkFDdEQsQ0FBQyw0QkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxRQUFRO2FBQzdELENBQUE7WUFFRCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBeUIsQ0FBQTtZQUVuRSxJQUFJLENBQUMsTUFBTTtnQkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDaEIsZ0JBQWdCLEVBQUUsWUFBWSxNQUFNLGdCQUFnQixZQUFZLEdBQUcsQ0FDcEUsQ0FBQTtZQUVILE9BQU87Z0JBQ0wsTUFBTSxFQUFFLFlBQVk7YUFDckIsQ0FBQTtRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLHVDQUF1QyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUM5RCxDQUFBO1lBQ0QsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQ25CLEtBQTJCO1FBRTNCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBWSxDQUFBO1FBRW5DLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxtQkFBVyxDQUNuQix3QkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLHdCQUF3QixDQUN6QixDQUFBO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7WUFFNUMsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBMkI7YUFDbEMsQ0FBQTtRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLGlDQUFpQyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN4RCxDQUFBO1lBQ0QsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQXlCO1FBQzNDLDZFQUE2RTtRQUM3RSxvQkFBb0I7UUFDcEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxPQUczQixDQUFBO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNuRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7b0JBQ3BFLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3RFLENBQUMsQ0FBQyxDQUFBO2dCQUVGLElBQUksQ0FBQyxNQUFNO29CQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLGdCQUFnQixJQUFJLENBQUMsRUFBRSxxQ0FBcUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FDOUcsQ0FBQTtnQkFFSCxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQTJCLEVBQUMsQ0FBQTtZQUM1QyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7Z0JBQ3JFLE1BQU0sS0FBSyxDQUFBO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFBO0lBQ25CLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPO1lBQ0wsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUM5QyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQzlDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRSxDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLE9BQTBDO1FBRTFDLE1BQU0sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLE9BQU8sQ0FBQTtRQUV4QyxJQUFJLENBQUM7WUFDSCxJQUFJLE9BQU8sR0FBeUIsSUFBSSxDQUFBO1lBRXhDLHdFQUF3RTtZQUN4RSxtREFBbUQ7WUFDbkQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO29CQUN0RCxJQUFJLEVBQUU7d0JBQ0osRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRO3FCQUNsQjtpQkFDRixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDL0QsQ0FBQyxDQUFDLENBQXFDLENBQUE7Z0JBRXZDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDYixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQixtQkFBbUIsQ0FDcEIsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELE9BQU8sR0FBRyxXQUFXLENBQUE7WUFDdkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHlFQUF5RTtnQkFDekUsc0VBQXNFO2dCQUN0RSw4QkFBOEI7Z0JBQzlCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBVyxDQUFBO2dCQUM3RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQVcsQ0FBQTtnQkFDM0QsTUFBTSxrQkFBa0IsR0FDckIsT0FBTyxDQUFDLHFCQUFxQixDQUFZLElBQUksUUFBUSxDQUFBO2dCQUN4RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFXLENBQUE7Z0JBRWhELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7Z0JBRTFDLElBQUksZUFBZSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUMvQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsd0JBQWdCLENBQUMsWUFBWSxFQUM3QiwwQkFBMEIsQ0FDM0IsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDWixNQUFNLElBQUksbUJBQVcsQ0FDbkIsd0JBQWdCLENBQUMsWUFBWSxFQUM3QiwrQkFBK0IsY0FBYyxFQUFFLENBQ2hELENBQUE7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDMUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFFOUQsSUFBSSxtQkFBbUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLHdCQUFnQixDQUFDLFlBQVksRUFDN0IsbUJBQW1CLENBQ3BCLENBQUE7Z0JBQ0gsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDO3dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtvQkFDMUMsQ0FBQztvQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztnQkFDaEIsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQzFCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBdUIsQ0FBQTtnQkFDeEMsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUE7WUFDekUsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHO2dCQUNmLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVU7Z0JBQzNDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHO2FBQ25DLENBQUE7WUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1lBQzlDLENBQUM7WUFFRCxRQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVCLEtBQUssNEJBQWdCLENBQUMsSUFBSTtvQkFDeEIsT0FBTzt3QkFDTCxNQUFNLEVBQUUsc0JBQWMsQ0FBQyxVQUFVO3dCQUNqQyxJQUFJLEVBQUUsUUFBUTtxQkFDZixDQUFBO2dCQUNILEtBQUssNEJBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUMzQixLQUFLLDRCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDakMsS0FBSyw0QkFBZ0IsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLEtBQUssNEJBQWdCLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxLQUFLLDRCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDakMsS0FBSyw0QkFBZ0IsQ0FBQyxNQUFNO29CQUMxQixPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLE9BQU87d0JBQzlCLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0gsS0FBSyw0QkFBZ0IsQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLEtBQUssNEJBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUM5QixLQUFLLDRCQUFnQixDQUFDLFNBQVMsQ0FBQztnQkFDaEMsS0FBSyw0QkFBZ0IsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLEtBQUssNEJBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxLQUFLLDRCQUFnQixDQUFDLFVBQVU7b0JBQzlCLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDOUI7d0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjt3QkFDNUIsSUFBSSxFQUFFOzRCQUNKLGlGQUFpRjs0QkFDakYsRUFBRSxFQUFFLE9BQU8sQ0FBQyxTQUFTO3lCQUN0QjtxQkFDRixFQUNELEVBQUUsQ0FDSCxDQUFBO29CQUVELE9BQU87d0JBQ0wsTUFBTSxFQUFFLHNCQUFjLENBQUMsUUFBUTt3QkFDL0IsSUFBSSxFQUFFLFFBQVE7cUJBQ2YsQ0FBQTtnQkFDSCxLQUFLLDRCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDOUIsS0FBSyw0QkFBZ0IsQ0FBQyxnQkFBZ0I7b0JBQ3BDLE9BQU87d0JBQ0wsTUFBTSxFQUFFLHNCQUFjLENBQUMsTUFBTTt3QkFDN0IsSUFBSSxFQUFFLFFBQVE7cUJBQ2YsQ0FBQTtnQkFDSCxLQUFLLDRCQUFnQixDQUFDLGVBQWUsQ0FBQztnQkFDdEMsS0FBSyw0QkFBZ0IsQ0FBQyxlQUFlO29CQUNuQyxPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLGFBQWE7d0JBQ3BDLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0gsS0FBSyw0QkFBZ0IsQ0FBQyxTQUFTO29CQUM3QixPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLFVBQVU7d0JBQ2pDLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0g7b0JBQ0UsT0FBTzt3QkFDTCxNQUFNLEVBQUUsc0JBQWMsQ0FBQyxhQUFhO3dCQUNwQyxJQUFJLEVBQUUsUUFBUTtxQkFDZixDQUFBO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLHdDQUF3QyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDcEUsQ0FBQTtZQUVELDZFQUE2RTtZQUM3RSxNQUFNLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDakQsSUFBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUM7YUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQTtZQUU5QixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU87b0JBQ0wsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixVQUFVLEVBQUcsT0FBTyxFQUFFLFFBQWdDLEVBQUUsVUFBVTt3QkFDbEUsTUFBTSxFQUFFLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFnQixDQUFDO3dCQUNoRCxHQUFHLE9BQU87cUJBQ1g7aUJBQ0YsQ0FBQTtZQUNILENBQUM7WUFFRCxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxrQkFBZSxPQUFPLENBQUEifQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXdCYSxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsZ0JBQWdCO0lBQzdCLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsS0FBSyxFQUFFLFdBQVc7SUFDbEIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixNQUFNLEVBQUUsWUFBWTtJQUNwQixTQUFTLEVBQUUsZUFBZTtJQUMxQixPQUFPLEVBQUUsYUFBYTtJQUN0QixRQUFRLEVBQUUsY0FBYztJQUN4QixPQUFPLEVBQUUsYUFBYTtJQUN0QixLQUFLLEVBQUUsV0FBVztJQUNsQixPQUFPLEVBQUUsYUFBYTtJQUN0QixNQUFNLEVBQUUsWUFBWTtJQUNwQixRQUFRLEVBQUUsY0FBYztJQUN4QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsV0FBVztJQUNsQixHQUFHLEVBQUUsU0FBUztJQUNkLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsU0FBUyxFQUFFLGVBQWU7Q0FDM0IsQ0FBQTtBQUtELDJDQUF3QjtBQUN4QiwwQ0FBdUI7QUFDdkIsZ0RBQTZCIn0=
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-TBD-blue.svg" />
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
- TBD from here
35
+ Don’t have an account with Pay. yet? [Register now!](https://signup.pay.nl/welcome?id=M-1030-9252)
35
36
 
36
- ## Getting Started
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
- - [Local Development and Customization](#local-development-and-customization)
51
- - [License](#license)
64
+ - [Medusa v1 Support](#medusa-v1-support)
52
65
 
53
- ## Features
66
+ ## Demo store
54
67
 
55
- - **Multiple Payment Methods**: Supports a wide range of Pay payment methods including:
68
+ Visit the demo store here: https://pay-demo.webbers.com
56
69
 
57
- - iDEAL
58
- - Bancontact
59
- - Credit Card
60
- - PayPal
61
- - Apple Pay
62
- - Gift Card
70
+ ## Pay. payment methods
63
71
 
64
- - **Easily Extendable**: The modular architecture makes it easy to add support for additional Pay payment methods.
72
+ ### Card payment methods
65
73
 
66
- - **Webhook Support**: Full support for Pay webhooks for real-time payment status updates.
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.3.0 or later
154
+ - Medusa server v2.20.1 or later
73
155
  - Node.js v20 or later
74
- - A [Pay](https://www.pay.nl/en/) account and token & secret with payment methods enabled.
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
- ## Configuration Options
205
+ ### Configuration Options
127
206
 
128
- | Option | Description | Default |
129
- |----------------------|-----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
130
- | `atCode` | Your Pay AT code | Required |
131
- | `apiToken` | Your Pay API token | Required |
132
- | `slCode` | Your Pay sales channel code | Required |
133
- | `slSecret` | Your Pay sales channel secret | Required |
134
- | `returnUrl` | The URL to return to after payment | Required |
135
- | `medusaUrl` | The URL of your Medusa server | Required |
136
- | `testMode` | Whether to enable test payments | Optional |
137
- | `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). |
138
- | `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"}'` |
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
- ## Environment Variables
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
- ### Client-Side Integration
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
- ### Supported Payment Methods
298
+ ### Duplicate cart endpoint
177
299
 
178
- The plugin currently supports the following Pay payment methods:
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
- | Payment Method | Provider ID |
181
- |----------------|-------------------------|
182
- | iDEAL | `pp_pay-ideal_pay` |
183
- | Credit Card | `pp_pay-card_pay` |
184
- | Bancontact | `pp_pay-bancontact_pay` |
185
- | Gift Card | `pp_pay-giftcard_pay` |
186
- | PayPal | `pp_pay-paypal_pay` |
187
- | Apple Pay | `pp_pay-apple-pay_pay` |
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 support for additional Pay payment methods, create a new service in `src/providers/Pay/services` that extends the
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
- ## Adding payment method icons
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
- ## License
352
+ ## Medusa v1 Support
230
353
 
231
- TBD
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": "1.0.15",
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-other",
29
- "medusa-plugin",
30
- "medusa-v2"
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.8.4",
39
- "@medusajs/cli": "^2.8.4",
40
- "@medusajs/framework": "^2.8.4",
41
- "@medusajs/icons": "^2.8.4",
42
- "@medusajs/medusa": "^2.8.4",
43
- "@medusajs/test-utils": "^2.8.4",
44
- "@medusajs/types": "^2.8.4",
45
- "@medusajs/ui": "^4.0.14",
46
- "@mikro-orm/cli": "^6.4.16",
47
- "@mikro-orm/core": "^6.4.16",
48
- "@mikro-orm/knex": "^6.4.16",
49
- "@mikro-orm/migrations": "^6.4.16",
50
- "@mikro-orm/postgresql": "^6.4.16",
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.1",
53
- "@types/react": "^18.3.23",
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.2",
57
- "prettier": "^3.6.0",
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.6.2",
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.8.4",
68
- "@medusajs/cli": "^2.8.4",
69
- "@medusajs/core-flows": "^2.8.4",
70
- "@medusajs/framework": "^2.8.4",
71
- "@medusajs/icons": "^2.8.4",
72
- "@medusajs/js-sdk": "^2.8.4",
73
- "@medusajs/medusa": "^2.8.4",
74
- "@medusajs/test-utils": "^2.8.4",
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",