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,17 +1,17 @@
1
- import { ComponentFactoryResolver, ApplicationRef, Injector, Type, ComponentRef } from '@angular/core';
2
- import { DialogComponent } from './dialog.component';
3
- import { DialogConfig } from './dialog-config';
4
- import { DialogRef } from './dialog-ref';
5
- import * as i0 from "@angular/core";
6
- export declare class DialogService {
7
- private componentFactoryResolver;
8
- private appRef;
9
- private injector;
10
- dialogComponentRef: ComponentRef<DialogComponent>;
11
- constructor(componentFactoryResolver: ComponentFactoryResolver, appRef: ApplicationRef, injector: Injector);
12
- open(componentType: Type<any>, config: DialogConfig): DialogRef;
13
- private appendDialogComponentToBody;
14
- private removeDialogComponentFromBody;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
16
- static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
17
- }
1
+ import { ComponentFactoryResolver, ApplicationRef, Injector, Type, ComponentRef } from '@angular/core';
2
+ import { DialogComponent } from './dialog.component';
3
+ import { DialogConfig } from './dialog-config';
4
+ import { DialogRef } from './dialog-ref';
5
+ import * as i0 from "@angular/core";
6
+ export declare class DialogService {
7
+ private componentFactoryResolver;
8
+ private appRef;
9
+ private injector;
10
+ dialogComponentRef: ComponentRef<DialogComponent>;
11
+ constructor(componentFactoryResolver: ComponentFactoryResolver, appRef: ApplicationRef, injector: Injector);
12
+ open(componentType: Type<any>, config: DialogConfig): DialogRef;
13
+ private appendDialogComponentToBody;
14
+ private removeDialogComponentFromBody;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
17
+ }
@@ -1,8 +1,8 @@
1
- import { ViewContainerRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class InsertionDirective {
4
- viewContainerRef: ViewContainerRef;
5
- constructor(viewContainerRef: ViewContainerRef);
6
- static ɵfac: i0.ɵɵFactoryDeclaration<InsertionDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<InsertionDirective, "[appInsertion]", never, {}, {}, never>;
8
- }
1
+ import { ViewContainerRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class InsertionDirective {
4
+ viewContainerRef: ViewContainerRef;
5
+ constructor(viewContainerRef: ViewContainerRef);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<InsertionDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<InsertionDirective, "[appInsertion]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -1,20 +1,20 @@
1
- import { OnDestroy, OnInit } from '@angular/core';
2
- import { Subscription } from 'rxjs';
3
- import { SnackBarService } from '../snack-bar.service';
4
- import * as i0 from "@angular/core";
5
- export declare class SnackBarComponent implements OnInit, OnDestroy {
6
- private snackbarService;
7
- show: boolean;
8
- message: string;
9
- icon: string;
10
- type: string;
11
- icons: any;
12
- snackbarSubscription: Subscription;
13
- constructor(snackbarService: SnackBarService);
14
- ngOnInit(): void;
15
- setAutoClose(): void;
16
- close(): void;
17
- ngOnDestroy(): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<SnackBarComponent, "app-snack-bar", never, {}, {}, never, never>;
20
- }
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { Subscription } from 'rxjs';
3
+ import { SnackBarService } from '../snack-bar.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SnackBarComponent implements OnInit, OnDestroy {
6
+ private snackbarService;
7
+ show: boolean;
8
+ message: string;
9
+ icon: string;
10
+ type: string;
11
+ icons: any;
12
+ snackbarSubscription: Subscription;
13
+ constructor(snackbarService: SnackBarService);
14
+ ngOnInit(): void;
15
+ setAutoClose(): void;
16
+ close(): void;
17
+ ngOnDestroy(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<SnackBarComponent, "app-snack-bar", never, {}, {}, never, never, false, never>;
20
+ }
@@ -1,8 +1,8 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./snack-bar/snack-bar.component";
3
- import * as i2 from "@angular/common";
4
- export declare class SnackBarModule {
5
- static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<SnackBarModule, [typeof i1.SnackBarComponent], [typeof i2.CommonModule], [typeof i1.SnackBarComponent]>;
7
- static ɵinj: i0.ɵɵInjectorDeclaration<SnackBarModule>;
8
- }
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./snack-bar/snack-bar.component";
3
+ import * as i2 from "@angular/common";
4
+ export declare class SnackBarModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SnackBarModule, [typeof i1.SnackBarComponent], [typeof i2.CommonModule], [typeof i1.SnackBarComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<SnackBarModule>;
8
+ }
@@ -1,11 +1,11 @@
1
- import { Subject } from 'rxjs';
2
- import * as i0 from "@angular/core";
3
- export declare class SnackBarService {
4
- snackbarSubject: Subject<any>;
5
- snackbarState: import("rxjs").Observable<any>;
6
- constructor();
7
- show(message: string, type?: 'success' | 'warning' | 'info' | 'alert' | 'error'): void;
8
- hide(): void;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarService, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<SnackBarService>;
11
- }
1
+ import { Subject } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SnackBarService {
4
+ snackbarSubject: Subject<any>;
5
+ snackbarState: import("rxjs").Observable<any>;
6
+ constructor();
7
+ show(message: string, type?: 'success' | 'warning' | 'info' | 'alert' | 'error'): void;
8
+ hide(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnackBarService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<SnackBarService>;
11
+ }
@@ -1,26 +1,26 @@
1
- import { GlobalErrorService } from './shared/services/global-error.service';
2
- import { SnackBarService } from './ui-kit/snack-bar/snack-bar.service';
3
- import * as i0 from "@angular/core";
4
- export declare class VcErrorHandlersComponent {
5
- private errorService;
6
- private snackBarService;
7
- private errorConfig;
8
- unauthorized: boolean;
9
- sessionExpired: boolean;
10
- chunkUnavailable: boolean;
11
- serverError: boolean;
12
- isOnline: boolean;
13
- constructor(errorService: GlobalErrorService, snackBarService: SnackBarService);
14
- ngOnInit(): void;
15
- ngOnDestroy(): void;
16
- private subscribeGlobalError;
17
- private handleError;
18
- private subscribeNetworkDetection;
19
- private onNetworkOnline;
20
- private onNetworkOffline;
21
- private handleNetworkError;
22
- private showOfflineSnackBar;
23
- private hideSnackBar;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<VcErrorHandlersComponent, "lib-vc-error-handlers", never, {}, {}, never, never>;
26
- }
1
+ import { GlobalErrorService } from './shared/services/global-error.service';
2
+ import { SnackBarService } from './ui-kit/snack-bar/snack-bar.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class VcErrorHandlersComponent {
5
+ private errorService;
6
+ private snackBarService;
7
+ private errorConfig;
8
+ unauthorized: boolean;
9
+ sessionExpired: boolean;
10
+ chunkUnavailable: boolean;
11
+ serverError: boolean;
12
+ isOnline: boolean;
13
+ constructor(errorService: GlobalErrorService, snackBarService: SnackBarService);
14
+ ngOnInit(): void;
15
+ ngOnDestroy(): void;
16
+ private subscribeGlobalError;
17
+ private handleError;
18
+ private subscribeNetworkDetection;
19
+ private onNetworkOnline;
20
+ private onNetworkOffline;
21
+ private handleNetworkError;
22
+ private showOfflineSnackBar;
23
+ private hideSnackBar;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<VcErrorHandlersComponent, "lib-vc-error-handlers", never, {}, {}, never, never, false, never>;
26
+ }
@@ -1,26 +1,26 @@
1
- import { InjectionToken, ModuleWithProviders } from '@angular/core';
2
- import { FeatureFlagService } from './featureFlag/feature-flag.service';
3
- import { BrowserOptions } from '@sentry/browser';
4
- import { Configurations } from './configuration';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./vc-error-handlers.component";
7
- import * as i2 from "./shared/components/page-not-found/page-not-found.component";
8
- import * as i3 from "./shared/components/unauthorized/unauthorized.component";
9
- import * as i4 from "./shared/components/session-expired/session-expired.component";
10
- import * as i5 from "./shared/components/chunk-unavailable/chunk-unavailable.component";
11
- import * as i6 from "./shared/components/server-error/server-error.component";
12
- import * as i7 from "./shared/components/error-modal/error-modal.component";
13
- import * as i8 from "./shared/components/component-level-server-error/component-level-server-error.component";
14
- import * as i9 from "@angular/common";
15
- import * as i10 from "./ui-kit/dialog/dialog.module";
16
- import * as i11 from "./ui-kit/snack-bar/snack-bar.module";
17
- import * as i12 from "./featureFlag/feature-flag.module";
18
- export declare const FOR_ROOT_SENTRY_OPTIONS_TOKEN: InjectionToken<BrowserOptions>;
19
- export declare class VcErrorHandlersModule {
20
- private loadConfig;
21
- constructor(loadConfig: FeatureFlagService);
22
- static forRoot(environmentConfig: Configurations): ModuleWithProviders<VcErrorHandlersModule>;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<VcErrorHandlersModule, [typeof i1.VcErrorHandlersComponent, typeof i2.PageNotFoundComponent, typeof i3.UnauthorizedComponent, typeof i4.SessionExpiredComponent, typeof i5.ChunkUnavailableComponent, typeof i6.ServerErrorComponent, typeof i7.ErrorModalComponent, typeof i8.ComponentLevelServerErrorComponent], [typeof i9.CommonModule, typeof i10.DialogModule, typeof i11.SnackBarModule, typeof i12.FeatureFlagModule], [typeof i1.VcErrorHandlersComponent, typeof i2.PageNotFoundComponent, typeof i3.UnauthorizedComponent, typeof i4.SessionExpiredComponent, typeof i5.ChunkUnavailableComponent, typeof i6.ServerErrorComponent, typeof i7.ErrorModalComponent, typeof i8.ComponentLevelServerErrorComponent]>;
25
- static ɵinj: i0.ɵɵInjectorDeclaration<VcErrorHandlersModule>;
26
- }
1
+ import { InjectionToken, ModuleWithProviders } from '@angular/core';
2
+ import { FeatureFlagService } from './featureFlag/feature-flag.service';
3
+ import { BrowserOptions } from '@sentry/browser';
4
+ import { Configurations } from './configuration';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./vc-error-handlers.component";
7
+ import * as i2 from "./shared/components/page-not-found/page-not-found.component";
8
+ import * as i3 from "./shared/components/unauthorized/unauthorized.component";
9
+ import * as i4 from "./shared/components/session-expired/session-expired.component";
10
+ import * as i5 from "./shared/components/chunk-unavailable/chunk-unavailable.component";
11
+ import * as i6 from "./shared/components/server-error/server-error.component";
12
+ import * as i7 from "./shared/components/error-modal/error-modal.component";
13
+ import * as i8 from "./shared/components/component-level-server-error/component-level-server-error.component";
14
+ import * as i9 from "@angular/common";
15
+ import * as i10 from "./ui-kit/dialog/dialog.module";
16
+ import * as i11 from "./ui-kit/snack-bar/snack-bar.module";
17
+ import * as i12 from "./featureFlag/feature-flag.module";
18
+ export declare const FOR_ROOT_SENTRY_OPTIONS_TOKEN: InjectionToken<BrowserOptions>;
19
+ export declare class VcErrorHandlersModule {
20
+ private loadConfig;
21
+ constructor(loadConfig: FeatureFlagService);
22
+ static forRoot(environmentConfig: Configurations): ModuleWithProviders<VcErrorHandlersModule>;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersModule, never>;
24
+ static ɵmod: i0.ɵɵNgModuleDeclaration<VcErrorHandlersModule, [typeof i1.VcErrorHandlersComponent, typeof i2.PageNotFoundComponent, typeof i3.UnauthorizedComponent, typeof i4.SessionExpiredComponent, typeof i5.ChunkUnavailableComponent, typeof i6.ServerErrorComponent, typeof i7.ErrorModalComponent, typeof i8.ComponentLevelServerErrorComponent], [typeof i9.CommonModule, typeof i10.DialogModule, typeof i11.SnackBarModule, typeof i12.FeatureFlagModule, typeof i9.NgOptimizedImage], [typeof i1.VcErrorHandlersComponent, typeof i2.PageNotFoundComponent, typeof i3.UnauthorizedComponent, typeof i4.SessionExpiredComponent, typeof i5.ChunkUnavailableComponent, typeof i6.ServerErrorComponent, typeof i7.ErrorModalComponent, typeof i8.ComponentLevelServerErrorComponent]>;
25
+ static ɵinj: i0.ɵɵInjectorDeclaration<VcErrorHandlersModule>;
26
+ }
@@ -1,6 +1,6 @@
1
- import * as i0 from "@angular/core";
2
- export declare class VcErrorHandlersService {
3
- constructor();
4
- static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersService, never>;
5
- static ɵprov: i0.ɵɵInjectableDeclaration<VcErrorHandlersService>;
6
- }
1
+ import * as i0 from "@angular/core";
2
+ export declare class VcErrorHandlersService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<VcErrorHandlersService>;
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vc-error-handlers",
3
- "version": "0.1.98",
3
+ "version": "0.2.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": " 13.x || 14.x || 15.x || 16.x || 17.x || 18.x || 19.x || 20.x",
6
6
  "@angular/core": "13.x || 14.x || 15.x || 16.x || 17.x || 18.x || 19.x || 20.x"
@@ -9,23 +9,17 @@
9
9
  "access": "public",
10
10
  "registry": "https://registry.npmjs.org/"
11
11
  },
12
- "module": "fesm2015/vc-error-handlers.mjs",
13
- "es2020": "fesm2020/vc-error-handlers.mjs",
14
- "esm2020": "esm2020/vc-error-handlers.mjs",
15
- "fesm2020": "fesm2020/vc-error-handlers.mjs",
16
- "fesm2015": "fesm2015/vc-error-handlers.mjs",
17
- "typings": "vc-error-handlers.d.ts",
12
+ "module": "fesm2022/vc-error-handlers.mjs",
13
+ "typings": "index.d.ts",
18
14
  "exports": {
19
15
  "./package.json": {
20
16
  "default": "./package.json"
21
17
  },
22
18
  ".": {
23
- "types": "./vc-error-handlers.d.ts",
24
- "esm2020": "./esm2020/vc-error-handlers.mjs",
25
- "es2020": "./fesm2020/vc-error-handlers.mjs",
26
- "es2015": "./fesm2015/vc-error-handlers.mjs",
27
- "node": "./fesm2015/vc-error-handlers.mjs",
28
- "default": "./fesm2020/vc-error-handlers.mjs"
19
+ "types": "./index.d.ts",
20
+ "esm2022": "./esm2022/vc-error-handlers.mjs",
21
+ "esm": "./esm2022/vc-error-handlers.mjs",
22
+ "default": "./fesm2022/vc-error-handlers.mjs"
29
23
  }
30
24
  },
31
25
  "sideEffects": false,
package/public-api.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- export * from './lib/vc-error-handlers.service';
2
- export * from './lib/shared/services/global-error.service';
3
- export * from './lib/shared/services/router.service';
4
- export * from './lib/vc-error-handlers.component';
5
- export * from './lib/shared/components/page-not-found/page-not-found.component';
6
- export * from './lib/shared/components/unauthorized/unauthorized.component';
7
- export * from './lib/shared/components/chunk-unavailable/chunk-unavailable.component';
8
- export * from './lib/shared/components/server-error/server-error.component';
9
- export * from './lib/shared/components/session-expired/session-expired.component';
10
- export * from './lib/shared/components/error-modal/error-modal.component';
11
- export * from './lib/shared/components/component-level-server-error/component-level-server-error.component';
12
- export * from './lib/vc-error-handlers.module';
13
- export * from './lib/shared/interceptors/http.interceptor';
1
+ export * from './lib/vc-error-handlers.service';
2
+ export * from './lib/shared/services/global-error.service';
3
+ export * from './lib/shared/services/router.service';
4
+ export * from './lib/vc-error-handlers.component';
5
+ export * from './lib/shared/components/page-not-found/page-not-found.component';
6
+ export * from './lib/shared/components/unauthorized/unauthorized.component';
7
+ export * from './lib/shared/components/chunk-unavailable/chunk-unavailable.component';
8
+ export * from './lib/shared/components/server-error/server-error.component';
9
+ export * from './lib/shared/components/session-expired/session-expired.component';
10
+ export * from './lib/shared/components/error-modal/error-modal.component';
11
+ export * from './lib/shared/components/component-level-server-error/component-level-server-error.component';
12
+ export * from './lib/vc-error-handlers.module';
13
+ export * from './lib/shared/interceptors/http.interceptor';
@@ -1,39 +0,0 @@
1
- export declare const environment: {
2
- production: boolean;
3
- appUrl: string;
4
- apiBaseUrl: string;
5
- authEndpoint: string;
6
- orgEndpoint_TL: string;
7
- s3Url: string;
8
- s3BucketUrl: string;
9
- s3Bucket: string;
10
- profile: string;
11
- assessmentEnpoint: string;
12
- organizationPost: string;
13
- organizationGet: string;
14
- complianceGet: string;
15
- compliancePost: string;
16
- fileUploadEndPoint: string;
17
- assuranceGet: string;
18
- policyGet: string;
19
- saveDoc: string;
20
- docxUpload: string;
21
- fileUpload: string;
22
- policyPost: string;
23
- policyPut: string;
24
- responsibilityPost: string;
25
- linkDoc: string;
26
- linkPdf: string;
27
- assuranceApi: string;
28
- assurance: string;
29
- programEndpoint: string;
30
- risk: string;
31
- risk_put: string;
32
- riskPdfPost: string;
33
- riskPost: string;
34
- riskGet: string;
35
- baseUrl: string;
36
- grc_get: string;
37
- leftMenuLogo: string;
38
- vLoader: string;
39
- };
@@ -1,75 +0,0 @@
1
- // This file can be replaced during build by using the `fileReplacements` array.
2
- // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
3
- // The list of file replacements can be found in `angular.json`.
4
- let domainName = 'devapi.v-comply.com';
5
- let apiBaseUrl = 'https://api-uat1.v-comply.com';
6
- switch (window.location.host) {
7
- case 'dev.v-comply.com':
8
- domainName = 'devapi.v-comply.com';
9
- apiBaseUrl = 'https://api-uat1.v-comply.com';
10
- break;
11
- case 'beta.v-comply.com':
12
- domainName = 'betaapi.v-comply.com';
13
- apiBaseUrl = 'https://api-staging.v-comply.com';
14
- break;
15
- case 'test.v-comply.com':
16
- domainName = 'devapi.v-comply.com';
17
- break;
18
- case 'eu.v-comply.com':
19
- domainName = 'euapi.v-comply.com';
20
- break;
21
- default:
22
- domainName = 'api.v-comply.com';
23
- break;
24
- }
25
- const PORT_EDITOR = 8081;
26
- const PORT_CONTENT_SAVE = 8834;
27
- let endPoint = 'https://devapi.v-comply.com/';
28
- export const environment = {
29
- production: false,
30
- appUrl: 'http://localhost:4200/',
31
- apiBaseUrl: 'https://api-uat1.v-comply.com',
32
- authEndpoint: `${endPoint}VcomplyAuth/`,
33
- orgEndpoint_TL: `${endPoint}organization_pwt/?mode=`,
34
- s3Url: '',
35
- s3BucketUrl: `${endPoint}globals?mode=bucket`,
36
- s3Bucket: '',
37
- profile: '/profile_pic/thumb/',
38
- assessmentEnpoint: `${endPoint}Assessment/?mode=`,
39
- organizationPost: `${endPoint}organization_post/?mode=`,
40
- organizationGet: `${endPoint}organization/?mode=`,
41
- complianceGet: `${endPoint}compliance/?mode=`,
42
- compliancePost: `${endPoint}compliance_post/?mode=`,
43
- fileUploadEndPoint: 'https://upload-uat1.v-comply.com/fileupload/?destination=',
44
- assuranceGet: `${endPoint}assurance/?mode=`,
45
- policyGet: `${endPoint}policy/?mode=`,
46
- saveDoc: 'https://dev-node.v-comply.com/saveContent?bypass-token=true&id=',
47
- docxUpload: 'https://dev-node.v-comply.com/ImportDocument',
48
- fileUpload: 'https://dev-node.v-comply.com/importFiles',
49
- policyPost: `${endPoint}policy_post/?mode=`,
50
- policyPut: `${endPoint}policy_put/?mode=`,
51
- responsibilityPost: `${endPoint}responsibilities_post/?mode=`,
52
- linkDoc: 'https://dev-node.v-comply.com' + '/ImportDocument',
53
- linkPdf: 'https://dev-node.v-comply.com' + '/extractDocs',
54
- assuranceApi: 'https://devapi.v-comply.com/Assurance/',
55
- assurance: 'https://devapi.v-comply.com/Assurance/',
56
- programEndpoint: 'https://devapi.v-comply.com/program',
57
- risk: 'https://devapi.v-comply.com/risk/?mode=',
58
- risk_put: 'https://devapi.v-comply.com/risk_put/?mode=',
59
- riskPdfPost: 'https://devapi.v-comply.com/risk_pdf_post?mode=',
60
- riskPost: 'https://devapi.v-comply.com/risk_post/?mode=',
61
- riskGet: 'https://devapi.v-comply.com/risk/?mode=',
62
- baseUrl: 'https://devapi.v-comply.com/',
63
- grc_get: 'https://devapi.v-comply.com/grc_object/?mode=',
64
- leftMenuLogo: 'https://cdn.v-comply.com/logo/prod/v-logo.svg?v=1.0',
65
- vLoader: 'https://cdn.v-comply.com/logo/prod/v-icon-loader.svg?v=1.0',
66
- };
67
- /*
68
- * For easier debugging in development mode, you can import the following file
69
- * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
70
- *
71
- * This import should be commented out in production mode because it will have a negative impact
72
- * on performance if an error is thrown.
73
- */
74
- // import 'zone.js/plugins/zone-error'; // Included with Angular CLI.
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBRWhFLElBQUksVUFBVSxHQUFHLHFCQUFxQixDQUFDO0FBQ3ZDLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDO0FBQ2pELFFBQVEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7SUFDNUIsS0FBSyxrQkFBa0I7UUFDckIsVUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBQ25DLFVBQVUsR0FBRywrQkFBK0IsQ0FBQztRQUM3QyxNQUFNO0lBQ1IsS0FBSyxtQkFBbUI7UUFDdEIsVUFBVSxHQUFHLHNCQUFzQixDQUFDO1FBQ3BDLFVBQVUsR0FBRyxrQ0FBa0MsQ0FBQztRQUNoRCxNQUFNO0lBQ1IsS0FBSyxtQkFBbUI7UUFDdEIsVUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBQ25DLE1BQU07SUFDUixLQUFLLGlCQUFpQjtRQUNwQixVQUFVLEdBQUcsb0JBQW9CLENBQUM7UUFDbEMsTUFBTTtJQUNSO1FBQ0UsVUFBVSxHQUFHLGtCQUFrQixDQUFDO1FBQ2hDLE1BQU07Q0FDVDtBQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUN6QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUMvQixJQUFJLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsVUFBVSxFQUFFLEtBQUs7SUFDakIsTUFBTSxFQUFFLHdCQUF3QjtJQUNoQyxVQUFVLEVBQUUsK0JBQStCO0lBQzNDLFlBQVksRUFBRSxHQUFHLFFBQVEsY0FBYztJQUN2QyxjQUFjLEVBQUUsR0FBRyxRQUFRLHlCQUF5QjtJQUNwRCxLQUFLLEVBQUUsRUFBRTtJQUNULFdBQVcsRUFBRSxHQUFHLFFBQVEscUJBQXFCO0lBQzdDLFFBQVEsRUFBRSxFQUFFO0lBQ1osT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixpQkFBaUIsRUFBRSxHQUFHLFFBQVEsbUJBQW1CO0lBQ2pELGdCQUFnQixFQUFFLEdBQUcsUUFBUSwwQkFBMEI7SUFDdkQsZUFBZSxFQUFFLEdBQUcsUUFBUSxxQkFBcUI7SUFDakQsYUFBYSxFQUFFLEdBQUcsUUFBUSxtQkFBbUI7SUFDN0MsY0FBYyxFQUFFLEdBQUcsUUFBUSx3QkFBd0I7SUFDbkQsa0JBQWtCLEVBQ2hCLDJEQUEyRDtJQUM3RCxZQUFZLEVBQUUsR0FBRyxRQUFRLGtCQUFrQjtJQUMzQyxTQUFTLEVBQUUsR0FBRyxRQUFRLGVBQWU7SUFDckMsT0FBTyxFQUFFLGlFQUFpRTtJQUMxRSxVQUFVLEVBQUUsOENBQThDO0lBQzFELFVBQVUsRUFBRSwyQ0FBMkM7SUFDdkQsVUFBVSxFQUFFLEdBQUcsUUFBUSxvQkFBb0I7SUFDM0MsU0FBUyxFQUFFLEdBQUcsUUFBUSxtQkFBbUI7SUFDekMsa0JBQWtCLEVBQUUsR0FBRyxRQUFRLDhCQUE4QjtJQUM3RCxPQUFPLEVBQUUsK0JBQStCLEdBQUcsaUJBQWlCO0lBQzVELE9BQU8sRUFBRSwrQkFBK0IsR0FBRyxjQUFjO0lBQ3pELFlBQVksRUFBRSx3Q0FBd0M7SUFDdEQsU0FBUyxFQUFFLHdDQUF3QztJQUNuRCxlQUFlLEVBQUUscUNBQXFDO0lBQ3RELElBQUksRUFBRSx5Q0FBeUM7SUFDL0MsUUFBUSxFQUFFLDZDQUE2QztJQUN2RCxXQUFXLEVBQUUsaURBQWlEO0lBQzlELFFBQVEsRUFBRSw4Q0FBOEM7SUFDeEQsT0FBTyxFQUFFLHlDQUF5QztJQUNsRCxPQUFPLEVBQUUsOEJBQThCO0lBQ3ZDLE9BQU8sRUFBRSwrQ0FBK0M7SUFDeEQsWUFBWSxFQUFFLHFEQUFxRDtJQUNuRSxPQUFPLEVBQUUsNERBQTREO0NBQ3RFLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxzRUFBc0UiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxyXG4vLyBgbmcgYnVpbGQgLS1wcm9kYCByZXBsYWNlcyBgZW52aXJvbm1lbnQudHNgIHdpdGggYGVudmlyb25tZW50LnByb2QudHNgLlxyXG4vLyBUaGUgbGlzdCBvZiBmaWxlIHJlcGxhY2VtZW50cyBjYW4gYmUgZm91bmQgaW4gYGFuZ3VsYXIuanNvbmAuXHJcblxyXG5sZXQgZG9tYWluTmFtZSA9ICdkZXZhcGkudi1jb21wbHkuY29tJztcclxubGV0IGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGktdWF0MS52LWNvbXBseS5jb20nO1xyXG5zd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5ob3N0KSB7XHJcbiAgY2FzZSAnZGV2LnYtY29tcGx5LmNvbSc6XHJcbiAgICBkb21haW5OYW1lID0gJ2RldmFwaS52LWNvbXBseS5jb20nO1xyXG4gICAgYXBpQmFzZVVybCA9ICdodHRwczovL2FwaS11YXQxLnYtY29tcGx5LmNvbSc7XHJcbiAgICBicmVhaztcclxuICBjYXNlICdiZXRhLnYtY29tcGx5LmNvbSc6XHJcbiAgICBkb21haW5OYW1lID0gJ2JldGFhcGkudi1jb21wbHkuY29tJztcclxuICAgIGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGktc3RhZ2luZy52LWNvbXBseS5jb20nO1xyXG4gICAgYnJlYWs7XHJcbiAgY2FzZSAndGVzdC52LWNvbXBseS5jb20nOlxyXG4gICAgZG9tYWluTmFtZSA9ICdkZXZhcGkudi1jb21wbHkuY29tJztcclxuICAgIGJyZWFrO1xyXG4gIGNhc2UgJ2V1LnYtY29tcGx5LmNvbSc6XHJcbiAgICBkb21haW5OYW1lID0gJ2V1YXBpLnYtY29tcGx5LmNvbSc7XHJcbiAgICBicmVhaztcclxuICBkZWZhdWx0OlxyXG4gICAgZG9tYWluTmFtZSA9ICdhcGkudi1jb21wbHkuY29tJztcclxuICAgIGJyZWFrO1xyXG59XHJcbmNvbnN0IFBPUlRfRURJVE9SID0gODA4MTtcclxuY29uc3QgUE9SVF9DT05URU5UX1NBVkUgPSA4ODM0O1xyXG5sZXQgZW5kUG9pbnQgPSAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tLyc7XHJcbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudCA9IHtcclxuICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICBhcHBVcmw6ICdodHRwOi8vbG9jYWxob3N0OjQyMDAvJyxcclxuICBhcGlCYXNlVXJsOiAnaHR0cHM6Ly9hcGktdWF0MS52LWNvbXBseS5jb20nLFxyXG4gIGF1dGhFbmRwb2ludDogYCR7ZW5kUG9pbnR9VmNvbXBseUF1dGgvYCxcclxuICBvcmdFbmRwb2ludF9UTDogYCR7ZW5kUG9pbnR9b3JnYW5pemF0aW9uX3B3dC8/bW9kZT1gLFxyXG4gIHMzVXJsOiAnJyxcclxuICBzM0J1Y2tldFVybDogYCR7ZW5kUG9pbnR9Z2xvYmFscz9tb2RlPWJ1Y2tldGAsXHJcbiAgczNCdWNrZXQ6ICcnLFxyXG4gIHByb2ZpbGU6ICcvcHJvZmlsZV9waWMvdGh1bWIvJyxcclxuICBhc3Nlc3NtZW50RW5wb2ludDogYCR7ZW5kUG9pbnR9QXNzZXNzbWVudC8/bW9kZT1gLFxyXG4gIG9yZ2FuaXphdGlvblBvc3Q6IGAke2VuZFBvaW50fW9yZ2FuaXphdGlvbl9wb3N0Lz9tb2RlPWAsXHJcbiAgb3JnYW5pemF0aW9uR2V0OiBgJHtlbmRQb2ludH1vcmdhbml6YXRpb24vP21vZGU9YCxcclxuICBjb21wbGlhbmNlR2V0OiBgJHtlbmRQb2ludH1jb21wbGlhbmNlLz9tb2RlPWAsXHJcbiAgY29tcGxpYW5jZVBvc3Q6IGAke2VuZFBvaW50fWNvbXBsaWFuY2VfcG9zdC8/bW9kZT1gLFxyXG4gIGZpbGVVcGxvYWRFbmRQb2ludDpcclxuICAgICdodHRwczovL3VwbG9hZC11YXQxLnYtY29tcGx5LmNvbS9maWxldXBsb2FkLz9kZXN0aW5hdGlvbj0nLFxyXG4gIGFzc3VyYW5jZUdldDogYCR7ZW5kUG9pbnR9YXNzdXJhbmNlLz9tb2RlPWAsXHJcbiAgcG9saWN5R2V0OiBgJHtlbmRQb2ludH1wb2xpY3kvP21vZGU9YCxcclxuICBzYXZlRG9jOiAnaHR0cHM6Ly9kZXYtbm9kZS52LWNvbXBseS5jb20vc2F2ZUNvbnRlbnQ/YnlwYXNzLXRva2VuPXRydWUmaWQ9JyxcclxuICBkb2N4VXBsb2FkOiAnaHR0cHM6Ly9kZXYtbm9kZS52LWNvbXBseS5jb20vSW1wb3J0RG9jdW1lbnQnLFxyXG4gIGZpbGVVcGxvYWQ6ICdodHRwczovL2Rldi1ub2RlLnYtY29tcGx5LmNvbS9pbXBvcnRGaWxlcycsXHJcbiAgcG9saWN5UG9zdDogYCR7ZW5kUG9pbnR9cG9saWN5X3Bvc3QvP21vZGU9YCxcclxuICBwb2xpY3lQdXQ6IGAke2VuZFBvaW50fXBvbGljeV9wdXQvP21vZGU9YCxcclxuICByZXNwb25zaWJpbGl0eVBvc3Q6IGAke2VuZFBvaW50fXJlc3BvbnNpYmlsaXRpZXNfcG9zdC8/bW9kZT1gLFxyXG4gIGxpbmtEb2M6ICdodHRwczovL2Rldi1ub2RlLnYtY29tcGx5LmNvbScgKyAnL0ltcG9ydERvY3VtZW50JyxcclxuICBsaW5rUGRmOiAnaHR0cHM6Ly9kZXYtbm9kZS52LWNvbXBseS5jb20nICsgJy9leHRyYWN0RG9jcycsXHJcbiAgYXNzdXJhbmNlQXBpOiAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL0Fzc3VyYW5jZS8nLFxyXG4gIGFzc3VyYW5jZTogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvJyxcclxuICBwcm9ncmFtRW5kcG9pbnQ6ICdodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcHJvZ3JhbScsXHJcbiAgcmlzazogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrLz9tb2RlPScsXHJcbiAgcmlza19wdXQ6ICdodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlza19wdXQvP21vZGU9JyxcclxuICByaXNrUGRmUG9zdDogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrX3BkZl9wb3N0P21vZGU9JyxcclxuICByaXNrUG9zdDogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrX3Bvc3QvP21vZGU9JyxcclxuICByaXNrR2V0OiAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3Jpc2svP21vZGU9JyxcclxuICBiYXNlVXJsOiAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tLycsXHJcbiAgZ3JjX2dldDogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9ncmNfb2JqZWN0Lz9tb2RlPScsXHJcbiAgbGVmdE1lbnVMb2dvOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xvZ28vcHJvZC92LWxvZ28uc3ZnP3Y9MS4wJyxcclxuICB2TG9hZGVyOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xvZ28vcHJvZC92LWljb24tbG9hZGVyLnN2Zz92PTEuMCcsXHJcbn07XHJcblxyXG4vKlxyXG4gKiBGb3IgZWFzaWVyIGRlYnVnZ2luZyBpbiBkZXZlbG9wbWVudCBtb2RlLCB5b3UgY2FuIGltcG9ydCB0aGUgZm9sbG93aW5nIGZpbGVcclxuICogdG8gaWdub3JlIHpvbmUgcmVsYXRlZCBlcnJvciBzdGFjayBmcmFtZXMgc3VjaCBhcyBgem9uZS5ydW5gLCBgem9uZURlbGVnYXRlLmludm9rZVRhc2tgLlxyXG4gKlxyXG4gKiBUaGlzIGltcG9ydCBzaG91bGQgYmUgY29tbWVudGVkIG91dCBpbiBwcm9kdWN0aW9uIG1vZGUgYmVjYXVzZSBpdCB3aWxsIGhhdmUgYSBuZWdhdGl2ZSBpbXBhY3RcclxuICogb24gcGVyZm9ybWFuY2UgaWYgYW4gZXJyb3IgaXMgdGhyb3duLlxyXG4gKi9cclxuLy8gaW1wb3J0ICd6b25lLmpzL3BsdWdpbnMvem9uZS1lcnJvcic7ICAvLyBJbmNsdWRlZCB3aXRoIEFuZ3VsYXIgQ0xJLlxyXG4iXX0=
@@ -1,6 +0,0 @@
1
- export class Configurations {
2
- constructor() {
3
- this.sentryConfig = {};
4
- }
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztJQUd6QjtRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9ucyB7XHJcbiAgcHVibGljIHNlbnRyeUNvbmZpZzogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuc2VudHJ5Q29uZmlnID0ge307XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FeatureFlagDirective } from './feature-flag.directive';
4
- import * as i0 from "@angular/core";
5
- export class FeatureFlagModule {
6
- }
7
- FeatureFlagModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- FeatureFlagModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagModule, declarations: [FeatureFlagDirective], imports: [CommonModule], exports: [FeatureFlagDirective] });
9
- FeatureFlagModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagModule, imports: [[
10
- CommonModule
11
- ]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- declarations: [FeatureFlagDirective],
16
- imports: [
17
- CommonModule
18
- ],
19
- exports: [FeatureFlagDirective]
20
- }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFTaEUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQU5iLG9CQUFvQixhQUVqQyxZQUFZLGFBRUwsb0JBQW9COytHQUVsQixpQkFBaUIsWUFMbkI7WUFDUCxZQUFZO1NBQ2I7MkZBR1UsaUJBQWlCO2tCQVA3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUMsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGZWF0dXJlRmxhZ0RpcmVjdGl2ZSB9IGZyb20gJy4vZmVhdHVyZS1mbGFnLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0ZlYXR1cmVGbGFnRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6W0ZlYXR1cmVGbGFnRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZUZsYWdNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -1,95 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { retry } from 'rxjs/operators';
3
- import { environment } from '../../environments/environment';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- import * as i2 from "@vcomply/authorizer";
7
- export class FeatureFlagService {
8
- constructor(http, authorizer) {
9
- this.http = http;
10
- this.authorizer = authorizer;
11
- this.flagFetchError = false;
12
- this.featuresMap = {};
13
- this.AWSFlags = {};
14
- }
15
- fetchFlags() {
16
- return this.http.get(environment.baseUrl + 'features').pipe(retry(2));
17
- }
18
- loadConfig() {
19
- if (this.flagSubscription) {
20
- this.flagSubscription.unsubscribe();
21
- }
22
- return new Promise((resolve, reject) => {
23
- this.flagSubscription = this.fetchFlags().subscribe({
24
- next: (res) => {
25
- try {
26
- resolve(true);
27
- this.flagFetchError = false;
28
- this.AWSFlags = res;
29
- this.buildFeatureFlags(this.authorizer.getOrganizationId());
30
- }
31
- catch (error) {
32
- reject(error);
33
- }
34
- },
35
- error: (err) => {
36
- reject(true);
37
- this.flagFetchError = true;
38
- console.log('An error occurred while fetching feature flags', err);
39
- },
40
- });
41
- });
42
- }
43
- buildFeatureFlags(orgId) {
44
- orgId = orgId?.toString();
45
- const enabledFeatures = {};
46
- Object.keys(this.AWSFlags).forEach((flag) => {
47
- const flagObj = this.AWSFlags[flag];
48
- enabledFeatures[flag] = false;
49
- if (flagObj) {
50
- if (flagObj?.enabled && !flagObj.hasOwnProperty('enabledOrgIds')) {
51
- enabledFeatures[flag] = true;
52
- }
53
- else if (flagObj?.enabled &&
54
- flagObj.hasOwnProperty('enabledOrgIds') &&
55
- flagObj?.enabledOrgIds?.length > 0) {
56
- if (flagObj?.enabledOrgIds?.includes(orgId)) {
57
- enabledFeatures[flag] = true;
58
- }
59
- else {
60
- enabledFeatures[flag] = false;
61
- }
62
- }
63
- else {
64
- if (flagObj?.enabled) {
65
- enabledFeatures[flag] = true;
66
- }
67
- else {
68
- enabledFeatures[flag] = false;
69
- }
70
- }
71
- }
72
- else {
73
- enabledFeatures[flag] = true;
74
- }
75
- });
76
- this.featuresMap = enabledFeatures;
77
- }
78
- isFeatureEnabled(featureFlag) {
79
- if (this.featuresMap.hasOwnProperty(featureFlag)) {
80
- return this.featuresMap[featureFlag];
81
- }
82
- else {
83
- return true;
84
- }
85
- }
86
- }
87
- FeatureFlagService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagService, deps: [{ token: i1.HttpClient }, { token: i2.AuthorizerService }], target: i0.ɵɵFactoryTarget.Injectable });
88
- FeatureFlagService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagService, providedIn: 'root' });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagService, decorators: [{
90
- type: Injectable,
91
- args: [{
92
- providedIn: 'root',
93
- }]
94
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthorizerService }]; } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL2ZlYXR1cmVGbGFnL2ZlYXR1cmUtZmxhZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUk3RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsSUFBZ0IsRUFDaEIsVUFBNkI7UUFEN0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUd2QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixhQUFRLEdBQVEsRUFBRSxDQUFDO0lBSmhCLENBQUM7SUFPSixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztRQUNELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2xELElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUNqQixJQUFJO3dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztxQkFDN0Q7b0JBQUMsT0FBTyxLQUFLLEVBQUU7d0JBQ2QsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNmO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDckUsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsS0FBSyxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMxQixNQUFNLGVBQWUsR0FBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQ2hFLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQzlCO3FCQUFNLElBQ0wsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO29CQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQ2xDO29CQUNBLElBQUksT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzNDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7cUJBQzlCO3lCQUFNO3dCQUNMLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7cUJBQy9CO2lCQUNGO3FCQUFNO29CQUNMLElBQUksT0FBTyxFQUFFLE9BQU8sRUFBRTt3QkFDcEIsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztxQkFDOUI7eUJBQU07d0JBQ0wsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztxQkFDL0I7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBbUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzsrR0EvRVUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXV0aG9yaXplclNlcnZpY2UgfSBmcm9tICdAdmNvbXBseS9hdXRob3JpemVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFnU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhvcml6ZXI6IEF1dGhvcml6ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBmbGFnRmV0Y2hFcnJvciA9IGZhbHNlO1xyXG4gIGZlYXR1cmVzTWFwOiBhbnkgPSB7fTtcclxuICBBV1NGbGFnczogYW55ID0ge307XHJcbiAgZmxhZ1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZmV0Y2hGbGFncygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGVudmlyb25tZW50LmJhc2VVcmwgKyAnZmVhdHVyZXMnKS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGxvYWRDb25maWcoKSB7XHJcbiAgICBpZiAodGhpcy5mbGFnU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuZmxhZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5mbGFnU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaEZsYWdzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmxhZ0ZldGNoRXJyb3IgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5BV1NGbGFncyA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5idWlsZEZlYXR1cmVGbGFncyh0aGlzLmF1dGhvcml6ZXIuZ2V0T3JnYW5pemF0aW9uSWQoKSk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5mbGFnRmV0Y2hFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgZmVhdHVyZSBmbGFncycsIGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGJ1aWxkRmVhdHVyZUZsYWdzKG9yZ0lkOiBhbnkpIHtcclxuICAgIG9yZ0lkID0gb3JnSWQ/LnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBlbmFibGVkRmVhdHVyZXM6IGFueSA9IHt9O1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5BV1NGbGFncykuZm9yRWFjaCgoZmxhZzogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZsYWdPYmogPSB0aGlzLkFXU0ZsYWdzW2ZsYWddO1xyXG4gICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSBmYWxzZTtcclxuICAgICAgaWYgKGZsYWdPYmopIHtcclxuICAgICAgICBpZiAoZmxhZ09iaj8uZW5hYmxlZCAmJiAhZmxhZ09iai5oYXNPd25Qcm9wZXJ0eSgnZW5hYmxlZE9yZ0lkcycpKSB7XHJcbiAgICAgICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmbGFnT2JqPy5lbmFibGVkICYmXHJcbiAgICAgICAgICBmbGFnT2JqLmhhc093blByb3BlcnR5KCdlbmFibGVkT3JnSWRzJykgJiZcclxuICAgICAgICAgIGZsYWdPYmo/LmVuYWJsZWRPcmdJZHM/Lmxlbmd0aCA+IDBcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChmbGFnT2JqPy5lbmFibGVkT3JnSWRzPy5pbmNsdWRlcyhvcmdJZCkpIHtcclxuICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVzW2ZsYWddID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVuYWJsZWRGZWF0dXJlc1tmbGFnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZmxhZ09iaj8uZW5hYmxlZCkge1xyXG4gICAgICAgICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVzW2ZsYWddID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVuYWJsZWRGZWF0dXJlc1tmbGFnXSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlc01hcCA9IGVuYWJsZWRGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIGlzRmVhdHVyZUVuYWJsZWQoZmVhdHVyZUZsYWc6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZXNNYXAuaGFzT3duUHJvcGVydHkoZmVhdHVyZUZsYWcpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZlYXR1cmVzTWFwW2ZlYXR1cmVGbGFnXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=