@webbers/pay-payments-medusa 2.2.41 → 2.2.46
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 +6 -2
- package/.medusa/server/src/admin/index.js +1 -1
- package/.medusa/server/src/admin/index.mjs +1 -1
- package/.medusa/server/src/api/hooks/pay/[provider]/route.d.ts.map +1 -1
- package/.medusa/server/src/api/hooks/pay/[provider]/route.js +29 -9
- package/.medusa/server/src/constants.d.ts +5 -0
- package/.medusa/server/src/constants.d.ts.map +1 -1
- package/.medusa/server/src/constants.js +268 -43
- package/.medusa/server/src/providers/pay/core/constants.d.ts +10 -1
- package/.medusa/server/src/providers/pay/core/constants.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/constants.js +16 -5
- package/.medusa/server/src/providers/pay/core/http-client.d.ts +0 -6
- package/.medusa/server/src/providers/pay/core/http-client.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/http-client.js +1 -19
- package/.medusa/server/src/providers/pay/core/pay-base.d.ts +9 -2
- package/.medusa/server/src/providers/pay/core/pay-base.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/pay-base.js +48 -11
- package/.medusa/server/src/providers/pay/core/pay-client.d.ts +18 -5
- package/.medusa/server/src/providers/pay/core/pay-client.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/core/pay-client.js +40 -12
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.d.ts +47 -1
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.d.ts.map +1 -1
- package/.medusa/server/src/providers/pay/services/pay-direct-debit.js +196 -1
- package/.medusa/server/src/providers/pay/types/order.d.ts +141 -72
- package/.medusa/server/src/providers/pay/types/order.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/direct-debit-exchange.d.ts +12 -0
- package/.medusa/server/src/subscribers/direct-debit-exchange.d.ts.map +1 -0
- package/.medusa/server/src/subscribers/direct-debit-exchange.js +184 -0
- package/.medusa/server/src/subscribers/payment-canceled.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/payment-canceled.js +17 -4
- package/.medusa/server/src/subscribers/payment-failed.d.ts +1 -0
- package/.medusa/server/src/subscribers/payment-failed.d.ts.map +1 -1
- package/.medusa/server/src/subscribers/payment-failed.js +13 -3
- package/.medusa/server/src/utils/directDebitExchange.d.ts +28 -0
- package/.medusa/server/src/utils/directDebitExchange.d.ts.map +1 -0
- package/.medusa/server/src/utils/directDebitExchange.js +108 -0
- package/package.json +6 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PayPaymentStatus = exports.PayApiPath = exports.PayEnvironmentPaths = exports.PAY_CACHE_KEY = void 0;
|
|
3
|
+
exports.PayDirectDebitStatusCode = exports.PayPaymentStatus = exports.PayApiPath = exports.PayEnvironmentPaths = exports.PAY_CACHE_KEY = void 0;
|
|
4
4
|
exports.PAY_CACHE_KEY = {
|
|
5
5
|
CONFIG: "pay_config_cache",
|
|
6
6
|
SALES_CHANNEL_OPTIONS: "pay_sales_channel_options",
|
|
@@ -8,7 +8,6 @@ exports.PAY_CACHE_KEY = {
|
|
|
8
8
|
exports.PayEnvironmentPaths = {
|
|
9
9
|
REST_API: "https://rest.pay.nl/v2",
|
|
10
10
|
TGU_API: "https://connect.pay.nl/v1",
|
|
11
|
-
REST_API_v3: "https://rest-api.pay.nl/v3",
|
|
12
11
|
};
|
|
13
12
|
exports.PayApiPath = {
|
|
14
13
|
GET_CONFIG: "/services/config?serviceId={id}",
|
|
@@ -19,8 +18,10 @@ exports.PayApiPath = {
|
|
|
19
18
|
ORDER_ABORT: "/orders/{id}/abort",
|
|
20
19
|
GET_TRANSACTION: "/transactions/{id}",
|
|
21
20
|
TRANSACTION_REFUND: "/transactions/{id}/refund",
|
|
22
|
-
DIRECT_DEBIT: "/
|
|
23
|
-
|
|
21
|
+
DIRECT_DEBIT: "/directdebits/mandates",
|
|
22
|
+
DIRECT_DEBIT_MANDATE: "/directdebits/mandates/{id}",
|
|
23
|
+
DIRECT_DEBIT_INFO: "/directdebits/{id}",
|
|
24
|
+
DIRECT_DEBIT_INFO_BY_MANDATE: "/directdebits?mandate[eq]={id}",
|
|
24
25
|
};
|
|
25
26
|
// Transaction Statuses: https://developer.pay.nl/docs/transaction-statuses#after-processing-statuses
|
|
26
27
|
exports.PayPaymentStatus = {
|
|
@@ -49,4 +50,14 @@ exports.PayPaymentStatus = {
|
|
|
49
50
|
REFUND: -81,
|
|
50
51
|
PARTIAL_REFUND: -82,
|
|
51
52
|
};
|
|
52
|
-
|
|
53
|
+
// Statuses for direct debits created via the mandate API, these differ from
|
|
54
|
+
// the transaction statuses above
|
|
55
|
+
exports.PayDirectDebitStatusCode = {
|
|
56
|
+
COLLECTED: 100,
|
|
57
|
+
FAILED: 106,
|
|
58
|
+
STORNO: 127,
|
|
59
|
+
PENDING: 91,
|
|
60
|
+
SENT: 94,
|
|
61
|
+
PROCESSING: 526,
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXkvY29yZS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR2EsUUFBQSxhQUFhLEdBQUc7SUFDM0IsTUFBTSxFQUFFLGtCQUFrQjtJQUMxQixxQkFBcUIsRUFBRSwyQkFBMkI7Q0FDMUMsQ0FBQTtBQUVHLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsUUFBUSxFQUFFLHdCQUF3QjtJQUNsQyxPQUFPLEVBQUUsMkJBQTJCO0NBQ3JDLENBQUE7QUFFWSxRQUFBLFVBQVUsR0FBRztJQUN4QixVQUFVLEVBQUUsaUNBQWlDO0lBQzdDLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFlBQVksRUFBRSxxQkFBcUI7SUFDbkMsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLGVBQWUsRUFBRSxvQkFBb0I7SUFDckMsa0JBQWtCLEVBQUUsMkJBQTJCO0lBQy9DLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsb0JBQW9CLEVBQUUsNkJBQTZCO0lBQ25ELGlCQUFpQixFQUFFLG9CQUFvQjtJQUN2Qyw0QkFBNEIsRUFBRSxnQ0FBZ0M7Q0FDL0QsQ0FBQTtBQUVELHFHQUFxRztBQUN4RixRQUFBLGdCQUFnQixHQUFHO0lBQzlCLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsRUFBRTtJQUNSLFVBQVUsRUFBRSxFQUFFO0lBQ2QsVUFBVSxFQUFFLEVBQUU7SUFDZCxVQUFVLEVBQUUsRUFBRTtJQUNkLFVBQVUsRUFBRSxFQUFFO0lBQ2Qsc0JBQXNCO0lBQ3RCLE1BQU0sRUFBRSxDQUFDLEVBQUU7SUFDWCxPQUFPLEVBQUUsQ0FBQyxFQUFFO0lBQ1osU0FBUyxFQUFFLENBQUMsRUFBRTtJQUNkLFNBQVMsRUFBRSxDQUFDLEVBQUU7SUFDZCxTQUFTLEVBQUUsQ0FBQyxFQUFFO0lBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRTtJQUNaLGdCQUFnQixFQUFFLENBQUMsRUFBRTtJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixNQUFNLEVBQUUsRUFBRTtJQUNWLFNBQVMsRUFBRSxFQUFFO0lBQ2IsZUFBZSxFQUFFLEVBQUU7SUFDbkIsSUFBSSxFQUFFLEdBQUc7SUFDVCw0QkFBNEI7SUFDNUIsVUFBVSxFQUFFLENBQUMsRUFBRTtJQUNmLFNBQVMsRUFBRSxDQUFDLEVBQUU7SUFDZCxNQUFNLEVBQUUsQ0FBQyxFQUFFO0lBQ1gsY0FBYyxFQUFFLENBQUMsRUFBRTtDQUNYLENBQUE7QUFFViw0RUFBNEU7QUFDNUUsaUNBQWlDO0FBQ3BCLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEMsU0FBUyxFQUFFLEdBQUc7SUFDZCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxHQUFHO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxJQUFJLEVBQUUsRUFBRTtJQUNSLFVBQVUsRUFBRSxHQUFHO0NBQ1AsQ0FBQSJ9
|
|
@@ -7,16 +7,10 @@ export declare class HttpClient {
|
|
|
7
7
|
readonly testMode: boolean;
|
|
8
8
|
protected readonly restApiUrl: string;
|
|
9
9
|
protected readonly tguApiUrl: string;
|
|
10
|
-
protected readonly restApiV3Url: string;
|
|
11
10
|
constructor({ options, logger }: {
|
|
12
11
|
options: ProviderOptions;
|
|
13
12
|
logger: Logger;
|
|
14
13
|
});
|
|
15
|
-
restApiV3Request<T, TResponse>({ endpoint, data, method, }: {
|
|
16
|
-
endpoint: string;
|
|
17
|
-
data?: T;
|
|
18
|
-
method?: RequestInit["method"];
|
|
19
|
-
}): Promise<TResponse>;
|
|
20
14
|
apiRequest<T, TResponse>({ endpoint, data, method, }: {
|
|
21
15
|
endpoint: string;
|
|
22
16
|
data?: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAGxC,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAC5C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACjC,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,QAAQ,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACrC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAGxC,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAC5C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACjC,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,QAAQ,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACrC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAExB,EAAC,OAAO,EAAE,MAAM,EAAC,EAAE;QAAC,OAAO,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IASnE,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,EAC7B,QAAQ,EACR,IAAI,EACJ,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,CAAC,CAAA;QACR,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;KAC/B,GAAG,OAAO,CAAC,SAAS,CAAC;IAIhB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,EAC7B,QAAQ,EACR,IAAI,EACJ,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,CAAC,CAAA;QACR,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;KAC/B,GAAG,OAAO,CAAC,SAAS,CAAC;IAItB;;;;;;OAMG;IACG,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,EAC3B,GAAG,EACH,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE;QACD,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,CAAC,EAAE,CAAC,CAAA;QACR,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,GAAG,OAAO,CAAC,SAAS,CAAC;IA6DtB,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG;CAkBhC"}
|
|
@@ -11,24 +11,6 @@ class HttpClient {
|
|
|
11
11
|
this.debugMode = options.debugMode ?? options.testMode ?? true;
|
|
12
12
|
this.restApiUrl = constants_1.PayEnvironmentPaths.REST_API;
|
|
13
13
|
this.tguApiUrl = options.tguApiUrl ?? constants_1.PayEnvironmentPaths.TGU_API;
|
|
14
|
-
this.restApiV3Url = constants_1.PayEnvironmentPaths.REST_API_v3;
|
|
15
|
-
}
|
|
16
|
-
async restApiV3Request({ endpoint, data, method, }) {
|
|
17
|
-
const body = new URLSearchParams();
|
|
18
|
-
if (data) {
|
|
19
|
-
const keys = Object.keys(data);
|
|
20
|
-
for (const key of keys) {
|
|
21
|
-
body.append(key, `${data[key]}`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return this.request_({
|
|
25
|
-
url: `${this.restApiV3Url}${endpoint}`,
|
|
26
|
-
data: body.toString(),
|
|
27
|
-
method,
|
|
28
|
-
headers: {
|
|
29
|
-
"Content-Type": "application/x-www-form-urlencoded",
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
14
|
}
|
|
33
15
|
async apiRequest({ endpoint, data, method, }) {
|
|
34
16
|
return this.request_({ url: `${this.restApiUrl}${endpoint}`, data, method });
|
|
@@ -105,4 +87,4 @@ class HttpClient {
|
|
|
105
87
|
}
|
|
106
88
|
}
|
|
107
89
|
exports.HttpClient = HttpClient;
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL2h0dHAtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUErQztBQUUvQyxxREFBcUQ7QUFFckQsTUFBYSxVQUFVO0lBUXJCLFlBQVksRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUE2QztRQUN2RSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQTtRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLCtCQUFtQixDQUFDLFFBQVEsQ0FBQTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksK0JBQW1CLENBQUMsT0FBTyxDQUFBO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFlLEVBQzdCLFFBQVEsRUFDUixJQUFJLEVBQ0osTUFBTSxHQUtQO1FBQ0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBZSxFQUM3QixRQUFRLEVBQ1IsSUFBSSxFQUNKLE1BQU0sR0FLUDtRQUNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFF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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CustomerDTO, Logger, OrderDTO, ProviderWebhookPayload, SalesChannelDTO, WebhookActionResult } from "@medusajs/framework/types";
|
|
2
2
|
import { AuthorizePaymentInput, AuthorizePaymentOutput, CancelPaymentInput, CancelPaymentOutput, CapturePaymentInput, CapturePaymentOutput, DeletePaymentInput, DeletePaymentOutput, GetPaymentStatusInput, GetPaymentStatusOutput, InitiatePaymentInput, InitiatePaymentOutput, PaymentSessionDTO, RefundPaymentInput, RefundPaymentOutput, RetrievePaymentInput, RetrievePaymentOutput, UpdatePaymentInput, UpdatePaymentOutput } from "@medusajs/types";
|
|
3
3
|
import { AbstractEventBusModuleService, AbstractPaymentProvider } from "@medusajs/framework/utils";
|
|
4
|
-
import { CreateOrder, PaymentOptions, ProviderOptions } from "../types";
|
|
4
|
+
import { CreateDirectDebitRequest, CreateOrder, OrderResponse, PaymentOptions, ProviderOptions } from "../types";
|
|
5
5
|
import { PayClient } from "./pay-client";
|
|
6
6
|
/**
|
|
7
7
|
* Implementation of Pay. Payment Provider for Medusa
|
|
@@ -31,7 +31,7 @@ declare abstract class PayBase extends AbstractPaymentProvider<ProviderOptions>
|
|
|
31
31
|
createPayOrderPayload(order: OrderDTO & {
|
|
32
32
|
customer: CustomerDTO;
|
|
33
33
|
sales_channel: SalesChannelDTO;
|
|
34
|
-
}, paymentSession: PaymentSessionDTO): Omit<CreateOrder, "serviceId">;
|
|
34
|
+
}, paymentSession: PaymentSessionDTO): Omit<CreateOrder, "serviceId"> | Omit<CreateDirectDebitRequest, "serviceId">;
|
|
35
35
|
/**
|
|
36
36
|
* Initiates a new payment with Pay.
|
|
37
37
|
* @param input - The payment initiation input
|
|
@@ -89,6 +89,13 @@ declare abstract class PayBase extends AbstractPaymentProvider<ProviderOptions>
|
|
|
89
89
|
*/
|
|
90
90
|
updatePayment(input: UpdatePaymentInput): Promise<UpdatePaymentOutput>;
|
|
91
91
|
get keyMap(): Record<string, string>;
|
|
92
|
+
/**
|
|
93
|
+
* A failure exchange can refer to one payment attempt while the Pay. order was
|
|
94
|
+
* paid through a later attempt, so the live status is checked before acting on
|
|
95
|
+
* it. Returns false when the status cannot be verified, keeping the regular
|
|
96
|
+
* failure handling in place.
|
|
97
|
+
*/
|
|
98
|
+
protected isPaymentLivePaid(payment: OrderResponse): Promise<boolean>;
|
|
92
99
|
/**
|
|
93
100
|
* Processes webhook data from Pay.
|
|
94
101
|
* @param payload - The webhook payload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-base.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EAEtB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EAOxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"pay-base.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,9 +216,8 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
216
216
|
},
|
|
217
217
|
}));
|
|
218
218
|
// If the Pay order is set to authorize we need to capture the order in Pay.
|
|
219
|
-
if (payment
|
|
219
|
+
if (payment.data.status.code === constants_1.PayPaymentStatus.AUTHORIZE) {
|
|
220
220
|
await this.client_.captureOrder(id);
|
|
221
|
-
// Refetch payment data
|
|
222
221
|
payment = (await this.retrievePayment({
|
|
223
222
|
data: {
|
|
224
223
|
id,
|
|
@@ -367,7 +366,7 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
367
366
|
};
|
|
368
367
|
const mappedStatus = statusMap[status.code];
|
|
369
368
|
this.debug_ &&
|
|
370
|
-
this.logger_.info(`Pay. payment ${id} status: ${status} (mapped to: ${mappedStatus})`);
|
|
369
|
+
this.logger_.info(`Pay. payment ${id} status: ${status.code} (mapped to: ${mappedStatus})`);
|
|
371
370
|
return {
|
|
372
371
|
status: mappedStatus,
|
|
373
372
|
};
|
|
@@ -433,6 +432,25 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
433
432
|
...(this.options_.otherSlCodes ? this.options_.otherSlCodes : {}),
|
|
434
433
|
};
|
|
435
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* A failure exchange can refer to one payment attempt while the Pay. order was
|
|
437
|
+
* paid through a later attempt, so the live status is checked before acting on
|
|
438
|
+
* it. Returns false when the status cannot be verified, keeping the regular
|
|
439
|
+
* failure handling in place.
|
|
440
|
+
*/
|
|
441
|
+
async isPaymentLivePaid(payment) {
|
|
442
|
+
try {
|
|
443
|
+
const live = await this.client_
|
|
444
|
+
.getOrder(payment.id)
|
|
445
|
+
.catch(() => this.client_.getTransaction(payment.orderId));
|
|
446
|
+
return (live.status.code === constants_1.PayPaymentStatus.PAID ||
|
|
447
|
+
live.status.code === constants_1.PayPaymentStatus.AUTHORIZE);
|
|
448
|
+
}
|
|
449
|
+
catch (error) {
|
|
450
|
+
this.logger_.warn(`Could not verify live Pay. status for ${payment.id}: ${error.message}`);
|
|
451
|
+
return false;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
436
454
|
/**
|
|
437
455
|
* Processes webhook data from Pay.
|
|
438
456
|
* @param payload - The webhook payload
|
|
@@ -450,9 +468,6 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
450
468
|
id: data.order_id,
|
|
451
469
|
},
|
|
452
470
|
}));
|
|
453
|
-
if (!payment) {
|
|
454
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Payment not found");
|
|
455
|
-
}
|
|
456
471
|
payment = paymentData;
|
|
457
472
|
}
|
|
458
473
|
else {
|
|
@@ -468,11 +483,15 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
468
483
|
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, "Invalid signature method");
|
|
469
484
|
}
|
|
470
485
|
if (!secret) {
|
|
471
|
-
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, `No secret key
|
|
486
|
+
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, `No secret key found for ${signatureKeyId}`);
|
|
472
487
|
}
|
|
473
488
|
const hmac = crypto_1.default.createHmac(signatureAlgorithm, secret);
|
|
474
|
-
const
|
|
475
|
-
|
|
489
|
+
const expectedSignature = hmac.update(rawData).digest();
|
|
490
|
+
const providedSignature = Buffer.from(signature ?? "", "hex");
|
|
491
|
+
// timingSafeEqual throws on buffers of unequal length, so compare
|
|
492
|
+
// the lengths first
|
|
493
|
+
if (expectedSignature.length !== providedSignature.length ||
|
|
494
|
+
!crypto_1.default.timingSafeEqual(expectedSignature, providedSignature)) {
|
|
476
495
|
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.INVALID_DATA, "Invalid signature");
|
|
477
496
|
}
|
|
478
497
|
if (this.debug_) {
|
|
@@ -501,7 +520,7 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
501
520
|
this.logger_.info(`PayPaymentStatus: ${payment.status.code}`);
|
|
502
521
|
this.logger_.info(JSON.stringify(baseData));
|
|
503
522
|
}
|
|
504
|
-
const isDirectDebit = payment
|
|
523
|
+
const isDirectDebit = payment.payments?.[0]?.paymentMethod?.id === 137;
|
|
505
524
|
switch (payment.status.code) {
|
|
506
525
|
case constants_1.PayPaymentStatus.AUTHORIZE:
|
|
507
526
|
case constants_1.PayPaymentStatus.PAID:
|
|
@@ -530,6 +549,13 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
530
549
|
};
|
|
531
550
|
}
|
|
532
551
|
else {
|
|
552
|
+
if (await this.isPaymentLivePaid(payment)) {
|
|
553
|
+
this.logger_.info(`Pay. order ${payment.id} is paid, ignoring ${payment.status.code} exchange for #${payment.reference}`);
|
|
554
|
+
return {
|
|
555
|
+
action: utils_1.PaymentActions.SUCCESSFUL,
|
|
556
|
+
data: baseData,
|
|
557
|
+
};
|
|
558
|
+
}
|
|
533
559
|
await this.eventBusService_.emit({
|
|
534
560
|
name: "pay_payment.canceled",
|
|
535
561
|
data: {
|
|
@@ -545,11 +571,22 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
545
571
|
case constants_1.PayPaymentStatus.DENIED_64:
|
|
546
572
|
case constants_1.PayPaymentStatus.CHARGEBACK:
|
|
547
573
|
case constants_1.PayPaymentStatus.FAILURE:
|
|
574
|
+
// A chargeback on a paid order is a legitimate failure, the other codes
|
|
575
|
+
// can belong to an attempt that was superseded by a paid one.
|
|
576
|
+
if (payment.status.code !== constants_1.PayPaymentStatus.CHARGEBACK &&
|
|
577
|
+
(await this.isPaymentLivePaid(payment))) {
|
|
578
|
+
this.logger_.info(`Pay. order ${payment.id} is paid, ignoring ${payment.status.code} exchange for #${payment.reference}`);
|
|
579
|
+
return {
|
|
580
|
+
action: utils_1.PaymentActions.SUCCESSFUL,
|
|
581
|
+
data: baseData,
|
|
582
|
+
};
|
|
583
|
+
}
|
|
548
584
|
await this.eventBusService_.emit({
|
|
549
585
|
name: "pay_payment.failed",
|
|
550
586
|
data: {
|
|
551
587
|
// This will be the Order ID that has been set during the creation of the payment
|
|
552
588
|
id: payment.reference,
|
|
589
|
+
statusCode: payment.status.code,
|
|
553
590
|
},
|
|
554
591
|
}, {});
|
|
555
592
|
return {
|
|
@@ -591,4 +628,4 @@ class PayBase extends utils_1.AbstractPaymentProvider {
|
|
|
591
628
|
}
|
|
592
629
|
}
|
|
593
630
|
exports.default = PayBase;
|
|
594
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQVNrQztBQVdsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLFNBQVMsRUFBRTtnQkFDL0MsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUE7WUFFbkIsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixXQUFXO29CQUNULFFBQVEsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDekMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQzt3QkFDL0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxJQUFJLGNBQWMsQ0FBQyxDQUFBO2dCQUN0RCxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFBO1FBQ3BCLENBQUMsQ0FBQTtRQWxDQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU07WUFDVCxPQUFPLENBQUMsU0FBUztnQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssYUFBYTtnQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtnQkFDL0IsS0FBSyxDQUFBO1FBRVAsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHNCQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQTtJQUM3QyxDQUFDO0lBMEJELHFCQUFxQixDQUNuQixLQUF5RSxFQUN6RSxjQUFpQztRQUVqQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQW9CLENBQUE7UUFDNUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUVsRCxNQUFNLFFBQVEsR0FBaUIsS0FBSyxDQUFDLEtBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekQsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFBRTtZQUNsRCxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDNUQsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQ2YsQ0FBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQ2xFO2dCQUNELFFBQVE7YUFDVDtZQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7U0FDekMsQ0FBQyxDQUFDLENBQUE7UUFFSCxNQUFNLFFBQVEsR0FBSSxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBYSxHQUFHLEdBQUcsQ0FBQTtRQUVqRSxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLElBQUksRUFBRSxVQUFVO2dCQUNoQixFQUFFLEVBQUUsVUFBVTtnQkFDZCxXQUFXLEVBQUUsVUFBVTtnQkFDdkIsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUNwQixRQUFRO2lCQUNUO2dCQUNELFFBQVEsRUFBRSxDQUFDO2FBQ1osQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFhLEdBQUcsR0FBRyxDQUFBO1FBRXRFLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLEVBQUUsRUFBRSxVQUFVO2dCQUNkLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixLQUFLLEVBQUU7b0JBQ0wsS0FBSyxFQUFFLGFBQWE7b0JBQ3BCLFFBQVE7aUJBQ1Q7Z0JBQ0QsUUFBUSxFQUFFLENBQUM7YUFDWixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsSUFBSSxhQUEyQyxDQUFBO1FBRS9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUE7UUFDbkQsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUE7WUFFbEUsYUFBYSxHQUFHO2dCQUNkLEVBQUUsRUFBRSxRQUFRO2dCQUNaLEtBQUssRUFBRSxrQkFBa0I7YUFDTixDQUFBO1FBQ3ZCLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FDaEIsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBeUI7WUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUE7UUFFekIsTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDOUMsYUFBYTtZQUNiLFNBQVMsRUFBRSxHQUFHLGFBQWEsV0FBVyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsWUFBWSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzdHLE1BQU0sRUFBRSxhQUFhO2dCQUNuQixDQUFDLENBQUMsSUFBQSx1Q0FBNkIsRUFBQyxhQUFhLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVO1lBQ2pELFlBQVksRUFBRTtnQkFDWixVQUFVO2FBQ1g7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQWEsR0FBRyxHQUFHLENBQUM7Z0JBQ3BFLFFBQVE7YUFDVDtZQUNELFFBQVEsRUFBRTtnQkFDUixTQUFTLEVBQ1AsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxVQUFVO2dCQUNqRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxTQUFTLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxTQUFTO2dCQUN2RSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFZO2dCQUN2QyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLO2dCQUM1RCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxJQUFJO2dCQUNqRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUM3QixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsT0FBTztvQkFDbEMsQ0FBQyxDQUFDO3dCQUNFLE9BQU8sRUFBRTs0QkFDUCxJQUFJLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPOzRCQUNuQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFOzRCQUNqRCxPQUFPLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFO3lCQUM1RDtxQkFDRjtvQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1I7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRTtnQkFDL0QsY0FBYyxFQUFFO29CQUNkLFNBQVMsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFVBQVU7b0JBQzVDLFFBQVEsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVM7b0JBQzFDLE1BQU0sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVM7b0JBQ3hDLFlBQVksRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVM7b0JBQzlDLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFdBQVc7b0JBQzNDLElBQUksRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUk7b0JBQ2pDLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUU7aUJBQzVEO2dCQUNELGVBQWUsRUFBRTtvQkFDZixTQUFTLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFVBQVU7b0JBQzdDLFFBQVEsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsU0FBUztvQkFDM0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTO29CQUN6QyxZQUFZLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFNBQVM7b0JBQy9DLE9BQU8sRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsV0FBVztvQkFDNUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJO29CQUNsQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUU7aUJBQzdEO2dCQUNELFFBQVE7YUFDVDtTQUNGLENBQUE7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUM1QyxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUNwQixPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEdBQ1E7UUFDckIsT0FBTztZQUNMLElBQUksRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBb0IsRUFBQztZQUM5QyxFQUFFLEVBQUUsZ0JBQU0sQ0FBQyxVQUFVLEVBQUU7U0FDeEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixLQUE0QjtRQUU1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDeEIsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFBO1lBRW5ELE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQTtRQUNuQyxDQUFDO1FBRUQsT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSw0QkFBb0IsQ0FBQyxVQUFVLEVBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQ2xCLEtBQTBCO1FBRTFCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBaUIsQ0FBQTtRQUV4QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix3QkFBd0IsQ0FDekIsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDeEMsSUFBSSxFQUFFO29CQUNKLEVBQUU7aUJBQ0g7YUFDRixDQUFDLENBQXFDLENBQUE7WUFFdkMsNEVBQTRFO1lBQzVFLElBQUksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxLQUFLLDRCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvRCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUVuQyx1QkFBdUI7Z0JBQ3ZCLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQztvQkFDcEMsSUFBSSxFQUFFO3dCQUNKLEVBQUU7cUJBQ0g7aUJBQ0YsQ0FBQyxDQUFxQyxDQUFBO1lBQ3pDLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDekMsSUFBSSxFQUFFO29CQUNKLEVBQUU7aUJBQ0g7YUFDRixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBOEIsQ0FBQyxDQUFBO1lBRXBELElBQUksTUFBTSxLQUFLLDRCQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qiw4Q0FBOEMsTUFBTSxFQUFFLENBQ3ZELENBQUE7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsZ0JBQWdCLEVBQUUseUJBQ2hCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUE0QixDQUFBLENBQUMsYUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBNEIsQ0FBQSxDQUFDLEtBQUssRUFBRSxDQUN0RCxDQUFBO1lBRUgsT0FBTztnQkFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQTBDO2FBQ3pELENBQUE7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDckUsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQ2xCLE1BQU0sRUFDTixJQUFJLEVBQ0osT0FBTyxHQUNZO1FBQ25CLE1BQU0sU0FBUyxHQUFHLElBQWdDLENBQUE7UUFDbEQsTUFBTSxFQUFFLEdBQUcsU0FBUyxFQUFFLE9BQU8sQ0FBQTtRQUU3QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix3QkFBd0IsQ0FDekIsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLFlBQVksR0FBRyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQTtZQUVoRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLG1EQUFtRCxDQUNwRCxDQUFBO1lBQ0gsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3hCLElBQUksaUJBQVMsQ0FBQyxjQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDaEQsQ0FBQTtZQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFO2dCQUNsRCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLE9BQU87b0JBQ2QsUUFBUSxFQUFFLFlBQVksQ0FBQyxXQUFXLEVBQUU7aUJBQ3JDO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsMkJBQTJCLEVBQUUsd0JBQXdCLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxNQUFNLEVBQUUsQ0FDNUYsQ0FBQTtZQUVILE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEVBQUMsR0FBRyxNQUFNLEVBQUM7YUFDbEIsQ0FBQTtRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUNyRSxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBeUI7UUFDM0MsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFpQixDQUFBO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7WUFFL0MsTUFBTSxrQkFBa0IsR0FBb0I7Z0JBQzFDLDRCQUFnQixDQUFDLE1BQU07Z0JBQ3ZCLDRCQUFnQixDQUFDLE9BQU87Z0JBQ3hCLDRCQUFnQixDQUFDLFNBQVM7Z0JBQzFCLDRCQUFnQixDQUFDLFNBQVM7Z0JBQzFCLDRCQUFnQixDQUFDLFNBQVM7Z0JBQzFCLDRCQUFnQixDQUFDLFVBQVU7YUFDNUIsQ0FBQTtZQUVELElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxDQUFDLE1BQU07b0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsZ0JBQWdCLEVBQUUsb0RBQW9ELENBQ3ZFLENBQUE7Z0JBQ0gsT0FBTztvQkFDTCxJQUFJLEVBQUU7d0JBQ0osRUFBRTtxQkFDSDtpQkFDRixDQUFBO1lBQ0gsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLGlDQUFpQyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN4RCxDQUFBO2dCQUNELE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBOEIsRUFBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUFBO1lBRUYsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUseUJBQXlCLENBQUMsQ0FBQTtZQUVoRSxPQUFPO2dCQUNMLElBQUksRUFBRSxVQUFpQzthQUN4QyxDQUFBO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQ3RFLE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUF5QjtRQUMzQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLEtBQTRCO1FBRTVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBWSxDQUFBO1FBRW5DLElBQUksQ0FBQztZQUNILE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRXREOzs7OztlQUtHO1lBQ0gsTUFBTSxTQUFTLEdBQUc7Z0JBQ2hCLENBQUMsNEJBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsT0FBTztnQkFDckQsb0VBQW9FO2dCQUNwRSxDQUFDLDRCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLE9BQU87Z0JBQzNELENBQUMsNEJBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsT0FBTztnQkFDM0QsQ0FBQyw0QkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxPQUFPO2dCQUMzRCxDQUFDLDRCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLDRCQUFvQixDQUFDLFFBQVE7Z0JBQ3hELENBQUMsNEJBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTtnQkFDekQsQ0FBQyw0QkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxRQUFRO2dCQUMzRCxDQUFDLDRCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLDRCQUFvQixDQUFDLFFBQVE7Z0JBQzNELENBQUMsNEJBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTtnQkFDM0QsQ0FBQyw0QkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxLQUFLO2dCQUN0RCxDQUFDLDRCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsNEJBQW9CLENBQUMsS0FBSztnQkFDL0QsQ0FBQyw0QkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxhQUFhO2dCQUN0RSxDQUFDLDRCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLDRCQUFvQixDQUFDLE9BQU87Z0JBQ3ZELENBQUMsNEJBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsNEJBQW9CLENBQUMsVUFBVTtnQkFDN0QsQ0FBQyw0QkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSw0QkFBb0IsQ0FBQyxhQUFhO2dCQUN0RSxDQUFDLDRCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLDRCQUFvQixDQUFDLFFBQVE7Z0JBQ3RELENBQUMsNEJBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsNEJBQW9CLENBQUMsUUFBUTthQUM3RCxDQUFBO1lBRUQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQXlCLENBQUE7WUFFbkUsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsZ0JBQWdCLEVBQUUsWUFBWSxNQUFNLGdCQUFnQixZQUFZLEdBQUcsQ0FDcEUsQ0FBQTtZQUVILE9BQU87Z0JBQ0wsTUFBTSxFQUFFLFlBQVk7YUFDckIsQ0FBQTtRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLHVDQUF1QyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUM5RCxDQUFBO1lBQ0QsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQ25CLEtBQTJCO1FBRTNCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBWSxDQUFBO1FBRW5DLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxtQkFBVyxDQUNuQix3QkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLHdCQUF3QixDQUN6QixDQUFBO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLHVCQUF1QixFQUFFLHFDQUFxQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQzlFLENBQUE7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN4QyxDQUFDLENBQUMsQ0FBQTtZQUVGLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQTJCO2FBQ2xDLENBQUE7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUNoQixpQ0FBaUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDeEQsQ0FBQTtZQUNELE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUF5QjtRQUMzQyw2RUFBNkU7UUFDN0Usb0JBQW9CO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FHM0IsQ0FBQTtRQUVELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFFcEQsSUFBSSxDQUFDLE1BQU07b0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsZ0JBQWdCLElBQUksQ0FBQyxFQUFFLHFDQUFxQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUM5RyxDQUFBO2dCQUVILE9BQU8sRUFBQyxJQUFJLEVBQUUsSUFBMkIsRUFBQyxDQUFBO1lBQzVDLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtnQkFDckUsTUFBTSxLQUFLLENBQUE7WUFDYixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUE7SUFDbkIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU87WUFDTCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQzlDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7WUFDOUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2xFLENBQUE7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsT0FBMEM7UUFFMUMsTUFBTSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLEdBQUcsT0FBTyxDQUFBO1FBRXhDLElBQUksQ0FBQztZQUNILElBQUksT0FBTyxHQUF5QixJQUFJLENBQUE7WUFFeEMsd0VBQXdFO1lBQ3hFLG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLE1BQU0sRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUM7b0JBQ3RELElBQUksRUFBRTt3QkFDSixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVE7cUJBQ2xCO2lCQUNGLENBQUMsQ0FBcUMsQ0FBQTtnQkFFdkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNiLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLG1CQUFtQixDQUNwQixDQUFBO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxHQUFHLFdBQVcsQ0FBQTtZQUN2QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04seUVBQXlFO2dCQUN6RSxzRUFBc0U7Z0JBQ3RFLDhCQUE4QjtnQkFDOUIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFXLENBQUE7Z0JBQzdELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBVyxDQUFBO2dCQUMzRCxNQUFNLGtCQUFrQixHQUNyQixPQUFPLENBQUMscUJBQXFCLENBQVksSUFBSSxRQUFRLENBQUE7Z0JBQ3hELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVcsQ0FBQTtnQkFFaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtnQkFFMUMsSUFBSSxlQUFlLEtBQUssTUFBTSxFQUFFLENBQUM7b0JBQy9CLE1BQU0sSUFBSSxtQkFBVyxDQUNuQix3QkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLDBCQUEwQixDQUMzQixDQUFBO2dCQUNILENBQUM7Z0JBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNaLE1BQU0sSUFBSSxtQkFBVyxDQUNuQix3QkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLCtCQUErQixjQUFjLEVBQUUsQ0FDaEQsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELE1BQU0sSUFBSSxHQUFHLGdCQUFNLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFBO2dCQUMxRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUU5RCxJQUFJLG1CQUFtQixLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN0QyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsd0JBQWdCLENBQUMsWUFBWSxFQUM3QixtQkFBbUIsQ0FDcEIsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoQixJQUFJLENBQUM7d0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO29CQUN6QyxDQUFDO29CQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDO2dCQUNoQixDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDMUIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUF1QixDQUFBO2dCQUN4QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTzt3QkFDTCxNQUFNLEVBQUUsc0JBQWMsQ0FBQyxhQUFhO3FCQUNyQyxDQUFBO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO1lBQ3pFLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRztnQkFDZixVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVO2dCQUMzQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRzthQUNuQyxDQUFBO1lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtZQUM3QyxDQUFDO1lBRUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFBO1lBRXZFLFFBQVEsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyw0QkFBZ0IsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLEtBQUssNEJBQWdCLENBQUMsSUFBSTtvQkFDeEIsT0FBTzt3QkFDTCxNQUFNLEVBQUUsc0JBQWMsQ0FBQyxVQUFVO3dCQUNqQyxJQUFJLEVBQUUsUUFBUTtxQkFDZixDQUFBO2dCQUNILEtBQUssNEJBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUMzQixLQUFLLDRCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDakMsS0FBSyw0QkFBZ0IsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLEtBQUssNEJBQWdCLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxLQUFLLDRCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDakMsS0FBSyw0QkFBZ0IsQ0FBQyxNQUFNO29CQUMxQixPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLE9BQU87d0JBQzlCLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0gsS0FBSyw0QkFBZ0IsQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLEtBQUssNEJBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUM5QixLQUFLLDRCQUFnQixDQUFDLFNBQVMsQ0FBQztnQkFDaEMsS0FBSyw0QkFBZ0IsQ0FBQyxTQUFTO29CQUM3QixJQUFJLGFBQWEsRUFBRSxDQUFDO3dCQUNsQixPQUFPOzRCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLE1BQU07NEJBQzdCLElBQUksRUFBRSxRQUFRO3lCQUNmLENBQUE7b0JBQ0gsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDOUI7NEJBQ0UsSUFBSSxFQUFFLHNCQUFzQjs0QkFDNUIsSUFBSSxFQUFFO2dDQUNKLGlGQUFpRjtnQ0FDakYsRUFBRSxFQUFFLE9BQU8sQ0FBQyxTQUFTOzZCQUN0Qjt5QkFDRixFQUNELEVBQUUsQ0FDSCxDQUFBO3dCQUVELE9BQU87NEJBQ0wsTUFBTSxFQUFFLHNCQUFjLENBQUMsUUFBUTs0QkFDL0IsSUFBSSxFQUFFLFFBQVE7eUJBQ2YsQ0FBQTtvQkFDSCxDQUFDO2dCQUNILEtBQUssNEJBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxLQUFLLDRCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDakMsS0FBSyw0QkFBZ0IsQ0FBQyxPQUFPO29CQUMzQixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzlCO3dCQUNFLElBQUksRUFBRSxvQkFBb0I7d0JBQzFCLElBQUksRUFBRTs0QkFDSixpRkFBaUY7NEJBQ2pGLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUzt5QkFDdEI7cUJBQ0YsRUFDRCxFQUFFLENBQ0gsQ0FBQTtvQkFFRCxPQUFPO3dCQUNMLE1BQU0sRUFBRSxzQkFBYyxDQUFDLE1BQU07d0JBQzdCLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUE7Z0JBQ0gsS0FBSyw0QkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDdkMsS0FBSyw0QkFBZ0IsQ0FBQyxlQUFlLENBQUM7Z0JBQ3RDLEtBQUssNEJBQWdCLENBQUMsZUFBZTtvQkFDbkMsT0FBTzt3QkFDTCxNQUFNLEVBQUUsc0JBQWMsQ0FBQyxhQUFhO3dCQUNwQyxJQUFJLEVBQUUsUUFBUTtxQkFDZixDQUFBO2dCQUNIO29CQUNFLE9BQU87d0JBQ0wsTUFBTSxFQUFFLHNCQUFjLENBQUMsVUFBVTt3QkFDakMsSUFBSSxFQUFFLFFBQVE7cUJBQ2YsQ0FBQTtZQUNMLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUNoQix3Q0FBd0MsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3BFLENBQUE7WUFFRCw2RUFBNkU7WUFDN0UsTUFBTSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ2pELElBQUksRUFBRSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDO2FBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUE7WUFFOUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPO29CQUNMLE1BQU0sRUFBRSxRQUFRO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osVUFBVSxFQUFHLE9BQU8sRUFBRSxRQUFnQyxFQUFFLFVBQVU7d0JBQ2xFLE1BQU0sRUFBRSxJQUFJLGlCQUFTLENBQUMsT0FBTyxFQUFFLE1BQWdCLENBQUM7d0JBQ2hELEdBQUcsT0FBTztxQkFDWDtpQkFDRixDQUFBO1lBQ0gsQ0FBQztZQUVELE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
|
|
631
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheS9jb3JlL3BheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHFEQVNrQztBQVlsQyw2Q0FBc0M7QUFDdEMsb0RBQTJCO0FBQzNCLDJDQUE0QztBQUM1QywyR0FBa0Y7QUFTbEY7O0dBRUc7QUFDSCxNQUFlLE9BQVEsU0FBUSwrQkFBd0M7SUFPckU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsSUFDRSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2YsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNqQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlHQUF5RyxDQUMxRyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxTQUFTLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQWdCM0IsMEJBQXFCLEdBQUcsQ0FDdEIsS0FBa0QsRUFDbEQsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBZ0IsQ0FBQTtZQUNqRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUE7WUFFN0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ3pDLENB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
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { HttpClient } from "./http-client";
|
|
2
|
-
import { CapturesRefundResponse, CreateDirectDebitRequest, CreateDirectDebitResponse, CreateOrder, DirectDebitInfoResponse, GetConfigResponse, GetTransactionFullResponse, OrderResponse, ProviderOptions, RefundTransaction, UpdateOrder } from "../types";
|
|
2
|
+
import { CapturesRefundResponse, CreateDirectDebitRequest, CreateDirectDebitResponse, CreateOrder, DirectDebit, DirectDebitInfoResponse, GetConfigResponse, GetTransactionFullResponse, OrderResponse, ProviderOptions, RefundTransaction, UpdateOrder } from "../types";
|
|
3
3
|
import { Logger } from "@medusajs/medusa";
|
|
4
4
|
export declare class PayClient {
|
|
5
5
|
protected readonly httpClient_: HttpClient;
|
|
6
6
|
protected readonly serviceId_: string;
|
|
7
|
+
protected readonly logger_: Logger;
|
|
7
8
|
constructor(options: ProviderOptions, logger: Logger);
|
|
8
9
|
/**
|
|
9
10
|
* Create a new order.
|
|
@@ -33,14 +34,26 @@ export declare class PayClient {
|
|
|
33
34
|
*/
|
|
34
35
|
refundPayment(paymentId: string, data: Omit<RefundTransaction, "exchangeUrl">): Promise<CapturesRefundResponse>;
|
|
35
36
|
/**
|
|
36
|
-
* Create
|
|
37
|
+
* Create a one-off direct debit mandate
|
|
37
38
|
* @param data
|
|
38
39
|
*/
|
|
39
40
|
createDirectDebit(data: Omit<CreateDirectDebitRequest, "serviceId">): Promise<CreateDirectDebitResponse | void>;
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
42
|
+
* Retrieve a direct debit by its reference id. Unlike the mandate query this
|
|
43
|
+
* endpoint returns the direct debit object itself, not a paginated envelope.
|
|
44
|
+
* @param directDebitId
|
|
45
|
+
*/
|
|
46
|
+
getDirectDebitInfo(directDebitId: string): Promise<DirectDebit | DirectDebitInfoResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Retrieve direct debit info by the mandate code
|
|
49
|
+
* @param mandateId
|
|
50
|
+
*/
|
|
51
|
+
getDirectDebitInfoByMandate(mandateId: string): Promise<DirectDebitInfoResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Delete a mandate so no further direct debits can be executed on it. Test
|
|
54
|
+
* mode never creates a mandate, so there is nothing to delete there.
|
|
55
|
+
* @param mandateId
|
|
43
56
|
*/
|
|
44
|
-
|
|
57
|
+
deleteDirectDebitMandate(mandateId: string): Promise<void>;
|
|
45
58
|
}
|
|
46
59
|
//# sourceMappingURL=pay-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,WAAW,
|
|
1
|
+
{"version":3,"file":"pay-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/core/pay-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,qBAAa,SAAS;IACpB,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAA;IAC1C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;IAMpD;;;;OAIG;IACG,WAAW,CACf,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GACnC,OAAO,CAAC,aAAa,CAAC;IAanB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC;IAOnB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAO9D,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOrD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOzD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO7C;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAO1E;;;;;;OAMG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAC3C,OAAO,CAAC,sBAAsB,CAAC;IAQlC;;;OAGG;IACG,iBAAiB,CACrB,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC,GAChD,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAoB5C;;;;OAIG;IACG,kBAAkB,CACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,GAAG,uBAAuB,CAAC;IAOjD;;;OAGG;IACG,2BAA2B,CAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC;IAUnC;;;;OAIG;IACG,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAajE"}
|
|
@@ -8,6 +8,7 @@ class PayClient {
|
|
|
8
8
|
constructor(options, logger) {
|
|
9
9
|
this.httpClient_ = new http_client_1.HttpClient({ options, logger });
|
|
10
10
|
this.serviceId_ = options.slCode;
|
|
11
|
+
this.logger_ = logger;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* Create a new order.
|
|
@@ -84,35 +85,62 @@ class PayClient {
|
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
87
|
/**
|
|
87
|
-
* Create
|
|
88
|
+
* Create a one-off direct debit mandate
|
|
88
89
|
* @param data
|
|
89
90
|
*/
|
|
90
91
|
async createDirectDebit(data) {
|
|
91
92
|
if (this.httpClient_.testMode) {
|
|
92
|
-
|
|
93
|
+
this.logger_.info(`createDirectDebit skipped ${JSON.stringify(data)}`);
|
|
93
94
|
}
|
|
94
95
|
else {
|
|
95
|
-
return await this.httpClient_.
|
|
96
|
+
return await this.httpClient_.apiRequest({
|
|
96
97
|
endpoint: constants_1.PayApiPath.DIRECT_DEBIT,
|
|
97
98
|
data: {
|
|
98
99
|
...data,
|
|
99
100
|
serviceId: this.serviceId_,
|
|
101
|
+
stats: {
|
|
102
|
+
object: `${package_json_1.displayName}|version ${package_json_1.version}`,
|
|
103
|
+
},
|
|
100
104
|
},
|
|
101
105
|
});
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
108
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
109
|
+
* Retrieve a direct debit by its reference id. Unlike the mandate query this
|
|
110
|
+
* endpoint returns the direct debit object itself, not a paginated envelope.
|
|
111
|
+
* @param directDebitId
|
|
107
112
|
*/
|
|
108
|
-
async getDirectDebitInfo(
|
|
109
|
-
return await this.httpClient_.
|
|
110
|
-
endpoint: constants_1.PayApiPath.DIRECT_DEBIT_INFO,
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
async getDirectDebitInfo(directDebitId) {
|
|
114
|
+
return await this.httpClient_.apiRequest({
|
|
115
|
+
endpoint: constants_1.PayApiPath.DIRECT_DEBIT_INFO.replace("{id}", directDebitId),
|
|
116
|
+
method: "GET",
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Retrieve direct debit info by the mandate code
|
|
121
|
+
* @param mandateId
|
|
122
|
+
*/
|
|
123
|
+
async getDirectDebitInfoByMandate(mandateId) {
|
|
124
|
+
return await this.httpClient_.apiRequest({
|
|
125
|
+
endpoint: constants_1.PayApiPath.DIRECT_DEBIT_INFO_BY_MANDATE.replace("{id}", mandateId),
|
|
126
|
+
method: "GET",
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Delete a mandate so no further direct debits can be executed on it. Test
|
|
131
|
+
* mode never creates a mandate, so there is nothing to delete there.
|
|
132
|
+
* @param mandateId
|
|
133
|
+
*/
|
|
134
|
+
async deleteDirectDebitMandate(mandateId) {
|
|
135
|
+
if (this.httpClient_.testMode) {
|
|
136
|
+
this.logger_.info(`deleteDirectDebitMandate skipped for mandate ${mandateId}`);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
await this.httpClient_.apiRequest({
|
|
140
|
+
endpoint: constants_1.PayApiPath.DIRECT_DEBIT_MANDATE.replace("{id}", mandateId),
|
|
141
|
+
method: "DELETE",
|
|
114
142
|
});
|
|
115
143
|
}
|
|
116
144
|
}
|
|
117
145
|
exports.PayClient = PayClient;
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcGF5L2NvcmUvcGF5LWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBd0M7QUFleEMsaURBQTRDO0FBQzVDLDJEQUE2RDtBQUc3RCxNQUFhLFNBQVM7SUFLcEIsWUFBWSxPQUF3QixFQUFFLE1BQWM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHdCQUFVLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUE7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUNmLElBQW9DO1FBRXBDLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN2QyxRQUFRLEVBQUUsc0JBQVUsQ0FBQyxZQUFZO1lBQ2pDLElBQUksRUFBRTtnQkFDSixHQUFHLElBQUk7Z0JBQ1AsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMxQixLQUFLLEVBQUU7b0JBQ0wsTUFBTSxFQUFFLEdBQUcsMEJBQVcsWUFBWSxzQkFBTyxFQUFFO2lCQUM1QzthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQ2YsT0FBZSxFQUNmLElBQWlCO1FBRWpCLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN2QyxRQUFRLEVBQUUsc0JBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDMUQsSUFBSTtTQUNMLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQWU7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
|
|
@@ -1,8 +1,54 @@
|
|
|
1
|
+
import { CustomerDTO, OrderDTO, SalesChannelDTO } from "@medusajs/framework/types";
|
|
2
|
+
import { CancelPaymentInput, CancelPaymentOutput, CapturePaymentInput, CapturePaymentOutput, PaymentSessionDTO, RefundPaymentInput, RefundPaymentOutput, RetrievePaymentInput, RetrievePaymentOutput, UpdatePaymentInput, UpdatePaymentOutput } from "@medusajs/types";
|
|
1
3
|
import PayBase from "../core/pay-base";
|
|
2
|
-
import { PaymentOptions } from "../types";
|
|
4
|
+
import { CreateDirectDebitRequest, PaymentOptions } from "../types";
|
|
5
|
+
/**
|
|
6
|
+
* Direct debits are not created through the Pay. order API but through the
|
|
7
|
+
* mandate API (POST /directdebits/mandates). The mandate response is stored on
|
|
8
|
+
* the payment session data, its `code` is used to retrieve the authoritative
|
|
9
|
+
* direct debit state later. Collection status changes arrive through incasso
|
|
10
|
+
* exchanges handled by the direct-debit-exchange subscriber.
|
|
11
|
+
*/
|
|
3
12
|
declare class PayDirectDebitService extends PayBase {
|
|
4
13
|
static identifier: string;
|
|
5
14
|
get paymentCreateOptions(): PaymentOptions;
|
|
15
|
+
createPayOrderPayload(order: OrderDTO & {
|
|
16
|
+
customer: CustomerDTO;
|
|
17
|
+
sales_channel: SalesChannelDTO;
|
|
18
|
+
}, paymentSession: PaymentSessionDTO): Omit<CreateDirectDebitRequest, "serviceId">;
|
|
19
|
+
/**
|
|
20
|
+
* Creates the direct debit mandate when the payload is passed from the order
|
|
21
|
+
* created hook. The returned data replaces the session data wholesale, so the
|
|
22
|
+
* payload key is always stripped, persisting it back would create a second
|
|
23
|
+
* mandate on a later update.
|
|
24
|
+
*/
|
|
25
|
+
updatePayment(input: UpdatePaymentInput): Promise<UpdatePaymentOutput>;
|
|
26
|
+
/**
|
|
27
|
+
* Retrieves payment details. Payments that hold a Pay. order or transaction
|
|
28
|
+
* id (created through the order API, or refunded) resolve through the base
|
|
29
|
+
* implementation, mandate based payments resolve through the mandate code.
|
|
30
|
+
*/
|
|
31
|
+
retrievePayment(input: RetrievePaymentInput): Promise<RetrievePaymentOutput>;
|
|
32
|
+
/**
|
|
33
|
+
* A mandate based direct debit is revoked by deleting the mandate at Pay.,
|
|
34
|
+
* so a pending collection is never executed for a canceled payment. The
|
|
35
|
+
* order API abort only applies to payments that hold a Pay. order id.
|
|
36
|
+
*/
|
|
37
|
+
cancelPayment(input: CancelPaymentInput): Promise<CancelPaymentOutput>;
|
|
38
|
+
/**
|
|
39
|
+
* A mandate based direct debit only counts as captured when Pay. reports the
|
|
40
|
+
* direct debit as collected. The state is always re-fetched from Pay., so a
|
|
41
|
+
* spoofed exchange cannot capture an uncollected payment.
|
|
42
|
+
*/
|
|
43
|
+
capturePayment(input: CapturePaymentInput): Promise<CapturePaymentOutput>;
|
|
44
|
+
/**
|
|
45
|
+
* Refunds go through the regular transaction refund endpoint, using the Pay.
|
|
46
|
+
* transaction id of the collection. That id lives on the collected direct
|
|
47
|
+
* debit, not necessarily on the stored payment data, so it is resolved from
|
|
48
|
+
* the mandate when missing.
|
|
49
|
+
*/
|
|
50
|
+
refundPayment(input: RefundPaymentInput): Promise<RefundPaymentOutput>;
|
|
51
|
+
protected readMandateId(data: Record<string, any>): string | undefined;
|
|
6
52
|
}
|
|
7
53
|
export default PayDirectDebitService;
|
|
8
54
|
//# sourceMappingURL=pay-direct-debit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-direct-debit.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/services/pay-direct-debit.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAA;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"pay-direct-debit.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/pay/services/pay-direct-debit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAC,MAAM,2BAA2B,CAAA;AAChF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,OAAO,MAAM,kBAAkB,CAAA;AACtC,OAAO,EACL,wBAAwB,EAGxB,cAAc,EAEf,MAAM,UAAU,CAAA;AAGjB;;;;;;GAMG;AACH,cAAM,qBAAsB,SAAQ,OAAO;IACzC,MAAM,CAAC,UAAU,SAAkC;IAEnD,IAAI,oBAAoB,IAAI,cAAc,CASzC;IAED,qBAAqB,CACnB,KAAK,EAAE,QAAQ,GAAG;QAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,aAAa,EAAE,eAAe,CAAA;KAAC,EACzE,cAAc,EAAE,iBAAiB,GAChC,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC;IAqD9C;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsC5E;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAqBjC;;;;OAIG;IACG,aAAa,CACjB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,CAAC;IA8B/B;;;;OAIG;IACG,cAAc,CAClB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAqChC;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyC5E,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS;CAOvE;AAED,eAAe,qBAAqB,CAAA"}
|