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.
- package/esm2022/lib/configuration.mjs +7 -0
- package/{esm2020 → esm2022}/lib/featureFlag/feature-flag.directive.mjs +27 -27
- package/esm2022/lib/featureFlag/feature-flag.module.mjs +20 -0
- package/esm2022/lib/featureFlag/feature-flag.service.mjs +98 -0
- package/{esm2020 → esm2022}/lib/shared/components/chunk-unavailable/chunk-unavailable.component.mjs +35 -35
- package/esm2022/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/shared/components/error-modal/error-modal.component.mjs +45 -45
- package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +92 -0
- package/esm2022/lib/shared/components/server-error/server-error.component.mjs +83 -0
- package/{esm2020 → esm2022}/lib/shared/components/session-expired/session-expired.component.mjs +35 -35
- package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +103 -0
- package/{esm2020 → esm2022}/lib/shared/constants/api-config.constants.mjs +239 -239
- package/{esm2020 → esm2022}/lib/shared/constants/error-handling.constants.mjs +62 -62
- package/{esm2020 → esm2022}/lib/shared/errorhandler/chunk-error.handler.mjs +18 -18
- package/{esm2020 → esm2022}/lib/shared/errorhandler/sentry-error.handler.mjs +47 -47
- package/{esm2020 → esm2022}/lib/shared/interceptors/http.interceptor.mjs +35 -35
- package/{esm2020 → esm2022}/lib/shared/services/global-error.service.mjs +115 -115
- package/{esm2020 → esm2022}/lib/shared/services/router.service.mjs +19 -19
- package/{esm2020 → esm2022}/lib/shared/services/util.service.mjs +48 -48
- package/{esm2020 → esm2022}/lib/shared/types/global-error.types.mjs +15 -15
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-config.mjs +2 -2
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +15 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-ref.mjs +12 -12
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.component.mjs +85 -85
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.service.mjs +52 -52
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/insertion.directive.mjs +16 -16
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +50 -50
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -32
- package/{esm2020 → esm2022}/lib/vc-error-handlers.component.mjs +85 -85
- package/esm2022/lib/vc-error-handlers.module.mjs +84 -0
- package/{esm2020 → esm2022}/lib/vc-error-handlers.service.mjs +14 -14
- package/{esm2020 → esm2022}/public-api.mjs +16 -16
- package/{esm2020 → esm2022}/vc-error-handlers.mjs +4 -4
- package/{fesm2020 → fesm2022}/vc-error-handlers.mjs +1286 -1359
- package/fesm2022/vc-error-handlers.mjs.map +1 -0
- package/{vc-error-handlers.d.ts → index.d.ts} +5 -5
- package/lib/configuration.d.ts +5 -4
- package/lib/featureFlag/feature-flag.directive.d.ts +13 -13
- package/lib/featureFlag/feature-flag.module.d.ts +8 -8
- package/lib/featureFlag/feature-flag.service.d.ts +21 -19
- package/lib/shared/components/chunk-unavailable/chunk-unavailable.component.d.ts +20 -20
- package/lib/shared/components/component-level-server-error/component-level-server-error.component.d.ts +19 -19
- package/lib/shared/components/error-modal/error-modal.component.d.ts +21 -21
- package/lib/shared/components/page-not-found/page-not-found.component.d.ts +23 -23
- package/lib/shared/components/server-error/server-error.component.d.ts +19 -19
- package/lib/shared/components/session-expired/session-expired.component.d.ts +20 -20
- package/lib/shared/components/unauthorized/unauthorized.component.d.ts +23 -23
- package/lib/shared/constants/api-config.constants.d.ts +20 -20
- package/lib/shared/constants/error-handling.constants.d.ts +62 -62
- package/lib/shared/errorhandler/chunk-error.handler.d.ts +7 -7
- package/lib/shared/errorhandler/sentry-error.handler.d.ts +14 -14
- package/lib/shared/interceptors/http.interceptor.d.ts +13 -13
- package/lib/shared/services/global-error.service.d.ts +31 -31
- package/lib/shared/services/router.service.d.ts +6 -6
- package/lib/shared/services/util.service.d.ts +15 -15
- package/lib/shared/types/global-error.types.d.ts +27 -27
- package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
- package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
- package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
- package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +20 -20
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +11 -11
- package/lib/vc-error-handlers.component.d.ts +26 -26
- package/lib/vc-error-handlers.module.d.ts +26 -26
- package/lib/vc-error-handlers.service.d.ts +6 -6
- package/package.json +7 -13
- package/public-api.d.ts +13 -13
- package/environments/environment.d.ts +0 -39
- package/esm2020/environments/environment.mjs +0 -75
- package/esm2020/lib/configuration.mjs +0 -6
- package/esm2020/lib/featureFlag/feature-flag.module.mjs +0 -22
- package/esm2020/lib/featureFlag/feature-flag.service.mjs +0 -95
- package/esm2020/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +0 -64
- package/esm2020/lib/shared/components/page-not-found/page-not-found.component.mjs +0 -91
- package/esm2020/lib/shared/components/server-error/server-error.component.mjs +0 -82
- package/esm2020/lib/shared/components/unauthorized/unauthorized.component.mjs +0 -102
- package/esm2020/lib/ui-kit/dialog/dialog-injector.mjs +0 -15
- package/esm2020/lib/ui-kit/dialog/dialog.module.mjs +0 -21
- package/esm2020/lib/ui-kit/snack-bar/snack-bar.module.mjs +0 -18
- package/esm2020/lib/vc-error-handlers.module.mjs +0 -84
- package/fesm2015/vc-error-handlers.mjs +0 -1679
- package/fesm2015/vc-error-handlers.mjs.map +0 -1
- 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.
|
|
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": "
|
|
13
|
-
"
|
|
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": "./
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
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=
|