taxtank-core 0.16.11 → 0.16.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,13 @@
1
+ // @TODO Basiq 1.0 remove if we will use basiq 2.0 or refactor if we stay with basiq 1.0
1
2
  import { Injectable } from '@angular/core';
2
3
  import { ReplaySubject } from 'rxjs';
3
- import { map, take } from 'rxjs/operators';
4
- import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
5
- import { RestService } from '../../rest/rest.service';
4
+ import { map } from 'rxjs/operators';
6
5
  import { BankAccount } from '../../../../models/bank/bank-account';
6
+ import { RestService } from '../../rest/rest.service';
7
7
  import { BasiqToken } from '../../../../models/bank/basiq-token';
8
8
  import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
9
- import { AppEvent } from '../../../../models/event/app-event';
9
+ import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
10
10
  import * as i0 from "@angular/core";
11
- /**
12
- * Basiq consent UI initial URL. Replace USER_ID and TOKEN by user data + handle action parameter
13
- */
14
- const BASIQ_CONSENT_URL = 'https://consent.basiq.io/home?userId=USER_ID&token=TOKEN&action=connect';
15
- /**
16
- * Event message name we listen to handle basiq UI result
17
- */
18
- const FINISH_BASIQ_EVENT = 'finish-basiq';
19
11
  /**
20
12
  * basiq is a middleman between bank and user
21
13
  * service is responsible for fetching bank related information
@@ -33,23 +25,6 @@ export class BasiqService extends RestService {
33
25
  listenEvents() {
34
26
  this.listenToBankConnectionAdded();
35
27
  this.listenNotifications();
36
- this.listenBasiqConcentUpdated();
37
- }
38
- /**
39
- * Update user's basiq consents data on backend
40
- */
41
- confirmConsents() {
42
- return this.http.put(`${this.environment.apiV2}/basiq/consents`, {}).pipe(map((isConfirmed) => {
43
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_CONSENT_UPDATED, isConfirmed));
44
- }));
45
- }
46
- /**
47
- * Notify backend to update connections
48
- */
49
- updateConnections() {
50
- return this.http.post(`${this.environment.apiV2}/basiq/connections`, {}).pipe(map((connections) => {
51
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_CONNECTION_UPDATED, !!connections));
52
- }));
53
28
  }
54
29
  /**
55
30
  * access token to use basiq connect ui iframe
@@ -62,15 +37,11 @@ export class BasiqService extends RestService {
62
37
  return new BasiqToken(response['access_token'], new Date(now + response['expires_in'] * 1000));
63
38
  }))
64
39
  .subscribe((token) => {
65
- this.token = token;
66
40
  this.tokenSubject.next(token);
67
41
  });
68
42
  }
69
43
  return this.tokenSubject.asObservable();
70
44
  }
71
- /**
72
- * Get list of user's bank conections
73
- */
74
45
  getConnections() {
75
46
  return this.get().pipe(map((bankAccounts) => {
76
47
  // get all connections
@@ -81,40 +52,6 @@ export class BasiqService extends RestService {
81
52
  return [...new Map(connections.map((connection) => [connection.id, connection])).values()];
82
53
  }));
83
54
  }
84
- /**
85
- * Listen response from basiq UI to handle result.
86
- * @param isBasiqConsentExist flag from User.ClientDetails - true if user confirmed basiq consent
87
- * @param callback function we run after basiq UI work is finished
88
- */
89
- listenBasiqResponse(isBasiqConsentExist, callback) {
90
- window.addEventListener('message', (message) => {
91
- if (message.data !== FINISH_BASIQ_EVENT) {
92
- return;
93
- }
94
- // update user's basiq consent confirmation status for the first basiq ui run
95
- if (isBasiqConsentExist) {
96
- this.updateConnections().pipe(take(1)).subscribe();
97
- }
98
- else {
99
- this.confirmConsents().pipe(take(1)).subscribe();
100
- }
101
- callback();
102
- }, { once: true });
103
- }
104
- /**
105
- * Get URL with filled params to run basiq UI iframe
106
- */
107
- generateBasiqConsentUrl(user) {
108
- return this.getToken().pipe(map((token) => {
109
- let url = BASIQ_CONSENT_URL;
110
- url = url.replace('USER_ID', user.basiqId);
111
- url = url.replace('TOKEN', token.value);
112
- if (!user.clientDetails.basiqConsentExist) {
113
- url = url.split('&action')[0];
114
- }
115
- return url;
116
- }));
117
- }
118
55
  /**
119
56
  * Listen to EventDispatcherService event related to added Bank connection
120
57
  */
@@ -137,17 +74,6 @@ export class BasiqService extends RestService {
137
74
  }
138
75
  });
