ngx-histaff-alpha 2.4.8 → 2.4.9

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,7 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { AuthService } from '../services/auth.service';
2
3
  import { InterceptorStatisticHeader } from './base-url-interceptor';
4
+ import { StatisticAuthService } from '../services/statistic-auth.service';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "../services/auth.service";
5
7
  import * as i2 from "../services/statistic-auth.service";
@@ -32,4 +34,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
32
34
  providedIn: 'root'
33
35
  }]
34
36
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.StatisticAuthService }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2h0dHAtaW50ZXJjZXB0b3JzL2F1dGgtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQU1wRSxNQUFNLE9BQU8sZUFBZTtJQUV4QixZQUNZLFdBQXdCLEVBQ3hCLG9CQUEwQztRQUQxQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ2xELENBQUM7SUFFTCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUU5QyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRWhFLHVDQUF1QztRQUN2QyxNQUFNLFNBQVMsR0FBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFOUgsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQjtRQUVELDBEQUEwRDtRQUMxRCxrREFBa0Q7UUFDbEQsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUN0QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsR0FBRyxTQUFTLENBQUM7U0FDbkUsQ0FBQyxDQUFDO1FBRUgsdURBQXVEO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQTFCUSxlQUFlO2tIQUFmLGVBQWUsY0FGWixNQUFNOzsyRkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEh0dHBJbnRlcmNlcHRvciwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnRlcmNlcHRvclN0YXRpc3RpY0hlYWRlciB9IGZyb20gJy4vYmFzZS11cmwtaW50ZXJjZXB0b3InO1xyXG5pbXBvcnQgeyBTdGF0aXN0aWNBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N0YXRpc3RpYy1hdXRoLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgc3RhdGlzdGljQXV0aFNlcnZpY2U6IFN0YXRpc3RpY0F1dGhTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzU3RhdGlzdGljID0gcmVxLmhlYWRlcnMuaGFzKEludGVyY2VwdG9yU3RhdGlzdGljSGVhZGVyKTtcclxuXHJcbiAgICAgICAgLy8gR2V0IHRoZSBhdXRoIHRva2VuIGZyb20gdGhlIHNlcnZpY2UuXHJcbiAgICAgICAgY29uc3QgYXV0aFRva2VuID0gIGlzU3RhdGlzdGljID8gdGhpcy5zdGF0aXN0aWNBdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSA6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCk7XHJcblxyXG4gICAgICAgIGlmIChhdXRoVG9rZW4gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENsb25lIHRoZSByZXF1ZXN0IGFuZCByZXBsYWNlIHRoZSBvcmlnaW5hbCBoZWFkZXJzIHdpdGhcclxuICAgICAgICAvLyBjbG9uZWQgaGVhZGVycywgdXBkYXRlZCB3aXRoIHRoZSBhdXRob3JpemF0aW9uLlxyXG4gICAgICAgIGNvbnN0IGF1dGhSZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBhdXRoVG9rZW4pXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIHNlbmQgY2xvbmVkIHJlcXVlc3Qgd2l0aCBoZWFkZXIgdG8gdGhlIG5leHQgaGFuZGxlci5cclxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcSk7XHJcbiAgICB9XHJcbn0iXX0=
37
+ // Fn style
38
+ export function authInterceptor(req, next) {
39
+ const isStatistic = req.headers.has(InterceptorStatisticHeader);
40
+ const authService = inject(AuthService);
41
+ const statisticAuthService = inject(StatisticAuthService);
42
+ // Get the auth token from the service.
43
+ const authToken = isStatistic ? statisticAuthService.getAuthorizationToken() : authService.getAuthorizationToken();
44
+ if (authToken === undefined) {
45
+ console.log(`AuthInterceptor.intercept() for ${req.url}`, "No authToken");
46
+ return next(req);
47
+ }
48
+ // Clone the request and replace the original headers with
49
+ // cloned headers, updated with the authorization.
50
+ const authReq = req.clone({
51
+ headers: req.headers.set('Authorization', 'Bearer ' + authToken)
52
+ });
53
+ console.log(`AuthInterceptor.intercept() for ${req.url}`, "passed");
54
+ // send cloned request with header to the next handler.
55
+ return next(authReq);
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2h0dHAtaW50ZXJjZXB0b3JzL2F1dGgtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7O0FBTTFFLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFlBQ1ksV0FBd0IsRUFDeEIsb0JBQTBDO1FBRDFDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFDbEQsQ0FBQztJQUVMLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRTlDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFaEUsdUNBQXVDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU5SCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsMERBQTBEO1FBQzFELGtEQUFrRDtRQUNsRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUNuRSxDQUFDLENBQUM7UUFFSCx1REFBdUQ7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBMUJRLGVBQWU7a0hBQWYsZUFBZSxjQUZaLE1BQU07OzJGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOztBQThCRCxXQUFXO0FBQ1gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFxQixFQUFFLElBQW1CO0lBRXRFLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFMUQsdUNBQXVDO0lBQ3ZDLE1BQU0sU0FBUyxHQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFcEgsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUN6RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwQjtJQUVELDBEQUEwRDtJQUMxRCxrREFBa0Q7SUFDbEQsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN0QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsR0FBRyxTQUFTLENBQUM7S0FDbkUsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBRW5FLHVEQUF1RDtJQUN2RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCxcclxuICAgIEh0dHBIYW5kbGVyRm4sXHJcbiAgICBIdHRwRXZlbnRcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEludGVyY2VwdG9yU3RhdGlzdGljSGVhZGVyIH0gZnJvbSAnLi9iYXNlLXVybC1pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IFN0YXRpc3RpY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RhdGlzdGljLWF1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHN0YXRpc3RpY0F1dGhTZXJ2aWNlOiBTdGF0aXN0aWNBdXRoU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xyXG5cclxuICAgICAgICBjb25zdCBpc1N0YXRpc3RpYyA9IHJlcS5oZWFkZXJzLmhhcyhJbnRlcmNlcHRvclN0YXRpc3RpY0hlYWRlcik7XHJcblxyXG4gICAgICAgIC8vIEdldCB0aGUgYXV0aCB0b2tlbiBmcm9tIHRoZSBzZXJ2aWNlLlxyXG4gICAgICAgIGNvbnN0IGF1dGhUb2tlbiA9ICBpc1N0YXRpc3RpYyA/IHRoaXMuc3RhdGlzdGljQXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkgOiB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpO1xyXG5cclxuICAgICAgICBpZiAoYXV0aFRva2VuID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDbG9uZSB0aGUgcmVxdWVzdCBhbmQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgaGVhZGVycyB3aXRoXHJcbiAgICAgICAgLy8gY2xvbmVkIGhlYWRlcnMsIHVwZGF0ZWQgd2l0aCB0aGUgYXV0aG9yaXphdGlvbi5cclxuICAgICAgICBjb25zdCBhdXRoUmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgYXV0aFRva2VuKVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBzZW5kIGNsb25lZCByZXF1ZXN0IHdpdGggaGVhZGVyIHRvIHRoZSBuZXh0IGhhbmRsZXIuXHJcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBGbiBzdHlsZVxyXG5leHBvcnQgZnVuY3Rpb24gYXV0aEludGVyY2VwdG9yKHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXJGbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcblxyXG4gICAgY29uc3QgaXNTdGF0aXN0aWMgPSByZXEuaGVhZGVycy5oYXMoSW50ZXJjZXB0b3JTdGF0aXN0aWNIZWFkZXIpO1xyXG5cclxuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuICAgIGNvbnN0IHN0YXRpc3RpY0F1dGhTZXJ2aWNlID0gaW5qZWN0KFN0YXRpc3RpY0F1dGhTZXJ2aWNlKTtcclxuXHJcbiAgICAvLyBHZXQgdGhlIGF1dGggdG9rZW4gZnJvbSB0aGUgc2VydmljZS5cclxuICAgIGNvbnN0IGF1dGhUb2tlbiA9ICBpc1N0YXRpc3RpYyA/IHN0YXRpc3RpY0F1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpIDogYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCk7XHJcblxyXG4gICAgaWYgKGF1dGhUb2tlbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coYEF1dGhJbnRlcmNlcHRvci5pbnRlcmNlcHQoKSBmb3IgJHtyZXEudXJsfWAsIFwiTm8gYXV0aFRva2VuXCIpXHJcbiAgICAgICAgcmV0dXJuIG5leHQocmVxKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDbG9uZSB0aGUgcmVxdWVzdCBhbmQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgaGVhZGVycyB3aXRoXHJcbiAgICAvLyBjbG9uZWQgaGVhZGVycywgdXBkYXRlZCB3aXRoIHRoZSBhdXRob3JpemF0aW9uLlxyXG4gICAgY29uc3QgYXV0aFJlcSA9IHJlcS5jbG9uZSh7XHJcbiAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgYXV0aFRva2VuKVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc29sZS5sb2coYEF1dGhJbnRlcmNlcHRvci5pbnRlcmNlcHQoKSBmb3IgJHtyZXEudXJsfWAsIFwicGFzc2VkXCIpXHJcblxyXG4gICAgLy8gc2VuZCBjbG9uZWQgcmVxdWVzdCB3aXRoIGhlYWRlciB0byB0aGUgbmV4dCBoYW5kbGVyLlxyXG4gICAgcmV0dXJuIG5leHQoYXV0aFJlcSk7XHJcbn0iXX0=
@@ -1,4 +1,5 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { AppConfigService } from '../services/app-config.service';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../services/app-config.service";
4
5
  export const InterceptorSkipHeader = 'X-Skip-Interceptor';
@@ -37,4 +38,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
37
38
  providedIn: 'root'
38
39
  }]
