@xsolla/payment-client-core 0.1.14-test11 → 0.1.14-test13

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.
@@ -17,17 +17,53 @@ export class SavePaymentMethodStatusService {
17
17
  this.nextActionService = nextActionService;
18
18
  }
19
19
  async getStatus(params) {
20
+ console.log('getStatus', params);
20
21
  this.statusRequestService.setRequestParams(params);
21
- this.startWaitingStatusUpdates(params.invoice);
22
+ // todo: get account
23
+ const accountData = await this.getPaymentAccountData(params.invoice);
24
+ // this.startWaitingStatusUpdates(params.invoice);
22
25
  this.statusRequestService.request();
23
26
  const statusResponse = await firstValueFrom(this.statusRequestService.response$);
24
- if (!this.savePaymentMethodStatus) {
27
+ // const savingFailedOrCancel = statusResponse.status?.titleClass === TitleClass.cancel || statusResponse.status?.titleClass === TitleClass.cancelUser;
28
+ // const savingSuccessful = statusResponse.status?.titleClass === TitleClass.done && accountData?.new_account;
29
+ if (!accountData) {
30
+ this.startWaitingStatusUpdates(params.invoice);
25
31
  statusResponse.status.statusState = StatusEnum.processing;
26
32
  }
33
+ // if (!this.savingFailedOrCancel(statusResponse?.status) && !this.savingSuccessful(accountData, statusResponse?.status)) {
34
+ // // todo is proccessing
35
+ //
36
+ // this.startWaitingStatusUpdates(params.invoice);
37
+ // statusResponse.status.statusState = StatusEnum.processing;
38
+ // }
27
39
  statusResponse.status.isSavePaymentAccount = true;
28
40
  return statusResponse.status;
41
+ // if (!this.savePaymentMethodStatus) {
42
+ // statusResponse.status.statusState = StatusEnum.processing;
43
+ // }
44
+ // statusResponse.status.isSavePaymentAccount = true;
45
+ // return statusResponse.status;
46
+ }
47
+ savingFailedOrCancel(status) {
48
+ return status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
49
+ }
50
+ savingSuccessful(accountData, status) {
51
+ return !!(status?.titleClass === TitleClass.done && accountData?.new_account);
52
+ }
53
+ getPaymentAccountData(invoice) {
54
+ return this.savedPaymentAccountChangesService
55
+ .request(invoice);
56
+ // .then((accountChanges: SavedPaymentAccountChanges) => {
57
+ // if (accountChanges) {
58
+ // this.handleSavingStatus(status, accountChanges.new_account);
59
+ // }
60
+ // });
29
61
  }
30
62
  startWaitingStatusUpdates(invoice) {
63
+ if (this.listenStatusSubscription) {
64
+ this.listenStatusSubscription.unsubscribe();
65
+ this.listenStatusService.stopListening();
66
+ }
31
67
  this.listenStatusService.listen(invoice);
32
68
  this.listenStatusSubscription = this.listenStatusService.statusUpdated$
33
69
  .subscribe(({ statusResponse }) => {
@@ -44,20 +80,22 @@ export class SavePaymentMethodStatusService {
44
80
  .request(status.invoice)
45
81
  .then((accountChanges) => {
46
82
  if (accountChanges) {
47
- this.handleSavingStatus(status, accountChanges.new_account);
83
+ this.handleSavingStatus(status, accountChanges);
48
84
  }
49
85
  });
50
86
  }
51
87
  handleSavingStatus(status, account) {
52
- this.listenStatusService.stopListening();
53
- this.listenStatusSubscription.unsubscribe();
54
- const updatingIsProcessing = status?.titleClass !== TitleClass.cancel && status?.titleClass !== TitleClass.cancelUser && !account;
55
- if (updatingIsProcessing) {
88
+ // const savingFailedOrCancel = status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
89
+ //
90
+ // const savingSuccessful = status?.titleClass === TitleClass.done && account;
91
+ if (!this.savingFailedOrCancel(status) && !this.savingSuccessful(account, status)) {
56
92
  return;
57
93
  }
58
- const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
94
+ this.listenStatusService.stopListening();
95
+ this.listenStatusSubscription.unsubscribe();
96
+ // const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
59
97
  const isSavePaymentMethod = true;
60
- this.savePaymentMethodStatus = paymentAccountWasSaved ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
98
+ this.savePaymentMethodStatus = this.savingFailedOrCancel(status) ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
61
99
  this.nextActionService.emitFlowUpdates(new StatusUpdatedAction(status, isSavePaymentMethod, this.savePaymentMethodStatus));
62
100
  }
63
101
  }
@@ -69,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
69
107
  providedIn: 'root'
70
108
  }]
71
109
  }], ctorParameters: function () { return [{ type: i1.StatusRequestService }, { type: i2.ListenStatusService }, { type: i3.SavedPaymentAccountChangesService }, { type: i4.NextActionService }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1wYXltZW50LW1ldGhvZC1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUsvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFLNUUsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNtQixvQkFBMEMsRUFDMUMsbUJBQXdDLEVBQ3hDLGlDQUFvRSxFQUNwRSxpQkFBb0M7UUFIcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDcEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUVoRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFcEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQ3BDLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2pDLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDM0Q7UUFDRCxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNsRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQWU7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWM7YUFDcEUsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBRWhDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUN0RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE1BQWM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsS0FBSyxJQUFJLENBQUMsaUNBQWlDO2FBQ3hDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxDQUFDLGNBQTBDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDN0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsTUFBYyxFQUNkLE9BQW1DO1FBRW5DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLEVBQUUsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRWxJLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLEVBQUUsVUFBVSxLQUFLLFVBQVUsQ0FBQyxJQUFJLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQztRQUMxRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDO1FBRXpILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BDLElBQUksbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUNuRixDQUFDO0lBQ0osQ0FBQzs7MkhBMUVVLDhCQUE4QjsrSEFBOUIsOEJBQThCLGNBRjdCLE1BQU07MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4uL3N0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIHNraXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1VwZGF0ZWRBY3Rpb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zL3N0YXR1cy11cGRhdGVkL3N0YXR1cy11cGRhdGVkLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBMaXN0ZW5TdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vbGlzdGVuLXN0YXR1cy9saXN0ZW4tc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMgfSBmcm9tICcuL2FwaS9zYXZlZC1wYXltZW50LWFjY291bnQtY2hhbmdlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlZFBheW1lbnRBY2NvdW50IH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaXRsZUNsYXNzIH0gZnJvbSAnLi4vdGl0bGUtY2xhc3MuZW51bSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNFbnVtIH0gZnJvbSAnLi4vc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgU2F2ZVBheW1lbnRNZXRob2RTdGF0dXMgfSBmcm9tICcuL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2Uge1xuICBwcml2YXRlIHNhdmVQYXltZW50TWV0aG9kU3RhdHVzPzogU2F2ZVBheW1lbnRNZXRob2RTdGF0dXM7XG4gIHByaXZhdGUgbGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1JlcXVlc3RTZXJ2aWNlOiBTdGF0dXNSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlblN0YXR1c1NlcnZpY2U6IExpc3RlblN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2U6IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSkgeyB9XG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMocGFyYW1zOiBTdGF0dXNSZXF1ZXN0UGFyYW1zKTogUHJvbWlzZTxTdGF0dXM+IHtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2Uuc2V0UmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuXG4gICAgdGhpcy5zdGFydFdhaXRpbmdTdGF0dXNVcGRhdGVzKHBhcmFtcy5pbnZvaWNlKTtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVxdWVzdCgpO1xuXG4gICAgY29uc3Qgc3RhdHVzUmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVzcG9uc2UkXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cykge1xuICAgICAgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlID0gU3RhdHVzRW51bS5wcm9jZXNzaW5nO1xuICAgIH1cbiAgICBzdGF0dXNSZXNwb25zZS5zdGF0dXMuaXNTYXZlUGF5bWVudEFjY291bnQgPSB0cnVlO1xuICAgIHJldHVybiBzdGF0dXNSZXNwb25zZS5zdGF0dXM7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMoaW52b2ljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLmxpc3RlbihpbnZvaWNlKTtcblxuICAgIHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uID0gdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLnN0YXR1c1VwZGF0ZWQkXG4gICAgICAuc3Vic2NyaWJlKCh7IHN0YXR1c1Jlc3BvbnNlIH0pID0+IHtcblxuICAgICAgICBpZiAoc3RhdHVzUmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgdGhpcy5sb2FkTmV3UGF5bWVudEFjY291bnREYXRhKHN0YXR1c1Jlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWROZXdQYXltZW50QWNjb3VudERhdGEoc3RhdHVzOiBTdGF0dXMpOiB2b2lkIHtcbiAgICBpZiAoIXN0YXR1cy5pbnZvaWNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZvaWQgdGhpcy5zYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2VcbiAgICAgIC5yZXF1ZXN0KHN0YXR1cy5pbnZvaWNlKVxuICAgICAgLnRoZW4oKGFjY291bnRDaGFuZ2VzOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlcykgPT4ge1xuICAgICAgICBpZiAoYWNjb3VudENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVNhdmluZ1N0YXR1cyhzdGF0dXMsIGFjY291bnRDaGFuZ2VzLm5ld19hY2NvdW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNhdmluZ1N0YXR1cyhcbiAgICBzdGF0dXM6IFN0YXR1cyxcbiAgICBhY2NvdW50OiBTYXZlZFBheW1lbnRBY2NvdW50IHwgbnVsbFxuICApOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblN0YXR1c1NlcnZpY2Uuc3RvcExpc3RlbmluZygpO1xuICAgIHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICBjb25zdCB1cGRhdGluZ0lzUHJvY2Vzc2luZyA9IHN0YXR1cz8udGl0bGVDbGFzcyAhPT0gVGl0bGVDbGFzcy5jYW5jZWwgJiYgc3RhdHVzPy50aXRsZUNsYXNzICE9PSBUaXRsZUNsYXNzLmNhbmNlbFVzZXIgJiYgIWFjY291bnQ7XG5cbiAgICBpZiAodXBkYXRpbmdJc1Byb2Nlc3NpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXltZW50QWNjb3VudFdhc1NhdmVkID0gc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmRvbmUgJiYgYWNjb3VudCAhPT0gbnVsbDtcbiAgICBjb25zdCBpc1NhdmVQYXltZW50TWV0aG9kID0gdHJ1ZTtcblxuICAgIHRoaXMuc2F2ZVBheW1lbnRNZXRob2RTdGF0dXMgPSBwYXltZW50QWNjb3VudFdhc1NhdmVkID8gU2F2ZVBheW1lbnRNZXRob2RTdGF0dXMuc3VjY2VzcyA6IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzLmZhaWxlZDtcblxuICAgIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZW1pdEZsb3dVcGRhdGVzKFxuICAgICAgbmV3IFN0YXR1c1VwZGF0ZWRBY3Rpb24oc3RhdHVzLCBpc1NhdmVQYXltZW50TWV0aG9kLCB0aGlzLnNhdmVQYXltZW50TWV0aG9kU3RhdHVzKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1wYXltZW50LW1ldGhvZC1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUsvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFLNUUsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNtQixvQkFBMEMsRUFDMUMsbUJBQXdDLEVBQ3hDLGlDQUFvRSxFQUNwRSxpQkFBb0M7UUFIcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDcEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsb0JBQW9CO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxrREFBa0Q7UUFFbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXBDLE1BQU0sY0FBYyxHQUFHLE1BQU0sY0FBYyxDQUN6QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUNwQyxDQUFDO1FBSUYsdUpBQXVKO1FBRXZKLDhHQUE4RztRQUU5RyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsY0FBYyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztTQUMzRDtRQUVELDJIQUEySDtRQUMzSCwyQkFBMkI7UUFDM0IsRUFBRTtRQUNGLG9EQUFvRDtRQUNwRCwrREFBK0Q7UUFDL0QsSUFBSTtRQUNKLGNBQWMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2xELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUU3Qix1Q0FBdUM7UUFDdkMsK0RBQStEO1FBQy9ELElBQUk7UUFDSixxREFBcUQ7UUFDckQsZ0NBQWdDO0lBQ2xDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUFlO1FBQzFDLE9BQU8sTUFBTSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxJQUFJLE1BQU0sRUFBRSxVQUFVLEtBQUssVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUNsRyxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBdUMsRUFBRSxNQUFlO1FBQy9FLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBZTtRQUMzQyxPQUFPLElBQUksQ0FBQyxpQ0FBaUM7YUFDMUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pCLDBEQUEwRDtRQUMxRCwwQkFBMEI7UUFDMUIsbUVBQW1FO1FBQ25FLE1BQU07UUFDTixNQUFNO0lBQ1YsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQWU7UUFDL0MsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjO2FBQ3BFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRTtZQUVoQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDdEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxNQUFjO1FBRzlDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUNELEtBQUssSUFBSSxDQUFDLGlDQUFpQzthQUN4QyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUN2QixJQUFJLENBQUMsQ0FBQyxjQUEwQyxFQUFFLEVBQUU7WUFHbkQsSUFBSSxjQUFjLEVBQUU7Z0JBRWxCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDakQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsTUFBYyxFQUNkLE9BQW1DO1FBR25DLHlIQUF5SDtRQUN6SCxFQUFFO1FBQ0YsOEVBQThFO1FBRzlFLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2pGLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUMsNkZBQTZGO1FBQzdGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRWpDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDO1FBRXBJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BDLElBQUksbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUNuRixDQUFDO0lBQ0osQ0FBQzs7MkhBL0hVLDhCQUE4QjsrSEFBOUIsOEJBQThCLGNBRjdCLE1BQU07MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4uL3N0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1VwZGF0ZWRBY3Rpb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zL3N0YXR1cy11cGRhdGVkL3N0YXR1cy11cGRhdGVkLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBMaXN0ZW5TdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vbGlzdGVuLXN0YXR1cy9saXN0ZW4tc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMgfSBmcm9tICcuL2FwaS9zYXZlZC1wYXltZW50LWFjY291bnQtY2hhbmdlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlZFBheW1lbnRBY2NvdW50IH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaXRsZUNsYXNzIH0gZnJvbSAnLi4vdGl0bGUtY2xhc3MuZW51bSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNFbnVtIH0gZnJvbSAnLi4vc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgU2F2ZVBheW1lbnRNZXRob2RTdGF0dXMgfSBmcm9tICcuL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2Uge1xuICBwcml2YXRlIHNhdmVQYXltZW50TWV0aG9kU3RhdHVzPzogU2F2ZVBheW1lbnRNZXRob2RTdGF0dXM7XG4gIHByaXZhdGUgbGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1JlcXVlc3RTZXJ2aWNlOiBTdGF0dXNSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlblN0YXR1c1NlcnZpY2U6IExpc3RlblN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2U6IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSkgeyB9XG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMocGFyYW1zOiBTdGF0dXNSZXF1ZXN0UGFyYW1zKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBjb25zb2xlLmxvZygnZ2V0U3RhdHVzJywgcGFyYW1zKTtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2Uuc2V0UmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuXG4gICAgLy8gdG9kbzogZ2V0IGFjY291bnRcbiAgICBjb25zdCBhY2NvdW50RGF0YSA9IGF3YWl0IHRoaXMuZ2V0UGF5bWVudEFjY291bnREYXRhKHBhcmFtcy5pbnZvaWNlKTtcbiAgICAvLyB0aGlzLnN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMocGFyYW1zLmludm9pY2UpO1xuXG4gICAgdGhpcy5zdGF0dXNSZXF1ZXN0U2VydmljZS5yZXF1ZXN0KCk7XG5cbiAgICBjb25zdCBzdGF0dXNSZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5zdGF0dXNSZXF1ZXN0U2VydmljZS5yZXNwb25zZSRcbiAgICApO1xuXG5cblxuICAgIC8vIGNvbnN0IHNhdmluZ0ZhaWxlZE9yQ2FuY2VsID0gc3RhdHVzUmVzcG9uc2Uuc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmNhbmNlbCB8fCBzdGF0dXNSZXNwb25zZS5zdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuY2FuY2VsVXNlcjtcblxuICAgIC8vIGNvbnN0IHNhdmluZ1N1Y2Nlc3NmdWwgPSBzdGF0dXNSZXNwb25zZS5zdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuZG9uZSAmJiBhY2NvdW50RGF0YT8ubmV3X2FjY291bnQ7XG5cbiAgICBpZiAoIWFjY291bnREYXRhKSB7XG4gICAgICB0aGlzLnN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMocGFyYW1zLmludm9pY2UpO1xuICAgICAgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlID0gU3RhdHVzRW51bS5wcm9jZXNzaW5nO1xuICAgIH1cblxuICAgIC8vIGlmICghdGhpcy5zYXZpbmdGYWlsZWRPckNhbmNlbChzdGF0dXNSZXNwb25zZT8uc3RhdHVzKSAmJiAhdGhpcy5zYXZpbmdTdWNjZXNzZnVsKGFjY291bnREYXRhLCBzdGF0dXNSZXNwb25zZT8uc3RhdHVzKSkge1xuICAgIC8vICAgLy8gdG9kbyBpcyBwcm9jY2Vzc2luZ1xuICAgIC8vXG4gICAgLy8gICB0aGlzLnN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMocGFyYW1zLmludm9pY2UpO1xuICAgIC8vICAgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlID0gU3RhdHVzRW51bS5wcm9jZXNzaW5nO1xuICAgIC8vIH1cbiAgICBzdGF0dXNSZXNwb25zZS5zdGF0dXMuaXNTYXZlUGF5bWVudEFjY291bnQgPSB0cnVlO1xuICAgIHJldHVybiBzdGF0dXNSZXNwb25zZS5zdGF0dXM7XG5cbiAgICAvLyBpZiAoIXRoaXMuc2F2ZVBheW1lbnRNZXRob2RTdGF0dXMpIHtcbiAgICAvLyAgIHN0YXR1c1Jlc3BvbnNlLnN0YXR1cy5zdGF0dXNTdGF0ZSA9IFN0YXR1c0VudW0ucHJvY2Vzc2luZztcbiAgICAvLyB9XG4gICAgLy8gc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLmlzU2F2ZVBheW1lbnRBY2NvdW50ID0gdHJ1ZTtcbiAgICAvLyByZXR1cm4gc3RhdHVzUmVzcG9uc2Uuc3RhdHVzO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZpbmdGYWlsZWRPckNhbmNlbChzdGF0dXM/OiBTdGF0dXMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmNhbmNlbCB8fCBzdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuY2FuY2VsVXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgc2F2aW5nU3VjY2Vzc2Z1bChhY2NvdW50RGF0YTogU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMsIHN0YXR1cz86IFN0YXR1cyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShzdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuZG9uZSAmJiBhY2NvdW50RGF0YT8ubmV3X2FjY291bnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXltZW50QWNjb3VudERhdGEoaW52b2ljZTogbnVtYmVyKTogUHJvbWlzZTxTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlcz4ge1xuICAgIHJldHVybiB0aGlzLnNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZVxuICAgICAgLnJlcXVlc3QoaW52b2ljZSlcbiAgICAgIC8vIC50aGVuKChhY2NvdW50Q2hhbmdlczogU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMpID0+IHtcbiAgICAgIC8vICAgaWYgKGFjY291bnRDaGFuZ2VzKSB7XG4gICAgICAvLyAgICAgdGhpcy5oYW5kbGVTYXZpbmdTdGF0dXMoc3RhdHVzLCBhY2NvdW50Q2hhbmdlcy5uZXdfYWNjb3VudCk7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFdhaXRpbmdTdGF0dXNVcGRhdGVzKGludm9pY2U6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5saXN0ZW5TdGF0dXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5zdG9wTGlzdGVuaW5nKCk7XG4gICAgfVxuICAgIHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5saXN0ZW4oaW52b2ljZSk7XG5cbiAgICB0aGlzLmxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbiA9IHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5zdGF0dXNVcGRhdGVkJFxuICAgICAgLnN1YnNjcmliZSgoeyBzdGF0dXNSZXNwb25zZSB9KSA9PiB7XG5cbiAgICAgICAgaWYgKHN0YXR1c1Jlc3BvbnNlLnN0YXR1cykge1xuICAgICAgICAgIHRoaXMubG9hZE5ld1BheW1lbnRBY2NvdW50RGF0YShzdGF0dXNSZXNwb25zZS5zdGF0dXMpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTmV3UGF5bWVudEFjY291bnREYXRhKHN0YXR1czogU3RhdHVzKTogdm9pZCB7XG5cblxuICAgIGlmICghc3RhdHVzLmludm9pY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdm9pZCB0aGlzLnNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZVxuICAgICAgLnJlcXVlc3Qoc3RhdHVzLmludm9pY2UpXG4gICAgICAudGhlbigoYWNjb3VudENoYW5nZXM6IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzKSA9PiB7XG5cblxuICAgICAgICBpZiAoYWNjb3VudENoYW5nZXMpIHtcblxuICAgICAgICAgIHRoaXMuaGFuZGxlU2F2aW5nU3RhdHVzKHN0YXR1cywgYWNjb3VudENoYW5nZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2F2aW5nU3RhdHVzKFxuICAgIHN0YXR1czogU3RhdHVzLFxuICAgIGFjY291bnQ6IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzXG4gICk6IHZvaWQge1xuXG4gICAgLy8gY29uc3Qgc2F2aW5nRmFpbGVkT3JDYW5jZWwgPSBzdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuY2FuY2VsIHx8IHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5jYW5jZWxVc2VyO1xuICAgIC8vXG4gICAgLy8gY29uc3Qgc2F2aW5nU3VjY2Vzc2Z1bCA9IHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5kb25lICYmIGFjY291bnQ7XG5cblxuICAgIGlmICghdGhpcy5zYXZpbmdGYWlsZWRPckNhbmNlbChzdGF0dXMpICYmICF0aGlzLnNhdmluZ1N1Y2Nlc3NmdWwoYWNjb3VudCwgc3RhdHVzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxpc3RlblN0YXR1c1NlcnZpY2Uuc3RvcExpc3RlbmluZygpO1xuICAgIHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAvLyBjb25zdCBwYXltZW50QWNjb3VudFdhc1NhdmVkID0gc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmRvbmUgJiYgYWNjb3VudCAhPT0gbnVsbDtcbiAgICBjb25zdCBpc1NhdmVQYXltZW50TWV0aG9kID0gdHJ1ZTtcblxuICAgIHRoaXMuc2F2ZVBheW1lbnRNZXRob2RTdGF0dXMgPSB0aGlzLnNhdmluZ0ZhaWxlZE9yQ2FuY2VsKHN0YXR1cykgPyBTYXZlUGF5bWVudE1ldGhvZFN0YXR1cy5zdWNjZXNzIDogU2F2ZVBheW1lbnRNZXRob2RTdGF0dXMuZmFpbGVkO1xuXG4gICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICBuZXcgU3RhdHVzVXBkYXRlZEFjdGlvbihzdGF0dXMsIGlzU2F2ZVBheW1lbnRNZXRob2QsIHRoaXMuc2F2ZVBheW1lbnRNZXRob2RTdGF0dXMpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -4745,18 +4745,54 @@ class SavePaymentMethodStatusService {
4745
4745
  }
4746
4746
  getStatus(params) {
4747
4747
  return __awaiter(this, void 0, void 0, function* () {
4748
+ console.log('getStatus', params);
4748
4749
  this.statusRequestService.setRequestParams(params);
4749
- this.startWaitingStatusUpdates(params.invoice);
4750
+ // todo: get account
4751
+ const accountData = yield this.getPaymentAccountData(params.invoice);
4752
+ // this.startWaitingStatusUpdates(params.invoice);
4750
4753
  this.statusRequestService.request();
4751
4754
  const statusResponse = yield firstValueFrom(this.statusRequestService.response$);
4752
- if (!this.savePaymentMethodStatus) {
4755
+ // const savingFailedOrCancel = statusResponse.status?.titleClass === TitleClass.cancel || statusResponse.status?.titleClass === TitleClass.cancelUser;
4756
+ // const savingSuccessful = statusResponse.status?.titleClass === TitleClass.done && accountData?.new_account;
4757
+ if (!accountData) {
4758
+ this.startWaitingStatusUpdates(params.invoice);
4753
4759
  statusResponse.status.statusState = StatusEnum.processing;
4754
4760
  }
4761
+ // if (!this.savingFailedOrCancel(statusResponse?.status) && !this.savingSuccessful(accountData, statusResponse?.status)) {
4762
+ // // todo is proccessing
4763
+ //
4764
+ // this.startWaitingStatusUpdates(params.invoice);
4765
+ // statusResponse.status.statusState = StatusEnum.processing;
4766
+ // }
4755
4767
  statusResponse.status.isSavePaymentAccount = true;
4756
4768
  return statusResponse.status;
4769
+ // if (!this.savePaymentMethodStatus) {
4770
+ // statusResponse.status.statusState = StatusEnum.processing;
4771
+ // }
4772
+ // statusResponse.status.isSavePaymentAccount = true;
4773
+ // return statusResponse.status;
4757
4774
  });
4758
4775
  }
4776
+ savingFailedOrCancel(status) {
4777
+ return (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.cancel || (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.cancelUser;
4778
+ }
4779
+ savingSuccessful(accountData, status) {
4780
+ return !!((status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.done && (accountData === null || accountData === void 0 ? void 0 : accountData.new_account));
4781
+ }
4782
+ getPaymentAccountData(invoice) {
4783
+ return this.savedPaymentAccountChangesService
4784
+ .request(invoice);
4785
+ // .then((accountChanges: SavedPaymentAccountChanges) => {
4786
+ // if (accountChanges) {
4787
+ // this.handleSavingStatus(status, accountChanges.new_account);
4788
+ // }
4789
+ // });
4790
+ }
4759
4791
  startWaitingStatusUpdates(invoice) {
4792
+ if (this.listenStatusSubscription) {
4793
+ this.listenStatusSubscription.unsubscribe();
4794
+ this.listenStatusService.stopListening();
4795
+ }
4760
4796
  this.listenStatusService.listen(invoice);
4761
4797
  this.listenStatusSubscription = this.listenStatusService.statusUpdated$
4762
4798
  .subscribe(({ statusResponse }) => {
@@ -4773,20 +4809,22 @@ class SavePaymentMethodStatusService {
4773
4809
  .request(status.invoice)
4774
4810
  .then((accountChanges) => {
4775
4811
  if (accountChanges) {
4776
- this.handleSavingStatus(status, accountChanges.new_account);
4812
+ this.handleSavingStatus(status, accountChanges);
4777
4813
  }
4778
4814
  });
4779
4815
  }
4780
4816
  handleSavingStatus(status, account) {
4781
- this.listenStatusService.stopListening();
4782
- this.listenStatusSubscription.unsubscribe();
4783
- const updatingIsProcessing = (status === null || status === void 0 ? void 0 : status.titleClass) !== TitleClass.cancel && (status === null || status === void 0 ? void 0 : status.titleClass) !== TitleClass.cancelUser && !account;
4784
- if (updatingIsProcessing) {
4817
+ // const savingFailedOrCancel = status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
4818
+ //
4819
+ // const savingSuccessful = status?.titleClass === TitleClass.done && account;
4820
+ if (!this.savingFailedOrCancel(status) && !this.savingSuccessful(account, status)) {
4785
4821
  return;
4786
4822
  }
4787
- const paymentAccountWasSaved = (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.done && account !== null;
4823
+ this.listenStatusService.stopListening();
4824
+ this.listenStatusSubscription.unsubscribe();
4825
+ // const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
4788
4826
  const isSavePaymentMethod = true;
4789
- this.savePaymentMethodStatus = paymentAccountWasSaved ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
4827
+ this.savePaymentMethodStatus = this.savingFailedOrCancel(status) ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
4790
4828
  this.nextActionService.emitFlowUpdates(new StatusUpdatedAction(status, isSavePaymentMethod, this.savePaymentMethodStatus));
4791
4829
  }
4792
4830
  }