bpm-core 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm2022/lib/app/app.component.mjs +25 -13
  2. package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +6 -6
  3. package/esm2022/lib/components/app-component-sections/layout/header/header.component.mjs +3 -3
  4. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +9 -6
  5. package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +4 -4
  6. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +1 -1
  7. package/esm2022/lib/interfaces/form.interface.mjs +1 -1
  8. package/esm2022/lib/services/core.service.ts.mjs +318 -168
  9. package/esm2022/lib/testComponent/config/segment-dynamic-loader.config.mjs +8 -0
  10. package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +52 -0
  11. package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +50 -0
  12. package/esm2022/lib/testComponent/services/i18n.service.mjs +39 -0
  13. package/esm2022/lib/testComponent/services/segment-dynamic-loader.service.mjs +54 -0
  14. package/esm2022/lib/testComponent/services/state-machine.service.mjs +148 -0
  15. package/fesm2022/bpm-core.mjs +4758 -4270
  16. package/fesm2022/bpm-core.mjs.map +1 -1
  17. package/lib/app/app.component.d.ts +4 -2
  18. package/lib/components/app-component-sections/form-section/form-section.component.d.ts +1 -1
  19. package/lib/components/app-component-sections/layout/header/header.component.d.ts +1 -1
  20. package/lib/components/app-component-sections/service-header/service-header.component.d.ts +5 -5
  21. package/lib/interfaces/form.interface.d.ts +2 -2
  22. package/lib/services/core.service.ts.d.ts +2 -0
  23. package/lib/testComponent/config/segment-dynamic-loader.config.d.ts +8 -0
  24. package/lib/testComponent/general-approver-section/general-approver-section.component.d.ts +21 -0
  25. package/lib/testComponent/request-details-section/request-details-section.component.d.ts +20 -0
  26. package/lib/testComponent/services/i18n.service.d.ts +11 -0
  27. package/lib/testComponent/services/segment-dynamic-loader.service.d.ts +17 -0
  28. package/lib/testComponent/services/state-machine.service.d.ts +29 -0
  29. package/package.json +1 -1
