@progress-chef/platform-http-interceptor 0.0.33 → 0.0.35

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,5 +1,6 @@
1
+ import { HttpEventType } from '@angular/common/http';
1
2
  import { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';
2
- import { catchError, throwError } from 'rxjs';
3
+ import { catchError, tap, throwError } from 'rxjs';
3
4
  import { Injectable } from '@angular/core';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/router";
@@ -25,7 +26,55 @@ export class HttpAuthInterceptor {
25
26
  }
26
27
  this.authTokenSet.add(authToken);
27
28
  }
28
- return next.handle(authReq).pipe(catchError((error) => {
29
+ return next.handle(authReq).pipe(tap((event) => {
30
+ if (event.type === HttpEventType.Response) {
31
+ switch (event.status) {
32
+ case 202:
33
+ this.toastNotificationService.showToastNotification({
34
+ content: event?.body?.item?.message || `Request under processing`,
35
+ type: { style: 'info', icon: true },
36
+ closable: true,
37
+ action: {}
38
+ });
39
+ break;
40
+ case 207:
41
+ let message = {
42
+ content: 'Request was successful',
43
+ notificationStyle: 'success',
44
+ closable: false
45
+ };
46
+ try {
47
+ for (let item of event.body?.items) {
48
+ for (let err of item?.userRoleMapping) { /* Currently 207 is handled only for single use case, so it is hardcoded.If there are more use cases, then this should be updated accordingly. */
49
+ if (err.error !== null) {
50
+ message = {
51
+ content: 'User not allowed for this operation',
52
+ notificationStyle: 'error',
53
+ closable: true
54
+ };
55
+ }
56
+ }
57
+ }
58
+ this.toastNotificationService.showToastNotification({
59
+ content: message.content,
60
+ type: { style: message.notificationStyle, icon: true },
61
+ closable: message.closable,
62
+ action: {}
63
+ });
64
+ }
65
+ catch (e) {
66
+ console.log("Exception occurred at HttpAuthInterceptor 207 notification", e);
67
+ this.toastNotificationService.showToastNotification({
68
+ content: `The request has been accepted for processing, but has been partially completed.`,
69
+ type: { style: 'info', icon: true },
70
+ closable: true,
71
+ action: {}
72
+ });
73
+ }
74
+ break;
75
+ }
76
+ }
77
+ }), catchError((error) => {
29
78
  const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);
30
79
  switch (error.status) {
31
80
  case 401:
@@ -42,7 +91,8 @@ export class HttpAuthInterceptor {
42
91
  // call logout action
43
92
  if (!this.isSessionExpired) {
44
93
  this.toastNotificationService.showToastNotification({
45
- content: 'The session has ended.'
94
+ content: 'The session has ended.',
95
+ action: {}
46
96
  });
47
97
  this.isSessionExpired = true;
48
98
  }
@@ -61,14 +111,16 @@ export class HttpAuthInterceptor {
61
111
  LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
62
112
  if (!this.isSessionExpired) {
63
113
  this.toastNotificationService.showToastNotification({
64
- content: 'The session has ended.'
114
+ content: 'The session has ended.',
115
+ action: {}
65
116
  });
66
117
  this.isSessionExpired = true;
67
118
  }
68
119
  this.toastNotificationService.showToastNotification({
69
120
  content: `License expired, please contact your support representative`,
70
121
  type: { style: 'error', icon: true },
71
- closable: true
122
+ closable: true,
123
+ action: {}
72
124
  });
73
125
  this.router.navigate(['/login']);
74
126
  break;
@@ -78,7 +130,8 @@ export class HttpAuthInterceptor {
78
130
  this.toastNotificationService.showToastNotification({
79
131
  content: err?.reason || `Forbidden to access this resource. Access denied.`,
80
132
  type: { style: 'error', icon: true },
81
- closable: true
133
+ closable: true,
134
+ action: {}
82
135
  });
83
136
  }
84
137
  }
@@ -87,7 +140,29 @@ export class HttpAuthInterceptor {
87
140
  this.toastNotificationService.showToastNotification({
88
141
  content: `Forbidden to access this resource. Access denied.`,
89
142
  type: { style: 'error', icon: true },
90
- closable: true
143
+ closable: true,
144
+ action: {}
145
+ });
146
+ }
147
+ break;
148
+ case 405:
149
+ try {
150
+ for (let err of error.error.errors) {
151
+ this.toastNotificationService.showToastNotification({
152
+ content: err?.reason || `HTTP method not allowed.`,
153
+ type: { style: 'error', icon: true },
154
+ closable: true,
155
+ action: {}
156
+ });
157
+ }
158
+ }
159
+ catch (e) {
160
+ console.log("HttpAuthInterceptor: Exception occurred at 405", e);
161
+ this.toastNotificationService.showToastNotification({
162
+ content: `HTTP method not allowed.`,
163
+ type: { style: 'error', icon: true },
164
+ closable: true,
165
+ action: {}
91
166
  });
92
167
  }
93
168
  break;
@@ -95,7 +170,24 @@ export class HttpAuthInterceptor {
95
170
  this.toastNotificationService.showToastNotification({
96
171
  content: `Something went wrong. Please try again.`,
97
172
  type: { style: 'error', icon: true },
98
- closable: true
173
+ closable: true,
174
+ action: {}
175
+ });
176
+ break;
177
+ case 502:
178
+ this.toastNotificationService.showToastNotification({
179
+ content: `Bad Gateway. Please try again.`,
180
+ type: { style: 'error', icon: true },
181
+ closable: true,
182
+ action: {}
183
+ });
184
+ break;
185
+ case 503:
186
+ this.toastNotificationService.showToastNotification({
187
+ content: `Service Unavailable. Please try again.`,
188
+ type: { style: 'error', icon: true },
189
+ closable: true,
190
+ action: {}
99
191
  });
100
192
  break;
101
193
  case 0:
@@ -103,7 +195,8 @@ export class HttpAuthInterceptor {
103
195
  this.toastNotificationService.showToastNotification({
104
196
  content: `Unable to reach server. Please try again.`,
105
197
  type: { style: 'error', icon: true },
106
- closable: true
198
+ closable: true,
199
+ action: {}
107
200
  });
108
201
  break;
109
202
  }
@@ -119,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
119
212
  providedIn: 'root'
120
213
  }]
121
214
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ToastNotificationService }]; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0taHR0cC1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU0zQyxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQ1UsTUFBYyxFQUNMLHdCQUFrRDtRQUQzRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0wsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUpyRSxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDekIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBSXJCLENBQUM7SUFFTCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN4RCxJQUFJLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUN0QixVQUFVLEVBQUU7b0JBQ1YsYUFBYSxFQUFFLFVBQVUsU0FBUyxFQUFFO2lCQUNyQzthQUNGLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMs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b0JBQ04sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO3dCQUNsRCxPQUFPLEVBQUUsMkNBQTJDO3dCQUNwRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7d0JBQ3BDLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQztvQkFDSCxNQUFNO2FBRVQ7WUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrR0FoSFUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FIbEIsTUFBTTs7NEZBR1AsbUJBQW1CO2tCQUovQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb2FzdE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3MtY2hlZi9wbGF0Zm9ybS1zaGFyZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTdG9yYWdlS2V5cyB9IGZyb20gJ0Bwcm9ncmVzcy1jaGVmL3BsYXRmb3JtLXN0b3JhZ2Utc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5leHBvcnQgY2xhc3MgSHR0cEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIGF1dGhUb2tlblNldCA9IG5ldyBTZXQoKTtcbiAgaXNTZXNzaW9uRXhwaXJlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlOiBUb2FzdE5vdGlmaWNhdGlvblNlcnZpY2VcbiAgKSB7IH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICBsZXQgYXV0aFRva2VuID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLkFVVEhfVE9LRU4pO1xuICAgIGxldCBhdXRoUmVxID0gcmVxdWVzdDtcbiAgICBpZiAoYXV0aFRva2VuKSB7XG4gICAgICBhdXRoUmVxID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXV0aFRva2VufWBcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGlmICghdGhpcy5hdXRoVG9rZW5TZXQuaGFzKGF1dGhUb2tlbikpIHtcbiAgICAgICAgdGhpcy5pc1Nlc3Npb25FeHBpcmVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmF1dGhUb2tlblNldC5hZGQoYXV0aFRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcblxuICAgICAgICBjb25zdCBsb2dpblR5cGUgPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG5cbiAgICAgICAgc3dpdGNoIChlcnJvci5zdGF0dXMpIHtcbiAgICAgICAgICBjYXNlIDQwMTpcbiAgICAgICAgICAgIGlmIChsb2dpblR5cGUgPT09ICdzYW1sJyB8fCBsb2dpblR5cGUgPT09ICdvYXV0aCcpIHtcbiAgICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfTkFNRSk7XG4gICAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5JU19SRU1FTUJFUl9NRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9PUkdfQU5EX1JPTEVfU0VULCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9BVVRIRU5USUNBVEVELCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSURFTlRJVFlfVE9LRU4pO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfT1JHX0FORF9ST0xFX1RPS0VOKTtcbiAgICAgICAgICAgIC8vIGNhbGwgbG9nb3V0IGFjdGlvblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2Vzc2lvbkV4cGlyZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnVGhlIHNlc3Npb24gaGFzIGVuZGVkLidcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuaXNTZXNzaW9uRXhwaXJlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0MDI6XG4gICAgICAgICAgICBpZiAobG9naW5UeXBlID09PSAnc2FtbCcgfHwgbG9naW5UeXBlID09PSAnb2F1dGgnKSB7XG4gICAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX05BTUUpO1xuICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSVNfUkVNRU1CRVJfTUUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLklTX1VTRVJfT1JHX0FORF9ST0xFX1NFVCwgZmFsc2UpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLklTX1VTRVJfQVVUSEVOVElDQVRFRCwgZmFsc2UpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkFVVEhfVE9LRU4pO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkxPR0lOX1RZUEUpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLklERU5USVRZX1RPS0VOKTtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX09SR19BTkRfUk9MRV9UT0tFTik7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTZXNzaW9uRXhwaXJlZCkge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdUaGUgc2Vzc2lvbiBoYXMgZW5kZWQuJ1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5pc1Nlc3Npb25FeHBpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGBMaWNlbnNlIGV4cGlyZWQsIHBsZWFzZSBjb250YWN0IHlvdXIgc3VwcG9ydCByZXByZXNlbnRhdGl2ZWAsXG4gICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQwMzpcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBlcnJvci5lcnJvci5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyPy5yZWFzb24gfHwgYEZvcmJpZGRlbiB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZS4gQWNjZXNzIGRlbmllZC5gLFxuICAgICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkh0dHBBdXRoSW50ZXJjZXB0b3I6IEV4Y2VwdGlvbiBvY2N1cnJlZCBhdCA0MDNcIiwgZSk7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udGVudDogYEZvcmJpZGRlbiB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZS4gQWNjZXNzIGRlbmllZC5gLFxuICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1MDA6XG4gICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBjb250ZW50OiBgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uYCxcbiAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgY2FzZSA1MDQ6XG4gICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBjb250ZW50OiBgVW5hYmxlIHRvIHJlYWNoIHNlcnZlci4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0taHR0cC1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsYUFBYSxFQUlkLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNGLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTTNDLE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsWUFDVSxNQUFjLEVBQ0wsd0JBQWtEO1FBRDNELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDTCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBSnJFLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN6QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFJckIsQ0FBQztJQUVMLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELElBQUksU0FBUyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksU0FBUyxFQUFFO1lBQ2IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixhQUFhLEVBQUUsVUFBVSxTQUFTLEVBQUU7aUJBQ3JDO2FBQ0YsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbEM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsUUFBUSxFQUFFO2dCQUN6QyxRQUFRLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQ3BCLEtBQUssR0FBRzt3QkFDTixJQUFJLENBQUMsd0JBQXdCLENBQUMscUJBQXFCLENBQUM7NEJBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLElBQUksMEJBQTBCOzRCQUNqRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7NEJBQ25DLFFBQVEsRUFBRSxJQUFJOzRCQUNkLE1BQU0sRUFBRSxFQUFFO3lCQUNYLENBQUMsQ0FBQzt3QkFDSCxNQUFNO29CQUNSLEtBQUssR0FBRzt3QkFDTixJQUFJLE9BQU8sR0FBRzs0QkFDWixPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxpQkFBaUIsRUFBRSxTQUFTOzRCQUM1QixRQUFRLEVBQUUsS0FBSzt5QkFDaEIsQ0FBQTt3QkFDRCxJQUFJOzRCQUNGLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7Z0NBQ2xDLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLGtKQUFrSjtvQ0FDekwsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTt3Q0FDdEIsT0FBTyxHQUFHOzRDQUNSLE9BQU8sRUFBRSxxQ0FBcUM7NENBQzlDLGlCQUFpQixFQUFFLE9BQU87NENBQzFCLFFBQVEsRUFBRSxJQUFJO3lDQUNmLENBQUE7cUNBQ0Y7aUNBQ0Y7NkJBQ0Y7NEJBQ0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO2dDQUNsRCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0NBQ3hCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtnQ0FDdEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2dDQUMxQixNQUFNLEVBQUUsRUFBRTs2QkFDWCxDQUFDLENBQUM7eUJBQ0o7d0JBQUMsT0FBTyxDQUFDLEVBQUU7NEJBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0REFBNEQsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDN0UsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO2dDQUNsRCxPQUFPLEVBQUUsaUZBQWlGO2dDQUMxRixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7Z0NBQ25DLFFBQVEsRUFBRSxJQUFJO2dDQUNkLE1BQU0sRUFBRSxFQUFFOzZCQUNYLENBQUMsQ0FBQzt5QkFDSjt3QkFDRCxNQUFNO2lCQUNUO2FBQ0Y7UUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDdEMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUV0RSxRQUFRLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ3BCLEtBQUssR0FBRztvQkFDTixJQUFJLFNBQVMsS0FBSyxNQUFNLElBQUksU0FBUyxLQUFLLE9BQU8sRUFBRTt3QkFDakQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDdEQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztxQkFDNUQ7b0JBQ0QsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDekUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDdEUsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDdkQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDdkQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDM0QsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO29CQUNwRSxxQkFBcUI7b0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7d0JBQzFCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzs0QkFDbEQsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsTUFBTSxFQUFFLEVBQUU7eUJBQ1gsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7cUJBQzlCO29CQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDakMsTUFBTTtnQkFDUixLQUFLLEdBQUc7b0JBQ04sSUFBSSxTQUFTLEtBQUssTUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUU7d0JBQ2pELG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQ3RELG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7cUJBQzVEO29CQUNELG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3pFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3RFLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3ZELG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3ZELG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzNELG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQkFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDMUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDOzRCQUNsRCxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxNQUFNLEVBQUUsRUFBRTt5QkFDWCxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztxQkFDOUI7b0JBQ0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO3dCQUNsRCxPQUFPLEVBQUUsNkRBQTZEO3dCQUN0RSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7d0JBQ3BDLFFBQVEsRUFBRSxJQUFJO3dCQUNkLE1BQU0sRUFBRSxFQUFFO3FCQUNYLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQ2pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHO29CQUNOLElBQUk7d0JBQ0YsS0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTs0QkFDbEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO2dDQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxtREFBbUQ7Z0NBQzNFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtnQ0FDcEMsUUFBUSxFQUFFLElBQUk7Z0NBQ2QsTUFBTSxFQUFFLEVBQUU7NkJBQ1gsQ0FBQyxDQUFDO3lCQUNKO3FCQUNGO29CQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0RBQWdELEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ2pFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzs0QkFDbEQsT0FBTyxFQUFFLG1EQUFtRDs0QkFDNUQsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFOzRCQUNwQyxRQUFRLEVBQUUsSUFBSTs0QkFDZCxNQUFNLEVBQUUsRUFBRTt5QkFDWCxDQUFDLENBQUM7cUJBQ0o7b0JBQ0QsTUFBTTtnQkFDUixLQUFLLEdBQUc7b0JBQ04sSUFBSTt3QkFDRixLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFOzRCQUNsQyxJQUFJLENBQUMsd0JBQXdCLENBQUMscUJBQXFCLENBQUM7Z0NBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLDBCQUEwQjtnQ0FDbEQsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dDQUNwQyxRQUFRLEVBQUUsSUFBSTtnQ0FDZCxNQUFNLEVBQUUsRUFBRTs2QkFDWCxDQUFDLENBQUM7eUJBQ0o7cUJBQ0Y7b0JBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDakUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDOzRCQUNsRCxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7NEJBQ3BDLFFBQVEsRUFBRSxJQUFJOzRCQUNkLE1BQU0sRUFBRSxFQUFFO3lCQUNYLENBQUMsQ0FBQztxQkFDSjtvQkFDRCxNQUFNO2dCQUNSLEtBQUssR0FBRztvQkFDTixJQUFJLENBQUMsd0JBQXdCLENBQUMscUJBQXFCLENBQUM7d0JBQ2xELE9BQU8sRUFBRSx5Q0FBeUM7d0JBQ2xELElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTt3QkFDcEMsUUFBUSxFQUFFLElBQUk7d0JBQ2QsTUFBTSxFQUFFLEVBQUU7cUJBQ1gsQ0FBQyxDQUFDO29CQUNILE1BQU07Z0JBQ1IsS0FBSyxHQUFHO29CQUNOLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDbEQsT0FBTyxFQUFFLGdDQUFnQzt3QkFDekMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO3dCQUNwQyxRQUFRLEVBQUUsSUFBSTt3QkFDZCxNQUFNLEVBQUUsRUFBRTtxQkFDWCxDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFDUixLQUFLLEdBQUc7b0JBQ04sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO3dCQUNsRCxPQUFPLEVBQUUsd0NBQXdDO3dCQUNqRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7d0JBQ3BDLFFBQVEsRUFBRSxJQUFJO3dCQUNkLE1BQU0sRUFBRSxFQUFFO3FCQUNYLENBQUMsQ0FBQztvQkFDSCxNQUFNO2dCQUNSLEtBQUssQ0FBQyxDQUFDO2dCQUNQLEtBQUssR0FBRztvQkFDTixJQUFJLENBQUMsd0JBQXdCLENBQUMscUJBQXFCLENBQUM7d0JBQ2xELE9BQU8sRUFBRSwyQ0FBMkM7d0JBQ3BELElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTt3QkFDcEMsUUFBUSxFQUFFLElBQUk7d0JBQ2QsTUFBTSxFQUFFLEVBQUU7cUJBQ1gsQ0FBQyxDQUFDO29CQUNILE1BQU07YUFFVDtZQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXpNVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUhsQixNQUFNOzs0RkFHUCxtQkFBbUI7a0JBSi9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBFdmVudCxcbiAgSHR0cEV2ZW50VHlwZSxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvYXN0Tm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0Bwcm9ncmVzcy1jaGVmL3BsYXRmb3JtLXNoYXJlZC1jb21wb25lbnRzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFN0b3JhZ2VLZXlzIH0gZnJvbSAnQHByb2dyZXNzLWNoZWYvcGxhdGZvcm0tc3RvcmFnZS1zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuZXhwb3J0IGNsYXNzIEh0dHBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBhdXRoVG9rZW5TZXQgPSBuZXcgU2V0KCk7XG4gIGlzU2Vzc2lvbkV4cGlyZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0Tm90aWZpY2F0aW9uU2VydmljZTogVG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlXG4gICkgeyB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgbGV0IGF1dGhUb2tlbiA9IExvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTdG9yYWdlS2V5cy5BVVRIX1RPS0VOKTtcbiAgICBsZXQgYXV0aFJlcSA9IHJlcXVlc3Q7XG4gICAgaWYgKGF1dGhUb2tlbikge1xuICAgICAgYXV0aFJlcSA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2F1dGhUb2tlbn1gXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAoIXRoaXMuYXV0aFRva2VuU2V0LmhhcyhhdXRoVG9rZW4pKSB7XG4gICAgICAgIHRoaXMuaXNTZXNzaW9uRXhwaXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5hdXRoVG9rZW5TZXQuYWRkKGF1dGhUb2tlbik7XG4gICAgfVxuICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRoUmVxKS5waXBlKFxuICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgIHN3aXRjaCAoZXZlbnQuc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIDIwMjpcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBldmVudD8uYm9keT8uaXRlbT8ubWVzc2FnZSB8fCBgUmVxdWVzdCB1bmRlciBwcm9jZXNzaW5nYCxcbiAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnaW5mbycsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjA3OlxuICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnUmVxdWVzdCB3YXMgc3VjY2Vzc2Z1bCcsXG4gICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uU3R5bGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogZmFsc2VcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgZXZlbnQuYm9keT8uaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBpdGVtPy51c2VyUm9sZU1hcHBpbmcpIHsgLyogQ3VycmVudGx5IDIwNyBpcyBoYW5kbGVkIG9ubHkgZm9yIHNpbmdsZSB1c2UgY2FzZSwgc28gaXQgaXMgaGFyZGNvZGVkLklmIHRoZXJlIGFyZSBtb3JlIHVzZSBjYXNlcywgdGhlbiB0aGlzIHNob3VsZCBiZSB1cGRhdGVkIGFjY29yZGluZ2x5LiAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5lcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnVXNlciBub3QgYWxsb3dlZCBmb3IgdGhpcyBvcGVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uU3R5bGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgY29udGVudDogbWVzc2FnZS5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogbWVzc2FnZS5ub3RpZmljYXRpb25TdHlsZSwgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IG1lc3NhZ2UuY2xvc2FibGUsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkV4Y2VwdGlvbiBvY2N1cnJlZCBhdCBIdHRwQXV0aEludGVyY2VwdG9yIDIwNyBub3RpZmljYXRpb25cIiwgZSk7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGUgcmVxdWVzdCBoYXMgYmVlbiBhY2NlcHRlZCBmb3IgcHJvY2Vzc2luZywgYnV0IGhhcyBiZWVuIHBhcnRpYWxseSBjb21wbGV0ZWQuYCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdpbmZvJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCBsb2dpblR5cGUgPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG5cbiAgICAgICAgc3dpdGNoIChlcnJvci5zdGF0dXMpIHtcbiAgICAgICAgICBjYXNlIDQwMTpcbiAgICAgICAgICAgIGlmIChsb2dpblR5cGUgPT09ICdzYW1sJyB8fCBsb2dpblR5cGUgPT09ICdvYXV0aCcpIHtcbiAgICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfTkFNRSk7XG4gICAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5JU19SRU1FTUJFUl9NRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9PUkdfQU5EX1JPTEVfU0VULCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9BVVRIRU5USUNBVEVELCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSURFTlRJVFlfVE9LRU4pO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfT1JHX0FORF9ST0xFX1RPS0VOKTtcbiAgICAgICAgICAgIC8vIGNhbGwgbG9nb3V0IGFjdGlvblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2Vzc2lvbkV4cGlyZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnVGhlIHNlc3Npb24gaGFzIGVuZGVkLicsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5pc1Nlc3Npb25FeHBpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQwMjpcbiAgICAgICAgICAgIGlmIChsb2dpblR5cGUgPT09ICdzYW1sJyB8fCBsb2dpblR5cGUgPT09ICdvYXV0aCcpIHtcbiAgICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfTkFNRSk7XG4gICAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5JU19SRU1FTUJFUl9NRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9PUkdfQU5EX1JPTEVfU0VULCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9BVVRIRU5USUNBVEVELCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSURFTlRJVFlfVE9LRU4pO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfT1JHX0FORF9ST0xFX1RPS0VOKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Nlc3Npb25FeHBpcmVkKSB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1RoZSBzZXNzaW9uIGhhcyBlbmRlZC4nLFxuICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuaXNTZXNzaW9uRXhwaXJlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBjb250ZW50OiBgTGljZW5zZSBleHBpcmVkLCBwbGVhc2UgY29udGFjdCB5b3VyIHN1cHBvcnQgcmVwcmVzZW50YXRpdmVgLFxuICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0MDM6XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBmb3IgKGxldCBlcnIgb2YgZXJyb3IuZXJyb3IuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGVycj8ucmVhc29uIHx8IGBGb3JiaWRkZW4gdG8gYWNjZXNzIHRoaXMgcmVzb3VyY2UuIEFjY2VzcyBkZW5pZWQuYCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSHR0cEF1dGhJbnRlcmNlcHRvcjogRXhjZXB0aW9uIG9jY3VycmVkIGF0IDQwM1wiLCBlKTtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgRm9yYmlkZGVuIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlLiBBY2Nlc3MgZGVuaWVkLmAsXG4gICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQwNTpcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBlcnJvci5lcnJvci5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyPy5yZWFzb24gfHwgYEhUVFAgbWV0aG9kIG5vdCBhbGxvd2VkLmAsXG4gICAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkh0dHBBdXRoSW50ZXJjZXB0b3I6IEV4Y2VwdGlvbiBvY2N1cnJlZCBhdCA0MDVcIiwgZSk7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udGVudDogYEhUVFAgbWV0aG9kIG5vdCBhbGxvd2VkLmAsXG4gICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGBTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTAyOlxuICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgY29udGVudDogYEJhZCBHYXRld2F5LiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1MDM6XG4gICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBjb250ZW50OiBgU2VydmljZSBVbmF2YWlsYWJsZS4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBjYXNlIDUwNDpcbiAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGBVbmFibGUgdG8gcmVhY2ggc2VydmVyLiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcilcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
+ import { HttpEventType } from '@angular/common/http';
1
2
  import { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';
2
- import { catchError, throwError } from 'rxjs';
3
+ import { tap, catchError, throwError } from 'rxjs';
3
4
  import * as i0 from '@angular/core';
4
5
  import { Injectable } from '@angular/core';
5
6
  import * as i1 from '@angular/router';
@@ -26,7 +27,55 @@ class HttpAuthInterceptor {
26
27
  }
27
28
  this.authTokenSet.add(authToken);
28
29
  }
29
- return next.handle(authReq).pipe(catchError((error) => {
30
+ return next.handle(authReq).pipe(tap((event) => {
31
+ if (event.type === HttpEventType.Response) {
32
+ switch (event.status) {
33
+ case 202:
34
+ this.toastNotificationService.showToastNotification({
35
+ content: event?.body?.item?.message || `Request under processing`,
36
+ type: { style: 'info', icon: true },
37
+ closable: true,
38
+ action: {}
39
+ });
40
+ break;
41
+ case 207:
42
+ let message = {
43
+ content: 'Request was successful',
44
+ notificationStyle: 'success',
45
+ closable: false
46
+ };
47
+ try {
48
+ for (let item of event.body?.items) {
49
+ for (let err of item?.userRoleMapping) { /* Currently 207 is handled only for single use case, so it is hardcoded.If there are more use cases, then this should be updated accordingly. */
50
+ if (err.error !== null) {
51
+ message = {
52
+ content: 'User not allowed for this operation',
53
+ notificationStyle: 'error',
54
+ closable: true
55
+ };
56
+ }
57
+ }
58
+ }
59
+ this.toastNotificationService.showToastNotification({
60
+ content: message.content,
61
+ type: { style: message.notificationStyle, icon: true },
62
+ closable: message.closable,
63
+ action: {}
64
+ });
65
+ }
66
+ catch (e) {
67
+ console.log("Exception occurred at HttpAuthInterceptor 207 notification", e);
68
+ this.toastNotificationService.showToastNotification({
69
+ content: `The request has been accepted for processing, but has been partially completed.`,
70
+ type: { style: 'info', icon: true },
71
+ closable: true,
72
+ action: {}
73
+ });
74
+ }
75
+ break;
76
+ }
77
+ }
78
+ }), catchError((error) => {
30
79
  const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);
31
80
  switch (error.status) {
32
81
  case 401:
@@ -43,7 +92,8 @@ class HttpAuthInterceptor {
43
92
  // call logout action
44
93
  if (!this.isSessionExpired) {
45
94
  this.toastNotificationService.showToastNotification({
46
- content: 'The session has ended.'
95
+ content: 'The session has ended.',
96
+ action: {}
47
97
  });
48
98
  this.isSessionExpired = true;
49
99
  }
@@ -62,14 +112,16 @@ class HttpAuthInterceptor {
62
112
  LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
63
113
  if (!this.isSessionExpired) {
64
114
  this.toastNotificationService.showToastNotification({
65
- content: 'The session has ended.'
115
+ content: 'The session has ended.',
116
+ action: {}
66
117
  });
67
118
  this.isSessionExpired = true;
68
119
  }
69
120
  this.toastNotificationService.showToastNotification({
70
121
  content: `License expired, please contact your support representative`,
71
122
  type: { style: 'error', icon: true },
72
- closable: true
123
+ closable: true,
124
+ action: {}
73
125
  });
74
126
  this.router.navigate(['/login']);
75
127
  break;
@@ -79,7 +131,8 @@ class HttpAuthInterceptor {
79
131
  this.toastNotificationService.showToastNotification({
80
132
  content: err?.reason || `Forbidden to access this resource. Access denied.`,
81
133
  type: { style: 'error', icon: true },
82
- closable: true
134
+ closable: true,
135
+ action: {}
83
136
  });
84
137
  }
85
138
  }
@@ -88,7 +141,29 @@ class HttpAuthInterceptor {
88
141
  this.toastNotificationService.showToastNotification({
89
142
  content: `Forbidden to access this resource. Access denied.`,
90
143
  type: { style: 'error', icon: true },
91
- closable: true
144
+ closable: true,
145
+ action: {}
146
+ });
147
+ }
148
+ break;
149
+ case 405:
150
+ try {
151
+ for (let err of error.error.errors) {
152
+ this.toastNotificationService.showToastNotification({
153
+ content: err?.reason || `HTTP method not allowed.`,
154
+ type: { style: 'error', icon: true },
155
+ closable: true,
156
+ action: {}
157
+ });
158
+ }
159
+ }
160
+ catch (e) {
161
+ console.log("HttpAuthInterceptor: Exception occurred at 405", e);
162
+ this.toastNotificationService.showToastNotification({
163
+ content: `HTTP method not allowed.`,
164
+ type: { style: 'error', icon: true },
165
+ closable: true,
166
+ action: {}
92
167
  });
93
168
  }
94
169
  break;
@@ -96,7 +171,24 @@ class HttpAuthInterceptor {
96
171
  this.toastNotificationService.showToastNotification({
97
172
  content: `Something went wrong. Please try again.`,
98
173
  type: { style: 'error', icon: true },
99
- closable: true
174
+ closable: true,
175
+ action: {}
176
+ });
177
+ break;
178
+ case 502:
179
+ this.toastNotificationService.showToastNotification({
180
+ content: `Bad Gateway. Please try again.`,
181
+ type: { style: 'error', icon: true },
182
+ closable: true,
183
+ action: {}
184
+ });
185
+ break;
186
+ case 503:
187
+ this.toastNotificationService.showToastNotification({
188
+ content: `Service Unavailable. Please try again.`,
189
+ type: { style: 'error', icon: true },
190
+ closable: true,
191
+ action: {}
100
192
  });
101
193
  break;
102
194
  case 0:
@@ -104,7 +196,8 @@ class HttpAuthInterceptor {
104
196
  this.toastNotificationService.showToastNotification({
105
197
  content: `Unable to reach server. Please try again.`,
106
198
  type: { style: 'error', icon: true },
107
- closable: true
199
+ closable: true,
200
+ action: {}
108
201
  });
109
202
  break;
110
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress-chef-platform-http-interceptor.mjs","sources":["../../../projects/platform-http-interceptor/src/lib/http-auth.interceptor.ts","../../../projects/platform-http-interceptor/src/public-api.ts","../../../projects/platform-http-interceptor/src/progress-chef-platform-http-interceptor.ts"],"sourcesContent":["import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { ToastNotificationService } from '@progress-chef/platform-shared-components';\nimport { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class HttpAuthInterceptor implements HttpInterceptor {\n authTokenSet = new Set();\n isSessionExpired = false;\n constructor(\n private router: Router,\n private readonly toastNotificationService: ToastNotificationService\n ) { }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n let authToken = LocalStorageService.getItem(StorageKeys.AUTH_TOKEN);\n let authReq = request;\n if (authToken) {\n authReq = request.clone({\n setHeaders: {\n Authorization: `Bearer ${authToken}`\n }\n })\n if (!this.authTokenSet.has(authToken)) {\n this.isSessionExpired = false;\n }\n this.authTokenSet.add(authToken);\n }\n return next.handle(authReq).pipe(\n catchError((error: HttpErrorResponse) => {\n\n const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);\n\n switch (error.status) {\n case 401:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n // call logout action\n if (!this.isSessionExpired) {\n this.toastNotificationService.showToastNotification({\n content: 'The session has ended.'\n });\n this.isSessionExpired = true;\n }\n\n this.router.navigate(['/login']);\n break;\n case 402:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n if (!this.isSessionExpired) {\n this.toastNotificationService.showToastNotification({\n content: 'The session has ended.'\n });\n this.isSessionExpired = true;\n }\n this.toastNotificationService.showToastNotification({\n content: `License expired, please contact your support representative`,\n type: { style: 'error', icon: true },\n closable: true\n });\n this.router.navigate(['/login']);\n break;\n case 403:\n try {\n for (let err of error.error.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.reason || `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 403\", e);\n this.toastNotificationService.showToastNotification({\n content: `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true\n });\n }\n\n break;\n case 500:\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true\n });\n break;\n case 0:\n case 504:\n this.toastNotificationService.showToastNotification({\n content: `Unable to reach server. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true\n });\n break;\n\n }\n return throwError(() => error)\n })\n );\n }\n}\n","/*\n * Public API Surface of platform-http-interceptor\n */\n\nexport * from './lib/http-auth.interceptor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress-chef-platform-http-interceptor.mjs","sources":["../../../projects/platform-http-interceptor/src/lib/http-auth.interceptor.ts","../../../projects/platform-http-interceptor/src/public-api.ts","../../../projects/platform-http-interceptor/src/progress-chef-platform-http-interceptor.ts"],"sourcesContent":["import {\n HttpErrorResponse,\n HttpEvent,\n HttpEventType,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { ToastNotificationService } from '@progress-chef/platform-shared-components';\nimport { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';\nimport { Observable, catchError, tap, throwError } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class HttpAuthInterceptor implements HttpInterceptor {\n authTokenSet = new Set();\n isSessionExpired = false;\n constructor(\n private router: Router,\n private readonly toastNotificationService: ToastNotificationService\n ) { }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n let authToken = LocalStorageService.getItem(StorageKeys.AUTH_TOKEN);\n let authReq = request;\n if (authToken) {\n authReq = request.clone({\n setHeaders: {\n Authorization: `Bearer ${authToken}`\n }\n })\n if (!this.authTokenSet.has(authToken)) {\n this.isSessionExpired = false;\n }\n this.authTokenSet.add(authToken);\n }\n return next.handle(authReq).pipe(\n tap((event) => {\n if (event.type === HttpEventType.Response) {\n switch (event.status) {\n case 202:\n this.toastNotificationService.showToastNotification({\n content: event?.body?.item?.message || `Request under processing`,\n type: { style: 'info', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 207:\n let message = {\n content: 'Request was successful',\n notificationStyle: 'success',\n closable: false\n }\n try {\n for (let item of event.body?.items) {\n for (let err of item?.userRoleMapping) { /* Currently 207 is handled only for single use case, so it is hardcoded.If there are more use cases, then this should be updated accordingly. */\n if (err.error !== null) {\n message = {\n content: 'User not allowed for this operation',\n notificationStyle: 'error',\n closable: true\n }\n }\n }\n }\n this.toastNotificationService.showToastNotification({\n content: message.content,\n type: { style: message.notificationStyle, icon: true },\n closable: message.closable,\n action: {}\n });\n } catch (e) {\n console.log(\"Exception occurred at HttpAuthInterceptor 207 notification\", e);\n this.toastNotificationService.showToastNotification({\n content: `The request has been accepted for processing, but has been partially completed.`,\n type: { style: 'info', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n }\n }\n }),\n catchError((error: HttpErrorResponse) => {\n const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);\n\n switch (error.status) {\n case 401:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n // call logout action\n if (!this.isSessionExpired) {\n this.toastNotificationService.showToastNotification({\n content: 'The session has ended.',\n action: {}\n });\n this.isSessionExpired = true;\n }\n\n this.router.navigate(['/login']);\n break;\n case 402:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n if (!this.isSessionExpired) {\n this.toastNotificationService.showToastNotification({\n content: 'The session has ended.',\n action: {}\n });\n this.isSessionExpired = true;\n }\n this.toastNotificationService.showToastNotification({\n content: `License expired, please contact your support representative`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n this.router.navigate(['/login']);\n break;\n case 403:\n try {\n for (let err of error.error.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.reason || `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 403\", e);\n this.toastNotificationService.showToastNotification({\n content: `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 405:\n try {\n for (let err of error.error.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.reason || `HTTP method not allowed.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 405\", e);\n this.toastNotificationService.showToastNotification({\n content: `HTTP method not allowed.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 500:\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 502:\n this.toastNotificationService.showToastNotification({\n content: `Bad Gateway. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 503:\n this.toastNotificationService.showToastNotification({\n content: `Service Unavailable. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 0:\n case 504:\n this.toastNotificationService.showToastNotification({\n content: `Unable to reach server. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n\n }\n return throwError(() => error)\n })\n );\n }\n}\n","/*\n * Public API Surface of platform-http-interceptor\n */\n\nexport * from './lib/http-auth.interceptor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress-chef/platform-http-interceptor",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.2.0",
6
6
  "@angular/core": "^16.2.0"