taxtank-core 0.28.67 → 0.28.68

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.
@@ -3,4 +3,4 @@
3
3
  */
4
4
  export class BankLoginData {
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1sb2dpbi1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9iYW5rL2JhbmstbG9naW4tZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0NBVXpCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMb2dpbiBkYXRhIG9iamVjdCBmb3IgYmFzaXEgYmFua3NcbiAqL1xuZXhwb3J0IGNsYXNzIEJhbmtMb2dpbkRhdGEge1xuICAvKipcbiAgICogT2JqZWN0IHdpdGggYmFuayBleHRlcm5hbCBpZFxuICAgKi9cbiAgaW5zdGl0dXRpb246IHtpZDogc3RyaW5nfTtcblxuICAvKipcbiAgICogRHluYW1pYyBsb2dpbiBkYXRhIGZpZWxkcy4gVGhlc2UgZmllbGRzIG1heSBiZSBkaWZmZXJlbnQgZm9yIGRpZmZlcmVudCBiYW5rc1xuICAgKi9cbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwge2lkOiBzdHJpbmd9O1xufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1sb2dpbi1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9iYW5rL2JhbmstbG9naW4tZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0NBZXpCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMb2dpbiBkYXRhIG9iamVjdCBmb3IgYmFzaXEgYmFua3NcbiAqL1xuZXhwb3J0IGNsYXNzIEJhbmtMb2dpbkRhdGEge1xuICAvKipcbiAgICogRXh0ZXJuYWwgaWQgb2YgYmFua0Nvbm5lY3Rpb24gaXMgdXNpbmcgZm9yIHJlY29ubmVjdCBleGlzdGluZyBiYW5rIGNvbm5lY3Rpb25cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPYmplY3Qgd2l0aCBiYW5rIGV4dGVybmFsIGlkXG4gICAqL1xuICBpbnN0aXR1dGlvbjoge2lkOiBzdHJpbmd9O1xuXG4gIC8qKlxuICAgKiBEeW5hbWljIGxvZ2luIGRhdGEgZmllbGRzLiBUaGVzZSBmaWVsZHMgbWF5IGJlIGRpZmZlcmVudCBmb3IgZGlmZmVyZW50IGJhbmtzXG4gICAqL1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB7aWQ6IHN0cmluZ307XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtY29ubmVjdGlvbi1kYXRhLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvYmFuay9iYXNpcS9iYXNpcS1jb25uZWN0aW9uLWRhdGEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBjb250YWlucyBkYXRhIHJlcXVpcmVkIGZvciBCYXNpcSBBUEkuXG4gKiBVc2VkIGZvciBjb25uZWN0L3JlY29ubmVjdCBiYW5rc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2lxQ29ubmVjdGlvbkRhdGEge1xuICBqb2JJZDogc3RyaW5nO1xuICBjb25uZWN0aW9uSWQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -9,4 +9,4 @@ export class BasiqJobResponse {
9
9
  __decorate([
10
10
  Type(() => BasiqJobStep)
11
11
  ], BasiqJobResponse.prototype, "steps", void 0);
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtam9iLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9iYW5rL2Jhc2lxL2Jhc2lxLWpvYi1yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0NBQ0Y7QUFMQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7K0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQmFzaXFKb2JTdGVwIH0gZnJvbSAnLi9iYXNpcS1qb2Itc3RlcCc7XG5cbmV4cG9ydCBjbGFzcyBCYXNpcUpvYlJlc3BvbnNlIHtcbiAgQFR5cGUoKCkgPT4gQmFzaXFKb2JTdGVwKVxuICBzdGVwczogQmFzaXFKb2JTdGVwW107XG5cbiAgZ2V0VmVyaWZ5Q3JlZGVudGlhbHNTdGVwKCk6IEJhc2lxSm9iU3RlcCB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHMuZmluZCgoc3RlcDogQmFzaXFKb2JTdGVwKSA9PiBzdGVwLmlzVmVyaWZ5Q3JlZGVudGlhbHMoKSk7XG4gIH1cbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtam9iLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9iYW5rL2Jhc2lxL2Jhc2lxLWpvYi1yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0NBQ0Y7QUFMQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7K0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQmFzaXFKb2JTdGVwIH0gZnJvbSAnLi9iYXNpcS1qb2Itc3RlcCc7XG5cbmV4cG9ydCBjbGFzcyBCYXNpcUpvYlJlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcblxuICBAVHlwZSgoKSA9PiBCYXNpcUpvYlN0ZXApXG4gIHN0ZXBzOiBCYXNpcUpvYlN0ZXBbXTtcblxuICBnZXRWZXJpZnlDcmVkZW50aWFsc1N0ZXAoKTogQmFzaXFKb2JTdGVwIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcy5maW5kKChzdGVwOiBCYXNpcUpvYlN0ZXApID0+IHN0ZXAuaXNWZXJpZnlDcmVkZW50aWFscygpKTtcbiAgfVxufVxuIl19
@@ -1,8 +1,9 @@
1
1
  export * from './basiq-config';
2
+ export * from './basiq-connection-data.interface';
2
3
  export * from './basiq-connections-response.interface';
3
4
  export * from './basiq-job';
4
5
  export * from './basiq-job-response';
5
6
  export * from './basiq-job-step';
6
7
  export * from './basiq-token';
7
8
  export * from './basiq-token-response.interface';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2JhbmsvYmFzaXEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1jb25uZWN0aW9ucy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1qb2InO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1qb2ItcmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1qb2Itc3RlcCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2lxLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzaXEtdG9rZW4tcmVzcG9uc2UuaW50ZXJmYWNlJztcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2JhbmsvYmFzaXEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2lxLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2lxLWNvbm5lY3Rpb24tZGF0YS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1jb25uZWN0aW9ucy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1qb2InO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1qb2ItcmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpcS1qb2Itc3RlcCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2lxLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzaXEtdG9rZW4tcmVzcG9uc2UuaW50ZXJmYWNlJztcbiJdfQ==
@@ -10,63 +10,64 @@ export var AppEventTypeEnum;
10
10
  AppEventTypeEnum[AppEventTypeEnum["BASIQ_CONSENT_UPDATED"] = 7] = "BASIQ_CONSENT_UPDATED";
11
11
  AppEventTypeEnum[AppEventTypeEnum["BASIQ_CONNECTION_UPDATED"] = 8] = "BASIQ_CONNECTION_UPDATED";
12
12
  AppEventTypeEnum[AppEventTypeEnum["BASIQ_JOB_CREATED"] = 9] = "BASIQ_JOB_CREATED";
13
- AppEventTypeEnum[AppEventTypeEnum["BASIQ_LOGIN_FINISHED"] = 10] = "BASIQ_LOGIN_FINISHED";
14
- AppEventTypeEnum[AppEventTypeEnum["CLIENT_INVITE_ACCEPTED"] = 11] = "CLIENT_INVITE_ACCEPTED";
15
- AppEventTypeEnum[AppEventTypeEnum["CLIENT_OPEN_CHAT"] = 12] = "CLIENT_OPEN_CHAT";
16
- AppEventTypeEnum[AppEventTypeEnum["CLIENT_TRANSFER_TO_OTHER_EMPLOYEE"] = 13] = "CLIENT_TRANSFER_TO_OTHER_EMPLOYEE";
17
- AppEventTypeEnum[AppEventTypeEnum["CURRENT_USER_GET_FAILED"] = 14] = "CURRENT_USER_GET_FAILED";
18
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_DELETED"] = 15] = "DEPRECIATION_DELETED";
19
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATIONS_CREATED"] = 16] = "DEPRECIATIONS_CREATED";
20
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_UPDATED_WITH_RECEIPT"] = 17] = "DEPRECIATION_UPDATED_WITH_RECEIPT";
21
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_UPDATED_WITH_DELETED_RECEIPT"] = 18] = "DEPRECIATION_UPDATED_WITH_DELETED_RECEIPT";
22
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_RECEIPT_CREATED"] = 19] = "DEPRECIATION_RECEIPT_CREATED";
23
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_RECEIPT_DELETED"] = 20] = "DEPRECIATION_RECEIPT_DELETED";
24
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_CREATED"] = 21] = "INCOME_SOURCES_CREATED";
25
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_UPDATED"] = 22] = "INCOME_SOURCES_UPDATED";
26
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_CREATED"] = 23] = "INCOME_SOURCES_FORECASTS_CREATED";
27
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_UPDATED"] = 24] = "INCOME_SOURCES_FORECASTS_UPDATED";
28
- AppEventTypeEnum[AppEventTypeEnum["LOAN_UPDATED"] = 25] = "LOAN_UPDATED";
29
- AppEventTypeEnum[AppEventTypeEnum["LOAN_PAYOUT_UPDATED"] = 26] = "LOAN_PAYOUT_UPDATED";
30
- AppEventTypeEnum[AppEventTypeEnum["MESSAGE_CREATED"] = 27] = "MESSAGE_CREATED";
31
- AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_CREATED"] = 28] = "MESSAGE_FILE_CREATED";
32
- AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_DELETED"] = 29] = "MESSAGE_FILE_DELETED";
33
- AppEventTypeEnum[AppEventTypeEnum["NOTIFICATION_ADDED"] = 30] = "NOTIFICATION_ADDED";
34
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_DEPRECIATION_CALCULATION_UPDATED"] = 31] = "PROPERTY_DEPRECIATION_CALCULATION_UPDATED";
35
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_UPDATED"] = 32] = "PROPERTY_UPDATED";
36
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_UPDATED_WITH_DOCUMENT"] = 33] = "PROPERTY_UPDATED_WITH_DOCUMENT";
37
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_DOCUMENT_ADDED"] = 34] = "PROPERTY_DOCUMENT_ADDED";
38
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_CREATED"] = 35] = "PROPERTY_MOVEMENT_CREATED";
39
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_UPDATED"] = 36] = "PROPERTY_MOVEMENT_UPDATED";
40
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_DELETED"] = 37] = "PROPERTY_MOVEMENT_DELETED";
41
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SHARE_UPDATED"] = 38] = "PROPERTY_SHARE_UPDATED";
42
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SALE_ADDED"] = 39] = "PROPERTY_SALE_ADDED";
43
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SALE_DELETED"] = 40] = "PROPERTY_SALE_DELETED";
44
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_ADDED"] = 41] = "PROPERTY_SUBSCRIPTION_ADDED";
45
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_DELETED"] = 42] = "PROPERTY_SUBSCRIPTION_DELETED";
46
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_VALUATION_DOCUMENT_CREATED"] = 43] = "PROPERTY_VALUATION_DOCUMENT_CREATED";
47
- AppEventTypeEnum[AppEventTypeEnum["SERVICE_SUBSCRIPTION_UPDATED"] = 44] = "SERVICE_SUBSCRIPTION_UPDATED";
48
- AppEventTypeEnum[AppEventTypeEnum["SOLE_BUSINESS_CREATED"] = 45] = "SOLE_BUSINESS_CREATED";
49
- AppEventTypeEnum[AppEventTypeEnum["SOLE_DEPRECIATION_METHOD_UPDATED"] = 46] = "SOLE_DEPRECIATION_METHOD_UPDATED";
50
- AppEventTypeEnum[AppEventTypeEnum["SOLE_DETAILS_CREATED"] = 47] = "SOLE_DETAILS_CREATED";
51
- AppEventTypeEnum[AppEventTypeEnum["SOLE_DETAILS_UPDATED"] = 48] = "SOLE_DETAILS_UPDATED";
52
- AppEventTypeEnum[AppEventTypeEnum["SOLE_INVOICE_PUBLISHED"] = 49] = "SOLE_INVOICE_PUBLISHED";
53
- AppEventTypeEnum[AppEventTypeEnum["TAX_REVIEW_UPDATED"] = 50] = "TAX_REVIEW_UPDATED";
54
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_CREATED"] = 51] = "TRANSACTION_CREATED";
55
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_DELETED"] = 52] = "TRANSACTION_DELETED";
56
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED"] = 53] = "TRANSACTION_UPDATED";
57
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED_WITH_RECEIPT"] = 54] = "TRANSACTION_UPDATED_WITH_RECEIPT";
58
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED_WITH_DELETED_RECEIPT"] = 55] = "TRANSACTION_UPDATED_WITH_DELETED_RECEIPT";
59
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_RECEIPT_CREATED"] = 56] = "TRANSACTION_RECEIPT_CREATED";
60
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_RECEIPT_DELETED"] = 57] = "TRANSACTION_RECEIPT_DELETED";
61
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTIONS_CREATED"] = 58] = "TRANSACTIONS_CREATED";
62
- AppEventTypeEnum[AppEventTypeEnum["USER_UPDATED"] = 59] = "USER_UPDATED";
63
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_UPDATED"] = 60] = "VEHICLE_CLAIM_UPDATED";
64
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_CREATED"] = 61] = "VEHICLE_CLAIM_CREATED";
65
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_UPDATED"] = 62] = "VEHICLE_CLAIM_DETAILS_UPDATED";
66
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_CREATED"] = 63] = "VEHICLE_CLAIM_DETAILS_CREATED";
67
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_CREATED"] = 64] = "VEHICLE_LOGBOOK_CREATED";
68
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_UPDATED"] = 65] = "VEHICLE_LOGBOOK_UPDATED";
69
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_DELETED"] = 66] = "VEHICLE_LOGBOOK_DELETED";
70
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED"] = 67] = "VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED";
13
+ AppEventTypeEnum[AppEventTypeEnum["BASIQ_LOGIN_SUCCESS"] = 10] = "BASIQ_LOGIN_SUCCESS";
14
+ AppEventTypeEnum[AppEventTypeEnum["BASIQ_LOGIN_FAILED"] = 11] = "BASIQ_LOGIN_FAILED";
15
+ AppEventTypeEnum[AppEventTypeEnum["CLIENT_INVITE_ACCEPTED"] = 12] = "CLIENT_INVITE_ACCEPTED";
16
+ AppEventTypeEnum[AppEventTypeEnum["CLIENT_OPEN_CHAT"] = 13] = "CLIENT_OPEN_CHAT";
17
+ AppEventTypeEnum[AppEventTypeEnum["CLIENT_TRANSFER_TO_OTHER_EMPLOYEE"] = 14] = "CLIENT_TRANSFER_TO_OTHER_EMPLOYEE";
18
+ AppEventTypeEnum[AppEventTypeEnum["CURRENT_USER_GET_FAILED"] = 15] = "CURRENT_USER_GET_FAILED";
19
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_DELETED"] = 16] = "DEPRECIATION_DELETED";
20
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATIONS_CREATED"] = 17] = "DEPRECIATIONS_CREATED";
21
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_UPDATED_WITH_RECEIPT"] = 18] = "DEPRECIATION_UPDATED_WITH_RECEIPT";
22
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_UPDATED_WITH_DELETED_RECEIPT"] = 19] = "DEPRECIATION_UPDATED_WITH_DELETED_RECEIPT";
23
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_RECEIPT_CREATED"] = 20] = "DEPRECIATION_RECEIPT_CREATED";
24
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_RECEIPT_DELETED"] = 21] = "DEPRECIATION_RECEIPT_DELETED";
25
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_CREATED"] = 22] = "INCOME_SOURCES_CREATED";
26
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_UPDATED"] = 23] = "INCOME_SOURCES_UPDATED";
27
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_CREATED"] = 24] = "INCOME_SOURCES_FORECASTS_CREATED";
28
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_UPDATED"] = 25] = "INCOME_SOURCES_FORECASTS_UPDATED";
29
+ AppEventTypeEnum[AppEventTypeEnum["LOAN_UPDATED"] = 26] = "LOAN_UPDATED";
30
+ AppEventTypeEnum[AppEventTypeEnum["LOAN_PAYOUT_UPDATED"] = 27] = "LOAN_PAYOUT_UPDATED";
31
+ AppEventTypeEnum[AppEventTypeEnum["MESSAGE_CREATED"] = 28] = "MESSAGE_CREATED";
32
+ AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_CREATED"] = 29] = "MESSAGE_FILE_CREATED";
33
+ AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_DELETED"] = 30] = "MESSAGE_FILE_DELETED";
34
+ AppEventTypeEnum[AppEventTypeEnum["NOTIFICATION_ADDED"] = 31] = "NOTIFICATION_ADDED";
35
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_DEPRECIATION_CALCULATION_UPDATED"] = 32] = "PROPERTY_DEPRECIATION_CALCULATION_UPDATED";
36
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_UPDATED"] = 33] = "PROPERTY_UPDATED";
37
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_UPDATED_WITH_DOCUMENT"] = 34] = "PROPERTY_UPDATED_WITH_DOCUMENT";
38
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_DOCUMENT_ADDED"] = 35] = "PROPERTY_DOCUMENT_ADDED";
39
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_CREATED"] = 36] = "PROPERTY_MOVEMENT_CREATED";
40
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_UPDATED"] = 37] = "PROPERTY_MOVEMENT_UPDATED";
41
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_DELETED"] = 38] = "PROPERTY_MOVEMENT_DELETED";
42
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SHARE_UPDATED"] = 39] = "PROPERTY_SHARE_UPDATED";
43
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SALE_ADDED"] = 40] = "PROPERTY_SALE_ADDED";
44
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SALE_DELETED"] = 41] = "PROPERTY_SALE_DELETED";
45
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_ADDED"] = 42] = "PROPERTY_SUBSCRIPTION_ADDED";
46
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_DELETED"] = 43] = "PROPERTY_SUBSCRIPTION_DELETED";
47
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_VALUATION_DOCUMENT_CREATED"] = 44] = "PROPERTY_VALUATION_DOCUMENT_CREATED";
48
+ AppEventTypeEnum[AppEventTypeEnum["SERVICE_SUBSCRIPTION_UPDATED"] = 45] = "SERVICE_SUBSCRIPTION_UPDATED";
49
+ AppEventTypeEnum[AppEventTypeEnum["SOLE_BUSINESS_CREATED"] = 46] = "SOLE_BUSINESS_CREATED";
50
+ AppEventTypeEnum[AppEventTypeEnum["SOLE_DEPRECIATION_METHOD_UPDATED"] = 47] = "SOLE_DEPRECIATION_METHOD_UPDATED";
51
+ AppEventTypeEnum[AppEventTypeEnum["SOLE_DETAILS_CREATED"] = 48] = "SOLE_DETAILS_CREATED";
52
+ AppEventTypeEnum[AppEventTypeEnum["SOLE_DETAILS_UPDATED"] = 49] = "SOLE_DETAILS_UPDATED";
53
+ AppEventTypeEnum[AppEventTypeEnum["SOLE_INVOICE_PUBLISHED"] = 50] = "SOLE_INVOICE_PUBLISHED";
54
+ AppEventTypeEnum[AppEventTypeEnum["TAX_REVIEW_UPDATED"] = 51] = "TAX_REVIEW_UPDATED";
55
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_CREATED"] = 52] = "TRANSACTION_CREATED";
56
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_DELETED"] = 53] = "TRANSACTION_DELETED";
57
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED"] = 54] = "TRANSACTION_UPDATED";
58
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED_WITH_RECEIPT"] = 55] = "TRANSACTION_UPDATED_WITH_RECEIPT";
59
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED_WITH_DELETED_RECEIPT"] = 56] = "TRANSACTION_UPDATED_WITH_DELETED_RECEIPT";
60
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_RECEIPT_CREATED"] = 57] = "TRANSACTION_RECEIPT_CREATED";
61
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_RECEIPT_DELETED"] = 58] = "TRANSACTION_RECEIPT_DELETED";
62
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTIONS_CREATED"] = 59] = "TRANSACTIONS_CREATED";
63
+ AppEventTypeEnum[AppEventTypeEnum["USER_UPDATED"] = 60] = "USER_UPDATED";
64
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_UPDATED"] = 61] = "VEHICLE_CLAIM_UPDATED";
65
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_CREATED"] = 62] = "VEHICLE_CLAIM_CREATED";
66
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_UPDATED"] = 63] = "VEHICLE_CLAIM_DETAILS_UPDATED";
67
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_CREATED"] = 64] = "VEHICLE_CLAIM_DETAILS_CREATED";
68
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_CREATED"] = 65] = "VEHICLE_LOGBOOK_CREATED";
69
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_UPDATED"] = 66] = "VEHICLE_LOGBOOK_UPDATED";
70
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_DELETED"] = 67] = "VEHICLE_LOGBOOK_DELETED";
71
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED"] = 68] = "VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED";
71
72
  })(AppEventTypeEnum || (AppEventTypeEnum = {}));
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV2ZW50LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFxRVg7QUFyRUQsV0FBWSxnQkFBZ0I7SUFDMUIsMkZBQXNCLENBQUE7SUFDdEIseUZBQXFCLENBQUE7SUFDckIsdUZBQW9CLENBQUE7SUFDcEIsdUZBQW9CLENBQUE7SUFDcEIsbUdBQTBCLENBQUE7SUFDMUIsNkZBQXVCLENBQUE7SUFDdkIsaUdBQXlCLENBQUE7SUFDekIseUZBQXFCLENBQUE7SUFDckIsK0ZBQXdCLENBQUE7SUFDeEIsaUZBQWlCLENBQUE7SUFDakIsd0ZBQW9CLENBQUE7SUFDcEIsNEZBQXNCLENBQUE7SUFDdEIsZ0ZBQWdCLENBQUE7SUFDaEIsa0hBQWlDLENBQUE7SUFDakMsOEZBQXVCLENBQUE7SUFDdkIsd0ZBQW9CLENBQUE7SUFDcEIsMEZBQXFCLENBQUE7SUFDckIsa0hBQWlDLENBQUE7SUFDakMsa0lBQXlDLENBQUE7SUFDekMsd0dBQTRCLENBQUE7SUFDNUIsd0dBQTRCLENBQUE7SUFDNUIsNEZBQXNCLENBQUE7SUFDdEIsNEZBQXNCLENBQUE7SUFDdEIsZ0hBQWdDLENBQUE7SUFDaEMsZ0hBQWdDLENBQUE7SUFDaEMsd0VBQVksQ0FBQTtJQUNaLHNGQUFtQixDQUFBO0lBQ25CLDhFQUFlLENBQUE7SUFDZix3RkFBb0IsQ0FBQTtJQUNwQix3RkFBb0IsQ0FBQTtJQUNwQixvRkFBa0IsQ0FBQTtJQUNsQixrSUFBeUMsQ0FBQTtJQUN6QyxnRkFBZ0IsQ0FBQTtJQUNoQiw0R0FBOEIsQ0FBQTtJQUM5Qiw4RkFBdUIsQ0FBQTtJQUN2QixrR0FBeUIsQ0FBQTtJQUN6QixrR0FBeUIsQ0FBQTtJQUN6QixrR0FBeUIsQ0FBQTtJQUN6Qiw0RkFBc0IsQ0FBQTtJQUN0QixzRkFBbUIsQ0FBQTtJQUNuQiwwRkFBcUIsQ0FBQTtJQUNyQixzR0FBMkIsQ0FBQTtJQUMzQiwwR0FBNkIsQ0FBQTtJQUM3QixzSEFBbUMsQ0FBQTtJQUNuQyx3R0FBNEIsQ0FBQTtJQUM1QiwwRkFBcUIsQ0FBQTtJQUNyQixnSEFBZ0MsQ0FBQTtJQUNoQyx3RkFBb0IsQ0FBQTtJQUNwQix3RkFBb0IsQ0FBQTtJQUNwQiw0RkFBc0IsQ0FBQTtJQUN0QixvRkFBa0IsQ0FBQTtJQUNsQixzRkFBbUIsQ0FBQTtJQUNuQixzRkFBbUIsQ0FBQTtJQUNuQixzRkFBbUIsQ0FBQTtJQUNuQixnSEFBZ0MsQ0FBQTtJQUNoQyxnSUFBd0MsQ0FBQTtJQUN4QyxzR0FBMkIsQ0FBQTtJQUMzQixzR0FBMkIsQ0FBQTtJQUMzQix3RkFBb0IsQ0FBQTtJQUNwQix3RUFBWSxDQUFBO0lBQ1osMEZBQXFCLENBQUE7SUFDckIsMEZBQXFCLENBQUE7SUFDckIsMEdBQTZCLENBQUE7SUFDN0IsMEdBQTZCLENBQUE7SUFDN0IsOEZBQXVCLENBQUE7SUFDdkIsOEZBQXVCLENBQUE7SUFDdkIsOEZBQXVCLENBQUE7SUFDdkIsc0hBQW1DLENBQUE7QUFDckMsQ0FBQyxFQXJFVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBcUUzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFwcEV2ZW50VHlwZUVudW0ge1xuICBDTElFTlRfTU9WRU1FTlRfQ0xPU0VELFxuICBCQU5LX0NPTk5FQ1RJT05fQURERUQsXG4gIEJBTktfQUNDT1VOVF9DUkVBVEVELFxuICBCQU5LX0FDQ09VTlRfVVBEQVRFRCxcbiAgQkFOS19UUkFOU0FDVElPTl9BTExPQ0FURUQsXG4gIEJBTktfVFJBTlNBQ1RJT05TX0FEREVELFxuICBCQU5LX1RSQU5TQUNUSU9OU19ERUxFVEVELFxuICBCQVNJUV9DT05TRU5UX1VQREFURUQsXG4gIEJBU0lRX0NPTk5FQ1RJT05fVVBEQVRFRCxcbiAgQkFTSVFfSk9CX0NSRUFURUQsXG4gIEJBU0lRX0xPR0lOX0ZJTklTSEVELFxuICBDTElFTlRfSU5WSVRFX0FDQ0VQVEVELFxuICBDTElFTlRfT1BFTl9DSEFULFxuICBDTElFTlRfVFJBTlNGRVJfVE9fT1RIRVJfRU1QTE9ZRUUsXG4gIENVUlJFTlRfVVNFUl9HRVRfRkFJTEVELFxuICBERVBSRUNJQVRJT05fREVMRVRFRCxcbiAgREVQUkVDSUFUSU9OU19DUkVBVEVELFxuICBERVBSRUNJQVRJT05fVVBEQVRFRF9XSVRIX1JFQ0VJUFQsXG4gIERFUFJFQ0lBVElPTl9VUERBVEVEX1dJVEhfREVMRVRFRF9SRUNFSVBULFxuICBERVBSRUNJQVRJT05fUkVDRUlQVF9DUkVBVEVELFxuICBERVBSRUNJQVRJT05fUkVDRUlQVF9ERUxFVEVELFxuICBJTkNPTUVfU09VUkNFU19DUkVBVEVELFxuICBJTkNPTUVfU09VUkNFU19VUERBVEVELFxuICBJTkNPTUVfU09VUkNFU19GT1JFQ0FTVFNfQ1JFQVRFRCxcbiAgSU5DT01FX1NPVVJDRVNfRk9SRUNBU1RTX1VQREFURUQsXG4gIExPQU5fVVBEQVRFRCxcbiAgTE9BTl9QQVlPVVRfVVBEQVRFRCxcbiAgTUVTU0FHRV9DUkVBVEVELFxuICBNRVNTQUdFX0ZJTEVfQ1JFQVRFRCxcbiAgTUVTU0FHRV9GSUxFX0RFTEVURUQsXG4gIE5PVElGSUNBVElPTl9BRERFRCxcbiAgUFJPUEVSVFlfREVQUkVDSUFUSU9OX0NBTENVTEFUSU9OX1VQREFURUQsXG4gIFBST1BFUlRZX1VQREFURUQsXG4gIFBST1BFUlRZX1VQREFURURfV0lUSF9ET0NVTUVOVCxcbiAgUFJPUEVSVFlfRE9DVU1FTlRfQURERUQsXG4gIFBST1BFUlRZX01PVkVNRU5UX0NSRUFURUQsXG4gIFBST1BFUlRZX01PVkVNRU5UX1VQREFURUQsXG4gIFBST1BFUlRZX01PVkVNRU5UX0RFTEVURUQsXG4gIFBST1BFUlRZX1NIQVJFX1VQREFURUQsXG4gIFBST1BFUlRZX1NBTEVfQURERUQsXG4gIFBST1BFUlRZX1NBTEVfREVMRVRFRCxcbiAgUFJPUEVSVFlfU1VCU0NSSVBUSU9OX0FEREVELFxuICBQUk9QRVJUWV9TVUJTQ1JJUFRJT05fREVMRVRFRCxcbiAgUFJPUEVSVFlfVkFMVUFUSU9OX0RPQ1VNRU5UX0NSRUFURUQsXG4gIFNFUlZJQ0VfU1VCU0NSSVBUSU9OX1VQREFURUQsXG4gIFNPTEVfQlVTSU5FU1NfQ1JFQVRFRCxcbiAgU09MRV9ERVBSRUNJQVRJT05fTUVUSE9EX1VQREFURUQsXG4gIFNPTEVfREVUQUlMU19DUkVBVEVELFxuICBTT0xFX0RFVEFJTFNfVVBEQVRFRCxcbiAgU09MRV9JTlZPSUNFX1BVQkxJU0hFRCxcbiAgVEFYX1JFVklFV19VUERBVEVELFxuICBUUkFOU0FDVElPTl9DUkVBVEVELFxuICBUUkFOU0FDVElPTl9ERUxFVEVELFxuICBUUkFOU0FDVElPTl9VUERBVEVELFxuICBUUkFOU0FDVElPTl9VUERBVEVEX1dJVEhfUkVDRUlQVCxcbiAgVFJBTlNBQ1RJT05fVVBEQVRFRF9XSVRIX0RFTEVURURfUkVDRUlQVCxcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVF9DUkVBVEVELFxuICBUUkFOU0FDVElPTl9SRUNFSVBUX0RFTEVURUQsXG4gIFRSQU5TQUNUSU9OU19DUkVBVEVELFxuICBVU0VSX1VQREFURUQsXG4gIFZFSElDTEVfQ0xBSU1fVVBEQVRFRCxcbiAgVkVISUNMRV9DTEFJTV9DUkVBVEVELFxuICBWRUhJQ0xFX0NMQUlNX0RFVEFJTFNfVVBEQVRFRCxcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX0NSRUFURUQsXG4gIFZFSElDTEVfTE9HQk9PS19DUkVBVEVELFxuICBWRUhJQ0xFX0xPR0JPT0tfVVBEQVRFRCxcbiAgVkVISUNMRV9MT0dCT09LX0RFTEVURUQsXG4gIFZFSElDTEVfTE9HQk9PS19CRVNUX1BFUklPRF9VUERBVEVEXG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV2ZW50LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFzRVg7QUF0RUQsV0FBWSxnQkFBZ0I7SUFDMUIsMkZBQXNCLENBQUE7SUFDdEIseUZBQXFCLENBQUE7SUFDckIsdUZBQW9CLENBQUE7SUFDcEIsdUZBQW9CLENBQUE7SUFDcEIsbUdBQTBCLENBQUE7SUFDMUIsNkZBQXVCLENBQUE7SUFDdkIsaUdBQXlCLENBQUE7SUFDekIseUZBQXFCLENBQUE7SUFDckIsK0ZBQXdCLENBQUE7SUFDeEIsaUZBQWlCLENBQUE7SUFDakIsc0ZBQW1CLENBQUE7SUFDbkIsb0ZBQWtCLENBQUE7SUFDbEIsNEZBQXNCLENBQUE7SUFDdEIsZ0ZBQWdCLENBQUE7SUFDaEIsa0hBQWlDLENBQUE7SUFDakMsOEZBQXVCLENBQUE7SUFDdkIsd0ZBQW9CLENBQUE7SUFDcEIsMEZBQXFCLENBQUE7SUFDckIsa0hBQWlDLENBQUE7SUFDakMsa0lBQXlDLENBQUE7SUFDekMsd0dBQTRCLENBQUE7SUFDNUIsd0dBQTRCLENBQUE7SUFDNUIsNEZBQXNCLENBQUE7SUFDdEIsNEZBQXNCLENBQUE7SUFDdEIsZ0hBQWdDLENBQUE7SUFDaEMsZ0hBQWdDLENBQUE7SUFDaEMsd0VBQVksQ0FBQTtJQUNaLHNGQUFtQixDQUFBO0lBQ25CLDhFQUFlLENBQUE7SUFDZix3RkFBb0IsQ0FBQTtJQUNwQix3RkFBb0IsQ0FBQTtJQUNwQixvRkFBa0IsQ0FBQTtJQUNsQixrSUFBeUMsQ0FBQTtJQUN6QyxnRkFBZ0IsQ0FBQTtJQUNoQiw0R0FBOEIsQ0FBQTtJQUM5Qiw4RkFBdUIsQ0FBQTtJQUN2QixrR0FBeUIsQ0FBQTtJQUN6QixrR0FBeUIsQ0FBQTtJQUN6QixrR0FBeUIsQ0FBQTtJQUN6Qiw0RkFBc0IsQ0FBQTtJQUN0QixzRkFBbUIsQ0FBQTtJQUNuQiwwRkFBcUIsQ0FBQTtJQUNyQixzR0FBMkIsQ0FBQTtJQUMzQiwwR0FBNkIsQ0FBQTtJQUM3QixzSEFBbUMsQ0FBQTtJQUNuQyx3R0FBNEIsQ0FBQTtJQUM1QiwwRkFBcUIsQ0FBQTtJQUNyQixnSEFBZ0MsQ0FBQTtJQUNoQyx3RkFBb0IsQ0FBQTtJQUNwQix3RkFBb0IsQ0FBQTtJQUNwQiw0RkFBc0IsQ0FBQTtJQUN0QixvRkFBa0IsQ0FBQTtJQUNsQixzRkFBbUIsQ0FBQTtJQUNuQixzRkFBbUIsQ0FBQTtJQUNuQixzRkFBbUIsQ0FBQTtJQUNuQixnSEFBZ0MsQ0FBQTtJQUNoQyxnSUFBd0MsQ0FBQTtJQUN4QyxzR0FBMkIsQ0FBQTtJQUMzQixzR0FBMkIsQ0FBQTtJQUMzQix3RkFBb0IsQ0FBQTtJQUNwQix3RUFBWSxDQUFBO0lBQ1osMEZBQXFCLENBQUE7SUFDckIsMEZBQXFCLENBQUE7SUFDckIsMEdBQTZCLENBQUE7SUFDN0IsMEdBQTZCLENBQUE7SUFDN0IsOEZBQXVCLENBQUE7SUFDdkIsOEZBQXVCLENBQUE7SUFDdkIsOEZBQXVCLENBQUE7SUFDdkIsc0hBQW1DLENBQUE7QUFDckMsQ0FBQyxFQXRFVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBc0UzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFwcEV2ZW50VHlwZUVudW0ge1xuICBDTElFTlRfTU9WRU1FTlRfQ0xPU0VELFxuICBCQU5LX0NPTk5FQ1RJT05fQURERUQsXG4gIEJBTktfQUNDT1VOVF9DUkVBVEVELFxuICBCQU5LX0FDQ09VTlRfVVBEQVRFRCxcbiAgQkFOS19UUkFOU0FDVElPTl9BTExPQ0FURUQsXG4gIEJBTktfVFJBTlNBQ1RJT05TX0FEREVELFxuICBCQU5LX1RSQU5TQUNUSU9OU19ERUxFVEVELFxuICBCQVNJUV9DT05TRU5UX1VQREFURUQsXG4gIEJBU0lRX0NPTk5FQ1RJT05fVVBEQVRFRCxcbiAgQkFTSVFfSk9CX0NSRUFURUQsXG4gIEJBU0lRX0xPR0lOX1NVQ0NFU1MsXG4gIEJBU0lRX0xPR0lOX0ZBSUxFRCxcbiAgQ0xJRU5UX0lOVklURV9BQ0NFUFRFRCxcbiAgQ0xJRU5UX09QRU5fQ0hBVCxcbiAgQ0xJRU5UX1RSQU5TRkVSX1RPX09USEVSX0VNUExPWUVFLFxuICBDVVJSRU5UX1VTRVJfR0VUX0ZBSUxFRCxcbiAgREVQUkVDSUFUSU9OX0RFTEVURUQsXG4gIERFUFJFQ0lBVElPTlNfQ1JFQVRFRCxcbiAgREVQUkVDSUFUSU9OX1VQREFURURfV0lUSF9SRUNFSVBULFxuICBERVBSRUNJQVRJT05fVVBEQVRFRF9XSVRIX0RFTEVURURfUkVDRUlQVCxcbiAgREVQUkVDSUFUSU9OX1JFQ0VJUFRfQ1JFQVRFRCxcbiAgREVQUkVDSUFUSU9OX1JFQ0VJUFRfREVMRVRFRCxcbiAgSU5DT01FX1NPVVJDRVNfQ1JFQVRFRCxcbiAgSU5DT01FX1NPVVJDRVNfVVBEQVRFRCxcbiAgSU5DT01FX1NPVVJDRVNfRk9SRUNBU1RTX0NSRUFURUQsXG4gIElOQ09NRV9TT1VSQ0VTX0ZPUkVDQVNUU19VUERBVEVELFxuICBMT0FOX1VQREFURUQsXG4gIExPQU5fUEFZT1VUX1VQREFURUQsXG4gIE1FU1NBR0VfQ1JFQVRFRCxcbiAgTUVTU0FHRV9GSUxFX0NSRUFURUQsXG4gIE1FU1NBR0VfRklMRV9ERUxFVEVELFxuICBOT1RJRklDQVRJT05fQURERUQsXG4gIFBST1BFUlRZX0RFUFJFQ0lBVElPTl9DQUxDVUxBVElPTl9VUERBVEVELFxuICBQUk9QRVJUWV9VUERBVEVELFxuICBQUk9QRVJUWV9VUERBVEVEX1dJVEhfRE9DVU1FTlQsXG4gIFBST1BFUlRZX0RPQ1VNRU5UX0FEREVELFxuICBQUk9QRVJUWV9NT1ZFTUVOVF9DUkVBVEVELFxuICBQUk9QRVJUWV9NT1ZFTUVOVF9VUERBVEVELFxuICBQUk9QRVJUWV9NT1ZFTUVOVF9ERUxFVEVELFxuICBQUk9QRVJUWV9TSEFSRV9VUERBVEVELFxuICBQUk9QRVJUWV9TQUxFX0FEREVELFxuICBQUk9QRVJUWV9TQUxFX0RFTEVURUQsXG4gIFBST1BFUlRZX1NVQlNDUklQVElPTl9BRERFRCxcbiAgUFJPUEVSVFlfU1VCU0NSSVBUSU9OX0RFTEVURUQsXG4gIFBST1BFUlRZX1ZBTFVBVElPTl9ET0NVTUVOVF9DUkVBVEVELFxuICBTRVJWSUNFX1NVQlNDUklQVElPTl9VUERBVEVELFxuICBTT0xFX0JVU0lORVNTX0NSRUFURUQsXG4gIFNPTEVfREVQUkVDSUFUSU9OX01FVEhPRF9VUERBVEVELFxuICBTT0xFX0RFVEFJTFNfQ1JFQVRFRCxcbiAgU09MRV9ERVRBSUxTX1VQREFURUQsXG4gIFNPTEVfSU5WT0lDRV9QVUJMSVNIRUQsXG4gIFRBWF9SRVZJRVdfVVBEQVRFRCxcbiAgVFJBTlNBQ1RJT05fQ1JFQVRFRCxcbiAgVFJBTlNBQ1RJT05fREVMRVRFRCxcbiAgVFJBTlNBQ1RJT05fVVBEQVRFRCxcbiAgVFJBTlNBQ1RJT05fVVBEQVRFRF9XSVRIX1JFQ0VJUFQsXG4gIFRSQU5TQUNUSU9OX1VQREFURURfV0lUSF9ERUxFVEVEX1JFQ0VJUFQsXG4gIFRSQU5TQUNUSU9OX1JFQ0VJUFRfQ1JFQVRFRCxcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVF9ERUxFVEVELFxuICBUUkFOU0FDVElPTlNfQ1JFQVRFRCxcbiAgVVNFUl9VUERBVEVELFxuICBWRUhJQ0xFX0NMQUlNX1VQREFURUQsXG4gIFZFSElDTEVfQ0xBSU1fQ1JFQVRFRCxcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX1VQREFURUQsXG4gIFZFSElDTEVfQ0xBSU1fREVUQUlMU19DUkVBVEVELFxuICBWRUhJQ0xFX0xPR0JPT0tfQ1JFQVRFRCxcbiAgVkVISUNMRV9MT0dCT09LX1VQREFURUQsXG4gIFZFSElDTEVfTE9HQk9PS19ERUxFVEVELFxuICBWRUhJQ0xFX0xPR0JPT0tfQkVTVF9QRVJJT0RfVVBEQVRFRFxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
2
+ import { catchError, map } from 'rxjs/operators';
3
3
  import { plainToClass } from 'class-transformer';
