@progress-chef/platform-http-interceptor 0.0.13 → 0.0.15

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.
@@ -72,8 +72,8 @@ export class HttpAuthInterceptor {
72
72
  return throwError(() => error);
73
73
  }));
74
74
  }
75
- manageRefreshTokenExpireTime() {
76
- const newExpireTime = this.getExpireAtTime();
75
+ async manageRefreshTokenExpireTime() {
76
+ const newExpireTime = await this.getExpireAtTime();
77
77
  const { halfwayTimeString } = this.handleCalulateHalfTime(newExpireTime);
78
78
  LocalStorageService.setItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME, halfwayTimeString);
79
79
  }
@@ -95,11 +95,10 @@ export class HttpAuthInterceptor {
95
95
  throw new Error('The backend or server base URL is missing in Local Storage');
96
96
  this.refreshTokenService.refreshToken({ platformServiceApiBaseUrls: baseUrl });
97
97
  }
98
- getExpireAtTime() {
99
- let isIdentityToken;
100
- setTimeout(() => {
101
- isIdentityToken = LocalStorageService.getItem(StorageKeys.IDENTITY_TOKEN);
102
- }, 2000);
98
+ async getExpireAtTime() {
99
+ await this.delay(2000);
100
+ let isIdentityToken = LocalStorageService.getItem(StorageKeys.IDENTITY_TOKEN);
101
+ console.log('======= check is token availabe --------', isIdentityToken);
103
102
  if (!isIdentityToken)
104
103
  throw new Error('identity token is missing in the local storage');
105
104
  const { expireAt } = isIdentityToken;
@@ -166,6 +165,9 @@ export class HttpAuthInterceptor {
166
165
  const { isHalfTimeGreater, halfwayTimeString } = this.handleCalulateHalfTime(getRefreshTokenHalfTime, true);
167
166
  return { isHalfTimeGreater, halfwayTimeString };
168
167
  }
168
+ delay(ms) {
169
+ return new Promise(resolve => setTimeout(resolve, ms));
170
+ }
169
171
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: i1.Router }, { token: i2.ToastNotificationService }, { token: i3.RefreshTokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
170
172
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, providedIn: 'root' }); }
171
173
  }
@@ -175,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
175
177
  providedIn: 'root'
176
178
  }]