@@ -0,0 +1,148 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Messages } from "../../interfaces";
3
+ import * as constants from "../../constants";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "../../services";
7
+ export class StateMachineService {
8
+ http;
9
+ coreStateMachineService;
10
+ currentSubmitter;
11
+ feedbackForm = false;
12
+ formName;
13
+ serviceName;
14
+ refreshToken;
15
+ pendingForm = false;
16
+ responderForm = false;
17
+ feedBackSent = false;
18
+ feedbackReponse = {
19
+ requestFrom: null,
20
+ requestTo: null,
21
+ requestFeedback: null,
22
+ responseFeedback: null
23
+ };
24
+ transitions;
25
+ state;
26
+ authToken;
27
+ formId;
28
+ isReadOnly;
29
+ inboxUrl;
30
+ isMobile;
31
+ requesterEmail;
32
+ authorizedEmail;
33
+ constructor(http, coreStateMachineService) {
34
+ this.http = http;
35
+ this.coreStateMachineService = coreStateMachineService;
36
+ this.isMobile = window.wmConfig.isMobile;
37
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
38
+ this.currentSubmitter = null;
39
+ this.authToken = '';
40
+ this.refreshToken = '';
41
+ this.formId = window.wmConfig.formId;
42
+ this.formName = window.wmConfig.formPrefix;
43
+ if (this.formName.includes('-new')) {
44
+ const myArray = this.formName.split("-");
45
+ this.formName = myArray['0'];
46
+ }
47
+ this.inboxUrl = window.wmConfig.inboxUri;
48
+ console.log('inboxUrl', this.inboxUrl);
49
+ console.log('inboxUrl', location.host + this.inboxUrl);
50
+ /* istanbul ignore next */
51
+ this.transitions = {
52
+ idle: {
53
+ mockApi: function (filterData, ...args) {
54
+ let body = {
55
+ method: constants.HTTP_METHOD_GET, //GET - PUT - POST
56
+ destination: constants.TARGET_SERVER_WM,
57
+ serviceName: 'serviceName', //,
58
+ formName: this.formName,
59
+ queryParameters: {}
60
+ };
61
+ let options = this.getRequestOptions();
62
+ let succ = 'serviceResponce';
63
+ return this.callPost(body, succ, options);
64
+ },
65
+ getFileTemplate: function (...args) {
66
+ let [formID] = args;
67
+ this.state = constants.STATE_MACHINE_STATUS_FETCHING;
68
+ let body = {
69
+ method: constants.HTTP_METHOD_GET,
70
+ destination: constants.TARGET_SERVER_WM,
71
+ serviceName: "getFileTemplate",
72
+ formName: "WPO",
73
+ queryParameters: {
74
+ formID: formID,
75
+ }
76
+ };
77
+ let options = this.getRequestOptions();
78
+ let succ = constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE;
79
+ return this.callPost(body, succ, options);
80
+ },
81
+ },
82
+ fetching: {
83
+ serviceResponce: function (...args) {
84
+ let [payload] = args;
85
+ let result = payload;
86
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
87
+ return result;
88
+ },
89
+ failure: function (...args) {
90
+ let [errors] = args;
91
+ this.state = constants.STATE_MACHINE_STATUS_ERROR;
92
+ return this.dispatch(constants.STATE_MACHINE_ACTION_HANDLE_ERROR, errors);
93
+ }
94
+ },
95
+ error: {
96
+ handleError: function (...args) {
97
+ let [errors] = args;
98
+ let result = new Messages({}, [], [], []);
99
+ if (errors?.meta?.messages) {
100
+ errors.meta.messages.forEach((message) => {
101
+ result[message.type].push(message.message);
102
+ if (message.payloadReference) {
103
+ let payloadReferenceTokens = message.payloadReference.split('/');
104
+ payloadReferenceTokens.slice(1, payloadReferenceTokens.length - 1);
105
+ let element = result.errorFields;
106
+ payloadReferenceTokens.forEach((token) => {
107
+ element[token] = {};
108
+ element = element[token];
109
+ });
110
+ element = true;
111
+ }
112
+ });
113
+ }
114
+ else if (errors?.errors) {
115
+ errors.errors.forEach((message) => {
116
+ result['error'].push(message.message);
117
+ });
118
+ }
119
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
120
+ return result;
121
+ }
122
+ },
123
+ sending: {
124
+ failure: function (...args) {
125
+ let [errors] = args;
126
+ this.state = constants.STATE_MACHINE_STATUS_ERROR;
127
+ return this.dispatch(constants.STATE_MACHINE_ACTION_HANDLE_ERROR, errors);
128
+ }
129
+ }
130
+ };
131
+ }
132
+ dispatch(actionName, ...args) {
133
+ const actions = this.transitions[this.state];
134
+ const action = actions[actionName];
135
+ if (action) {
136
+ return action.apply(this, args);
137
+ }
138
+ }
139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StateMachineService, deps: [{ token: i1.HttpClient }, { token: i2.CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
140
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StateMachineService, providedIn: 'any' });
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StateMachineService, decorators: [{
143
+ type: Injectable,
144
+ args: [{
145
+ providedIn: 'any',
146
+ }]
147
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.CoreService }] });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtbWFjaGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi90ZXN0Q29tcG9uZW50L3NlcnZpY2VzL3N0YXRlLW1hY2hpbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEtBQUssU0FBUyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSzdDLE1BQU0sT0FBTyxtQkFBbUI7SUF3QlY7SUFBMEI7SUF2QnRDLGdCQUFnQixDQUFNO0lBQzlCLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDdEIsUUFBUSxDQUFTO0lBQ2pCLFdBQVcsQ0FBVTtJQUNyQixZQUFZLENBQVM7SUFDN0IsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDOUIsZUFBZSxHQUFRO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsZUFBZSxFQUFFLElBQUk7UUFDckIsZ0JBQWdCLEVBQUUsSUFBSTtLQUN2QixDQUFDO0lBQ00sV0FBVyxDQUFpRDtJQUM1RCxLQUFLLENBQVM7SUFDZCxTQUFTLENBQVM7SUFDbEIsTUFBTSxDQUFTO0lBQ2hCLFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQVM7SUFDaEIsUUFBUSxDQUFVO0lBQ2xCLGNBQWMsQ0FBVTtJQUN4QixlQUFlLENBQVU7SUFDakMsWUFBb0IsSUFBZ0IsRUFBVSx1QkFBb0M7UUFBOUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBYTtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFJLE1BQWMsQ0FBQyxR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O0lBQ0gsQ0FBQzt1R0E5SVUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGaEIsS0FBSzs7MkZBRVIsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxLQUFLO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7Q29yZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBNZXNzYWdlc30gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdhbnknLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhdGVNYWNoaW5lU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjdXJyZW50U3VibWl0dGVyOiBhbnk7XHJcbiAgZmVlZGJhY2tGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBmb3JtTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgc2VydmljZU5hbWUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW46IHN0cmluZztcclxuICBwZW5kaW5nRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlc3BvbmRlckZvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZWVkQmFja1NlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZWVkYmFja1JlcG9uc2U6IGFueSA9IHtcclxuICAgIHJlcXVlc3RGcm9tOiBudWxsLFxyXG4gICAgcmVxdWVzdFRvOiBudWxsLFxyXG4gICAgcmVxdWVzdEZlZWRiYWNrOiBudWxsLFxyXG4gICAgcmVzcG9uc2VGZWVkYmFjazogbnVsbFxyXG4gIH07XHJcbiAgcHJpdmF0ZSB0cmFuc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH0gfTtcclxuICBwcml2YXRlIHN0YXRlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBhdXRoVG9rZW46IHN0cmluZztcclxuICBwcml2YXRlIGZvcm1JZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1JlYWRPbmx5OiBzdHJpbmc7XHJcbiAgcHVibGljIGluYm94VXJsOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBpc01vYmlsZTogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlcXVlc3RlckVtYWlsITogc3RyaW5nO1xyXG4gIHByaXZhdGUgYXV0aG9yaXplZEVtYWlsITogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjb3JlU3RhdGVNYWNoaW5lU2VydmljZTogQ29yZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuaXNNb2JpbGUgPSAod2luZG93IGFzIGFueSkud21Db25maWcuaXNNb2JpbGU7XHJcbiAgICB0aGlzLnN0YXRlID0gY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfU1RBVFVTX0lETEU7XHJcbiAgICB0aGlzLmN1cnJlbnRTdWJtaXR0ZXIgPSBudWxsO1xyXG4gICAgdGhpcy5hdXRoVG9rZW4gPSAnJztcclxuICAgIHRoaXMucmVmcmVzaFRva2VuID0gJyc7XHJcbiAgICB0aGlzLmZvcm1JZCA9ICh3aW5kb3cgYXMgYW55KS53bUNvbmZpZy5mb3JtSWQ7XHJcbiAgICB0aGlzLmZvcm1OYW1lID0od2luZG93IGFzIGFueSkud21Db25maWcuZm9ybVByZWZpeDtcclxuICAgIGlmKHRoaXMuZm9ybU5hbWUuaW5jbHVkZXMoJy1uZXcnKSl7XHJcbiAgICAgIGNvbnN0IG15QXJyYXkgPSB0aGlzLmZvcm1OYW1lLnNwbGl0KFwiLVwiKTtcclxuICAgICAgdGhpcy5mb3JtTmFtZSA9IG15QXJyYXlbJzAnXVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbmJveFVybCA9ICh3aW5kb3cgYXMgYW55KS53bUNvbmZpZy5pbmJveFVyaTtcclxuICAgIGNvbnNvbGUubG9nKCdpbmJveFVybCcsIHRoaXMuaW5ib3hVcmwpO1xyXG4gICAgY29uc29sZS5sb2coJ2luYm94VXJsJywgbG9jYXRpb24uaG9zdCArIHRoaXMuaW5ib3hVcmwpO1xyXG5cclxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xyXG4gICAgdGhpcy50cmFuc2l0aW9ucyA9IHtcclxuICAgICAgaWRsZToge1xyXG4gICAgICAgIG1vY2tBcGk6IGZ1bmN0aW9uIChmaWx0ZXJEYXRhLCAuLi5hcmdzKSB7XHJcbiAgICAgICAgICBsZXQgYm9keSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiBjb25zdGFudHMuSFRUUF9NRVRIT0RfR0VULCAvL0dFVCAtIFBVVCAtIFBPU1RcclxuICAgICAgICAgICAgZGVzdGluYXRpb246IGNvbnN0YW50cy5UQVJHRVRfU0VSVkVSX1dNLFxyXG4gICAgICAgICAgICBzZXJ2aWNlTmFtZTogJ3NlcnZpY2VOYW1lJywgLy8sXHJcbiAgICAgICAgICAgIGZvcm1OYW1lOiB0aGlzLmZvcm1OYW1lLFxyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnM6IHtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBvcHRpb25zID0gdGhpcy5nZXRSZXF1ZXN0T3B0aW9ucygpO1xyXG4gICAgICAgICAgbGV0IHN1Y2MgPSAnc2VydmljZVJlc3BvbmNlJztcclxuICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxQb3N0KGJvZHksIHN1Y2MsIG9wdGlvbnMpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGdldEZpbGVUZW1wbGF0ZTogZnVuY3Rpb24oLi4uYXJncykge1xyXG4gICAgICAgICAgbGV0IFtmb3JtSURdID0gYXJncztcclxuICAgICAgICAgIHRoaXMuc3RhdGUgPSBjb25zdGFudHMuU1RBVEVfTUFDSElORV9TVEFUVVNfRkVUQ0hJTkc7XHJcbiAgICAgICAgICBsZXQgYm9keSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiBjb25zdGFudHMuSFRUUF9NRVRIT0RfR0VULFxyXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogY29uc3RhbnRzLlRBUkdFVF9TRVJWRVJfV00sXHJcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lOiBcImdldEZpbGVUZW1wbGF0ZVwiLFxyXG4gICAgICAgICAgICBmb3JtTmFtZTogXCJXUE9cIixcclxuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzOiB7XHJcbiAgICAgICAgICAgICAgZm9ybUlEOiBmb3JtSUQsXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgbGV0IG9wdGlvbnMgPSB0aGlzLmdldFJlcXVlc3RPcHRpb25zKCk7XHJcbiAgICAgICAgICBsZXQgc3VjYyA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9TVUNDRVNTX1JFU1BPTlNFO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbFBvc3QoYm9keSwgc3VjYywgb3B0aW9ucyk7XHJcbiAgICAgICAgfSxcclxuXHJcblxyXG5cclxuXHJcbiAgICAgIH0sXHJcbiAgICAgIGZldGNoaW5nOiB7XHJcbiAgICAgICAgc2VydmljZVJlc3BvbmNlOiBmdW5jdGlvbiAoLi4uYXJnczogYW55KSB7XHJcbiAgICAgICAgICBsZXQgW3BheWxvYWRdID0gYXJncztcclxuICAgICAgICAgIGxldCByZXN1bHQgPSBwYXlsb2FkO1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZSA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX1NUQVRVU19JRExFO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhaWx1cmU6IGZ1bmN0aW9uICguLi5hcmdzKSB7XHJcbiAgICAgICAgICBsZXQgW2Vycm9yc10gPSBhcmdzO1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZSA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX1NUQVRVU19FUlJPUjtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9IQU5ETEVfRVJST1IsIGVycm9ycyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjoge1xyXG4gICAgICAgIGhhbmRsZUVycm9yOiBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gICAgICAgICAgbGV0IFtlcnJvcnNdID0gYXJncztcclxuICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgTWVzc2FnZXMoXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICBbXSxcclxuICAgICAgICAgICAgW10sXHJcbiAgICAgICAgICAgIFtdXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKGVycm9ycz8ubWV0YT8ubWVzc2FnZXMpIHtcclxuICAgICAgICAgICAgZXJyb3JzLm1ldGEubWVzc2FnZXMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJlc3VsdFttZXNzYWdlLnR5cGVdLnB1c2gobWVzc2FnZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICBpZiAobWVzc2FnZS5wYXlsb2FkUmVmZXJlbmNlKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcGF5bG9hZFJlZmVyZW5jZVRva2VucyA9IG1lc3NhZ2UucGF5bG9hZFJlZmVyZW5jZS5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICAgICAgcGF5bG9hZFJlZmVyZW5jZVRva2Vucy5zbGljZSgxLCBwYXlsb2FkUmVmZXJlbmNlVG9rZW5zLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSByZXN1bHQuZXJyb3JGaWVsZHM7XHJcbiAgICAgICAgICAgICAgICBwYXlsb2FkUmVmZXJlbmNlVG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRbdG9rZW5dID0ge307XHJcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50W3Rva2VuXTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChlcnJvcnM/LmVycm9ycykge1xyXG4gICAgICAgICAgICBlcnJvcnMuZXJyb3JzLmZvckVhY2goKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgICByZXN1bHRbJ2Vycm9yJ10ucHVzaChtZXNzYWdlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3RhdGUgPSBjb25zdGFudHMuU1RBVEVfTUFDSElORV9TVEFUVVNfSURMRTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBzZW5kaW5nOiB7XHJcbiAgICAgICAgZmFpbHVyZTogZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICAgICAgICAgIGxldCBbZXJyb3JzXSA9IGFyZ3M7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlID0gY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfU1RBVFVTX0VSUk9SO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfQUNUSU9OX0hBTkRMRV9FUlJPUiwgZXJyb3JzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNwYXRjaChhY3Rpb25OYW1lLCAuLi5hcmdzKSB7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy50cmFuc2l0aW9uc1t0aGlzLnN0YXRlXTtcclxuICAgIGNvbnN0IGFjdGlvbiA9IGFjdGlvbnNbYWN0aW9uTmFtZV07XHJcblxyXG4gICAgaWYgKGFjdGlvbikge1xyXG4gICAgICByZXR1cm4gYWN0aW9uLmFwcGx5KHRoaXMsIGFyZ3MpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qICBwcml2YXRlIGdldFJlcXVlc3RPcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICBhdXRoVG9rZW46IHRoaXMuY29yZVN0YXRlTWFjaGluZVNlcnZpY2UuZ2V0U2Vzc2lvblRva2VuKCksXHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IGNvbnN0YW50cy5IRUFERVJfQ09OVEVOVF9UWVBFX0ZPUk1cclxuICAgICAgfSksXHJcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZSdcclxuICAgIH1cclxuICB9Ki9cclxuXHJcbiAgLypwdWJsaWMgY2FsbFBvc3QoYm9keSwgc3VjYywgb3B0aW9ucykge1xyXG4gICAgbGV0IGFwaVVybCA9IGVudmlyb25tZW50LnByb3h5U2VydmljZUJhc2VVcmwgKyAod2luZG93IGFzIGFueSkud21Db25maWcubGFuZ3VhZ2UgKyBlbnZpcm9ubWVudC5wcm94eUZ1bGxBZGRyZXNzICsgZW52aXJvbm1lbnQucHJveHlTZXJ2aWNlRXhlY3V0ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlVcmwsIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShib2R5KSksIG9wdGlvbnMpLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKFxyXG4gICAgICAgIChyZXNwb25zZU9iamVjdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgcGF5bG9hZCA9IHJlc3BvbnNlT2JqZWN0LmJvZHk7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlID0gY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfU1RBVFVTX0ZFVENISU5HO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goc3VjYywgcGF5bG9hZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKS5jYXRjaChcclxuICAgICAgICAoaHR0cEVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCByZXNwb25zZUVycm9yID0gaHR0cEVycm9yLmVycm9yO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlRXJyb3IpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IGNvbnN0YW50cy5TVEFURV9NQUNISU5FX1NUQVRVU19GRVRDSElORztcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goY29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfQUNUSU9OX0ZBSUxVUkUsIHJlc3BvbnNlRXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBjb25zdGFudHMuU1RBVEVfTUFDSElORV9TVEFUVVNfSURMRTtcclxuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9Ki9cclxufVxyXG4iXX0=