vc-error-handlers 0.5.4 → 0.5.6
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/fesm2022/vc-error-handlers.mjs +129 -127
- package/fesm2022/vc-error-handlers.mjs.map +1 -1
- package/package.json +3 -5
- package/esm2022/lib/configuration.mjs +0 -8
- package/esm2022/lib/featureFlag/feature-flag.directive.mjs +0 -27
- package/esm2022/lib/featureFlag/feature-flag.module.mjs +0 -20
- package/esm2022/lib/featureFlag/feature-flag.service.mjs +0 -98
- package/esm2022/lib/shared/components/chunk-unavailable/chunk-unavailable.component.mjs +0 -35
- package/esm2022/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +0 -64
- package/esm2022/lib/shared/components/error-modal/error-modal.component.mjs +0 -64
- package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +0 -120
- package/esm2022/lib/shared/components/server-error/server-error.component.mjs +0 -83
- package/esm2022/lib/shared/components/session-expired/session-expired.component.mjs +0 -35
- package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +0 -132
- package/esm2022/lib/shared/constants/api-config.constants.mjs +0 -949
- package/esm2022/lib/shared/constants/assets.constants.mjs +0 -7
- package/esm2022/lib/shared/constants/error-handling.constants.mjs +0 -75
- package/esm2022/lib/shared/constants/exclude-api-config.constants.mjs +0 -57
- package/esm2022/lib/shared/errorhandler/chunk-error.handler.mjs +0 -18
- package/esm2022/lib/shared/errorhandler/sentry-error.handler.mjs +0 -51
- package/esm2022/lib/shared/interceptors/http.interceptor.mjs +0 -31
- package/esm2022/lib/shared/services/global-error.service.mjs +0 -128
- package/esm2022/lib/shared/services/router.service.mjs +0 -48
- package/esm2022/lib/shared/services/util.service.mjs +0 -48
- package/esm2022/lib/shared/types/global-error.types.mjs +0 -16
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +0 -3
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +0 -15
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +0 -13
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +0 -85
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +0 -21
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +0 -52
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +0 -16
- package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +0 -50
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +0 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +0 -32
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +0 -156
- package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +0 -18
- package/esm2022/lib/vc-error-handlers.component.mjs +0 -116
- package/esm2022/lib/vc-error-handlers.module.mjs +0 -105
- package/esm2022/lib/vc-error-handlers.service.mjs +0 -14
- package/esm2022/public-api.mjs +0 -17
- package/esm2022/vc-error-handlers.mjs +0 -5
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { ErrorModalComponent } from '../error-modal/error-modal.component';
|
|
3
|
-
import { ERROR_CONFIG, MODAL_ERROR_TYPES } from '../../constants/error-handling.constants';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../../ui-kit/dialog/dialog.service";
|
|
6
|
-
export class SessionExpiredComponent {
|
|
7
|
-
constructor(dialogService) {
|
|
8
|
-
this.dialogService = dialogService;
|
|
9
|
-
this.errorConfig = ERROR_CONFIG.SESSION_EXPIRED;
|
|
10
|
-
this.errorTypes = MODAL_ERROR_TYPES;
|
|
11
|
-
}
|
|
12
|
-
ngOnInit() {
|
|
13
|
-
this.openSessionExpiredModal();
|
|
14
|
-
}
|
|
15
|
-
openSessionExpiredModal() {
|
|
16
|
-
this.dialogService.open(ErrorModalComponent, {
|
|
17
|
-
data: {
|
|
18
|
-
errorType: this.errorTypes.SESSION_EXPIRED,
|
|
19
|
-
errorConfig: this.errorConfig,
|
|
20
|
-
},
|
|
21
|
-
position: 'center',
|
|
22
|
-
background: 'whiteBlur',
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionExpiredComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SessionExpiredComponent, selector: "lib-vc-error-session-expired", ngImport: i0, template: ``, isInline: true }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionExpiredComponent, decorators: [{
|
|
29
|
-
type: Component,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: 'lib-vc-error-session-expired',
|
|
32
|
-
template: ``,
|
|
33
|
-
}]
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i1.DialogService }]; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1leHBpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2Vzc2lvbi1leHBpcmVkL3Nlc3Npb24tZXhwaXJlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUkzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQU0zRixNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQ1UsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFKdEMsZ0JBQVcsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxpQkFBaUIsQ0FBQztJQUk1QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWU7Z0JBQzFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzthQUM5QjtZQUNELFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFVBQVUsRUFBRSxXQUFXO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBckJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLG9FQUZ4QixFQUFFOzs0RkFFRCx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFcnJvck1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3ItbW9kYWwvZXJyb3ItbW9kYWwuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBFUlJPUl9DT05GSUcsIE1PREFMX0VSUk9SX1RZUEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Vycm9yLWhhbmRsaW5nLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi12Yy1lcnJvci1zZXNzaW9uLWV4cGlyZWQnLFxuICB0ZW1wbGF0ZTogYGAsXG59KVxuZXhwb3J0IGNsYXNzIFNlc3Npb25FeHBpcmVkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZXJyb3JDb25maWcgPSBFUlJPUl9DT05GSUcuU0VTU0lPTl9FWFBJUkVEO1xuICBlcnJvclR5cGVzID0gTU9EQUxfRVJST1JfVFlQRVM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wZW5TZXNzaW9uRXhwaXJlZE1vZGFsKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TZXNzaW9uRXhwaXJlZE1vZGFsKCkge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEVycm9yTW9kYWxDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZXJyb3JUeXBlOiB0aGlzLmVycm9yVHlwZXMuU0VTU0lPTl9FWFBJUkVELFxuICAgICAgICBlcnJvckNvbmZpZzogdGhpcy5lcnJvckNvbmZpZyxcbiAgICAgIH0sXG4gICAgICBwb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICBiYWNrZ3JvdW5kOiAnd2hpdGVCbHVyJyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { ERROR_CONFIG, VCOMPLY_LOGO_URL, ORGANISATION_NAME, ALT_IMAGE_TEXT, REDIRECTION_URL, } from '../../constants/error-handling.constants';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/router";
|
|
5
|
-
import * as i2 from "../../services/router.service";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
import * as i4 from "../../../ui-kit/tooltip/tooltip.directive";
|
|
8
|
-
export class UnauthorizedComponent {
|
|
9
|
-
constructor(route, routerService) {
|
|
10
|
-
this.route = route;
|
|
11
|
-
this.routerService = routerService;
|
|
12
|
-
this.currentYear = new Date().getFullYear();
|
|
13
|
-
this.errorConfig = ERROR_CONFIG.UNAUTHORIZED;
|
|
14
|
-
this.VcomplyLogo = VCOMPLY_LOGO_URL;
|
|
15
|
-
this.altImageText = ALT_IMAGE_TEXT;
|
|
16
|
-
this.organisationName = ORGANISATION_NAME;
|
|
17
|
-
this.defaultURL = this.routerService.baseUrl + REDIRECTION_URL.DEFAULT;
|
|
18
|
-
}
|
|
19
|
-
redirectToDashboard() {
|
|
20
|
-
const module_name = this.route.snapshot.data['page_path'];
|
|
21
|
-
this.routerService.redirectToHome(module_name);
|
|
22
|
-
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UnauthorizedComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.RouterService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UnauthorizedComponent, selector: "lib-vc-error-unauthorized", ngImport: i0, template: `
|
|
25
|
-
<div class="errorPage">
|
|
26
|
-
<div class="errorPage-top" (click)="redirectToDashboard()">
|
|
27
|
-
<a
|
|
28
|
-
class="product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3"
|
|
29
|
-
[arTooltip]="errorConfig.buttonText"
|
|
30
|
-
placement="right"
|
|
31
|
-
type="white"
|
|
32
|
-
delay="0"
|
|
33
|
-
[tooltipMandatory]="true"
|
|
34
|
-
[animate]="true"
|
|
35
|
-
[href]="defaultURL"
|
|
36
|
-
>
|
|
37
|
-
<img
|
|
38
|
-
[ngSrc]="VcomplyLogo"
|
|
39
|
-
[alt]="altImageText.VCOMPLY_LOGO"
|
|
40
|
-
width="24"
|
|
41
|
-
height="24"
|
|
42
|
-
/>
|
|
43
|
-
</a>
|
|
44
|
-
</div>
|
|
45
|
-
<div class="errorPage-container">
|
|
46
|
-
<div class="errorPage-inner">
|
|
47
|
-
<div class="errorPage-inner-image">
|
|
48
|
-
<img
|
|
49
|
-
[ngSrc]="errorConfig.imageUrl"
|
|
50
|
-
[alt]="altImageText.ERROR_IMAGE"
|
|
51
|
-
width="246"
|
|
52
|
-
height="178"
|
|
53
|
-
/>
|
|
54
|
-
</div>
|
|
55
|
-
<div class="errorPage-inner-right">
|
|
56
|
-
<div class="errorPage-heading">{{ errorConfig.title }}</div>
|
|
57
|
-
<div class="errorPage-text">{{ errorConfig.description }}</div>
|
|
58
|
-
<div class="errorPage-details">
|
|
59
|
-
{{ errorConfig.details }}
|
|
60
|
-
<a [href]="'mailto:' + errorConfig.email">{{
|
|
61
|
-
errorConfig.email
|
|
62
|
-
}}</a>
|
|
63
|
-
{{ errorConfig.support }}.
|
|
64
|
-
</div>
|
|
65
|
-
<button class="errorPage-btn" (click)="redirectToDashboard()">
|
|
66
|
-
{{ errorConfig.buttonText }} <i class="icons"></i>
|
|
67
|
-
</button>
|
|
68
|
-
</div>
|
|
69
|
-
</div>
|
|
70
|
-
<div class="errorPage-copyright">
|
|
71
|
-
© {{ currentYear }}, {{ organisationName }}
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
`, isInline: true, styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"], dependencies: [{ kind: "directive", type: i3.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }] }); }
|
|
76
|
-
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UnauthorizedComponent, decorators: [{
|
|
78
|
-
type: Component,
|
|
79
|
-
args: [{ selector: 'lib-vc-error-unauthorized', template: `
|
|
80
|
-
<div class="errorPage">
|
|
81
|
-
<div class="errorPage-top" (click)="redirectToDashboard()">
|
|
82
|
-
<a
|
|
83
|
-
class="product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3"
|
|
84
|
-
[arTooltip]="errorConfig.buttonText"
|
|
85
|
-
placement="right"
|
|
86
|
-
type="white"
|
|
87
|
-
delay="0"
|
|
88
|
-
[tooltipMandatory]="true"
|
|
89
|
-
[animate]="true"
|
|
90
|
-
[href]="defaultURL"
|
|
91
|
-
>
|
|
92
|
-
<img
|
|
93
|
-
[ngSrc]="VcomplyLogo"
|
|
94
|
-
[alt]="altImageText.VCOMPLY_LOGO"
|
|
95
|
-
width="24"
|
|
96
|
-
height="24"
|
|
97
|
-
/>
|
|
98
|
-
</a>
|
|
99
|
-
</div>
|
|
100
|
-
<div class="errorPage-container">
|
|
101
|
-
<div class="errorPage-inner">
|
|
102
|
-
<div class="errorPage-inner-image">
|
|
103
|
-
<img
|
|
104
|
-
[ngSrc]="errorConfig.imageUrl"
|
|
105
|
-
[alt]="altImageText.ERROR_IMAGE"
|
|
106
|
-
width="246"
|
|
107
|
-
height="178"
|
|
108
|
-
/>
|
|
109
|
-
</div>
|
|
110
|
-
<div class="errorPage-inner-right">
|
|
111
|
-
<div class="errorPage-heading">{{ errorConfig.title }}</div>
|
|
112
|
-
<div class="errorPage-text">{{ errorConfig.description }}</div>
|
|
113
|
-
<div class="errorPage-details">
|
|
114
|
-
{{ errorConfig.details }}
|
|
115
|
-
<a [href]="'mailto:' + errorConfig.email">{{
|
|
116
|
-
errorConfig.email
|
|
117
|
-
}}</a>
|
|
118
|
-
{{ errorConfig.support }}.
|
|
119
|
-
</div>
|
|
120
|
-
<button class="errorPage-btn" (click)="redirectToDashboard()">
|
|
121
|
-
{{ errorConfig.buttonText }} <i class="icons"></i>
|
|
122
|
-
</button>
|
|
123
|
-
</div>
|
|
124
|
-
</div>
|
|
125
|
-
<div class="errorPage-copyright">
|
|
126
|
-
© {{ currentYear }}, {{ organisationName }}
|
|
127
|
-
</div>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
`, styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"] }]
|
|
131
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.RouterService }]; } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRob3JpemVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvdW5hdXRob3JpemVkL3VuYXV0aG9yaXplZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7O0FBNERsRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ1UsS0FBcUIsRUFDckIsYUFBNEI7UUFENUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFHdEMsZ0JBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUN4QyxnQkFBVyxHQUFHLGdCQUFnQixDQUFDO1FBQy9CLGlCQUFZLEdBQUcsY0FBYyxDQUFDO1FBQzlCLHFCQUFnQixHQUFHLGlCQUFpQixDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO0lBUC9ELENBQUM7SUFTRyxtQkFBbUI7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7K0dBaEJVLHFCQUFxQjttR0FBckIscUJBQXFCLGlFQXREdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVDs7NEZBR1UscUJBQXFCO2tCQXhEakMsU0FBUzsrQkFDRSwyQkFBMkIsWUFDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBFUlJPUl9DT05GSUcsXG4gIFZDT01QTFlfTE9HT19VUkwsXG4gIE9SR0FOSVNBVElPTl9OQU1FLFxuICBBTFRfSU1BR0VfVEVYVCxcbiAgUkVESVJFQ1RJT05fVVJMLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvZXJyb3ItaGFuZGxpbmcuY29uc3RhbnRzJztcblxuaW1wb3J0IHsgUm91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JvdXRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXZjLWVycm9yLXVuYXV0aG9yaXplZCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS10b3BcIiAoY2xpY2spPVwicmVkaXJlY3RUb0Rhc2hib2FyZCgpXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJwcm9kdWN0LWxvZ28gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1tci0zXCJcbiAgICAgICAgICBbYXJUb29sdGlwXT1cImVycm9yQ29uZmlnLmJ1dHRvblRleHRcIlxuICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgW2FuaW1hdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgW2hyZWZdPVwiZGVmYXVsdFVSTFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbbmdTcmNdPVwiVmNvbXBseUxvZ29cIlxuICAgICAgICAgICAgW2FsdF09XCJhbHRJbWFnZVRleHQuVkNPTVBMWV9MT0dPXCJcbiAgICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS1pbm5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtaW5uZXItaW1hZ2VcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgW25nU3JjXT1cImVycm9yQ29uZmlnLmltYWdlVXJsXCJcbiAgICAgICAgICAgICAgW2FsdF09XCJhbHRJbWFnZVRleHQuRVJST1JfSU1BR0VcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjI0NlwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE3OFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtaW5uZXItcmlnaHRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtaGVhZGluZ1wiPnt7IGVycm9yQ29uZmlnLnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLXRleHRcIj57eyBlcnJvckNvbmZpZy5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgIHt7IGVycm9yQ29uZmlnLmRldGFpbHMgfX1cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiJ21haWx0bzonICsgZXJyb3JDb25maWcuZW1haWxcIj57e1xuICAgICAgICAgICAgICAgIGVycm9yQ29uZmlnLmVtYWlsXG4gICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICAgICAgICB7eyBlcnJvckNvbmZpZy5zdXBwb3J0IH19LlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZXJyb3JQYWdlLWJ0blwiIChjbGljayk9XCJyZWRpcmVjdFRvRGFzaGJvYXJkKClcIj5cbiAgICAgICAgICAgICAge3sgZXJyb3JDb25maWcuYnV0dG9uVGV4dCB9fSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk2YTs8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtY29weXJpZ2h0XCI+XG4gICAgICAgICAgJmNvcHk7Jm5ic3A7e3sgY3VycmVudFllYXIgfX0sIHt7IG9yZ2FuaXNhdGlvbk5hbWUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4uL2NvbW1vbi1lcnJvci1wYWdlLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVuYXV0aG9yaXplZENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogUm91dGVyU2VydmljZVxuICApIHt9XG5cbiAgY3VycmVudFllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gIGVycm9yQ29uZmlnID0gRVJST1JfQ09ORklHLlVOQVVUSE9SSVpFRDtcbiAgVmNvbXBseUxvZ28gPSBWQ09NUExZX0xPR09fVVJMO1xuICBhbHRJbWFnZVRleHQgPSBBTFRfSU1BR0VfVEVYVDtcbiAgb3JnYW5pc2F0aW9uTmFtZSA9IE9SR0FOSVNBVElPTl9OQU1FO1xuICBkZWZhdWx0VVJMID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmJhc2VVcmwgKyBSRURJUkVDVElPTl9VUkwuREVGQVVMVDtcblxuICBwdWJsaWMgcmVkaXJlY3RUb0Rhc2hib2FyZCgpIHtcbiAgICBjb25zdCBtb2R1bGVfbmFtZSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsncGFnZV9wYXRoJ107XG4gICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLnJlZGlyZWN0VG9Ib21lKG1vZHVsZV9uYW1lKTtcbiAgfVxufVxuIl19
|