139
76
  }
140
- /**
141
- * Update user's basiq connections when user confirmed basiq consent
142
- */
143
- listenBasiqConcentUpdated() {
144
- this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_CONSENT_UPDATED).subscribe((isConfirmed) => {
145
- if (!isConfirmed) {
146
- return;
147
- }
148
- this.updateConnections().pipe(take(1)).subscribe();
149
- });
150
- }
151
77
  }
152
78
  BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
153
79
  BasiqService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, providedIn: 'root' });
@@ -157,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
157
83
  providedIn: 'root'
158
84
  }]
159
85
  }] });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUloRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBSTlEOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyx5RUFBeUUsQ0FBQztBQUVwRzs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBRTFDOzs7R0FHRztBQUlILE1BQU0sT0FBTyxZQUFhLFNBQVEsV0FBeUM7SUFIM0U7O1FBS0UsaUJBQVksR0FBOEIsSUFBSSxhQUFhLEVBQWMsQ0FBQztRQUMxRSxRQUFHLEdBQVcsZ0JBQWdCLENBQUM7UUFDL0IsZUFBVSxHQUFHLFdBQVcsQ0FBQztLQXFKMUI7SUFuSkM7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixFQUFF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RUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IGFzIEJhbmtBY2NvdW50QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IEJhc2lxVG9rZW4gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYXNpcS10b2tlbic7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy91c2VyL3VzZXInO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gYXMgQmFua0Nvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcblxuLyoqXG4gKiBCYXNpcSBjb25zZW50IFVJIGluaXRpYWwgVVJMLiBSZXBsYWNlIFVTRVJfSUQgYW5kIFRPS0VOIGJ5IHVzZXIgZGF0YSArIGhhbmRsZSBhY3Rpb24gcGFyYW1ldGVyXG4gKi9cbmNvbnN0IEJBU0lRX0NPTlNFTlRfVVJMID0gJ2h0dHBzOi8vY29uc2VudC5iYXNpcS5pby9ob21lP3VzZXJJZD1VU0VSX0lEJnRva2VuPVRPS0VOJmFjdGlvbj1jb25uZWN0JztcblxuLyoqXG4gKiBFdmVudCBtZXNzYWdlIG5hbWUgd2UgbGlzdGVuIHRvIGhhbmRsZSBiYXNpcSBVSSByZXN1bHRcbiAqL1xuY29uc3QgRklOSVNIX0JBU0lRX0VWRU5UID0gJ2ZpbmlzaC1iYXNpcSc7XG5cbi8qKlxuICogYmFzaXEgaXMgYSBtaWRkbGVtYW4gYmV0d2VlbiBiYW5rIGFuZCB1c2VyXG4gKiBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIGZvciBmZXRjaGluZyBiYW5rIHJlbGF0ZWQgaW5mb3JtYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzaXFTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHRva2VuOiBCYXNpcVRva2VuO1xuICB0b2tlblN1YmplY3Q6IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4gPSBuZXcgUmVwbGF5U3ViamVjdDxCYXNpcVRva2VuPigpO1xuICB1cmw6IHN0cmluZyA9ICdiYXNpcS9hY2NvdW50cyc7XG4gIG1vZGVsQ2xhc3MgPSBCYW5rQWNjb3VudDtcblxuICAvKipcbiAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZVxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gICAgdGhpcy5saXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHVzZXIncyBiYXNpcSBjb25zZW50cyBkYXRhIG9uIGJhY2tlbmRcbiAgICovXG4gIGNvbmZpcm1Db25zZW50cygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYXNpcS9jb25zZW50c2AsIHt9KS5waXBlKFxuICAgICAgbWFwKChpc0NvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfQ09OU0VOVF9VUERBVEVELCBpc0NvbmZpcm1lZCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBiYWNrZW5kIHRvIHVwZGF0ZSBjb25uZWN0aW9uc1xuICAgKi9cbiAgdXBkYXRlQ29ubmVjdGlvbnMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL2Nvbm5lY3Rpb25zYCwge30pLnBpcGUoXG4gICAgICBtYXAoKGNvbm5lY3Rpb25zOiBCYW5rQ29ubmVjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfQ09OTkVDVElPTl9VUERBVEVELCAhIWNvbm5lY3Rpb25zKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogYWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBjb25uZWN0IHVpIGlmcmFtZVxuICAgKi9cbiAgZ2V0VG9rZW4oKTogT2JzZXJ2YWJsZTxCYXNpcVRva2VuPiB7XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8IHRoaXMudG9rZW4uaXNFeHBpcmVkKCkpIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vYmFzaXEvdG9rZW5zYClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KTogQmFzaXFUb2tlbiA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IG5vdzogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhc2lxVG9rZW4ocmVzcG9uc2VbJ2FjY2Vzc190b2tlbiddLCBuZXcgRGF0ZShub3cgKyByZXNwb25zZVsnZXhwaXJlc19pbiddICogMTAwMCkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgodG9rZW46IEJhc2lxVG9rZW4pID0+IHtcbiAgICAgICAgICB0aGlzLnRva2VuID0gdG9rZW47XG4gICAgICAgICAgdGhpcy50b2tlblN1YmplY3QubmV4dCh0b2tlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiB1c2VyJ3MgYmFuayBjb25lY3Rpb25zXG4gICAqL1xuICBnZXRDb25uZWN0aW9ucygpOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgLy8gZ2V0IGFsbCBjb25uZWN0aW9uc1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25bXSA9IGJhbmtBY2NvdW50cy5tYXAoKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4ge1xuICAgICAgICAgIHJldHVybiBiYW5rQWNjb3VudC5iYW5rQ29ubmVjdGlvbjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gcmV0dXJuIHdpdGhvdXQgZHVwbGljYXRlc1xuICAgICAgICByZXR1cm4gWy4uLm5ldyBNYXAoY29ubmVjdGlvbnMubWFwKChjb25uZWN0aW9uOiBCYW5rQ29ubmVjdGlvbikgPT4gW2Nvbm5lY3Rpb24uaWQsIGNvbm5lY3Rpb25dKSkudmFsdWVzKCldO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiByZXNwb25zZSBmcm9tIGJhc2lxIFVJIHRvIGhhbmRsZSByZXN1bHQuXG4gICAqIEBwYXJhbSBpc0Jhc2lxQ29uc2VudEV4aXN0IGZsYWcgZnJvbSBVc2VyLkNsaWVudERldGFpbHMgLSB0cnVlIGlmIHVzZXIgY29uZmlybWVkIGJhc2lxIGNvbnNlbnRcbiAgICogQHBhcmFtIGNhbGxiYWNrIGZ1bmN0aW9uIHdlIHJ1biBhZnRlciBiYXNpcSBVSSB3b3JrIGlzIGZpbmlzaGVkXG4gICAqL1xuICBsaXN0ZW5CYXNpcVJlc3BvbnNlKGlzQmFzaXFDb25zZW50RXhpc3Q6IGJvb2xlYW4sIGNhbGxiYWNrOiAoKSA9PiBhbnkpOiB2b2lkIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIChtZXNzYWdlOiBNZXNzYWdlRXZlbnQpID0+IHtcbiAgICAgIGlmIChtZXNzYWdlLmRhdGEgIT09IEZJTklTSF9CQVNJUV9FVkVOVCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHVwZGF0ZSB1c2VyJ3MgYmFzaXEgY29uc2VudCBjb25maXJtYXRpb24gc3RhdHVzIGZvciB0aGUgZmlyc3QgYmFzaXEgdWkgcnVuXG4gICAgICBpZiAoaXNCYXNpcUNvbnNlbnRFeGlzdCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uZmlybUNvbnNlbnRzKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCB7b25jZTogdHJ1ZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBVUkwgd2l0aCBmaWxsZWQgcGFyYW1zIHRvIHJ1biBiYXNpcSBVSSBpZnJhbWVcbiAgICovXG4gIGdlbmVyYXRlQmFzaXFDb25zZW50VXJsKHVzZXI6IFVzZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmdldFRva2VuKCkucGlwZShcbiAgICAgIG1hcCgodG9rZW46IEJhc2lxVG9rZW4pOiBzdHJpbmcgPT4ge1xuICAgICAgICBsZXQgdXJsOiBzdHJpbmcgPSBCQVNJUV9DT05TRU5UX1VSTDtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ1VTRVJfSUQnLCB1c2VyLmJhc2lxSWQpO1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgnVE9LRU4nLCB0b2tlbi52YWx1ZSk7XG5cbiAgICAgICAgaWYgKCF1c2VyLmNsaWVudERldGFpbHMuYmFzaXFDb25zZW50RXhpc3QpIHtcbiAgICAgICAgICB1cmwgPSB1cmwuc3BsaXQoJyZhY3Rpb24nKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBCYW5rIGNvbm5lY3Rpb25cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBTktfQ09OTkVDVElPTl9BRERFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gYmFua0FjY291bnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHVzZXIncyBiYXNpcSBjb25uZWN0aW9ucyB3aGVuIHVzZXIgY29uZmlybWVkIGJhc2lxIGNvbnNlbnRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuQmFzaXFDb25jZW50VXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9DT05TRU5UX1VQREFURUQpLnN1YnNjcmliZSgoaXNDb25maXJtZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmICghaXNDb25maXJtZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RkFBd0Y7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFFcEc7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUF5QztJQUgzRTs7UUFLRSxpQkFBWSxHQUE4QixJQUFJLGFBQWEsRUFBYyxDQUFDO1FBQzFFLFFBQUcsR0FBVyxnQkFBZ0IsQ0FBQztRQUMvQixlQUFVLEdBQUcsV0FBVyxDQUFDO0tBb0UxQjtJQWxFQzs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLENBQUM7aUJBQ3BELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sR0FBRyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRXpDLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqRyxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3BCLEdBQUcsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRTtZQUNsQyxzQkFBc0I7WUFDdEIsTUFBTSxXQUFXLEdBQXFCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7Z0JBQ2xGLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUVILDRCQUE0QjtZQUM1QixPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUEwQixFQUFRLEVBQUU7WUFDakgsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSywyQkFBMkIsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDckcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzBHQXZFVSxZQUFZOzhHQUFaLFlBQVksY0FGWCxNQUFNOzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQFRPRE8gQmFzaXEgMS4wIHJlbW92ZSBpZiB3ZSB3aWxsIHVzZSBiYXNpcSAyLjAgb3IgcmVmYWN0b3IgaWYgd2Ugc3RheSB3aXRoIGJhc2lxIDEuMFxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgYXMgQmFua0FjY291bnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzaXFUb2tlbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2Jhc2lxLXRva2VuJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogYmFzaXEgaXMgYSBtaWRkbGVtYW4gYmV0d2VlbiBiYW5rIGFuZCB1c2VyXG4gKiBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIGZvciBmZXRjaGluZyBiYW5rIHJlbGF0ZWQgaW5mb3JtYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzaXFTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4ge1xuICB0b2tlbjogQmFzaXFUb2tlbjtcbiAgdG9rZW5TdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4oKTtcbiAgdXJsOiBzdHJpbmcgPSAnYmFzaXEvYWNjb3VudHMnO1xuICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG5cbiAgLyoqXG4gICAqIExpc3RlbiBldmVudHMgZnJvbSBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQmFua0Nvbm5lY3Rpb25BZGRlZCgpO1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFjY2VzcyB0b2tlbiB0byB1c2UgYmFzaXEgY29ubmVjdCB1aSBpZnJhbWVcbiAgICovXG4gIGdldFRva2VuKCk6IE9ic2VydmFibGU8QmFzaXFUb2tlbj4ge1xuICAgIGlmICghdGhpcy50b2tlbiB8fCB0aGlzLnRva2VuLmlzRXhwaXJlZCgpKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL3Rva2Vuc2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYXNpcVRva2VuKHJlc3BvbnNlWydhY2Nlc3NfdG9rZW4nXSwgbmV3IERhdGUobm93ICsgcmVzcG9uc2VbJ2V4cGlyZXNfaW4nXSAqIDEwMDApKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHRva2VuOiBCYXNpcVRva2VuKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2tlblN1YmplY3QubmV4dCh0b2tlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldENvbm5lY3Rpb25zKCk6IE9ic2VydmFibGU8QmFua0Nvbm5lY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICAvLyBnZXQgYWxsIGNvbm5lY3Rpb25zXG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25zOiBCYW5rQ29ubmVjdGlvbltdID0gYmFua0FjY291bnRzLm1hcCgoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGJhbmtBY2NvdW50LmJhbmtDb25uZWN0aW9uO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyByZXR1cm4gd2l0aG91dCBkdXBsaWNhdGVzXG4gICAgICAgIHJldHVybiBbLi4ubmV3IE1hcChjb25uZWN0aW9ucy5tYXAoKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKSA9PiBbY29ubmVjdGlvbi5pZCwgY29ubmVjdGlvbl0pKS52YWx1ZXMoKV07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBCYW5rIGNvbm5lY3Rpb25cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBTktfQ09OTkVDVElPTl9BRERFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gYmFua0FjY291bnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuXG4vLyBAVE9ETyBCYXNpcSAzLjAgZnVuY3Rpb25hbGl0eSByZW1vdmUgd2hlbiB3ZSBkZWNpZGUgd2hhdCBiYXNpcSB2ZXJzaW9uIHdlIHdpbGwgdXNlICgxIG9yIDIpXG4vLyBpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG4vLyBpbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG4vLyBpbXBvcnQgeyBCYW5rQWNjb3VudCBhcyBCYW5rQWNjb3VudEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuLy8gaW1wb3J0IHsgVXNlckV2ZW50VHlwZUNsaWVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLWNsaWVudC10eXBlLmVudW0nO1xuLy8gaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG4vLyBpbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG4vLyBpbXBvcnQgeyBCYXNpcVRva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFzaXEtdG9rZW4nO1xuLy8gaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbi8vIGltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbi8vIGltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcbi8vIGltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuLy8gaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50Jztcbi8vIGltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvdXNlci91c2VyJztcbi8vIGltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG4vL1xuLy8gLyoqXG4vLyAgKiBCYXNpcSBjb25zZW50IFVJIGluaXRpYWwgVVJMLiBSZXBsYWNlIFVTRVJfSUQgYW5kIFRPS0VOIGJ5IHVzZXIgZGF0YSArIGhhbmRsZSBhY3Rpb24gcGFyYW1ldGVyXG4vLyAgKi9cbi8vIGNvbnN0IEJBU0lRX0NPTlNFTlRfVVJMID0gJ2h0dHBzOi8vY29uc2VudC5iYXNpcS5pby9ob21lP3VzZXJJZD1VU0VSX0lEJnRva2VuPVRPS0VOJmFjdGlvbj1jb25uZWN0Jztcbi8vXG4vLyAvKipcbi8vICAqIEV2ZW50IG1lc3NhZ2UgbmFtZSB3ZSBsaXN0ZW4gdG8gaGFuZGxlIGJhc2lxIFVJIHJlc3VsdFxuLy8gICovXG4vLyBjb25zdCBGSU5JU0hfQkFTSVFfRVZFTlQgPSAnZmluaXNoLWJhc2lxJztcbi8vXG4vLyAvKipcbi8vICAqIGJhc2lxIGlzIGEgbWlkZGxlbWFuIGJldHdlZW4gYmFuayBhbmQgdXNlclxuLy8gICogc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgZmV0Y2hpbmcgYmFuayByZWxhdGVkIGluZm9ybWF0aW9uXG4vLyAgKi9cbi8vIEBJbmplY3RhYmxlKHtcbi8vICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4vLyB9KVxuLy8gZXhwb3J0IGNsYXNzIEJhc2lxU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtBY2NvdW50QmFzZSwgQmFua0FjY291bnQ+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuLy8gICB0b2tlbjogQmFzaXFUb2tlbjtcbi8vICAgdG9rZW5TdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4oKTtcbi8vICAgdXJsOiBzdHJpbmcgPSAnYmFzaXEvYWNjb3VudHMnO1xuLy8gICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG4vL1xuLy8gICAvKipcbi8vICAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZVxuLy8gICAgKi9cbi8vICAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuLy8gICAgIHRoaXMubGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk7XG4vLyAgICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4vLyAgICAgdGhpcy5saXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBVcGRhdGUgdXNlcidzIGJhc2lxIGNvbnNlbnRzIGRhdGEgb24gYmFja2VuZFxuLy8gICAgKi9cbi8vICAgY29uZmlybUNvbnNlbnRzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuLy8gICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL2NvbnNlbnRzYCwge30pLnBpcGUoXG4vLyAgICAgICBtYXAoKGlzQ29uZmlybWVkOiBib29sZWFuKSA9PiB7XG4vLyAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9DT05TRU5UX1VQREFURUQsIGlzQ29uZmlybWVkKSk7XG4vLyAgICAgICB9KVxuLy8gICAgICk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBOb3RpZnkgYmFja2VuZCB0byB1cGRhdGUgY29ubmVjdGlvbnNcbi8vICAgICovXG4vLyAgIHVwZGF0ZUNvbm5lY3Rpb25zKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuLy8gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYXNpcS9jb25uZWN0aW9uc2AsIHt9KS5waXBlKFxuLy8gICAgICAgbWFwKChjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25CYXNlW10pID0+IHtcbi8vICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTk5FQ1RJT05fVVBEQVRFRCwgISFjb25uZWN0aW9ucykpO1xuLy8gICAgICAgfSlcbi8vICAgICApO1xuLy8gICB9XG4vL1xuLy8gICAvKipcbi8vICAgICogYWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBjb25uZWN0IHVpIGlmcmFtZVxuLy8gICAgKi9cbi8vICAgZ2V0VG9rZW4oKTogT2JzZXJ2YWJsZTxCYXNpcVRva2VuPiB7XG4vLyAgICAgaWYgKCF0aGlzLnRva2VuIHx8IHRoaXMudG9rZW4uaXNFeHBpcmVkKCkpIHtcbi8vICAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vYmFzaXEvdG9rZW5zYClcbi8vICAgICAgICAgLnBpcGUoXG4vLyAgICAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KTogQmFzaXFUb2tlbiA9PiB7XG4vL1xuLy8gICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbi8vICAgICAgICAgICAgIHJldHVybiBuZXcgQmFzaXFUb2tlbihyZXNwb25zZVsnYWNjZXNzX3Rva2VuJ10sIG5ldyBEYXRlKG5vdyArIHJlc3BvbnNlWydleHBpcmVzX2luJ10gKiAxMDAwKSk7XG4vLyAgICAgICAgICAgfSlcbi8vICAgICAgICAgKVxuLy8gICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogQmFzaXFUb2tlbikgPT4ge1xuLy8gICAgICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbi8vICAgICAgICAgICB0aGlzLnRva2VuU3ViamVjdC5uZXh0KHRva2VuKTtcbi8vICAgICAgICAgfSk7XG4vLyAgICAgfVxuLy9cbi8vICAgICByZXR1cm4gdGhpcy50b2tlblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBHZXQgbGlzdCBvZiB1c2VyJ3MgYmFuayBjb25lY3Rpb25zXG4vLyAgICAqL1xuLy8gICBnZXRDb25uZWN0aW9ucygpOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uW10+IHtcbi8vICAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuLy8gICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbi8vICAgICAgICAgLy8gZ2V0IGFsbCBjb25uZWN0aW9uc1xuLy8gICAgICAgICBjb25zdCBjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25bXSA9IGJhbmtBY2NvdW50cy5tYXAoKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4ge1xuLy8gICAgICAgICAgIHJldHVybiBiYW5rQWNjb3VudC5iYW5rQ29ubmVjdGlvbjtcbi8vICAgICAgICAgfSk7XG4vL1xuLy8gICAgICAgICAvLyByZXR1cm4gd2l0aG91dCBkdXBsaWNhdGVzXG4vLyAgICAgICAgIHJldHVybiBbLi4ubmV3IE1hcChjb25uZWN0aW9ucy5tYXAoKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKSA9PiBbY29ubmVjdGlvbi5pZCwgY29ubmVjdGlvbl0pKS52YWx1ZXMoKV07XG4vLyAgICAgICB9KVxuLy8gICAgICk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBMaXN0ZW4gcmVzcG9uc2UgZnJvbSBiYXNpcSBVSSB0byBoYW5kbGUgcmVzdWx0LlxuLy8gICAgKiBAcGFyYW0gaXNCYXNpcUNvbnNlbnRFeGlzdCBmbGFnIGZyb20gVXNlci5DbGllbnREZXRhaWxzIC0gdHJ1ZSBpZiB1c2VyIGNvbmZpcm1lZCBiYXNpcSBjb25zZW50XG4vLyAgICAqIEBwYXJhbSBjYWxsYmFjayBmdW5jdGlvbiB3ZSBydW4gYWZ0ZXIgYmFzaXEgVUkgd29yayBpcyBmaW5pc2hlZFxuLy8gICAgKi9cbi8vICAgbGlzdGVuQmFzaXFSZXNwb25zZShpc0Jhc2lxQ29uc2VudEV4aXN0OiBib29sZWFuLCBjYWxsYmFjazogKCkgPT4gYW55KTogdm9pZCB7XG4vLyAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAobWVzc2FnZTogTWVzc2FnZUV2ZW50KSA9PiB7XG4vLyAgICAgICBpZiAobWVzc2FnZS5kYXRhICE9PSBGSU5JU0hfQkFTSVFfRVZFTlQpIHtcbi8vICAgICAgICAgcmV0dXJuO1xuLy8gICAgICAgfVxuLy9cbi8vICAgICAgIC8vIHVwZGF0ZSB1c2VyJ3MgYmFzaXEgY29uc2VudCBjb25maXJtYXRpb24gc3RhdHVzIGZvciB0aGUgZmlyc3QgYmFzaXEgdWkgcnVuXG4vLyAgICAgICBpZiAoaXNCYXNpcUNvbnNlbnRFeGlzdCkge1xuLy8gICAgICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbi8vICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgIHRoaXMuY29uZmlybUNvbnNlbnRzKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbi8vICAgICAgIH1cbi8vXG4vLyAgICAgICBjYWxsYmFjaygpO1xuLy8gICAgIH0sIHtvbmNlOiB0cnVlfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBHZXQgVVJMIHdpdGggZmlsbGVkIHBhcmFtcyB0byBydW4gYmFzaXEgVUkgaWZyYW1lXG4vLyAgICAqL1xuLy8gICBnZW5lcmF0ZUJhc2lxQ29uc2VudFVybCh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbi8vICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbigpLnBpcGUoXG4vLyAgICAgICBtYXAoKHRva2VuOiBCYXNpcVRva2VuKTogc3RyaW5nID0+IHtcbi8vICAgICAgICAgbGV0IHVybDogc3RyaW5nID0gQkFTSVFfQ09OU0VOVF9VUkw7XG4vLyAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCdVU0VSX0lEJywgdXNlci5iYXNpcUlkKTtcbi8vICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ1RPS0VOJywgdG9rZW4udmFsdWUpO1xuLy9cbi8vICAgICAgICAgaWYgKCF1c2VyLmNsaWVudERldGFpbHMuYmFzaXFDb25zZW50RXhpc3QpIHtcbi8vICAgICAgICAgICB1cmwgPSB1cmwuc3BsaXQoJyZhY3Rpb24nKVswXTtcbi8vICAgICAgICAgfVxuLy9cbi8vICAgICAgICAgcmV0dXJuIHVybDtcbi8vICAgICAgIH0pXG4vLyAgICAgKTtcbi8vICAgfVxuLy9cbi8vICAgLyoqXG4vLyAgICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gYWRkZWQgQmFuayBjb25uZWN0aW9uXG4vLyAgICAqL1xuLy8gICBwcml2YXRlIGxpc3RlblRvQmFua0Nvbm5lY3Rpb25BZGRlZCgpOiB2b2lkIHtcbi8vICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQU5LX0NPTk5FQ1RJT05fQURERUQpLnN1YnNjcmliZSgoKSA9PiB7XG4vLyAgICAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbi8vICAgICAgICAgdGhpcy5jYWNoZSA9IGJhbmtBY2NvdW50cztcbi8vICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuLy8gICAgICAgfSk7XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuLy8gICAgKi9cbi8vICAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuLy8gICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuLy8gICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbi8vICAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4vLyAgICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4vLyAgICAgICB9XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBVcGRhdGUgdXNlcidzIGJhc2lxIGNvbm5lY3Rpb25zIHdoZW4gdXNlciBjb25maXJtZWQgYmFzaXEgY29uc2VudFxuLy8gICAgKi9cbi8vICAgcHJpdmF0ZSBsaXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk6IHZvaWQge1xuLy8gICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTlNFTlRfVVBEQVRFRCkuc3Vic2NyaWJlKChpc0NvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuLy8gICAgICAgaWYgKCFpc0NvbmZpcm1lZCkge1xuLy8gICAgICAgICByZXR1cm47XG4vLyAgICAgICB9XG4vL1xuLy8gICAgICAgdGhpcy51cGRhdGVDb25uZWN0aW9ucygpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCk7XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vIH1cbiJdfQ==