177
179
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ToastNotificationService }, { type: i3.RefreshTokenService }]; } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0taHR0cC1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLE1BQWMsRUFDZCx3QkFBa0QsRUFDbEQsbUJBQXdDO1FBRnhDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFMbEQsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQUtyQixDQUFDO0lBRUwsMkVBQTJFO0lBQzNFLCtFQUErRTtJQUMvRSxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUV4RCxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUN0RyxJQUFJLHVCQUF1QixFQUFFO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsVUFBVSxFQUFFO29CQUNWLGFBQWEsRUFBRSxVQUFVLFNBQVMsRUFBRTtpQkFDckM7YUFDRixDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7YUFDL0I7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNsQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlCLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUN4QixNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLFNBQVMsS0FBSyxNQUFNLElBQUksU0FBUyxLQUFLLE9BQU8sRUFBRTtvQkFDakQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDdEQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDNUQ7Z0JBQ0QsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDekUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEUsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDM0QsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUNwRSxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQzFCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDbEQsT0FBTyxFQUFFLHdCQUF3QjtxQkFDbEMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7aUJBQzlCO2dCQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTthQUNqQztZQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDbEQsT0FBTyxFQUFFLDJDQUEyQztvQkFDcEQsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO29CQUNwQyxRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDLENBQUE7YUFDSDtZQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDbEQsT0FBTyxFQUFFLHlDQUF5QztvQkFDbEQsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO29CQUNwQyxRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDLENBQUE7YUFDSDtZQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUM1QyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDeEUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0lBQzNGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDNUQsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDcEMsK0NBQStDO1lBQy9DLDJFQUEyRTtZQUMzRSxpRkFBaUY7WUFDakYsNEZBQTRGO1NBQzdGO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDViwrRkFBK0Y7UUFDL0YsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxlQUFlLENBQUM7UUFDcEIsVUFBVSxDQUFDLEdBQUUsRUFBRTtZQUNiLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVSLElBQUksQ0FBQyxlQUFlO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxLQUFLLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVTtRQUNqRixPQUFPLDRCQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUM3QyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0QsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxPQUFlO1FBQzNELE9BQU8sS0FBSyxHQUFHLElBQUksR0FBRyxPQUFPLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUMvQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBZTtRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEQsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNsSSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsVUFBa0IsRUFBRSxhQUFzQixLQUFLO1FBQ3BFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRS9ILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRTlGLElBQUksb0JBQTRCLENBQUM7UUFDakMsSUFBSSxVQUFVLEVBQUU7WUFDZCxvQkFBb0IsR0FBRyxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztTQUNuRTthQUFNO1lBQ0wsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDckY7UUFFRCxJQUFJLG9CQUFvQixHQUFHLENBQUMsRUFBRTtZQUM1QixvQkFBb0IsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQ25DO2FBQU0sSUFBSSxvQkFBb0IsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFO1lBQzVDLG9CQUFvQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7U0FDbkM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXpFLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakUsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1NBQzNCO2FBQU0sSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4RSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDMUI7YUFBTTtZQUNMLGlCQUFpQixHQUFHLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztTQUNwRDtRQUVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsaUhBQWlIO1FBQ2pILE1BQU0sdUJBQXVCLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1FBQ3RHLElBQUksQ0FBQyx1QkFBdUI7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0lBQ2xELENBQUM7K0dBL0tVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBSGxCLE1BQU07OzRGQUdQLG1CQUFtQjtrQkFKL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEV2ZW50LFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwUmVxdWVzdFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG4vLyBpbXBvcnQgeyBSZWZyZXNoVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlzdC9wbGF0Zm9ybS1yZWZyZXNoLXRva2VuLXNlcnZpY2UvaW5kZXgnO1xuaW1wb3J0IHsgUmVmcmVzaFRva2VuU2VydmljZSB9IGZyb20gJ0Bwcm9ncmVzcy1jaGVmL3BsYXRmb3JtLXJlZnJlc2gtdG9rZW4tc2VydmljZSdcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb2FzdE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3MtY2hlZi9wbGF0Zm9ybS1zaGFyZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTdG9yYWdlS2V5cyB9IGZyb20gJ0Bwcm9ncmVzcy1jaGVmL3BsYXRmb3JtLXN0b3JhZ2Utc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5leHBvcnQgY2xhc3MgSHR0cEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIGF1dGhUb2tlblNldCA9IG5ldyBTZXQoKTtcbiAgaXNTZXNzaW9uRXhwaXJlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgdG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlOiBUb2FzdE5vdGlmaWNhdGlvblNlcnZpY2UsIFxuICAgIHByaXZhdGUgcmVmcmVzaFRva2VuU2VydmljZTogUmVmcmVzaFRva2VuU2VydmljZSxcbiAgKSB7IH1cblxuICAvLyBwcml2YXRlIGN1cnJlbnRCYXNlVXJsRnJvbUxvY2FsU3RvcmFnZTogc3RyaW5nID0gJ2N1cnJlbnRTZXJ2ZXJCYXNlVXJsJztcbiAgLy8gcHJpdmF0ZSByZWZyZXNoVG9rZW5FeHBpcmVUaW1lU3RvcmFnZUtleTogc3RyaW5nID0gJ3JlZnJlc2hUb2tlbkV4cGlyZVRpbWUnO1xuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcblxuICAgIGNvbnN0IGdldFJlZnJlc2hUb2tlbkhhbGZUaW1lID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLlJFRlJFU0hfVE9LRU5fSEFMRl9FWFBSRV9USU1FKVxuICAgIGlmIChnZXRSZWZyZXNoVG9rZW5IYWxmVGltZSkge1xuICAgICAgdGhpcy5tYW5hZ2VUb2tlblJlZnJlc2goKTtcbiAgICB9XG5cbiAgICBsZXQgYXV0aFRva2VuID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLkFVVEhfVE9LRU4pO1xuICAgIGxldCBhdXRoUmVxID0gcmVxdWVzdDtcbiAgICBpZiAoYXV0aFRva2VuKSB7XG4gICAgICBhdXRoUmVxID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXV0aFRva2VufWBcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGlmICghdGhpcy5hdXRoVG9rZW5TZXQuaGFzKGF1dGhUb2tlbikpIHtcbiAgICAgICAgdGhpcy5pc1Nlc3Npb25FeHBpcmVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmF1dGhUb2tlblNldC5hZGQoYXV0aFRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgY29uc3QgbG9naW5UeXBlID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLkxPR0lOX1RZUEUpO1xuICAgICAgICAgIGlmIChsb2dpblR5cGUgPT09ICdzYW1sJyB8fCBsb2dpblR5cGUgPT09ICdvYXV0aCcpIHtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX05BTUUpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLklTX1JFTUVNQkVSX01FKTsgXG4gICAgICAgICAgfVxuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShTdG9yYWdlS2V5cy5JU19VU0VSX09SR19BTkRfUk9MRV9TRVQsIGZhbHNlKTtcbiAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9BVVRIRU5USUNBVEVELCBmYWxzZSk7XG4gICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkFVVEhfVE9LRU4pO1xuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5MT0dJTl9UWVBFKTtcbiAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSURFTlRJVFlfVE9LRU4pO1xuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX09SR19BTkRfUk9MRV9UT0tFTik7XG4gICAgICAgICAgLy8gY2FsbCBsb2dvdXQgYWN0aW9uXG4gICAgICAgICAgaWYgKCF0aGlzLmlzU2Vzc2lvbkV4cGlyZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICdUaGUgc2Vzc2lvbiBoYXMgZW5kZWQuJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmlzU2Vzc2lvbkV4cGlyZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDAgfHwgZXJyb3Iuc3RhdHVzID09PSA1MDQpIHtcbiAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgY29udGVudDogYFVuYWJsZSB0byByZWFjaCBzZXJ2ZXIuIFBsZWFzZSB0cnkgYWdhaW4uYCxcbiAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcbiAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgY29udGVudDogYFNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtYW5hZ2VSZWZyZXNoVG9rZW5FeHBpcmVUaW1lKCkge1xuICAgIGNvbnN0IG5ld0V4cGlyZVRpbWUgPSB0aGlzLmdldEV4cGlyZUF0VGltZSgpXG4gICAgY29uc3QgeyBoYWxmd2F5VGltZVN0cmluZyB9ID0gdGhpcy5oYW5kbGVDYWx1bGF0ZUhhbGZUaW1lKG5ld0V4cGlyZVRpbWUpXG4gICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLlJFRlJFU0hfVE9LRU5fSEFMRl9FWFBSRV9USU1FLCBoYWxmd2F5VGltZVN0cmluZylcbiAgfVxuXG4gIG1hbmFnZVRva2VuUmVmcmVzaCgpIHtcbiAgICBjb25zdCB7IGlzSGFsZlRpbWVHcmVhdGVyIH0gPSB0aGlzLmNoZWNrSGFsZlRpbWVJc0dyZWF0ZXIoKTtcbiAgICBpZiAoaXNIYWxmVGltZUdyZWF0ZXIpIHtcbiAgICAgIHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICB0aGlzLm1hbmFnZVJlZnJlc2hUb2tlbkV4cGlyZVRpbWUoKTtcbiAgICAgIC8vIGNvbnN0IG5ld0V4cGlyZVRpbWUgPSB0aGlzLmdldEV4cGlyZUF0VGltZSgpXG4gICAgICAvLyBjb25zdCB7IGhhbGZ3YXlUaW1lU3RyaW5nIH0gPSB0aGlzLmhhbmRsZUNhbHVsYXRlSGFsZlRpbWUobmV3RXhwaXJlVGltZSlcbiAgICAgIC8vIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMucmVmcmVzaFRva2VuRXhwaXJlVGltZVN0b3JhZ2VLZXksIGhhbGZ3YXlUaW1lU3RyaW5nKVxuICAgICAgLy8gTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLlJFRlJFU0hfVE9LRU5fSEFMRl9FWFBSRV9USU1FLCBoYWxmd2F5VGltZVN0cmluZylcbiAgICB9XG4gIH1cblxuICByZWZyZXNoVG9rZW4oKSB7XG4gICAgLy8gY29uc3QgYmFzZVVybDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5jdXJyZW50QmFzZVVybEZyb21Mb2NhbFN0b3JhZ2UpIGFzIHN0cmluZztcbiAgICBjb25zdCBiYXNlVXJsID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLkNVUlJFTlRfU0VSVkVSX0JBU0VfVVJMKTtcbiAgICBpZiAoIWJhc2VVcmwpIHRocm93IG5ldyBFcnJvcignVGhlIGJhY2tlbmQgb3Igc2VydmVyIGJhc2UgVVJMIGlzIG1pc3NpbmcgaW4gTG9jYWwgU3RvcmFnZScpO1xuICAgIHRoaXMucmVmcmVzaFRva2VuU2VydmljZS5yZWZyZXNoVG9rZW4oeyBwbGF0Zm9ybVNlcnZpY2VBcGlCYXNlVXJsczogYmFzZVVybCB9KTtcbiAgfVxuXG4gIGdldEV4cGlyZUF0VGltZSgpIHtcbiAgICBsZXQgaXNJZGVudGl0eVRva2VuO1xuICAgIHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICBpc0lkZW50aXR5VG9rZW4gPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuSURFTlRJVFlfVE9LRU4pO1xuICAgIH0sIDIwMDApXG4gICAgICBcbiAgICBpZiAoIWlzSWRlbnRpdHlUb2tlbikgdGhyb3cgbmV3IEVycm9yKCdpZGVudGl0eSB0b2tlbiBpcyBtaXNzaW5nIGluIHRoZSBsb2NhbCBzdG9yYWdlJyk7XG4gICAgY29uc3QgeyBleHBpcmVBdCB9ID0gaXNJZGVudGl0eVRva2VuO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShleHBpcmVBdCAqIDEwMDApO1xuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3QgbGF0ZXN0UmVmcmVzaFRva2VuRXhwaXJlVGltZSA9IGAke2hvdXJzfToke21pbnV0ZXN9OiR7c2Vjb25kc31gOyAvLzEwOjAwOjAwXG4gICAgcmV0dXJuIGxhdGVzdFJlZnJlc2hUb2tlbkV4cGlyZVRpbWU7XG4gIH1cblxuICBnZXRDdXJyZW50VGltZSgpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7IHRpbWVab25lOiAnQXNpYS9Lb2xrYXRhJyB9O1xuICAgIGNvbnN0IGZvcm1hdHRlZFRpbWUgPSBub3cudG9Mb2NhbGVTdHJpbmcoJ2VuLUlOJywgeyBob3VyMTI6IHRydWUsIC4uLm9wdGlvbnMgfSk7XG4gICAgY29uc3QgW3RpbWUsIHBlcmlvZF0gPSBmb3JtYXR0ZWRUaW1lLnNwbGl0KCcsICcpWzFdLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgW2hvdXJzLCBtaW51dGVzLCBzZWNvbmRzXSA9IHRpbWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTtcbiAgICByZXR1cm4geyBob3VycywgbWludXRlcywgc2Vjb25kcywgcGVyaW9kIH07XG4gIH1cblxuICB0aW1lVG9TZWNvbmRzKGhvdXJzOiBudW1iZXIsIG1pbnV0ZXM6IG51bWJlciwgc2Vjb25kczogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGhvdXJzICogMzYwMCArIG1pbnV0ZXMgKiA2MCArIHNlY29uZHM7XG4gIH1cblxuICBzZWNvbmRzVG9UaW1lU3RyaW5nKHNlY29uZHM6IG51bWJlcikge1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gMzYwMCkgJSAxMiB8fCAxMjtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigoc2Vjb25kcyAlIDM2MDApIC8gNjApO1xuICAgIGNvbnN0IHNlY29uZHNQYXJ0ID0gc2Vjb25kcyAlIDYwO1xuICAgIHJldHVybiBgJHtob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7bWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7c2Vjb25kc1BhcnQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gIH1cblxuICBoYW5kbGVDYWx1bGF0ZUhhbGZUaW1lKGV4cGlyZVRpbWU6IHN0cmluZywgaXNIYWxmVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgW2V4cGlyZUhvdXJzLCBleHBpcmVNaW51dGVzLCBleHBpcmVTZWNvbmRzXSA9IGV4cGlyZVRpbWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTtcbiAgICBjb25zdCB7IGhvdXJzOiBjdXJyZW50SG91cnMsIG1pbnV0ZXM6IGN1cnJlbnRNaW51dGVzLCBzZWNvbmRzOiBjdXJyZW50U2Vjb25kcywgcGVyaW9kOiBjdXJyZW50UGVyaW9kIH0gPSB0aGlzLmdldEN1cnJlbnRUaW1lKCk7XG5cbiAgICBjb25zdCBleHBpcmVUaW1lSW5TZWNvbmRzID0gdGhpcy50aW1lVG9TZWNvbmRzKGV4cGlyZUhvdXJzLCBleHBpcmVNaW51dGVzLCBleHBpcmVTZWNvbmRzKTtcbiAgICBjb25zdCBjdXJyZW50VGltZUluU2Vjb25kcyA9IHRoaXMudGltZVRvU2Vjb25kcyhjdXJyZW50SG91cnMsIGN1cnJlbnRNaW51dGVzLCBjdXJyZW50U2Vjb25kcyk7XG5cbiAgICBsZXQgaGFsZndheVRpbWVJblNlY29uZHM6IG51bWJlcjtcbiAgICBpZiAoaXNIYWxmVGltZSkge1xuICAgICAgaGFsZndheVRpbWVJblNlY29uZHMgPSBleHBpcmVUaW1lSW5TZWNvbmRzICsgY3VycmVudFRpbWVJblNlY29uZHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhbGZ3YXlUaW1lSW5TZWNvbmRzID0gTWF0aC5mbG9vcigoZXhwaXJlVGltZUluU2Vjb25kcyArIGN1cnJlbnRUaW1lSW5TZWNvbmRzKSAvIDIpO1xuICAgIH1cblxuICAgIGlmIChoYWxmd2F5VGltZUluU2Vjb25kcyA8IDApIHtcbiAgICAgIGhhbGZ3YXlUaW1lSW5TZWNvbmRzICs9IDEyICogMzYwMDtcbiAgICB9IGVsc2UgaWYgKGhhbGZ3YXlUaW1lSW5TZWNvbmRzID49IDEyICogMzYwMCkge1xuICAgICAgaGFsZndheVRpbWVJblNlY29uZHMgLT0gMTIgKiAzNjAwO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbGZ3YXlUaW1lU3RyaW5nID0gdGhpcy5zZWNvbmRzVG9UaW1lU3RyaW5nKGhhbGZ3YXlUaW1lSW5TZWNvbmRzKTtcblxuICAgIGxldCBpc0hhbGZUaW1lR3JlYXRlciA9IGZhbHNlO1xuICAgIGlmIChoYWxmd2F5VGltZVN0cmluZy5lbmRzV2l0aCgnQU0nKSAmJiBleHBpcmVUaW1lLmVuZHNXaXRoKCdQTScpKSB7XG4gICAgICBpc0hhbGZUaW1lR3JlYXRlciA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoaGFsZndheVRpbWVTdHJpbmcuZW5kc1dpdGgoJ1BNJykgJiYgZXhwaXJlVGltZS5lbmRzV2l0aCgnQU0nKSkge1xuICAgICAgaXNIYWxmVGltZUdyZWF0ZXIgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpc0hhbGZUaW1lR3JlYXRlciA9IGhhbGZ3YXlUaW1lU3RyaW5nID4gZXhwaXJlVGltZTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBoYWxmd2F5VGltZVN0cmluZywgaXNIYWxmVGltZUdyZWF0ZXIgfTtcbiAgfVxuXG4gIGNoZWNrSGFsZlRpbWVJc0dyZWF0ZXIoKSB7XG4gICAgLy8gY29uc3QgZ2V0UmVmcmVzaFRva2VuSGFsZlRpbWU6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMucmVmcmVzaFRva2VuRXhwaXJlVGltZVN0b3JhZ2VLZXkpIGFzIHN0cmluZztcbiAgICBjb25zdCBnZXRSZWZyZXNoVG9rZW5IYWxmVGltZSA9IExvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTdG9yYWdlS2V5cy5SRUZSRVNIX1RPS0VOX0hBTEZfRVhQUkVfVElNRSlcbiAgICBpZiAoIWdldFJlZnJlc2hUb2tlbkhhbGZUaW1lKSB0aHJvdyBuZXcgRXJyb3IoJ1JlZnJlc2ggdG9rZW4gaGFsZiB0aW1lIGlzIG1pc3NpbmcnKTtcbiAgICBjb25zdCB7IGlzSGFsZlRpbWVHcmVhdGVyLCBoYWxmd2F5VGltZVN0cmluZyB9ID0gdGhpcy5oYW5kbGVDYWx1bGF0ZUhhbGZUaW1lKGdldFJlZnJlc2hUb2tlbkhhbGZUaW1lLCB0cnVlKTtcbiAgICByZXR1cm4geyBpc0hhbGZUaW1lR3JlYXRlciwgaGFsZndheVRpbWVTdHJpbmcgfTtcbiAgfVxufVxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0taHR0cC1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLE1BQWMsRUFDZCx3QkFBa0QsRUFDbEQsbUJBQXdDO1FBRnhDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFMbEQsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQUtyQixDQUFDO0lBRUwsMkVBQTJFO0lBQzNFLCtFQUErRTtJQUMvRSxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUV4RCxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUN0RyxJQUFJLHVCQUF1QixFQUFFO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUss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RSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsaUhBQWlIO1FBQ2pILE1BQU0sdUJBQXVCLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1FBQ3RHLElBQUksQ0FBQyx1QkFBdUI7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsRUFBVTtRQUNkLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQzsrR0FqTFUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FIbEIsTUFBTTs7NEZBR1AsbUJBQW1CO2tCQUovQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbi8vIGltcG9ydCB7IFJlZnJlc2hUb2tlblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXN0L3BsYXRmb3JtLXJlZnJlc2gtdG9rZW4tc2VydmljZS9pbmRleCc7XG5pbXBvcnQgeyBSZWZyZXNoVG9rZW5TZXJ2aWNlIH0gZnJvbSAnQHByb2dyZXNzLWNoZWYvcGxhdGZvcm0tcmVmcmVzaC10b2tlbi1zZXJ2aWNlJ1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvYXN0Tm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0Bwcm9ncmVzcy1jaGVmL3BsYXRmb3JtLXNoYXJlZC1jb21wb25lbnRzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFN0b3JhZ2VLZXlzIH0gZnJvbSAnQHByb2dyZXNzLWNoZWYvcGxhdGZvcm0tc3RvcmFnZS1zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBIdHRwQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgYXV0aFRva2VuU2V0ID0gbmV3IFNldCgpO1xuICBpc1Nlc3Npb25FeHBpcmVkID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSB0b2FzdE5vdGlmaWNhdGlvblNlcnZpY2U6IFRvYXN0Tm90aWZpY2F0aW9uU2VydmljZSwgXG4gICAgcHJpdmF0ZSByZWZyZXNoVG9rZW5TZXJ2aWNlOiBSZWZyZXNoVG9rZW5TZXJ2aWNlLFxuICApIHsgfVxuXG4gIC8vIHByaXZhdGUgY3VycmVudEJhc2VVcmxGcm9tTG9jYWxTdG9yYWdlOiBzdHJpbmcgPSAnY3VycmVudFNlcnZlckJhc2VVcmwnO1xuICAvLyBwcml2YXRlIHJlZnJlc2hUb2tlbkV4cGlyZVRpbWVTdG9yYWdlS2V5OiBzdHJpbmcgPSAncmVmcmVzaFRva2VuRXhwaXJlVGltZSc7XG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuXG4gICAgY29uc3QgZ2V0UmVmcmVzaFRva2VuSGFsZlRpbWUgPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuUkVGUkVTSF9UT0tFTl9IQUxGX0VYUFJFX1RJTUUpXG4gICAgaWYgKGdldFJlZnJlc2hUb2tlbkhhbGZUaW1lKSB7XG4gICAgICB0aGlzLm1hbmFnZVRva2VuUmVmcmVzaCgpO1xuICAgIH1cblxuICAgIGxldCBhdXRoVG9rZW4gPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgbGV0IGF1dGhSZXEgPSByZXF1ZXN0O1xuICAgIGlmIChhdXRoVG9rZW4pIHtcbiAgICAgIGF1dGhSZXEgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthdXRoVG9rZW59YFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaWYgKCF0aGlzLmF1dGhUb2tlblNldC5oYXMoYXV0aFRva2VuKSkge1xuICAgICAgICB0aGlzLmlzU2Vzc2lvbkV4cGlyZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYXV0aFRva2VuU2V0LmFkZChhdXRoVG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICBjb25zdCBsb2dpblR5cGUgPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG4gICAgICAgICAgaWYgKGxvZ2luVHlwZSA9PT0gJ3NhbWwnIHx8IGxvZ2luVHlwZSA9PT0gJ29hdXRoJykge1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfTkFNRSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSVNfUkVNRU1CRVJfTUUpOyBcbiAgICAgICAgICB9XG4gICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLklTX1VTRVJfT1JHX0FORF9ST0xFX1NFVCwgZmFsc2UpO1xuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShTdG9yYWdlS2V5cy5JU19VU0VSX0FVVEhFTlRJQ0FURUQsIGZhbHNlKTtcbiAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkxPR0lOX1RZUEUpO1xuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5JREVOVElUWV9UT0tFTik7XG4gICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfT1JHX0FORF9ST0xFX1RPS0VOKTtcbiAgICAgICAgICAvLyBjYWxsIGxvZ291dCBhY3Rpb25cbiAgICAgICAgICBpZiAoIXRoaXMuaXNTZXNzaW9uRXhwaXJlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgY29udGVudDogJ1RoZSBzZXNzaW9uIGhhcyBlbmRlZC4nXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaXNTZXNzaW9uRXhwaXJlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gMCB8fCBlcnJvci5zdGF0dXMgPT09IDUwNCkge1xuICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICBjb250ZW50OiBgVW5hYmxlIHRvIHJlYWNoIHNlcnZlci4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgY2xvc2FibGU6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICBjb250ZW50OiBgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uYCxcbiAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcilcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG1hbmFnZVJlZnJlc2hUb2tlbkV4cGlyZVRpbWUoKSB7XG4gICAgY29uc3QgbmV3RXhwaXJlVGltZSA9IGF3YWl0IHRoaXMuZ2V0RXhwaXJlQXRUaW1lKClcbiAgICBjb25zdCB7IGhhbGZ3YXlUaW1lU3RyaW5nIH0gPSB0aGlzLmhhbmRsZUNhbHVsYXRlSGFsZlRpbWUobmV3RXhwaXJlVGltZSlcbiAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuUkVGUkVTSF9UT0tFTl9IQUxGX0VYUFJFX1RJTUUsIGhhbGZ3YXlUaW1lU3RyaW5nKVxuICB9XG5cbiAgbWFuYWdlVG9rZW5SZWZyZXNoKCkge1xuICAgIGNvbnN0IHsgaXNIYWxmVGltZUdyZWF0ZXIgfSA9IHRoaXMuY2hlY2tIYWxmVGltZUlzR3JlYXRlcigpO1xuICAgIGlmIChpc0hhbGZUaW1lR3JlYXRlcikge1xuICAgICAgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgIHRoaXMubWFuYWdlUmVmcmVzaFRva2VuRXhwaXJlVGltZSgpO1xuICAgICAgLy8gY29uc3QgbmV3RXhwaXJlVGltZSA9IHRoaXMuZ2V0RXhwaXJlQXRUaW1lKClcbiAgICAgIC8vIGNvbnN0IHsgaGFsZndheVRpbWVTdHJpbmcgfSA9IHRoaXMuaGFuZGxlQ2FsdWxhdGVIYWxmVGltZShuZXdFeHBpcmVUaW1lKVxuICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5yZWZyZXNoVG9rZW5FeHBpcmVUaW1lU3RvcmFnZUtleSwgaGFsZndheVRpbWVTdHJpbmcpXG4gICAgICAvLyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuUkVGUkVTSF9UT0tFTl9IQUxGX0VYUFJFX1RJTUUsIGhhbGZ3YXlUaW1lU3RyaW5nKVxuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hUb2tlbigpIHtcbiAgICAvLyBjb25zdCBiYXNlVXJsOiBzdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmN1cnJlbnRCYXNlVXJsRnJvbUxvY2FsU3RvcmFnZSkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGJhc2VVcmwgPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuQ1VSUkVOVF9TRVJWRVJfQkFTRV9VUkwpO1xuICAgIGlmICghYmFzZVVybCkgdGhyb3cgbmV3IEVycm9yKCdUaGUgYmFja2VuZCBvciBzZXJ2ZXIgYmFzZSBVUkwgaXMgbWlzc2luZyBpbiBMb2NhbCBTdG9yYWdlJyk7XG4gICAgdGhpcy5yZWZyZXNoVG9rZW5TZXJ2aWNlLnJlZnJlc2hUb2tlbih7IHBsYXRmb3JtU2VydmljZUFwaUJhc2VVcmxzOiBiYXNlVXJsIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0RXhwaXJlQXRUaW1lKCkge1xuICAgIGF3YWl0IHRoaXMuZGVsYXkoMjAwMClcbiAgICBsZXQgaXNJZGVudGl0eVRva2VuID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLklERU5USVRZX1RPS0VOKTtcbiAgICBjb25zb2xlLmxvZygnPT09PT09PSBjaGVjayBpcyB0b2tlbiBhdmFpbGFiZSAtLS0tLS0tLScsIGlzSWRlbnRpdHlUb2tlbikgIFxuICAgIGlmICghaXNJZGVudGl0eVRva2VuKSB0aHJvdyBuZXcgRXJyb3IoJ2lkZW50aXR5IHRva2VuIGlzIG1pc3NpbmcgaW4gdGhlIGxvY2FsIHN0b3JhZ2UnKTtcbiAgICBjb25zdCB7IGV4cGlyZUF0IH0gPSBpc0lkZW50aXR5VG9rZW47XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGV4cGlyZUF0ICogMTAwMCk7XG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCBsYXRlc3RSZWZyZXNoVG9rZW5FeHBpcmVUaW1lID0gYCR7aG91cnN9OiR7bWludXRlc306JHtzZWNvbmRzfWA7IC8vMTA6MDA6MDBcbiAgICByZXR1cm4gbGF0ZXN0UmVmcmVzaFRva2VuRXhwaXJlVGltZTtcbiAgfVxuXG4gIGdldEN1cnJlbnRUaW1lKCkge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgdGltZVpvbmU6ICdBc2lhL0tvbGthdGEnIH07XG4gICAgY29uc3QgZm9ybWF0dGVkVGltZSA9IG5vdy50b0xvY2FsZVN0cmluZygnZW4tSU4nLCB7IGhvdXIxMjogdHJ1ZSwgLi4ub3B0aW9ucyB9KTtcbiAgICBjb25zdCBbdGltZSwgcGVyaW9kXSA9IGZvcm1hdHRlZFRpbWUuc3BsaXQoJywgJylbMV0uc3BsaXQoJyAnKTtcbiAgICBjb25zdCBbaG91cnMsIG1pbnV0ZXMsIHNlY29uZHNdID0gdGltZS5zcGxpdCgnOicpLm1hcChOdW1iZXIpO1xuICAgIHJldHVybiB7IGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBwZXJpb2QgfTtcbiAgfVxuXG4gIHRpbWVUb1NlY29uZHMoaG91cnM6IG51bWJlciwgbWludXRlczogbnVtYmVyLCBzZWNvbmRzOiBudW1iZXIpIHtcbiAgICByZXR1cm4gaG91cnMgKiAzNjAwICsgbWludXRlcyAqIDYwICsgc2Vjb25kcztcbiAgfVxuXG4gIHNlY29uZHNUb1RpbWVTdHJpbmcoc2Vjb25kczogbnVtYmVyKSB7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyAzNjAwKSAlIDEyIHx8IDEyO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKChzZWNvbmRzICUgMzYwMCkgLyA2MCk7XG4gICAgY29uc3Qgc2Vjb25kc1BhcnQgPSBzZWNvbmRzICUgNjA7XG4gICAgcmV0dXJuIGAke2hvdXJzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHttaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHtzZWNvbmRzUGFydC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxuXG4gIGhhbmRsZUNhbHVsYXRlSGFsZlRpbWUoZXhwaXJlVGltZTogc3RyaW5nLCBpc0hhbGZUaW1lOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBbZXhwaXJlSG91cnMsIGV4cGlyZU1pbnV0ZXMsIGV4cGlyZVNlY29uZHNdID0gZXhwaXJlVGltZS5zcGxpdCgnOicpLm1hcChOdW1iZXIpO1xuICAgIGNvbnN0IHsgaG91cnM6IGN1cnJlbnRIb3VycywgbWludXRlczogY3VycmVudE1pbnV0ZXMsIHNlY29uZHM6IGN1cnJlbnRTZWNvbmRzLCBwZXJpb2Q6IGN1cnJlbnRQZXJpb2QgfSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcblxuICAgIGNvbnN0IGV4cGlyZVRpbWVJblNlY29uZHMgPSB0aGlzLnRpbWVUb1NlY29uZHMoZXhwaXJlSG91cnMsIGV4cGlyZU1pbnV0ZXMsIGV4cGlyZVNlY29uZHMpO1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lSW5TZWNvbmRzID0gdGhpcy50aW1lVG9TZWNvbmRzKGN1cnJlbnRIb3VycywgY3VycmVudE1pbnV0ZXMsIGN1cnJlbnRTZWNvbmRzKTtcblxuICAgIGxldCBoYWxmd2F5VGltZUluU2Vjb25kczogbnVtYmVyO1xuICAgIGlmIChpc0hhbGZUaW1lKSB7XG4gICAgICBoYWxmd2F5VGltZUluU2Vjb25kcyA9IGV4cGlyZVRpbWVJblNlY29uZHMgKyBjdXJyZW50VGltZUluU2Vjb25kcztcbiAgICB9IGVsc2Uge1xuICAgICAgaGFsZndheVRpbWVJblNlY29uZHMgPSBNYXRoLmZsb29yKChleHBpcmVUaW1lSW5TZWNvbmRzICsgY3VycmVudFRpbWVJblNlY29uZHMpIC8gMik7XG4gICAgfVxuXG4gICAgaWYgKGhhbGZ3YXlUaW1lSW5TZWNvbmRzIDwgMCkge1xuICAgICAgaGFsZndheVRpbWVJblNlY29uZHMgKz0gMTIgKiAzNjAwO1xuICAgIH0gZWxzZSBpZiAoaGFsZndheVRpbWVJblNlY29uZHMgPj0gMTIgKiAzNjAwKSB7XG4gICAgICBoYWxmd2F5VGltZUluU2Vjb25kcyAtPSAxMiAqIDM2MDA7XG4gICAgfVxuXG4gICAgY29uc3QgaGFsZndheVRpbWVTdHJpbmcgPSB0aGlzLnNlY29uZHNUb1RpbWVTdHJpbmcoaGFsZndheVRpbWVJblNlY29uZHMpO1xuXG4gICAgbGV0IGlzSGFsZlRpbWVHcmVhdGVyID0gZmFsc2U7XG4gICAgaWYgKGhhbGZ3YXlUaW1lU3RyaW5nLmVuZHNXaXRoKCdBTScpICYmIGV4cGlyZVRpbWUuZW5kc1dpdGgoJ1BNJykpIHtcbiAgICAgIGlzSGFsZlRpbWVHcmVhdGVyID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChoYWxmd2F5VGltZVN0cmluZy5lbmRzV2l0aCgnUE0nKSAmJiBleHBpcmVUaW1lLmVuZHNXaXRoKCdBTScpKSB7XG4gICAgICBpc0hhbGZUaW1lR3JlYXRlciA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlzSGFsZlRpbWVHcmVhdGVyID0gaGFsZndheVRpbWVTdHJpbmcgPiBleHBpcmVUaW1lO1xuICAgIH1cblxuICAgIHJldHVybiB7IGhhbGZ3YXlUaW1lU3RyaW5nLCBpc0hhbGZUaW1lR3JlYXRlciB9O1xuICB9XG5cbiAgY2hlY2tIYWxmVGltZUlzR3JlYXRlcigpIHtcbiAgICAvLyBjb25zdCBnZXRSZWZyZXNoVG9rZW5IYWxmVGltZTogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5yZWZyZXNoVG9rZW5FeHBpcmVUaW1lU3RvcmFnZUtleSkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGdldFJlZnJlc2hUb2tlbkhhbGZUaW1lID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLlJFRlJFU0hfVE9LRU5fSEFMRl9FWFBSRV9USU1FKVxuICAgIGlmICghZ2V0UmVmcmVzaFRva2VuSGFsZlRpbWUpIHRocm93IG5ldyBFcnJvcignUmVmcmVzaCB0b2tlbiBoYWxmIHRpbWUgaXMgbWlzc2luZycpO1xuICAgIGNvbnN0IHsgaXNIYWxmVGltZUdyZWF0ZXIsIGhhbGZ3YXlUaW1lU3RyaW5nIH0gPSB0aGlzLmhhbmRsZUNhbHVsYXRlSGFsZlRpbWUoZ2V0UmVmcmVzaFRva2VuSGFsZlRpbWUsIHRydWUpO1xuICAgIHJldHVybiB7IGlzSGFsZlRpbWVHcmVhdGVyLCBoYWxmd2F5VGltZVN0cmluZyB9O1xuICB9XG5cbiAgZGVsYXkobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbiAgfVxufVxuIl19
@@ -73,8 +73,8 @@ class HttpAuthInterceptor {
73
73
  return throwError(() => error);
74
74
  }));
