@trudb/tru-common-lib 0.1.551 → 0.1.552
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/classes/tru-server-error.mjs +18 -0
- package/esm2022/lib/services/tru-error-manager.mjs +34 -38
- package/fesm2022/trudb-tru-common-lib.mjs +50 -37
- package/fesm2022/trudb-tru-common-lib.mjs.map +1 -1
- package/lib/classes/tru-server-error.d.ts +10 -0
- package/lib/components/login/classes/tru-auth-strategy-provider.d.ts +1 -1
- package/lib/services/tru-error-manager.d.ts +3 -2
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class TruServerError {
|
|
2
|
+
id;
|
|
3
|
+
type;
|
|
4
|
+
code;
|
|
5
|
+
message;
|
|
6
|
+
stackTrace;
|
|
7
|
+
status;
|
|
8
|
+
constructor(error) {
|
|
9
|
+
let parsedError = JSON.parse(error.error);
|
|
10
|
+
this.id = parsedError.$id;
|
|
11
|
+
this.type = parsedError.$type;
|
|
12
|
+
this.code = parsedError.Code;
|
|
13
|
+
this.message = parsedError.Message;
|
|
14
|
+
this.stackTrace = parsedError.StackTrace;
|
|
15
|
+
this.status = error.status;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXNlcnZlci1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY2xhc3Nlcy90cnUtc2VydmVyLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEVBQUUsQ0FBUztJQUNYLElBQUksQ0FBUztJQUNiLElBQUksQ0FBUztJQUNiLE9BQU8sQ0FBUztJQUNoQixVQUFVLENBQVM7SUFDbkIsTUFBTSxDQUFTO0lBRWYsWUFBWSxLQUF3QjtRQUNsQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgVHJ1UHJvcGVydHlDb25maWdCYXNlIH0gZnJvbSAnLi4vYmFzZS1jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctYmFzZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgVHJ1U2VydmVyRXJyb3Ige1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGNvZGU6IG51bWJlcjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgc3RhY2tUcmFjZTogc3RyaW5nO1xyXG4gIHN0YXR1czogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIGxldCBwYXJzZWRFcnJvciA9IEpTT04ucGFyc2UoZXJyb3IuZXJyb3IpO1xyXG4gICAgdGhpcy5pZCA9IHBhcnNlZEVycm9yLiRpZDtcclxuICAgIHRoaXMudHlwZSA9IHBhcnNlZEVycm9yLiR0eXBlO1xyXG4gICAgdGhpcy5jb2RlID0gcGFyc2VkRXJyb3IuQ29kZTtcclxuICAgIHRoaXMubWVzc2FnZSA9IHBhcnNlZEVycm9yLk1lc3NhZ2U7XHJcbiAgICB0aGlzLnN0YWNrVHJhY2UgPSBwYXJzZWRFcnJvci5TdGFja1RyYWNlO1xyXG4gICAgdGhpcy5zdGF0dXMgPSBlcnJvci5zdGF0dXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Injectable } from "@angular/core";
|
|
2
2
|
import { TruErrorDialog } from "../components/error-dialog/tru-error-dialog";
|
|
3
3
|
import { TruErrorDialogConfig } from "../components/error-dialog/classes/tru-error-dialog-config";
|
|
4
|
+
import { TruServerError } from "../classes/tru-server-error";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/common/http";
|
|
6
7
|
import * as i2 from "@angular/material/dialog";
|
|
@@ -24,24 +25,35 @@ export class TruErrorManager {
|
|
|
24
25
|
this.baseUrl = appEnvironment.appUri;
|
|
25
26
|
this.appName = appEnvironment.appName;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
logErrorEvent = (message, context, area) => {
|
|
29
|
+
area = area || 'unknown';
|
|
30
|
+
console.log('[' + area + '|' + context + '] ' + message);
|
|
31
|
+
var logEvent = {
|
|
32
|
+
eventType: 'Error',
|
|
33
|
+
eventDate: new Date(),
|
|
34
|
+
applicationName: this.appName,
|
|
35
|
+
applicationUrl: this.baseUrl,
|
|
36
|
+
applicationArea: area,
|
|
37
|
+
context: context,
|
|
38
|
+
message: message
|
|
39
|
+
};
|
|
40
|
+
this.http
|
|
41
|
+
.post(`${this.baseUrl}/api/log/logevent`, logEvent)
|
|
42
|
+
.subscribe(() => {
|
|
43
|
+
}, (ex) => {
|
|
44
|
+
console.log('Unable to log error to server. ' + ex);
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
handleClientSideError = (error) => {
|
|
48
|
+
};
|
|
49
|
+
handleServerSideError = (error) => {
|
|
50
|
+
let serverError = new TruServerError(error);
|
|
51
|
+
if (serverError.type === 'tru-db-custom-exception') {
|
|
40
52
|
//var service = $injector.get(error.httpResponse.data.serviceName);
|
|
41
53
|
//var exceptionData = error.httpResponse.data.data;
|
|
42
54
|
//service(exceptionData);
|
|
43
55
|
}
|
|
44
|
-
else if (
|
|
56
|
+
else if (serverError.type.indexOf('TruDbRequireValidChoiceException') !== -1) {
|
|
45
57
|
let dialogConfig = new TruErrorDialogConfig('Require Valid Choice Exception', error.message);
|
|
46
58
|
this.dialog.open(TruErrorDialog, {
|
|
47
59
|
disableClose: true,
|
|
@@ -50,7 +62,7 @@ export class TruErrorManager {
|
|
|
50
62
|
data: dialogConfig
|
|
51
63
|
});
|
|
52
64
|
}
|
|
53
|
-
else if (
|
|
65
|
+
else if (serverError.type.indexOf('DuplicateKeyError') !== -1) {
|
|
54
66
|
let dialogConfig = new TruErrorDialogConfig('Duplicate Key Error', error.message
|
|
55
67
|
.replace('Cannot insert duplicate key row in object', 'Cannot insert duplicate value in table')
|
|
56
68
|
.replace('dbo.', '')
|
|
@@ -63,7 +75,7 @@ export class TruErrorManager {
|
|
|
63
75
|
data: dialogConfig
|
|
64
76
|
});
|
|
65
77
|
}
|
|
66
|
-
else if (
|
|
78
|
+
else if (serverError.type.indexOf('OptimisticLockViolation') !== -1) {
|
|
67
79
|
let dialogConfig = new TruErrorDialogConfig('Concurrent saves not allowed', 'Please review any changes and save again.');
|
|
68
80
|
this.dialog.open(TruErrorDialog, {
|
|
69
81
|
disableClose: true,
|
|
@@ -82,28 +94,12 @@ export class TruErrorManager {
|
|
|
82
94
|
//this.uiNotification.showErrorDialog(message);
|
|
83
95
|
//this.logErrorEvent(message);
|
|
84
96
|
}
|
|
85
|
-
//if (window.appInsights) window.appInsights.trackException(error, null, {
|
|
86
|
-
// 'User': dataService.activeUser.username
|
|
87
|
-
//});
|
|
88
97
|
};
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
eventDate: new Date(),
|
|
95
|
-
applicationName: this.appName,
|
|
96
|
-
applicationUrl: this.baseUrl,
|
|
97
|
-
applicationArea: area,
|
|
98
|
-
context: context,
|
|
99
|
-
message: message
|
|
100
|
-
};
|
|
101
|
-
this.http
|
|
102
|
-
.post(`${this.baseUrl}/api/log/logevent`, logEvent)
|
|
103
|
-
.subscribe(() => {
|
|
104
|
-
}, (ex) => {
|
|
105
|
-
console.log('Unable to log error to server. ' + ex);
|
|
106
|
-
});
|
|
98
|
+
handleError = (error) => {
|
|
99
|
+
if (error.type)
|
|
100
|
+
this.handleClientSideError(error);
|
|
101
|
+
else
|
|
102
|
+
this.handleServerSideError(error);
|
|
107
103
|
};
|
|
108
104
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruErrorManager, deps: [{ token: i1.HttpClient }, { token: i2.MatDialog }, { token: i3.TruTextManager }, { token: i4.TruUiNotification }, { token: i5.TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
109
105
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruErrorManager, providedIn: 'root' });
|
|
@@ -114,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
114
110
|
providedIn: 'root',
|
|
115
111
|
}]
|
|
116
112
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.MatDialog }, { type: i3.TruTextManager }, { type: i4.TruUiNotification }, { type: i5.TruAppEnvironment }] });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWVycm9yLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RydS1lcnJvci1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7Ozs7O0FBUWxHLE1BQU0sT0FBTyxlQUFlO0lBS2hCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFSRixPQUFPLENBQVM7SUFDaEIsT0FBTyxDQUFTO0lBRXhCLFlBQ1UsSUFBZ0IsRUFDaEIsTUFBaUIsRUFDakIsV0FBMkIsRUFDM0IsY0FBaUMsRUFDakMsY0FBaUM7UUFKakMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQXdCO1FBQ2hELElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7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SUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksUUFBUSxHQUFHO1lBQ2IsU0FBUyxFQUFFLE9BQU87WUFDbEIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTztZQUM3QixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDNUIsZUFBZSxFQUFFLElBQUk7WUFDckIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJO2FBQ04sSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sbUJBQW1CLEVBQUUsUUFBUSxDQUFDO2FBQ3ZELFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFFaEIsQ0FBQyxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUU7WUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFBO3VHQXpHVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcnVVaU5vdGlmaWNhdGlvbiB9IGZyb20gXCIuL3RydS11aS1ub3RpZmljYXRpb25cIjtcclxuaW1wb3J0IHsgVHJ1VGV4dE1hbmFnZXIgfSBmcm9tIFwiLi90cnUtdGV4dC1tYW5hZ2VyXCI7XHJcbmltcG9ydCB7IFRydUVycm9yRGlhbG9nIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZXJyb3ItZGlhbG9nL3RydS1lcnJvci1kaWFsb2dcIjtcclxuaW1wb3J0IHsgVHJ1RXJyb3JEaWFsb2dDb25maWcgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9lcnJvci1kaWFsb2cvY2xhc3Nlcy90cnUtZXJyb3ItZGlhbG9nLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IFRydUFwcEVudmlyb25tZW50IH0gZnJvbSBcIi4vdHJ1LWFwcC1lbnZpcm9ubWVudFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUVycm9yTWFuYWdlciB7XHJcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBhcHBOYW1lOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdGV4dE1hbmFnZXI6IFRydVRleHRNYW5hZ2VyLFxyXG4gICAgcHJpdmF0ZSB1aU5vdGlmaWNhdGlvbjogVHJ1VWlOb3RpZmljYXRpb24sXHJcbiAgICBwcml2YXRlIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCkge1xyXG4gICAgdGhpcy5iYXNlVXJsID0gYXBwRW52aXJvbm1lbnQuYXBwVXJpO1xyXG4gICAgdGhpcy5hcHBOYW1lID0gYXBwRW52aXJvbm1lbnQuYXBwTmFtZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VFcnJvck1lc3NhZ2UoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogc3RyaW5nIHtcclxuICAgIGlmIChlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKSB7XHJcbiAgICAgIHJldHVybiBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgfSBlbHNlIGlmIChlcnJvci5lcnJvciAmJiB0eXBlb2YgZXJyb3IuZXJyb3IgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiBlcnJvci5lcnJvcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBgU2VydmVyIHJldHVybmVkIGNvZGUgJHtlcnJvci5zdGF0dXN9LCBib2R5IHdhczogJHtlcnJvci5lcnJvcn1gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXJyb3IgPSAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICBpZiAoZXJyb3IudHlwZS50b1N0cmluZygpID09PSAndHJ1LWRiLWN1c3RvbS1leGNlcHRpb24nKSB7XHJcbiAgICAgIC8vdmFyIHNlcnZpY2UgPSAkaW5qZWN0b3IuZ2V0KGVycm9yLmh0dHBSZXNwb25zZS5kYXRhLnNlcnZpY2VOYW1lKTtcclxuICAgICAgLy92YXIgZXhjZXB0aW9uRGF0YSA9IGVycm9yLmh0dHBSZXNwb25zZS5kYXRhLmRhdGE7XHJcbiAgICAgIC8vc2VydmljZShleGNlcHRpb25EYXRhKTtcclxuICAgIH0gZWxzZSBpZiAoZXJyb3IudHlwZS50b1N0cmluZygpLmluZGV4T2YoJ1RydURiUmVxdWlyZVZhbGlkQ2hvaWNlRXhjZXB0aW9uJykgIT09IC0xKSB7XHJcblxyXG4gICAgICBsZXQgZGlhbG9nQ29uZmlnID0gbmV3IFRydUVycm9yRGlhbG9nQ29uZmlnKFxyXG4gICAgICAgICdSZXF1aXJlIFZhbGlkIENob2ljZSBFeGNlcHRpb24nLFxyXG4gICAgICAgIGVycm9yLm1lc3NhZ2UpO1xyXG5cclxuICAgICAgdGhpcy5kaWFsb2cub3BlbihUcnVFcnJvckRpYWxvZywge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICBtaW5XaWR0aDogXCI0MDBweFwiLFxyXG4gICAgICAgIG1heFdpZHRoOiBcIjYwMHB4XCIsXHJcbiAgICAgICAgZGF0YTogZGlhbG9nQ29uZmlnXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChlcnJvci50eXBlLnRvU3RyaW5nKCkuaW5kZXhPZignRHVwbGljYXRlS2V5RXJyb3InKSAhPT0gLTEpIHtcclxuXHJcbiAgICAgIGxldCBkaWFsb2dDb25maWcgPSBuZXcgVHJ1RXJyb3JEaWFsb2dDb25maWcoXHJcbiAgICAgICAgJ0R1cGxpY2F0ZSBLZXkgRXJyb3InLFxyXG4gICAgICAgIGVycm9yLm1lc3NhZ2VcclxuICAgICAgICAgIC5yZXBsYWNlKCdDYW5ub3QgaW5zZXJ0IGR1cGxpY2F0ZSBrZXkgcm93IGluIG9iamVjdCcsICdDYW5ub3QgaW5zZXJ0IGR1cGxpY2F0ZSB2YWx1ZSBpbiB0YWJsZScpXHJcbiAgICAgICAgICAucmVwbGFjZSgnZGJvLicsICcnKVxyXG4gICAgICAgICAgLnJlcGxhY2UoJ1VJWF8nLCAnJylcclxuICAgICAgICAgIC5yZXBsYWNlKCdUaGUgc3RhdGVtZW50IGhhcyBiZWVuIHRlcm1pbmF0ZWQuJywgJycpKTtcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nLm9wZW4oVHJ1RXJyb3JEaWFsb2csIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgbWluV2lkdGg6IFwiNDAwcHhcIixcclxuICAgICAgICBtYXhXaWR0aDogXCI2MDBweFwiLFxyXG4gICAgICAgIGRhdGE6IGRpYWxvZ0NvbmZpZ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGVycm9yLnR5cGUudG9TdHJpbmcoKS5pbmRleE9mKCdPcHRpbWlzdGljTG9ja1Zpb2xhdGlvbicpICE9PSAtMSkge1xyXG5cclxuICAgICAgbGV0IGRpYWxvZ0NvbmZpZyA9IG5ldyBUcnVFcnJvckRpYWxvZ0NvbmZpZyhcclxuICAgICAgICAnQ29uY3VycmVudCBzYXZlcyBub3QgYWxsb3dlZCcsXHJcbiAgICAgICAgJ1BsZWFzZSByZXZpZXcgYW55IGNoYW5nZXMgYW5kIHNhdmUgYWdhaW4uJyk7XHJcblxyXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFRydUVycm9yRGlhbG9nLCB7XHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIG1pbldpZHRoOiBcIjQwMHB4XCIsXHJcbiAgICAgICAgbWF4V2lkdGg6IFwiNjAwcHhcIixcclxuICAgICAgICBkYXRhOiBkaWFsb2dDb25maWdcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGVycm9yLnR5cGUudG9TdHJpbmcoKS5sYXN0SW5kZXhPZignVHJ1REIuRWZNc3NxbC5SdW50aW1lLkRhdGFFcnJvcicsIDApID09PSAwKSB7XHJcblxyXG4gICAgICAvL3RoaXMudWlOb3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgIC8vICB0aGlzLnRleHRNYW5hZ2VyLmZtdERhdGFFcnJvcihlcnJvci5odHRwUmVzcG9uc2UuZGF0YS5EZXRhaWwuJHR5cGUpLFxyXG4gICAgICAvLyAgW3RoaXMudGV4dE1hbmFnZXIuZm10RXhjZXB0aW9uVG9TaG93KGVycm9yLmh0dHBSZXNwb25zZS5kYXRhLkV4Y2VwdGlvbildKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy92YXIgbWVzc2FnZSA9IHRoaXMudGV4dE1hbmFnZXIuZm10RXJyb3JUb1Nob3coZXJyb3IpO1xyXG4gICAgICAvL3RoaXMudWlOb3RpZmljYXRpb24uc2hvd0Vycm9yRGlhbG9nKG1lc3NhZ2UpO1xyXG4gICAgICAvL3RoaXMubG9nRXJyb3JFdmVudChtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAvL2lmICh3aW5kb3cuYXBwSW5zaWdodHMpIHdpbmRvdy5hcHBJbnNpZ2h0cy50cmFja0V4Y2VwdGlvbihlcnJvciwgbnVsbCwge1xyXG4gICAgLy8gICdVc2VyJzogZGF0YVNlcnZpY2UuYWN0aXZlVXNlci51c2VybmFtZVxyXG4gICAgLy99KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9nRXJyb3JFdmVudCA9IChtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZywgYXJlYTogc3RyaW5nKSA9PiB7XHJcbiAgICBhcmVhID0gYXJlYSB8fCAndW5rbm93bic7XHJcbiAgICBjb25zb2xlLmxvZygnWycgKyBhcmVhICsgJ3wnICsgY29udGV4dCArICddICcgKyBtZXNzYWdlKTtcclxuICAgIHZhciBsb2dFdmVudCA9IHtcclxuICAgICAgZXZlbnRUeXBlOiAnRXJyb3InLFxyXG4gICAgICBldmVudERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgIGFwcGxpY2F0aW9uTmFtZTogdGhpcy5hcHBOYW1lLFxyXG4gICAgICBhcHBsaWNhdGlvblVybDogdGhpcy5iYXNlVXJsLFxyXG4gICAgICBhcHBsaWNhdGlvbkFyZWE6IGFyZWEsXHJcbiAgICAgIGNvbnRleHQ6IGNvbnRleHQsXHJcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VcclxuICAgIH07XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmJhc2VVcmx9L2FwaS9sb2cvbG9nZXZlbnRgLCBsb2dFdmVudClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH0sIChleDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1VuYWJsZSB0byBsb2cgZXJyb3IgdG8gc2VydmVyLiAnICsgZXgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWVycm9yLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RydS1lcnJvci1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBSWxHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7OztBQUs3RCxNQUFNLE9BQU8sZUFBZTtJQUtoQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUkYsT0FBTyxDQUFTO0lBQ2hCLE9BQU8sQ0FBUztJQUV4QixZQUNVLElBQWdCLEVBQ2hCLE1BQWlCLEVBQ2pCLFdBQTJCLEVBQzNCLGNBQWlDLEVBQ2pDLGNBQWlDO1FBSmpDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxhQUFhLEdBQUcsQ0FBQyxPQUFlLEVBQUUsT0FBZSxFQUFFLElBQVksRUFBRSxFQUFFO1FBQ3pFLElBQUksR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLFFBQVEsR0FBRztZQUNiLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQzVCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSTthQUNOLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLG1CQUFtQixFQUFFLFFBQVEsQ0FBQzthQUN2RCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBRWhCLENBQUMsRUFBRSxDQUFDLEVBQU8sRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQTtJQUVPLHFCQUFxQixHQUFHLENBQUMsS0FBd0IsRUFBRSxFQUFFO0lBRTdELENBQUMsQ0FBQTtJQUVPLHFCQUFxQixHQUFHLENBQUMsS0FBd0IsRUFBRSxFQUFFO1FBQzNELElBQUksV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyx5QkFBeUIsRUFBRSxDQUFDO1lBQ25ELG1FQUFtRTtZQUNuRSxtREFBbUQ7WUFDbkQseUJBQXlCO1FBQzNCLENBQUM7YUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUUvRSxJQUFJLFlBQVksR0FBRyxJQUFJLG9CQUFvQixDQUN6QyxnQ0FBZ0MsRUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWpCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDL0IsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsT0FBTztnQkFDakIsSUFBSSxFQUFFLFlBQVk7YUFDbkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRWhFLElBQUksWUFBWSxHQUFHLElBQUksb0JBQW9CLENBQ3pDLHFCQUFxQixFQUNyQixLQUFLLENBQUMsT0FBTztpQkFDVixPQUFPLENBQUMsMkNBQTJDLEVBQUUsd0NBQXdDLENBQUM7aUJBQzlGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2lCQUNuQixPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztpQkFDbkIsT0FBTyxDQUFDLG9DQUFvQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUMvQixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixJQUFJLEVBQUUsWUFBWTthQUNuQixDQUFDLENBQUM7UUFFTCxDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFdEUsSUFBSSxZQUFZLEdBQUcsSUFBSSxvQkFBb0IsQ0FDekMsOEJBQThCLEVBQzlCLDJDQUEyQyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUMvQixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixJQUFJLEVBQUUsWUFBWTthQUNuQixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUV6Riw0QkFBNEI7WUFDNUIsd0VBQXdFO1lBQ3hFLDZFQUE2RTtRQUMvRSxDQUFDO2FBQU0sQ0FBQztZQUNOLHVEQUF1RDtZQUN2RCwrQ0FBK0M7WUFDL0MsOEJBQThCO1FBQ2hDLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxXQUFXLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUU7UUFDekMsSUFBSSxLQUFLLENBQUMsSUFBSTtZQUNaLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7WUFFbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQTt1R0F2R1UsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVHJ1VWlOb3RpZmljYXRpb24gfSBmcm9tIFwiLi90cnUtdWktbm90aWZpY2F0aW9uXCI7XHJcbmltcG9ydCB7IFRydVRleHRNYW5hZ2VyIH0gZnJvbSBcIi4vdHJ1LXRleHQtbWFuYWdlclwiO1xyXG5pbXBvcnQgeyBUcnVFcnJvckRpYWxvZyB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Vycm9yLWRpYWxvZy90cnUtZXJyb3ItZGlhbG9nXCI7XHJcbmltcG9ydCB7IFRydUVycm9yRGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZXJyb3ItZGlhbG9nL2NsYXNzZXMvdHJ1LWVycm9yLWRpYWxvZy1jb25maWdcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gXCIuL3RydS1hcHAtZW52aXJvbm1lbnRcIjtcclxuaW1wb3J0IHsgVHJ1U2VydmVyRXJyb3IgfSBmcm9tIFwiLi4vY2xhc3Nlcy90cnUtc2VydmVyLWVycm9yXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1RXJyb3JNYW5hZ2VyIHtcclxuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcclxuICBwcml2YXRlIGFwcE5hbWU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSB0ZXh0TWFuYWdlcjogVHJ1VGV4dE1hbmFnZXIsXHJcbiAgICBwcml2YXRlIHVpTm90aWZpY2F0aW9uOiBUcnVVaU5vdGlmaWNhdGlvbixcclxuICAgIHByaXZhdGUgYXBwRW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50KSB7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSBhcHBFbnZpcm9ubWVudC5hcHBVcmk7XHJcbiAgICB0aGlzLmFwcE5hbWUgPSBhcHBFbnZpcm9ubWVudC5hcHBOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2dFcnJvckV2ZW50ID0gKG1lc3NhZ2U6IHN0cmluZywgY29udGV4dDogc3RyaW5nLCBhcmVhOiBzdHJpbmcpID0+IHtcclxuICAgIGFyZWEgPSBhcmVhIHx8ICd1bmtub3duJztcclxuICAgIGNvbnNvbGUubG9nKCdbJyArIGFyZWEgKyAnfCcgKyBjb250ZXh0ICsgJ10gJyArIG1lc3NhZ2UpO1xyXG4gICAgdmFyIGxvZ0V2ZW50ID0ge1xyXG4gICAgICBldmVudFR5cGU6ICdFcnJvcicsXHJcbiAgICAgIGV2ZW50RGF0ZTogbmV3IERhdGUoKSxcclxuICAgICAgYXBwbGljYXRpb25OYW1lOiB0aGlzLmFwcE5hbWUsXHJcbiAgICAgIGFwcGxpY2F0aW9uVXJsOiB0aGlzLmJhc2VVcmwsXHJcbiAgICAgIGFwcGxpY2F0aW9uQXJlYTogYXJlYSxcclxuICAgICAgY29udGV4dDogY29udGV4dCxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZVxyXG4gICAgfTtcclxuICAgIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMuYmFzZVVybH0vYXBpL2xvZy9sb2dldmVudGAsIGxvZ0V2ZW50KVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuXHJcbiAgICAgIH0sIChleDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1VuYWJsZSB0byBsb2cgZXJyb3IgdG8gc2VydmVyLiAnICsgZXgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ2xpZW50U2lkZUVycm9yID0gKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU2VydmVyU2lkZUVycm9yID0gKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgbGV0IHNlcnZlckVycm9yID0gbmV3IFRydVNlcnZlckVycm9yKGVycm9yKTtcclxuICAgIGlmIChzZXJ2ZXJFcnJvci50eXBlID09PSAndHJ1LWRiLWN1c3RvbS1leGNlcHRpb24nKSB7XHJcbiAgICAgIC8vdmFyIHNlcnZpY2UgPSAkaW5qZWN0b3IuZ2V0KGVycm9yLmh0dHBSZXNwb25zZS5kYXRhLnNlcnZpY2VOYW1lKTtcclxuICAgICAgLy92YXIgZXhjZXB0aW9uRGF0YSA9IGVycm9yLmh0dHBSZXNwb25zZS5kYXRhLmRhdGE7XHJcbiAgICAgIC8vc2VydmljZShleGNlcHRpb25EYXRhKTtcclxuICAgIH0gZWxzZSBpZiAoc2VydmVyRXJyb3IudHlwZS5pbmRleE9mKCdUcnVEYlJlcXVpcmVWYWxpZENob2ljZUV4Y2VwdGlvbicpICE9PSAtMSkge1xyXG5cclxuICAgICAgbGV0IGRpYWxvZ0NvbmZpZyA9IG5ldyBUcnVFcnJvckRpYWxvZ0NvbmZpZyhcclxuICAgICAgICAnUmVxdWlyZSBWYWxpZCBDaG9pY2UgRXhjZXB0aW9uJyxcclxuICAgICAgICBlcnJvci5tZXNzYWdlKTtcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nLm9wZW4oVHJ1RXJyb3JEaWFsb2csIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgbWluV2lkdGg6IFwiNDAwcHhcIixcclxuICAgICAgICBtYXhXaWR0aDogXCI2MDBweFwiLFxyXG4gICAgICAgIGRhdGE6IGRpYWxvZ0NvbmZpZ1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2VydmVyRXJyb3IudHlwZS5pbmRleE9mKCdEdXBsaWNhdGVLZXlFcnJvcicpICE9PSAtMSkge1xyXG5cclxuICAgICAgbGV0IGRpYWxvZ0NvbmZpZyA9IG5ldyBUcnVFcnJvckRpYWxvZ0NvbmZpZyhcclxuICAgICAgICAnRHVwbGljYXRlIEtleSBFcnJvcicsXHJcbiAgICAgICAgZXJyb3IubWVzc2FnZVxyXG4gICAgICAgICAgLnJlcGxhY2UoJ0Nhbm5vdCBpbnNlcnQgZHVwbGljYXRlIGtleSByb3cgaW4gb2JqZWN0JywgJ0Nhbm5vdCBpbnNlcnQgZHVwbGljYXRlIHZhbHVlIGluIHRhYmxlJylcclxuICAgICAgICAgIC5yZXBsYWNlKCdkYm8uJywgJycpXHJcbiAgICAgICAgICAucmVwbGFjZSgnVUlYXycsICcnKVxyXG4gICAgICAgICAgLnJlcGxhY2UoJ1RoZSBzdGF0ZW1lbnQgaGFzIGJlZW4gdGVybWluYXRlZC4nLCAnJykpO1xyXG5cclxuICAgICAgdGhpcy5kaWFsb2cub3BlbihUcnVFcnJvckRpYWxvZywge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICBtaW5XaWR0aDogXCI0MDBweFwiLFxyXG4gICAgICAgIG1heFdpZHRoOiBcIjYwMHB4XCIsXHJcbiAgICAgICAgZGF0YTogZGlhbG9nQ29uZmlnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoc2VydmVyRXJyb3IudHlwZS5pbmRleE9mKCdPcHRpbWlzdGljTG9ja1Zpb2xhdGlvbicpICE9PSAtMSkge1xyXG5cclxuICAgICAgbGV0IGRpYWxvZ0NvbmZpZyA9IG5ldyBUcnVFcnJvckRpYWxvZ0NvbmZpZyhcclxuICAgICAgICAnQ29uY3VycmVudCBzYXZlcyBub3QgYWxsb3dlZCcsXHJcbiAgICAgICAgJ1BsZWFzZSByZXZpZXcgYW55IGNoYW5nZXMgYW5kIHNhdmUgYWdhaW4uJyk7XHJcblxyXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFRydUVycm9yRGlhbG9nLCB7XHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIG1pbldpZHRoOiBcIjQwMHB4XCIsXHJcbiAgICAgICAgbWF4V2lkdGg6IFwiNjAwcHhcIixcclxuICAgICAgICBkYXRhOiBkaWFsb2dDb25maWdcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGVycm9yLnR5cGUudG9TdHJpbmcoKS5sYXN0SW5kZXhPZignVHJ1REIuRWZNc3NxbC5SdW50aW1lLkRhdGFFcnJvcicsIDApID09PSAwKSB7XHJcblxyXG4gICAgICAvL3RoaXMudWlOb3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgIC8vICB0aGlzLnRleHRNYW5hZ2VyLmZtdERhdGFFcnJvcihlcnJvci5odHRwUmVzcG9uc2UuZGF0YS5EZXRhaWwuJHR5cGUpLFxyXG4gICAgICAvLyAgW3RoaXMudGV4dE1hbmFnZXIuZm10RXhjZXB0aW9uVG9TaG93KGVycm9yLmh0dHBSZXNwb25zZS5kYXRhLkV4Y2VwdGlvbildKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy92YXIgbWVzc2FnZSA9IHRoaXMudGV4dE1hbmFnZXIuZm10RXJyb3JUb1Nob3coZXJyb3IpO1xyXG4gICAgICAvL3RoaXMudWlOb3RpZmljYXRpb24uc2hvd0Vycm9yRGlhbG9nKG1lc3NhZ2UpO1xyXG4gICAgICAvL3RoaXMubG9nRXJyb3JFdmVudChtZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUVycm9yID0gKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgaWYgKGVycm9yLnR5cGUpXHJcbiAgICAgIHRoaXMuaGFuZGxlQ2xpZW50U2lkZUVycm9yKGVycm9yKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5oYW5kbGVTZXJ2ZXJTaWRlRXJyb3IoZXJyb3IpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -9211,6 +9211,24 @@ class TruErrorDialogConfig {
|
|
|
9211
9211
|
}
|
|
9212
9212
|
}
|
|
9213
9213
|
|
|
9214
|
+
class TruServerError {
|
|
9215
|
+
id;
|
|
9216
|
+
type;
|
|
9217
|
+
code;
|
|
9218
|
+
message;
|
|
9219
|
+
stackTrace;
|
|
9220
|
+
status;
|
|
9221
|
+
constructor(error) {
|
|
9222
|
+
let parsedError = JSON.parse(error.error);
|
|
9223
|
+
this.id = parsedError.$id;
|
|
9224
|
+
this.type = parsedError.$type;
|
|
9225
|
+
this.code = parsedError.Code;
|
|
9226
|
+
this.message = parsedError.Message;
|
|
9227
|
+
this.stackTrace = parsedError.StackTrace;
|
|
9228
|
+
this.status = error.status;
|
|
9229
|
+
}
|
|
9230
|
+
}
|
|
9231
|
+
|
|
9214
9232
|
class TruErrorManager {
|
|
9215
9233
|
http;
|
|
9216
9234
|
dialog;
|
|
@@ -9228,24 +9246,35 @@ class TruErrorManager {
|
|
|
9228
9246
|
this.baseUrl = appEnvironment.appUri;
|
|
9229
9247
|
this.appName = appEnvironment.appName;
|
|
9230
9248
|
}
|
|
9231
|
-
|
|
9232
|
-
|
|
9233
|
-
|
|
9234
|
-
|
|
9235
|
-
|
|
9236
|
-
|
|
9237
|
-
|
|
9238
|
-
|
|
9239
|
-
|
|
9240
|
-
|
|
9241
|
-
|
|
9242
|
-
|
|
9243
|
-
|
|
9249
|
+
logErrorEvent = (message, context, area) => {
|
|
9250
|
+
area = area || 'unknown';
|
|
9251
|
+
console.log('[' + area + '|' + context + '] ' + message);
|
|
9252
|
+
var logEvent = {
|
|
9253
|
+
eventType: 'Error',
|
|
9254
|
+
eventDate: new Date(),
|
|
9255
|
+
applicationName: this.appName,
|
|
9256
|
+
applicationUrl: this.baseUrl,
|
|
9257
|
+
applicationArea: area,
|
|
9258
|
+
context: context,
|
|
9259
|
+
message: message
|
|
9260
|
+
};
|
|
9261
|
+
this.http
|
|
9262
|
+
.post(`${this.baseUrl}/api/log/logevent`, logEvent)
|
|
9263
|
+
.subscribe(() => {
|
|
9264
|
+
}, (ex) => {
|
|
9265
|
+
console.log('Unable to log error to server. ' + ex);
|
|
9266
|
+
});
|
|
9267
|
+
};
|
|
9268
|
+
handleClientSideError = (error) => {
|
|
9269
|
+
};
|
|
9270
|
+
handleServerSideError = (error) => {
|
|
9271
|
+
let serverError = new TruServerError(error);
|
|
9272
|
+
if (serverError.type === 'tru-db-custom-exception') {
|
|
9244
9273
|
//var service = $injector.get(error.httpResponse.data.serviceName);
|
|
9245
9274
|
//var exceptionData = error.httpResponse.data.data;
|
|
9246
9275
|
//service(exceptionData);
|
|
9247
9276
|
}
|
|
9248
|
-
else if (
|
|
9277
|
+
else if (serverError.type.indexOf('TruDbRequireValidChoiceException') !== -1) {
|
|
9249
9278
|
let dialogConfig = new TruErrorDialogConfig('Require Valid Choice Exception', error.message);
|
|
9250
9279
|
this.dialog.open(TruErrorDialog, {
|
|
9251
9280
|
disableClose: true,
|
|
@@ -9254,7 +9283,7 @@ class TruErrorManager {
|
|
|
9254
9283
|
data: dialogConfig
|
|
9255
9284
|
});
|
|
9256
9285
|
}
|
|
9257
|
-
else if (
|
|
9286
|
+
else if (serverError.type.indexOf('DuplicateKeyError') !== -1) {
|
|
9258
9287
|
let dialogConfig = new TruErrorDialogConfig('Duplicate Key Error', error.message
|
|
9259
9288
|
.replace('Cannot insert duplicate key row in object', 'Cannot insert duplicate value in table')
|
|
9260
9289
|
.replace('dbo.', '')
|
|
@@ -9267,7 +9296,7 @@ class TruErrorManager {
|
|
|
9267
9296
|
data: dialogConfig
|
|
9268
9297
|
});
|
|
9269
9298
|
}
|
|
9270
|
-
else if (
|
|
9299
|
+
else if (serverError.type.indexOf('OptimisticLockViolation') !== -1) {
|
|
9271
9300
|
let dialogConfig = new TruErrorDialogConfig('Concurrent saves not allowed', 'Please review any changes and save again.');
|
|
9272
9301
|
this.dialog.open(TruErrorDialog, {
|
|
9273
9302
|
disableClose: true,
|
|
@@ -9286,28 +9315,12 @@ class TruErrorManager {
|
|
|
9286
9315
|
//this.uiNotification.showErrorDialog(message);
|
|
9287
9316
|
//this.logErrorEvent(message);
|
|
9288
9317
|
}
|
|
9289
|
-
//if (window.appInsights) window.appInsights.trackException(error, null, {
|
|
9290
|
-
// 'User': dataService.activeUser.username
|
|
9291
|
-
//});
|
|
9292
9318
|
};
|
|
9293
|
-
|
|
9294
|
-
|
|
9295
|
-
|
|
9296
|
-
|
|
9297
|
-
|
|
9298
|
-
eventDate: new Date(),
|
|
9299
|
-
applicationName: this.appName,
|
|
9300
|
-
applicationUrl: this.baseUrl,
|
|
9301
|
-
applicationArea: area,
|
|
9302
|
-
context: context,
|
|
9303
|
-
message: message
|
|
9304
|
-
};
|
|
9305
|
-
this.http
|
|
9306
|
-
.post(`${this.baseUrl}/api/log/logevent`, logEvent)
|
|
9307
|
-
.subscribe(() => {
|
|
9308
|
-
}, (ex) => {
|
|
9309
|
-
console.log('Unable to log error to server. ' + ex);
|
|
9310
|
-
});
|
|
9319
|
+
handleError = (error) => {
|
|
9320
|
+
if (error.type)
|
|
9321
|
+
this.handleClientSideError(error);
|
|
9322
|
+
else
|
|
9323
|
+
this.handleServerSideError(error);
|
|
9311
9324
|
};
|
|
9312
9325
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruErrorManager, deps: [{ token: i2.HttpClient }, { token: i1.MatDialog }, { token: TruTextManager }, { token: TruUiNotification }, { token: TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9313
9326
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruErrorManager, providedIn: 'root' });
|