4
4
  import { BankConnection } from '../../../../models/bank/bank-connection';
5
5
  import { RestService } from '../../rest/rest.service';
@@ -8,6 +8,7 @@ import cloneDeep from 'lodash/cloneDeep';
8
8
  import { replace } from '../../../../functions/array';
9
9
  import { AppEvent } from '../../../../models/event/app-event';
10
10
  import { UserEventTypeTypeEnum } from '../../../../db/Enums/user-event-type-type.enum';
11
+ import { throwError as observableThrowError } from 'rxjs/internal/observable/throwError';
11
12
  import * as i0 from "@angular/core";
12
13
  /**
13
14
  * BankConnection means user account at specific bank (usually each user has only one at the same bank)
@@ -42,8 +43,18 @@ export class BankConnectionService extends RestService {
42
43
  this.cacheSubject.next(cloneDeep(this.cache));
43
44
  }
44
45
  }
45
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_CONNECTION_ADDED, null));
46
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_CONNECTION_ADDED, connection));
46
47
  return plainToClass(BankConnection, connection);
48
+ }), catchError((error) => {
49
+ // Show error when user provided wrong login data
50
+ if (error.status === 401) {
51
+ this.toastService.error('Invalid credentials');
52
+ }
53
+ // Show error when user provided another login (not login he used before)
54
+ if (error.status === 400) {
55
+ this.toastService.error('Please enter the login you used before');
56
+ }
57
+ return observableThrowError(error);
47
58
  }));
48
59
  }
49
60
  listenToAddedBankAccounts() {
@@ -66,9 +77,18 @@ export class BankConnectionService extends RestService {
66
77
  }
67
78
  });
68
79
  }
80
+ /**
81
+ * Create/reconnect bank connection when user successfully logged in to basiq
82
+ */
69
83
  listenBasiqLogin() {
70
- this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_LOGIN_FINISHED).subscribe(() => {
71
- this.resetCache();
84
+ this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_LOGIN_SUCCESS).subscribe((data) => {
85
+ this.add(plainToClass(BankConnection, { id: data.connectionId, basiqJob: { externalId: data.jobId } }))
86
+ .subscribe(() => { },
87
+ // When user already has some bank accounts in handling connection and trying to login with different credentials, backend can not save this connection.
88
+ // So we should handle this case as failed login
89
+ () => {
90
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_LOGIN_FAILED, null));
91
+ });
72
92
  });