@@ -8408,14 +8408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
8408
8408
  }]
8409
8409
  }] });
8410
8410
 
8411
- /**
8412
- * Basiq consent UI initial URL. Replace USER_ID and TOKEN by user data + handle action parameter
8413
- */
8414
- const BASIQ_CONSENT_URL = 'https://consent.basiq.io/home?userId=USER_ID&token=TOKEN&action=connect';
8415
- /**
8416
- * Event message name we listen to handle basiq UI result
8417
- */
8418
- const FINISH_BASIQ_EVENT = 'finish-basiq';
8411
+ // @TODO Basiq 1.0 remove if we will use basiq 2.0 or refactor if we stay with basiq 1.0
8419
8412
  /**
8420
8413
  * basiq is a middleman between bank and user
8421
8414
  * service is responsible for fetching bank related information
@@ -8433,23 +8426,6 @@ class BasiqService extends RestService {
8433
8426
  listenEvents() {
8434
8427
  this.listenToBankConnectionAdded();
8435
8428
  this.listenNotifications();
8436
- this.listenBasiqConcentUpdated();
8437
- }
8438
- /**
8439
- * Update user's basiq consents data on backend
8440
- */
8441
- confirmConsents() {
8442
- return this.http.put(`${this.environment.apiV2}/basiq/consents`, {}).pipe(map((isConfirmed) => {
8443
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_CONSENT_UPDATED, isConfirmed));
8444
- }));
8445
- }
8446
- /**
8447
- * Notify backend to update connections
8448
- */
8449
- updateConnections() {
8450
- return this.http.post(`${this.environment.apiV2}/basiq/connections`, {}).pipe(map((connections) => {
8451
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_CONNECTION_UPDATED, !!connections));
8452
- }));
8453
8429
  }