75
75
  }
76
- manageRefreshTokenExpireTime() {
77
- const newExpireTime = this.getExpireAtTime();
76
+ async manageRefreshTokenExpireTime() {
77
+ const newExpireTime = await this.getExpireAtTime();
78
78
  const { halfwayTimeString } = this.handleCalulateHalfTime(newExpireTime);
79
79
  LocalStorageService.setItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME, halfwayTimeString);
80
80
  }
@@ -96,11 +96,10 @@ class HttpAuthInterceptor {
96
96
  throw new Error('The backend or server base URL is missing in Local Storage');
97
97
  this.refreshTokenService.refreshToken({ platformServiceApiBaseUrls: baseUrl });
98
98
  }
99
- getExpireAtTime() {
100
- let isIdentityToken;
101
- setTimeout(() => {
102
- isIdentityToken = LocalStorageService.getItem(StorageKeys.IDENTITY_TOKEN);
103
- }, 2000);
99
+ async getExpireAtTime() {
100
+ await this.delay(2000);
101
+ let isIdentityToken = LocalStorageService.getItem(StorageKeys.IDENTITY_TOKEN);
102
+ console.log('======= check is token availabe --------', isIdentityToken);
104
103
  if (!isIdentityToken)
105
104
  throw new Error('identity token is missing in the local storage');
106
105
  const { expireAt } = isIdentityToken;
@@ -167,6 +166,9 @@ class HttpAuthInterceptor {
167
166
  const { isHalfTimeGreater, halfwayTimeString } = this.handleCalulateHalfTime(getRefreshTokenHalfTime, true);
168
167
  return { isHalfTimeGreater, halfwayTimeString };
169
168
  }
169
+ delay(ms) {
170
+ return new Promise(resolve => setTimeout(resolve, ms));
171
+ }
170
172
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: i1.Router }, { token: i2.ToastNotificationService }, { token: i3.RefreshTokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
171
173
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, providedIn: 'root' }); }
172
174
  }