73
93
  }
74
94
  }
@@ -84,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
84
104
  providedIn: 'root'
85
105
  }]
86
106
  }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOztBQUV2Rjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBK0M7SUFIMUY7O1FBU0UsZUFBVSxHQUFHLGNBQWMsQ0FBQztRQUM1QixRQUFHLEdBQVcsa0JBQWtCLENBQUM7S0FnRWxDO0lBOURDLFlBQVk7UUFDVixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsR0FBRyxDQUFDLGNBQThCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxDQUFDO2FBQzNFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFO1lBQzdDLE1BQU0sVUFBVSxHQUFtQixZQUFZLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFFcEYseUZBQXlGO1lBQ3pGLHVFQUF1RTtZQUN2RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFO29CQUNyQixNQUFNLFNBQVMsR0FBcUIsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDMUQsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDcEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7b0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDL0M7YUFDRjtZQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVqRyxPQUFPLFlBQVksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQzNHLGdJQUFnSTtZQUNoSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsT0FBTzthQUNSO1lBRUQsSUFBSSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDekUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7QUFyRU0sb0NBQWMsR0FBNEI7SUFDL0MscUJBQXFCLENBQUMsa0JBQWtCO0lBQ3hDLHFCQUFxQixDQUFDLHdCQUF3QjtDQUMvQyxDQUFDO21IQUpTLHFCQUFxQjt1SEFBckIscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCYW5rQ29ubmVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcblxuLyoqXG4gKiBCYW5rQ29ubmVjdGlvbiBtZWFucyB1c2VyIGFjY291bnQgYXQgc3BlY2lmaWMgYmFuayAodXN1YWxseSBlYWNoIHVzZXIgaGFzIG9ubHkgb25lIGF0IHRoZSBzYW1lIGJhbmspXG4gKiBzZXJ2aWNlIGhhbmRsZXMgQmFua0Nvbm5lY3Rpb24gbWFuYWdlbWVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYW5rQ29ubmVjdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxCYW5rQ29ubmVjdGlvbkJhc2UsIEJhbmtDb25uZWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgc3RhdGljIHVzZXJFdmVudFR5cGVzOiBVc2VyRXZlbnRUeXBlVHlwZUVudW1bXSA9IFtcbiAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uQkFTSVFfTkVXX0FDQ09VTlRTLFxuICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5CQVNJUV9BVVRIT1JJWkFUSU9OX0ZBSUxcbiAgXTtcblxuICBtb2RlbENsYXNzID0gQmFua0Nvbm5lY3Rpb247XG4gIHVybDogc3RyaW5nID0gJ2JhbmstY29ubmVjdGlvbnMnO1xuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQWRkZWRCYW5rQWNjb3VudHMoKTtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgICB0aGlzLmxpc3RlbkJhc2lxTG9naW4oKTtcbiAgfVxuXG4gIGFkZChiYW5rQ29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgYmFua0Nvbm5lY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChiYW5rQ29ubmVjdGlvbkJhc2U6IEJhbmtDb25uZWN0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uID0gcGxhaW5Ub0NsYXNzKEJhbmtDb25uZWN0aW9uLCBiYW5rQ29ubmVjdGlvbkJhc2UpO1xuXG4gICAgICAgICAgLy8gV2UgdXNlIHRoaXMgZW5kcG9pbnQgZm9yIGNyZWF0ZSBhbmQgcmVjb25uZWN0IGJhbmsgY29ubmVjdGlvbnMgYmVjYXVzZSBvZiBiYXNpcSBsb2dpYy5cbiAgICAgICAgICAvLyBTbyB3ZSB0cnkgdG8gcmVwbGFjZSBiYW5rIGNvbm5lY3Rpb24gaW4gY2FjaGUgZm9yIHJlY29ubmVjdGlvbiBjYXNlLlxuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICBpZiAoYmFua0Nvbm5lY3Rpb24uaWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBCYW5rQ29ubmVjdGlvbltdID0gY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgICAgICByZXBsYWNlKHRlbXBDYWNoZSwgY29ubmVjdGlvbik7XG5cbiAgICAgICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaChjb25uZWN0aW9uKVxuICAgICAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KGNsb25lRGVlcCh0aGlzLmNhY2hlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBTktfQ09OTkVDVElPTl9BRERFRCwgbnVsbCkpO1xuXG4gICAgICAgICAgcmV0dXJuIHBsYWluVG9DbGFzcyhCYW5rQ29ubmVjdGlvbiwgY29ubmVjdGlvbik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgbGlzdGVuVG9BZGRlZEJhbmtBY2NvdW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQU5LX0FDQ09VTlRfQ1JFQVRFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIGJhc2lxIGFjY291bnRzIHdlcmUgcmV0cmlldmVkIG9yIGxvZ2luIHRvIGJhc2ljIHdhcyBmYWlsZWQgdG8gZ2V0IGFjdHVhbCBjb25uZWN0aW9ucyBzdGF0dXNlc1xuICAgKi9cbiAgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICAvLyBAVE9ETyB2aWsgbGlzdGVuIHNzZSB3aGVuIGJhY2tlbmQgdXBkYXRlZFxuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgLy8gQFRvZG8gVFQtMjI4MCBBbGV4IHJlZmFjdG9yIFNlcnZpY2VOb3RpZmljYXRpb24gaXNSZWFkIGxvZ2ljLiBXZSBkb24ndCBuZWVkIHRvIGtub3cgaGVyZSB3aGV0aGVyIG5vdGlmaWNhdGlvbiB3YXMgcmVhZCBvciBub3RcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChCYW5rQ29ubmVjdGlvblNlcnZpY2UudXNlckV2ZW50VHlwZXMuaW5jbHVkZXMobm90aWZpY2F0aW9uLmV2ZW50VHlwZSkpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBsaXN0ZW5CYXNpcUxvZ2luKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0xPR0lOX0ZJTklTSEVEKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSlcbiAgfVxufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFaEYsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUd2RixPQUFPLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRXpGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUErQztJQUgxRjs7UUFTRSxlQUFVLEdBQUcsY0FBYyxDQUFDO1FBQzVCLFFBQUcsR0FBVyxrQkFBa0IsQ0FBQztLQXdGbEM7SUF0RkMsWUFBWTtRQUNWLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUks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LENBQUMsSUFBeUIsRUFBRSxFQUFFO1lBQzNHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUNwRyxTQUFTLENBQ1IsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUNULHdKQUF3SjtZQUN4SixnREFBZ0Q7WUFDaEQsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoRyxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7QUE3Rk0sb0NBQWMsR0FBNEI7SUFDL0MscUJBQXFCLENBQUMsa0JBQWtCO0lBQ3hDLHFCQUFxQixDQUFDLHdCQUF3QjtDQUMvQyxDQUFDO21IQUpTLHFCQUFxQjt1SEFBckIscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCYW5rQ29ubmVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IEJhc2lxQ29ubmVjdGlvbkRhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3InO1xuXG4vKipcbiAqIEJhbmtDb25uZWN0aW9uIG1lYW5zIHVzZXIgYWNjb3VudCBhdCBzcGVjaWZpYyBiYW5rICh1c3VhbGx5IGVhY2ggdXNlciBoYXMgb25seSBvbmUgYXQgdGhlIHNhbWUgYmFuaylcbiAqIHNlcnZpY2UgaGFuZGxlcyBCYW5rQ29ubmVjdGlvbiBtYW5hZ2VtZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhbmtDb25uZWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtDb25uZWN0aW9uQmFzZSwgQmFua0Nvbm5lY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBzdGF0aWMgdXNlckV2ZW50VHlwZXM6IFVzZXJFdmVudFR5cGVUeXBlRW51bVtdID0gW1xuICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMsXG4gICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkJBU0lRX0FVVEhPUklaQVRJT05fRkFJTFxuICBdO1xuXG4gIG1vZGVsQ2xhc3MgPSBCYW5rQ29ubmVjdGlvbjtcbiAgdXJsOiBzdHJpbmcgPSAnYmFuay1jb25uZWN0aW9ucyc7XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9BZGRlZEJhbmtBY2NvdW50cygpO1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICAgIHRoaXMubGlzdGVuQmFzaXFMb2dpbigpO1xuICB9XG5cbiAgYWRkKGJhbmtDb25uZWN0aW9uOiBCYW5rQ29ubmVjdGlvbik6IE9ic2VydmFibGU8QmFua0Nvbm5lY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBiYW5rQ29ubmVjdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGJhbmtDb25uZWN0aW9uQmFzZTogQmFua0Nvbm5lY3Rpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24gPSBwbGFpblRvQ2xhc3MoQmFua0Nvbm5lY3Rpb24sIGJhbmtDb25uZWN0aW9uQmFzZSk7XG5cbiAgICAgICAgICAvLyBXZSB1c2UgdGhpcyBlbmRwb2ludCBmb3IgY3JlYXRlIGFuZCByZWNvbm5lY3QgYmFuayBjb25uZWN0aW9ucyBiZWNhdXNlIG9mIGJhc2lxIGxvZ2ljLlxuICAgICAgICAgIC8vIFNvIHdlIHRyeSB0byByZXBsYWNlIGJhbmsgY29ubmVjdGlvbiBpbiBjYWNoZSBmb3IgcmVjb25uZWN0aW9uIGNhc2UuXG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIGlmIChiYW5rQ29ubmVjdGlvbi5pZCkge1xuICAgICAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IEJhbmtDb25uZWN0aW9uW10gPSBjbG9uZURlZXAodGhpcy5jYWNoZSk7XG4gICAgICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlLCBjb25uZWN0aW9uKTtcblxuICAgICAgICAgICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKGNvbm5lY3Rpb24pXG4gICAgICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQoY2xvbmVEZWVwKHRoaXMuY2FjaGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFOS19DT05ORUNUSU9OX0FEREVELCBjb25uZWN0aW9uKSk7XG5cbiAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKEJhbmtDb25uZWN0aW9uLCBjb25uZWN0aW9uKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIC8vIFNob3cgZXJyb3Igd2hlbiB1c2VyIHByb3ZpZGVkIHdyb25nIGxvZ2luIGRhdGFcbiAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKCdJbnZhbGlkIGNyZWRlbnRpYWxzJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2hvdyBlcnJvciB3aGVuIHVzZXIgcHJvdmlkZWQgYW5vdGhlciBsb2dpbiAobm90IGxvZ2luIGhlIHVzZWQgYmVmb3JlKVxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoJ1BsZWFzZSBlbnRlciB0aGUgbG9naW4geW91IHVzZWQgYmVmb3JlJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBsaXN0ZW5Ub0FkZGVkQmFua0FjY291bnRzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBTktfQUNDT1VOVF9DUkVBVEVEKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHdoZW4gYmFzaXEgYWNjb3VudHMgd2VyZSByZXRyaWV2ZWQgb3IgbG9naW4gdG8gYmFzaWMgd2FzIGZhaWxlZCB0byBnZXQgYWN0dWFsIGNvbm5lY3Rpb25zIHN0YXR1c2VzXG4gICAqL1xuICBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIC8vIEBUT0RPIHZpayBsaXN0ZW4gc3NlIHdoZW4gYmFja2VuZCB1cGRhdGVkXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICAvLyBAVG9kbyBUVC0yMjgwIEFsZXggcmVmYWN0b3IgU2VydmljZU5vdGlmaWNhdGlvbiBpc1JlYWQgbG9naWMuIFdlIGRvbid0IG5lZWQgdG8ga25vdyBoZXJlIHdoZXRoZXIgbm90aWZpY2F0aW9uIHdhcyByZWFkIG9yIG5vdFxuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKEJhbmtDb25uZWN0aW9uU2VydmljZS51c2VyRXZlbnRUeXBlcy5pbmNsdWRlcyhub3RpZmljYXRpb24uZXZlbnRUeXBlKSkge1xuICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUvcmVjb25uZWN0IGJhbmsgY29ubmVjdGlvbiB3aGVuIHVzZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiB0byBiYXNpcVxuICAgKi9cbiAgbGlzdGVuQmFzaXFMb2dpbigpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9MT0dJTl9TVUNDRVNTKS5zdWJzY3JpYmUoKGRhdGE6IEJhc2lxQ29ubmVjdGlvbkRhdGEpID0+IHtcbiAgICAgIHRoaXMuYWRkKHBsYWluVG9DbGFzcyhCYW5rQ29ubmVjdGlvbiwgeyBpZDogZGF0YS5jb25uZWN0aW9uSWQsIGJhc2lxSm9iOiB7IGV4dGVybmFsSWQ6IGRhdGEuam9iSWQgfSB9KSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoKSA9PiB7IH0sXG4gICAgICAgICAgLy8gV2hlbiB1c2VyIGFscmVhZHkgaGFzIHNvbWUgYmFuayBhY2NvdW50cyBpbiBoYW5kbGluZyBjb25uZWN0aW9uIGFuZCB0cnlpbmcgdG8gbG9naW4gd2l0aCBkaWZmZXJlbnQgY3JlZGVudGlhbHMsIGJhY2tlbmQgY2FuIG5vdCBzYXZlIHRoaXMgY29ubmVjdGlvbi5cbiAgICAgICAgICAvLyBTbyB3ZSBzaG91bGQgaGFuZGxlIHRoaXMgY2FzZSBhcyBmYWlsZWQgbG9naW5cbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfTE9HSU5fRkFJTEVELCBudWxsKSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -1,13 +1,12 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { catchError, filter, map, mergeMap, take } from 'rxjs/operators';
