@esolve/ng-esolve-connect 0.113.0 → 0.115.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/account/user-account/classes/esolve-statement-transaction.model.mjs +3 -1
- package/esm2022/lib/account/user-account/interfaces/esolve-statement-transaction-record.interface.mjs +1 -1
- package/esm2022/lib/auth/interfaces/esolve-otp-options.interface.mjs +2 -0
- package/esm2022/lib/auth/interfaces/esolve-otp-record.interface.mjs +1 -1
- package/esm2022/lib/auth/interfaces/index.mjs +2 -1
- package/esm2022/lib/auth/models/esolve-otp.model.mjs +3 -1
- package/esm2022/lib/auth/services/esolve-otp.service.mjs +8 -5
- package/esm2022/lib/payment/classes/esolve-payment-method.model.mjs +1 -8
- package/esm2022/lib/payment/esolve-payment.service.mjs +9 -16
- package/esm2022/lib/payment/interfaces/esolve-card-data.interface.mjs +1 -1
- package/esm2022/lib/payment/interfaces/esolve-payment-method-record.interface.mjs +1 -1
- package/esm2022/lib/payment/interfaces/esolve-payment-set-body.interface.mjs +1 -1
- package/esm2022/lib/payment/types/esolve-service-provider.type.mjs +1 -1
- package/fesm2022/esolve-ng-esolve-connect.mjs +19 -26
- package/fesm2022/esolve-ng-esolve-connect.mjs.map +1 -1
- package/lib/account/user-account/classes/esolve-statement-transaction.model.d.ts +2 -0
- package/lib/account/user-account/interfaces/esolve-statement-transaction-record.interface.d.ts +2 -0
- package/lib/auth/interfaces/esolve-otp-options.interface.d.ts +4 -0
- package/lib/auth/interfaces/esolve-otp-record.interface.d.ts +1 -0
- package/lib/auth/interfaces/index.d.ts +1 -0
- package/lib/auth/models/esolve-otp.model.d.ts +1 -0
- package/lib/auth/services/esolve-otp.service.d.ts +3 -2
- package/lib/payment/classes/esolve-payment-method.model.d.ts +0 -6
- package/lib/payment/esolve-payment.service.d.ts +0 -8
- package/lib/payment/interfaces/esolve-card-data.interface.d.ts +1 -0
- package/lib/payment/interfaces/esolve-payment-method-record.interface.d.ts +0 -6
- package/lib/payment/interfaces/esolve-payment-set-body.interface.d.ts +3 -1
- package/lib/payment/types/esolve-service-provider.type.d.ts +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ export class EsolveStatementTransaction {
|
|
|
2
2
|
constructor(record) {
|
|
3
3
|
if (record) {
|
|
4
4
|
this.document_date = record.document_date ?? '';
|
|
5
|
+
this.document_type = record.document_type ?? '';
|
|
5
6
|
this.order_number = record.order_number ?? '';
|
|
6
7
|
this.comment = record.comment ?? '';
|
|
7
8
|
this.account = record.account ?? '';
|
|
@@ -9,7 +10,8 @@ export class EsolveStatementTransaction {
|
|
|
9
10
|
this.total = +(record.total ?? 0);
|
|
10
11
|
this.amount_due = +(record.amount_due ?? 0);
|
|
11
12
|
this.is_debit = !!+(record.is_debit ?? true);
|
|
13
|
+
this.is_credit = !!+(record.is_credit ?? false);
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0YXRlbWVudC10cmFuc2FjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3VzZXItYWNjb3VudC9jbGFzc2VzL2Vzb2x2ZS1zdGF0ZW1lbnQtdHJhbnNhY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDBCQUEwQjtJQVluQyxZQUFZLE1BQWtEO1FBQzFELElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN0YXRlbWVudFRyYW5zYWN0aW9uUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBFc29sdmVTdGF0ZW1lbnRUcmFuc2FjdGlvbiB7XG4gICAgcHVibGljIGRvY3VtZW50X2RhdGU/OiBzdHJpbmc7XG4gICAgcHVibGljIGRvY3VtZW50X3R5cGU/OiBzdHJpbmc7XG4gICAgcHVibGljIG9yZGVyX251bWJlcj86IHN0cmluZztcbiAgICBwdWJsaWMgY29tbWVudD86IHN0cmluZztcbiAgICBwdWJsaWMgYWNjb3VudD86IHN0cmluZztcbiAgICBwdWJsaWMgaXFfcmVmZXJlbmNlPzogc3RyaW5nO1xuICAgIHB1YmxpYyB0b3RhbD86IG51bWJlcjtcbiAgICBwdWJsaWMgYW1vdW50X2R1ZT86IG51bWJlcjtcbiAgICBwdWJsaWMgaXNfZGViaXQ/OiBib29sZWFuO1xuICAgIHB1YmxpYyBpc19jcmVkaXQ/OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVTdGF0ZW1lbnRUcmFuc2FjdGlvblJlY29yZD4pIHtcbiAgICAgICAgaWYgKHJlY29yZCkge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudF9kYXRlID0gcmVjb3JkLmRvY3VtZW50X2RhdGUgPz8gJyc7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50X3R5cGUgPSByZWNvcmQuZG9jdW1lbnRfdHlwZSA/PyAnJztcbiAgICAgICAgICAgIHRoaXMub3JkZXJfbnVtYmVyID0gcmVjb3JkLm9yZGVyX251bWJlciA/PyAnJztcbiAgICAgICAgICAgIHRoaXMuY29tbWVudCA9IHJlY29yZC5jb21tZW50ID8/ICcnO1xuICAgICAgICAgICAgdGhpcy5hY2NvdW50ID0gcmVjb3JkLmFjY291bnQgPz8gJyc7XG4gICAgICAgICAgICB0aGlzLmlxX3JlZmVyZW5jZSA9IHJlY29yZC5pcV9yZWZlcmVuY2UgPz8gJyc7XG4gICAgICAgICAgICB0aGlzLnRvdGFsID0gKyhyZWNvcmQudG90YWwgPz8gMCk7XG4gICAgICAgICAgICB0aGlzLmFtb3VudF9kdWUgPSArKHJlY29yZC5hbW91bnRfZHVlID8/IDApO1xuICAgICAgICAgICAgdGhpcy5pc19kZWJpdCA9ICEhKyhyZWNvcmQuaXNfZGViaXQgPz8gdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmlzX2NyZWRpdCA9ICEhKyhyZWNvcmQuaXNfY3JlZGl0ID8/IGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0YXRlbWVudC10cmFuc2FjdGlvbi1yZWNvcmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FjY291bnQvdXNlci1hY2NvdW50L2ludGVyZmFjZXMvZXNvbHZlLXN0YXRlbWVudC10cmFuc2FjdGlvbi1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVN0YXRlbWVudFRyYW5zYWN0aW9uUmVjb3JkIHtcbiAgICBkb2N1bWVudF9kYXRlOiBzdHJpbmc7XG4gICAgZG9jdW1lbnRfdHlwZTogc3RyaW5nO1xuICAgIG9yZGVyX251bWJlcjogc3RyaW5nO1xuICAgIGNvbW1lbnQ6IHN0cmluZztcbiAgICBhY2NvdW50OiBzdHJpbmc7XG4gICAgaXFfcmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBhbW91bnRfZHVlOiBudW1iZXI7XG4gICAgaXNfZGViaXQ6IGJvb2xlYW47XG4gICAgaXNfY3JlZGl0OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW90cC1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hdXRoL2ludGVyZmFjZXMvZXNvbHZlLW90cC1vcHRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFc29sdmVPdHBPcHRpb25zIHtcbiAgICByZWNpcGllbnRfbnVtYmVyPzogc3RyaW5nO1xuICAgIHJlY2lwaWVudF9lbWFpbD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW90cC1yZWNvcmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2F1dGgvaW50ZXJmYWNlcy9lc29sdmUtb3RwLXJlY29yZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlT3RwUmVjb3JkIHtcbiAgICBvdHBfZ2VuZXJhdGVkOiBib29sZWFuO1xuICAgIG90cF9rZXk6IHN0cmluZztcbiAgICBvdHBfc21zX3NlbnQ6IGJvb2xlYW47XG4gICAgb3RwX2VtYWlsX3NlbnQ6IGJvb2xlYW47XG4gICAgb3RwX2V4cGlyeTogbnVtYmVyO1xuICAgIHNtc19yZXNwb25zZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -3,6 +3,7 @@ export * from './esolve-auth-data.interface';
|
|
|
3
3
|
export * from './esolve-auth-get-data.interface';
|
|
4
4
|
export * from './esolve-auth-response.interface';
|
|
5
5
|
export * from './esolve-login-post-response-item.interface';
|
|
6
|
+
export * from './esolve-otp-options.interface';
|
|
6
7
|
export * from './esolve-otp-record.interface';
|
|
7
8
|
export * from './esolve-otp-validation-record.interface';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYXV0aC9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWF1dGgtY2hlY2stZGF0YS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYXV0aC1kYXRhLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1hdXRoLWdldC1kYXRhLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1hdXRoLXJlc3BvbnNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1sb2dpbi1wb3N0LXJlc3BvbnNlLWl0ZW0uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLW90cC1vcHRpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1vdHAtcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1vdHAtdmFsaWRhdGlvbi1yZWNvcmQuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -3,12 +3,14 @@ export class EsolveOtp {
|
|
|
3
3
|
this.otp_generated = false;
|
|
4
4
|
this.otp_key = '';
|
|
5
5
|
this.otp_sms_sent = false;
|
|
6
|
+
this.otp_email_sent = false;
|
|
6
7
|
this.sms_response = '';
|
|
7
8
|
this.otp_generated = record.otp_generated;
|
|
8
9
|
this.otp_key = record.otp_key;
|
|
9
10
|
this.otp_sms_sent = record.otp_sms_sent;
|
|
11
|
+
this.otp_email_sent = record.otp_email_sent;
|
|
10
12
|
this.otp_expiry = new Date(+record.otp_expiry * 1000);
|
|
11
13
|
this.sms_response = record.sms_response;
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW90cC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hdXRoL21vZGVscy9lc29sdmUtb3RwLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxTQUFTO0lBUWxCLFlBQVksTUFBdUI7UUFQNUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBR3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlT3RwUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBFc29sdmVPdHAge1xuICAgIHB1YmxpYyBvdHBfZ2VuZXJhdGVkID0gZmFsc2U7XG4gICAgcHVibGljIG90cF9rZXkgPSAnJztcbiAgICBwdWJsaWMgb3RwX3Ntc19zZW50ID0gZmFsc2U7XG4gICAgcHVibGljIG90cF9lbWFpbF9zZW50ID0gZmFsc2U7XG4gICAgcHVibGljIG90cF9leHBpcnk/OiBEYXRlO1xuICAgIHB1YmxpYyBzbXNfcmVzcG9uc2UgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKHJlY29yZDogRXNvbHZlT3RwUmVjb3JkKSB7XG4gICAgICAgIHRoaXMub3RwX2dlbmVyYXRlZCA9IHJlY29yZC5vdHBfZ2VuZXJhdGVkO1xuICAgICAgICB0aGlzLm90cF9rZXkgPSByZWNvcmQub3RwX2tleTtcbiAgICAgICAgdGhpcy5vdHBfc21zX3NlbnQgPSByZWNvcmQub3RwX3Ntc19zZW50O1xuICAgICAgICB0aGlzLm90cF9lbWFpbF9zZW50ID0gcmVjb3JkLm90cF9lbWFpbF9zZW50O1xuICAgICAgICB0aGlzLm90cF9leHBpcnkgPSBuZXcgRGF0ZSgrcmVjb3JkLm90cF9leHBpcnkgKiAxMDAwKTtcbiAgICAgICAgdGhpcy5zbXNfcmVzcG9uc2UgPSByZWNvcmQuc21zX3Jlc3BvbnNlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -12,11 +12,16 @@ export class EsolveOtpService {
|
|
|
12
12
|
this.http = inject(HttpClient);
|
|
13
13
|
this.auth = inject(EsolveAuthService);
|
|
14
14
|
}
|
|
15
|
-
getOtp(
|
|
15
|
+
getOtp(options, captcha_options) {
|
|
16
16
|
let params = new HttpParams();
|
|
17
|
+
const recipient_number = options?.recipient_number;
|
|
18
|
+
const recipient_email = options?.recipient_email;
|
|
17
19
|
if (recipient_number) {
|
|
18
20
|
params = params.set('recipient_number', recipient_number);
|
|
19
21
|
}
|
|
22
|
+
if (recipient_email) {
|
|
23
|
+
params = params.set('recipient_email', recipient_email);
|
|
24
|
+
}
|
|
20
25
|
if (captcha_options) {
|
|
21
26
|
params = params.set('captcha_key', captcha_options.captcha_key);
|
|
22
27
|
params = params.set('captcha_code', captcha_options.captcha_code);
|
|
@@ -36,7 +41,7 @@ export class EsolveOtpService {
|
|
|
36
41
|
return throwError(() => error);
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
|
-
getValidateOtp(otp_key, otp_code, otp_action = ''
|
|
44
|
+
getValidateOtp(otp_key, otp_code, otp_action = '') {
|
|
40
45
|
try {
|
|
41
46
|
return this.http
|
|
42
47
|
.get(`${this.config.api_url}/get-otp-validation.php`, {
|
|
@@ -44,8 +49,6 @@ export class EsolveOtpService {
|
|
|
44
49
|
otp_key,
|
|
45
50
|
otp_code,
|
|
46
51
|
otp_action,
|
|
47
|
-
email,
|
|
48
|
-
cellnumber,
|
|
49
52
|
},
|
|
50
53
|
})
|
|
51
54
|
.pipe(map((response) => {
|
|
@@ -74,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
74
77
|
providedIn: 'root',
|
|
75
78
|
}]
|
|
76
79
|
}] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW90cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2F1dGgvc2VydmljZXMvZXNvbHZlLW90cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBTWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSzFELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBMEZyRDtJQXhGVSxNQUFNLENBQ1QsT0FBMEIsRUFDMUIsZUFBc0M7UUFFdEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQztRQUNuRCxNQUFNLGVBQWUsR0FBRyxPQUFPLEVBQUUsZUFBZSxDQUFDO1FBRWpELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFFRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSTtpQkFDWCxHQUFHLENBRUYsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7aUJBQ2xELElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDYixJQUNJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUztvQkFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQ2pDLENBQUM7b0JBQ0MsTUFBTSxRQUFRLENBQUM7Z0JBQ25CLENBQUM7Z0JBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNWLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFTSxjQUFjLENBQ2pCLE9BQWUsRUFDZixRQUFnQixFQUNoQixhQUE4QixFQUFFO1FBRWhDLElBQUksQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLElBQUk7aUJBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHlCQUF5QixFQUMvQztnQkFDSSxNQUFNLEVBQUU7b0JBQ0osT0FBTztvQkFDUCxRQUFRO29CQUNSLFVBQVU7aUJBQ2I7YUFDSixDQUNKO2lCQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDYixJQUNJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUztvQkFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQ2pDLENBQUM7b0JBQ0MsTUFBTSxRQUFRLENBQUM7Z0JBQ25CLENBQUM7Z0JBRUQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztnQkFFakQsSUFDSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO29CQUMvQixlQUFlLENBQUMsR0FBRyxFQUNyQixDQUFDO29CQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQ2xDLGVBQWUsQ0FDbEIsQ0FBQztnQkFDTixDQUFDO2dCQUVELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNWLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7OEdBNUZRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTs7MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFc29sdmVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBFc29sdmVDYXB0Y2hhT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NhcHRjaGEnO1xuXG5pbXBvcnQgeyBFc29sdmVPdHBBY3Rpb24sIEVzb2x2ZVZhbGlkYXRlT3RwUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBFc29sdmVPdHBPcHRpb25zLCBFc29sdmVPdHBSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVzb2x2ZU90cCwgRXNvbHZlT3RwVmFsaWRhdGlvbiB9IGZyb20gJy4uL21vZGVscyc7XG5cbmltcG9ydCB7IEVzb2x2ZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9lc29sdmUtYXV0aC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXNvbHZlT3RwU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoRXNvbHZlQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aCA9IGluamVjdChFc29sdmVBdXRoU2VydmljZSk7XG5cbiAgICBwdWJsaWMgZ2V0T3RwKFxuICAgICAgICBvcHRpb25zPzogRXNvbHZlT3RwT3B0aW9ucyxcbiAgICAgICAgY2FwdGNoYV9vcHRpb25zPzogRXNvbHZlQ2FwdGNoYU9wdGlvbnMsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVPdHA+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICAgICAgY29uc3QgcmVjaXBpZW50X251bWJlciA9IG9wdGlvbnM/LnJlY2lwaWVudF9udW1iZXI7XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudF9lbWFpbCA9IG9wdGlvbnM/LnJlY2lwaWVudF9lbWFpbDtcblxuICAgICAgICBpZiAocmVjaXBpZW50X251bWJlcikge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncmVjaXBpZW50X251bWJlcicsIHJlY2lwaWVudF9udW1iZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlY2lwaWVudF9lbWFpbCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncmVjaXBpZW50X2VtYWlsJywgcmVjaXBpZW50X2VtYWlsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYXB0Y2hhX29wdGlvbnMpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NhcHRjaGFfa2V5JywgY2FwdGNoYV9vcHRpb25zLmNhcHRjaGFfa2V5KTtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NhcHRjaGFfY29kZScsIGNhcHRjaGFfb3B0aW9ucy5jYXB0Y2hhX2NvZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAuZ2V0PFxuICAgICAgICAgICAgICAgICAgICBFc29sdmVHZXRSZXNwb25zZTxFc29sdmVPdHBSZWNvcmQ+XG4gICAgICAgICAgICAgICAgPihgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtb3RwLnBocGAsIHsgcGFyYW1zIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVPdHAocmVzcG9uc2UucmVjb3Jkcyk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdGVPdHAoXG4gICAgICAgIG90cF9rZXk6IHN0cmluZyxcbiAgICAgICAgb3RwX2NvZGU6IHN0cmluZyxcbiAgICAgICAgb3RwX2FjdGlvbjogRXNvbHZlT3RwQWN0aW9uID0gJycsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVPdHBWYWxpZGF0aW9uPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVWYWxpZGF0ZU90cFJlc3BvbnNlPihcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LW90cC12YWxpZGF0aW9uLnBocGAsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90cF9rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RwX2NvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RwX2FjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxfZGF0YSA9IHJlc3BvbnNlLmFkZGl0aW9uYWxfZGF0YTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFBcnJheS5pc0FycmF5KGFkZGl0aW9uYWxfZGF0YSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2RhdGEua2V5XG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGguaGFuZGxlRXh0ZXJuYWxBdXRoZW50aWNhdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlT3RwVmFsaWRhdGlvbihyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -7,20 +7,13 @@ export class EsolvePaymentMethod {
|
|
|
7
7
|
this.description = record.description;
|
|
8
8
|
this.display_banking_details = !!+record.display_banking_details;
|
|
9
9
|
this.currency_code = record.currency_code;
|
|
10
|
-
this.merchant_id = record.merchant_id;
|
|
11
|
-
this.application_id = record.application_id;
|
|
12
|
-
this.api_signature = record.api_signature;
|
|
13
10
|
this.is_gateway = !!+record.is_gateway;
|
|
14
11
|
this.must_store_card_details = !!+record.must_store_card_details;
|
|
15
12
|
this.allow_budget = !!+record.allow_budget;
|
|
16
13
|
this.allow_cart_payments = !!+record.allow_cart_payments;
|
|
17
14
|
this.allow_account_payments = !!+record.allow_account_payments;
|
|
18
15
|
this.integration_type = record.integration_type;
|
|
19
|
-
this.bank_gateway_id = record.bank_gateway_id;
|
|
20
16
|
this.accepted_card_types = record.accepted_card_types;
|
|
21
|
-
this.post_transactions_to_gateway =
|
|
22
|
-
!!+record.post_transactions_to_gateway;
|
|
23
|
-
this.three_d_secure_url = record.three_d_secure_url;
|
|
24
17
|
this.gateway_url = record.gateway_url;
|
|
25
18
|
this.generate_token_url = record.generate_token_url;
|
|
26
19
|
this.widget_url = record.widget_url;
|
|
@@ -36,4 +29,4 @@ export class EsolvePaymentMethod {
|
|
|
36
29
|
this.banking_details = new EsolveBankingDetails(record.bank_name, record.account_holder, record.account, record.account_type, record.swift_number, record.branch_code);
|
|
37
30
|
}
|
|
38
31
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQtbWV0aG9kLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3BheW1lbnQvY2xhc3Nlcy9lc29sdmUtcGF5bWVudC1tZXRob2QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdEUsTUFBTSxPQUFPLG1CQUFtQjtJQTZCNUIsWUFBWSxNQUFpQztRQUN6QyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN2QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDO1FBQ2pFLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUVsQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksb0JBQW9CLENBQzNDLE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLE1BQU0sQ0FBQyxjQUFjLEVBQ3JCLE1BQU0sQ0FBQyxPQUFPLEVBQ2QsTUFBTSxDQUFDLFlBQVksRUFDbkIsTUFBTSxDQUFDLFlBQVksRUFDbkIsTUFBTSxDQUFDLFdBQVcsQ0FDckIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUludGVncmF0aW9uVHlwZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVzb2x2ZUJhbmtpbmdEZXRhaWxzIH0gZnJvbSAnLi9lc29sdmUtYmFua2luZy1kZXRhaWxzLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEVzb2x2ZVBheW1lbnRNZXRob2Qge1xuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xuICAgIHB1YmxpYyBsb2NhdGlvbl9pZDogbnVtYmVyO1xuICAgIHB1YmxpYyBwYXltZXRob2RfbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5X2JhbmtpbmdfZGV0YWlsczogYm9vbGVhbjtcbiAgICBwdWJsaWMgY3VycmVuY3lfY29kZTogc3RyaW5nO1xuICAgIHB1YmxpYyBpc19nYXRld2F5OiBib29sZWFuO1xuICAgIHB1YmxpYyBtdXN0X3N0b3JlX2NhcmRfZGV0YWlsczogYm9vbGVhbjtcbiAgICBwdWJsaWMgYWxsb3dfYnVkZ2V0OiBib29sZWFuO1xuICAgIHB1YmxpYyBhbGxvd19jYXJ0X3BheW1lbnRzOiBib29sZWFuO1xuICAgIHB1YmxpYyBhbGxvd19hY2NvdW50X3BheW1lbnRzOiBib29sZWFuO1xuICAgIHB1YmxpYyBpbnRlZ3JhdGlvbl90eXBlOiBFc29sdmVJbnRlZ3JhdGlvblR5cGU7XG4gICAgcHVibGljIGFjY2VwdGVkX2NhcmRfdHlwZXM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBnYXRld2F5X3VybDogc3RyaW5nO1xuICAgIHB1YmxpYyBnZW5lcmF0ZV90b2tlbl91cmw6IHN0cmluZztcbiAgICBwdWJsaWMgd2lkZ2V0X3VybDogc3RyaW5nO1xuICAgIHB1YmxpYyBzdWNjZXNzZnVsX3VybDogc3RyaW5nO1xuICAgIHB1YmxpYyBmYWlsZWRfdXJsOiBzdHJpbmc7XG4gICAgcHVibGljIGVuYWJsZV9jYWxsYmFjazogYm9vbGVhbjtcbiAgICBwdWJsaWMgbGl2ZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGVmYXVsdF9tb2R1bGVfaWQ6IG51bWJlcjtcbiAgICBwdWJsaWMgc2VydmljZV9wcm92aWRlcjogc3RyaW5nO1xuICAgIHB1YmxpYyBvbl9hY2NvdW50OiBib29sZWFuO1xuICAgIHB1YmxpYyBzb3J0X3ByaW9yaXR5OiBudW1iZXI7XG4gICAgcHVibGljIGltYWdlX3VybDogc3RyaW5nO1xuXG4gICAgcHVibGljIGJhbmtpbmdfZGV0YWlsczogRXNvbHZlQmFua2luZ0RldGFpbHM7XG5cbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ6IEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmQpIHtcbiAgICAgICAgdGhpcy5pZCA9ICtyZWNvcmQuaWQ7XG4gICAgICAgIHRoaXMubG9jYXRpb25faWQgPSArcmVjb3JkLmxvY2F0aW9uX2lkO1xuICAgICAgICB0aGlzLnBheW1ldGhvZF9uYW1lID0gcmVjb3JkLnBheW1ldGhvZF9uYW1lO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVjb3JkLmRlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLmRpc3BsYXlfYmFua2luZ19kZXRhaWxzID0gISErcmVjb3JkLmRpc3BsYXlfYmFua2luZ19kZXRhaWxzO1xuICAgICAgICB0aGlzLmN1cnJlbmN5X2NvZGUgPSByZWNvcmQuY3VycmVuY3lfY29kZTtcbiAgICAgICAgdGhpcy5pc19nYXRld2F5ID0gISErcmVjb3JkLmlzX2dhdGV3YXk7XG4gICAgICAgIHRoaXMubXVzdF9zdG9yZV9jYXJkX2RldGFpbHMgPSAhIStyZWNvcmQubXVzdF9zdG9yZV9jYXJkX2RldGFpbHM7XG4gICAgICAgIHRoaXMuYWxsb3dfYnVkZ2V0ID0gISErcmVjb3JkLmFsbG93X2J1ZGdldDtcbiAgICAgICAgdGhpcy5hbGxvd19jYXJ0X3BheW1lbnRzID0gISErcmVjb3JkLmFsbG93X2NhcnRfcGF5bWVudHM7XG4gICAgICAgIHRoaXMuYWxsb3dfYWNjb3VudF9wYXltZW50cyA9ICEhK3JlY29yZC5hbGxvd19hY2NvdW50X3BheW1lbnRzO1xuICAgICAgICB0aGlzLmludGVncmF0aW9uX3R5cGUgPSByZWNvcmQuaW50ZWdyYXRpb25fdHlwZTtcbiAgICAgICAgdGhpcy5hY2NlcHRlZF9jYXJkX3R5cGVzID0gcmVjb3JkLmFjY2VwdGVkX2NhcmRfdHlwZXM7XG4gICAgICAgIHRoaXMuZ2F0ZXdheV91cmwgPSByZWNvcmQuZ2F0ZXdheV91cmw7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVfdG9rZW5fdXJsID0gcmVjb3JkLmdlbmVyYXRlX3Rva2VuX3VybDtcbiAgICAgICAgdGhpcy53aWRnZXRfdXJsID0gcmVjb3JkLndpZGdldF91cmw7XG4gICAgICAgIHRoaXMuc3VjY2Vzc2Z1bF91cmwgPSByZWNvcmQuc3VjY2Vzc2Z1bF91cmw7XG4gICAgICAgIHRoaXMuZmFpbGVkX3VybCA9IHJlY29yZC5mYWlsZWRfdXJsO1xuICAgICAgICB0aGlzLmVuYWJsZV9jYWxsYmFjayA9ICEhK3JlY29yZC5lbmFibGVfY2FsbGJhY2s7XG4gICAgICAgIHRoaXMubGl2ZSA9ICEhK3JlY29yZC5saXZlO1xuICAgICAgICB0aGlzLmRlZmF1bHRfbW9kdWxlX2lkID0gK3JlY29yZC5kZWZhdWx0X21vZHVsZV9pZDtcbiAgICAgICAgdGhpcy5zZXJ2aWNlX3Byb3ZpZGVyID0gcmVjb3JkLnNlcnZpY2VfcHJvdmlkZXI7XG4gICAgICAgIHRoaXMub25fYWNjb3VudCA9ICEhK3JlY29yZC5vbl9hY2NvdW50O1xuICAgICAgICB0aGlzLnNvcnRfcHJpb3JpdHkgPSArcmVjb3JkLnNvcnRfcHJpb3JpdHk7XG4gICAgICAgIHRoaXMuaW1hZ2VfdXJsID0gcmVjb3JkLmltYWdlX3VybDtcblxuICAgICAgICB0aGlzLmJhbmtpbmdfZGV0YWlscyA9IG5ldyBFc29sdmVCYW5raW5nRGV0YWlscyhcbiAgICAgICAgICAgIHJlY29yZC5iYW5rX25hbWUsXG4gICAgICAgICAgICByZWNvcmQuYWNjb3VudF9ob2xkZXIsXG4gICAgICAgICAgICByZWNvcmQuYWNjb3VudCxcbiAgICAgICAgICAgIHJlY29yZC5hY2NvdW50X3R5cGUsXG4gICAgICAgICAgICByZWNvcmQuc3dpZnRfbnVtYmVyLFxuICAgICAgICAgICAgcmVjb3JkLmJyYW5jaF9jb2RlLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -93,7 +93,8 @@ export class EsolvePaymentService {
|
|
|
93
93
|
card_number: card_data.card_number,
|
|
94
94
|
card_name: card_data.name,
|
|
95
95
|
card_cvv: card_data.cvv,
|
|
96
|
-
|
|
96
|
+
card_expiry_month: card_data.expiry_month,
|
|
97
|
+
card_expiry_year: card_data.expiry_year,
|
|
97
98
|
},
|
|
98
99
|
};
|
|
99
100
|
return this.http
|
|
@@ -159,7 +160,9 @@ export class EsolvePaymentService {
|
|
|
159
160
|
card_number: card.card_number,
|
|
160
161
|
card_name: card.name,
|
|
161
162
|
card_cvv: card.cvv,
|
|
162
|
-
|
|
163
|
+
card_expiry_month: card.expiry_month,
|
|
164
|
+
card_expiry_year: card.expiry_year,
|
|
165
|
+
save_card: card.save_card,
|
|
163
166
|
};
|
|
164
167
|
}
|
|
165
168
|
}
|
|
@@ -206,7 +209,9 @@ export class EsolvePaymentService {
|
|
|
206
209
|
card_number: card.card_number,
|
|
207
210
|
card_name: card.name,
|
|
208
211
|
card_cvv: card.cvv,
|
|
209
|
-
|
|
212
|
+
card_expiry_month: card.expiry_month,
|
|
213
|
+
card_expiry_year: card.expiry_year,
|
|
214
|
+
save_card: card.save_card,
|
|
210
215
|
};
|
|
211
216
|
}
|
|
212
217
|
}
|
|
@@ -294,18 +299,6 @@ export class EsolvePaymentService {
|
|
|
294
299
|
}
|
|
295
300
|
return vault;
|
|
296
301
|
}
|
|
297
|
-
/**
|
|
298
|
-
* Generate a concatenated string with the expiry month and year
|
|
299
|
-
*
|
|
300
|
-
* @param card_data Credit card data
|
|
301
|
-
*
|
|
302
|
-
* @returns Expiry string
|
|
303
|
-
*/
|
|
304
|
-
generateExpiry(card_data) {
|
|
305
|
-
const month_string = card_data.expiry_month.padStart(2, '0');
|
|
306
|
-
const year_string = card_data.expiry_year.padStart(4, '0');
|
|
307
|
-
return `${month_string}${year_string}`;
|
|
308
|
-
}
|
|
309
302
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EsolvePaymentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
310
303
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EsolvePaymentService, providedIn: 'root' }); }
|
|
311
304
|
}
|
|
@@ -315,4 +308,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
315
308
|
providedIn: 'root',
|
|
316
309
|
}]
|
|
317
310
|
}] });
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9wYXltZW50L2Vzb2x2ZS1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QyxPQUFPLEVBQ0gseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUc1QixZQUFZLEdBRWYsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUNILG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsR0FDeEIsTUFBTSxXQUFXLENBQUM7O0FBbUJuQixNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakQsb0JBQWUsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQXFiM0U7SUFuYkc7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCLENBQ3BCLE9BQW9DO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sMEJBQTBCLEVBQ2hEO1lBQ0ksTUFBTSxFQUFFO2dCQUNKLEdB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEh0dHBDbGllbnQsXG4gICAgSHR0cEVycm9yUmVzcG9uc2UsXG4gICAgSHR0cFBhcmFtcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVzb2x2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7XG4gICAgRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSxcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxuICAgIEVzb2x2ZUdldFJlc3BvbnNlLFxuICAgIEVzb2x2ZVNldFJlc3BvbnNlLFxuICAgIEVzb2x2ZVJlc3VsdCxcbiAgICBFc29sdmVEZWxldGVSZXNwb25zZSxcbn0gZnJvbSAnLi4vc2hhcmVkJztcblxuaW1wb3J0IHtcbiAgICBFc29sdmVBY2NvdW50UGF5bWVudCxcbiAgICBFc29sdmVQYXltZW50TWV0aG9kLFxuICAgIEVzb2x2ZVBheW1lbnRSZXN1bHQsXG4gICAgRXNvbHZlVmF1bHRJdGVtLFxuICAgIEVzb2x2ZVZhdWx0SXRlbVJlc3VsdCxcbn0gZnJvbSAnLi9jbGFzc2VzJztcbmltcG9ydCB7XG4gICAgRXNvbHZlQWNjb3VudFBheW1lbnRSZWNvcmQsXG4gICAgRXNvbHZlQWNjb3VudFBheW1lbnRzT3B0aW9ucyxcbiAgICBFc29sdmVDYXJkRGF0YSxcbiAgICBFc29sdmVQYXltZW50TWV0aG9kT3B0aW9ucyxcbiAgICBFc29sdmVQYXltZW50TWV0aG9kUmVjb3JkLFxuICAgIEVzb2x2ZVBheW1lbnRSZWRpcmVjdExpbmtzLFxuICAgIEVzb2x2ZVBheW1lbnRSZXNwb25zZSxcbiAgICBFc29sdmVQYXltZW50U2V0Qm9keSxcbiAgICBFc29sdmVQYXltZW50U3RhdHVzLFxuICAgIEVzb2x2ZVZhdWx0UmVjb3JkLFxuICAgIEVzb2x2ZVZhdWx0UmVzcG9uc2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFc29sdmVTdGF0ZW1lbnRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2FjY291bnQvdXNlci1hY2NvdW50JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXNvbHZlUGF5bWVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEVzb2x2ZUNvbmZpZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9ySGFuZGxlciA9IGluamVjdChFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlSGFuZGxlciA9IGluamVjdChFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgcGF5bWVudCBtZXRob2RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgRmlsdGVyIG9wdGlvbnNcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHBheW1lbnQgbWV0aG9kc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQYXltZW50TWV0aG9kcyhcbiAgICAgICAgb3B0aW9ucz86IEVzb2x2ZVBheW1lbnRNZXRob2RPcHRpb25zLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUGF5bWVudE1ldGhvZFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZFtdPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXBheW1lbnQtbWV0aG9kcy5waHBgLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1BheW1lbnRNZXRob2RzKHJlc3BvbnNlLnJlY29yZHMpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZSB0aGUgcGF5bWVudCBzdGF0dXMgb2YgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIElEIG9mIHRoZSB0cmFuc2FjdGlvblxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHN1Y2Nlc3Mgc3RhdHVzIG9mIHRoZSBwYXltZW50XG4gICAgICovXG4gICAgcHVibGljIGdldFBheW1lbnRTdGF0dXModHJhbnNhY3Rpb25faWQ6IG51bWJlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVBheW1lbnRTdGF0dXM+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtcGF5bWVudC1zdGF0dXMucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FydF9pZDogdHJhbnNhY3Rpb25faWQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3Jkcy5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHNhdmVkIGNhcmRzIGZyb20gdGhlIHZhdWx0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kc19pZCBlU29sdmUgSUQgb2YgYSBwYXltZW50IG1ldGhvZFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2Ygc2F2ZWQgYmFuayBjYXJkc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRWYXVsdChcbiAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkPzogbnVtYmVyLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVmF1bHRJdGVtW10+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXltZW50X21ldGhvZHNfaWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYXltZW50X21ldGhvZHNfaWQnLCBwYXltZW50X21ldGhvZHNfaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVWYXVsdFJlY29yZFtdPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXZhdWx0LnBocGAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVmF1bHRJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIG5ldyBjYXJkIGluIHRoZSB2YXVsdCBPUiB1cGRhdGVzIGFuIGV4aXN0aW5nIG9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgU2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcbiAgICAgKiBAcGFyYW0gY2FyZF9kYXRhIEluZm9ybWF0aW9uIG9mIGJhbmsgY2FyZFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgdmF1bHQgc2V0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRWYXVsdEl0ZW0oXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyLFxuICAgICAgICBjYXJkX2RhdGE6IEVzb2x2ZUNhcmREYXRhLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVmF1bHRJdGVtUmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICB2YXVsdDoge1xuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZCxcbiAgICAgICAgICAgICAgICBjYXJkX251bWJlcjogY2FyZF9kYXRhLmNhcmRfbnVtYmVyLFxuICAgICAgICAgICAgICAgIGNhcmRfbmFtZTogY2FyZF9kYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgY2FyZF9jdnY6IGNhcmRfZGF0YS5jdnYsXG4gICAgICAgICAgICAgICAgY2FyZF9leHBpcnk6IHRoaXMuZ2VuZXJhdGVFeHBpcnkoY2FyZF9kYXRhKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlVmF1bHRSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC12YXVsdC5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVWYXVsdEl0ZW1SZXN1bHQocmVzcG9uc2UpLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC12YXVsdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGEgY2FyZCBpbiB0aGUgdmF1bHRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgdmF1bHQgaXRlbVxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgdmF1bHQgZGVsZXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVWYXVsdEl0ZW0oaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2RlbGV0ZS12YXVsdC5waHBgLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IGlkIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuc3RhdHVzICE9PSAnc3VjY2VzcydcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwX3Jlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVSZXN1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5jb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBEZWxldGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUtdmF1bHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHBheW1lbnQgZm9yIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24gdXNpbmcgc2VsZWN0ZWQgcGF5bWVudFxuICAgICAqIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBlU29sdmUgSUQgdG8gdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kc19pZCBlU29sdmUgSUQgdG8gdGhlIHNlbGVjdGVkIHBheW1lbnQgbWV0aG9kXG4gICAgICogQHBhcmFtIGNhcmQgSUQgb2Ygc2VsZWN0ZWQgY2FyZCBmcm9tIHRoZSB2YXVsdCBvciBpbmZvcm1hdGlvbiB0byBhIGJyYW5kIG5ldyBjYXJkXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSBwYXltZW50XG4gICAgICovXG4gICAgcHVibGljIHNldFBheW1lbnQoXG4gICAgICAgIHRyYW5zYWN0aW9uX2lkOiBudW1iZXIsXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyLFxuICAgICAgICBjYXJkPzogRXNvbHZlQ2FyZERhdGEgfCBudW1iZXIsXG4gICAgICAgIGxpbmtzPzogRXNvbHZlUGF5bWVudFJlZGlyZWN0TGlua3MsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVQYXltZW50UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZVBheW1lbnRTZXRCb2R5ID0ge1xuICAgICAgICAgICAgcGF5bWVudDoge1xuICAgICAgICAgICAgICAgIGNhcnRfaWQ6IHRyYW5zYWN0aW9uX2lkLFxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNhcmQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2FyZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBib2R5LnBheW1lbnQudXNlcl92YXVsdF9pZCA9IGNhcmQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJvZHkuY2FyZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmQuY2FyZF9udW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfbmFtZTogY2FyZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZC5jdnYsXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5OiB0aGlzLmdlbmVyYXRlRXhwaXJ5KGNhcmQpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlua3MpIHtcbiAgICAgICAgICAgIGJvZHkubGlua3MgPSBsaW5rcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZVBheW1lbnRSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1wYXltZW50LnBocGAsXG4gICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4gbmV3IEVzb2x2ZVBheW1lbnRSZXN1bHQocmVzcG9uc2UpLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC1wYXltZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBwYXltZW50IGZvciB0aGUgc3BlY2lmaWVkIHRyYW5zYWN0aW9uIHVzaW5nIHNlbGVjdGVkIHBheW1lbnRcbiAgICAgKiBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25faWQgZVNvbHZlIElEIHRvIHRoZSB0cmFuc2FjdGlvblxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgZVNvbHZlIElEIHRvIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxuICAgICAqIEBwYXJhbSBjYXJkIElEIG9mIHNlbGVjdGVkIGNhcmQgZnJvbSB0aGUgdmF1bHQgb3IgaW5mb3JtYXRpb24gdG8gYSBicmFuZCBuZXcgY2FyZFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgcGF5bWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRBY2NvdW50UGF5bWVudChcbiAgICAgICAgY2xpZW50c19pZDogbnVtYmVyLFxuICAgICAgICBwYXltZW50X21ldGhvZHNfaWQ6IG51bWJlcixcbiAgICAgICAgdHJhbnNhY3Rpb25zOiBFc29sdmVTdGF0ZW1lbnRUcmFuc2FjdGlvbltdLFxuICAgICAgICBjYXJkPzogRXNvbHZlQ2FyZERhdGEgfCBudW1iZXIsXG4gICAgICAgIGxpbmtzPzogRXNvbHZlUGF5bWVudFJlZGlyZWN0TGlua3MsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVQYXltZW50UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZVBheW1lbnRTZXRCb2R5ID0ge1xuICAgICAgICAgICAgcGF5bWVudDoge1xuICAgICAgICAgICAgICAgIGNhcnRfaWQ6IDAsXG4gICAgICAgICAgICAgICAgY2xpZW50c19pZCxcbiAgICAgICAgICAgICAgICBwYXltZW50X21ldGhvZHNfaWQsXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoY2FyZCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjYXJkID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIGJvZHkucGF5bWVudC51c2VyX3ZhdWx0X2lkID0gY2FyZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYm9keS5jYXJkID0ge1xuICAgICAgICAgICAgICAgICAgICBjYXJkX251bWJlcjogY2FyZC5jYXJkX251bWJlcixcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9uYW1lOiBjYXJkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfY3Z2OiBjYXJkLmN2dixcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9leHBpcnk6IHRoaXMuZ2VuZXJhdGVFeHBpcnkoY2FyZCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaW5rcykge1xuICAgICAgICAgICAgYm9keS5saW5rcyA9IGxpbmtzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlUGF5bWVudFJlc3BvbnNlPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LXBheW1lbnQucGhwYCxcbiAgICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiBuZXcgRXNvbHZlUGF5bWVudFJlc3VsdChyZXNwb25zZSksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2V0LXBheW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWNjb3VudCBwYXltZW50cyBmb3IgYSBzcGVjaWZpZWQgY2xpZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBGaWx0ZXIgb3B0aW9uc1xuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgcGF5bWVudCBtZXRob2RzXG4gICAgICovXG4gICAgcHVibGljIGdldEFjY291bnRQYXltZW50cyhcbiAgICAgICAgb3B0aW9ucz86IEVzb2x2ZUFjY291bnRQYXltZW50c09wdGlvbnMsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVBY2NvdW50UGF5bWVudFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQWNjb3VudFBheW1lbnRSZWNvcmRbXT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1hY2NvdW50LXBheW1lbnRzLnBocGAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgLi4ub3B0aW9ucyB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0FjY291bnRQYXltZW50cyhyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIHRoZSBlU29sdmUgcGF5bWVudCBtZXRob2QgcmVjb3Jkcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHBheW1lbnQgbWV0aG9kcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NQYXltZW50TWV0aG9kcyhcbiAgICAgICAgcmVjb3JkczogRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZFtdLFxuICAgICk6IEVzb2x2ZVBheW1lbnRNZXRob2RbXSB7XG4gICAgICAgIGNvbnN0IHBheW1lbnRfbWV0aG9kczogRXNvbHZlUGF5bWVudE1ldGhvZFtdID0gW107XG5cbiAgICAgICAgaWYgKHJlY29yZHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXltZW50X21ldGhvZCA9IG5ldyBFc29sdmVQYXltZW50TWV0aG9kKHJlY29yZCk7XG5cbiAgICAgICAgICAgICAgICBwYXltZW50X21ldGhvZHMucHVzaChwYXltZW50X21ldGhvZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGF5bWVudF9tZXRob2RzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIGFjY291bnQgcGF5bWVudCByZWNvcmRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgYWNjb3VudCBwYXltZW50c1xuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc0FjY291bnRQYXltZW50cyhcbiAgICAgICAgcmVjb3JkczogRXNvbHZlQWNjb3VudFBheW1lbnRSZWNvcmRbXSxcbiAgICApOiBFc29sdmVBY2NvdW50UGF5bWVudFtdIHtcbiAgICAgICAgY29uc3QgYWNjb3VudF9wYXltZW50czogRXNvbHZlQWNjb3VudFBheW1lbnRbXSA9IFtdO1xuXG4gICAgICAgIGlmIChyZWNvcmRzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWNjb3VudF9wYXltZW50ID0gbmV3IEVzb2x2ZUFjY291bnRQYXltZW50KHJlY29yZCk7XG5cbiAgICAgICAgICAgICAgICBhY2NvdW50X3BheW1lbnRzLnB1c2goYWNjb3VudF9wYXltZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2NvdW50X3BheW1lbnRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHZhdWx0IHJlY29yZHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCB2YXVsdCBpdGVtcyAoYS5rLmEuIGNhcmRzKVxuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc1ZhdWx0SXRlbXMocmVjb3JkczogRXNvbHZlVmF1bHRSZWNvcmRbXSk6IEVzb2x2ZVZhdWx0SXRlbVtdIHtcbiAgICAgICAgY29uc3QgdmF1bHQ6IEVzb2x2ZVZhdWx0SXRlbVtdID0gW107XG5cbiAgICAgICAgaWYgKHJlY29yZHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICB2YXVsdC5wdXNoKG5ldyBFc29sdmVWYXVsdEl0ZW0ocmVjb3JkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmF1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGUgYSBjb25jYXRlbmF0ZWQgc3RyaW5nIHdpdGggdGhlIGV4cGlyeSBtb250aCBhbmQgeWVhclxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBDcmVkaXQgY2FyZCBkYXRhXG4gICAgICpcbiAgICAgKiAgQHJldHVybnMgRXhwaXJ5IHN0cmluZ1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2VuZXJhdGVFeHBpcnkoY2FyZF9kYXRhOiBFc29sdmVDYXJkRGF0YSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG1vbnRoX3N0cmluZyA9IGNhcmRfZGF0YS5leHBpcnlfbW9udGgucGFkU3RhcnQoMiwgJzAnKTtcbiAgICAgICAgY29uc3QgeWVhcl9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X3llYXIucGFkU3RhcnQoNCwgJzAnKTtcblxuICAgICAgICByZXR1cm4gYCR7bW9udGhfc3RyaW5nfSR7eWVhcl9zdHJpbmd9YDtcbiAgICB9XG59XG4iXX0=
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9wYXltZW50L2Vzb2x2ZS1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QyxPQUFPLEVBQ0gseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUc1QixZQUFZLEdBRWYsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUNILG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsR0FDeEIsTUFBTSxXQUFXLENBQUM7O0FBbUJuQixNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakQsb0JBQWUsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQTRhM0U7SUExYUc7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCLENBQ3BCLE9BQW9DO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sMEJBQTBCLEVBQ2hEO1lBQ0ksTUFBTSxFQUFFO2dCQUNKLEdB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LE1BQU0sY0FBYyxHQUFHLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRXZELGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssc0JBQXNCLENBQzFCLE9BQXFDO1FBRXJDLE1BQU0sZ0JBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUVwRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFekQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQUMsT0FBNEI7UUFDbEQsTUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUVwQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0EvYVEsb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGakIsTUFBTTs7MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBIdHRwQ2xpZW50LFxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIEh0dHBQYXJhbXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFc29sdmVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQge1xuICAgIEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcbiAgICBFc29sdmVHZXRSZXNwb25zZSxcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcbiAgICBFc29sdmVSZXN1bHQsXG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXG59IGZyb20gJy4uL3NoYXJlZCc7XG5cbmltcG9ydCB7XG4gICAgRXNvbHZlQWNjb3VudFBheW1lbnQsXG4gICAgRXNvbHZlUGF5bWVudE1ldGhvZCxcbiAgICBFc29sdmVQYXltZW50UmVzdWx0LFxuICAgIEVzb2x2ZVZhdWx0SXRlbSxcbiAgICBFc29sdmVWYXVsdEl0ZW1SZXN1bHQsXG59IGZyb20gJy4vY2xhc3Nlcyc7XG5pbXBvcnQge1xuICAgIEVzb2x2ZUFjY291bnRQYXltZW50UmVjb3JkLFxuICAgIEVzb2x2ZUFjY291bnRQYXltZW50c09wdGlvbnMsXG4gICAgRXNvbHZlQ2FyZERhdGEsXG4gICAgRXNvbHZlUGF5bWVudE1ldGhvZE9wdGlvbnMsXG4gICAgRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZCxcbiAgICBFc29sdmVQYXltZW50UmVkaXJlY3RMaW5rcyxcbiAgICBFc29sdmVQYXltZW50UmVzcG9uc2UsXG4gICAgRXNvbHZlUGF5bWVudFNldEJvZHksXG4gICAgRXNvbHZlUGF5bWVudFN0YXR1cyxcbiAgICBFc29sdmVWYXVsdFJlY29yZCxcbiAgICBFc29sdmVWYXVsdFJlc3BvbnNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRXNvbHZlU3RhdGVtZW50VHJhbnNhY3Rpb24gfSBmcm9tICcuLi9hY2NvdW50L3VzZXItYWNjb3VudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVzb2x2ZVBheW1lbnRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChFc29sdmVDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvckhhbmRsZXIgPSBpbmplY3QoRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZUhhbmRsZXIgPSBpbmplY3QoRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHBheW1lbnQgbWV0aG9kcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBwYXltZW50IG1ldGhvZHNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGF5bWVudE1ldGhvZHMoXG4gICAgICAgIG9wdGlvbnM/OiBFc29sdmVQYXltZW50TWV0aG9kT3B0aW9ucyxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVBheW1lbnRNZXRob2RbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmRbXT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1wYXltZW50LW1ldGhvZHMucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQYXltZW50TWV0aG9kcyhyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgdGhlIHBheW1lbnQgc3RhdHVzIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBJRCBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBzdWNjZXNzIHN0YXR1cyBvZiB0aGUgcGF5bWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQYXltZW50U3RhdHVzKHRyYW5zYWN0aW9uX2lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVQYXltZW50U3RhdHVzPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXBheW1lbnQtc3RhdHVzLnBocGAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcnRfaWQ6IHRyYW5zYWN0aW9uX2lkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlY29yZHMuc3VjY2VzcztcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBzYXZlZCBjYXJkcyBmcm9tIHRoZSB2YXVsdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgZVNvbHZlIElEIG9mIGEgcGF5bWVudCBtZXRob2RcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHNhdmVkIGJhbmsgY2FyZHNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmF1bHQoXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZD86IG51bWJlcixcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVZhdWx0SXRlbVtdPiB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgcGF5bWVudF9tZXRob2RzX2lkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGF5bWVudF9tZXRob2RzX2lkJywgcGF5bWVudF9tZXRob2RzX2lkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVmF1bHRSZWNvcmRbXT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC12YXVsdC5waHBgLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1ZhdWx0SXRlbXMocmVzcG9uc2UucmVjb3Jkcyk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBuZXcgY2FyZCBpbiB0aGUgdmF1bHQgT1IgdXBkYXRlcyBhbiBleGlzdGluZyBvbmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RzX2lkIFNlbGVjdGVkIHBheW1lbnQgbWV0aG9kXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBJbmZvcm1hdGlvbiBvZiBiYW5rIGNhcmRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHZhdWx0IHNldC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmF1bHRJdGVtKFxuICAgICAgICBwYXltZW50X21ldGhvZHNfaWQ6IG51bWJlcixcbiAgICAgICAgY2FyZF9kYXRhOiBFc29sdmVDYXJkRGF0YSxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVZhdWx0SXRlbVJlc3VsdD4ge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgdmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBwYXltZW50X21ldGhvZHNfaWQsXG4gICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmRfZGF0YS5jYXJkX251bWJlcixcbiAgICAgICAgICAgICAgICBjYXJkX25hbWU6IGNhcmRfZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgIGNhcmRfY3Z2OiBjYXJkX2RhdGEuY3Z2LFxuICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5X21vbnRoOiBjYXJkX2RhdGEuZXhwaXJ5X21vbnRoLFxuICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5X3llYXI6IGNhcmRfZGF0YS5leHBpcnlfeWVhcixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlVmF1bHRSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC12YXVsdC5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVWYXVsdEl0ZW1SZXN1bHQocmVzcG9uc2UpLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC12YXVsdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGEgY2FyZCBpbiB0aGUgdmF1bHRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgdmF1bHQgaXRlbVxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgdmF1bHQgZGVsZXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVWYXVsdEl0ZW0oaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2RlbGV0ZS12YXVsdC5waHBgLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IGlkIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuc3RhdHVzICE9PSAnc3VjY2VzcydcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwX3Jlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVSZXN1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5jb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBEZWxldGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUtdmF1bHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHBheW1lbnQgZm9yIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24gdXNpbmcgc2VsZWN0ZWQgcGF5bWVudFxuICAgICAqIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBlU29sdmUgSUQgdG8gdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kc19pZCBlU29sdmUgSUQgdG8gdGhlIHNlbGVjdGVkIHBheW1lbnQgbWV0aG9kXG4gICAgICogQHBhcmFtIGNhcmQgSUQgb2Ygc2VsZWN0ZWQgY2FyZCBmcm9tIHRoZSB2YXVsdCBvciBpbmZvcm1hdGlvbiB0byBhIGJyYW5kIG5ldyBjYXJkXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSBwYXltZW50XG4gICAgICovXG4gICAgcHVibGljIHNldFBheW1lbnQoXG4gICAgICAgIHRyYW5zYWN0aW9uX2lkOiBudW1iZXIsXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyLFxuICAgICAgICBjYXJkPzogRXNvbHZlQ2FyZERhdGEgfCBudW1iZXIsXG4gICAgICAgIGxpbmtzPzogRXNvbHZlUGF5bWVudFJlZGlyZWN0TGlua3MsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVQYXltZW50UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZVBheW1lbnRTZXRCb2R5ID0ge1xuICAgICAgICAgICAgcGF5bWVudDoge1xuICAgICAgICAgICAgICAgIGNhcnRfaWQ6IHRyYW5zYWN0aW9uX2lkLFxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNhcmQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2FyZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBib2R5LnBheW1lbnQudXNlcl92YXVsdF9pZCA9IGNhcmQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJvZHkuY2FyZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmQuY2FyZF9udW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfbmFtZTogY2FyZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZC5jdnYsXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5X21vbnRoOiBjYXJkLmV4cGlyeV9tb250aCxcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9leHBpcnlfeWVhcjogY2FyZC5leHBpcnlfeWVhcixcbiAgICAgICAgICAgICAgICAgICAgc2F2ZV9jYXJkOiBjYXJkLnNhdmVfY2FyZCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpbmtzKSB7XG4gICAgICAgICAgICBib2R5LmxpbmtzID0gbGlua3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQYXltZW50UmVzcG9uc2U+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtcGF5bWVudC5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVQYXltZW50UmVzdWx0KHJlc3BvbnNlKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtcGF5bWVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcGF5bWVudCBmb3IgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvbiB1c2luZyBzZWxlY3RlZCBwYXltZW50XG4gICAgICogbWV0aG9kLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIGVTb2x2ZSBJRCB0byB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RzX2lkIGVTb2x2ZSBJRCB0byB0aGUgc2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcbiAgICAgKiBAcGFyYW0gY2FyZCBJRCBvZiBzZWxlY3RlZCBjYXJkIGZyb20gdGhlIHZhdWx0IG9yIGluZm9ybWF0aW9uIHRvIGEgYnJhbmQgbmV3IGNhcmRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHBheW1lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QWNjb3VudFBheW1lbnQoXG4gICAgICAgIGNsaWVudHNfaWQ6IG51bWJlcixcbiAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkOiBudW1iZXIsXG4gICAgICAgIHRyYW5zYWN0aW9uczogRXNvbHZlU3RhdGVtZW50VHJhbnNhY3Rpb25bXSxcbiAgICAgICAgY2FyZD86IEVzb2x2ZUNhcmREYXRhIHwgbnVtYmVyLFxuICAgICAgICBsaW5rcz86IEVzb2x2ZVBheW1lbnRSZWRpcmVjdExpbmtzLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUGF5bWVudFJlc3VsdD4ge1xuICAgICAgICBjb25zdCBib2R5OiBFc29sdmVQYXltZW50U2V0Qm9keSA9IHtcbiAgICAgICAgICAgIHBheW1lbnQ6IHtcbiAgICAgICAgICAgICAgICBjYXJ0X2lkOiAwLFxuICAgICAgICAgICAgICAgIGNsaWVudHNfaWQsXG4gICAgICAgICAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkLFxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9ucyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNhcmQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2FyZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBib2R5LnBheW1lbnQudXNlcl92YXVsdF9pZCA9IGNhcmQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJvZHkuY2FyZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmQuY2FyZF9udW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfbmFtZTogY2FyZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZC5jdnYsXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5X21vbnRoOiBjYXJkLmV4cGlyeV9tb250aCxcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9leHBpcnlfeWVhcjogY2FyZC5leHBpcnlfeWVhcixcbiAgICAgICAgICAgICAgICAgICAgc2F2ZV9jYXJkOiBjYXJkLnNhdmVfY2FyZCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpbmtzKSB7XG4gICAgICAgICAgICBib2R5LmxpbmtzID0gbGlua3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQYXltZW50UmVzcG9uc2U+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtcGF5bWVudC5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVQYXltZW50UmVzdWx0KHJlc3BvbnNlKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtcGF5bWVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBhY2NvdW50IHBheW1lbnRzIGZvciBhIHNwZWNpZmllZCBjbGllbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBwYXltZW50IG1ldGhvZHNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWNjb3VudFBheW1lbnRzKFxuICAgICAgICBvcHRpb25zPzogRXNvbHZlQWNjb3VudFBheW1lbnRzT3B0aW9ucyxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUFjY291bnRQYXltZW50W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVBY2NvdW50UGF5bWVudFJlY29yZFtdPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWFjY291bnQtcGF5bWVudHMucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyAuLi5vcHRpb25zIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQWNjb3VudFBheW1lbnRzKHJlc3BvbnNlLnJlY29yZHMpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBwYXltZW50IG1ldGhvZCByZWNvcmRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgcGF5bWVudCBtZXRob2RzLlxuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc1BheW1lbnRNZXRob2RzKFxuICAgICAgICByZWNvcmRzOiBFc29sdmVQYXltZW50TWV0aG9kUmVjb3JkW10sXG4gICAgKTogRXNvbHZlUGF5bWVudE1ldGhvZFtdIHtcbiAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2RzOiBFc29sdmVQYXltZW50TWV0aG9kW10gPSBbXTtcblxuICAgICAgICBpZiAocmVjb3Jkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBheW1lbnRfbWV0aG9kID0gbmV3IEVzb2x2ZVBheW1lbnRNZXRob2QocmVjb3JkKTtcblxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kcy5wdXNoKHBheW1lbnRfbWV0aG9kKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXltZW50X21ldGhvZHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIHRoZSBlU29sdmUgYWNjb3VudCBwYXltZW50IHJlY29yZHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBhY2NvdW50IHBheW1lbnRzXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9jZXNzQWNjb3VudFBheW1lbnRzKFxuICAgICAgICByZWNvcmRzOiBFc29sdmVBY2NvdW50UGF5bWVudFJlY29yZFtdLFxuICAgICk6IEVzb2x2ZUFjY291bnRQYXltZW50W10ge1xuICAgICAgICBjb25zdCBhY2NvdW50X3BheW1lbnRzOiBFc29sdmVBY2NvdW50UGF5bWVudFtdID0gW107XG5cbiAgICAgICAgaWYgKHJlY29yZHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY2NvdW50X3BheW1lbnQgPSBuZXcgRXNvbHZlQWNjb3VudFBheW1lbnQocmVjb3JkKTtcblxuICAgICAgICAgICAgICAgIGFjY291bnRfcGF5bWVudHMucHVzaChhY2NvdW50X3BheW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY291bnRfcGF5bWVudHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIHRoZSBlU29sdmUgdmF1bHQgcmVjb3Jkcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHZhdWx0IGl0ZW1zIChhLmsuYS4gY2FyZHMpXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9jZXNzVmF1bHRJdGVtcyhyZWNvcmRzOiBFc29sdmVWYXVsdFJlY29yZFtdKTogRXNvbHZlVmF1bHRJdGVtW10ge1xuICAgICAgICBjb25zdCB2YXVsdDogRXNvbHZlVmF1bHRJdGVtW10gPSBbXTtcblxuICAgICAgICBpZiAocmVjb3Jkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIHZhdWx0LnB1c2gobmV3IEVzb2x2ZVZhdWx0SXRlbShyZWNvcmQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YXVsdDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcmQtZGF0YS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvcGF5bWVudC9pbnRlcmZhY2VzL2Vzb2x2ZS1jYXJkLWRhdGEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUNhcmREYXRhIHtcbiAgICBjYXJkX251bWJlcjogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjdnY6IHN0cmluZztcbiAgICBleHBpcnlfbW9udGg6IHN0cmluZztcbiAgICBleHBpcnlfeWVhcjogc3RyaW5nO1xuICAgIHNhdmVfY2FyZD86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQtbWV0aG9kLXJlY29yZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvcGF5bWVudC9pbnRlcmZhY2VzL2Vzb2x2ZS1wYXltZW50LW1ldGhvZC1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVJbnRlZ3JhdGlvblR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZCB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBsb2NhdGlvbl9pZDogbnVtYmVyO1xuICAgIHBheW1ldGhvZF9uYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBkaXNwbGF5X2JhbmtpbmdfZGV0YWlsczogYm9vbGVhbjtcbiAgICBiYW5rX25hbWU6IHN0cmluZztcbiAgICBhY2NvdW50X2hvbGRlcjogc3RyaW5nO1xuICAgIGFjY291bnQ6IHN0cmluZztcbiAgICBhY2NvdW50X3R5cGU6IHN0cmluZztcbiAgICBzd2lmdF9udW1iZXI6IHN0cmluZztcbiAgICBicmFuY2hfY29kZTogc3RyaW5nO1xuICAgIGN1cnJlbmN5X2NvZGU6IHN0cmluZztcbiAgICBpc19nYXRld2F5OiBib29sZWFuO1xuICAgIG11c3Rfc3RvcmVfY2FyZF9kZXRhaWxzOiBib29sZWFuO1xuICAgIGFsbG93X2J1ZGdldDogYm9vbGVhbjtcbiAgICBhbGxvd19jYXJ0X3BheW1lbnRzOiBib29sZWFuO1xuICAgIGFsbG93X2FjY291bnRfcGF5bWVudHM6IGJvb2xlYW47XG4gICAgaW50ZWdyYXRpb25fdHlwZTogRXNvbHZlSW50ZWdyYXRpb25UeXBlO1xuICAgIGFjY2VwdGVkX2NhcmRfdHlwZXM6IHN0cmluZ1tdO1xuICAgIGdhdGV3YXlfdXJsOiBzdHJpbmc7XG4gICAgZ2VuZXJhdGVfdG9rZW5fdXJsOiBzdHJpbmc7XG4gICAgd2lkZ2V0X3VybDogc3RyaW5nO1xuICAgIHN1Y2Nlc3NmdWxfdXJsOiBzdHJpbmc7XG4gICAgZmFpbGVkX3VybDogc3RyaW5nO1xuICAgIGVuYWJsZV9jYWxsYmFjazogYm9vbGVhbjtcbiAgICBsaXZlOiBib29sZWFuO1xuICAgIGRlZmF1bHRfbW9kdWxlX2lkOiBudW1iZXI7XG4gICAgc2VydmljZV9wcm92aWRlcjogc3RyaW5nO1xuICAgIG9uX2FjY291bnQ6IGJvb2xlYW47XG4gICAgc29ydF9wcmlvcml0eTogbnVtYmVyO1xuICAgIGltYWdlX3VybDogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQtc2V0LWJvZHkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3BheW1lbnQvaW50ZXJmYWNlcy9lc29sdmUtcGF5bWVudC1zZXQtYm9keS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN0YXRlbWVudFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vYWNjb3VudCc7XG5pbXBvcnQgeyBFc29sdmVQYXltZW50UmVkaXJlY3RMaW5rcyB9IGZyb20gJy4vZXNvbHZlLXBheW1lbnQtcmVkaXJlY3QtbGlua3MuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBFc29sdmVQYXltZW50U2V0Qm9keSB7XG4gICAgcGF5bWVudDoge1xuICAgICAgICBjYXJ0X2lkOiBudW1iZXI7XG4gICAgICAgIGNsaWVudHNfaWQ/OiBudW1iZXI7XG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyO1xuICAgICAgICB0cmFuc2FjdGlvbnM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQtc2V0LWJvZHkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3BheW1lbnQvaW50ZXJmYWNlcy9lc29sdmUtcGF5bWVudC1zZXQtYm9keS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN0YXRlbWVudFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vYWNjb3VudCc7XG5pbXBvcnQgeyBFc29sdmVQYXltZW50UmVkaXJlY3RMaW5rcyB9IGZyb20gJy4vZXNvbHZlLXBheW1lbnQtcmVkaXJlY3QtbGlua3MuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBFc29sdmVQYXltZW50U2V0Qm9keSB7XG4gICAgcGF5bWVudDoge1xuICAgICAgICBjYXJ0X2lkOiBudW1iZXI7XG4gICAgICAgIGNsaWVudHNfaWQ/OiBudW1iZXI7XG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyO1xuICAgICAgICB0cmFuc2FjdGlvbnM/OiBFc29sdmVTdGF0ZW1lbnRUcmFuc2FjdGlvbltdO1xuICAgICAgICB1c2VyX3ZhdWx0X2lkPzogbnVtYmVyO1xuICAgIH07XG4gICAgY2FyZD86IHtcbiAgICAgICAgY2FyZF9udW1iZXI6IHN0cmluZztcbiAgICAgICAgY2FyZF9uYW1lOiBzdHJpbmc7XG4gICAgICAgIGNhcmRfY3Z2OiBzdHJpbmc7XG4gICAgICAgIGNhcmRfZXhwaXJ5X21vbnRoOiBzdHJpbmc7XG4gICAgICAgIGNhcmRfZXhwaXJ5X3llYXI6IHN0cmluZztcbiAgICAgICAgc2F2ZV9jYXJkPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIGxpbmtzPzogRXNvbHZlUGF5bWVudFJlZGlyZWN0TGlua3M7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlcnZpY2UtcHJvdmlkZXIudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9wYXltZW50L3R5cGVzL2Vzb2x2ZS1zZXJ2aWNlLXByb3ZpZGVyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEVzb2x2ZVNlcnZpY2VQcm92aWRlciA9XG4gICAgfCAncGF5Z2F0ZSdcbiAgICB8ICdwYXlmYXN0J1xuICAgIHwgJ3BheWZsZXgnXG4gICAgfCAnc25hcHNjYW4nXG4gICAgfCAnb3pvdydcbiAgICB8ICdteV9nYXRlJ1xuICAgIHwgJ2ZuYidcbiAgICB8ICdhZHVtbydcbiAgICB8ICd3YWxsZXRkb2MnO1xuIl19
|
|
@@ -1097,10 +1097,12 @@ class EsolveOtp {
|
|
|
1097
1097
|
this.otp_generated = false;
|
|
1098
1098
|
this.otp_key = '';
|
|
1099
1099
|
this.otp_sms_sent = false;
|
|
1100
|
+
this.otp_email_sent = false;
|
|
1100
1101
|
this.sms_response = '';
|
|
1101
1102
|
this.otp_generated = record.otp_generated;
|
|
1102
1103
|
this.otp_key = record.otp_key;
|
|
1103
1104
|
this.otp_sms_sent = record.otp_sms_sent;
|
|
1105
|
+
this.otp_email_sent = record.otp_email_sent;
|
|
1104
1106
|
this.otp_expiry = new Date(+record.otp_expiry * 1000);
|
|
1105
1107
|
this.sms_response = record.sms_response;
|
|
1106
1108
|
}
|
|
@@ -1132,11 +1134,16 @@ class EsolveOtpService {
|
|
|
1132
1134
|
this.http = inject(HttpClient);
|
|
1133
1135
|
this.auth = inject(EsolveAuthService);
|
|
1134
1136
|
}
|
|
1135
|
-
getOtp(
|
|
1137
|
+
getOtp(options, captcha_options) {
|
|
1136
1138
|
let params = new HttpParams();
|
|
1139
|
+
const recipient_number = options?.recipient_number;
|
|
1140
|
+
const recipient_email = options?.recipient_email;
|
|
1137
1141
|
if (recipient_number) {
|
|
1138
1142
|
params = params.set('recipient_number', recipient_number);
|
|
1139
1143
|
}
|
|
1144
|
+
if (recipient_email) {
|
|
1145
|
+
params = params.set('recipient_email', recipient_email);
|
|
1146
|
+
}
|
|
1140
1147
|
if (captcha_options) {
|
|
1141
1148
|
params = params.set('captcha_key', captcha_options.captcha_key);
|
|
1142
1149
|
params = params.set('captcha_code', captcha_options.captcha_code);
|
|
@@ -1156,7 +1163,7 @@ class EsolveOtpService {
|
|
|
1156
1163
|
return throwError(() => error);
|
|
1157
1164
|
}
|
|
1158
1165
|
}
|
|
1159
|
-
getValidateOtp(otp_key, otp_code, otp_action = ''
|
|
1166
|
+
getValidateOtp(otp_key, otp_code, otp_action = '') {
|
|
1160
1167
|
try {
|
|
1161
1168
|
return this.http
|
|
1162
1169
|
.get(`${this.config.api_url}/get-otp-validation.php`, {
|
|
@@ -1164,8 +1171,6 @@ class EsolveOtpService {
|
|
|
1164
1171
|
otp_key,
|
|
1165
1172
|
otp_code,
|
|
1166
1173
|
otp_action,
|
|
1167
|
-
email,
|
|
1168
|
-
cellnumber,
|
|
1169
1174
|
},
|
|
1170
1175
|
})
|
|
1171
1176
|
.pipe(map((response) => {
|
|
@@ -2586,6 +2591,7 @@ class EsolveStatementTransaction {
|
|
|
2586
2591
|
constructor(record) {
|
|
2587
2592
|
if (record) {
|
|
2588
2593
|
this.document_date = record.document_date ?? '';
|
|
2594
|
+
this.document_type = record.document_type ?? '';
|
|
2589
2595
|
this.order_number = record.order_number ?? '';
|
|
2590
2596
|
this.comment = record.comment ?? '';
|
|
2591
2597
|
this.account = record.account ?? '';
|
|
@@ -2593,6 +2599,7 @@ class EsolveStatementTransaction {
|
|
|
2593
2599
|
this.total = +(record.total ?? 0);
|
|
2594
2600
|
this.amount_due = +(record.amount_due ?? 0);
|
|
2595
2601
|
this.is_debit = !!+(record.is_debit ?? true);
|
|
2602
|
+
this.is_credit = !!+(record.is_credit ?? false);
|
|
2596
2603
|
}
|
|
2597
2604
|
}
|
|
2598
2605
|
}
|
|
@@ -7137,20 +7144,13 @@ class EsolvePaymentMethod {
|
|
|
7137
7144
|
this.description = record.description;
|
|
7138
7145
|
this.display_banking_details = !!+record.display_banking_details;
|
|
7139
7146
|
this.currency_code = record.currency_code;
|
|
7140
|
-
this.merchant_id = record.merchant_id;
|
|
7141
|
-
this.application_id = record.application_id;
|
|
7142
|
-
this.api_signature = record.api_signature;
|
|
7143
7147
|
this.is_gateway = !!+record.is_gateway;
|
|
7144
7148
|
this.must_store_card_details = !!+record.must_store_card_details;
|
|
7145
7149
|
this.allow_budget = !!+record.allow_budget;
|
|
7146
7150
|
this.allow_cart_payments = !!+record.allow_cart_payments;
|
|
7147
7151
|
this.allow_account_payments = !!+record.allow_account_payments;
|
|
7148
7152
|
this.integration_type = record.integration_type;
|
|
7149
|
-
this.bank_gateway_id = record.bank_gateway_id;
|
|
7150
7153
|
this.accepted_card_types = record.accepted_card_types;
|
|
7151
|
-
this.post_transactions_to_gateway =
|
|
7152
|
-
!!+record.post_transactions_to_gateway;
|
|
7153
|
-
this.three_d_secure_url = record.three_d_secure_url;
|
|
7154
7154
|
this.gateway_url = record.gateway_url;
|
|
7155
7155
|
this.generate_token_url = record.generate_token_url;
|
|
7156
7156
|
this.widget_url = record.widget_url;
|
|
@@ -7349,7 +7349,8 @@ class EsolvePaymentService {
|
|
|
7349
7349
|
card_number: card_data.card_number,
|
|
7350
7350
|
card_name: card_data.name,
|
|
7351
7351
|
card_cvv: card_data.cvv,
|
|
7352
|
-
|
|
7352
|
+
card_expiry_month: card_data.expiry_month,
|
|
7353
|
+
card_expiry_year: card_data.expiry_year,
|
|
7353
7354
|
},
|
|
7354
7355
|
};
|
|
7355
7356
|
return this.http
|
|
@@ -7415,7 +7416,9 @@ class EsolvePaymentService {
|
|
|
7415
7416
|
card_number: card.card_number,
|
|
7416
7417
|
card_name: card.name,
|
|
7417
7418
|
card_cvv: card.cvv,
|
|
7418
|
-
|
|
7419
|
+
card_expiry_month: card.expiry_month,
|
|
7420
|
+
card_expiry_year: card.expiry_year,
|
|
7421
|
+
save_card: card.save_card,
|
|
7419
7422
|
};
|
|
7420
7423
|
}
|
|
7421
7424
|
}
|
|
@@ -7462,7 +7465,9 @@ class EsolvePaymentService {
|
|
|
7462
7465
|
card_number: card.card_number,
|
|
7463
7466
|
card_name: card.name,
|
|
7464
7467
|
card_cvv: card.cvv,
|
|
7465
|
-
|
|
7468
|
+
card_expiry_month: card.expiry_month,
|
|
7469
|
+
card_expiry_year: card.expiry_year,
|
|
7470
|
+
save_card: card.save_card,
|
|
7466
7471
|
};
|
|
7467
7472
|
}
|
|
7468
7473
|
}
|
|
@@ -7550,18 +7555,6 @@ class EsolvePaymentService {
|
|
|
7550
7555
|
}
|
|
7551
7556
|
return vault;
|
|
7552
7557
|
}
|
|
7553
|
-
/**
|
|
7554
|
-
* Generate a concatenated string with the expiry month and year
|
|
7555
|
-
*
|
|
7556
|
-
* @param card_data Credit card data
|
|
7557
|
-
*
|
|
7558
|
-
* @returns Expiry string
|
|
7559
|
-
*/
|
|
7560
|
-
generateExpiry(card_data) {
|
|
7561
|
-
const month_string = card_data.expiry_month.padStart(2, '0');
|
|
7562
|
-
const year_string = card_data.expiry_year.padStart(4, '0');
|
|
7563
|
-
return `${month_string}${year_string}`;
|
|
7564
|
-
}
|
|
7565
7558
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EsolvePaymentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7566
7559
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EsolvePaymentService, providedIn: 'root' }); }
|
|
7567
7560
|
}
|