@@ -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';\n// import { RefreshTokenService } from '../../../../dist/platform-refresh-token-service/index';\nimport { RefreshTokenService } from '@progress-chef/platform-refresh-token-service'\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 toastNotificationService: ToastNotificationService, \n private refreshTokenService: RefreshTokenService,\n ) { }\n\n // private currentBaseUrlFromLocalStorage: string = 'currentServerBaseUrl';\n // private refreshTokenExpireTimeStorageKey: string = 'refreshTokenExpireTime';\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n const getRefreshTokenHalfTime = LocalStorageService.getItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME)\n if (getRefreshTokenHalfTime) {\n this.manageTokenRefresh();\n }\n\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 if (error.status === 401) {\n const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);\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 }\n if (error.status === 0 || error.status === 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 }\n if (error.status === 500) {\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true\n })\n }\n return throwError(() => error)\n })\n );\n }\n\n manageRefreshTokenExpireTime() {\n const newExpireTime = this.getExpireAtTime()\n const { halfwayTimeString } = this.handleCalulateHalfTime(newExpireTime)\n LocalStorageService.setItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME, halfwayTimeString)\n }\n\n manageTokenRefresh() {\n const { isHalfTimeGreater } = this.checkHalfTimeIsGreater();\n if (isHalfTimeGreater) {\n this.refreshToken();\n this.manageRefreshTokenExpireTime();\n // const newExpireTime = this.getExpireAtTime()\n // const { halfwayTimeString } = this.handleCalulateHalfTime(newExpireTime)\n // localStorage.setItem(this.refreshTokenExpireTimeStorageKey, halfwayTimeString)\n // LocalStorageService.setItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME, halfwayTimeString)\n }\n }\n\n refreshToken() {\n // const baseUrl: string = localStorage.getItem(this.currentBaseUrlFromLocalStorage) as string;\n const baseUrl = LocalStorageService.getItem(StorageKeys.CURRENT_SERVER_BASE_URL);\n if (!baseUrl) throw new Error('The backend or server base URL is missing in Local Storage');\n this.refreshTokenService.refreshToken({ platformServiceApiBaseUrls: baseUrl });\n }\n\n getExpireAtTime() {\n let isIdentityToken;\n setTimeout(()=> {\n isIdentityToken = LocalStorageService.getItem(StorageKeys.IDENTITY_TOKEN);\n }, 2000)\n \n if (!isIdentityToken) throw new Error('identity token is missing in the local storage');\n const { expireAt } = isIdentityToken;\n const date = new Date(expireAt * 1000);\n const hours = date.getUTCHours().toString().padStart(2, '0');\n const minutes = date.getUTCMinutes().toString().padStart(2, '0');\n const seconds = date.getUTCSeconds().toString().padStart(2, '0');\n const latestRefreshTokenExpireTime = `${hours}:${minutes}:${seconds}`; //10:00:00\n return latestRefreshTokenExpireTime;\n }\n\n getCurrentTime() {\n const now = new Date();\n const options = { timeZone: 'Asia/Kolkata' };\n const formattedTime = now.toLocaleString('en-IN', { hour12: true, ...options });\n const [time, period] = formattedTime.split(', ')[1].split(' ');\n const [hours, minutes, seconds] = time.split(':').map(Number);\n return { hours, minutes, seconds, period };\n }\n\n timeToSeconds(hours: number, minutes: number, seconds: number) {\n return hours * 3600 + minutes * 60 + seconds;\n }\n\n secondsToTimeString(seconds: number) {\n const hours = Math.floor(seconds / 3600) % 12 || 12;\n const minutes = Math.floor((seconds % 3600) / 60);\n const secondsPart = seconds % 60;\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${secondsPart.toString().padStart(2, '0')}`;\n }\n\n handleCalulateHalfTime(expireTime: string, isHalfTime: boolean = false) {\n const [expireHours, expireMinutes, expireSeconds] = expireTime.split(':').map(Number);\n const { hours: currentHours, minutes: currentMinutes, seconds: currentSeconds, period: currentPeriod } = this.getCurrentTime();\n\n const expireTimeInSeconds = this.timeToSeconds(expireHours, expireMinutes, expireSeconds);\n const currentTimeInSeconds = this.timeToSeconds(currentHours, currentMinutes, currentSeconds);\n\n let halfwayTimeInSeconds: number;\n if (isHalfTime) {\n halfwayTimeInSeconds = expireTimeInSeconds + currentTimeInSeconds;\n } else {\n halfwayTimeInSeconds = Math.floor((expireTimeInSeconds + currentTimeInSeconds) / 2);\n }\n\n if (halfwayTimeInSeconds < 0) {\n halfwayTimeInSeconds += 12 * 3600;\n } else if (halfwayTimeInSeconds >= 12 * 3600) {\n halfwayTimeInSeconds -= 12 * 3600;\n }\n\n const halfwayTimeString = this.secondsToTimeString(halfwayTimeInSeconds);\n\n let isHalfTimeGreater = false;\n if (halfwayTimeString.endsWith('AM') && expireTime.endsWith('PM')) {\n isHalfTimeGreater = false;\n } else if (halfwayTimeString.endsWith('PM') && expireTime.endsWith('AM')) {\n isHalfTimeGreater = true;\n } else {\n isHalfTimeGreater = halfwayTimeString > expireTime;\n }\n\n return { halfwayTimeString, isHalfTimeGreater };\n }\n\n checkHalfTimeIsGreater() {\n // const getRefreshTokenHalfTime: string = localStorage.getItem(this.refreshTokenExpireTimeStorageKey) as string;\n const getRefreshTokenHalfTime = LocalStorageService.getItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME)\n if (!getRefreshTokenHalfTime) throw new Error('Refresh token half time is missing');\n const { isHalfTimeGreater, halfwayTimeString } = this.handleCalulateHalfTime(getRefreshTokenHalfTime, true);\n return { isHalfTimeGreater, halfwayTimeString };\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 HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\n// import { RefreshTokenService } from '../../../../dist/platform-refresh-token-service/index';\nimport { RefreshTokenService } from '@progress-chef/platform-refresh-token-service'\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 toastNotificationService: ToastNotificationService, \n private refreshTokenService: RefreshTokenService,\n ) { }\n\n // private currentBaseUrlFromLocalStorage: string = 'currentServerBaseUrl';\n // private refreshTokenExpireTimeStorageKey: string = 'refreshTokenExpireTime';\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n const getRefreshTokenHalfTime = LocalStorageService.getItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME)\n if (getRefreshTokenHalfTime) {\n this.manageTokenRefresh();\n }\n\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 if (error.status === 401) {\n const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);\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 }\n if (error.status === 0 || error.status === 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 }\n if (error.status === 500) {\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true\n })\n }\n return throwError(() => error)\n })\n );\n }\n\n async manageRefreshTokenExpireTime() {\n const newExpireTime = await this.getExpireAtTime()\n const { halfwayTimeString } = this.handleCalulateHalfTime(newExpireTime)\n LocalStorageService.setItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME, halfwayTimeString)\n }\n\n manageTokenRefresh() {\n const { isHalfTimeGreater } = this.checkHalfTimeIsGreater();\n if (isHalfTimeGreater) {\n this.refreshToken();\n this.manageRefreshTokenExpireTime();\n // const newExpireTime = this.getExpireAtTime()\n // const { halfwayTimeString } = this.handleCalulateHalfTime(newExpireTime)\n // localStorage.setItem(this.refreshTokenExpireTimeStorageKey, halfwayTimeString)\n // LocalStorageService.setItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME, halfwayTimeString)\n }\n }\n\n refreshToken() {\n // const baseUrl: string = localStorage.getItem(this.currentBaseUrlFromLocalStorage) as string;\n const baseUrl = LocalStorageService.getItem(StorageKeys.CURRENT_SERVER_BASE_URL);\n if (!baseUrl) throw new Error('The backend or server base URL is missing in Local Storage');\n this.refreshTokenService.refreshToken({ platformServiceApiBaseUrls: baseUrl });\n }\n\n async getExpireAtTime() {\n await this.delay(2000)\n let isIdentityToken = LocalStorageService.getItem(StorageKeys.IDENTITY_TOKEN);\n console.log('======= check is token availabe --------', isIdentityToken) \n if (!isIdentityToken) throw new Error('identity token is missing in the local storage');\n const { expireAt } = isIdentityToken;\n const date = new Date(expireAt * 1000);\n const hours = date.getUTCHours().toString().padStart(2, '0');\n const minutes = date.getUTCMinutes().toString().padStart(2, '0');\n const seconds = date.getUTCSeconds().toString().padStart(2, '0');\n const latestRefreshTokenExpireTime = `${hours}:${minutes}:${seconds}`; //10:00:00\n return latestRefreshTokenExpireTime;\n }\n\n getCurrentTime() {\n const now = new Date();\n const options = { timeZone: 'Asia/Kolkata' };\n const formattedTime = now.toLocaleString('en-IN', { hour12: true, ...options });\n const [time, period] = formattedTime.split(', ')[1].split(' ');\n const [hours, minutes, seconds] = time.split(':').map(Number);\n return { hours, minutes, seconds, period };\n }\n\n timeToSeconds(hours: number, minutes: number, seconds: number) {\n return hours * 3600 + minutes * 60 + seconds;\n }\n\n secondsToTimeString(seconds: number) {\n const hours = Math.floor(seconds / 3600) % 12 || 12;\n const minutes = Math.floor((seconds % 3600) / 60);\n const secondsPart = seconds % 60;\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${secondsPart.toString().padStart(2, '0')}`;\n }\n\n handleCalulateHalfTime(expireTime: string, isHalfTime: boolean = false) {\n const [expireHours, expireMinutes, expireSeconds] = expireTime.split(':').map(Number);\n const { hours: currentHours, minutes: currentMinutes, seconds: currentSeconds, period: currentPeriod } = this.getCurrentTime();\n\n const expireTimeInSeconds = this.timeToSeconds(expireHours, expireMinutes, expireSeconds);\n const currentTimeInSeconds = this.timeToSeconds(currentHours, currentMinutes, currentSeconds);\n\n let halfwayTimeInSeconds: number;\n if (isHalfTime) {\n halfwayTimeInSeconds = expireTimeInSeconds + currentTimeInSeconds;\n } else {\n halfwayTimeInSeconds = Math.floor((expireTimeInSeconds + currentTimeInSeconds) / 2);\n }\n\n if (halfwayTimeInSeconds < 0) {\n halfwayTimeInSeconds += 12 * 3600;\n } else if (halfwayTimeInSeconds >= 12 * 3600) {\n halfwayTimeInSeconds -= 12 * 3600;\n }\n\n const halfwayTimeString = this.secondsToTimeString(halfwayTimeInSeconds);\n\n let isHalfTimeGreater = false;\n if (halfwayTimeString.endsWith('AM') && expireTime.endsWith('PM')) {\n isHalfTimeGreater = false;\n } else if (halfwayTimeString.endsWith('PM') && expireTime.endsWith('AM')) {\n isHalfTimeGreater = true;\n } else {\n isHalfTimeGreater = halfwayTimeString > expireTime;\n }\n\n return { halfwayTimeString, isHalfTimeGreater };\n }\n\n checkHalfTimeIsGreater() {\n // const getRefreshTokenHalfTime: string = localStorage.getItem(this.refreshTokenExpireTimeStorageKey) as string;\n const getRefreshTokenHalfTime = LocalStorageService.getItem(StorageKeys.REFRESH_TOKEN_HALF_EXPRE_TIME)\n if (!getRefreshTokenHalfTime) throw new Error('Refresh token half time is missing');\n const { isHalfTimeGreater, halfwayTimeString } = this.handleCalulateHalfTime(getRefreshTokenHalfTime, true);\n return { isHalfTimeGreater, halfwayTimeString };\n }\n\n delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\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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"}
@@ -12,10 +12,10 @@ export declare class HttpAuthInterceptor implements HttpInterceptor {
12
12
  isSessionExpired: boolean;
13
13
  constructor(router: Router, toastNotificationService: ToastNotificationService, refreshTokenService: RefreshTokenService);
14
14
  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
15
- manageRefreshTokenExpireTime(): void;
15
+ manageRefreshTokenExpireTime(): Promise<void>;
16
16
  manageTokenRefresh(): void;
17
17
  refreshToken(): void;
18
- getExpireAtTime(): string;
18
+ getExpireAtTime(): Promise<string>;
19
19
  getCurrentTime(): {
20
20
  hours: number;
21
21
  minutes: number;
@@ -32,6 +32,7 @@ export declare class HttpAuthInterceptor implements HttpInterceptor {
32
32
  isHalfTimeGreater: boolean;
33
33
  halfwayTimeString: string;
34
34
  };
35
+ delay(ms: number): Promise<void>;
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<HttpAuthInterceptor, never>;
36
37
  static ɵprov: i0.ɵɵInjectableDeclaration<HttpAuthInterceptor>;
37
38
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress-chef/platform-http-interceptor",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.2.0",
6
6
  "@angular/core": "^16.2.0"