2
+ import { filter, map } from 'rxjs/operators';
3
3
  import { RestService } from '../../rest/rest.service';
4
4
  import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
5
5
  import { BankAccountCollection } from '../../../../collections/bank-account.collection';
6
6
  import { plainToClass } from 'class-transformer';
7
- import { throwError as observableThrowError } from 'rxjs/internal/observable/throwError';
8
7
  import { UserEventTypeTypeEnum } from '../../../../db/Enums/user-event-type-type.enum';
9
8
  import { AppEvent } from '../../../../models/event/app-event';
10
- import { BankAccount, BankConnection, BasiqJobResponse } from '../../../../models';
9
+ import { BankAccount, BasiqJobResponse } from '../../../../models';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "@angular/common/http";
13
12
  import * as i2 from "../../../event/event-dispatcher.service";
@@ -18,7 +17,9 @@ import * as i4 from "../bank-connection/bank-connection.service";
18
17
  * service is responsible for fetching bank related information
19
18
  */
20
19
  export class BasiqService extends RestService {
21
- constructor(http, eventDispatcherService, environment, toastService, bankConnectionService) {
20
+ constructor(http, eventDispatcherService, environment, toastService,
21
+ // this inject required to init bank connection service and listen basiq login event
22
+ bankConnectionService) {
22
23
  super(http, eventDispatcherService, environment, toastService);
23
24
  this.http = http;
24
25
  this.eventDispatcherService = eventDispatcherService;
@@ -33,56 +34,24 @@ export class BasiqService extends RestService {
33
34
  */
34
35
  listenEvents() {
35
36
  this.listenNotifications();
36
- this.listenJobs();
37
+ this.listenJobCreated();
37
38
  }
38
39
  /**
39
- * Create a new Bank connection based on Basiq job.
40
- * Here we have nested requests because we need to get a job id before we create a bank connection.
41
- * There is no way to use event dispatcher because we expect some errors from bank-connections API, but in components
42
- * we interact with basiq service.
40
+ * Start basiq login process.
41
+ * Create a basiq job, which contain credentials verifying status.
42
+ * We can not see login result immediately, because it may take some time (average 10-20 sec)
43
43
  */
44
- createConnection(loginData, userId) {
45
- // Send login data to basiq API to create a basiq job
46
- return this.http.post(`${BasiqService.basiqApiUrl}/users/${userId}/connections`, loginData)
47
- .pipe(mergeMap((response) => {
48
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_JOB_CREATED, response.id));
49
- // Create bank connection based on basiq job
50
- return this.bankConnectionService.add(plainToClass(BankConnection, { basiqJob: { externalId: response.id } }));
51
- }), catchError((error) => {
52
- // Show error when user provided wrong login data
53
- if (error.status === 401) {
54
- this.toastService.error('Invalid credentials');
55
- }
56
- return observableThrowError(error);
57
- }));
58
- }
59
- /**
60
- * Update disconnected bank connection
61
- * Here we have nested requests because we need to get a job id before we create a bank connection.
62
- * There is no way to use event dispatcher because we expect some errors from bank-connections API, but in components
63
- * we interact with basiq service.
64
- */
65
- updateConnection(data, userId, connection) {
66
- // Send login data and connection id to basiq API to create a basiq job
67
- return this.http.post(`${BasiqService.basiqApiUrl}/users/${userId}/connections`, Object.assign(data, { id: connection.externalId }))
68
- .pipe(mergeMap((response) => {
69
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_JOB_CREATED, response.id));
70
- // Create bank connection based on basiq job
71
- return this.bankConnectionService.add(plainToClass(BankConnection, {
72
- id: connection.id,
73
- basiqJob: { externalId: response.id }
74
- }));
75
- }), catchError((error) => {
76
- // Show error when user provided wrong login data
77
- if (error.status === 401) {
78
- this.toastService.error('Invalid credentials');
79
- }
80
- // Show error when user provided another login (not login he used before)
81
- if (error.status === 400) {
82
- this.toastService.error('Please enter the login you used before');
83
- }
84
- return observableThrowError(error);
85
- }));
44
+ login(loginData, userId) {
45
+ this.http.post(`${BasiqService.basiqApiUrl}/users/${userId}/connections`, loginData)
46
+ .subscribe((response) => {
47
+ // we need jobId to check credentials verifying statis from Basiq API
48
+ // we need connectionId to know if we are creating a new connection or reconnecting existing invalid connection
49
+ const data = {
50
+ jobId: response.id,
51
+ connectionId: loginData.id
52
+ };
53
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_JOB_CREATED, data));
54
+ });
86
55
  }
