@hmcts/ccpay-web-component 6.2.2-beta5 → 6.2.3-beta2

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVBheW1lbnRHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBkZWZpbmUgcGF5bWVudCBncm91cFxuaW1wb3J0IHtJRmVlfSBmcm9tICcuL0lGZWUnO1xuaW1wb3J0IHtJUGF5bWVudH0gZnJvbSAnLi9JUGF5bWVudCc7XG5pbXBvcnQge0lSZW1pc3Npb259IGZyb20gJy4vSVJlbWlzc2lvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRHcm91cCB7XG4gIHBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlOiBzdHJpbmc7XG4gIHBheW1lbnRzOiBJUGF5bWVudFtdO1xuICByZW1pc3Npb25zOiBJUmVtaXNzaW9uW107XG4gIGZlZXM6IElGZWVbXTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVBheW1lbnRHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBkZWZpbmUgcGF5bWVudCBncm91cFxuaW1wb3J0IHtJRmVlfSBmcm9tICcuL0lGZWUnO1xuaW1wb3J0IHtJUGF5bWVudH0gZnJvbSAnLi9JUGF5bWVudCc7XG5pbXBvcnQge0lSZW1pc3Npb259IGZyb20gJy4vSVJlbWlzc2lvbic7XG5pbXBvcnQge0lSZWZ1bmRMaXN0fSBmcm9tIFwiLi9JUmVmdW5kTGlzdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50R3JvdXAge1xuICBwYXltZW50X2dyb3VwX3JlZmVyZW5jZTogc3RyaW5nO1xuICBwYXltZW50czogSVBheW1lbnRbXTtcbiAgcmVtaXNzaW9uczogSVJlbWlzc2lvbltdO1xuICBmZWVzOiBJRmVlW107XG4gIHJlZnVuZHM6IElSZWZ1bmRMaXN0W107XG59XG4iXX0=
@@ -5,53 +5,76 @@ export class ErrorHandlerService {
5
5
  constructor() { }
6
6
  handleError(err) {
7
7
  let errorMessage;
8
- if (!err) {
9
- return throwError('An unexpected error occurred');
10
- }
11
- // Check if the error is client-side or network error
12
- if (err.error instanceof ErrorEvent) {
8
+ if (err.error instanceof Error) {
9
+ // A client-side or network error occurred.
13
10
  errorMessage = `An error occurred: ${err.error.message}`;
14
11
  }
15
12
  else {
16
- // Check if the error is from the server-side
17
- if (err.status === 400 || err.status === 404 || err.status === 500) {
18
- try {
19
- // Attempt to parse error as JSON
20
- const parsedError = typeof err.error === 'string' ? JSON.parse(err.error) : err.error;
21
- if (parsedError) {
22
- if (parsedError.statusCode && parsedError.statusCode === 500) {
13
+ // The backend returned an unsuccessful response code.
14
+ if (err.status === 404) {
15
+ if (typeof err.error === 'string' && err.error !== undefined) {
16
+ if (err.error.length > 60) {
17
+ if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
23
18
  errorMessage = 'Internal server error';
24
19
  }
25
- else if (parsedError.message) {
26
- if (parsedError.error != undefined && parsedError.statusCode === 400) {
27
- errorMessage = parsedError.error;
20
+ else {
21
+ if (err.error.length > 60) {
22
+ const parsedError = JSON.parse(err.error);
23
+ errorMessage = parsedError.err;
28
24
  }
29
25
  else {
30
- errorMessage = parsedError.message;
26
+ errorMessage = err.error;
31
27
  }
32
28
  }
33
- else if (parsedError.error) {
34
- errorMessage = parsedError.error;
35
- }
36
- else {
37
- errorMessage = err.error;
38
- }
39
29
  }
40
30
  else {
41
- errorMessage = 'An unexpected error occurred';
31
+ errorMessage = err.error;
42
32
  }
43
33
  }
44
- catch (e) {
45
- // Fallback if parsing fails
46
- errorMessage = err.error;
34
+ else {
35
+ errorMessage = JSON.parse(err.error).error;
47
36
  }
48
37
  }
49
38
  else if (err.status === 500) {
50
39
  errorMessage = 'Internal server error';
51
40
  }
41
+ else if (err.error.messsage === undefined) {
42
+ if (typeof err.error === 'object') {
43
+ errorMessage = JSON.parse(JSON.stringify(err.error)).error;
44
+ }
45
+ else {
46
+ if (typeof err.error === 'string' && err.error !== undefined) {
47
+ if (err.error.length > 60) {
48
+ if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
49
+ errorMessage = 'Internal server error';
50
+ }
51
+ else {
52
+ if (err.error.length > 60) {
53
+ const parsedError = JSON.parse(err.error);
54
+ errorMessage = parsedError.err;
55
+ }
56
+ else {
57
+ errorMessage = err.error;
58
+ }
59
+ }
60
+ }
61
+ else {
62
+ errorMessage = err.error;
63
+ }
64
+ }
65
+ else {
66
+ const parsedError = JSON.parse(err.error);
67
+ errorMessage = parsedError.err;
68
+ }
69
+ }
70
+ }
52
71
  else {
53
- // General fallback for other status codes
54
- errorMessage = err.error.message || err.error;
72
+ if (err.error.message !== undefined) {
73
+ errorMessage = `${err.error.message}`;
74
+ }
75
+ else {
76
+ errorMessage = `${err.error}`;
77
+ }
55
78
  }
56
79
  }
57
80
  return throwError(errorMessage);
@@ -73,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
73
96
  providedIn: 'root'
74
97
  }]
75
98
  }], ctorParameters: () => [] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVuQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBRXhCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNOLE9BQU8sVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVMLHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDcEMsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxDQUFDO29CQUNILGlDQUFpQztvQkFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ3RGLElBQUcsV0FBVyxFQUFDLENBQUM7d0JBQ2QsSUFBSSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7NEJBQzdELFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDN0IsSUFBRyxXQUFXLENBQUMsS0FBSyxJQUFHLFNBQVMsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBQyxDQUFDO2dDQUNoRSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDckMsQ0FBQztpQ0FBSSxDQUFDO2dDQUNKLFlBQVksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDOzRCQUNyQyxDQUFDO3dCQUNMLENBQUM7NkJBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO3dCQUNuQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7d0JBQzNCLENBQUM7b0JBQ0gsQ0FBQzt5QkFBSSxDQUFDO3dCQUNKLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztvQkFDaEQsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsNEJBQTRCO29CQUM1QixZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM5QixZQUFZLEdBQUcsdUJBQXVCLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDBDQUEwQztnQkFDMUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBTUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFDLEVBQUU7UUFDbEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQy9ELE9BQU87WUFDTCxLQUFLLEVBQUUscUNBQXFDO1lBQzVDLElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRSxZQUFZO1NBQ3hCLENBQUM7SUFDSixDQUFDO3VHQTlEVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUpsQixNQUFNOzsyRkFJUCxtQkFBbUI7a0JBTC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5cbmV4cG9ydCBjbGFzcyBFcnJvckhhbmRsZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5oYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gICBpZiAoIWVycikge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCcpO1xuICAgICAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBlcnJvciBpcyBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yXG4gIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGVycm9yIGlzIGZyb20gdGhlIHNlcnZlci1zaWRlXG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMCB8fCBlcnIuc3RhdHVzID09PSA0MDQgfHwgZXJyLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBBdHRlbXB0IHRvIHBhcnNlIGVycm9yIGFzIEpTT05cbiAgICAgICAgY29uc3QgcGFyc2VkRXJyb3IgPSB0eXBlb2YgZXJyLmVycm9yID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoZXJyLmVycm9yKSA6IGVyci5lcnJvcjtcbiAgICAgICAgaWYocGFyc2VkRXJyb3Ipe1xuICAgICAgICAgIGlmIChwYXJzZWRFcnJvci5zdGF0dXNDb2RlICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDUwMCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXJzZWRFcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGlmKHBhcnNlZEVycm9yLmVycm9yICE9dW5kZWZpbmVkICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDQwMCl7XG4gICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gcGFyc2VkRXJyb3IubWVzc2FnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkRXJyb3IuZXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHBhcnNlZEVycm9yLmVycm9yO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCc7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gRmFsbGJhY2sgaWYgcGFyc2luZyBmYWlsc1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlcnIuc3RhdHVzID09PSA1MDApIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBHZW5lcmFsIGZhbGxiYWNrIGZvciBvdGhlciBzdGF0dXMgY29kZXNcbiAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvci5tZXNzYWdlIHx8IGVyci5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3JNZXNzYWdlKTtcbn1cblxuXG5cblxuXG4gIGdldFNlcnZlckVycm9yTWVzc2FnZShpc0Vycm9yRXhpc3QsIGlzRGF0YU5vdEV4aXN0ID0gZmFsc2UsIGVycm9yPScnKSB7XG4gICAgY29uc3QgYm9keUNvbnRlbnQgPSBpc0RhdGFOb3RFeGlzdCA/IGVycm9yIDogJ1RyeSBhZ2FpbiBsYXRlcic7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiBcIlRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzZXJ2aWNlXCIsXG4gICAgICBib2R5OiBib2R5Q29udGVudCxcbiAgICAgIHNob3dFcnJvcjogaXNFcnJvckV4aXN0XG4gICAgfTtcbiAgfVxufVxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUdqQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBQ3pCLElBQUksR0FBRyxDQUFDLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMvQiwyQ0FBMkM7WUFDM0MsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sc0RBQXNEO1lBQ3RELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFFdkIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBRTdELElBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7d0JBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUM5RixDQUFDOzRCQUNDLFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLElBQUcs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bEMsQ0FBQztJQUdELHFCQUFxQixDQUFDLFlBQVksRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBQyxFQUFFO1FBQ2xFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMvRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLHFDQUFxQztZQUM1QyxJQUFJLEVBQUUsV0FBVztZQUNqQixTQUFTLEVBQUUsWUFBWTtTQUN4QixDQUFDO0lBQ0osQ0FBQzt1R0F4RlUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FKbEIsTUFBTTs7MkZBSVAsbUJBQW1CO2tCQUwvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuXG5leHBvcnQgY2xhc3MgRXJyb3JIYW5kbGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuXG4gIGhhbmRsZUVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIEEgY2xpZW50LXNpZGUgb3IgbmV0d29yayBlcnJvciBvY2N1cnJlZC5cbiAgICAgIGVycm9yTWVzc2FnZSA9IGBBbiBlcnJvciBvY2N1cnJlZDogJHtlcnIuZXJyb3IubWVzc2FnZX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgYmFja2VuZCByZXR1cm5lZCBhbiB1bnN1Y2Nlc3NmdWwgcmVzcG9uc2UgY29kZS5cbiAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDQpIHtcblxuICAgICAgICBpZiAodHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgJiYgZXJyLmVycm9yICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgICAgIGlmKGVyci5lcnJvci5sZW5ndGggPiA2MCkge1xuICAgICAgICAgICAgaWYgKEpTT04ucGFyc2UoZXJyLmVycm9yKS5zdGF0dXNDb2RlICE9PSB1bmRlZmluZWQgJiYgSlNPTi5wYXJzZShlcnIuZXJyb3IpLnN0YXR1c0NvZGUgPT09IDUwMClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZihlcnIuZXJyb3IubGVuZ3RoID4gNjApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRFcnJvciA9IEpTT04ucGFyc2UoZXJyLmVycm9yKTtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgcGFyc2VkRXJyb3IuZXJyO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgZXJyLmVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgSlNPTi5wYXJzZShlcnIuZXJyb3IpLmVycm9yO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgICAgIH0gZWxzZSBpZiAoZXJyLmVycm9yLm1lc3NzYWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYoIHR5cGVvZiBlcnIuZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXJyLmVycm9yKSkuZXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBlcnIuZXJyb3IgPT09ICdzdHJpbmcnICYmIGVyci5lcnJvciAhPT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgICAgICAgIGlmKGVyci5lcnJvci5sZW5ndGggPiA2MCkge1xuICAgICAgICAgICAgICBpZiAoSlNPTi5wYXJzZShlcnIuZXJyb3IpLnN0YXR1c0NvZGUgIT09IHVuZGVmaW5lZCAmJiBKU09OLnBhcnNlKGVyci5lcnJvcikuc3RhdHVzQ29kZSA9PT0gNTAwKVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYoZXJyLmVycm9yLmxlbmd0aCA+IDYwKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRFcnJvciA9IEpTT04ucGFyc2UoZXJyLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBwYXJzZWRFcnJvci5lcnI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEVycm9yID0gSlNPTi5wYXJzZShlcnIuZXJyb3IpO1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIHBhcnNlZEVycm9yLmVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyLmVycm9yLm1lc3NhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyLmVycm9yfWA7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG5cblxuICBnZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0LCBpc0RhdGFOb3RFeGlzdCA9IGZhbHNlLCBlcnJvcj0nJykge1xuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gaXNEYXRhTm90RXhpc3QgPyBlcnJvciA6ICdUcnkgYWdhaW4gbGF0ZXInO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogXCJUaGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiLFxuICAgICAgYm9keTogYm9keUNvbnRlbnQsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbn1cbiJdfQ==