vc-error-handlers 0.1.98 → 0.2.0

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.
Files changed (89) hide show
  1. package/esm2022/lib/configuration.mjs +7 -0
  2. package/{esm2020 → esm2022}/lib/featureFlag/feature-flag.directive.mjs +27 -27
  3. package/esm2022/lib/featureFlag/feature-flag.module.mjs +20 -0
  4. package/esm2022/lib/featureFlag/feature-flag.service.mjs +98 -0
  5. package/{esm2020 → esm2022}/lib/shared/components/chunk-unavailable/chunk-unavailable.component.mjs +35 -35
  6. package/esm2022/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +65 -0
  7. package/{esm2020 → esm2022}/lib/shared/components/error-modal/error-modal.component.mjs +45 -45
  8. package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +92 -0
  9. package/esm2022/lib/shared/components/server-error/server-error.component.mjs +83 -0
  10. package/{esm2020 → esm2022}/lib/shared/components/session-expired/session-expired.component.mjs +35 -35
  11. package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +103 -0
  12. package/{esm2020 → esm2022}/lib/shared/constants/api-config.constants.mjs +239 -239
  13. package/{esm2020 → esm2022}/lib/shared/constants/error-handling.constants.mjs +62 -62
  14. package/{esm2020 → esm2022}/lib/shared/errorhandler/chunk-error.handler.mjs +18 -18
  15. package/{esm2020 → esm2022}/lib/shared/errorhandler/sentry-error.handler.mjs +47 -47
  16. package/{esm2020 → esm2022}/lib/shared/interceptors/http.interceptor.mjs +35 -35
  17. package/{esm2020 → esm2022}/lib/shared/services/global-error.service.mjs +115 -115
  18. package/{esm2020 → esm2022}/lib/shared/services/router.service.mjs +19 -19
  19. package/{esm2020 → esm2022}/lib/shared/services/util.service.mjs +48 -48
  20. package/{esm2020 → esm2022}/lib/shared/types/global-error.types.mjs +15 -15
  21. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-config.mjs +2 -2
  22. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +15 -0
  23. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-ref.mjs +12 -12
  24. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.component.mjs +85 -85
  25. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +21 -0
  26. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.service.mjs +52 -52
  27. package/{esm2020 → esm2022}/lib/ui-kit/dialog/insertion.directive.mjs +16 -16
  28. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +50 -50
  29. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  30. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -32
  31. package/{esm2020 → esm2022}/lib/vc-error-handlers.component.mjs +85 -85
  32. package/esm2022/lib/vc-error-handlers.module.mjs +84 -0
  33. package/{esm2020 → esm2022}/lib/vc-error-handlers.service.mjs +14 -14
  34. package/{esm2020 → esm2022}/public-api.mjs +16 -16
  35. package/{esm2020 → esm2022}/vc-error-handlers.mjs +4 -4
  36. package/{fesm2020 → fesm2022}/vc-error-handlers.mjs +1286 -1359
  37. package/fesm2022/vc-error-handlers.mjs.map +1 -0
  38. package/{vc-error-handlers.d.ts → index.d.ts} +5 -5
  39. package/lib/configuration.d.ts +5 -4
  40. package/lib/featureFlag/feature-flag.directive.d.ts +13 -13
  41. package/lib/featureFlag/feature-flag.module.d.ts +8 -8
  42. package/lib/featureFlag/feature-flag.service.d.ts +21 -19
  43. package/lib/shared/components/chunk-unavailable/chunk-unavailable.component.d.ts +20 -20
  44. package/lib/shared/components/component-level-server-error/component-level-server-error.component.d.ts +19 -19
  45. package/lib/shared/components/error-modal/error-modal.component.d.ts +21 -21
  46. package/lib/shared/components/page-not-found/page-not-found.component.d.ts +23 -23
  47. package/lib/shared/components/server-error/server-error.component.d.ts +19 -19
  48. package/lib/shared/components/session-expired/session-expired.component.d.ts +20 -20
  49. package/lib/shared/components/unauthorized/unauthorized.component.d.ts +23 -23
  50. package/lib/shared/constants/api-config.constants.d.ts +20 -20
  51. package/lib/shared/constants/error-handling.constants.d.ts +62 -62
  52. package/lib/shared/errorhandler/chunk-error.handler.d.ts +7 -7
  53. package/lib/shared/errorhandler/sentry-error.handler.d.ts +14 -14
  54. package/lib/shared/interceptors/http.interceptor.d.ts +13 -13
  55. package/lib/shared/services/global-error.service.d.ts +31 -31
  56. package/lib/shared/services/router.service.d.ts +6 -6
  57. package/lib/shared/services/util.service.d.ts +15 -15
  58. package/lib/shared/types/global-error.types.d.ts +27 -27
  59. package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
  60. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
  61. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
  62. package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
  63. package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
  64. package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
  65. package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
  66. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +20 -20
  67. package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
  68. package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +11 -11
  69. package/lib/vc-error-handlers.component.d.ts +26 -26
  70. package/lib/vc-error-handlers.module.d.ts +26 -26
  71. package/lib/vc-error-handlers.service.d.ts +6 -6
  72. package/package.json +7 -13
  73. package/public-api.d.ts +13 -13
  74. package/environments/environment.d.ts +0 -39
  75. package/esm2020/environments/environment.mjs +0 -75
  76. package/esm2020/lib/configuration.mjs +0 -6
  77. package/esm2020/lib/featureFlag/feature-flag.module.mjs +0 -22
  78. package/esm2020/lib/featureFlag/feature-flag.service.mjs +0 -95
  79. package/esm2020/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +0 -64
  80. package/esm2020/lib/shared/components/page-not-found/page-not-found.component.mjs +0 -91
  81. package/esm2020/lib/shared/components/server-error/server-error.component.mjs +0 -82
  82. package/esm2020/lib/shared/components/unauthorized/unauthorized.component.mjs +0 -102
  83. package/esm2020/lib/ui-kit/dialog/dialog-injector.mjs +0 -15
  84. package/esm2020/lib/ui-kit/dialog/dialog.module.mjs +0 -21
  85. package/esm2020/lib/ui-kit/snack-bar/snack-bar.module.mjs +0 -18
  86. package/esm2020/lib/vc-error-handlers.module.mjs +0 -84
  87. package/fesm2015/vc-error-handlers.mjs +0 -1679
  88. package/fesm2015/vc-error-handlers.mjs.map +0 -1
  89. package/fesm2020/vc-error-handlers.mjs.map +0 -1