87
56
  getByConnection(connection) {
88
57
  return this.get().pipe(map((bankAccounts) => {
@@ -95,31 +64,37 @@ export class BasiqService extends RestService {
95
64
  }));
96
65
  }
97
66
  /**
98
- * Get status of credentials verifying. Expected statuses: 'in-progress', 'failed' or 'success'
99
- * We send this request by interval until basiq return success or failed
100
- * @TODO Alex (TT-2431): check logic and try to remove subscribe, use pipes instead
101
- * @TODO Alex (TT-2431): implement some limit and handle (message or something) if basiq stuck
102
- * @TODO Alex (TT-2431): check logic and handle case when user cancelled loading
103
- */
104
- checkBankCredentials(jobId) {
105
- this.http.get(`${BasiqService.basiqApiUrl}/jobs/${jobId}`)
67
+ * Get status of credentials verifying. Expected statuses: 'in-progress', 'failed' or 'success'
68
+ * We send this request by interval until basiq return success or failed.
69
+ *
70
+ * Because of Basiq login may take a long time (10-20sec) we have to check job status until it seccess or failed.
71
+ *
72
+ * @TODO Alex (TT-2431): check logic and try to remove subscribe, use pipes instead
73
+ * @TODO Alex (TT-2431): implement some limit and handle (message or something) if basiq stuck
74
+ * @TODO Alex (TT-2431): check logic and handle case when user cancelled loading
75
+ */
76
+ checkLoginStatus(data) {
77
+ this.http.get(`${BasiqService.basiqApiUrl}/jobs/${data.jobId}`)
106
78
  .pipe(
107
- // unsubscribe after each request to avoid wrong requests (example: user cancelled too long login and login to another bank, then we will send 2 different requests)
108
- take(1),
109
79
  // get verify-credentials step from basiq job
110
- map((response) => plainToClass(BasiqJobResponse, response).getVerifyCredentialsStep()),
80
+ map((response) => plainToClass(BasiqJobResponse, response)),
111
81
  // check credentials status again if not finished
112
- filter((step) => {
113
- if (!step.isInProgress()) {
82
+ filter((response) => {
83
+ if (!response.getVerifyCredentialsStep().isInProgress()) {
114
84
  return true;
115
85
  }
116
86
  setTimeout(() => {
117
- this.checkBankCredentials(jobId);
87
+ this.checkLoginStatus(data);
118
88
  }, BasiqService.bankCredintialsCheckInterval);
119
89
  return false;
120
90
  }))
121
- .subscribe((step) => {
122
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_LOGIN_FINISHED, step.isSuccess()));
91
+ .subscribe((response) => {
92
+ if (response.getVerifyCredentialsStep().isSuccess()) {
93
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_LOGIN_SUCCESS, data));
94
+ }
95
+ else {
96
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_LOGIN_FAILED, null));
97
+ }
123
98
  });
124
99
  }
125
100
  /**
@@ -133,11 +108,11 @@ export class BasiqService extends RestService {
133
108
  });
134
109
  }
135
110
  /**
136
- * Listen Basiq job created to check its verify credentials status
111
+ * Start check job credential status when it created
137
112
  */
138
- listenJobs() {
139
- this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_JOB_CREATED).subscribe((jobId) => {
140
- this.checkBankCredentials(jobId);
113
+ listenJobCreated() {
114
+ this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_JOB_CREATED).subscribe((data) => {
115
+ this.checkLoginStatus(data);
141
116
  });
142
117
  }
143
118
  }
@@ -157,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
157
132
  type: Inject,
158
133
  args: ['environment']
159
134
  }] }, { type: i3.ToastService }, { type: i4.BankConnectionService }]; } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9oRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsV0FBVyxFQUFFLGNBQWMsRUFDRCxnQkFBZ0IsRUFDM0MsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBRTVCOzs7R0FHRztBQUlILE1BQU0sT0FBTyxZQUFhLFNBQVEsV0FBeUM7SUFXekUsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0IsRUFDdkMsWUFBMEIsRUFDNUIscUJBQTRDO1FBRXBELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBTnJELFNBQUksR0FBSixJQUFJ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MEdBTnhDLFlBQVksa0ZBY2IsYUFBYTs4R0FkWixZQUFZLGNBRlgsTUFBTTs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBZUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCBhcyBCYW5rQWNjb3VudEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYmFuay1jb25uZWN0aW9uL2JhbmstY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFua0FjY291bnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMvYmFuay1hY2NvdW50LmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvciB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS90aHJvd0Vycm9yJztcbmltcG9ydCB7IFVzZXJFdmVudFR5cGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7XG4gIEJhbmtBY2NvdW50LCBCYW5rQ29ubmVjdGlvbiwgQmFua0xvZ2luRGF0YSxcbiAgQmFzaXFDb25uZWN0aW9uc1Jlc3BvbnNlLCBCYXNpcUpvYlJlc3BvbnNlLCBCYXNpcUpvYlN0ZXBcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBiYXNpcSBpcyBhIG1pZGRsZW1hbiBiZXR3ZWVuIGJhbmsgYW5kIHVzZXJcbiAqIHNlcnZpY2UgaXMgcmVzcG9uc2libGUgZm9yIGZldGNoaW5nIGJhbmsgcmVsYXRlZCBpbmZvcm1hdGlvblxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNpcVNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxCYW5rQWNjb3VudEJhc2UsIEJhbmtBY2NvdW50PiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgc3RhdGljIGJhc2lxQXBpVXJsOiBzdHJpbmcgPSAnaHR0cHM6Ly9hdS1hcGkuYmFzaXEuaW8nO1xuXG4gIC8qKlxuICAgKiBCYXNpcSBkb2VzIG5vdCBwcm92aWRlIGEgaG9vaywgc28gd2UgaGF2ZSB0byBjaGVjayBqb2Igc3RhdHVzIG1hbnVhbGx5IGV2ZXJ5IHggc2Vjb25kc1xuICAgKi9cbiAgc3RhdGljIGJhbmtDcmVkaW50aWFsc0NoZWNrSW50ZXJ2YWw6IG51bWJlciA9IDMwMDA7XG5cbiAgdXJsOiBzdHJpbmcgPSAnYmFzaXEvYWNjb3VudHMnO1xuICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSxcbiAgICBwcm90ZWN0ZWQgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYW5rQ29ubmVjdGlvblNlcnZpY2U6IEJhbmtDb25uZWN0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCwgdG9hc3RTZXJ2aWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZXZlbnRzIGZyb20gRXZlbnQgRGlzcGF0Y2hlciBzZXJ2aWNlXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gICAgdGhpcy5saXN0ZW5Kb2JzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IEJhbmsgY29ubmVjdGlvbiBiYXNlZCBvbiBCYXNpcSBqb2IuXG4gICAqIEhlcmUgd2UgaGF2ZSBuZXN0ZWQgcmVxdWVzdHMgYmVjYXVzZSB3ZSBuZWVkIHRvIGdldCBhIGpvYiBpZCBiZWZvcmUgd2UgY3JlYXRlIGEgYmFuayBjb25uZWN0aW9uLlxuICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gdXNlIGV2ZW50IGRpc3BhdGNoZXIgYmVjYXVzZSB3ZSBleHBlY3Qgc29tZSBlcnJvcnMgZnJvbSBiYW5rLWNvbm5lY3Rpb25zIEFQSSwgYnV0IGluIGNvbXBvbmVudHNcbiAgICogd2UgaW50ZXJhY3Qgd2l0aCBiYXNpcSBzZXJ2aWNlLlxuICAgKi9cbiAgY3JlYXRlQ29ubmVjdGlvbihsb2dpbkRhdGE6IEJhbmtMb2dpbkRhdGEsIHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxCYW5rQ29ubmVjdGlvbj4ge1xuICAgIC8vIFNlbmQgbG9naW4gZGF0YSB0byBiYXNpcSBBUEkgdG8gY3JlYXRlIGEgYmFzaXEgam9iXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke0Jhc2lxU2VydmljZS5iYXNpcUFwaVVybH0vdXNlcnMvJHt1c2VySWR9L2Nvbm5lY3Rpb25zYCwgbG9naW5EYXRhKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChyZXNwb25zZTogQmFzaXFDb25uZWN0aW9uc1Jlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfSk9CX0NSRUFURUQsIHJlc3BvbnNlLmlkKSk7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgYmFuayBjb25uZWN0aW9uIGJhc2VkIG9uIGJhc2lxIGpvYlxuICAgICAgICAgIHJldHVybiB0aGlzLmJhbmtDb25uZWN0aW9uU2VydmljZS5hZGQocGxhaW5Ub0NsYXNzKEJhbmtDb25uZWN0aW9uLCB7YmFzaXFKb2I6IHtleHRlcm5hbElkOiByZXNwb25zZS5pZH19KSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAvLyBTaG93IGVycm9yIHdoZW4gdXNlciBwcm92aWRlZCB3cm9uZyBsb2dpbiBkYXRhXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcignSW52YWxpZCBjcmVkZW50aWFscycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBkaXNjb25uZWN0ZWQgYmFuayBjb25uZWN0aW9uXG4gICAqIEhlcmUgd2UgaGF2ZSBuZXN0ZWQgcmVxdWVzdHMgYmVjYXVzZSB3ZSBuZWVkIHRvIGdldCBhIGpvYiBpZCBiZWZvcmUgd2UgY3JlYXRlIGEgYmFuayBjb25uZWN0aW9uLlxuICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gdXNlIGV2ZW50IGRpc3BhdGNoZXIgYmVjYXVzZSB3ZSBleHBlY3Qgc29tZSBlcnJvcnMgZnJvbSBiYW5rLWNvbm5lY3Rpb25zIEFQSSwgYnV0IGluIGNvbXBvbmVudHNcbiAgICogd2UgaW50ZXJhY3Qgd2l0aCBiYXNpcSBzZXJ2aWNlLlxuICAgKi9cbiAgdXBkYXRlQ29ubmVjdGlvbihkYXRhOiBCYW5rTG9naW5EYXRhLCB1c2VySWQ6IHN0cmluZywgY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uPiB7XG4gICAgLy8gU2VuZCBsb2dpbiBkYXRhIGFuZCBjb25uZWN0aW9uIGlkIHRvIGJhc2lxIEFQSSB0byBjcmVhdGUgYSBiYXNpcSBqb2JcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7QmFzaXFTZXJ2aWNlLmJhc2lxQXBpVXJsfS91c2Vycy8ke3VzZXJJZH0vY29ubmVjdGlvbnNgLCBPYmplY3QuYXNzaWduKGRhdGEsIHtpZDogY29ubmVjdGlvbi5leHRlcm5hbElkfSkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKHJlc3BvbnNlOiBCYXNpcUNvbm5lY3Rpb25zUmVzcG9uc2UpID0+IHtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9KT0JfQ1JFQVRFRCwgcmVzcG9uc2UuaWQpKTtcblxuICAgICAgICAgIC8vIENyZWF0ZSBiYW5rIGNvbm5lY3Rpb24gYmFzZWQgb24gYmFzaXEgam9iXG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmFua0Nvbm5lY3Rpb25TZXJ2aWNlLmFkZChwbGFpblRvQ2xhc3MoQmFua0Nvbm5lY3Rpb24sIHtcbiAgICAgICAgICAgIGlkOiBjb25uZWN0aW9uLmlkLFxuICAgICAgICAgICAgYmFzaXFKb2I6IHtleHRlcm5hbElkOiByZXNwb25zZS5pZH1cbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAvLyBTaG93IGVycm9yIHdoZW4gdXNlciBwcm92aWRlZCB3cm9uZyBsb2dpbiBkYXRhXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcignSW52YWxpZCBjcmVkZW50aWFscycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNob3cgZXJyb3Igd2hlbiB1c2VyIHByb3ZpZGVkIGFub3RoZXIgbG9naW4gKG5vdCBsb2dpbiBoZSB1c2VkIGJlZm9yZSlcbiAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKCdQbGVhc2UgZW50ZXIgdGhlIGxvZ2luIHlvdSB1c2VkIGJlZm9yZScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0QnlDb25uZWN0aW9uKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKTogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudENvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYW5rQWNjb3VudENvbGxlY3Rpb24oYmFua0FjY291bnRzKS5maWx0ZXJCeSgnYmFua0Nvbm5lY3Rpb24uaWQnLCBjb25uZWN0aW9uLmlkKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldE5vdEltcG9ydGVkQnlDb25uZWN0aW9uKHNhdmVkQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q29ubmVjdGlvbihjb25uZWN0aW9uKS5waXBlKFxuICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gYmFua0FjY291bnRzLnJlbW92ZUJ5KCdhY2NvdW50SWQnLCBzYXZlZEFjY291bnRzLm1hcEJ5KCdhY2NvdW50SWQnKSk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3RhdHVzIG9mIGNyZWRlbnRpYWxzIHZlcmlmeWluZy4gRXhwZWN0ZWQgc3RhdHVzZXM6ICdpbi1wcm9ncmVzcycsICdmYWlsZWQnIG9yICdzdWNjZXNzJ1xuICAgKiBXZSBzZW5kIHRoaXMgcmVxdWVzdCBieSBpbnRlcnZhbCB1bnRpbCBiYXNpcSByZXR1cm4gc3VjY2VzcyBvciBmYWlsZWRcbiAgICogQFRPRE8gQWxleCAoVFQtMjQzMSk6IGNoZWNrIGxvZ2ljIGFuZCB0cnkgdG8gcmVtb3ZlIHN1YnNjcmliZSwgdXNlIHBpcGVzIGluc3RlYWRcbiAgICogQFRPRE8gQWxleCAoVFQtMjQzMSk6IGltcGxlbWVudCBzb21lIGxpbWl0IGFuZCBoYW5kbGUgKG1lc3NhZ2Ugb3Igc29tZXRoaW5nKSBpZiBiYXNpcSBzdHVja1xuICAgKiBAVE9ETyBBbGV4IChUVC0yNDMxKTogY2hlY2sgbG9naWMgYW5kIGhhbmRsZSBjYXNlIHdoZW4gdXNlciBjYW5jZWxsZWQgbG9hZGluZ1xuICAgKi9cbiAgY2hlY2tCYW5rQ3JlZGVudGlhbHMoam9iSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaHR0cC5nZXQoYCR7QmFzaXFTZXJ2aWNlLmJhc2lxQXBpVXJsfS9qb2JzLyR7am9iSWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyB1bnN1YnNjcmliZSBhZnRlciBlYWNoIHJlcXVlc3QgdG8gYXZvaWQgd3JvbmcgcmVxdWVzdHMgKGV4YW1wbGU6IHVzZXIgY2FuY2VsbGVkIHRvbyBsb25nIGxvZ2luIGFuZCBsb2dpbiB0byBhbm90aGVyIGJhbmssIHRoZW4gd2Ugd2lsbCBzZW5kIDIgZGlmZmVyZW50IHJlcXVlc3RzKVxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICAvLyBnZXQgdmVyaWZ5LWNyZWRlbnRpYWxzIHN0ZXAgZnJvbSBiYXNpcSBqb2JcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiBwbGFpblRvQ2xhc3MoQmFzaXFKb2JSZXNwb25zZSwgcmVzcG9uc2UpLmdldFZlcmlmeUNyZWRlbnRpYWxzU3RlcCgpKSxcbiAgICAgICAgLy8gY2hlY2sgY3JlZGVudGlhbHMgc3RhdHVzIGFnYWluIGlmIG5vdCBmaW5pc2hlZFxuICAgICAgICBmaWx0ZXIoKHN0ZXA6IEJhc2lxSm9iU3RlcCkgPT4ge1xuICAgICAgICAgIGlmICghc3RlcC5pc0luUHJvZ3Jlc3MoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQmFua0NyZWRlbnRpYWxzKGpvYklkKTtcbiAgICAgICAgICB9LCBCYXNpcVNlcnZpY2UuYmFua0NyZWRpbnRpYWxzQ2hlY2tJbnRlcnZhbCk7XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChzdGVwOiBCYXNpcUpvYlN0ZXApID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0xPR0lOX0ZJTklTSEVELCBzdGVwLmlzU3VjY2VzcygpKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIEJhc2lxIGpvYiBjcmVhdGVkIHRvIGNoZWNrIGl0cyB2ZXJpZnkgY3JlZGVudGlhbHMgc3RhdHVzXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkpvYnMoKSB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfSk9CX0NSRUFURUQpLnN1YnNjcmliZSgoam9iSWQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5jaGVja0JhbmtDcmVkZW50aWFscyhqb2JJZCk7XG4gICAgfSlcbiAgfVxufVxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9oRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlELE9BQU8sRUFDTCxXQUFXLEVBQ29DLGdCQUFnQixFQUNoRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUFFNUI7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUF5QztJQVd6RSxZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQixFQUN2QyxZQUEwQjtJQUNwQyxvRkFBb0Y7SUFDNUUscUJBQTRDO1FBRXBELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBUHJELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUN2QyxpQkFBWSxHQUFa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O2dCQUNMLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUMvRjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUEwQixFQUFRLEVBQUU7WUFDakgsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDL0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRTtZQUN6RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOztBQXZITSx3QkFBVyxHQUFXLHlCQUF5QixDQUFDO0FBRXZEOztHQUVHO0FBQ0kseUNBQTRCLEdBQVcsSUFBSSxDQUFDOzBHQU54QyxZQUFZLGtGQWNiLGFBQWE7OEdBZFosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWVJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCBhcyBCYW5rQWNjb3VudEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCYW5rQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9iYW5rLWNvbm5lY3Rpb24vYmFuay1jb25uZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdG9hc3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucy9iYW5rLWFjY291bnQuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQge1xuICBCYW5rQWNjb3VudCwgQmFua0Nvbm5lY3Rpb24sIEJhbmtMb2dpbkRhdGEsXG4gIEJhc2lxQ29ubmVjdGlvbkRhdGEsIEJhc2lxQ29ubmVjdGlvbnNSZXNwb25zZSwgQmFzaXFKb2JSZXNwb25zZVxufSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIGJhc2lxIGlzIGEgbWlkZGxlbWFuIGJldHdlZW4gYmFuayBhbmQgdXNlclxuICogc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgZmV0Y2hpbmcgYmFuayByZWxhdGVkIGluZm9ybWF0aW9uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhc2lxU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtBY2NvdW50QmFzZSwgQmFua0FjY291bnQ+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBzdGF0aWMgYmFzaXFBcGlVcmw6IHN0cmluZyA9ICdodHRwczovL2F1LWFwaS5iYXNpcS5pbyc7XG5cbiAgLyoqXG4gICAqIEJhc2lxIGRvZXMgbm90IHByb3ZpZGUgYSBob29rLCBzbyB3ZSBoYXZlIHRvIGNoZWNrIGpvYiBzdGF0dXMgbWFudWFsbHkgZXZlcnkgeCBzZWNvbmRzXG4gICAqL1xuICBzdGF0aWMgYmFua0NyZWRpbnRpYWxzQ2hlY2tJbnRlcnZhbDogbnVtYmVyID0gMzAwMDtcblxuICB1cmw6IHN0cmluZyA9ICdiYXNpcS9hY2NvdW50cyc7XG4gIG1vZGVsQ2xhc3MgPSBCYW5rQWNjb3VudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55LFxuICAgIHByb3RlY3RlZCB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAvLyB0aGlzIGluamVjdCByZXF1aXJlZCB0byBpbml0IGJhbmsgY29ubmVjdGlvbiBzZXJ2aWNlIGFuZCBsaXN0ZW4gYmFzaXEgbG9naW4gZXZlbnRcbiAgICBwcml2YXRlIGJhbmtDb25uZWN0aW9uU2VydmljZTogQmFua0Nvbm5lY3Rpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50LCB0b2FzdFNlcnZpY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBldmVudHMgZnJvbSBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgICB0aGlzLmxpc3RlbkpvYkNyZWF0ZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCBiYXNpcSBsb2dpbiBwcm9jZXNzLlxuICAgKiBDcmVhdGUgYSBiYXNpcSBqb2IsIHdoaWNoIGNvbnRhaW4gY3JlZGVudGlhbHMgdmVyaWZ5aW5nIHN0YXR1cy5cbiAgICogV2UgY2FuIG5vdCBzZWUgbG9naW4gcmVzdWx0IGltbWVkaWF0ZWx5LCBiZWNhdXNlIGl0IG1heSB0YWtlIHNvbWUgdGltZSAoYXZlcmFnZSAxMC0yMCBzZWMpXG4gICAqL1xuICBsb2dpbihsb2dpbkRhdGE6IEJhbmtMb2dpbkRhdGEsIHVzZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5odHRwLnBvc3QoYCR7QmFzaXFTZXJ2aWNlLmJhc2lxQXBpVXJsfS91c2Vycy8ke3VzZXJJZH0vY29ubmVjdGlvbnNgLCBsb2dpbkRhdGEpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzaXFDb25uZWN0aW9uc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIC8vIHdlIG5lZWQgam9iSWQgdG8gY2hlY2sgY3JlZGVudGlhbHMgdmVyaWZ5aW5nIHN0YXRpcyBmcm9tIEJhc2lxIEFQSVxuICAgICAgICAvLyB3ZSBuZWVkIGNvbm5lY3Rpb25JZCB0byBrbm93IGlmIHdlIGFyZSBjcmVhdGluZyBhIG5ldyBjb25uZWN0aW9uIG9yIHJlY29ubmVjdGluZyBleGlzdGluZyBpbnZhbGlkIGNvbm5lY3Rpb25cbiAgICAgICAgY29uc3QgZGF0YTogQmFzaXFDb25uZWN0aW9uRGF0YSA9IHtcbiAgICAgICAgICBqb2JJZDogcmVzcG9uc2UuaWQsXG4gICAgICAgICAgY29ubmVjdGlvbklkOiBsb2dpbkRhdGEuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfSk9CX0NSRUFURUQsIGRhdGEpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0QnlDb25uZWN0aW9uKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKTogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudENvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYW5rQWNjb3VudENvbGxlY3Rpb24oYmFua0FjY291bnRzKS5maWx0ZXJCeSgnYmFua0Nvbm5lY3Rpb24uaWQnLCBjb25uZWN0aW9uLmlkKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldE5vdEltcG9ydGVkQnlDb25uZWN0aW9uKHNhdmVkQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q29ubmVjdGlvbihjb25uZWN0aW9uKS5waXBlKFxuICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gYmFua0FjY291bnRzLnJlbW92ZUJ5KCdhY2NvdW50SWQnLCBzYXZlZEFjY291bnRzLm1hcEJ5KCdhY2NvdW50SWQnKSk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAqIEdldCBzdGF0dXMgb2YgY3JlZGVudGlhbHMgdmVyaWZ5aW5nLiBFeHBlY3RlZCBzdGF0dXNlczogJ2luLXByb2dyZXNzJywgJ2ZhaWxlZCcgb3IgJ3N1Y2Nlc3MnXG4gICogV2Ugc2VuZCB0aGlzIHJlcXVlc3QgYnkgaW50ZXJ2YWwgdW50aWwgYmFzaXEgcmV0dXJuIHN1Y2Nlc3Mgb3IgZmFpbGVkLlxuICAqXG4gICogQmVjYXVzZSBvZiBCYXNpcSBsb2dpbiBtYXkgdGFrZSBhIGxvbmcgdGltZSAoMTAtMjBzZWMpIHdlIGhhdmUgdG8gY2hlY2sgam9iIHN0YXR1cyB1bnRpbCBpdCBzZWNjZXNzIG9yIGZhaWxlZC5cbiAgKlxuICAqIEBUT0RPIEFsZXggKFRULTI0MzEpOiBjaGVjayBsb2dpYyBhbmQgdHJ5IHRvIHJlbW92ZSBzdWJzY3JpYmUsIHVzZSBwaXBlcyBpbnN0ZWFkXG4gICogQFRPRE8gQWxleCAoVFQtMjQzMSk6IGltcGxlbWVudCBzb21lIGxpbWl0IGFuZCBoYW5kbGUgKG1lc3NhZ2Ugb3Igc29tZXRoaW5nKSBpZiBiYXNpcSBzdHVja1xuICAqIEBUT0RPIEFsZXggKFRULTI0MzEpOiBjaGVjayBsb2dpYyBhbmQgaGFuZGxlIGNhc2Ugd2hlbiB1c2VyIGNhbmNlbGxlZCBsb2FkaW5nXG4gICovXG4gIHByaXZhdGUgY2hlY2tMb2dpblN0YXR1cyhkYXRhOiBCYXNpcUNvbm5lY3Rpb25EYXRhKTogdm9pZCB7XG4gICAgdGhpcy5odHRwLmdldChgJHtCYXNpcVNlcnZpY2UuYmFzaXFBcGlVcmx9L2pvYnMvJHtkYXRhLmpvYklkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gZ2V0IHZlcmlmeS1jcmVkZW50aWFscyBzdGVwIGZyb20gYmFzaXEgam9iXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4gcGxhaW5Ub0NsYXNzKEJhc2lxSm9iUmVzcG9uc2UsIHJlc3BvbnNlKSksXG4gICAgICAgIC8vIGNoZWNrIGNyZWRlbnRpYWxzIHN0YXR1cyBhZ2FpbiBpZiBub3QgZmluaXNoZWRcbiAgICAgICAgZmlsdGVyKChyZXNwb25zZTogQmFzaXFKb2JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmICghcmVzcG9uc2UuZ2V0VmVyaWZ5Q3JlZGVudGlhbHNTdGVwKCkuaXNJblByb2dyZXNzKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja0xvZ2luU3RhdHVzKGRhdGEpO1xuICAgICAgICAgIH0sIEJhc2lxU2VydmljZS5iYW5rQ3JlZGludGlhbHNDaGVja0ludGVydmFsKTtcblxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNpcUpvYlJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5nZXRWZXJpZnlDcmVkZW50aWFsc1N0ZXAoKS5pc1N1Y2Nlc3MoKSkge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9MT0dJTl9TVUNDRVNTLCBkYXRhKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0xPR0lOX0ZBSUxFRCwgbnVsbCkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGxpc3RlbiB0byBub3RpZmljYXRpb25zIHRvIHVwZGF0ZSBiYXNpcSBhY2NvdW50cyBsaXN0XG4gICAqL1xuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5pc1JlYWQgJiYgbm90aWZpY2F0aW9uLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZVR5cGVFbnVtLkJBU0lRX05FV19BQ0NPVU5UUykge1xuICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCBjaGVjayBqb2IgY3JlZGVudGlhbCBzdGF0dXMgd2hlbiBpdCBjcmVhdGVkXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkpvYkNyZWF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfSk9CX0NSRUFURUQpLnN1YnNjcmliZSgoZGF0YTogQmFzaXFDb25uZWN0aW9uRGF0YSkgPT4ge1xuICAgICAgdGhpcy5jaGVja0xvZ2luU3RhdHVzKGRhdGEpO1xuICAgIH0pXG4gIH1cbn1cbiJdfQ==