39
40
  }], ctorParameters: () => [{ type: i1.AppConfigService }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11cmwtaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9odHRwLWludGVyY2VwdG9ycy9iYXNlLXVybC1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsb0JBQW9CLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcseUJBQXlCLENBQUM7QUFLcEUsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNZLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTFDLENBQUM7SUFFTCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUU5QyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDeEMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEtBQTRLLENBQUMsQ0FBQTtTQUM5TDtRQUVELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRTtZQUM3QyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUM1QixHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixHQUFHLEdBQUcsQ0FBQyxHQUFHO2FBQzlELENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0gsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDNUIsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUc7YUFDaEQsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs4R0E3QlEsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGZixNQUFNOzsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSHR0cEludGVyY2VwdG9yLCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3RcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBJbnRlcmNlcHRvclNraXBIZWFkZXIgPSAnWC1Ta2lwLUludGVyY2VwdG9yJztcclxuZXhwb3J0IGNvbnN0IEludGVyY2VwdG9yU3RhdGlzdGljSGVhZGVyID0gJ1gtU3RhdGlzdGljLUludGVyY2VwdG9yJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFzZVVybEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcblxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xyXG5cclxuICAgICAgICBpZiAocmVxLmhlYWRlcnMuaGFzKEludGVyY2VwdG9yU2tpcEhlYWRlcikpIHtcclxuICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlcS5oZWFkZXJzLmRlbGV0ZShJbnRlcmNlcHRvclNraXBIZWFkZXIpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxLmNsb25lKHsgaGVhZGVycyB9KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVEhFIEFQUCBMQVlQT1VUIGhhZCBzdGFydGVkIHJlbmRlcmluZyBiZWZvcmUgYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCByZWFjaHMgYSB0cnVlbHkgdmFsdWUuIFBsZWFzZSBjaGVjayBBcHBJbml0aWFsaXphdGlvblNlcnZpY2UgaW5pdGlhbGl6aW5nJC5uZXh0IG1ldGhvZCBjYXJlZnVsbHkhISFcIilcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXEuaGVhZGVycy5oYXMoSW50ZXJjZXB0b3JTdGF0aXN0aWNIZWFkZXIpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFkZEJhc2VVcmxSZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICAgICAgICAgICAgdXJsOiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkxfRk9SX1NUQVRJU1RJQyArIHJlcS51cmxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShhZGRCYXNlVXJsUmVxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBhZGRCYXNlVXJsUmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMICsgcmVxLnVybFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGFkZEJhc2VVcmxSZXEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
41
+ // Fn style
42
+ export function baseUrlInterceptor(req, next) {
43
+ const appConfigService = inject(AppConfigService);
44
+ if (req.headers.has(InterceptorSkipHeader)) {
45
+ const headers = req.headers.delete(InterceptorSkipHeader);
46
+ return next(req.clone({ headers }));
47
+ }
48
+ if (req.headers.has(InterceptorStatisticHeader)) {
49
+ const addBaseUrlReq = req.clone({
50
+ url: appConfigService.BASE_URL_FOR_STATISTIC + req.url
51
+ });
52
+ return next(addBaseUrlReq);
53
+ }
54
+ else {
55
+ const addBaseUrlReq = req.clone({
56
+ url: appConfigService.BASE_URL + req.url
57
+ });
58
+ return next(addBaseUrlReq);
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11cmwtaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9odHRwLWludGVyY2VwdG9ycy9iYXNlLXVybC1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9uRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBR2xFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDO0FBQzFELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLHlCQUF5QixDQUFDO0FBS3BFLE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsWUFDWSxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUUxQyxDQUFDO0lBRUwsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFOUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDMUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtZQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLDRLQUE0SyxDQUFDLENBQUE7U0FDOUw7UUFFRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLEVBQUU7WUFDN0MsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDNUIsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsR0FBRzthQUM5RCxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNILE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHO2FBQ2hELENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7OEdBN0JRLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmYsTUFBTTs7MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7QUFpQ0QsV0FBVztBQUNYLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFxQixFQUFFLElBQW1CO0lBRXpFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFbEQsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN2QztJQUVELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRTtRQUM3QyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsR0FBRztTQUN6RCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUM5QjtTQUFNO1FBQ0gsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM1QixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHO1NBQzNDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQzlCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSHR0cEludGVyY2VwdG9yLCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QsXHJcbiAgICBIdHRwSGFuZGxlckZuLFxyXG4gICAgSHR0cEV2ZW50XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCBjb25zdCBJbnRlcmNlcHRvclNraXBIZWFkZXIgPSAnWC1Ta2lwLUludGVyY2VwdG9yJztcclxuZXhwb3J0IGNvbnN0IEludGVyY2VwdG9yU3RhdGlzdGljSGVhZGVyID0gJ1gtU3RhdGlzdGljLUludGVyY2VwdG9yJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFzZVVybEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcblxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xyXG5cclxuICAgICAgICBpZiAocmVxLmhlYWRlcnMuaGFzKEludGVyY2VwdG9yU2tpcEhlYWRlcikpIHtcclxuICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlcS5oZWFkZXJzLmRlbGV0ZShJbnRlcmNlcHRvclNraXBIZWFkZXIpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxLmNsb25lKHsgaGVhZGVycyB9KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVEhFIEFQUCBMQVlQT1VUIGhhZCBzdGFydGVkIHJlbmRlcmluZyBiZWZvcmUgYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCByZWFjaHMgYSB0cnVlbHkgdmFsdWUuIFBsZWFzZSBjaGVjayBBcHBJbml0aWFsaXphdGlvblNlcnZpY2UgaW5pdGlhbGl6aW5nJC5uZXh0IG1ldGhvZCBjYXJlZnVsbHkhISFcIilcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXEuaGVhZGVycy5oYXMoSW50ZXJjZXB0b3JTdGF0aXN0aWNIZWFkZXIpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFkZEJhc2VVcmxSZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICAgICAgICAgICAgdXJsOiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkxfRk9SX1NUQVRJU1RJQyArIHJlcS51cmxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShhZGRCYXNlVXJsUmVxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBhZGRCYXNlVXJsUmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMICsgcmVxLnVybFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGFkZEJhc2VVcmxSZXEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gRm4gc3R5bGVcclxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VVcmxJbnRlcmNlcHRvcihyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xyXG5cclxuICAgIGNvbnN0IGFwcENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoQXBwQ29uZmlnU2VydmljZSk7XHJcblxyXG4gICAgaWYgKHJlcS5oZWFkZXJzLmhhcyhJbnRlcmNlcHRvclNraXBIZWFkZXIpKSB7XHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlcS5oZWFkZXJzLmRlbGV0ZShJbnRlcmNlcHRvclNraXBIZWFkZXIpO1xyXG4gICAgICAgIHJldHVybiBuZXh0KHJlcS5jbG9uZSh7IGhlYWRlcnMgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChyZXEuaGVhZGVycy5oYXMoSW50ZXJjZXB0b3JTdGF0aXN0aWNIZWFkZXIpKSB7XHJcbiAgICAgICAgY29uc3QgYWRkQmFzZVVybFJlcSA9IHJlcS5jbG9uZSh7XHJcbiAgICAgICAgICAgIHVybDogYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTF9GT1JfU1RBVElTVElDICsgcmVxLnVybFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGFkZEJhc2VVcmxSZXEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBhZGRCYXNlVXJsUmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgICAgICAgdXJsOiBhcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMICsgcmVxLnVybFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGFkZEJhc2VVcmxSZXEpO1xyXG4gICAgfVxyXG59Il19
@@ -1,7 +1,8 @@
1
1
  import { HttpResponse } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
2
+ import { Injectable, inject } from '@angular/core';
3
3
  import { Observable, of } from 'rxjs';
4
4
  import { tap } from 'rxjs/operators';
5
+ import { CacheService } from '../services/cache-service';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../services/cache-service";
7
8
  export class CachingInterceptor {
@@ -46,4 +47,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
46
47
  providedIn: 'root'
47
48
  }]
48
49
  }], ctorParameters: () => [{ type: i1.CacheService }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZy1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2h0dHAtaW50ZXJjZXB0b3JzL2NhY2hpbmctaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3RCxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTXJDLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDOUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ2hELHdDQUF3QztRQUN4QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3REO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksY0FBYyxFQUFFO1lBQ2xCLDRDQUE0QztZQUM1Qyx5Q0FBeUM7WUFDekMsd0NBQXdDO1lBQ3hDLE9BQU8sQ0FBQyxjQUFjLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzdGO1FBRUQsaURBQWlEO1FBQ2pELHNEQUFzRDtRQUN0RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDZCxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM1QztRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDOzhHQXJDVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NhY2hlLXNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FjaGluZ0ludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWNoZVNlcnZpY2U6IENhY2hlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICAvLyBEb24ndCBjYWNoZSBpZiBpdCdzIG5vdCBhIEdFVCByZXF1ZXN0XHJcbiAgICBpZiAocmVxLm1ldGhvZCAhPT0gJ0dFVCcpIHtcclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZGVsZXRlIGNhY2hlIGlmIG5vIGhlYWRlciBpcyBzZXQgYnkgc2VydmljZSdzIG1ldGhvZFxyXG4gICAgaWYgKCFyZXEuaGVhZGVycy5nZXQoJ2NhY2hlUmVxdWVzdCcpKSB7XHJcbiAgICAgIGlmICh0aGlzLmNhY2hlU2VydmljZS5jYWNoZU1hcC5nZXQocmVxLnVybFdpdGhQYXJhbXMpKSB7XHJcbiAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2UuY2FjaGVNYXAuZGVsZXRlKHJlcS51cmxXaXRoUGFyYW1zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2tlZCBpZiB0aGVyZSBpcyBjYWNoZWQgZGF0YSBmb3IgdGhpcyBVUklcclxuICAgIGNvbnN0IGNhY2hlZFJlc3BvbnNlID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0RnJvbUNhY2hlKHJlcSk7XHJcbiAgICBpZiAoY2FjaGVkUmVzcG9uc2UpIHtcclxuICAgICAgLy8gSW4gY2FzZSBvZiBwYXJhbGxlbCByZXF1ZXN0cyB0byBzYW1lIFVSSSxcclxuICAgICAgLy8gcmV0dXJuIHRoZSByZXF1ZXN0IGFscmVhZHkgaW4gcHJvZ3Jlc3NcclxuICAgICAgLy8gb3RoZXJ3aXNlIHJldHVybiB0aGUgbGFzdCBjYWNoZWQgZGF0YVxyXG4gICAgICByZXR1cm4gKGNhY2hlZFJlc3BvbnNlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkgPyBjYWNoZWRSZXNwb25zZSA6IG9mKGNhY2hlZFJlc3BvbnNlLmNsb25lKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSByZXF1ZXN0IG9mIGdvaW5nIHRocm91Z2ggZm9yIGZpcnN0IHRpbWVcclxuICAgIC8vIHRoZW4gbGV0IHRoZSByZXF1ZXN0IHByb2NlZWQgYW5kIGNhY2hlIHRoZSByZXNwb25zZVxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSlcclxuICAgICAgICAucGlwZSh0YXAoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLmFkZFRvQ2FjaGUocmVxLCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgfVxyXG59Il19
50
+ // Fn style
51
+ export function cachingInterceptor(req, next) {
52
+ const cacheService = inject(CacheService);
53
+ if (req.method !== 'GET') {
54
+ return next(req);
55
+ }
56
+ // delete cache if no header is set by service's method
57
+ if (!req.headers.get('Cache-Request')) {
58
+ if (cacheService.cacheMap.get(req.urlWithParams)) {
59
+ cacheService.cacheMap.delete(req.urlWithParams);
60
+ }
61
+ return next(req);
62
+ }
63
+ // Checked if there is cached data for this URI
64
+ const cachedResponse = cacheService.getFromCache(req);
65
+ if (cachedResponse) {
66
+ // In case of parallel requests to same URI,
67
+ // return the request already in progress
68
+ // otherwise return the last cached data
69
+ return (cachedResponse instanceof Observable) ? cachedResponse : of(cachedResponse.clone());
70
+ }
71
+ // If the request of going through for first time
72
+ // then let the request proceed and cache the response
73
+ return next(req)
74
+ .pipe(tap(event => {
75
+ if (event instanceof HttpResponse) {
76
+ cacheService.addToCache(req, event);
77
+ }
78
+ }));
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZy1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2h0dHAtaW50ZXJjZXB0b3JzL2NhY2hpbmctaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1RSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFLekQsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsd0NBQXdDO1FBQ3hDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDdEQ7WUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCwrQ0FBK0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0QsSUFBSSxjQUFjLEVBQUU7WUFDbEIsNENBQTRDO1lBQzVDLHlDQUF5QztZQUN6Qyx3Q0FBd0M7WUFDeEMsT0FBTyxDQUFDLGNBQWMsWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDN0Y7UUFFRCxpREFBaUQ7UUFDakQsc0RBQXNEO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNkLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQzVDO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7OEdBckNVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBeUNELFdBQVc7QUFDWCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBcUIsRUFBRSxJQUFtQjtJQUUzRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFMUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRTtRQUN4QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNsQjtJQUVELHVEQUF1RDtJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDckMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7SUFFRCwrQ0FBK0M7SUFDL0MsTUFBTSxjQUFjLEdBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxJQUFJLGNBQWMsRUFBRTtRQUNsQiw0Q0FBNEM7UUFDNUMseUNBQXlDO1FBQ3pDLHdDQUF3QztRQUN4QyxPQUFPLENBQUMsY0FBYyxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUM3RjtJQUVELGlEQUFpRDtJQUNqRCxzREFBc0Q7SUFDdEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtZQUMvQixZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEhhbmRsZXJGbiwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2FjaGUtc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWNoaW5nSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIC8vIERvbid0IGNhY2hlIGlmIGl0J3Mgbm90IGEgR0VUIHJlcXVlc3RcclxuICAgIGlmIChyZXEubWV0aG9kICE9PSAnR0VUJykge1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBkZWxldGUgY2FjaGUgaWYgbm8gaGVhZGVyIGlzIHNldCBieSBzZXJ2aWNlJ3MgbWV0aG9kXHJcbiAgICBpZiAoIXJlcS5oZWFkZXJzLmdldCgnY2FjaGVSZXF1ZXN0JykpIHtcclxuICAgICAgaWYgKHRoaXMuY2FjaGVTZXJ2aWNlLmNhY2hlTWFwLmdldChyZXEudXJsV2l0aFBhcmFtcykpIHtcclxuICAgICAgICB0aGlzLmNhY2hlU2VydmljZS5jYWNoZU1hcC5kZWxldGUocmVxLnVybFdpdGhQYXJhbXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDaGVja2VkIGlmIHRoZXJlIGlzIGNhY2hlZCBkYXRhIGZvciB0aGlzIFVSSVxyXG4gICAgY29uc3QgY2FjaGVkUmVzcG9uc2UgPSB0aGlzLmNhY2hlU2VydmljZS5nZXRGcm9tQ2FjaGUocmVxKTtcclxuICAgIGlmIChjYWNoZWRSZXNwb25zZSkge1xyXG4gICAgICAvLyBJbiBjYXNlIG9mIHBhcmFsbGVsIHJlcXVlc3RzIHRvIHNhbWUgVVJJLFxyXG4gICAgICAvLyByZXR1cm4gdGhlIHJlcXVlc3QgYWxyZWFkeSBpbiBwcm9ncmVzc1xyXG4gICAgICAvLyBvdGhlcndpc2UgcmV0dXJuIHRoZSBsYXN0IGNhY2hlZCBkYXRhXHJcbiAgICAgIHJldHVybiAoY2FjaGVkUmVzcG9uc2UgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSA/IGNhY2hlZFJlc3BvbnNlIDogb2YoY2FjaGVkUmVzcG9uc2UuY2xvbmUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlIHJlcXVlc3Qgb2YgZ29pbmcgdGhyb3VnaCBmb3IgZmlyc3QgdGltZVxyXG4gICAgLy8gdGhlbiBsZXQgdGhlIHJlcXVlc3QgcHJvY2VlZCBhbmQgY2FjaGUgdGhlIHJlc3BvbnNlXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKVxyXG4gICAgICAgIC5waXBlKHRhcChldmVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2UuYWRkVG9DYWNoZShyZXEsIGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZuIHN0eWxlXHJcbmV4cG9ydCBmdW5jdGlvbiBjYWNoaW5nSW50ZXJjZXB0b3IocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlckZuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcclxuXHJcbiAgY29uc3QgY2FjaGVTZXJ2aWNlID0gaW5qZWN0KENhY2hlU2VydmljZSk7XHJcblxyXG4gIGlmIChyZXEubWV0aG9kICE9PSAnR0VUJykge1xyXG4gICAgcmV0dXJuIG5leHQocmVxKTtcclxuICB9XHJcblxyXG4gIC8vIGRlbGV0ZSBjYWNoZSBpZiBubyBoZWFkZXIgaXMgc2V0IGJ5IHNlcnZpY2UncyBtZXRob2RcclxuICBpZiAoIXJlcS5oZWFkZXJzLmdldCgnQ2FjaGUtUmVxdWVzdCcpKSB7XHJcbiAgICBpZiAoY2FjaGVTZXJ2aWNlLmNhY2hlTWFwLmdldChyZXEudXJsV2l0aFBhcmFtcykpIHtcclxuICAgICAgY2FjaGVTZXJ2aWNlLmNhY2hlTWFwLmRlbGV0ZShyZXEudXJsV2l0aFBhcmFtcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dChyZXEpO1xyXG4gIH1cclxuXHJcbiAgLy8gQ2hlY2tlZCBpZiB0aGVyZSBpcyBjYWNoZWQgZGF0YSBmb3IgdGhpcyBVUklcclxuICBjb25zdCBjYWNoZWRSZXNwb25zZSA9Y2FjaGVTZXJ2aWNlLmdldEZyb21DYWNoZShyZXEpO1xyXG4gIGlmIChjYWNoZWRSZXNwb25zZSkge1xyXG4gICAgLy8gSW4gY2FzZSBvZiBwYXJhbGxlbCByZXF1ZXN0cyB0byBzYW1lIFVSSSxcclxuICAgIC8vIHJldHVybiB0aGUgcmVxdWVzdCBhbHJlYWR5IGluIHByb2dyZXNzXHJcbiAgICAvLyBvdGhlcndpc2UgcmV0dXJuIHRoZSBsYXN0IGNhY2hlZCBkYXRhXHJcbiAgICByZXR1cm4gKGNhY2hlZFJlc3BvbnNlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkgPyBjYWNoZWRSZXNwb25zZSA6IG9mKGNhY2hlZFJlc3BvbnNlLmNsb25lKCkpO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGhlIHJlcXVlc3Qgb2YgZ29pbmcgdGhyb3VnaCBmb3IgZmlyc3QgdGltZVxyXG4gIC8vIHRoZW4gbGV0IHRoZSByZXF1ZXN0IHByb2NlZWQgYW5kIGNhY2hlIHRoZSByZXNwb25zZVxyXG4gIHJldHVybiBuZXh0KHJlcSlcclxuICAgICAgLnBpcGUodGFwKGV2ZW50ID0+IHtcclxuICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgIGNhY2hlU2VydmljZS5hZGRUb0NhY2hlKHJlcSwgZXZlbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcblxyXG59Il19
@@ -1,7 +1,8 @@
1
- import { Injectable, isDevMode } from '@angular/core';
1
+ import { Injectable, inject, isDevMode } from '@angular/core';
2
2
  import { HttpResponse } from '@angular/common/http';
3
3
  import { filter, map } from 'rxjs';
4
4
  import { noneAutoClosedAlertOptions } from '../constants/alertOptions';
5
+ import { ResponseService } from '../services/response.service';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../libraries/alert/alert.service";
7
8
  import * as i2 from "../services/app-config.service";
@@ -66,10 +67,12 @@ export class ResponseInterceptor {
66
67
  }
67
68
  if (event.url?.toLowerCase().indexOf('/api/grpc') > 0) {
68
69
  const newInnerBody = this.grpcService.convertToCamelCase(JSON.parse(event.body?.innerBody));
69
- return event.clone({ body: {
70
+ return event.clone({
71
+ body: {
70
72
  ...event.body,
71
73
  innerBody: newInnerBody
72
- } });
74
+ }
75
+ });
73
76
  }
74
77
  else {
75
78
  return event;
@@ -87,4 +90,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
87
90
  providedIn: 'root'
88
91
  }]
89
92
  }], ctorParameters: () => [{ type: i1.AlertService }, { type: i2.AppConfigService }, { type: i3.ResponseService }, { type: i4.GrpcService }, { type: i5.MultiLanguageService }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9odHRwLWludGVyY2VwdG9ycy9yZXNwb25zZS1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQ21ELFlBQVksRUFDckUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQWMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7OztBQVV2RSxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLFlBQ1ksWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLFdBQXdCLEVBQ3hCLEdBQXlCO1FBSnpCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQXNCO0lBQUksQ0FBQztJQUUxQyxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUs5QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN4QixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLEVBQzlDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtnQkFDL0IsSUFBSSxJQUFJLEdBQVEsSUFBSSxDQUFDO2dCQUVyQixJQUFJLEtBQUssQ0FBQyxFQUFFLElBQUks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VCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50LCBIdHRwUmVzcG9uc2VcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9saWJyYXJpZXMvYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNwb25zZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXNwb25zZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgR3JwY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ncnBjLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zZUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlc3BvbnNlU2VydmljZTogUmVzcG9uc2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZ3JwY1NlcnZpY2U6IEdycGNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSkgeyB9XHJcblxyXG4gICAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSksXHJcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYm9keTogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50Lm9rICYmIGV2ZW50LnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBldmVudC5ib2R5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlU2VydmljZS5yZXNvbHZlKGJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoSlNPTi5zdHJpbmdpZnkoZXZlbnQsIG51bGwsIDIpLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpICYmIGV2ZW50LnVybD8uaW5kZXhPZihgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9L3N0YXRpYy9leGNlbC10ZW1wbGF0ZXMvYCkhIDwgMCAmJiBldmVudC5vayAmJiBldmVudC5zdGF0dXMgPT09IDIwMCAmJiAoZXZlbnQuYm9keS5pbm5lckJvZHk/LmlubmVyQm9keSAhPT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgXHJcbiAgICAgICAgICAgICAgICAgICAgTmVzdGVkIGlubmVyQm9keSBmcm9tICR7ZXZlbnQudXJsfSByZXNwb25zZVxyXG4gICAgICAgICAgICAgICAgICAgIGlubmVyQm9keSBi4buLIGzhu5NuZyB0cm9uZyBwaOG6o24gaOG7k2kgdOG7qyAke2V2ZW50LnVybH0gIFxyXG4gICAgICAgICAgICAgICAgICAgIGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGAke3RoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTH0vc3RhdGljL2V4Y2VsLXRlbXBsYXRlcy9gKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgWGxzeC9HZW5lcmF0ZVRlbXBsYXRlYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYFhsc3gvRXhwb3J0Q29yZVBhZ2VMaXN0R3JpZFRvRXhjZWxgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgWGxzeC9JbXBvcnRYbHN4VG9EYmApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBYbHN4UmVwb3J0L0dldFJlcG9ydGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBHZXQyQ19UQ1RXXzk4YCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEdldDJDX0JOVl8yMDA4YCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYFByaW50Q29udHJhY3RJbmZvYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYFByaW50SHVXb3JraW5nYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEV4cG9ydFRlbXBJbXBvcnRTYWxhcnlgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgRXhwb3J0VGVtcEltcG9ydFRpbWVTaGVldGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBJbXBvcnRUaW1lU2hlZXREYWlseWApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBFeHBvcnRUZW1wSW1wb3J0U2hpZnRTb3J0YCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEltcG9ydFNoaWZ0U29ydGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBJbXBvcnREZWNsYXJlU2VuaW9yaXR5YCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEV4cG9ydFRlbXBJbXBvcnRCYXNpY2ApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBJbXBvcnRSZWdpc3RlckxlYXZlYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEltcG9ydFJlZ2lzdGVyT1RgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgRXhwb3J0VGVtcGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBJbXBvcnRUZW1wYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYFByaW50YCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEZpbGVEb3dubG9hZGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQub2sgJiYgZXZlbnQuc3RhdHVzID09PSAyMDAgJiYgKGV2ZW50LmJvZHkuaW5uZXJCb2R5ID09PSB1bmRlZmluZWQgfHwgZXZlbnQuYm9keS5lcnJvclR5cGUgPT09IHVuZGVmaW5lZCB8fCBldmVudC5ib2R5Lm1lc3NhZ2VDb2RlID09PSB1bmRlZmluZWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGBcclxuICAgICAgICAgICAgICAgICAgICBJdCBsb29rcyBsaWtlIEFQSSBjb250cm9sbGVyIHdpdGggZW5kcG9pbnQgJHtldmVudC51cmx9IGRvZXMgbm90IGZvbGxvdyB0aGUgcnVsZSBvZiB0aGUgQXBwIChtdXN0IHJldHVybiBPayhGb3JtYXRlZFJlc3BvbnNlKSlcclxuICAgICAgICAgICAgICAgICAgICBJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdG8gY2hhbmdlIHRoZSBiYWNrIGVuZCBjb2RlLiBPdGhlcndpc2UgeW91ciBjb2RlIG1pZ2h0IG5vdCB3b3JrLCBvciBkb2VzIHdvcmsgYnV0IE5PVCBDT1JSRUNUTFkhXHJcbiAgICAgICAgICAgICAgICAgICAgYCwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudXJsPy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJy9hcGkvZ3JwYycpISA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SW5uZXJCb2R5ID0gdGhpcy5ncnBjU2VydmljZS5jb252ZXJ0VG9DYW1lbENhc2UoSlNPTi5wYXJzZSgoZXZlbnQuYm9keSBhcyBJRm9ybWF0ZWRSZXNwb25zZSk/LmlubmVyQm9keSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQuY2xvbmUoeyBib2R5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ldmVudC5ib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJCb2R5OiBuZXdJbm5lckJvZHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufSJdfQ==
93
+ // Fn style
94
+ export function responseInterceptor(req, next) {
95
+ const responseService = inject(ResponseService);
96
+ return next(req).pipe(map((event) => {
97
+ if (event instanceof HttpResponse) {
98
+ const body = event.body;
99
+ responseService.resolve(body);
100
+ }
101
+ return event;
102
+ }));
103
+ }
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9odHRwLWludGVyY2VwdG9ycy9yZXNwb25zZS1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNtRCxZQUFZLEVBRXJFLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBUS9ELE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsWUFDWSxZQUEwQixFQUMxQixnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDaEMsV0FBd0IsRUFDeEIsR0FBeUI7UUFKekIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7SUFBSSxDQUFDO0lBRTFDLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBSzlDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsRUFDOUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFO2dCQUMvQixJQUFJ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SUFDTixDQUFDOzhHQWpGUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOztBQXFGRCxXQUFXO0FBQ1gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQXFCLEVBQUUsSUFBbUI7SUFFMUUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFxQixFQUFFLEVBQUU7UUFDaEQsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFO1lBRS9CLE1BQU0sSUFBSSxHQUFzQixLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzNDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FFakM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRVIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50LCBIdHRwUmVzcG9uc2UsXHJcbiAgICBIdHRwSGFuZGxlckZuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vbGlicmFyaWVzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzcG9uc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVzcG9uc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IElGb3JtYXRlZFJlc3BvbnNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JRm9ybWF0ZWRSZXNwb25zZSc7XHJcbmltcG9ydCB7IEdycGNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZ3JwYy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2VJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZXNwb25zZVNlcnZpY2U6IFJlc3BvbnNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGdycGNTZXJ2aWNlOiBHcnBjU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UpIHsgfVxyXG5cclxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG5cclxuXHJcblxyXG5cclxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpLFxyXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJvZHk6IGFueSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5vayAmJiBldmVudC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gZXZlbnQuYm9keTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZVNlcnZpY2UucmVzb2x2ZShib2R5KTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKEpTT04uc3RyaW5naWZ5KGV2ZW50LCBudWxsLCAyKSwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSAmJiBldmVudC51cmw/LmluZGV4T2YoYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMfS9zdGF0aWMvZXhjZWwtdGVtcGxhdGVzL2ApISA8IDAgJiYgZXZlbnQub2sgJiYgZXZlbnQuc3RhdHVzID09PSAyMDAgJiYgKGV2ZW50LmJvZHkuaW5uZXJCb2R5Py5pbm5lckJvZHkgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFxyXG4gICAgICAgICAgICAgICAgICAgIE5lc3RlZCBpbm5lckJvZHkgZnJvbSAke2V2ZW50LnVybH0gcmVzcG9uc2VcclxuICAgICAgICAgICAgICAgICAgICBpbm5lckJvZHkgYuG7iyBs4buTbmcgdHJvbmcgcGjhuqNuIGjhu5NpIHThu6sgJHtldmVudC51cmx9ICBcclxuICAgICAgICAgICAgICAgICAgICBgLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9L3N0YXRpYy9leGNlbC10ZW1wbGF0ZXMvYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYFhsc3gvR2VuZXJhdGVUZW1wbGF0ZWApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBYbHN4L0V4cG9ydENvcmVQYWdlTGlzdEdyaWRUb0V4Y2VsYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYFhsc3gvSW1wb3J0WGxzeFRvRGJgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgWGxzeFJlcG9ydC9HZXRSZXBvcnRgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgR2V0MkNfVENUV185OGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBHZXQyQ19CTlZfMjAwOGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBQcmludENvbnRyYWN0SW5mb2ApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBQcmludEh1V29ya2luZ2ApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBFeHBvcnRUZW1wSW1wb3J0U2FsYXJ5YCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEV4cG9ydFRlbXBJbXBvcnRUaW1lU2hlZXRgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgSW1wb3J0VGltZVNoZWV0RGFpbHlgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgRXhwb3J0VGVtcEltcG9ydFNoaWZ0U29ydGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBJbXBvcnRTaGlmdFNvcnRgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgSW1wb3J0RGVjbGFyZVNlbmlvcml0eWApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBFeHBvcnRUZW1wSW1wb3J0QmFzaWNgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgSW1wb3J0UmVnaXN0ZXJMZWF2ZWApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBJbXBvcnRSZWdpc3Rlck9UYCkhIDwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBldmVudC51cmw/LmluZGV4T2YoYEV4cG9ydFRlbXBgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50LnVybD8uaW5kZXhPZihgSW1wb3J0VGVtcGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBQcmludGApISA8IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXZlbnQudXJsPy5pbmRleE9mKGBGaWxlRG93bmxvYWRgKSEgPCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGV2ZW50Lm9rICYmIGV2ZW50LnN0YXR1cyA9PT0gMjAwICYmIChldmVudC5ib2R5LmlubmVyQm9keSA9PT0gdW5kZWZpbmVkIHx8IGV2ZW50LmJvZHkuZXJyb3JUeXBlID09PSB1bmRlZmluZWQgfHwgZXZlbnQuYm9keS5tZXNzYWdlQ29kZSA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgXHJcbiAgICAgICAgICAgICAgICAgICAgSXQgbG9va3MgbGlrZSBBUEkgY29udHJvbGxlciB3aXRoIGVuZHBvaW50ICR7ZXZlbnQudXJsfSBkb2VzIG5vdCBmb2xsb3cgdGhlIHJ1bGUgb2YgdGhlIEFwcCAobXVzdCByZXR1cm4gT2soRm9ybWF0ZWRSZXNwb25zZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIGNoYW5nZSB0aGUgYmFjayBlbmQgY29kZS4gT3RoZXJ3aXNlIHlvdXIgY29kZSBtaWdodCBub3Qgd29yaywgb3IgZG9lcyB3b3JrIGJ1dCBOT1QgQ09SUkVDVExZIVxyXG4gICAgICAgICAgICAgICAgICAgIGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnVybD8udG9Mb3dlckNhc2UoKS5pbmRleE9mKCcvYXBpL2dycGMnKSEgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0lubmVyQm9keSA9IHRoaXMuZ3JwY1NlcnZpY2UuY29udmVydFRvQ2FtZWxDYXNlKEpTT04ucGFyc2UoKGV2ZW50LmJvZHkgYXMgSUZvcm1hdGVkUmVzcG9uc2UpPy5pbm5lckJvZHkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmNsb25lKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ldmVudC5ib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyQm9keTogbmV3SW5uZXJCb2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gRm4gc3R5bGVcclxuZXhwb3J0IGZ1bmN0aW9uIHJlc3BvbnNlSW50ZXJjZXB0b3IocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlckZuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcclxuXHJcbiAgICBjb25zdCByZXNwb25zZVNlcnZpY2UgPSBpbmplY3QoUmVzcG9uc2VTZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gbmV4dChyZXEpLnBpcGUobWFwKChldmVudDogSHR0cEV2ZW50PGFueT4pID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0gZXZlbnQuYm9keTtcclxuICAgICAgICAgICAgcmVzcG9uc2VTZXJ2aWNlLnJlc29sdmUoYm9keSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICB9KSk7XHJcblxyXG59Il19
@@ -13,4 +13,11 @@ export class TimeZoneInterceptor {
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TimeZoneInterceptor, decorators: [{
14
14
  type: Injectable
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS16b25lLWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvaHR0cC1pbnRlcmNlcHRvcnMvdGltZS16b25lLWludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdkIsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFdkQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztTQUMzRyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0FSVSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGltZVpvbmVJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG5cclxuICAgIGNvbnN0IG1vZGlmaWVkUmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBbmd1bGFyLUxvY2FsLVRpbWUtWm9uZS1JYW5hJywgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShtb2RpZmllZFJlcSk7XHJcbiAgfVxyXG59Il19
16
+ // Fn style
17
+ export function timeZoneInterceptor(req, next) {
18
+ const modifiedReq = req.clone({
19
+ headers: req.headers.set('Angular-Local-Time-Zone-Iana', Intl.DateTimeFormat().resolvedOptions().timeZone),
20
+ });
21
+ return next(modifiedReq);
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS16b25lLWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvaHR0cC1pbnRlcmNlcHRvcnMvdGltZS16b25lLWludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdkIsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFdkQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztTQUMzRyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0FSVSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7QUFZWCxXQUFXO0FBQ1gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQXFCLEVBQUUsSUFBbUI7SUFFNUUsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUMzRyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEhhbmRsZXJGbiwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUaW1lWm9uZUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBwdWJsaWMgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcblxyXG4gICAgY29uc3QgbW9kaWZpZWRSZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICBoZWFkZXJzOiByZXEuaGVhZGVycy5zZXQoJ0FuZ3VsYXItTG9jYWwtVGltZS1ab25lLUlhbmEnLCBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKG1vZGlmaWVkUmVxKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZuIHN0eWxlXHJcbmV4cG9ydCBmdW5jdGlvbiB0aW1lWm9uZUludGVyY2VwdG9yKHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXJGbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcblxyXG4gIGNvbnN0IG1vZGlmaWVkUmVxID0gcmVxLmNsb25lKHtcclxuICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnQW5ndWxhci1Mb2NhbC1UaW1lLVpvbmUtSWFuYScsIEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSksXHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBuZXh0KG1vZGlmaWVkUmVxKTtcclxufSJdfQ==
@@ -1,8 +1,12 @@
1
- import { filter, finalize, switchMap, tap, take } from 'rxjs/operators';
2
- import { Injectable } from '@angular/core';
3
- import { BehaviorSubject, throwError, catchError } from 'rxjs';
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { BehaviorSubject, catchError, filter, finalize, switchMap, take, tap, throwError } from 'rxjs';
3
+ import { AuthService } from '../services/auth.service';
4
4
  import { InterceptorStatisticHeader } from "./base-url-interceptor";
5
+ import { StatisticAuthService } from '../services/statistic-auth.service';
5
6
  import { HttpResponse } from '@angular/common/http';
7
+ import { AlertService } from '../libraries/alert/alert.service';
8
+ import { MultiLanguageService } from '../services/multi-language.service';
9
+ import { alertOptions } from '../constants/alertOptions';
6
10
  import * as i0 from "@angular/core";
7
11
  import * as i1 from "../services/auth.service";
8
12
  import * as i2 from "../services/statistic-auth.service";
@@ -43,16 +47,6 @@ export class TokenInterceptor {
43
47
  console.log("app.config.json excluded");
44
48
  return next.handle(req);
45
49
  }
46
- /* WHY???
47
- if (req.url.includes("GenerateTemplate")) {
48
- console.log("GenerateTemplate excluded")
49
- return next.handle(req);
50
- }
51
- if (req.url.includes("ExportCorePageListGridToExcel")) {
52
- console.log("ExportCorePageListGridToExcel excluded")
53
- return next.handle(req);
54
- }
55
- */
56
50
  let ok;
57
51
  // extend server response observable with logging
58
52
  return next.handle(req)
@@ -151,4 +145,110 @@ export class TokenInterceptor {
151
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TokenInterceptor, decorators: [{
152
146
  type: Injectable
153
147
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.StatisticAuthService }, { type: i3.AppInitializationService }, { type: i4.Router }] });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4taW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9odHRwLWludGVyY2VwdG9ycy90b2tlbi1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3BFLE9BQU8sRUFDd0MsWUFBWSxFQUMxRCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFHOUIsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixzQkFBc0IsQ0FBQyxPQUF5QjtRQUU1QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXhFLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXhELGdFQUFnRTtRQUNoRSxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNkLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO1FBRUQsa0VBQWtFO1FBQ2xFLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNqQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxF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LFVBQVUsRUFBRSxDQUFDO3lCQUM1QjtvQkFDTCxDQUFDLENBQUMsQ0FBQTtvQkFFRixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxDQUFDLENBQUMsQ0FDTCxDQUFBO2FBQ0o7UUFDTCxDQUFDLENBQUM7UUFDRiwwREFBMEQ7UUFDMUQsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUN0QixDQUFDO0lBQ1YsQ0FBQzs4R0FwTFEsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRhcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIHRocm93RXJyb3IsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEludGVyY2VwdG9yU3RhdGlzdGljSGVhZGVyIH0gZnJvbSBcIi4vYmFzZS11cmwtaW50ZXJjZXB0b3JcIjtcclxuaW1wb3J0IHsgU3RhdGlzdGljQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdGF0aXN0aWMtYXV0aC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcblxyXG4gICAgYWRkQXV0aGVudGljYXRpb25Ub2tlbihyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogSHR0cFJlcXVlc3Q8YW55PiB7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzU3RhdGlzdGljID0gcmVxdWVzdC5oZWFkZXJzLmhhcyhJbnRlcmNlcHRvclN0YXRpc3RpY0hlYWRlcik7XHJcbiAgICAgICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpc1N0YXRpc3RpYyA/IHRoaXMuc3RhdGlzdGljQXV0aFNlcnZpY2UgOiB0aGlzLmF1dGg7XHJcblxyXG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCk7XHJcblxyXG4gICAgICAgIC8vIElmIGFjY2VzcyB0b2tlbiBpcyBudWxsIHRoaXMgbWVhbnMgdGhhdCB1c2VyIGlzIG5vdCBsb2dnZWQgaW5cclxuICAgICAgICAvLyBBbmQgd2UgcmV0dXJuIHRoZSBvcmlnaW5hbCByZXF1ZXN0XHJcbiAgICAgICAgaWYgKCFhY2Nlc3NUb2tlbikge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFdlIGNsb25lIHRoZSByZXF1ZXN0LCBiZWNhdXNlIHRoZSBvcmlnaW5hbCByZXF1ZXN0IGlzIGltbXV0YWJsZVxyXG4gICAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcclxuICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVmcmVzaFRva2VuSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgLy8gUmVmcmVzaCBUb2tlbiBTdWJqZWN0IHRyYWNrcyB0aGUgY3VycmVudCB0b2tlbiwgXHJcbiAgICAvLyBvciBpcyBudWxsIGlmIG5vIHRva2VuIGlzIGN1cnJlbnRseSBhdmFpbGFibGUgKGUuZy4gcmVmcmVzaCBwZW5kaW5nKS5cclxuICAgIHByaXZhdGUgcmVmcmVzaFRva2VuU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oXHJcbiAgICAgICAgbnVsbFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgc3RhdGlzdGljQXV0aFNlcnZpY2U6IFN0YXRpc3RpY0F1dGhTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgYXBwSW5pdGlhbGl6YXRpb25TZXJ2aWNlOiBBcHBJbml0aWFsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzU3RhdGlzdGljID0gcmVxLmhlYWRlcnMuaGFzKEludGVyY2VwdG9yU3RhdGlzdGljSGVhZGVyKTtcclxuICAgICAgICBjb25zdCBhdXRoU2VydmljZSA9IGlzU3RhdGlzdGljID8gdGhpcy5zdGF0aXN0aWNBdXRoU2VydmljZSA6IHRoaXMuYXV0aDtcclxuXHJcblxyXG4gICAgICAgIGlmIChyZXEudXJsID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVxLnVybC5pbmNsdWRlcyhcImFwcC5jb25maWcuanNvblwiKSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImFwcC5jb25maWcuanNvbiBleGNsdWRlZFwiKVxyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFdIWT8/P1xyXG4gICAgICAgIGlmIChyZXEudXJsLmluY2x1ZGVzKFwiR2VuZXJhdGVUZW1wbGF0ZVwiKSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkdlbmVyYXRlVGVtcGxhdGUgZXhjbHVkZWRcIilcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXEudXJsLmluY2x1ZGVzKFwiRXhwb3J0Q29yZVBhZ2VMaXN0R3JpZFRvRXhjZWxcIikpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFeHBvcnRDb3JlUGFnZUxpc3RHcmlkVG9FeGNlbCBleGNsdWRlZFwiKVxyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgbGV0IG9rOiBzdHJpbmc7XHJcbiAgICAgICAgLy8gZXh0ZW5kIHNlcnZlciByZXNwb25zZSBvYnNlcnZhYmxlIHdpdGggbG9nZ2luZ1xyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFwKHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBTdWNjZWVkcyB3aGVuIHRoZXJlIGlzIGEgcmVzcG9uc2U7IGlnbm9yZSBvdGhlciBldmVudHNcclxuICAgICAgICAgICAgICAgICAgICBuZXh0OiBldmVudCA9PiAob2sgPSBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSA/ICdzdWNjZWVkZWQnIDogJycpLFxyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7IH0gLy8gd2UgZG8gbm90IGltcGxlbWVudCB0aGUgbG9naWMgaGVyZVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAvLyBCdXQgaGVyZTpcclxuICAgICAgICAgICAgICAgIC8vIE9wZXJhdGlvbiBmYWlsZWQ7IGVycm9yIGlzIGFuIEh0dHBFcnJvclJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChyZXNwb25zZTogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiVG9rZW5JbnRlcmNlcHRvciBFcnJvcjogXCIsIHJlcSwgcmVzcG9uc2UpXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcmVmcmVzaCB0b2tlbiBmb3Igc29tZSByZXF1ZXN0cyBcclxuICAgICAgICAgICAgICAgICAgICAvLyBsaWtlIGxvZ2luIG9yIHJlZnJlc2ggdG9rZW4gaXRzZWxmXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU28gd2UgdmVyaWZ5IHVybCBhbmQgd2UgdGhyb3cgYW4gZXJyb3IgaWYgaXQncyB0aGUgY2FzZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdMT0dJTicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcS51cmwudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnUkVGUkVTSF9UT0tFTicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcS51cmwudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnUkVGUkVTSFRPS0VOJylcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gYW5vdGhlciBjaGVjayB0byBzZWUgaWYgcmVmcmVzaCB0b2tlbiBmYWlsZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gbG9nb3V0IHVzZXIgYW5kIHRvIHJlZGlyZWN0IGl0IHRvIGxvZ2luIHBhZ2VcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS51cmwudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnUkVGUkVTSF9UT0tFTicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEudXJsLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ1JFRlJFU0hUT0tFTicpXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwSW5pdGlhbGl6YXRpb25TZXJ2aWNlLmluaXRpYWxpemluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VydmljZS51c2VyTG9nb3V0KCkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UucG9zdExvZ291dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZXJyb3Igc3RhdHVzIGlzIGRpZmZlcmVudCB0aGFuIDQwMSBcclxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSB3YW50IHRvIHNraXAgcmVmcmVzaCB0b2tlblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNvIHdlIGNoZWNrIHRoYXQgYW5kIHRocm93IHRoZSBlcnJvciBpZiBpdCdzIHRoZSBjYXNlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gNDAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihyZXNwb25zZS5lcnJvcikpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVmcmVzaFRva2VuSW5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiByZWZyZXNoVG9rZW5JblByb2dyZXNzIGlzIHRydWUsIHdlIHdpbGwgd2FpdCB1bnRpbCByZWZyZXNoVG9rZW5TdWJqZWN0IGhhcyBhIG5vbi1udWxsIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOKAkyB3aGljaCBtZWFucyB0aGUgbmV3IHRva2VuIGlzIHJlYWR5IGFuZCB3ZSBjYW4gcmV0cnkgdGhlIHJlcXVlc3QgYWdhaW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyOiBFbWl0IHZhbHVlcyB0aGF0IHBhc3MgdGhlIHByb3ZpZGVkIGNvbmRpdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHJlc3VsdCA9PiByZXN1bHQgIT09IG51bGwpLFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIHN3aXRjaE1hcCBhbmQgb3RoZXIgZmxhdHRlbmluZyBvcGVyYXRvcnMgaXMgdGhlIGNhbmNlbGxpbmcgZWZmZWN0LiBPbiBlYWNoIGVtaXNzaW9uIHRoZSBwcmV2aW91cyBpbm5lciBvYnNlcnZhYmxlICh0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiB5b3Ugc3VwcGxpZWQpIGlzIGNhbmNlbGxlZCBhbmQgdGhlIG5ldyBvYnNlcnZhYmxlIGlzIHN1YnNjcmliZWQuIFlvdSBjYW4gcmVtZW1iZXIgdGhpcyBieSB0aGUgcGhyYXNlIHN3aXRjaCB0byBhIG5ldyBvYnNlcnZhYmxlLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBuZXh0LmhhbmRsZSh0aGlzLmFkZEF1dGhlbnRpY2F0aW9uVG9rZW4ocmVxKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlPy50b1VwcGVyQ2FzZSgpIHx8IHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgcmVmcmVzaFRva2VuU3ViamVjdCB0byBudWxsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHN1YnNlcXVlbnQgQVBJIGNhbGxzIHdpbGwgd2FpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnRpbCB0aGUgbmV3IHRva2VuIGhhcyBiZWVuIHJldHJpZXZlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblN1YmplY3QubmV4dChudWxsKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGwgYXV0aC5yZWZyZXNoQWNjZXNzVG9rZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gKHRoaXMgaXMgYW4gT2JzZXJ2YWJsZSB0aGF0IHdpbGwgYmUgcmV0dXJuZWQpXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoVG9rZW5SZXEgPSBhdXRoU2VydmljZS50cnlSZXN0b3JlU2Vzc2lvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZnJlc2hUb2tlblJlcS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiBzd2l0Y2hNYXAgYW5kIG90aGVyIGZsYXR0ZW5pbmcgb3BlcmF0b3JzIGlzIHRoZSBjYW5jZWxsaW5nIGVmZmVjdC4gT24gZWFjaCBlbWlzc2lvbiB0aGUgcHJldmlvdXMgaW5uZXIgb2JzZXJ2YWJsZSAodGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24geW91IHN1cHBsaWVkKSBpcyBjYW5jZWxsZWQgYW5kIHRoZSBuZXcgb2JzZXJ2YWJsZSBpcyBzdWJzY3JpYmVkLiBZb3UgY2FuIHJlbWVtYmVyIHRoaXMgYnkgdGhlIHBocmFzZSBzd2l0Y2ggdG8gYSBuZXcgb2JzZXJ2YWJsZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9rZW4gPSAnJztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm9rICYmIHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZXJ2aWNlLmRhdGEkLm5leHQocmVzcG9uc2UuYm9keSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gcmVzcG9uc2UuYm9keS5qd3RUb2tlbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhbGwgdG8gcmVmcmVzaFRva2VuIGNvbXBsZXRlcyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSByZXNldCB0aGUgcmVmcmVzaFRva2VuSW5Qcm9ncmVzcyB0byBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgbmV4dCB0aW1lIHRoZSB0b2tlbiBuZWVkcyB0byBiZSByZWZyZXNoZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblN1YmplY3QubmV4dCh0b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UmVxID0gdGhpcy5hZGRBdXRoZW50aWNhdGlvblRva2VuKHJlcSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKG5ld1JlcSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JblByb2dyZXNzID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicmVmcmVzaFRva2VuUmVxIGNhdGNoRXJyb3JcIiwgZXJyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UudXNlckxvZ291dCgpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UucG9zdExvZ291dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGVycikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgLy8gTG9nIHdoZW4gcmVzcG9uc2Ugb2JzZXJ2YWJsZSBlaXRoZXIgY29tcGxldGVzIG9yIGVycm9yc1xyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4geyB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
148
+ // Fn style
149
+ export function tokenInterceptor(req, next) {
150
+ const isStatistic = req.headers.has(InterceptorStatisticHeader);
151
+ let ok;
152
+ const authService = isStatistic ? inject(StatisticAuthService) : inject(AuthService);
153
+ const alertService = inject(AlertService);
154
+ const mls = inject(MultiLanguageService);
155
+ const addAuthenticationToken = (request) => {
156
+ // Get access token from Local Storage
157
+ const accessToken = authService.getAuthorizationToken();
158
+ // If access token is null this means that user is not logged in
159
+ // And we return the original request
160
+ if (!accessToken) {
161
+ return request;
162
+ }
163
+ // We clone the request, because the original request is immutable
164
+ return request.clone({
165
+ headers: request.headers.set('Authorization', 'Bearer ' + accessToken)
166
+ });
167
+ };
168
+ // extend server response observable with logging
169
+ return next(req)
170
+ .pipe(
171
+ //tap: Transparently perform actions or side-effects, such as logging.
172
+ tap({
173
+ // Succeeds when there is a response; ignore other events
174
+ next: event => (ok = event instanceof HttpResponse ? 'succeeded' : ''),
175
+ error: () => { } // we do not implement the logic here
176
+ }),
177
+ // But here:
178
+ // Operation failed; error is an HttpErrorResponse
179
+ catchError((response) => {
180
+ console.log("Error: ", response);
181
+ // We don't want to refresh token for some requests
182
+ // like login or refresh token itself
183
+ // So we verify url and we throw an error if it's the case
184
+ if (req.url.toUpperCase().includes('LOGIN') ||
185
+ req.url.toUpperCase().includes('REFRESH_TOKEN') ||
186
+ req.url.toUpperCase().includes('REFRESHTOKEN')) {
187
+ // We do another check to see if refresh token failed
188
+ // In this case we want to logout user and to redirect it to login page
189
+ if (req.url.toUpperCase().includes('REFRESH_TOKEN') ||
190
+ req.url.toUpperCase().includes('REFRESHTOKEN')) {
191
+ authService.userLogout().subscribe(x => {
192
+ if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
193
+ authService.postLogout();
194
+ }
195
+ });
196
+ }
197
+ return throwError(() => new Error(JSON.stringify(response)));
198
+ }
199
+ // If error status is different than 401
200
+ // we want to skip refresh token
201
+ // So we check that and throw the error if it's the case
202
+ if (response.status !== 401) {
203
+ return throwError(() => new Error(response.error));
204
+ }
205
+ if (authService.refreshTokenInProgress) {
206
+ // If refreshTokenInProgress is true, we will wait until refreshTokenSubject has a non-null value
207
+ // – which means the new token is ready and we can retry the request again
208
+ return authService.refreshTokenSubject.pipe(
209
+ // filter: Emit values that pass the provided condition
210
+ filter(result => result !== null), take(1),
211
+ //The main difference between switchMap and other flattening operators is the cancelling effect. On each emission the previous inner observable (the result of the function you supplied) is cancelled and the new observable is subscribed. You can remember this by the phrase switch to a new observable.
212
+ switchMap(() => next(addAuthenticationToken(req))));
213
+ }
214
+ else {
215
+ console.error(response.error?.message?.toUpperCase() || response);
216
+ authService.refreshTokenInProgress = true;
217
+ // Set the refreshTokenSubject to null
218
+ // so that subsequent API calls will wait
219
+ // until the new token has been retrieved
220
+ authService.refreshTokenSubject.next(null);
221
+ // Call auth.refreshAccessToken
222
+ // (this is an Observable that will be returned)
223
+ const start = new Date().getTime();
224
+ const refreshTokenReq = authService.tryRestoreSession();
225
+ return refreshTokenReq.pipe(
226
+ //The main difference between switchMap and other flattening operators is the cancelling effect. On each emission the previous inner observable (the result of the function you supplied) is cancelled and the new observable is subscribed. You can remember this by the phrase switch to a new observable.
227
+ switchMap((x) => {
228
+ let token = '';
229
+ authService.resolveAuthenticateResponse(x);
230
+ // When the call to refreshToken completes
231
+ // we reset the refreshTokenInProgress to false
232
+ // for the next time the token needs to be refreshed
233
+ authService.refreshTokenInProgress = false;
234
+ const end = new Date().getTime();
235
+ const duration = (end - start) / 1000;
236
+ alertService.info(mls.trans("REFRESH_TOKEN_COMPLETE") + ` (${duration}s)`, alertOptions);
237
+ authService.refreshTokenSubject.next(token);
238
+ const newReq = addAuthenticationToken(req);
239
+ return next(newReq);
240
+ }), catchError((err) => {
241
+ authService.refreshTokenInProgress = false;
242
+ authService.userLogout().subscribe(x => {
243
+ if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
244
+ authService.postLogout();
245
+ }
246
+ });
247
+ return throwError(() => new Error(err));
248
+ }));
249
+ }
250
+ }),
251
+ // Log when response observable either completes or errors
252
+ finalize(() => { }));
253
+ }
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4taW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9odHRwLWludGVyY2VwdG9ycy90b2tlbi1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUluSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFMUUsT0FBTyxFQUN3QyxZQUFZLEVBQzFELE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBR3pELE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsc0JBQXNCLENBQUMsT0FBeUI7UUFFNUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNwRSxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV4RSxNQUFNLFdBQVcsR0FBRyxXQUFX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QU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNwQixXQUFXLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO2dCQUUzQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNuQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLEtBQUssR0FBRyxFQUFFO3dCQUN4RCxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7cUJBQzVCO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtTQUNKO0lBQ0wsQ0FBQyxDQUFDO0lBQ0YsMERBQTBEO0lBQzFELFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FDdEIsQ0FBQztBQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyRm4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcEluaXRpYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcC1pbml0aWFsaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW50ZXJjZXB0b3JTdGF0aXN0aWNIZWFkZXIgfSBmcm9tIFwiLi9iYXNlLXVybC1pbnRlcmNlcHRvclwiO1xyXG5pbXBvcnQgeyBTdGF0aXN0aWNBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N0YXRpc3RpYy1hdXRoLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEh0dHBJbnRlcmNlcHRvciwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2VcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2xpYnJhcmllcy9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMgfSBmcm9tICcuLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRva2VuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cclxuICAgIGFkZEF1dGhlbnRpY2F0aW9uVG9rZW4ocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IEh0dHBSZXF1ZXN0PGFueT4ge1xyXG5cclxuICAgICAgICBjb25zdCBpc1N0YXRpc3RpYyA9IHJlcXVlc3QuaGVhZGVycy5oYXMoSW50ZXJjZXB0b3JTdGF0aXN0aWNIZWFkZXIpO1xyXG4gICAgICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaXNTdGF0aXN0aWMgPyB0aGlzLnN0YXRpc3RpY0F1dGhTZXJ2aWNlIDogdGhpcy5hdXRoO1xyXG5cclxuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpO1xyXG5cclxuICAgICAgICAvLyBJZiBhY2Nlc3MgdG9rZW4gaXMgbnVsbCB0aGlzIG1lYW5zIHRoYXQgdXNlciBpcyBub3QgbG9nZ2VkIGluXHJcbiAgICAgICAgLy8gQW5kIHdlIHJldHVybiB0aGUgb3JpZ2luYWwgcmVxdWVzdFxyXG4gICAgICAgIGlmICghYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBXZSBjbG9uZSB0aGUgcmVxdWVzdCwgYmVjYXVzZSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBpcyBpbW11dGFibGVcclxuICAgICAgICByZXR1cm4gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbilcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgIC8vIFJlZnJlc2ggVG9rZW4gU3ViamVjdCB0cmFja3MgdGhlIGN1cnJlbnQgdG9rZW4sIFxyXG4gICAgLy8gb3IgaXMgbnVsbCBpZiBubyB0b2tlbiBpcyBjdXJyZW50bHkgYXZhaWxhYmxlIChlLmcuIHJlZnJlc2ggcGVuZGluZykuXHJcbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFxyXG4gICAgICAgIG51bGxcclxuICAgICk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHN0YXRpc3RpY0F1dGhTZXJ2aWNlOiBTdGF0aXN0aWNBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGFwcEluaXRpYWxpemF0aW9uU2VydmljZTogQXBwSW5pdGlhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG5cclxuICAgICAgICBjb25zdCBpc1N0YXRpc3RpYyA9IHJlcS5oZWFkZXJzLmhhcyhJbnRlcmNlcHRvclN0YXRpc3RpY0hlYWRlcik7XHJcbiAgICAgICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpc1N0YXRpc3RpYyA/IHRoaXMuc3RhdGlzdGljQXV0aFNlcnZpY2UgOiB0aGlzLmF1dGg7XHJcblxyXG5cclxuICAgICAgICBpZiAocmVxLnVybCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlcS51cmwuaW5jbHVkZXMoXCJhcHAuY29uZmlnLmpzb25cIikpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJhcHAuY29uZmlnLmpzb24gZXhjbHVkZWRcIilcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgb2s6IHN0cmluZztcclxuICAgICAgICAvLyBleHRlbmQgc2VydmVyIHJlc3BvbnNlIG9ic2VydmFibGUgd2l0aCBsb2dnaW5nXHJcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFN1Y2NlZWRzIHdoZW4gdGhlcmUgaXMgYSByZXNwb25zZTsgaWdub3JlIG90aGVyIGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IGV2ZW50ID0+IChvayA9IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlID8gJ3N1Y2NlZWRlZCcgOiAnJyksXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHsgfSAvLyB3ZSBkbyBub3QgaW1wbGVtZW50IHRoZSBsb2dpYyBoZXJlXHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIC8vIEJ1dCBoZXJlOlxyXG4gICAgICAgICAgICAgICAgLy8gT3BlcmF0aW9uIGZhaWxlZDsgZXJyb3IgaXMgYW4gSHR0cEVycm9yUmVzcG9uc2VcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJUb2tlbkludGVyY2VwdG9yIEVycm9yOiBcIiwgcmVxLCByZXNwb25zZSlcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byByZWZyZXNoIHRva2VuIGZvciBzb21lIHJlcXVlc3RzIFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGxpa2UgbG9naW4gb3IgcmVmcmVzaCB0b2tlbiBpdHNlbGZcclxuICAgICAgICAgICAgICAgICAgICAvLyBTbyB3ZSB2ZXJpZnkgdXJsIGFuZCB3ZSB0aHJvdyBhbiBlcnJvciBpZiBpdCdzIHRoZSBjYXNlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXEudXJsLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ0xPR0lOJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdSRUZSRVNIX1RPS0VOJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdSRUZSRVNIVE9LRU4nKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBkbyBhbm90aGVyIGNoZWNrIHRvIHNlZSBpZiByZWZyZXNoIHRva2VuIGZhaWxlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBsb2dvdXQgdXNlciBhbmQgdG8gcmVkaXJlY3QgaXQgdG8gbG9naW4gcGFnZVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdSRUZSRVNIX1RPS0VOJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS51cmwudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnUkVGUkVTSFRPS0VOJylcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBJbml0aWFsaXphdGlvblNlcnZpY2UuaW5pdGlhbGl6aW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZXJ2aWNlLnVzZXJMb2dvdXQoKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VydmljZS5wb3N0TG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShyZXNwb25zZSkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBlcnJvciBzdGF0dXMgaXMgZGlmZmVyZW50IHRoYW4gNDAxIFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8gc2tpcCByZWZyZXNoIHRva2VuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU28gd2UgY2hlY2sgdGhhdCBhbmQgdGhyb3cgdGhlIGVycm9yIGlmIGl0J3MgdGhlIGNhc2VcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKHJlc3BvbnNlLmVycm9yKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW5JblByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgaXMgdHJ1ZSwgd2Ugd2lsbCB3YWl0IHVudGlsIHJlZnJlc2hUb2tlblN1YmplY3QgaGFzIGEgbm9uLW51bGwgdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g4oCTIHdoaWNoIG1lYW5zIHRoZSBuZXcgdG9rZW4gaXMgcmVhZHkgYW5kIHdlIGNhbiByZXRyeSB0aGUgcmVxdWVzdCBhZ2FpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0LnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaWx0ZXI6IEVtaXQgdmFsdWVzIHRoYXQgcGFzcyB0aGUgcHJvdmlkZWQgY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIocmVzdWx0ID0+IHJlc3VsdCAhPT0gbnVsbCksXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgbWFpbiBkaWZmZXJlbmNlIGJldHdlZW4gc3dpdGNoTWFwIGFuZCBvdGhlciBmbGF0dGVuaW5nIG9wZXJhdG9ycyBpcyB0aGUgY2FuY2VsbGluZyBlZmZlY3QuIE9uIGVhY2ggZW1pc3Npb24gdGhlIHByZXZpb3VzIGlubmVyIG9ic2VydmFibGUgKHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uIHlvdSBzdXBwbGllZCkgaXMgY2FuY2VsbGVkIGFuZCB0aGUgbmV3IG9ic2VydmFibGUgaXMgc3Vic2NyaWJlZC4gWW91IGNhbiByZW1lbWJlciB0aGlzIGJ5IHRoZSBwaHJhc2Ugc3dpdGNoIHRvIGEgbmV3IG9ic2VydmFibGUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkQXV0aGVudGljYXRpb25Ub2tlbihyZXEpKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2U/LnRvVXBwZXJDYXNlKCkgfHwgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSByZWZyZXNoVG9rZW5TdWJqZWN0IHRvIG51bGwgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQgc3Vic2VxdWVudCBBUEkgY2FsbHMgd2lsbCB3YWl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVudGlsIHRoZSBuZXcgdG9rZW4gaGFzIGJlZW4gcmV0cmlldmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KG51bGwpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCBhdXRoLnJlZnJlc2hBY2Nlc3NUb2tlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAodGhpcyBpcyBhbiBPYnNlcnZhYmxlIHRoYXQgd2lsbCBiZSByZXR1cm5lZClcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlblJlcSA9IGF1dGhTZXJ2aWNlLnRyeVJlc3RvcmVTZXNzaW9uKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmcmVzaFRva2VuUmVxLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIHN3aXRjaE1hcCBhbmQgb3RoZXIgZmxhdHRlbmluZyBvcGVyYXRvcnMgaXMgdGhlIGNhbmNlbGxpbmcgZWZmZWN0LiBPbiBlYWNoIGVtaXNzaW9uIHRoZSBwcmV2aW91cyBpbm5lciBvYnNlcnZhYmxlICh0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiB5b3Ugc3VwcGxpZWQpIGlzIGNhbmNlbGxlZCBhbmQgdGhlIG5ldyBvYnNlcnZhYmxlIGlzIHN1YnNjcmliZWQuIFlvdSBjYW4gcmVtZW1iZXIgdGhpcyBieSB0aGUgcGhyYXNlIHN3aXRjaCB0byBhIG5ldyBvYnNlcnZhYmxlLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2tlbiA9ICcnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uub2sgJiYgcmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UuZGF0YSQubmV4dChyZXNwb25zZS5ib2R5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSByZXNwb25zZS5ib2R5Lmp3dFRva2VuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgY2FsbCB0byByZWZyZXNoVG9rZW4gY29tcGxldGVzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHJlc2V0IHRoZSByZWZyZXNoVG9rZW5JblByb2dyZXNzIHRvIGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSBuZXh0IHRpbWUgdGhlIHRva2VuIG5lZWRzIHRvIGJlIHJlZnJlc2hlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSZXEgPSB0aGlzLmFkZEF1dGhlbnRpY2F0aW9uVG9rZW4ocmVxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUobmV3UmVxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJyZWZyZXNoVG9rZW5SZXEgY2F0Y2hFcnJvclwiLCBlcnIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdnZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VydmljZS51c2VyTG9nb3V0KCkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VydmljZS5wb3N0TG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAvLyBMb2cgd2hlbiByZXNwb25zZSBvYnNlcnZhYmxlIGVpdGhlciBjb21wbGV0ZXMgb3IgZXJyb3JzXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7IH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vLyBGbiBzdHlsZVxyXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5JbnRlcmNlcHRvcihyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xyXG5cclxuICAgIGNvbnN0IGlzU3RhdGlzdGljID0gcmVxLmhlYWRlcnMuaGFzKEludGVyY2VwdG9yU3RhdGlzdGljSGVhZGVyKTtcclxuXHJcbiAgICBsZXQgb2s6IHN0cmluZztcclxuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaXNTdGF0aXN0aWMgPyBpbmplY3QoU3RhdGlzdGljQXV0aFNlcnZpY2UpIDogaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuICAgIGNvbnN0IGFsZXJ0U2VydmljZSA9IGluamVjdChBbGVydFNlcnZpY2UpO1xyXG4gICAgY29uc3QgbWxzID0gaW5qZWN0KE11bHRpTGFuZ3VhZ2VTZXJ2aWNlKTtcclxuXHJcbiAgICBjb25zdCBhZGRBdXRoZW50aWNhdGlvblRva2VuID0gKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pID0+IHtcclxuICAgICAgICAvLyBHZXQgYWNjZXNzIHRva2VuIGZyb20gTG9jYWwgU3RvcmFnZVxyXG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCk7XHJcblxyXG4gICAgICAgIC8vIElmIGFjY2VzcyB0b2tlbiBpcyBudWxsIHRoaXMgbWVhbnMgdGhhdCB1c2VyIGlzIG5vdCBsb2dnZWQgaW5cclxuICAgICAgICAvLyBBbmQgd2UgcmV0dXJuIHRoZSBvcmlnaW5hbCByZXF1ZXN0XHJcbiAgICAgICAgaWYgKCFhY2Nlc3NUb2tlbikge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFdlIGNsb25lIHRoZSByZXF1ZXN0LCBiZWNhdXNlIHRoZSBvcmlnaW5hbCByZXF1ZXN0IGlzIGltbXV0YWJsZVxyXG4gICAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcclxuICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGV4dGVuZCBzZXJ2ZXIgcmVzcG9uc2Ugb2JzZXJ2YWJsZSB3aXRoIGxvZ2dpbmdcclxuICAgIHJldHVybiBuZXh0KHJlcSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgLy90YXA6IFRyYW5zcGFyZW50bHkgcGVyZm9ybSBhY3Rpb25zIG9yIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBsb2dnaW5nLlxyXG4gICAgICAgICAgICB0YXAoe1xyXG4gICAgICAgICAgICAgICAgLy8gU3VjY2VlZHMgd2hlbiB0aGVyZSBpcyBhIHJlc3BvbnNlOyBpZ25vcmUgb3RoZXIgZXZlbnRzXHJcbiAgICAgICAgICAgICAgICBuZXh0OiBldmVudCA9PiAob2sgPSBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSA/ICdzdWNjZWVkZWQnIDogJycpLFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHsgfSAvLyB3ZSBkbyBub3QgaW1wbGVtZW50IHRoZSBsb2dpYyBoZXJlXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAvLyBCdXQgaGVyZTpcclxuICAgICAgICAgICAgLy8gT3BlcmF0aW9uIGZhaWxlZDsgZXJyb3IgaXMgYW4gSHR0cEVycm9yUmVzcG9uc2VcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3I6IFwiLCByZXNwb25zZSlcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHJlZnJlc2ggdG9rZW4gZm9yIHNvbWUgcmVxdWVzdHMgXHJcbiAgICAgICAgICAgICAgICAvLyBsaWtlIGxvZ2luIG9yIHJlZnJlc2ggdG9rZW4gaXRzZWxmXHJcbiAgICAgICAgICAgICAgICAvLyBTbyB3ZSB2ZXJpZnkgdXJsIGFuZCB3ZSB0aHJvdyBhbiBlcnJvciBpZiBpdCdzIHRoZSBjYXNlXHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdMT0dJTicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdSRUZSRVNIX1RPS0VOJykgfHxcclxuICAgICAgICAgICAgICAgICAgICByZXEudXJsLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ1JFRlJFU0hUT0tFTicpXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBkbyBhbm90aGVyIGNoZWNrIHRvIHNlZSBpZiByZWZyZXNoIHRva2VuIGZhaWxlZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIGxvZ291dCB1c2VyIGFuZCB0byByZWRpcmVjdCBpdCB0byBsb2dpbiBwYWdlXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdSRUZSRVNIX1RPS0VOJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnVybC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdSRUZSRVNIVE9LRU4nKVxyXG5cclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UudXNlckxvZ291dCgpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VydmljZS5wb3N0TG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiBlcnJvciBzdGF0dXMgaXMgZGlmZmVyZW50IHRoYW4gNDAxIFxyXG4gICAgICAgICAgICAgICAgLy8gd2Ugd2FudCB0byBza2lwIHJlZnJlc2ggdG9rZW5cclxuICAgICAgICAgICAgICAgIC8vIFNvIHdlIGNoZWNrIHRoYXQgYW5kIHRocm93IHRoZSBlcnJvciBpZiBpdCdzIHRoZSBjYXNlXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IocmVzcG9uc2UuZXJyb3IpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoYXV0aFNlcnZpY2UucmVmcmVzaFRva2VuSW5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgaXMgdHJ1ZSwgd2Ugd2lsbCB3YWl0IHVudGlsIHJlZnJlc2hUb2tlblN1YmplY3QgaGFzIGEgbm9uLW51bGwgdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAvLyDigJMgd2hpY2ggbWVhbnMgdGhlIG5ldyB0b2tlbiBpcyByZWFkeSBhbmQgd2UgY2FuIHJldHJ5IHRoZSByZXF1ZXN0IGFnYWluXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlblN1YmplY3QucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyOiBFbWl0IHZhbHVlcyB0aGF0IHBhc3MgdGhlIHByb3ZpZGVkIGNvbmRpdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIocmVzdWx0ID0+IHJlc3VsdCAhPT0gbnVsbCksXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL1RoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiBzd2l0Y2hNYXAgYW5kIG90aGVyIGZsYXR0ZW5pbmcgb3BlcmF0b3JzIGlzIHRoZSBjYW5jZWxsaW5nIGVmZmVjdC4gT24gZWFjaCBlbWlzc2lvbiB0aGUgcHJldmlvdXMgaW5uZXIgb2JzZXJ2YWJsZSAodGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24geW91IHN1cHBsaWVkKSBpcyBjYW5jZWxsZWQgYW5kIHRoZSBuZXcgb2JzZXJ2YWJsZSBpcyBzdWJzY3JpYmVkLiBZb3UgY2FuIHJlbWVtYmVyIHRoaXMgYnkgdGhlIHBocmFzZSBzd2l0Y2ggdG8gYSBuZXcgb2JzZXJ2YWJsZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IG5leHQoYWRkQXV0aGVudGljYXRpb25Ub2tlbihyZXEpKSlcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2U/LnRvVXBwZXJDYXNlKCkgfHwgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHJlZnJlc2hUb2tlblN1YmplY3QgdG8gbnVsbCBcclxuICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHN1YnNlcXVlbnQgQVBJIGNhbGxzIHdpbGwgd2FpdFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHVudGlsIHRoZSBuZXcgdG9rZW4gaGFzIGJlZW4gcmV0cmlldmVkXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UucmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KG51bGwpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIGF1dGgucmVmcmVzaEFjY2Vzc1Rva2VuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gKHRoaXMgaXMgYW4gT2JzZXJ2YWJsZSB0aGF0IHdpbGwgYmUgcmV0dXJuZWQpXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmcmVzaFRva2VuUmVxID0gYXV0aFNlcnZpY2UudHJ5UmVzdG9yZVNlc3Npb24oKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZnJlc2hUb2tlblJlcS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL1RoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiBzd2l0Y2hNYXAgYW5kIG90aGVyIGZsYXR0ZW5pbmcgb3BlcmF0b3JzIGlzIHRoZSBjYW5jZWxsaW5nIGVmZmVjdC4gT24gZWFjaCBlbWlzc2lvbiB0aGUgcHJldmlvdXMgaW5uZXIgb2JzZXJ2YWJsZSAodGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24geW91IHN1cHBsaWVkKSBpcyBjYW5jZWxsZWQgYW5kIHRoZSBuZXcgb2JzZXJ2YWJsZSBpcyBzdWJzY3JpYmVkLiBZb3UgY2FuIHJlbWVtYmVyIHRoaXMgYnkgdGhlIHBocmFzZSBzd2l0Y2ggdG8gYSBuZXcgb2JzZXJ2YWJsZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2tlbiA9ICcnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZXJ2aWNlLnJlc29sdmVBdXRoZW50aWNhdGVSZXNwb25zZSh4KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBjYWxsIHRvIHJlZnJlc2hUb2tlbiBjb21wbGV0ZXMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSByZXNldCB0aGUgcmVmcmVzaFRva2VuSW5Qcm9ncmVzcyB0byBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSBuZXh0IHRpbWUgdGhlIHRva2VuIG5lZWRzIHRvIGJlIHJlZnJlc2hlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UucmVmcmVzaFRva2VuSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkdXJhdGlvbiA9IChlbmQgLSBzdGFydCkvMTAwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0U2VydmljZS5pbmZvKG1scy50cmFucyhcIlJFRlJFU0hfVE9LRU5fQ09NUExFVEVcIikgKyBgICgke2R1cmF0aW9ufXMpYCwgYWxlcnRPcHRpb25zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VydmljZS5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQodG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UmVxID0gYWRkQXV0aGVudGljYXRpb25Ub2tlbihyZXEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQobmV3UmVxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VydmljZS5yZWZyZXNoVG9rZW5JblByb2dyZXNzID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UudXNlckxvZ291dCgpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZXJ2aWNlLnBvc3RMb2dvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnIpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAvLyBMb2cgd2hlbiByZXNwb25zZSBvYnNlcnZhYmxlIGVpdGhlciBjb21wbGV0ZXMgb3IgZXJyb3JzXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHsgfSlcclxuICAgICAgICApO1xyXG59Il19