@@ -1,18 +1,18 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class GlobalErrorHandler {
4
- handleError(error) {
5
- const chunkFailedMessage = /Loading chunk [\d]+ failed/;
6
- if (chunkFailedMessage.test(error.message) &&
7
- confirm(`A new version is available. Please press "OK" to refresh the page.`)) {
8
- window.location.reload();
9
- }
10
- console.error(error);
11
- }
12
- }
13
- GlobalErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
- GlobalErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorHandler });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorHandler, decorators: [{
16
- type: Injectable
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmstZXJyb3IuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2Vycm9yaGFuZGxlci9jaHVuay1lcnJvci5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsNEJBQTRCLENBQUM7UUFFeEQsSUFDRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxPQUFPLENBQ0wsb0VBQW9FLENBQ3JFLEVBQ0Q7WUFDQSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDOzsrR0FiVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxFcnJvckhhbmRsZXIgaW1wbGVtZW50cyBFcnJvckhhbmRsZXIge1xyXG4gIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNodW5rRmFpbGVkTWVzc2FnZSA9IC9Mb2FkaW5nIGNodW5rIFtcXGRdKyBmYWlsZWQvO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3IubWVzc2FnZSkgJiZcclxuICAgICAgY29uZmlybShcclxuICAgICAgICBgQSBuZXcgdmVyc2lvbiBpcyBhdmFpbGFibGUuIFBsZWFzZSBwcmVzcyBcIk9LXCIgdG8gcmVmcmVzaCB0aGUgcGFnZS5gXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GlobalErrorHandler {
4
+ handleError(error) {
5
+ const chunkFailedMessage = /Loading chunk [\d]+ failed/;
6
+ if (chunkFailedMessage.test(error.message) &&
7
+ confirm(`A new version is available. Please press "OK" to refresh the page.`)) {
8
+ window.location.reload();
9
+ }
10
+ console.error(error);
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorHandler }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorHandler, decorators: [{
16
+ type: Injectable
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmstZXJyb3IuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2Vycm9yaGFuZGxlci9jaHVuay1lcnJvci5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsNEJBQTRCLENBQUM7UUFFeEQsSUFDRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxPQUFPLENBQ0wsb0VBQW9FLENBQ3JFLEVBQ0Q7WUFDQSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDOytHQWJVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxFcnJvckhhbmRsZXIgaW1wbGVtZW50cyBFcnJvckhhbmRsZXIge1xyXG4gIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNodW5rRmFpbGVkTWVzc2FnZSA9IC9Mb2FkaW5nIGNodW5rIFtcXGRdKyBmYWlsZWQvO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3IubWVzc2FnZSkgJiZcclxuICAgICAgY29uZmlybShcclxuICAgICAgICBgQSBuZXcgdmVyc2lvbiBpcyBhdmFpbGFibGUuIFBsZWFzZSBwcmVzcyBcIk9LXCIgdG8gcmVmcmVzaCB0aGUgcGFnZS5gXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,47 +1,47 @@
1
- import { Injectable, Optional } from '@angular/core';
2
- import * as Sentry from '@sentry/angular-ivy';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@vcomply/authorizer";
5
- import * as i2 from "../services/global-error.service";
6
- import * as i3 from "../../configuration";
7
- export class SentryErrorHandler {
8
- constructor(authorizerService, errorService, config) {
9
- this.authorizerService = authorizerService;
10
- this.errorService = errorService;
11
- if (config?.sentryConfig) {
12
- const SENTRY_CONFIG = config.sentryConfig;
13
- Sentry.init({
14
- dsn: SENTRY_CONFIG?.DSN,
15
- integrations: [
16
- new Sentry.BrowserTracing({
17
- tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
18
- routingInstrumentation: Sentry.routingInstrumentation,
19
- }),
20
- ],
21
- tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
22
- replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
23
- replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,
24
- });
25
- Sentry.setUser({ userDetails: this.authorizerService.getUser() });
26
- }
27
- }
28
- handleError(error) {
29
- const ERROR = error?.originalError || error;
30
- this.handleChunkError(ERROR);
31
- Sentry.captureException(ERROR);
32
- }
33
- handleChunkError(error) {
34
- const chunkFailedMessage = /Loading chunk [\d]+ failed/;
35
- if (chunkFailedMessage.test(error?.message)) {
36
- window.location.reload();
37
- }
38
- }
39
- }
40
- SentryErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, deps: [{ token: i1.AuthorizerService }, { token: i2.GlobalErrorService }, { token: i3.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
41
- SentryErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, decorators: [{
43
- type: Injectable
44
- }], ctorParameters: function () { return [{ type: i1.AuthorizerService }, { type: i2.GlobalErrorService }, { type: i3.Configurations, decorators: [{
45
- type: Optional
46
- }] }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LWVycm9yLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9lcnJvcmhhbmRsZXIvc2VudHJ5LWVycm9yLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sS0FBSyxNQUFNLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBUzlDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxpQkFBb0MsRUFDcEMsWUFBZ0MsRUFDNUIsTUFBdUI7UUFGM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFHeEMsSUFBSSxNQUFNLEVBQUUsWUFBWSxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixHQUFHLEVBQUUsYUFBYSxFQUFFLEdBQUc7Z0JBQ3ZCLFlBQVksRUFBRTtvQkFDWixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUM7d0JBQ3hCLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxZQUFZO3dCQUNuRCxzQkFBc0IsRUFBRSxNQUFNLENBQUMsc0JBQXNCO3FCQUN0RCxDQUFDO2lCQUNIO2dCQUNELGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxrQkFBa0I7Z0JBQ2xELHdCQUF3QixFQUFFLGFBQWEsQ0FBQywwQkFBMEI7Z0JBQ2xFLHdCQUF3QixFQUFFLGFBQWEsQ0FBQywyQkFBMkI7YUFDcEUsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxhQUFhLElBQUksS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVk7UUFDM0IsTUFBTSxrQkFBa0IsR0FBRyw0QkFBNEIsQ0FBQztRQUN4RCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7OytHQW5DVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOzswQkFLTixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9hbmd1bGFyLWl2eSc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbic7XHJcblxyXG5pbXBvcnQgeyBBdXRob3JpemVyU2VydmljZSB9IGZyb20gJ0B2Y29tcGx5L2F1dGhvcml6ZXInO1xyXG5pbXBvcnQgeyBHbG9iYWxFcnJvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9nbG9iYWwtZXJyb3Iuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFcnJvclN0YXR1c0NvZGUgfSBmcm9tICcuLi90eXBlcy9nbG9iYWwtZXJyb3IudHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2VudHJ5RXJyb3JIYW5kbGVyIGltcGxlbWVudHMgRXJyb3JIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aG9yaXplclNlcnZpY2U6IEF1dGhvcml6ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2U6IEdsb2JhbEVycm9yU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnPy5zZW50cnlDb25maWcpIHtcclxuICAgICAgY29uc3QgU0VOVFJZX0NPTkZJRyA9IGNvbmZpZy5zZW50cnlDb25maWc7XHJcbiAgICAgIFNlbnRyeS5pbml0KHtcclxuICAgICAgICBkc246IFNFTlRSWV9DT05GSUc/LkRTTixcclxuICAgICAgICBpbnRlZ3JhdGlvbnM6IFtcclxuICAgICAgICAgIG5ldyBTZW50cnkuQnJvd3NlclRyYWNpbmcoe1xyXG4gICAgICAgICAgICB0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0czogU0VOVFJZX0NPTkZJRy5BTExPV19PUklHSU4sXHJcbiAgICAgICAgICAgIHJvdXRpbmdJbnN0cnVtZW50YXRpb246IFNlbnRyeS5yb3V0aW5nSW5zdHJ1bWVudGF0aW9uLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgXSxcclxuICAgICAgICB0cmFjZXNTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlRSQUNFU19TQU1QTEVfUkFURSxcclxuICAgICAgICByZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGU6IFNFTlRSWV9DT05GSUcuUkVQTEFZX1NFU1NJT05fU0FNUExFX1JBVEUsXHJcbiAgICAgICAgcmVwbGF5c09uRXJyb3JTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlJFUExBWV9PTl9FUlJPUl9TQU1QTEVfUkFURSxcclxuICAgICAgfSk7XHJcbiAgICAgIFNlbnRyeS5zZXRVc2VyKHsgdXNlckRldGFpbHM6IHRoaXMuYXV0aG9yaXplclNlcnZpY2UuZ2V0VXNlcigpIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSkge1xyXG4gICAgY29uc3QgRVJST1IgPSBlcnJvcj8ub3JpZ2luYWxFcnJvciB8fCBlcnJvcjtcclxuICAgIHRoaXMuaGFuZGxlQ2h1bmtFcnJvcihFUlJPUik7XHJcbiAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihFUlJPUik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaHVua0Vycm9yKGVycm9yOiBFcnJvcikge1xyXG4gICAgY29uc3QgY2h1bmtGYWlsZWRNZXNzYWdlID0gL0xvYWRpbmcgY2h1bmsgW1xcZF0rIGZhaWxlZC87XHJcbiAgICBpZiAoY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3I/Lm1lc3NhZ2UpKSB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import * as Sentry from '@sentry/angular-ivy';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@vcomply/authorizer";
5
+ import * as i2 from "../services/global-error.service";
6
+ import * as i3 from "../../configuration";
7
+ export class SentryErrorHandler {
8
+ constructor(authorizerService, errorService, config) {
9
+ this.authorizerService = authorizerService;
10
+ this.errorService = errorService;
11
+ if (config?.sentryConfig) {
12
+ const SENTRY_CONFIG = config.sentryConfig;
13
+ Sentry.init({
14
+ dsn: SENTRY_CONFIG?.DSN,
15
+ integrations: [
16
+ new Sentry.BrowserTracing({
17
+ tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
18
+ routingInstrumentation: Sentry.routingInstrumentation,
19
+ }),
20
+ ],
21
+ tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
22
+ replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
23
+ replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,
24
+ });
25
+ Sentry.setUser({ userDetails: this.authorizerService.getUser() });
26
+ }
27
+ }
28
+ handleError(error) {
29
+ const ERROR = error?.originalError || error;
30
+ this.handleChunkError(ERROR);
31
+ Sentry.captureException(ERROR);
32
+ }
33
+ handleChunkError(error) {
34
+ const chunkFailedMessage = /Loading chunk [\d]+ failed/;
35
+ if (chunkFailedMessage.test(error?.message)) {
36
+ window.location.reload();
37
+ }
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentryErrorHandler, deps: [{ token: i1.AuthorizerService }, { token: i2.GlobalErrorService }, { token: i3.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentryErrorHandler }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentryErrorHandler, decorators: [{
43
+ type: Injectable
44
+ }], ctorParameters: function () { return [{ type: i1.AuthorizerService }, { type: i2.GlobalErrorService }, { type: i3.Configurations, decorators: [{
45
+ type: Optional
46
+ }] }]; } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LWVycm9yLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9lcnJvcmhhbmRsZXIvc2VudHJ5LWVycm9yLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sS0FBSyxNQUFNLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBUzlDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxpQkFBb0MsRUFDcEMsWUFBZ0MsRUFDNUIsTUFBdUI7UUFGM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFHeEMsSUFBSSxNQUFNLEVBQUUsWUFBWSxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixHQUFHLEVBQUUsYUFBYSxFQUFFLEdBQUc7Z0JBQ3ZCLFlBQVksRUFBRTtvQkFDWixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUM7d0JBQ3hCLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxZQUFZO3dCQUNuRCxzQkFBc0IsRUFBRSxNQUFNLENBQUMsc0JBQXNCO3FCQUN0RCxDQUFDO2lCQUNIO2dCQUNELGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxrQkFBa0I7Z0JBQ2xELHdCQUF3QixFQUFFLGFBQWEsQ0FBQywwQkFBMEI7Z0JBQ2xFLHdCQUF3QixFQUFFLGFBQWEsQ0FBQywyQkFBMkI7YUFDcEUsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxhQUFhLElBQUksS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVk7UUFDM0IsTUFBTSxrQkFBa0IsR0FBRyw0QkFBNEIsQ0FBQztRQUN4RCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7K0dBbkNVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOzswQkFLTixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9hbmd1bGFyLWl2eSc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbic7XHJcblxyXG5pbXBvcnQgeyBBdXRob3JpemVyU2VydmljZSB9IGZyb20gJ0B2Y29tcGx5L2F1dGhvcml6ZXInO1xyXG5pbXBvcnQgeyBHbG9iYWxFcnJvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9nbG9iYWwtZXJyb3Iuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFcnJvclN0YXR1c0NvZGUgfSBmcm9tICcuLi90eXBlcy9nbG9iYWwtZXJyb3IudHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2VudHJ5RXJyb3JIYW5kbGVyIGltcGxlbWVudHMgRXJyb3JIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aG9yaXplclNlcnZpY2U6IEF1dGhvcml6ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2U6IEdsb2JhbEVycm9yU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnPy5zZW50cnlDb25maWcpIHtcclxuICAgICAgY29uc3QgU0VOVFJZX0NPTkZJRyA9IGNvbmZpZy5zZW50cnlDb25maWc7XHJcbiAgICAgIFNlbnRyeS5pbml0KHtcclxuICAgICAgICBkc246IFNFTlRSWV9DT05GSUc/LkRTTixcclxuICAgICAgICBpbnRlZ3JhdGlvbnM6IFtcclxuICAgICAgICAgIG5ldyBTZW50cnkuQnJvd3NlclRyYWNpbmcoe1xyXG4gICAgICAgICAgICB0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0czogU0VOVFJZX0NPTkZJRy5BTExPV19PUklHSU4sXHJcbiAgICAgICAgICAgIHJvdXRpbmdJbnN0cnVtZW50YXRpb246IFNlbnRyeS5yb3V0aW5nSW5zdHJ1bWVudGF0aW9uLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgXSxcclxuICAgICAgICB0cmFjZXNTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlRSQUNFU19TQU1QTEVfUkFURSxcclxuICAgICAgICByZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGU6IFNFTlRSWV9DT05GSUcuUkVQTEFZX1NFU1NJT05fU0FNUExFX1JBVEUsXHJcbiAgICAgICAgcmVwbGF5c09uRXJyb3JTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlJFUExBWV9PTl9FUlJPUl9TQU1QTEVfUkFURSxcclxuICAgICAgfSk7XHJcbiAgICAgIFNlbnRyeS5zZXRVc2VyKHsgdXNlckRldGFpbHM6IHRoaXMuYXV0aG9yaXplclNlcnZpY2UuZ2V0VXNlcigpIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSkge1xyXG4gICAgY29uc3QgRVJST1IgPSBlcnJvcj8ub3JpZ2luYWxFcnJvciB8fCBlcnJvcjtcclxuICAgIHRoaXMuaGFuZGxlQ2h1bmtFcnJvcihFUlJPUik7XHJcbiAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihFUlJPUik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaHVua0Vycm9yKGVycm9yOiBFcnJvcikge1xyXG4gICAgY29uc3QgY2h1bmtGYWlsZWRNZXNzYWdlID0gL0xvYWRpbmcgY2h1bmsgW1xcZF0rIGZhaWxlZC87XHJcbiAgICBpZiAoY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3I/Lm1lc3NhZ2UpKSB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,35 +1,35 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpResponse, } from '@angular/common/http';
3
- import { throwError } from 'rxjs';
4
- import { catchError, tap, timeout } from 'rxjs/operators';
5
- import { API_TIMEOUT_TIME, ERROR_FEATURE_FLAG, } from '../constants/error-handling.constants';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../services/global-error.service";
8
- import * as i2 from "../../featureFlag/feature-flag.service";
9
- export class HttpReqInterceptor {
10
- constructor(errorService, featureFlagService) {
11
- this.errorService = errorService;
12
- this.featureFlagService = featureFlagService;
13
- }
14
- intercept(req, next) {
15
- if (this.featureFlagService.isFeatureEnabled(ERROR_FEATURE_FLAG)) {
16
- return next.handle(req).pipe(timeout(API_TIMEOUT_TIME), tap((event) => {
17
- if (event instanceof HttpResponse) {
18
- this.errorService.handleSoftErrors(event);
19
- }
20
- }), catchError((error) => {
21
- this.errorService.handleError(error, req);
22
- return throwError(error);
23
- }));
24
- }
25
- else {
26
- return next.handle(req);
27
- }
28
- }
29
- }
30
- HttpReqInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HttpReqInterceptor, deps: [{ token: i1.GlobalErrorService }, { token: i2.FeatureFlagService }], target: i0.ɵɵFactoryTarget.Injectable });
31
- HttpReqInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HttpReqInterceptor });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HttpReqInterceptor, decorators: [{
33
- type: Injectable
34
- }], ctorParameters: function () { return [{ type: i1.GlobalErrorService }, { type: i2.FeatureFlagService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2ludGVyY2VwdG9ycy9odHRwLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQU1MLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLMUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUcvQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsWUFBZ0MsRUFDaEMsa0JBQXNDO1FBRHRDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQzdDLENBQUM7SUFFSixTQUFTLENBQ1AsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFDekIsR0FBRyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFO2dCQUM1QixJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzNDO1lBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7K0dBMUJVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBJbnRlcmNlcHRvcixcclxuICBIdHRwRXJyb3JSZXNwb25zZSxcclxuICBIdHRwUmVzcG9uc2UsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCwgdGltZW91dCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEdsb2JhbEVycm9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dsb2JhbC1lcnJvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBUElfVElNRU9VVF9USU1FLFxyXG4gIEVSUk9SX0ZFQVRVUkVfRkxBRyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvZXJyb3ItaGFuZGxpbmcuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBSZXFJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogR2xvYmFsRXJyb3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBpZiAodGhpcy5mZWF0dXJlRmxhZ1NlcnZpY2UuaXNGZWF0dXJlRW5hYmxlZChFUlJPUl9GRUFUVVJFX0ZMQUcpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXHJcbiAgICAgICAgdGltZW91dChBUElfVElNRU9VVF9USU1FKSxcclxuICAgICAgICB0YXAoKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLmhhbmRsZVNvZnRFcnJvcnMoZXZlbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyb3IsIHJlcSk7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpResponse, } from '@angular/common/http';
3
+ import { throwError } from 'rxjs';
4
+ import { catchError, tap, timeout } from 'rxjs/operators';
5
+ import { API_TIMEOUT_TIME, ERROR_FEATURE_FLAG, } from '../constants/error-handling.constants';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../services/global-error.service";
8
+ import * as i2 from "../../featureFlag/feature-flag.service";
9
+ export class HttpReqInterceptor {
10
+ constructor(errorService, featureFlagService) {
11
+ this.errorService = errorService;
12
+ this.featureFlagService = featureFlagService;
13
+ }
14
+ intercept(req, next) {
15
+ if (this.featureFlagService.isFeatureEnabled(ERROR_FEATURE_FLAG)) {
16
+ return next.handle(req).pipe(timeout(API_TIMEOUT_TIME), tap((event) => {
17
+ if (event instanceof HttpResponse) {
18
+ this.errorService.handleSoftErrors(event);
19
+ }
20
+ }), catchError((error) => {
21
+ this.errorService.handleError(error, req);
22
+ return throwError(error);
23
+ }));
24
+ }
25
+ else {
26
+ return next.handle(req);
27
+ }
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpReqInterceptor, deps: [{ token: i1.GlobalErrorService }, { token: i2.FeatureFlagService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpReqInterceptor }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpReqInterceptor, decorators: [{
33
+ type: Injectable
34
+ }], ctorParameters: function () { return [{ type: i1.GlobalErrorService }, { type: i2.FeatureFlagService }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2ludGVyY2VwdG9ycy9odHRwLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQU1MLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLMUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUcvQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsWUFBZ0MsRUFDaEMsa0JBQXNDO1FBRHRDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQzdDLENBQUM7SUFFSixTQUFTLENBQ1AsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFDekIsR0FBRyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFO2dCQUM1QixJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzNDO1lBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzsrR0ExQlUsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBJbnRlcmNlcHRvcixcclxuICBIdHRwRXJyb3JSZXNwb25zZSxcclxuICBIdHRwUmVzcG9uc2UsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCwgdGltZW91dCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEdsb2JhbEVycm9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dsb2JhbC1lcnJvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBUElfVElNRU9VVF9USU1FLFxyXG4gIEVSUk9SX0ZFQVRVUkVfRkxBRyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvZXJyb3ItaGFuZGxpbmcuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBSZXFJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogR2xvYmFsRXJyb3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBpZiAodGhpcy5mZWF0dXJlRmxhZ1NlcnZpY2UuaXNGZWF0dXJlRW5hYmxlZChFUlJPUl9GRUFUVVJFX0ZMQUcpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXHJcbiAgICAgICAgdGltZW91dChBUElfVElNRU9VVF9USU1FKSxcclxuICAgICAgICB0YXAoKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLmhhbmRsZVNvZnRFcnJvcnMoZXZlbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyb3IsIHJlcSk7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,115 +1,115 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { ErrorStatusCode } from '../types/global-error.types';
4
- import { PAGE_LEVEL_API_CONFIG, COMPONENT_LEVEL_API_CONFIG, } from '../constants/api-config.constants';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../ui-kit/snack-bar/snack-bar.service";
7
- import * as i2 from "./util.service";
8
- import * as i3 from "@angular/router";
9
- export class GlobalErrorService {
10
- constructor(snackBarService, utilService, router) {
11
- this.snackBarService = snackBarService;
12
- this.utilService = utilService;
13
- this.router = router;
14
- this.globalError$ = new Subject();
15
- this.localError$ = new Subject();
16
- this.pageLevelApiConfig = PAGE_LEVEL_API_CONFIG;
17
- this.componentLevelApiConfig = COMPONENT_LEVEL_API_CONFIG;
18
- }
19
- handleSoftErrors(event) {
20
- const xData = event.headers.get('X-Data');
21
- if (xData) {
22
- const parsedData = JSON.parse(xData);
23
- const statusCode = parsedData.statusCode;
24
- const statusMessage = parsedData.message;
25
- if (statusCode && statusCode !== 0) {
26
- this.snackBarService.show(statusMessage || 'Error occurred', 'error');
27
- }
28
- }
29
- }
30
- handleError(error, request) {
31
- if (this.isUnauthenticated(error) ||
32
- this.isUnauthorizedAccess(error) ||
33
- this.isNetworkUnavailable(error)) {
34
- this.publishGlobalError(error);
35
- }
36
- else if (this.isServerError(error)) {
37
- this.handleServerError(error, request);
38
- }
39
- else {
40
- this.handleSoftErrors(error);
41
- }
42
- }
43
- isServerError(error) {
44
- const serverErrorCodes = [
45
- ErrorStatusCode.InternalServerError,
46
- ErrorStatusCode.ServiceUnavailable,
47
- ErrorStatusCode.BadGateway,
48
- ErrorStatusCode.RequestTimeout,
49
- ];
50
- return serverErrorCodes.includes(error.status);
51
- }
52
- isUnauthenticated(error) {
53
- return error.status === ErrorStatusCode.Unauthenticated;
54
- }
55
- isUnauthorizedAccess(error) {
56
- return error.status === ErrorStatusCode.UnauthorizedAccess;
57
- }
58
- isNetworkUnavailable(error) {
59
- return error.status === ErrorStatusCode.NetworkUnavailable;
60
- }
61
- handleServerError(error, request) {
62
- if (this.isPageLevelError(error, request)) {
63
- this.publishGlobalError(error);
64
- }
65
- else if (this.isComponentLevelError(error, request)) {
66
- this.publishLocalError(error, request);
67
- }
68
- }
69
- publishGlobalError(error) {
70
- this.globalError$.next(error);
71
- }
72
- publishLocalError(error, request) {
73
- this.localError$.next({ error, request });
74
- }
75
- isPageLevelError(error, request) {
76
- const requestDetails = {
77
- method: request.method,
78
- path: request.url,
79
- query: this.utilService.extractQueryParams(request.params),
80
- body: request.body,
81
- pageCode: this.getPageCode(),
82
- };
83
- return this.pageLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
84
- }
85
- isComponentLevelError(error, request) {
86
- const requestDetails = {
87
- method: request.method,
88
- path: request.url,
89
- query: this.utilService.extractQueryParams(request.params),
90
- body: request.body,
91
- };
92
- return this.componentLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
93
- }
94
- getPageCode() {
95
- const currentRoute = this.router.routerState.snapshot.root.firstChild;
96
- return currentRoute?.data?.pageCode;
97
- }
98
- isApiConfigMatching(apiConfig, requestDetails) {
99
- return (this.utilService.isStringEqual(apiConfig.method, requestDetails.method) &&
100
- this.utilService.isSubstringInString(apiConfig.path, requestDetails.path) &&
101
- this.utilService.isSubsetOfObject(apiConfig.query, requestDetails.query) &&
102
- this.utilService.isSubsetOfArray(apiConfig.body, requestDetails.body) &&
103
- (!apiConfig.pageCodes ||
104
- this.utilService.isValueInArray(apiConfig.pageCodes, requestDetails.pageCode || '')));
105
- }
106
- }
107
- GlobalErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorService, deps: [{ token: i1.SnackBarService }, { token: i2.UtilsService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
108
- GlobalErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorService, providedIn: 'root' });
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorService, decorators: [{
110
- type: Injectable,
111
- args: [{
112
- providedIn: 'root',
113
- }]
114
- }], ctorParameters: function () { return [{ type: i1.SnackBarService }, { type: i2.UtilsService }, { type: i3.Router }]; } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9nbG9iYWwtZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLL0IsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQ1UsZUFBZ0MsRUFDaEMsV0FBeUIsRUFDekIsTUFBYztRQUZkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVGpCLGlCQUFZLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0MsZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6Qyx1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztRQUMzQyw0QkFBdUIsR0FBRywwQkFBMEIsQ0FBQztJQU0xRCxDQUFDO0lBRUcsZ0JBQWdCLENBQUMsS0FBNEM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUMsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDekMsTUFBTSxhQUFhLEdBQUcsVUFB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RSxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQzdCLFNBQVMsQ0FBQyxTQUFTLEVBQ25CLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUM5QixDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7OytHQWpKVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBSZXNwb25zZSxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4vdXRpbC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEVycm9yU3RhdHVzQ29kZSwgUmVxdWVzdERldGFpbHMgfSBmcm9tICcuLi90eXBlcy9nbG9iYWwtZXJyb3IudHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIFBBR0VfTEVWRUxfQVBJX0NPTkZJRyxcclxuICBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvYXBpLWNvbmZpZy5jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbEVycm9yU2VydmljZSB7XHJcbiAgcHVibGljIGdsb2JhbEVycm9yJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgbG9jYWxFcnJvciQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHByaXZhdGUgcGFnZUxldmVsQXBpQ29uZmlnID0gUEFHRV9MRVZFTF9BUElfQ09ORklHO1xyXG4gIHByaXZhdGUgY29tcG9uZW50TGV2ZWxBcGlDb25maWcgPSBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGhhbmRsZVNvZnRFcnJvcnMoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+IHwgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIGNvbnN0IHhEYXRhID0gZXZlbnQuaGVhZGVycy5nZXQoJ1gtRGF0YScpO1xyXG5cclxuICAgIGlmICh4RGF0YSkge1xyXG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gSlNPTi5wYXJzZSh4RGF0YSk7XHJcbiAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBwYXJzZWREYXRhLnN0YXR1c0NvZGU7XHJcbiAgICAgIGNvbnN0IHN0YXR1c01lc3NhZ2UgPSBwYXJzZWREYXRhLm1lc3NhZ2U7XHJcblxyXG4gICAgICBpZiAoc3RhdHVzQ29kZSAmJiBzdGF0dXNDb2RlICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uuc2hvdyhzdGF0dXNNZXNzYWdlIHx8ICdFcnJvciBvY2N1cnJlZCcsICdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaXNVbmF1dGhlbnRpY2F0ZWQoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNOZXR3b3JrVW5hdmFpbGFibGUoZXJyb3IpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzU2VydmVyRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU2VydmVyRXJyb3IoZXJyb3IsIHJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oYW5kbGVTb2Z0RXJyb3JzKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NlcnZlckVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc2VydmVyRXJyb3JDb2RlcyA9IFtcclxuICAgICAgRXJyb3JTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3IsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGUsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5CYWRHYXRld2F5LFxyXG4gICAgICBFcnJvclN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQsXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBzZXJ2ZXJFcnJvckNvZGVzLmluY2x1ZGVzKGVycm9yLnN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVW5hdXRoZW50aWNhdGVkKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gRXJyb3JTdGF0dXNDb2RlLlVuYXV0aGVudGljYXRlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID09PSBFcnJvclN0YXR1c0NvZGUuVW5hdXRob3JpemVkQWNjZXNzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc05ldHdvcmtVbmF2YWlsYWJsZShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPT09IEVycm9yU3RhdHVzQ29kZS5OZXR3b3JrVW5hdmFpbGFibGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNlcnZlckVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICkge1xyXG4gICAgaWYgKHRoaXMuaXNQYWdlTGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ29tcG9uZW50TGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoTG9jYWxFcnJvcihlcnJvciwgcmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHB1Ymxpc2hHbG9iYWxFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIHRoaXMuZ2xvYmFsRXJyb3IkLm5leHQoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwdWJsaXNoTG9jYWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApIHtcclxuICAgIHRoaXMubG9jYWxFcnJvciQubmV4dCh7IGVycm9yLCByZXF1ZXN0IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1BhZ2VMZXZlbEVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVxdWVzdERldGFpbHM6IFJlcXVlc3REZXRhaWxzID0ge1xyXG4gICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxyXG4gICAgICBwYXRoOiByZXF1ZXN0LnVybCxcclxuICAgICAgcXVlcnk6IHRoaXMudXRpbFNlcnZpY2UuZXh0cmFjdFF1ZXJ5UGFyYW1zKHJlcXVlc3QucGFyYW1zKSxcclxuICAgICAgYm9keTogcmVxdWVzdC5ib2R5LFxyXG4gICAgICBwYWdlQ29kZTogdGhpcy5nZXRQYWdlQ29kZSgpLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wYWdlTGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQ29tcG9uZW50TGV2ZWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlscyA9IHtcclxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcclxuICAgICAgcGF0aDogcmVxdWVzdC51cmwsXHJcbiAgICAgIHF1ZXJ5OiB0aGlzLnV0aWxTZXJ2aWNlLmV4dHJhY3RRdWVyeVBhcmFtcyhyZXF1ZXN0LnBhcmFtcyksXHJcbiAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50TGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhZ2VDb2RlKCkge1xyXG4gICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdC5maXJzdENoaWxkO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRSb3V0ZT8uZGF0YT8ucGFnZUNvZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQXBpQ29uZmlnTWF0Y2hpbmcoXHJcbiAgICBhcGlDb25maWc6IGFueSxcclxuICAgIHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlsc1xyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N0cmluZ0VxdWFsKGFwaUNvbmZpZy5tZXRob2QsIHJlcXVlc3REZXRhaWxzLm1ldGhvZCkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnN0cmluZ0luU3RyaW5nKFxyXG4gICAgICAgIGFwaUNvbmZpZy5wYXRoLFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnBhdGhcclxuICAgICAgKSAmJlxyXG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLmlzU3Vic2V0T2ZPYmplY3QoXHJcbiAgICAgICAgYXBpQ29uZmlnLnF1ZXJ5LFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnF1ZXJ5XHJcbiAgICAgICkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnNldE9mQXJyYXkoYXBpQ29uZmlnLmJvZHksIHJlcXVlc3REZXRhaWxzLmJvZHkpICYmXHJcbiAgICAgICghYXBpQ29uZmlnLnBhZ2VDb2RlcyB8fFxyXG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2UuaXNWYWx1ZUluQXJyYXkoXHJcbiAgICAgICAgICBhcGlDb25maWcucGFnZUNvZGVzLFxyXG4gICAgICAgICAgcmVxdWVzdERldGFpbHMucGFnZUNvZGUgfHwgJydcclxuICAgICAgICApKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { ErrorStatusCode } from '../types/global-error.types';
4
+ import { PAGE_LEVEL_API_CONFIG, COMPONENT_LEVEL_API_CONFIG, } from '../constants/api-config.constants';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../ui-kit/snack-bar/snack-bar.service";
7
+ import * as i2 from "./util.service";
8
+ import * as i3 from "@angular/router";
9
+ export class GlobalErrorService {
10
+ constructor(snackBarService, utilService, router) {
11
+ this.snackBarService = snackBarService;
12
+ this.utilService = utilService;
13
+ this.router = router;
14
+ this.globalError$ = new Subject();
15
+ this.localError$ = new Subject();
16
+ this.pageLevelApiConfig = PAGE_LEVEL_API_CONFIG;
17
+ this.componentLevelApiConfig = COMPONENT_LEVEL_API_CONFIG;
18
+ }
19
+ handleSoftErrors(event) {
20
+ const xData = event.headers.get('X-Data');
21
+ if (xData) {
22
+ const parsedData = JSON.parse(xData);
23
+ const statusCode = parsedData.statusCode;
24
+ const statusMessage = parsedData.message;
25
+ if (statusCode && statusCode !== 0) {
26
+ this.snackBarService.show(statusMessage || 'Error occurred', 'error');
27
+ }
28
+ }
29
+ }
30
+ handleError(error, request) {
31
+ if (this.isUnauthenticated(error) ||
32
+ this.isUnauthorizedAccess(error) ||
33
+ this.isNetworkUnavailable(error)) {
34
+ this.publishGlobalError(error);
35
+ }
36
+ else if (this.isServerError(error)) {
37
+ this.handleServerError(error, request);
38
+ }
39
+ else {
40
+ this.handleSoftErrors(error);
41
+ }
42
+ }
43
+ isServerError(error) {
44
+ const serverErrorCodes = [
45
+ ErrorStatusCode.InternalServerError,
46
+ ErrorStatusCode.ServiceUnavailable,
47
+ ErrorStatusCode.BadGateway,
48
+ ErrorStatusCode.RequestTimeout,
49
+ ];
50
+ return serverErrorCodes.includes(error.status);
51
+ }
52
+ isUnauthenticated(error) {
53
+ return error.status === ErrorStatusCode.Unauthenticated;
54
+ }
55
+ isUnauthorizedAccess(error) {
56
+ return error.status === ErrorStatusCode.UnauthorizedAccess;
57
+ }
58
+ isNetworkUnavailable(error) {
59
+ return error.status === ErrorStatusCode.NetworkUnavailable;
60
+ }
61
+ handleServerError(error, request) {
62
+ if (this.isPageLevelError(error, request)) {
63
+ this.publishGlobalError(error);
64
+ }
65
+ else if (this.isComponentLevelError(error, request)) {
66
+ this.publishLocalError(error, request);
67
+ }
68
+ }
69
+ publishGlobalError(error) {
70
+ this.globalError$.next(error);
71
+ }
72
+ publishLocalError(error, request) {
73
+ this.localError$.next({ error, request });
74
+ }
75
+ isPageLevelError(error, request) {
76
+ const requestDetails = {
77
+ method: request.method,
78
+ path: request.url,
79
+ query: this.utilService.extractQueryParams(request.params),
80
+ body: request.body,
81
+ pageCode: this.getPageCode(),
82
+ };
83
+ return this.pageLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
84
+ }
85
+ isComponentLevelError(error, request) {
86
+ const requestDetails = {
87
+ method: request.method,
88
+ path: request.url,
89
+ query: this.utilService.extractQueryParams(request.params),
90
+ body: request.body,
91
+ };
92
+ return this.componentLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
93
+ }
94
+ getPageCode() {
95
+ const currentRoute = this.router.routerState.snapshot.root.firstChild;
96
+ return currentRoute?.data?.pageCode;
97
+ }
98
+ isApiConfigMatching(apiConfig, requestDetails) {
99
+ return (this.utilService.isStringEqual(apiConfig.method, requestDetails.method) &&
100
+ this.utilService.isSubstringInString(apiConfig.path, requestDetails.path) &&
101
+ this.utilService.isSubsetOfObject(apiConfig.query, requestDetails.query) &&
102
+ this.utilService.isSubsetOfArray(apiConfig.body, requestDetails.body) &&
103
+ (!apiConfig.pageCodes ||
104
+ this.utilService.isValueInArray(apiConfig.pageCodes, requestDetails.pageCode || '')));
105
+ }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorService, deps: [{ token: i1.SnackBarService }, { token: i2.UtilsService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
107
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorService, providedIn: 'root' }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorService, decorators: [{
110
+ type: Injectable,
111
+ args: [{
112
+ providedIn: 'root',
113
+ }]
114
+ }], ctorParameters: function () { return [{ type: i1.SnackBarService }, { type: i2.UtilsService }, { type: i3.Router }]; } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9nbG9iYWwtZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLL0IsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQ1UsZUFBZ0MsRUFDaEMsV0FBeUIsRUFDekIsTUFBYztRQUZkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVGpCLGlCQUFZLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0MsZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6Qyx1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztRQUMzQyw0QkFBdUIsR0FBRywwQkFBMEIsQ0FBQztJQU0xRCxDQUFDO0lBRUcsZ0JBQWdCLENBQUMsS0FBNEM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUMsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDekMsTUFBTSxhQUFhLEdBQUcsVUFB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RSxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQzdCLFNBQVMsQ0FBQyxTQUFTLEVBQ25CLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUM5QixDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7K0dBakpVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBSZXNwb25zZSxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4vdXRpbC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEVycm9yU3RhdHVzQ29kZSwgUmVxdWVzdERldGFpbHMgfSBmcm9tICcuLi90eXBlcy9nbG9iYWwtZXJyb3IudHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIFBBR0VfTEVWRUxfQVBJX0NPTkZJRyxcclxuICBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvYXBpLWNvbmZpZy5jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbEVycm9yU2VydmljZSB7XHJcbiAgcHVibGljIGdsb2JhbEVycm9yJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgbG9jYWxFcnJvciQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHByaXZhdGUgcGFnZUxldmVsQXBpQ29uZmlnID0gUEFHRV9MRVZFTF9BUElfQ09ORklHO1xyXG4gIHByaXZhdGUgY29tcG9uZW50TGV2ZWxBcGlDb25maWcgPSBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGhhbmRsZVNvZnRFcnJvcnMoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+IHwgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIGNvbnN0IHhEYXRhID0gZXZlbnQuaGVhZGVycy5nZXQoJ1gtRGF0YScpO1xyXG5cclxuICAgIGlmICh4RGF0YSkge1xyXG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gSlNPTi5wYXJzZSh4RGF0YSk7XHJcbiAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBwYXJzZWREYXRhLnN0YXR1c0NvZGU7XHJcbiAgICAgIGNvbnN0IHN0YXR1c01lc3NhZ2UgPSBwYXJzZWREYXRhLm1lc3NhZ2U7XHJcblxyXG4gICAgICBpZiAoc3RhdHVzQ29kZSAmJiBzdGF0dXNDb2RlICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uuc2hvdyhzdGF0dXNNZXNzYWdlIHx8ICdFcnJvciBvY2N1cnJlZCcsICdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaXNVbmF1dGhlbnRpY2F0ZWQoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNOZXR3b3JrVW5hdmFpbGFibGUoZXJyb3IpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzU2VydmVyRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU2VydmVyRXJyb3IoZXJyb3IsIHJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oYW5kbGVTb2Z0RXJyb3JzKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NlcnZlckVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc2VydmVyRXJyb3JDb2RlcyA9IFtcclxuICAgICAgRXJyb3JTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3IsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGUsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5CYWRHYXRld2F5LFxyXG4gICAgICBFcnJvclN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQsXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBzZXJ2ZXJFcnJvckNvZGVzLmluY2x1ZGVzKGVycm9yLnN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVW5hdXRoZW50aWNhdGVkKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gRXJyb3JTdGF0dXNDb2RlLlVuYXV0aGVudGljYXRlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID09PSBFcnJvclN0YXR1c0NvZGUuVW5hdXRob3JpemVkQWNjZXNzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc05ldHdvcmtVbmF2YWlsYWJsZShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPT09IEVycm9yU3RhdHVzQ29kZS5OZXR3b3JrVW5hdmFpbGFibGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNlcnZlckVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICkge1xyXG4gICAgaWYgKHRoaXMuaXNQYWdlTGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ29tcG9uZW50TGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoTG9jYWxFcnJvcihlcnJvciwgcmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHB1Ymxpc2hHbG9iYWxFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIHRoaXMuZ2xvYmFsRXJyb3IkLm5leHQoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwdWJsaXNoTG9jYWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApIHtcclxuICAgIHRoaXMubG9jYWxFcnJvciQubmV4dCh7IGVycm9yLCByZXF1ZXN0IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1BhZ2VMZXZlbEVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVxdWVzdERldGFpbHM6IFJlcXVlc3REZXRhaWxzID0ge1xyXG4gICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxyXG4gICAgICBwYXRoOiByZXF1ZXN0LnVybCxcclxuICAgICAgcXVlcnk6IHRoaXMudXRpbFNlcnZpY2UuZXh0cmFjdFF1ZXJ5UGFyYW1zKHJlcXVlc3QucGFyYW1zKSxcclxuICAgICAgYm9keTogcmVxdWVzdC5ib2R5LFxyXG4gICAgICBwYWdlQ29kZTogdGhpcy5nZXRQYWdlQ29kZSgpLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wYWdlTGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQ29tcG9uZW50TGV2ZWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlscyA9IHtcclxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcclxuICAgICAgcGF0aDogcmVxdWVzdC51cmwsXHJcbiAgICAgIHF1ZXJ5OiB0aGlzLnV0aWxTZXJ2aWNlLmV4dHJhY3RRdWVyeVBhcmFtcyhyZXF1ZXN0LnBhcmFtcyksXHJcbiAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50TGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhZ2VDb2RlKCkge1xyXG4gICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdC5maXJzdENoaWxkO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRSb3V0ZT8uZGF0YT8ucGFnZUNvZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQXBpQ29uZmlnTWF0Y2hpbmcoXHJcbiAgICBhcGlDb25maWc6IGFueSxcclxuICAgIHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlsc1xyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N0cmluZ0VxdWFsKGFwaUNvbmZpZy5tZXRob2QsIHJlcXVlc3REZXRhaWxzLm1ldGhvZCkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnN0cmluZ0luU3RyaW5nKFxyXG4gICAgICAgIGFwaUNvbmZpZy5wYXRoLFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnBhdGhcclxuICAgICAgKSAmJlxyXG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLmlzU3Vic2V0T2ZPYmplY3QoXHJcbiAgICAgICAgYXBpQ29uZmlnLnF1ZXJ5LFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnF1ZXJ5XHJcbiAgICAgICkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnNldE9mQXJyYXkoYXBpQ29uZmlnLmJvZHksIHJlcXVlc3REZXRhaWxzLmJvZHkpICYmXHJcbiAgICAgICghYXBpQ29uZmlnLnBhZ2VDb2RlcyB8fFxyXG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2UuaXNWYWx1ZUluQXJyYXkoXHJcbiAgICAgICAgICBhcGlDb25maWcucGFnZUNvZGVzLFxyXG4gICAgICAgICAgcmVxdWVzdERldGFpbHMucGFnZUNvZGUgfHwgJydcclxuICAgICAgICApKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,19 +1,19 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class RouterService {
4
- redirectToLogin() {
5
- window.location.href =
6
- `https://${window.location.host}/` +
7
- 'signin?redirectURL=' +
8
- encodeURIComponent(window.location.href);
9
- }
10
- }
11
- RouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: RouterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12
- RouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: RouterService, providedIn: 'root' });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: RouterService, decorators: [{
14
- type: Injectable,
15
- args: [{
16
- providedIn: 'root',
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUNqQixlQUFlO1FBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUNsQixXQUFXLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHO2dCQUNsQyxxQkFBcUI7Z0JBQ3JCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7MEdBTlUsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVkaXJlY3RUb0xvZ2luKCkge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPVxyXG4gICAgICBgaHR0cHM6Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fS9gICtcclxuICAgICAgJ3NpZ25pbj9yZWRpcmVjdFVSTD0nICtcclxuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RouterService {
4
+ redirectToLogin() {
5
+ window.location.href =
6
+ `https://${window.location.host}/` +
7
+ 'signin?redirectURL=' +
8
+ encodeURIComponent(window.location.href);
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
11
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, providedIn: 'root' }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, decorators: [{
14
+ type: Injectable,
15
+ args: [{
16
+ providedIn: 'root',
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUNqQixlQUFlO1FBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUNsQixXQUFXLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHO2dCQUNsQyxxQkFBcUI7Z0JBQ3JCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzsrR0FOVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVkaXJlY3RUb0xvZ2luKCkge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPVxyXG4gICAgICBgaHR0cHM6Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fS9gICtcclxuICAgICAgJ3NpZ25pbj9yZWRpcmVjdFVSTD0nICtcclxuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICB9XHJcbn1cclxuIl19