8454
8430
  /**
8455
8431
  * access token to use basiq connect ui iframe
@@ -8462,15 +8438,11 @@ class BasiqService extends RestService {
8462
8438
  return new BasiqToken(response['access_token'], new Date(now + response['expires_in'] * 1000));
8463
8439
  }))
8464
8440
  .subscribe((token) => {
8465
- this.token = token;
8466
8441
  this.tokenSubject.next(token);
8467
8442
  });
8468
8443
  }
8469
8444
  return this.tokenSubject.asObservable();
8470
8445
  }
8471
- /**
8472
- * Get list of user's bank conections
8473
- */
8474
8446
  getConnections() {
8475
8447
  return this.get().pipe(map((bankAccounts) => {
8476
8448
  // get all connections
@@ -8481,40 +8453,6 @@ class BasiqService extends RestService {
8481
8453
  return [...new Map(connections.map((connection) => [connection.id, connection])).values()];
8482
8454
  }));
8483
8455
  }
8484
- /**
8485
- * Listen response from basiq UI to handle result.
8486
- * @param isBasiqConsentExist flag from User.ClientDetails - true if user confirmed basiq consent
8487
- * @param callback function we run after basiq UI work is finished
8488
- */
8489
- listenBasiqResponse(isBasiqConsentExist, callback) {
8490
- window.addEventListener('message', (message) => {
8491
- if (message.data !== FINISH_BASIQ_EVENT) {
8492
- return;
8493
- }
8494
- // update user's basiq consent confirmation status for the first basiq ui run
8495
- if (isBasiqConsentExist) {
8496
- this.updateConnections().pipe(take(1)).subscribe();
8497
- }
8498
- else {
8499
- this.confirmConsents().pipe(take(1)).subscribe();
8500
- }
8501
- callback();
8502
- }, { once: true });
8503
- }
8504
- /**
8505
- * Get URL with filled params to run basiq UI iframe
8506
- */
8507
- generateBasiqConsentUrl(user) {
8508
- return this.getToken().pipe(map((token) => {
8509
- let url = BASIQ_CONSENT_URL;
8510
- url = url.replace('USER_ID', user.basiqId);
8511
- url = url.replace('TOKEN', token.value);
8512
- if (!user.clientDetails.basiqConsentExist) {
8513
- url = url.split('&action')[0];
8514
- }
8515
- return url;
8516
- }));
8517
- }
8518
8456
  /**
8519
8457
  * Listen to EventDispatcherService event related to added Bank connection
8520
8458
  */
@@ -8537,17 +8475,6 @@ class BasiqService extends RestService {
8537
8475
  }
8538
8476
  });
8539
8477
  }
8540
- /**
8541
- * Update user's basiq connections when user confirmed basiq consent
8542
- */
8543
- listenBasiqConcentUpdated() {
8544
- this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_CONSENT_UPDATED).subscribe((isConfirmed) => {
8545
- if (!isConfirmed) {
8546
- return;
8547
- }
8548
- this.updateConnections().pipe(take(1)).subscribe();
8549
- });
8550
- }
8551
8478
  }
8552
8479
  BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
8553
8480
  BasiqService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, providedIn: 'root' });