@kontur.candy/tools 2.109.0 → 2.113.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/CHANGELOG.md +54 -0
- package/README.md +5 -1
- package/distr/Common/CandyApiClient/CandyApiClient.js +10 -30
- package/distr/Common/CandyApiClient/CandyApiClientContext.js +26 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +60 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +51 -0
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +50 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +90 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +56 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +12 -0
- package/distr/Common/CandyApiClient/{Types/CandyApiAuthentication.js → DigestApiClient/IDigestApiClient.js} +0 -0
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +26 -0
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +25 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +24 -0
- package/distr/Common/CandyApiClient/{Types/Picklist → DigestApiClient/Types}/DigestRequest.js +0 -0
- package/distr/Common/CandyApiClient/{Types/Picklist/PicklistServerResponses.js → DigestApiClient/Types/DigestResponse.js} +0 -0
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +8 -50
- package/distr/Common/EndPoints.js +20 -0
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +16 -0
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +6 -0
- package/distr/Common/HttpClient/AuthenticationMode.js +35 -0
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +27 -3
- package/distr/Common/HttpClient/HttpClient.js +66 -9
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +6 -0
- package/distr/Common/IntRangeUtils.js +3 -12
- package/distr/Common/IterableUtils.js +17 -11
- package/distr/Common/ModelPath/ModelPath.js +16 -1
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +41 -0
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +6 -0
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +13 -0
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +82 -0
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +137 -0
- package/distr/Common/NidusClient/INidusClient.js +16 -0
- package/distr/Common/NidusClient/NidusClientContext.js +47 -0
- package/distr/Common/NidusClient/NidusClientImpl.js +72 -0
- package/distr/Common/TypingUtils.js +24 -2
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +4 -4
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +15 -4
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +12 -6
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +2 -20
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +19 -49
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +29 -45
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +11 -12
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +7 -7
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +20 -2
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.map +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +3093 -387
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/package.json +1 -1
- package/distr/Common/CandyApiClient/Types/Picklist/PicklistQueryFilter.js +0 -24
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/ResourcesDirectory.js +0 -66
|
@@ -9,8 +9,6 @@ var _mimeTypes = _interopRequireDefault(require("mime-types"));
|
|
|
9
9
|
|
|
10
10
|
var _ResolveFormInfo = require("../../../BuildTasks/ResolveFormInfo");
|
|
11
11
|
|
|
12
|
-
var _FormGlobsUtils = require("../../../Commons/FormGlobsUtils");
|
|
13
|
-
|
|
14
12
|
var _Methods = require("../../../Commons/HttpServer/AttributeRouting/Methods");
|
|
15
13
|
|
|
16
14
|
var _NotFoundWebError = require("../../../Commons/HttpServer/AttributeRouting/NotFoundWebError");
|
|
@@ -29,8 +27,6 @@ var _BuildFormDevServer = require("./DevServers/BuildFormDevServer");
|
|
|
29
27
|
|
|
30
28
|
var _FarmDirectory = require("./Directories/FarmDirectory");
|
|
31
29
|
|
|
32
|
-
var _ResourcesDirectory = require("./Directories/ResourcesDirectory");
|
|
33
|
-
|
|
34
30
|
var _dec, _dec2, _dec3, _class;
|
|
35
31
|
|
|
36
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -38,7 +34,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
38
34
|
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
39
35
|
|
|
40
36
|
let BuildServerBuildFormsController = (_dec = (0, _Methods.httpGet)(/^\/public\/scripts\/(((\d{6,7})(.[\w\-]*)?(.min)?).js)$/i, _Results.httpReturn.StreamWithMime("application/javascript"), (0, _Params.httpUrlParam)("0", _Params.httpType.String), (0, _Params.httpUrlParam)("1", _Params.httpType.String), (0, _Params.httpUrlParam)("2", _Params.httpType.String)), _dec2 = (0, _Methods.httpGet)(/^\/public\/styles\/(((\d{6,7})(.[\w\-]*)?(.min)?).css)$/i, _Results.httpReturn.StreamWithMime("text/css"), (0, _Params.httpUrlParam)("0", _Params.httpType.String), (0, _Params.httpUrlParam)("1", _Params.httpType.String), (0, _Params.httpUrlParam)("2", _Params.httpType.String), (0, _Params.httpUrlParam)("3", _Params.httpType.String)), _dec3 = (0, _Methods.httpGet)("/public/images/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), (_class = class BuildServerBuildFormsController extends _SingletonController.SingletonController {
|
|
41
|
-
constructor(farmDirectory,
|
|
37
|
+
constructor(farmDirectory, candyModulesDirectory, hlFarmDirectoryPath, useGeneratorFromLocalSources, engineDirectory, buildDebugOnly, nightly = false) {
|
|
42
38
|
super();
|
|
43
39
|
this.farmDirectory = void 0;
|
|
44
40
|
this.farmDirectoryPath = void 0;
|
|
@@ -46,17 +42,13 @@ let BuildServerBuildFormsController = (_dec = (0, _Methods.httpGet)(/^\/public\/
|
|
|
46
42
|
this.devServers = {};
|
|
47
43
|
this.candyModulesDirectory = void 0;
|
|
48
44
|
this.hlFarmDirectoryPath = void 0;
|
|
49
|
-
this.resourcesDirectory = void 0;
|
|
50
|
-
this.buildOnDemandFormGlobs = void 0;
|
|
51
45
|
this.useGeneratorFromLocalSources = void 0;
|
|
52
46
|
this.engineDirectory = void 0;
|
|
53
|
-
this.
|
|
47
|
+
this.nightly = void 0;
|
|
54
48
|
this.buildDebugOnly = void 0;
|
|
55
|
-
this.
|
|
49
|
+
this.nightly = nightly;
|
|
56
50
|
this.farmDirectory = new _FarmDirectory.FarmDirectory(farmDirectory);
|
|
57
51
|
this.farmDirectoryPath = farmDirectory;
|
|
58
|
-
this.resourcesDirectory = new _ResourcesDirectory.ResourcesDirectory(resourcesDirectory);
|
|
59
|
-
this.buildOnDemandFormGlobs = new _FormGlobsUtils.FormGlobs(this.farmDirectory, buildOnDemandFormGlobs);
|
|
60
52
|
this.candyModulesDirectory = candyModulesDirectory;
|
|
61
53
|
this.hlFarmDirectoryPath = hlFarmDirectoryPath;
|
|
62
54
|
this.useGeneratorFromLocalSources = useGeneratorFromLocalSources;
|
|
@@ -65,42 +57,26 @@ let BuildServerBuildFormsController = (_dec = (0, _Methods.httpGet)(/^\/public\/
|
|
|
65
57
|
}
|
|
66
58
|
|
|
67
59
|
async getFormScript(fileName, fileNameWithoutExt, gfv) {
|
|
68
|
-
await this.
|
|
69
|
-
|
|
70
|
-
if (await this.buildOnDemandFormGlobs.isMatch(gfv)) {
|
|
71
|
-
const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);
|
|
72
|
-
return new _StreamResultHandler.StreamResult(await buildFormDevServer.getFileAsStream(`/public/scripts/${fileName}`));
|
|
73
|
-
} else {
|
|
74
|
-
return new _StreamResultHandler.StreamResult(this.resourcesDirectory.getScriptContentAsStream(fileName));
|
|
75
|
-
}
|
|
60
|
+
const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);
|
|
61
|
+
return new _StreamResultHandler.StreamResult(await buildFormDevServer.getFileAsStream(`/public/scripts/${fileName}`));
|
|
76
62
|
}
|
|
77
63
|
|
|
78
64
|
async getFormStyle(fileName, fileNameWithoutExt, gfv, theme) {
|
|
79
|
-
await this.
|
|
80
|
-
|
|
81
|
-
if (await this.buildOnDemandFormGlobs.isMatch(gfv)) {
|
|
82
|
-
const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);
|
|
83
|
-
return new _StreamResultHandler.StreamResult(await buildFormDevServer.getFileAsStream(`/public/styles/${fileName.replace(theme !== null && theme !== void 0 ? theme : "", "")}`));
|
|
84
|
-
} else {
|
|
85
|
-
return new _StreamResultHandler.StreamResult(this.resourcesDirectory.getStyleContentAsStream(fileName.replace(theme !== null && theme !== void 0 ? theme : "", "")));
|
|
86
|
-
}
|
|
65
|
+
const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);
|
|
66
|
+
return new _StreamResultHandler.StreamResult(await buildFormDevServer.getFileAsStream(`/public/styles/${fileName.replace(theme !== null && theme !== void 0 ? theme : "", "")}`));
|
|
87
67
|
}
|
|
88
68
|
|
|
89
69
|
async getFormImages(fileName) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
return new _StreamResultHandler.StreamResult(await devServer.getFileAsStream(`/public/images/${fileName}`), _mimeTypes.default.lookup(fileName));
|
|
97
|
-
} catch (ignoreError) {// try next server
|
|
98
|
-
}
|
|
70
|
+
for (const devServer of Object.values(this.devServers)) {
|
|
71
|
+
if (devServer != undefined) {
|
|
72
|
+
try {
|
|
73
|
+
return new _StreamResultHandler.StreamResult(await devServer.getFileAsStream(`/public/images/${fileName}`), _mimeTypes.default.lookup(fileName));
|
|
74
|
+
} catch (ignoreError) {// try next server
|
|
99
75
|
}
|
|
100
76
|
}
|
|
101
|
-
|
|
102
|
-
throw new _NotFoundWebError.NotFoundWebError("File not found", true);
|
|
103
77
|
}
|
|
78
|
+
|
|
79
|
+
throw new _NotFoundWebError.NotFoundWebError("File not found", true);
|
|
104
80
|
}
|
|
105
81
|
|
|
106
82
|
async getAllNormalizationFileNames() {
|
|
@@ -123,22 +99,16 @@ let BuildServerBuildFormsController = (_dec = (0, _Methods.httpGet)(/^\/public\/
|
|
|
123
99
|
}
|
|
124
100
|
|
|
125
101
|
async getNormalizationFileContent(gfv) {
|
|
126
|
-
await this.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);
|
|
130
|
-
const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`ServerSide.normalize`);
|
|
131
|
-
return resultStream;
|
|
132
|
-
} else {
|
|
133
|
-
return this.resourcesDirectory.getFLangNormalizeFile(gfv);
|
|
134
|
-
}
|
|
102
|
+
const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);
|
|
103
|
+
const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`ServerSide.normalize`);
|
|
104
|
+
return resultStream;
|
|
135
105
|
}
|
|
136
106
|
|
|
137
107
|
async getOrCreateBuildFormDevServer(gfv) {
|
|
138
108
|
let devServer = this.devServers[gfv];
|
|
139
109
|
|
|
140
110
|
if (devServer == undefined) {
|
|
141
|
-
devServer = new _BuildFormDevServer.BuildFormDevServer(this.nextFreePort++, this.farmDirectoryPath, gfv, this.candyModulesDirectory, this.hlFarmDirectoryPath, this.useGeneratorFromLocalSources, this.engineDirectory, this.buildDebugOnly, this.
|
|
111
|
+
devServer = new _BuildFormDevServer.BuildFormDevServer(this.nextFreePort++, this.farmDirectoryPath, gfv, this.candyModulesDirectory, this.hlFarmDirectoryPath, this.useGeneratorFromLocalSources, this.engineDirectory, this.buildDebugOnly, false, this.nightly);
|
|
142
112
|
this.devServers[gfv] = devServer;
|
|
143
113
|
await devServer.start();
|
|
144
114
|
}
|
|
@@ -148,4 +118,4 @@ let BuildServerBuildFormsController = (_dec = (0, _Methods.httpGet)(/^\/public\/
|
|
|
148
118
|
|
|
149
119
|
}, (_applyDecoratedDescriptor(_class.prototype, "getFormScript", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "getFormScript"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getFormStyle", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "getFormStyle"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getFormImages", [_dec3], Object.getOwnPropertyDescriptor(_class.prototype, "getFormImages"), _class.prototype)), _class));
|
|
150
120
|
exports.BuildServerBuildFormsController = BuildServerBuildFormsController;
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIiLCJodHRwUmV0dXJuIiwiU3RyZWFtV2l0aE1pbWUiLCJodHRwVHlwZSIsIlN0cmluZyIsIlN0cmVhbSIsIlNpbmdsZXRvbkNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImZhcm1EaXJlY3RvcnkiLCJyZXNvdXJjZXNEaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiYnVpbGRPbkRlbWFuZEZvcm1HbG9icyIsInVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMiLCJlbmdpbmVEaXJlY3RvcnkiLCJidWlsZERlYnVnT25seSIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwiZmFybURpcmVjdG9yeVBhdGgiLCJuZXh0RnJlZVBvcnQiLCJkZXZTZXJ2ZXJzIiwiRmFybURpcmVjdG9yeSIsIlJlc291cmNlc0RpcmVjdG9yeSIsIkZvcm1HbG9icyIsImdldEZvcm1TY3JpcHQiLCJmaWxlTmFtZSIsImZpbGVOYW1lV2l0aG91dEV4dCIsImdmdiIsImVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkIiwiaXNNYXRjaCIsImJ1aWxkRm9ybURldlNlcnZlciIsImdldE9yQ3JlYXRlQnVpbGRGb3JtRGV2U2VydmVyIiwiU3RyZWFtUmVzdWx0IiwiZ2V0RmlsZUFzU3RyZWFtIiwiZ2V0U2NyaXB0Q29udGVudEFzU3RyZWFtIiwiZ2V0Rm9ybVN0eWxlIiwidGhlbWUiLCJyZXBsYWNlIiwiZ2V0U3R5bGVDb250ZW50QXNTdHJlYW0iLCJnZXRGb3JtSW1hZ2VzIiwiZ2V0SW1hZ2VDb250ZW50QXNTdHJlYW0iLCJtaW1lIiwibG9va3VwIiwiZSIsImRldlNlcnZlciIsIk9iamVjdCIsInZhbHVlcyIsInVuZGVmaW5lZCIsImlnbm9yZUVycm9yIiwiTm90Rm91bmRXZWJFcnJvciIsImdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMiLCJyZXN1bHQiLCJmYXJtRm9ybUpzb25zIiwiZ2V0QWxsRm9ybUpzb25GaWxlcyIsImZhcm1Gb3JtSnNvbiIsImZvcm1Kc29uUGF0aCIsImdldEZvcm1Kc29uUGF0aCIsImZvcm1Db25maWciLCJ1c2VTZXJ2ZXJTaWRlRkxhbmdOb3JtYWxpemF0aW9uIiwic2V0dGluZ3MiLCJwdXNoIiwiZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50IiwicmVzdWx0U3RyZWFtIiwiZ2V0R2VuZXJhdGVkRmlsZUFzU3RyZWFtIiwiZ2V0RkxhbmdOb3JtYWxpemVGaWxlIiwiQnVpbGRGb3JtRGV2U2VydmVyIiwic3RhcnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7SUFHYUEsK0IsV0FzQ1Isc0JBQ0csMERBREgsRUFFR0Msb0JBQVdDLGNBQVgsQ0FBMEIsd0JBQTFCLENBRkgsRUFHRywwQkFBYSxHQUFiLEVBQWtCQyxpQkFBU0MsTUFBM0IsQ0FISCxFQUlHLDBCQUFhLEdBQWIsRUFBa0JELGlCQUFTQyxNQUEzQixDQUpILEVBS0csMEJBQWEsR0FBYixFQUFrQkQsaUJBQVNDLE1BQTNCLENBTEgsQyxVQWlCQSxzQkFDRywwREFESCxFQUVHSCxvQkFBV0MsY0FBWCxDQUEwQixVQUExQixDQUZILEVBR0csMEJBQWEsR0FBYixFQUFrQkMsaUJBQVNDLE1BQTNCLENBSEgsRUFJRywwQkFBYSxHQUFiLEVBQWtCRCxpQkFBU0MsTUFBM0IsQ0FKSCxFQUtHLDBCQUFhLEdBQWIsRUFBa0JELGlCQUFTQyxNQUEzQixDQUxILEVBTUcsMEJBQWEsR0FBYixFQUFrQkQsaUJBQVNDLE1BQTNCLENBTkgsQyxVQXlCQSxzQkFBUSww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QyxlQVBHLEVBUVIsS0FBS0MsY0FSRyxFQVNSLEtBQUtDLG9CQVRHLENBQVo7QUFXQSxXQUFLRyxVQUFMLENBQWdCTyxHQUFoQixJQUF1QmlCLFNBQXZCO0FBQ0EsWUFBTUEsU0FBUyxDQUFDc0IsS0FBVixFQUFOO0FBQ0g7O0FBQ0QsV0FBT3RCLFNBQVA7QUFDSDs7QUFoSmtILEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWltZSBmcm9tIFwibWltZS10eXBlc1wiO1xuXG5pbXBvcnQgeyByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IGh0dHBHZXQgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTWV0aG9kc1wiO1xuaW1wb3J0IHsgTm90Rm91bmRXZWJFcnJvciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9Ob3RGb3VuZFdlYkVycm9yXCI7XG5pbXBvcnQgeyBodHRwVHlwZSwgaHR0cFVybFBhcmFtIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1BhcmFtc1wiO1xuaW1wb3J0IHsgaHR0cFJldHVybiB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9SZXN1bHRzXCI7XG5pbXBvcnQgeyBTdHJlYW1SZXN1bHQgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0cy9TdHJlYW1SZXN1bHRIYW5kbGVyXCI7XG5pbXBvcnQgeyBTaW5nbGV0b25Db250cm9sbGVyIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9TaW5nbGV0b25Db250cm9sbGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5pbXBvcnQgeyBCdWlsZEZvcm1EZXZTZXJ2ZXIgfSBmcm9tIFwiLi9EZXZTZXJ2ZXJzL0J1aWxkRm9ybURldlNlcnZlclwiO1xuaW1wb3J0IHsgRmFybURpcmVjdG9yeSB9IGZyb20gXCIuL0RpcmVjdG9yaWVzL0Zhcm1EaXJlY3RvcnlcIjtcbmltcG9ydCB7IFJlc291cmNlc0RpcmVjdG9yeSB9IGZyb20gXCIuL0RpcmVjdG9yaWVzL1Jlc291cmNlc0RpcmVjdG9yeVwiO1xuaW1wb3J0IHsgSUZMYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlciB9IGZyb20gXCIuL0lGTGFuZ05vcm1hbGl6YXRpb25Tb3VyY2VzUHJvdmlkZXJcIjtcblxuZXhwb3J0IGNsYXNzIEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIgZXh0ZW5kcyBTaW5nbGV0b25Db250cm9sbGVyIGltcGxlbWVudHMgSUZMYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBGYXJtRGlyZWN0b3J5O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICBwcml2YXRlIG5leHRGcmVlUG9ydCA9IDEyMDAxO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGV2U2VydmVyczogeyBbZ2Z2OiBzdHJpbmddOiB1bmRlZmluZWQgfCBCdWlsZEZvcm1EZXZTZXJ2ZXIgfSA9IHt9O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZXNEaXJlY3Rvcnk6IFJlc291cmNlc0RpcmVjdG9yeTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1aWxkT25EZW1hbmRGb3JtR2xvYnM6IEZvcm1HbG9icztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXM6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmdpbmVEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNraXBDb2RlUmVmb3JtYXR0aW5nOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmcsXG4gICAgICAgIGJ1aWxkT25EZW1hbmRGb3JtR2xvYnM6IHN0cmluZ1tdLFxuICAgICAgICB1c2VHZW5lcmF0b3JGcm9tTG9jYWxTb3VyY2VzOiBib29sZWFuLFxuICAgICAgICBlbmdpbmVEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW4sXG4gICAgICAgIHNraXBDb2RlUmVmb3JtYXR0aW5nOiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2tpcENvZGVSZWZvcm1hdHRpbmcgPSBza2lwQ29kZVJlZm9ybWF0dGluZztcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gbmV3IEZhcm1EaXJlY3RvcnkoZmFybURpcmVjdG9yeSk7XG4gICAgICAgIHRoaXMuZmFybURpcmVjdG9yeVBhdGggPSBmYXJtRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLnJlc291cmNlc0RpcmVjdG9yeSA9IG5ldyBSZXNvdXJjZXNEaXJlY3RvcnkocmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICAgICAgdGhpcy5idWlsZE9uRGVtYW5kRm9ybUdsb2JzID0gbmV3IEZvcm1HbG9icyh0aGlzLmZhcm1EaXJlY3RvcnksIGJ1aWxkT25EZW1hbmRGb3JtR2xvYnMpO1xuICAgICAgICB0aGlzLmNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IGNhbmR5TW9kdWxlc0RpcmVjdG9yeTtcbiAgICAgICAgdGhpcy5obEZhcm1EaXJlY3RvcnlQYXRoID0gaGxGYXJtRGlyZWN0b3J5UGF0aDtcbiAgICAgICAgdGhpcy51c2VHZW5lcmF0b3JGcm9tTG9jYWxTb3VyY2VzID0gdXNlR2VuZXJhdG9yRnJvbUxvY2FsU291cmNlcztcbiAgICAgICAgdGhpcy5lbmdpbmVEaXJlY3RvcnkgPSBlbmdpbmVEaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMuYnVpbGREZWJ1Z09ubHkgPSBidWlsZERlYnVnT25seTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcbiAgICAgICAgL15cXC9wdWJsaWNcXC9zY3JpcHRzXFwvKCgoXFxkezYsN30pKC5bXFx3XFwtXSopPygubWluKT8pLmpzKSQvaSxcbiAgICAgICAgaHR0cFJldHVybi5TdHJlYW1XaXRoTWltZShcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIiksXG4gICAgICAgIGh0dHBVcmxQYXJhbShcIjBcIiwgaHR0cFR5cGUuU3RyaW5nKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwiMVwiLCBodHRwVHlwZS5TdHJpbmcpLFxuICAgICAgICBodHRwVXJsUGFyYW0oXCIyXCIsIGh0dHBUeXBlLlN0cmluZylcbiAgICApXG4gICAgcHVibGljIGFzeW5jIGdldEZvcm1TY3JpcHQoZmlsZU5hbWU6IHN0cmluZywgZmlsZU5hbWVXaXRob3V0RXh0OiBzdHJpbmcsIGdmdjogc3RyaW5nKTogUHJvbWlzZTxTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5idWlsZE9uRGVtYW5kRm9ybUdsb2JzLmVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkKCk7XG4gICAgICAgIGlmIChhd2FpdCB0aGlzLmJ1aWxkT25EZW1hbmRGb3JtR2xvYnMuaXNNYXRjaChnZnYpKSB7XG4gICAgICAgICAgICBjb25zdCBidWlsZEZvcm1EZXZTZXJ2ZXIgPSBhd2FpdCB0aGlzLmdldE9yQ3JlYXRlQnVpbGRGb3JtRGV2U2VydmVyKGdmdik7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChhd2FpdCBidWlsZEZvcm1EZXZTZXJ2ZXIuZ2V0RmlsZUFzU3RyZWFtKGAvcHVibGljL3NjcmlwdHMvJHtmaWxlTmFtZX1gKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdCh0aGlzLnJlc291cmNlc0RpcmVjdG9yeS5nZXRTY3JpcHRDb250ZW50QXNTdHJlYW0oZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBodHRwR2V0KFxuICAgICAgICAvXlxcL3B1YmxpY1xcL3N0eWxlc1xcLygoKFxcZHs2LDd9KSguW1xcd1xcLV0qKT8oLm1pbik/KS5jc3MpJC9pLFxuICAgICAgICBodHRwUmV0dXJuLlN0cmVhbVdpdGhNaW1lKFwidGV4dC9jc3NcIiksXG4gICAgICAgIGh0dHBVcmxQYXJhbShcIjBcIiwgaHR0cFR5cGUuU3RyaW5nKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwiMVwiLCBodHRwVHlwZS5TdHJpbmcpLFxuICAgICAgICBodHRwVXJsUGFyYW0oXCIyXCIsIGh0dHBUeXBlLlN0cmluZyksXG4gICAgICAgIGh0dHBVcmxQYXJhbShcIjNcIiwgaHR0cFR5cGUuU3RyaW5nKVxuICAgIClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybVN0eWxlKFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZVdpdGhvdXRFeHQ6IHN0cmluZyxcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIHRoZW1lOiB1bmRlZmluZWQgfCBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmJ1aWxkT25EZW1hbmRGb3JtR2xvYnMuZW5zdXJlRm9ybUdsb2JzUmVzb2x2ZWQoKTtcbiAgICAgICAgaWYgKGF3YWl0IHRoaXMuYnVpbGRPbkRlbWFuZEZvcm1HbG9icy5pc01hdGNoKGdmdikpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ1aWxkRm9ybURldlNlcnZlciA9IGF3YWl0IHRoaXMuZ2V0T3JDcmVhdGVCdWlsZEZvcm1EZXZTZXJ2ZXIoZ2Z2KTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KFxuICAgICAgICAgICAgICAgIGF3YWl0IGJ1aWxkRm9ybURldlNlcnZlci5nZXRGaWxlQXNTdHJlYW0oYC9wdWJsaWMvc3R5bGVzLyR7ZmlsZU5hbWUucmVwbGFjZSh0aGVtZSA/PyBcIlwiLCBcIlwiKX1gKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KHRoaXMucmVzb3VyY2VzRGlyZWN0b3J5LmdldFN0eWxlQ29udGVudEFzU3RyZWFtKGZpbGVOYW1lLnJlcGxhY2UodGhlbWUgPz8gXCJcIiwgXCJcIikpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3B1YmxpYy9pbWFnZXMvOmZpbGVuYW1lXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJmaWxlbmFtZVwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtSW1hZ2VzKGZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQodGhpcy5yZXNvdXJjZXNEaXJlY3RvcnkuZ2V0SW1hZ2VDb250ZW50QXNTdHJlYW0oZmlsZU5hbWUpLCBtaW1lLmxvb2t1cChmaWxlTmFtZSkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRldlNlcnZlciBvZiBPYmplY3QudmFsdWVzKHRoaXMuZGV2U2VydmVycykpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGV2U2VydmVyICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgZGV2U2VydmVyLmdldEZpbGVBc1N0cmVhbShgL3B1YmxpYy9pbWFnZXMvJHtmaWxlTmFtZX1gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1lLmxvb2t1cChmaWxlTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cnkgbmV4dCBzZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsTm9ybWFsaXphdGlvbkZpbGVOYW1lcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY29uc3QgZmFybUZvcm1Kc29ucyA9IGF3YWl0IHRoaXMuZmFybURpcmVjdG9yeS5nZXRBbGxGb3JtSnNvbkZpbGVzKCk7XG4gICAgICAgIGZvciAoY29uc3QgZmFybUZvcm1Kc29uIG9mIGZhcm1Gb3JtSnNvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHRoaXMuZmFybURpcmVjdG9yeS5nZXRGb3JtSnNvblBhdGgoZmFybUZvcm1Kc29uLmdmdik7XG4gICAgICAgICAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBnZXRMb2dnZXIoKSk7XG4gICAgICAgICAgICBjb25zdCB1c2VTZXJ2ZXJTaWRlRkxhbmdOb3JtYWxpemF0aW9uID0gZm9ybUNvbmZpZy5zZXR0aW5ncz8udXNlU2VydmVyU2lkZUZMYW5nTm9ybWFsaXphdGlvbiA/PyBmYWxzZTtcbiAgICAgICAgICAgIGlmICh1c2VTZXJ2ZXJTaWRlRkxhbmdOb3JtYWxpemF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goYCR7ZmFybUZvcm1Kc29uLmdmdn0ubm9ybWFsaXplYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdjogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5idWlsZE9uRGVtYW5kRm9ybUdsb2JzLmVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkKCk7XG4gICAgICAgIGlmIChhd2FpdCB0aGlzLmJ1aWxkT25EZW1hbmRGb3JtR2xvYnMuaXNNYXRjaChnZnYpKSB7XG4gICAgICAgICAgICBjb25zdCBidWlsZEZvcm1EZXZTZXJ2ZXIgPSBhd2FpdCB0aGlzLmdldE9yQ3JlYXRlQnVpbGRGb3JtRGV2U2VydmVyKGdmdik7XG4gICAgICAgICAgICBjb25zdCByZXN1bHRTdHJlYW0gPSBhd2FpdCBidWlsZEZvcm1EZXZTZXJ2ZXIuZ2V0R2VuZXJhdGVkRmlsZUFzU3RyZWFtKGBTZXJ2ZXJTaWRlLm5vcm1hbGl6ZWApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFN0cmVhbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlc0RpcmVjdG9yeS5nZXRGTGFuZ05vcm1hbGl6ZUZpbGUoZ2Z2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZ2V0T3JDcmVhdGVCdWlsZEZvcm1EZXZTZXJ2ZXIoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPEJ1aWxkRm9ybURldlNlcnZlcj4ge1xuICAgICAgICBsZXQgZGV2U2VydmVyID0gdGhpcy5kZXZTZXJ2ZXJzW2dmdl07XG4gICAgICAgIGlmIChkZXZTZXJ2ZXIgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkZXZTZXJ2ZXIgPSBuZXcgQnVpbGRGb3JtRGV2U2VydmVyKFxuICAgICAgICAgICAgICAgIHRoaXMubmV4dEZyZWVQb3J0KyssXG4gICAgICAgICAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICBnZnYsXG4gICAgICAgICAgICAgICAgdGhpcy5jYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgdGhpcy5obEZhcm1EaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgICAgIHRoaXMudXNlR2VuZXJhdG9yRnJvbUxvY2FsU291cmNlcyxcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRGVidWdPbmx5LFxuICAgICAgICAgICAgICAgIHRoaXMuc2tpcENvZGVSZWZvcm1hdHRpbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmRldlNlcnZlcnNbZ2Z2XSA9IGRldlNlcnZlcjtcbiAgICAgICAgICAgIGF3YWl0IGRldlNlcnZlci5zdGFydCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZXZTZXJ2ZXI7XG4gICAgfVxufVxuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIiLCJodHRwUmV0dXJuIiwiU3RyZWFtV2l0aE1pbWUiLCJodHRwVHlwZSIsIlN0cmluZyIsIlN0cmVhbSIsIlNpbmdsZXRvbkNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImZhcm1EaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwidXNlR2VuZXJhdG9yRnJvbUxvY2FsU291cmNlcyIsImVuZ2luZURpcmVjdG9yeSIsImJ1aWxkRGVidWdPbmx5IiwibmlnaHRseSIsImZhcm1EaXJlY3RvcnlQYXRoIiwibmV4dEZyZWVQb3J0IiwiZGV2U2VydmVycyIsIkZhcm1EaXJlY3RvcnkiLCJnZXRGb3JtU2NyaXB0IiwiZmlsZU5hbWUiLCJmaWxlTmFtZVdpdGhvdXRFeHQiLCJnZnYiLCJidWlsZEZvcm1EZXZTZXJ2ZXIiLCJnZXRPckNyZWF0ZUJ1aWxkRm9ybURldlNlcnZlciIsIlN0cmVhbVJlc3VsdCIsImdldEZpbGVBc1N0cmVhbSIsImdldEZvcm1TdHlsZSIsInRoZW1lIiwicmVwbGFjZSIsImdldEZvcm1JbWFnZXMiLCJkZXZTZXJ2ZXIiLCJPYmplY3QiLCJ2YWx1ZXMiLCJ1bmRlZmluZWQiLCJtaW1lIiwibG9va3VwIiwiaWdub3JlRXJyb3IiLCJOb3RGb3VuZFdlYkVycm9yIiwiZ2V0QWxsTm9ybWFsaXphdGlvbkZpbGVOYW1lcyIsInJlc3VsdCIsImZhcm1Gb3JtSnNvbnMiLCJnZXRBbGxGb3JtSnNvbkZpbGVzIiwiZmFybUZvcm1Kc29uIiwiZm9ybUpzb25QYXRoIiwiZ2V0Rm9ybUpzb25QYXRoIiwiZm9ybUNvbmZpZyIsInVzZVNlcnZlclNpZGVGTGFuZ05vcm1hbGl6YXRpb24iLCJzZXR0aW5ncyIsInB1c2giLCJnZXROb3JtYWxpemF0aW9uRmlsZUNvbnRlbnQiLCJyZXN1bHRTdHJlYW0iLCJnZXRHZW5lcmF0ZWRGaWxlQXNTdHJlYW0iLCJCdWlsZEZvcm1EZXZTZXJ2ZXIiLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7OztJQUdhQSwrQixXQWdDUixzQkFDRywwREFESCxFQUVHQyxvQkFBV0MsY0FBWCxDQUEwQix3QkFBMUIsQ0FGSCxFQUdHLDBCQUFhLEdBQWIsRUFBa0JDLGlCQUFTQyxNQUEzQixDQUhILEVBSUcsMEJBQWEsR0FBYixFQUFrQkQsaUJBQVNDLE1BQTNCLENBSkgsRUFLRywwQkFBYSxHQUFiLEVBQWtCRCxpQkFBU0MsTUFBM0IsQ0FMSCxDLFVBWUEsc0JBQ0csMERBREgsRUFFR0gsb0JBQVdDLGNBQVgsQ0FBMEIsVUFBMUIsQ0FGSCxFQUdHLDBCQUFhLEdBQWIsRUFBa0JDLGlCQUFTQyxNQUEzQixDQUhILEVBSUcsMEJBQWEsR0FBYixFQUFrQkQsaUJBQVNDLE1BQTNCLENBSkgsRUFLRywwQkFBYSxHQUFiLEVBQWtCRCxpQkFBU0MsTUFBM0IsQ0FMSCxFQU1HLDBCQUFhLEdBQWIsRUFBa0JELGlCQUFTQyxNQUEzQixDQU5ILEMsVUFvQkEsc0JBQVEsMEJBQVIsRUFBb0NILG9CQUFXSSxNQUEvQyxFQUF1RCwwQkFBYSxVQUFiLEVBQXlCRixpQkFBU0MsTUFBbEMsQ0FBdkQsQyxZQWhFRSxNQUFNSiwrQkFBTixTQUE4Q00sd0NBQTlDLENBQWdIO0FBWTVHQyxFQUFBQSxXQUFXLENBQ2RDLGFBRGMsRUFFZEMscUJBRmMsRUFHZEMsbUJBSGMsRUFJZEMsNEJBSmMsRUFLZEMsZUFMYyxFQU1kQyxjQU5jLEVBT2RDLE9BQWdCLEdBQUcsS0FQTCxFQVFoQjtBQUNFO0FBREYsU0FuQmVOLGFBbUJmO0FB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LENBQUNyQixHQUFJLFlBQWhDO0FBQ0g7QUFDSjs7QUFDRCxXQUFPa0IsTUFBUDtBQUNIOztBQUV1QyxRQUEzQlUsMkJBQTJCLENBQUM1QixHQUFELEVBQThDO0FBQ2xGLFVBQU1DLGtCQUFrQixHQUFHLE1BQU0sS0FBS0MsNkJBQUwsQ0FBbUNGLEdBQW5DLENBQWpDO0FBQ0EsVUFBTTZCLFlBQVksR0FBRyxNQUFNNUIsa0JBQWtCLENBQUM2Qix3QkFBbkIsQ0FBNkMsc0JBQTdDLENBQTNCO0FBQ0EsV0FBT0QsWUFBUDtBQUNIOztBQUUwQyxRQUE3QjNCLDZCQUE2QixDQUFDRixHQUFELEVBQTJDO0FBQ2xGLFFBQUlTLFNBQVMsR0FBRyxLQUFLZCxVQUFMLENBQWdCSyxHQUFoQixDQUFoQjs7QUFDQSxRQUFJUyxTQUFTLElBQUlHLFNBQWpCLEVBQTRCO0FBQ3hCSCxNQUFBQSxTQUFTLEdBQUcsSUFBSXNCLHNDQUFKLENBQ1IsS0FBS3JDLFlBQUwsRUFEUSxFQUVSLEtBQUtELGlCQUZHLEVBR1JPLEdBSFEsRUFJUixLQUFLYixxQkFKRyxFQUtSLEtBQUtDLG1CQUxHLEVBTVIsS0FBS0MsNEJBTkcsRUFPUixLQUFLQyxlQVBHLEVBUVIsS0FBS0MsY0FSRyxFQVNSLEtBVFEsRUFVUixLQUFLQyxPQVZHLENBQVo7QUFZQSxXQUFLRyxVQUFMLENBQWdCSyxHQUFoQixJQUF1QlMsU0FBdkI7QUFDQSxZQUFNQSxTQUFTLENBQUN1QixLQUFWLEVBQU47QUFDSDs7QUFDRCxXQUFPdkIsU0FBUDtBQUNIOztBQXhIa0gsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaW1lIGZyb20gXCJtaW1lLXR5cGVzXCI7XG5cbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBodHRwR2V0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL01ldGhvZHNcIjtcbmltcG9ydCB7IE5vdEZvdW5kV2ViRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTm90Rm91bmRXZWJFcnJvclwiO1xuaW1wb3J0IHsgaHR0cFR5cGUsIGh0dHBVcmxQYXJhbSB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9QYXJhbXNcIjtcbmltcG9ydCB7IGh0dHBSZXR1cm4gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0c1wiO1xuaW1wb3J0IHsgU3RyZWFtUmVzdWx0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHMvU3RyZWFtUmVzdWx0SGFuZGxlclwiO1xuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuaW1wb3J0IHsgQnVpbGRGb3JtRGV2U2VydmVyIH0gZnJvbSBcIi4vRGV2U2VydmVycy9CdWlsZEZvcm1EZXZTZXJ2ZXJcIjtcbmltcG9ydCB7IEZhcm1EaXJlY3RvcnkgfSBmcm9tIFwiLi9EaXJlY3Rvcmllcy9GYXJtRGlyZWN0b3J5XCI7XG5pbXBvcnQgeyBJRkxhbmdOb3JtYWxpemF0aW9uU291cmNlc1Byb3ZpZGVyIH0gZnJvbSBcIi4vSUZMYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlclwiO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBJRkxhbmdOb3JtYWxpemF0aW9uU291cmNlc1Byb3ZpZGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhcm1EaXJlY3Rvcnk6IEZhcm1EaXJlY3Rvcnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nO1xuICAgIHByaXZhdGUgbmV4dEZyZWVQb3J0ID0gMTIwMDE7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXZTZXJ2ZXJzOiB7IFtnZnY6IHN0cmluZ106IHVuZGVmaW5lZCB8IEJ1aWxkRm9ybURldlNlcnZlciB9ID0ge307XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXM6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmdpbmVEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5pZ2h0bHk6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWlsZERlYnVnT25seTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgaGxGYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nLFxuICAgICAgICB1c2VHZW5lcmF0b3JGcm9tTG9jYWxTb3VyY2VzOiBib29sZWFuLFxuICAgICAgICBlbmdpbmVEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW4sXG4gICAgICAgIG5pZ2h0bHk6IGJvb2xlYW4gPSBmYWxzZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm5pZ2h0bHkgPSBuaWdodGx5O1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBuZXcgRmFybURpcmVjdG9yeShmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5UGF0aCA9IGZhcm1EaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMuY2FuZHlNb2R1bGVzRGlyZWN0b3J5ID0gY2FuZHlNb2R1bGVzRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLmhsRmFybURpcmVjdG9yeVBhdGggPSBobEZhcm1EaXJlY3RvcnlQYXRoO1xuICAgICAgICB0aGlzLnVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMgPSB1c2VHZW5lcmF0b3JGcm9tTG9jYWxTb3VyY2VzO1xuICAgICAgICB0aGlzLmVuZ2luZURpcmVjdG9yeSA9IGVuZ2luZURpcmVjdG9yeTtcbiAgICAgICAgdGhpcy5idWlsZERlYnVnT25seSA9IGJ1aWxkRGVidWdPbmx5O1xuICAgIH1cblxuICAgIEBodHRwR2V0KFxuICAgICAgICAvXlxcL3B1YmxpY1xcL3NjcmlwdHNcXC8oKChcXGR7Niw3fSkoLltcXHdcXC1dKik/KC5taW4pPykuanMpJC9pLFxuICAgICAgICBodHRwUmV0dXJuLlN0cmVhbVdpdGhNaW1lKFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwiMFwiLCBodHRwVHlwZS5TdHJpbmcpLFxuICAgICAgICBodHRwVXJsUGFyYW0oXCIxXCIsIGh0dHBUeXBlLlN0cmluZyksXG4gICAgICAgIGh0dHBVcmxQYXJhbShcIjJcIiwgaHR0cFR5cGUuU3RyaW5nKVxuICAgIClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybVNjcmlwdChmaWxlTmFtZTogc3RyaW5nLCBmaWxlTmFtZVdpdGhvdXRFeHQ6IHN0cmluZywgZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBjb25zdCBidWlsZEZvcm1EZXZTZXJ2ZXIgPSBhd2FpdCB0aGlzLmdldE9yQ3JlYXRlQnVpbGRGb3JtRGV2U2VydmVyKGdmdik7XG4gICAgICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KGF3YWl0IGJ1aWxkRm9ybURldlNlcnZlci5nZXRGaWxlQXNTdHJlYW0oYC9wdWJsaWMvc2NyaXB0cy8ke2ZpbGVOYW1lfWApKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcbiAgICAgICAgL15cXC9wdWJsaWNcXC9zdHlsZXNcXC8oKChcXGR7Niw3fSkoLltcXHdcXC1dKik/KC5taW4pPykuY3NzKSQvaSxcbiAgICAgICAgaHR0cFJldHVybi5TdHJlYW1XaXRoTWltZShcInRleHQvY3NzXCIpLFxuICAgICAgICBodHRwVXJsUGFyYW0oXCIwXCIsIGh0dHBUeXBlLlN0cmluZyksXG4gICAgICAgIGh0dHBVcmxQYXJhbShcIjFcIiwgaHR0cFR5cGUuU3RyaW5nKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwiMlwiLCBodHRwVHlwZS5TdHJpbmcpLFxuICAgICAgICBodHRwVXJsUGFyYW0oXCIzXCIsIGh0dHBUeXBlLlN0cmluZylcbiAgICApXG4gICAgcHVibGljIGFzeW5jIGdldEZvcm1TdHlsZShcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWVXaXRob3V0RXh0OiBzdHJpbmcsXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICB0aGVtZTogdW5kZWZpbmVkIHwgc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgY29uc3QgYnVpbGRGb3JtRGV2U2VydmVyID0gYXdhaXQgdGhpcy5nZXRPckNyZWF0ZUJ1aWxkRm9ybURldlNlcnZlcihnZnYpO1xuICAgICAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChcbiAgICAgICAgICAgIGF3YWl0IGJ1aWxkRm9ybURldlNlcnZlci5nZXRGaWxlQXNTdHJlYW0oYC9wdWJsaWMvc3R5bGVzLyR7ZmlsZU5hbWUucmVwbGFjZSh0aGVtZSA/PyBcIlwiLCBcIlwiKX1gKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3B1YmxpYy9pbWFnZXMvOmZpbGVuYW1lXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJmaWxlbmFtZVwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtSW1hZ2VzKGZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGRldlNlcnZlciBvZiBPYmplY3QudmFsdWVzKHRoaXMuZGV2U2VydmVycykpIHtcbiAgICAgICAgICAgIGlmIChkZXZTZXJ2ZXIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBkZXZTZXJ2ZXIuZ2V0RmlsZUFzU3RyZWFtKGAvcHVibGljL2ltYWdlcy8ke2ZpbGVOYW1lfWApLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWltZS5sb29rdXAoZmlsZU5hbWUpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoaWdub3JlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IG5leHQgc2VydmVyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNvbnN0IGZhcm1Gb3JtSnNvbnMgPSBhd2FpdCB0aGlzLmZhcm1EaXJlY3RvcnkuZ2V0QWxsRm9ybUpzb25GaWxlcygpO1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1Gb3JtSnNvbiBvZiBmYXJtRm9ybUpzb25zKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtSnNvblBhdGggPSB0aGlzLmZhcm1EaXJlY3RvcnkuZ2V0Rm9ybUpzb25QYXRoKGZhcm1Gb3JtSnNvbi5nZnYpO1xuICAgICAgICAgICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2V0TG9nZ2VyKCkpO1xuICAgICAgICAgICAgY29uc3QgdXNlU2VydmVyU2lkZUZMYW5nTm9ybWFsaXphdGlvbiA9IGZvcm1Db25maWcuc2V0dGluZ3M/LnVzZVNlcnZlclNpZGVGTGFuZ05vcm1hbGl6YXRpb24gPz8gZmFsc2U7XG4gICAgICAgICAgICBpZiAodXNlU2VydmVyU2lkZUZMYW5nTm9ybWFsaXphdGlvbikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGAke2Zhcm1Gb3JtSnNvbi5nZnZ9Lm5vcm1hbGl6ZWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldE5vcm1hbGl6YXRpb25GaWxlQ29udGVudChnZnY6IHN0cmluZyk6IFByb21pc2U8Tm9kZUpTLlJlYWRhYmxlU3RyZWFtPiB7XG4gICAgICAgIGNvbnN0IGJ1aWxkRm9ybURldlNlcnZlciA9IGF3YWl0IHRoaXMuZ2V0T3JDcmVhdGVCdWlsZEZvcm1EZXZTZXJ2ZXIoZ2Z2KTtcbiAgICAgICAgY29uc3QgcmVzdWx0U3RyZWFtID0gYXdhaXQgYnVpbGRGb3JtRGV2U2VydmVyLmdldEdlbmVyYXRlZEZpbGVBc1N0cmVhbShgU2VydmVyU2lkZS5ub3JtYWxpemVgKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFN0cmVhbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldE9yQ3JlYXRlQnVpbGRGb3JtRGV2U2VydmVyKGdmdjogc3RyaW5nKTogUHJvbWlzZTxCdWlsZEZvcm1EZXZTZXJ2ZXI+IHtcbiAgICAgICAgbGV0IGRldlNlcnZlciA9IHRoaXMuZGV2U2VydmVyc1tnZnZdO1xuICAgICAgICBpZiAoZGV2U2VydmVyID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZGV2U2VydmVyID0gbmV3IEJ1aWxkRm9ybURldlNlcnZlcihcbiAgICAgICAgICAgICAgICB0aGlzLm5leHRGcmVlUG9ydCsrLFxuICAgICAgICAgICAgICAgIHRoaXMuZmFybURpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgZ2Z2LFxuICAgICAgICAgICAgICAgIHRoaXMuY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgIHRoaXMuaGxGYXJtRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMsXG4gICAgICAgICAgICAgICAgdGhpcy5lbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZERlYnVnT25seSxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICB0aGlzLm5pZ2h0bHlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmRldlNlcnZlcnNbZ2Z2XSA9IGRldlNlcnZlcjtcbiAgICAgICAgICAgIGF3YWl0IGRldlNlcnZlci5zdGFydCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZXZTZXJ2ZXI7XG4gICAgfVxufVxuIl19
|
|
@@ -5,16 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.BuildServerFormInfoController = void 0;
|
|
7
7
|
|
|
8
|
-
var _fsExtra = require("fs-extra");
|
|
9
|
-
|
|
10
8
|
var _EngineVersionUtils = require("../../../BuildTasks/EngineVersionUtils");
|
|
11
9
|
|
|
12
10
|
var _PublishedVersionUtils = require("../../../BuildTasks/PublishedVersionUtils");
|
|
13
11
|
|
|
14
12
|
var _ResolveFormInfo = require("../../../BuildTasks/ResolveFormInfo");
|
|
15
13
|
|
|
16
|
-
var _FormGlobsUtils = require("../../../Commons/FormGlobsUtils");
|
|
17
|
-
|
|
18
14
|
var _Methods = require("../../../Commons/HttpServer/AttributeRouting/Methods");
|
|
19
15
|
|
|
20
16
|
var _Params = require("../../../Commons/HttpServer/AttributeRouting/Params");
|
|
@@ -25,71 +21,59 @@ var _SingletonController = require("../../../Commons/HttpServer/ExpressWrapper/S
|
|
|
25
21
|
|
|
26
22
|
var _FarmDirectory = require("./Directories/FarmDirectory");
|
|
27
23
|
|
|
28
|
-
var _ResourcesDirectory = require("./Directories/ResourcesDirectory");
|
|
29
|
-
|
|
30
24
|
var _dec, _dec2, _class;
|
|
31
25
|
|
|
32
26
|
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
33
27
|
|
|
34
28
|
let BuildServerFormInfoController = (_dec = (0, _Methods.httpGet)("/metas", _Results.httpReturn.PlainText), _dec2 = (0, _Methods.httpGet)("/metas/:gfv.metas.json", _Results.httpReturn.PlainText, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), (_class = class BuildServerFormInfoController extends _SingletonController.SingletonController {
|
|
35
|
-
constructor(farmDirectory,
|
|
29
|
+
constructor(farmDirectory, useEngineFromLocalSources, nightly) {
|
|
36
30
|
super();
|
|
37
31
|
this.farmDirectory = void 0;
|
|
38
|
-
this.
|
|
39
|
-
this.buildOnDemandFormGlobs = void 0;
|
|
32
|
+
this.nightly = void 0;
|
|
40
33
|
this.useEngineFromLocalSources = void 0;
|
|
34
|
+
this.nightly = nightly;
|
|
41
35
|
this.farmDirectory = new _FarmDirectory.FarmDirectory(farmDirectory);
|
|
42
|
-
this.resourcesDirectory = new _ResourcesDirectory.ResourcesDirectory(resourcesDirectory);
|
|
43
|
-
this.buildOnDemandFormGlobs = new _FormGlobsUtils.FormGlobs(this.farmDirectory, buildOnDemandFormGlobs);
|
|
44
36
|
this.useEngineFromLocalSources = useEngineFromLocalSources;
|
|
45
37
|
}
|
|
46
38
|
|
|
47
39
|
async getAllFormMetas() {
|
|
48
|
-
await this.buildOnDemandFormGlobs.updateAll();
|
|
49
40
|
const farmFormJsons = await this.farmDirectory.getAllFormJsonFiles();
|
|
50
|
-
|
|
51
|
-
return [...(await AsyncIterator.from(farmFormJsons).filter(async x => this.isBuildOnDemand(x.gfv)).map(x => `${x.gfv}.metas.json`).toArray()), ...(await AsyncIterator.from(resourcesMetas).filter(async x => !(await this.isBuildOnDemand(x.gfv))).map(x => `${x.gfv}.metas.json`).toArray())].join("\n");
|
|
41
|
+
return [...(await AsyncIterator.from(farmFormJsons).map(x => `${x.gfv}.metas.json`).toArray())].join("\n");
|
|
52
42
|
}
|
|
53
43
|
|
|
54
44
|
async getFormMeta(gfv) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (this.useEngineFromLocalSources) {
|
|
59
|
-
const localEngineMetaContent = {
|
|
60
|
-
engineName: "local",
|
|
61
|
-
resourcesHash: "local-hash"
|
|
62
|
-
};
|
|
63
|
-
return JSON.stringify(localEngineMetaContent, undefined, " ");
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const formJsonFile = this.farmDirectory.getFormJsonPath(gfv);
|
|
67
|
-
const formInfo = await (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, gfv, undefined);
|
|
68
|
-
|
|
69
|
-
if (formInfo.engineVersion == undefined) {
|
|
70
|
-
throw new Error("!!!!");
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const engineSources = await (0, _PublishedVersionUtils.resolveEngineVersion)(formInfo.engineVersion);
|
|
74
|
-
const formMetaContent = {
|
|
75
|
-
engineName: engineSources.type === "LocalEngineSources" ? "local" : _EngineVersionUtils.EngineVersionUtils.engineVersionToName(engineSources.version),
|
|
45
|
+
if (this.useEngineFromLocalSources) {
|
|
46
|
+
const localEngineMetaContent = {
|
|
47
|
+
engineName: "local",
|
|
76
48
|
resourcesHash: "local-hash"
|
|
77
49
|
};
|
|
50
|
+
return JSON.stringify(localEngineMetaContent, undefined, " ");
|
|
51
|
+
}
|
|
78
52
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
53
|
+
const formJsonFile = this.farmDirectory.getFormJsonPath(gfv);
|
|
54
|
+
const formInfo = await (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, gfv, undefined);
|
|
55
|
+
const engineVersion = this.nightly ? {
|
|
56
|
+
type: "pre",
|
|
57
|
+
preId: "nightly"
|
|
58
|
+
} : formInfo.engineVersion;
|
|
82
59
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
60
|
+
if (engineVersion == undefined) {
|
|
61
|
+
throw new Error("!!!!");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const engineSources = await (0, _PublishedVersionUtils.resolveEngineVersion)(engineVersion);
|
|
65
|
+
const formMetaContent = {
|
|
66
|
+
engineName: engineSources.type === "LocalEngineSources" ? "local" : _EngineVersionUtils.EngineVersionUtils.engineVersionToName(engineSources.version),
|
|
67
|
+
resourcesHash: "local-hash"
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
if (formInfo.themes != undefined) {
|
|
71
|
+
formMetaContent.themes = formInfo.themes;
|
|
86
72
|
}
|
|
87
|
-
}
|
|
88
73
|
|
|
89
|
-
|
|
90
|
-
return this.buildOnDemandFormGlobs.isMatch(gfv);
|
|
74
|
+
return JSON.stringify(formMetaContent, undefined, " ");
|
|
91
75
|
}
|
|
92
76
|
|
|
93
77
|
}, (_applyDecoratedDescriptor(_class.prototype, "getAllFormMetas", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "getAllFormMetas"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getFormMeta", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "getFormMeta"), _class.prototype)), _class));
|
|
94
78
|
exports.BuildServerFormInfoController = BuildServerFormInfoController;
|
|
95
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlci50cyJdLCJuYW1lcyI6WyJCdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlciIsImh0dHBSZXR1cm4iLCJQbGFpblRleHQiLCJodHRwVHlwZSIsIlN0cmluZyIsIlNpbmdsZXRvbkNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImZhcm1EaXJlY3RvcnkiLCJyZXNvdXJjZXNEaXJlY3RvcnkiLCJidWlsZE9uRGVtYW5kRm9ybUdsb2JzIiwidXNlRW5naW5lRnJvbUxvY2FsU291cmNlcyIsIkZhcm1EaXJlY3RvcnkiLCJSZXNvdXJjZXNEaXJlY3RvcnkiLCJGb3JtR2xvYnMiLCJnZXRBbGxGb3JtTWV0YXMiLCJ1cGRhdGVBbGwiLCJmYXJtRm9ybUpzb25zIiwiZ2V0QWxsRm9ybUpzb25GaWxlcyIsInJlc291cmNlc01ldGFzIiwiZ2V0QWxsTWV0YUZpbGVzIiwiQXN5bmNJdGVyYXRvciIsImZyb20iLCJmaWx0ZXIiLCJ4IiwiaXNCdWlsZE9uRGVtYW5kIiwiZ2Z2IiwibWFwIiwidG9BcnJheSIsImpvaW4iLCJnZXRGb3JtTWV0YSIsInVwZGF0ZUZvciIsImxvY2FsRW5naW5lTWV0YUNvbnRlbnQiLCJlbmdpbmVOYW1lIiwicmVzb3VyY2VzSGFzaCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJmb3JtSnNvbkZpbGUiLCJnZXRGb3JtSnNvblBhdGgiLCJmb3JtSW5mbyIsImVuZ2luZVZlcnNpb24iLCJFcnJvciIsImVuZ2luZVNvdXJjZXMiLCJmb3JtTWV0YUNvbnRlbnQiLCJ0eXBlIiwiRW5naW5lVmVyc2lvblV0aWxzIiwiZW5naW5lVmVyc2lvblRvTmFtZSIsInZlcnNpb24iLCJ0aGVtZXMiLCJnZXRGb3JtTWV0YXNQYXRoIiwiaXNNYXRjaCJdLCJtYXBwaW5ncyI6Ijs7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LEdBQUcsTUFBTSxpREFBcUJILFFBQVEsQ0FBQ0MsYUFBOUIsQ0FBNUI7QUFDQSxZQUFNRyxlQUFnQyxHQUFHO0FBQ3JDWCxRQUFBQSxVQUFVLEVBQ05VLGFBQWEsQ0FBQ0UsSUFBZCxLQUF1QixvQkFBdkIsR0FDTSxPQUROLEdBRU1DLHVDQUFtQkMsbUJBQW5CLENBQXVDSixhQUFhLENBQUNLLE9BQXJELENBSjJCO0FBS3JDZCxRQUFBQSxhQUFhLEVBQUU7QUFMc0IsT0FBekM7O0FBT0EsVUFBSU0sUUFBUSxDQUFDUyxNQUFULElBQW1CWixTQUF2QixFQUFrQztBQUM5Qk8sUUFBQUEsZUFBZSxDQUFDSyxNQUFoQixHQUF5QlQsUUFBUSxDQUFDUyxNQUFsQztBQUNIOztBQUNELGFBQU9kLElBQUksQ0FBQ0MsU0FBTCxDQUFlUSxlQUFmLEVBQWdDUCxTQUFoQyxFQUEyQyxJQUEzQyxDQUFQO0FBQ0gsS0F6QkQsTUF5Qk87QUFDSCxhQUFPLHVCQUFTLEtBQUs1QixrQkFBTCxDQUF3QnlDLGdCQUF4QixDQUF5Q3hCLEdBQXpDLENBQVQsRUFBd0QsT0FBeEQsQ0FBUDtBQUNIO0FBQ0o7O0FBRU9ELEVBQUFBLGVBQWUsQ0FBQ0MsR0FBRCxFQUFnQztBQUNuRCxXQUFPLEtBQUtoQixzQkFBTCxDQUE0QnlDLE9BQTVCLENBQW9DekIsR0FBcEMsQ0FBUDtBQUNIOztBQXZFa0UsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5cbmltcG9ydCB7IEVuZ2luZVZlcnNpb25VdGlscyB9IGZyb20gXCIuLi8uLi8uLi9CdWlsZFRhc2tzL0VuZ2luZVZlcnNpb25VdGlsc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZ2luZVZlcnNpb24gfSBmcm9tIFwiLi4vLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgRm9ybU1ldGFDb250ZW50IH0gZnJvbSBcIi4uLy4uLy4uL0J1aWxkVGFza3MvV3JpdGVGb3JtTWV0YVwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IGh0dHBHZXQgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTWV0aG9kc1wiO1xuaW1wb3J0IHsgaHR0cFR5cGUsIGh0dHBVcmxQYXJhbSB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9QYXJhbXNcIjtcbmltcG9ydCB7IGh0dHBSZXR1cm4gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0c1wiO1xuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBGYXJtRGlyZWN0b3J5IH0gZnJvbSBcIi4vRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeVwiO1xuaW1wb3J0IHsgUmVzb3VyY2VzRGlyZWN0b3J5IH0gZnJvbSBcIi4vRGlyZWN0b3JpZXMvUmVzb3VyY2VzRGlyZWN0b3J5XCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogRmFybURpcmVjdG9yeTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlc0RpcmVjdG9yeTogUmVzb3VyY2VzRGlyZWN0b3J5O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVpbGRPbkRlbWFuZEZvcm1HbG9iczogRm9ybUdsb2JzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlRW5naW5lRnJvbUxvY2FsU291cmNlczogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgYnVpbGRPbkRlbWFuZEZvcm1HbG9iczogc3RyaW5nW10sXG4gICAgICAgIHVzZUVuZ2luZUZyb21Mb2NhbFNvdXJjZXM6IGJvb2xlYW5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gbmV3IEZhcm1EaXJlY3RvcnkoZmFybURpcmVjdG9yeSk7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzRGlyZWN0b3J5ID0gbmV3IFJlc291cmNlc0RpcmVjdG9yeShyZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgICAgICB0aGlzLmJ1aWxkT25EZW1hbmRGb3JtR2xvYnMgPSBuZXcgRm9ybUdsb2JzKHRoaXMuZmFybURpcmVjdG9yeSwgYnVpbGRPbkRlbWFuZEZvcm1HbG9icyk7XG4gICAgICAgIHRoaXMudXNlRW5naW5lRnJvbUxvY2FsU291cmNlcyA9IHVzZUVuZ2luZUZyb21Mb2NhbFNvdXJjZXM7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbWV0YXNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbEZvcm1NZXRhcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBhd2FpdCB0aGlzLmJ1aWxkT25EZW1hbmRGb3JtR2xvYnMudXBkYXRlQWxsKCk7XG4gICAgICAgIGNvbnN0IGZhcm1Gb3JtSnNvbnMgPSBhd2FpdCB0aGlzLmZhcm1EaXJlY3RvcnkuZ2V0QWxsRm9ybUpzb25GaWxlcygpO1xuICAgICAgICBjb25zdCByZXNvdXJjZXNNZXRhcyA9IGF3YWl0IHRoaXMucmVzb3VyY2VzRGlyZWN0b3J5LmdldEFsbE1ldGFGaWxlcygpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uKGF3YWl0IEFzeW5jSXRlcmF0b3IuZnJvbShmYXJtRm9ybUpzb25zKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoYXN5bmMgeCA9PiB0aGlzLmlzQnVpbGRPbkRlbWFuZCh4LmdmdikpXG4gICAgICAgICAgICAgICAgLm1hcCh4ID0+IGAke3guZ2Z2fS5tZXRhcy5qc29uYClcbiAgICAgICAgICAgICAgICAudG9BcnJheSgpKSxcbiAgICAgICAgICAgIC4uLihhd2FpdCBBc3luY0l0ZXJhdG9yLmZyb20ocmVzb3VyY2VzTWV0YXMpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihhc3luYyB4ID0+ICEoYXdhaXQgdGhpcy5pc0J1aWxkT25EZW1hbmQoeC5nZnYpKSlcbiAgICAgICAgICAgICAgICAubWFwKHggPT4gYCR7eC5nZnZ9Lm1ldGFzLmpzb25gKVxuICAgICAgICAgICAgICAgIC50b0FycmF5KCkpLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbWV0YXMvOmdmdi5tZXRhcy5qc29uXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0LCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybU1ldGEoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBhd2FpdCB0aGlzLmJ1aWxkT25EZW1hbmRGb3JtR2xvYnMudXBkYXRlRm9yKGdmdik7XG4gICAgICAgIGlmIChhd2FpdCB0aGlzLmlzQnVpbGRPbkRlbWFuZChnZnYpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy51c2VFbmdpbmVGcm9tTG9jYWxTb3VyY2VzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxFbmdpbmVNZXRhQ29udGVudDogRm9ybU1ldGFDb250ZW50ID0ge1xuICAgICAgICAgICAgICAgICAgICBlbmdpbmVOYW1lOiBcImxvY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0hhc2g6IFwibG9jYWwtaGFzaFwiLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGxvY2FsRW5naW5lTWV0YUNvbnRlbnQsIHVuZGVmaW5lZCwgXCIgIFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZvcm1Kc29uRmlsZSA9IHRoaXMuZmFybURpcmVjdG9yeS5nZXRGb3JtSnNvblBhdGgoZ2Z2KTtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1JbmZvID0gYXdhaXQgcmVzb2x2ZUZvcm1JbmZvKGZvcm1Kc29uRmlsZSwgZ2Z2LCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgaWYgKGZvcm1JbmZvLmVuZ2luZVZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiISEhIVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZVNvdXJjZXMgPSBhd2FpdCByZXNvbHZlRW5naW5lVmVyc2lvbihmb3JtSW5mby5lbmdpbmVWZXJzaW9uKTtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1NZXRhQ29udGVudDogRm9ybU1ldGFDb250ZW50ID0ge1xuICAgICAgICAgICAgICAgIGVuZ2luZU5hbWU6XG4gICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZXMudHlwZSA9PT0gXCJMb2NhbEVuZ2luZVNvdXJjZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRW5naW5lVmVyc2lvblV0aWxzLmVuZ2luZVZlcnNpb25Ub05hbWUoZW5naW5lU291cmNlcy52ZXJzaW9uKSxcbiAgICAgICAgICAgICAgICByZXNvdXJjZXNIYXNoOiBcImxvY2FsLWhhc2hcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoZm9ybUluZm8udGhlbWVzICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGZvcm1NZXRhQ29udGVudC50aGVtZXMgPSBmb3JtSW5mby50aGVtZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZm9ybU1ldGFDb250ZW50LCB1bmRlZmluZWQsIFwiICBcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmVhZEZpbGUodGhpcy5yZXNvdXJjZXNEaXJlY3RvcnkuZ2V0Rm9ybU1ldGFzUGF0aChnZnYpLCBcInV0Zi04XCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0J1aWxkT25EZW1hbmQoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRPbkRlbWFuZEZvcm1HbG9icy5pc01hdGNoKGdmdik7XG4gICAgfVxufVxuIl19
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlci50cyJdLCJuYW1lcyI6WyJCdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlciIsImh0dHBSZXR1cm4iLCJQbGFpblRleHQiLCJodHRwVHlwZSIsIlN0cmluZyIsIlNpbmdsZXRvbkNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImZhcm1EaXJlY3RvcnkiLCJ1c2VFbmdpbmVGcm9tTG9jYWxTb3VyY2VzIiwibmlnaHRseSIsIkZhcm1EaXJlY3RvcnkiLCJnZXRBbGxGb3JtTWV0YXMiLCJmYXJtRm9ybUpzb25zIiwiZ2V0QWxsRm9ybUpzb25GaWxlcyIsIkFzeW5jSXRlcmF0b3IiLCJmcm9tIiwibWFwIiwieCIsImdmdiIsInRvQXJyYXkiLCJqb2luIiwiZ2V0Rm9ybU1ldGEiLCJsb2NhbEVuZ2luZU1ldGFDb250ZW50IiwiZW5naW5lTmFtZSIsInJlc291cmNlc0hhc2giLCJKU09OIiwic3RyaW5naWZ5IiwidW5kZWZpbmVkIiwiZm9ybUpzb25GaWxlIiwiZ2V0Rm9ybUpzb25QYXRoIiwiZm9ybUluZm8iLCJlbmdpbmVWZXJzaW9uIiwidHlwZSIsInByZUlkIiwiRXJyb3IiLCJlbmdpbmVTb3VyY2VzIiwiZm9ybU1ldGFDb250ZW50IiwiRW5naW5lVmVyc2lvblV0aWxzIiwiZW5naW5lVmVyc2lvblRvTmFtZSIsInZlcnNpb24iLCJ0aGVtZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7Ozs7O0lBRWFBLDZCLFdBWVIsc0JBQVEsUUFBUixFQUFrQkMsb0JBQVdDLFNBQTdCLEMsVUFVQSxzQkFBUSx3QkFBUixFQUFrQ0Qsb0JBQVdDLFNBQTdDLEVBQXdELDBCQUFhLEtBQWIsRUFBb0JDLGlCQUFTQyxNQUE3QixDQUF4RCxDLFlBdEJFLE1BQU1KLDZCQUFOLFNBQTRDSyx3Q0FBNUMsQ0FBZ0U7QUFLNURDLEVBQUFBLFdBQVcsQ0FBQ0MsYUFBRCxFQUF3QkMseUJBQXhCLEVBQTREQyxPQUE1RCxFQUE4RTtBQUM1RjtBQUQ0RixTQUovRUYsYUFJK0U7QUFBQSxTQUgvRUUsT0FHK0U7QUFBQSxTQUYvRUQseUJBRStFO0FBRTVGLFNBQUtDLE9BQUwsR0FBZUEsT0FBZjtBQUNBLFNBQUtGLGFBQUwsR0FBcUIsSUFBSUcsNEJBQUosQ0FBa0JILGFBQWxCLENBQXJCO0FBQ0EsU0FBS0MseUJBQUwsR0FBaUNBLHlCQUFqQztBQUNIOztBQUcyQixRQUFmRyxlQUFlLEdBQW9CO0FBQzVDLFVBQU1DLGFBQWEsR0FBRyxNQUFNLEtBQUtMLGFBQUwsQ0FBbUJNLG1CQUFuQixFQUE1QjtBQUNBLFdBQU8sQ0FDSCxJQUFJLE1BQU1DLGFBQWEsQ0FBQ0MsSUFBZCxDQUFtQkgsYUFBbkIsRUFDTEksR0FESyxDQUNEQyxDQUFDLElBQUssR0FBRUEsQ0FBQyxDQUFDQyxHQUFJLGFBRGIsRUFFTEMsT0FGSyxFQUFWLENBREcsRUFJTEMsSUFKSyxDQUlBLElBSkEsQ0FBUDtBQUtIOztBQUd1QixRQUFYQyxXQUFXLENBQUNILEdBQUQsRUFBK0I7QUFDbkQsUUFBSSxLQUFLVix5QkFBVCxFQUFvQztBQUNoQyxZQUFNYyxzQkFBdUMsR0FBRztBQUM1Q0MsUUFBQUEsVUFBVSxFQUFFLE9BRGdDO0FBRTVDQyxRQUFBQSxhQUFhLEVBQUU7QUFGNkIsT0FBaEQ7QUFJQSxhQUFPQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUosc0JBQWYsRUFBdUNLLFNBQXZDLEVBQWtELElBQWxELENBQVA7QUFDSDs7QUFDRCxVQUFNQyxZQUFZLEdBQUcsS0FBS3JCLGFBQUwsQ0FBbUJzQixlQUFuQixDQUFtQ1gsR0FBbkMsQ0FBckI7QUFDQSxVQUFNWSxRQUFRLEdBQUcsTUFBTSxzQ0FBZ0JGLFlBQWhCLEVBQThCVixHQUE5QixFQUFtQ1MsU0FBbkMsQ0FBdkI7QUFDQSxVQUFNSSxhQUEyQyxHQUFHLEtBQUt0QixPQUFMLEdBQzlDO0FBQUV1QixNQUFBQSxJQUFJLEVBQUUsS0FBUjtBQUFlQyxNQUFBQSxLQUFLLEVBQUU7QUFBdEIsS0FEOEMsR0FFOUNILFFBQVEsQ0FBQ0MsYUFGZjs7QUFHQSxRQUFJQSxhQUFhLElBQUlKLFNBQXJCLEVBQWdDO0FBQzVCLFlBQU0sSUFBSU8sS0FBSixDQUFVLE1BQVYsQ0FBTjtBQUNIOztBQUNELFVBQU1DLGFBQWEsR0FBRyxNQUFNLGlEQUFxQkosYUFBckIsQ0FBNUI7QUFDQSxVQUFNSyxlQUFnQyxHQUFHO0FBQ3JDYixNQUFBQSxVQUFVLEVBQ05ZLGFBQWEsQ0FBQ0gsSUFBZCxLQUF1QixvQkFBdkIsR0FDTSxPQUROLEdBRU1LLHVDQUFtQkMsbUJBQW5CLENBQXVDSCxhQUFhLENBQUNJLE9BQXJELENBSjJCO0FBS3JDZixNQUFBQSxhQUFhLEVBQUU7QUFMc0IsS0FBekM7O0FBT0EsUUFBSU0sUUFBUSxDQUFDVSxNQUFULElBQW1CYixTQUF2QixFQUFrQztBQUM5QlMsTUFBQUEsZUFBZSxDQUFDSSxNQUFoQixHQUF5QlYsUUFBUSxDQUFDVSxNQUFsQztBQUNIOztBQUNELFdBQU9mLElBQUksQ0FBQ0MsU0FBTCxDQUFlVSxlQUFmLEVBQWdDVCxTQUFoQyxFQUEyQyxJQUEzQyxDQUFQO0FBQ0g7O0FBbkRrRSxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5naW5lVmVyc2lvblV0aWxzIH0gZnJvbSBcIi4uLy4uLy4uL0J1aWxkVGFza3MvRW5naW5lVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5naW5lVmVyc2lvbiB9IGZyb20gXCIuLi8uLi8uLi9CdWlsZFRhc2tzL1B1Ymxpc2hlZFZlcnNpb25VdGlsc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUZvcm1JbmZvIH0gZnJvbSBcIi4uLy4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBGb3JtTWV0YUNvbnRlbnQgfSBmcm9tIFwiLi4vLi4vLi4vQnVpbGRUYXNrcy9Xcml0ZUZvcm1NZXRhXCI7XG5pbXBvcnQgeyBodHRwR2V0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL01ldGhvZHNcIjtcbmltcG9ydCB7IGh0dHBUeXBlLCBodHRwVXJsUGFyYW0gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUGFyYW1zXCI7XG5pbXBvcnQgeyBodHRwUmV0dXJuIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHNcIjtcbmltcG9ydCB7IFNpbmdsZXRvbkNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0V4cHJlc3NXcmFwcGVyL1NpbmdsZXRvbkNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IENhbmR5VmVyc2lvblNwZWMgfSBmcm9tIFwiLi4vLi4vLi4vQnVpbGRUYXNrcy9WZXJzaW9uXCI7XG5cbmltcG9ydCB7IEZhcm1EaXJlY3RvcnkgfSBmcm9tIFwiLi9EaXJlY3Rvcmllcy9GYXJtRGlyZWN0b3J5XCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogRmFybURpcmVjdG9yeTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5pZ2h0bHk6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VFbmdpbmVGcm9tTG9jYWxTb3VyY2VzOiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgdXNlRW5naW5lRnJvbUxvY2FsU291cmNlczogYm9vbGVhbiwgbmlnaHRseTogYm9vbGVhbikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm5pZ2h0bHkgPSBuaWdodGx5O1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBuZXcgRmFybURpcmVjdG9yeShmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgdGhpcy51c2VFbmdpbmVGcm9tTG9jYWxTb3VyY2VzID0gdXNlRW5naW5lRnJvbUxvY2FsU291cmNlcztcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tZXRhc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsRm9ybU1ldGFzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZhcm1Gb3JtSnNvbnMgPSBhd2FpdCB0aGlzLmZhcm1EaXJlY3RvcnkuZ2V0QWxsRm9ybUpzb25GaWxlcygpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uKGF3YWl0IEFzeW5jSXRlcmF0b3IuZnJvbShmYXJtRm9ybUpzb25zKVxuICAgICAgICAgICAgICAgIC5tYXAoeCA9PiBgJHt4Lmdmdn0ubWV0YXMuanNvbmApXG4gICAgICAgICAgICAgICAgLnRvQXJyYXkoKSksXG4gICAgICAgIF0uam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tZXRhcy86Z2Z2Lm1ldGFzLmpzb25cIiwgaHR0cFJldHVybi5QbGFpblRleHQsIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtTWV0YShnZnY6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGlmICh0aGlzLnVzZUVuZ2luZUZyb21Mb2NhbFNvdXJjZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsRW5naW5lTWV0YUNvbnRlbnQ6IEZvcm1NZXRhQ29udGVudCA9IHtcbiAgICAgICAgICAgICAgICBlbmdpbmVOYW1lOiBcImxvY2FsXCIsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzSGFzaDogXCJsb2NhbC1oYXNoXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGxvY2FsRW5naW5lTWV0YUNvbnRlbnQsIHVuZGVmaW5lZCwgXCIgIFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtSnNvbkZpbGUgPSB0aGlzLmZhcm1EaXJlY3RvcnkuZ2V0Rm9ybUpzb25QYXRoKGdmdik7XG4gICAgICAgIGNvbnN0IGZvcm1JbmZvID0gYXdhaXQgcmVzb2x2ZUZvcm1JbmZvKGZvcm1Kc29uRmlsZSwgZ2Z2LCB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBlbmdpbmVWZXJzaW9uOiB1bmRlZmluZWQgfCBDYW5keVZlcnNpb25TcGVjID0gdGhpcy5uaWdodGx5XG4gICAgICAgICAgICA/IHsgdHlwZTogXCJwcmVcIiwgcHJlSWQ6IFwibmlnaHRseVwiIH1cbiAgICAgICAgICAgIDogZm9ybUluZm8uZW5naW5lVmVyc2lvbjtcbiAgICAgICAgaWYgKGVuZ2luZVZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCIhISEhXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZ2luZVNvdXJjZXMgPSBhd2FpdCByZXNvbHZlRW5naW5lVmVyc2lvbihlbmdpbmVWZXJzaW9uKTtcbiAgICAgICAgY29uc3QgZm9ybU1ldGFDb250ZW50OiBGb3JtTWV0YUNvbnRlbnQgPSB7XG4gICAgICAgICAgICBlbmdpbmVOYW1lOlxuICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZXMudHlwZSA9PT0gXCJMb2NhbEVuZ2luZVNvdXJjZXNcIlxuICAgICAgICAgICAgICAgICAgICA/IFwibG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICA6IEVuZ2luZVZlcnNpb25VdGlscy5lbmdpbmVWZXJzaW9uVG9OYW1lKGVuZ2luZVNvdXJjZXMudmVyc2lvbiksXG4gICAgICAgICAgICByZXNvdXJjZXNIYXNoOiBcImxvY2FsLWhhc2hcIixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGZvcm1JbmZvLnRoZW1lcyAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZvcm1NZXRhQ29udGVudC50aGVtZXMgPSBmb3JtSW5mby50aGVtZXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZvcm1NZXRhQ29udGVudCwgdW5kZWZpbmVkLCBcIiAgXCIpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -35,7 +35,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
35
35
|
|
|
36
36
|
class BuildFormDevServer {
|
|
37
37
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
-
constructor(port, farmDirectory, gfv, candyModulesDirectory, hlFarmDirectoryPath, useGeneratorFromLocalSources, engineDirectory, buildDebugOnly, skipCodeReformatting) {
|
|
38
|
+
constructor(port, farmDirectory, gfv, candyModulesDirectory, hlFarmDirectoryPath, useGeneratorFromLocalSources, engineDirectory, buildDebugOnly, skipCodeReformatting, nightly) {
|
|
39
39
|
this.port = void 0;
|
|
40
40
|
this.farmDirectory = void 0;
|
|
41
41
|
this.gfv = void 0;
|
|
@@ -46,6 +46,7 @@ class BuildFormDevServer {
|
|
|
46
46
|
this.webpackDevServerStarted = false;
|
|
47
47
|
this.useGeneratorFromLocalSources = void 0;
|
|
48
48
|
this.engineDirectory = void 0;
|
|
49
|
+
this.nightly = void 0;
|
|
49
50
|
this.buildDebugOnly = void 0;
|
|
50
51
|
this.skipCodeReformatting = void 0;
|
|
51
52
|
this.webpackHybridFileSystem = void 0;
|
|
@@ -59,6 +60,7 @@ class BuildFormDevServer {
|
|
|
59
60
|
this.engineDirectory = engineDirectory;
|
|
60
61
|
this.buildDebugOnly = buildDebugOnly;
|
|
61
62
|
this.skipCodeReformatting = skipCodeReformatting;
|
|
63
|
+
this.nightly = nightly;
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
start() {
|
|
@@ -70,7 +72,7 @@ class BuildFormDevServer {
|
|
|
70
72
|
const formDirPath = _path.default.join(this.farmDirectory, "forms", this.gfv);
|
|
71
73
|
|
|
72
74
|
this.webpackHybridFileSystem = new _WebpackHybridFileSystem.WebpackHybridFileSystem(_path.default.join(formDirPath, "form"));
|
|
73
|
-
this.generateChain = _Observe.Observe.file(_path.default.join(formDirPath, "form.json")).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, undefined)).transform(async x => {
|
|
75
|
+
this.generateChain = _Observe.Observe.file(_path.default.join(formDirPath, "form.json")).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, undefined, undefined, undefined, undefined, undefined, this.nightly)).transform(async x => {
|
|
74
76
|
if (this.useGeneratorFromLocalSources) {
|
|
75
77
|
return { ...x,
|
|
76
78
|
generatorSource: (0, _PublishedVersionUtils.resolveLocalGeneratorSource)(this.engineDirectory),
|
|
@@ -149,19 +151,16 @@ class BuildFormDevServer {
|
|
|
149
151
|
await (0, _AsyncUtils.delay)(500);
|
|
150
152
|
}
|
|
151
153
|
|
|
152
|
-
|
|
154
|
+
const response = await (0, _nodeFetch.default)(`http://localhost:${this.port}/${filename}`, {
|
|
153
155
|
method: "GET"
|
|
154
|
-
})
|
|
155
|
-
}
|
|
156
|
+
});
|
|
156
157
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
if (response.status != 200) {
|
|
159
|
+
const textResponse = await response.text();
|
|
160
|
+
throw new Error(textResponse);
|
|
160
161
|
}
|
|
161
162
|
|
|
162
|
-
return
|
|
163
|
-
method: "GET"
|
|
164
|
-
})).buffer();
|
|
163
|
+
return response.body;
|
|
165
164
|
}
|
|
166
165
|
|
|
167
166
|
formatError(e) {
|
|
@@ -175,4 +174,4 @@ class BuildFormDevServer {
|
|
|
175
174
|
}
|
|
176
175
|
|
|
177
176
|
exports.BuildFormDevServer = BuildFormDevServer;
|
|
178
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL0J1aWxkRm9ybURldlNlcnZlci50cyJdLCJuYW1lcyI6WyJCdWlsZEZvcm1EZXZTZXJ2ZXIiLCJjb25zdHJ1Y3RvciIsInBvcnQiLCJmYXJtRGlyZWN0b3J5IiwiZ2Z2IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwiaGxGYXJtRGlyZWN0b3J5UGF0aCIsInVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMiLCJlbmdpbmVEaXJlY3RvcnkiLCJidWlsZERlYnVnT25seSIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwic3RhcnRQYXJhbGxlbExpbWl0IiwiZ2VuZXJhdGVDaGFpbiIsIndlYnBhY2tEZXZTZXJ2ZXJTdGFydGVkIiwid2VicGFja0h5YnJpZEZpbGVTeXN0ZW0iLCJzdGFydCIsInVuZGVmaW5lZCIsImZvcm1EaXJQYXRoIiwicGF0aCIsImpvaW4iLCJXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSIsIk9ic2VydmUiLCJmaWxlIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwieCIsImdlbmVyYXRvclNvdXJjZSIsImVuZ2luZVNvdXJjZSIsImdlbmVyYXRvclZlcnNpb24iLCJFcnJvciIsImVuZ2luZVZlcnNpb24iLCJhdHRhY2giLCJmaSIsInkiLCJnZW5lcmF0b3IiLCJmaWxlcyIsImZvcm1Tb3VyY2VzUGF0aCIsImRvIiwicmVzb3VyY2VzSGFzaCIsImUiLCJmb3JtRW50cnlQb2ludFBhdGgiLCJ3cml0ZUJhdGNoIiwiZm9ybWF0RXJyb3IiLCJvYnNlcnZlIiwiZ2V0RmlsZSIsImZpbGVuYW1lIiwibWV0aG9kIiwidGV4dCIsImdldEdlbmVyYXRlZEZpbGVBc1N0cmVhbSIsImZpbGVOYW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJyZWFkRmlsZSIsImVycm9yIiwiZGF0YSIsIlJlYWRhYmxlIiwiZnJvbSIsImdldEZpbGVBc1N0cmVhbSIsImJvZHkiLCJnZXRGaWxlQXNCdWZmZXIiLCJidWZmZXIiLCJzdGFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQU1BOztBQUNBOztBQUdBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBRU8sTUFBTUEsa0JBQU4sQ0FBeUI7QUFPNUI7QUFTT0MsRUFBQUEsV0FBVyxDQUNkQyxJQURjLEVBRWRDLGFBRmMsRUFHZEMsR0FIYyxFQUlkQyxxQkFKYyxFQUtkQyxtQkFMYyxFQU1kQyw0QkFOYyxFQU9kQyxlQVBjLEVBUWRDLGNBUmMsRUFTZEMsb0JBVGMsRUFVaEI7QUFBQSxTQXpCZVIsSUF5QmY7QUFBQSxTQXhCZUMsYUF3QmY7QUFBQSxTQXZCZUMsR0F1QmY7QUFBQSxTQXRCZUMscUJBc0JmO0FBQUEsU0FyQmVDLG1CQXFCZjtBQUFBLFNBcEJlSyxrQkFvQmY7QUFBQSxTQWxCTUMsYUFrQk47QUFBQSxTQWpCTUMsdUJBaUJOLEdBakJnQyxLQWlCaEM7QUFBQSxTQWhCZU4sNEJBZ0JmO0FBQUEsU0FmZUMsZUFlZjtBQUFBLFNBZGVDLGNBY2Y7QUFBQSxTQWJlQyxvQkFhZjtBQUFBLFNBWk1JLHVCQVlOO0FBQ0UsU0FBS1osSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQkEsYUFBckI7QUFDQSxTQUFLQyxHQUFMLEdBQVdBLEdBQVg7QUFDQSxTQUFLQyxxQkFBTCxHQUE2QkEscUJBQTdCO0FBQ0EsU0FBS0MsbUJBQUwsR0FBMkJBLG1CQUEzQjtBQUNBLFNBQUtLLGtCQUFMLEdBQTBCLHFCQUFPLENBQVAsQ0FBMUI7QUFDQSxTQUFLSiw0QkFBTCxHQUFvQ0EsNEJBQXBDO0FBQ0EsU0FBS0MsZUFBTCxHQUF1QkEsZUFBdkI7QUFDQSxTQUFLQyxjQUFMLEdBQXNCQSxjQUF0QjtBQUNBLFNBQUtDLG9CQUFMLEdBQTRCQSxvQkFBNUI7QUFDSDs7QUFFTUssRUFBQUEsS0FB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QUNIOztBQXRLMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tIFwic3RyZWFtXCI7XG5cbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiO1xuaW1wb3J0IHBMaW1pdCwgeyBMaW1pdCB9IGZyb20gXCJwLWxpbWl0XCI7XG5cbmltcG9ydCB7IGdlbmVyYXRlRm9ybSB9IGZyb20gXCIuLi8uLi8uLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7XG4gICAgcmVzb2x2ZUVuZ2luZVZlcnNpb24sXG4gICAgcmVzb2x2ZUdlbmVyYXRvclZlcnNpb24sXG4gICAgcmVzb2x2ZUxvY2FsRW5naW5lU291cmNlLFxuICAgIHJlc29sdmVMb2NhbEdlbmVyYXRvclNvdXJjZSxcbn0gZnJvbSBcIi4uLy4uLy4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyByZXNvbHZlRm9ybUluZm8gfSBmcm9tIFwiLi4vLi4vLi4vLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9Bc3luY1V0aWxzXCI7XG5pbXBvcnQgeyBSZWFzb25PckVycm9yIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRXJyb3JVbnR5cGVkXCI7XG5pbXBvcnQgeyBDaGFpbmFibGVWYWx1ZVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL0NoYWluYWJsZVZhbHVlUHJvZHVjZXJcIjtcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvT2JzZXJ2ZVwiO1xuXG5pbXBvcnQgeyBnZXRSZXBvcnRHZW5lcmF0b3JFcnJvclRvUGFnZUJvZHlTY3JpcHQgfSBmcm9tIFwiLi9SZXBvcnRHZW5lcmF0b3JFcnJvclRvUGFnZUJvZHlcIjtcbmltcG9ydCB7IHJ1bkZvcm1Db21waWxhdGlvblZpYVdlYnBhY2tEZXZTZXJ2ZXIgfSBmcm9tIFwiLi9SdW5Gb3JtQ29tcGlsYXRpb25WaWFXZWJwYWNrRGV2U2VydmVyXCI7XG5pbXBvcnQgeyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSB9IGZyb20gXCIuL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZEZvcm1EZXZTZXJ2ZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2Z2OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0UGFyYWxsZWxMaW1pdDogTGltaXQ7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGdlbmVyYXRlQ2hhaW4/OiBDaGFpbmFibGVWYWx1ZVByb2R1Y2VyPGFueT47XG4gICAgcHJpdmF0ZSB3ZWJwYWNrRGV2U2VydmVyU3RhcnRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlR2VuZXJhdG9yRnJvbUxvY2FsU291cmNlczogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuZ2luZURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBza2lwQ29kZVJlZm9ybWF0dGluZzogYm9vbGVhbjtcbiAgICBwcml2YXRlIHdlYnBhY2tIeWJyaWRGaWxlU3lzdGVtPzogV2VicGFja0h5YnJpZEZpbGVTeXN0ZW07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHBvcnQ6IG51bWJlcixcbiAgICAgICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZyxcbiAgICAgICAgdXNlR2VuZXJhdG9yRnJvbUxvY2FsU291cmNlczogYm9vbGVhbixcbiAgICAgICAgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGJ1aWxkRGVidWdPbmx5OiBib29sZWFuLFxuICAgICAgICBza2lwQ29kZVJlZm9ybWF0dGluZzogYm9vbGVhblxuICAgICkge1xuICAgICAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLmdmdiA9IGdmdjtcbiAgICAgICAgdGhpcy5jYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBjYW5keU1vZHVsZXNEaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMuaGxGYXJtRGlyZWN0b3J5UGF0aCA9IGhsRmFybURpcmVjdG9yeVBhdGg7XG4gICAgICAgIHRoaXMuc3RhcnRQYXJhbGxlbExpbWl0ID0gcExpbWl0KDEpO1xuICAgICAgICB0aGlzLnVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMgPSB1c2VHZW5lcmF0b3JGcm9tTG9jYWxTb3VyY2VzO1xuICAgICAgICB0aGlzLmVuZ2luZURpcmVjdG9yeSA9IGVuZ2luZURpcmVjdG9yeTtcbiAgICAgICAgdGhpcy5idWlsZERlYnVnT25seSA9IGJ1aWxkRGVidWdPbmx5O1xuICAgICAgICB0aGlzLnNraXBDb2RlUmVmb3JtYXR0aW5nID0gc2tpcENvZGVSZWZvcm1hdHRpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydFBhcmFsbGVsTGltaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2VuZXJhdGVDaGFpbiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgdGhpcy5nZnYpO1xuICAgICAgICAgICAgdGhpcy53ZWJwYWNrSHlicmlkRmlsZVN5c3RlbSA9IG5ldyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbShwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKSk7XG5cbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDaGFpbiA9IE9ic2VydmUuZmlsZShwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oZm9ybUpzb25GaWxlID0+IHJlc29sdmVGb3JtSW5mbyhmb3JtSnNvbkZpbGUsIGZvcm1EaXJQYXRoLCB1bmRlZmluZWQpKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oYXN5bmMgeCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IHJlc29sdmVMb2NhbEdlbmVyYXRvclNvdXJjZSh0aGlzLmVuZ2luZURpcmVjdG9yeSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiByZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UodGhpcy5lbmdpbmVEaXJlY3RvcnkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4LmdlbmVyYXRvclZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2VuZXJhdG9yVmVyc2lvbiBpcyBubyBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHguZW5naW5lVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJlbmdpbmVWZXJzaW9uIGlzIG5vIGRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiBhd2FpdCByZXNvbHZlR2VuZXJhdG9yVmVyc2lvbih4LmdlbmVyYXRvclZlcnNpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogYXdhaXQgcmVzb2x2ZUVuZ2luZVZlcnNpb24oeC5lbmdpbmVWZXJzaW9uKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIGZpID0+IGdlbmVyYXRvckZhY3RvcnkoZmkuZ2VuZXJhdG9yU291cmNlLCB0aGlzLmNhbmR5TW9kdWxlc0RpcmVjdG9yeSwgZmFsc2UsIHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gZ2V0R2VuZXJhdG9yU291cmNlS2V5KGZpLmdlbmVyYXRvclNvdXJjZSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIuLi8uLi9jb250cm9scy8qKi9nZW5lcmF0b3IvKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzY2hlbWFzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3VnYXIvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb250cm9scy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImF1dG9jYWxjLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGVscGVycy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInZhbGlkYXRpb25zLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYWxpemF0aW9uLyoqLypcIlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBnZW5lcmF0ZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhsRmFybURpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBDb2RlUmVmb3JtYXR0aW5nOiB0aGlzLnNraXBDb2RlUmVmb3JtYXR0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNIYXNoOiBcImxvY2FsLWhhc2hcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2VicGFja0h5YnJpZEZpbGVTeXN0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1FbnRyeVBvaW50UGF0aCA9IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgdGhpcy5nZnYsIFwiZm9ybVwiLCBcIndlYi5qc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMud2VicGFja0h5YnJpZEZpbGVTeXN0ZW0/LndyaXRlQmF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtRW50cnlQb2ludFBhdGhdOiBnZXRSZXBvcnRHZW5lcmF0b3JFcnJvclRvUGFnZUJvZHlTY3JpcHQodGhpcy5mb3JtYXRFcnJvcihlKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdlbmVyYXRlQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICAgICAgYXdhaXQgcnVuRm9ybUNvbXBpbGF0aW9uVmlhV2VicGFja0RldlNlcnZlcihcbiAgICAgICAgICAgICAgICB0aGlzLmdmdixcbiAgICAgICAgICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgcGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCJyZXNcIiksXG4gICAgICAgICAgICAgICAgXCJsb2NhbC1oYXNoXCIsXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZERlYnVnT25seSxcbiAgICAgICAgICAgICAgICB0aGlzLndlYnBhY2tIeWJyaWRGaWxlU3lzdGVtLFxuICAgICAgICAgICAgICAgIHRoaXMucG9ydFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMud2VicGFja0RldlNlcnZlclN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgd2hpbGUgKCF0aGlzLndlYnBhY2tEZXZTZXJ2ZXJTdGFydGVkKSB7XG4gICAgICAgICAgICBhd2FpdCBkZWxheSg1MDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoYXdhaXQgZmV0Y2goYGh0dHA6Ly9sb2NhbGhvc3Q6JHt0aGlzLnBvcnR9LyR7ZmlsZW5hbWV9YCwgeyBtZXRob2Q6IFwiR0VUXCIgfSkpLnRleHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0R2VuZXJhdGVkRmlsZUFzU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVKUy5SZWFkYWJsZVN0cmVhbT4ge1xuICAgICAgICB3aGlsZSAoIXRoaXMud2VicGFja0RldlNlcnZlclN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KDUwMCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBwYXRoLmpvaW4odGhpcy5mYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIHRoaXMuZ2Z2LCBcImZvcm1cIiwgZmlsZW5hbWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy53ZWJwYWNrSHlicmlkRmlsZVN5c3RlbT8ucmVhZEZpbGUoZmlsZU5hbWUsIFwidXRmLThcIiwgKGVycm9yLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShSZWFkYWJsZS5mcm9tKFtkYXRhXSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RmlsZUFzU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVKUy5SZWFkYWJsZVN0cmVhbT4ge1xuICAgICAgICB3aGlsZSAoIXRoaXMud2VicGFja0RldlNlcnZlclN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KDUwMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChhd2FpdCBmZXRjaChgaHR0cDovL2xvY2FsaG9zdDoke3RoaXMucG9ydH0vJHtmaWxlbmFtZX1gLCB7IG1ldGhvZDogXCJHRVRcIiB9KSkuYm9keTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RmlsZUFzQnVmZmVyKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgICAgICB3aGlsZSAoIXRoaXMud2VicGFja0RldlNlcnZlclN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KDUwMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChhd2FpdCBmZXRjaChgaHR0cDovL2xvY2FsaG9zdDoke3RoaXMucG9ydH0vJHtmaWxlbmFtZX1gLCB7IG1ldGhvZDogXCJHRVRcIiB9KSkuYnVmZmVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRFcnJvcihlOiBSZWFzb25PckVycm9yKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGAke2V9XFxuJHtlLnN0YWNrfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2V9YDtcbiAgICB9XG59XG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL0J1aWxkRm9ybURldlNlcnZlci50cyJdLCJuYW1lcyI6WyJCdWlsZEZvcm1EZXZTZXJ2ZXIiLCJjb25zdHJ1Y3RvciIsInBvcnQiLCJmYXJtRGlyZWN0b3J5IiwiZ2Z2IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwiaGxGYXJtRGlyZWN0b3J5UGF0aCIsInVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMiLCJlbmdpbmVEaXJlY3RvcnkiLCJidWlsZERlYnVnT25seSIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwibmlnaHRseSIsInN0YXJ0UGFyYWxsZWxMaW1pdCIsImdlbmVyYXRlQ2hhaW4iLCJ3ZWJwYWNrRGV2U2VydmVyU3RhcnRlZCIsIndlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwic3RhcnQiLCJ1bmRlZmluZWQiLCJmb3JtRGlyUGF0aCIsInBhdGgiLCJqb2luIiwiV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0iLCJPYnNlcnZlIiwiZmlsZSIsInRyYW5zZm9ybSIsImZvcm1Kc29uRmlsZSIsIngiLCJnZW5lcmF0b3JTb3VyY2UiLCJlbmdpbmVTb3VyY2UiLCJnZW5lcmF0b3JWZXJzaW9uIiwiRXJyb3IiLCJlbmdpbmVWZXJzaW9uIiwiYXR0YWNoIiwiZmkiLCJ5IiwiZ2VuZXJhdG9yIiwiZmlsZXMiLCJmb3JtU291cmNlc1BhdGgiLCJkbyIsInJlc291cmNlc0hhc2giLCJlIiwiZm9ybUVudHJ5UG9pbnRQYXRoIiwid3JpdGVCYXRjaCIsImZvcm1hdEVycm9yIiwib2JzZXJ2ZSIsImdldEZpbGUiLCJmaWxlbmFtZSIsIm1ldGhvZCIsInRleHQiLCJnZXRHZW5lcmF0ZWRGaWxlQXNTdHJlYW0iLCJmaWxlTmFtZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVhZEZpbGUiLCJlcnJvciIsImRhdGEiLCJSZWFkYWJsZSIsImZyb20iLCJnZXRGaWxlQXNTdHJlYW0iLCJyZXNwb25zZSIsInN0YXR1cyIsInRleHRSZXNwb25zZSIsImJvZHkiLCJzdGFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQU1BOztBQUNBOztBQUdBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBRU8sTUFBTUEsa0JBQU4sQ0FBeUI7QUFPNUI7QUFVT0MsRUFBQUEsV0FBVyxDQUNkQyxJQURjLEVBRWRDLGFBRmMsRUFHZEMsR0FIYyxFQUlkQyxxQkFKYyxFQUtkQyxtQkFMYyxFQU1kQyw0QkFOYyxFQU9kQyxlQVBjLEVBUWRDLGNBUmMsRUFTZEMsb0JBVGMsRUFVZEMsT0FWYyxFQVdoQjtBQUFBLFNBM0JlVCxJQTJCZjtBQUFBLFNBMUJlQyxhQTBCZjtBQUFBLFNBekJlQyxHQXlCZjtBQUFBLFNBeEJlQyxxQkF3QmY7QUFBQSxTQXZCZUMsbUJBdUJmO0FBQUEsU0F0QmVNLGtCQXNCZjtBQUFBLFNBcEJNQyxhQW9CTjtBQUFBLFNBbkJNQyx1QkFtQk4sR0FuQmdDLEtBbUJoQztBQUFBLFNBbEJlUCw0QkFrQmY7QUFBQSxTQWpCZUMsZUFpQmY7QUFBQSxTQWhCZUcsT0FnQmY7QUFBQSxTQWZlRixjQWVmO0FBQUEsU0FkZUMsb0JBY2Y7QUFBQSxTQWJNSyx1QkFhTjtBQUNFLFNBQUtiLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLGFBQUwsR0FBcUJBLGFBQXJCO0FBQ0EsU0FBS0MsR0FBTCxHQUFXQSxHQUFYO0FBQ0EsU0FBS0MscUJBQUwsR0FBNkJBLHFCQUE3QjtBQUNBLFNBQUtDLG1CQUFMLEdBQTJCQSxtQkFBM0I7QUFDQSxTQUFLTSxrQkFBTCxHQUEwQixxQkFBTyxDQUFQLENBQTFCO0FBQ0EsU0FBS0wsNEJBQUwsR0FBb0NBLDRCQUFwQztBQUNBLFNBQUtDLGVBQUwsR0FBdUJBLGVBQXZCO0FBQ0EsU0FBS0MsY0FBTCxHQUFzQkEsY0FBdEI7QUFD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RSxLQUFJQSxDQUFDLENBQUN3QixLQUFNLEVBQXhCO0FBQ0g7O0FBQ0QsV0FBUSxHQUFFeEIsQ0FBRSxFQUFaO0FBQ0g7O0FBbEwyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gXCJzdHJlYW1cIjtcblxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCI7XG5pbXBvcnQgcExpbWl0LCB7IExpbWl0IH0gZnJvbSBcInAtbGltaXRcIjtcblxuaW1wb3J0IHsgZ2VuZXJhdGVGb3JtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0J1aWxkVGFza3MvRm9ybS9HZW5lcmF0ZUZvcm1cIjtcbmltcG9ydCB7IGdlbmVyYXRvckZhY3RvcnksIGdldEdlbmVyYXRvclNvdXJjZUtleSB9IGZyb20gXCIuLi8uLi8uLi8uLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHtcbiAgICByZXNvbHZlRW5naW5lVmVyc2lvbixcbiAgICByZXNvbHZlR2VuZXJhdG9yVmVyc2lvbixcbiAgICByZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UsXG4gICAgcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlLFxufSBmcm9tIFwiLi4vLi4vLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi8uLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0FzeW5jVXRpbHNcIjtcbmltcG9ydCB7IFJlYXNvbk9yRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9FcnJvclVudHlwZWRcIjtcbmltcG9ydCB7IENoYWluYWJsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9PYnNlcnZlXCI7XG5cbmltcG9ydCB7IGdldFJlcG9ydEdlbmVyYXRvckVycm9yVG9QYWdlQm9keVNjcmlwdCB9IGZyb20gXCIuL1JlcG9ydEdlbmVyYXRvckVycm9yVG9QYWdlQm9keVwiO1xuaW1wb3J0IHsgcnVuRm9ybUNvbXBpbGF0aW9uVmlhV2VicGFja0RldlNlcnZlciB9IGZyb20gXCIuL1J1bkZvcm1Db21waWxhdGlvblZpYVdlYnBhY2tEZXZTZXJ2ZXJcIjtcbmltcG9ydCB7IFdlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIH0gZnJvbSBcIi4vV2VicGFja0luTWVtb3J5VXRpbHMvV2VicGFja0h5YnJpZEZpbGVTeXN0ZW1cIjtcblxuZXhwb3J0IGNsYXNzIEJ1aWxkRm9ybURldlNlcnZlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3J0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBnZnY6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGxGYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhcnRQYXJhbGxlbExpbWl0OiBMaW1pdDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgZ2VuZXJhdGVDaGFpbj86IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8YW55PjtcbiAgICBwcml2YXRlIHdlYnBhY2tEZXZTZXJ2ZXJTdGFydGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VHZW5lcmF0b3JGcm9tTG9jYWxTb3VyY2VzOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuaWdodGx5OiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBza2lwQ29kZVJlZm9ybWF0dGluZzogYm9vbGVhbjtcbiAgICBwcml2YXRlIHdlYnBhY2tIeWJyaWRGaWxlU3lzdGVtPzogV2VicGFja0h5YnJpZEZpbGVTeXN0ZW07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHBvcnQ6IG51bWJlcixcbiAgICAgICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZyxcbiAgICAgICAgdXNlR2VuZXJhdG9yRnJvbUxvY2FsU291cmNlczogYm9vbGVhbixcbiAgICAgICAgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGJ1aWxkRGVidWdPbmx5OiBib29sZWFuLFxuICAgICAgICBza2lwQ29kZVJlZm9ybWF0dGluZzogYm9vbGVhbixcbiAgICAgICAgbmlnaHRseTogYm9vbGVhblxuICAgICkge1xuICAgICAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLmdmdiA9IGdmdjtcbiAgICAgICAgdGhpcy5jYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBjYW5keU1vZHVsZXNEaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMuaGxGYXJtRGlyZWN0b3J5UGF0aCA9IGhsRmFybURpcmVjdG9yeVBhdGg7XG4gICAgICAgIHRoaXMuc3RhcnRQYXJhbGxlbExpbWl0ID0gcExpbWl0KDEpO1xuICAgICAgICB0aGlzLnVzZUdlbmVyYXRvckZyb21Mb2NhbFNvdXJjZXMgPSB1c2VHZW5lcmF0b3JGcm9tTG9jYWxTb3VyY2VzO1xuICAgICAgICB0aGlzLmVuZ2luZURpcmVjdG9yeSA9IGVuZ2luZURpcmVjdG9yeTtcbiAgICAgICAgdGhpcy5idWlsZERlYnVnT25seSA9IGJ1aWxkRGVidWdPbmx5O1xuICAgICAgICB0aGlzLnNraXBDb2RlUmVmb3JtYXR0aW5nID0gc2tpcENvZGVSZWZvcm1hdHRpbmc7XG4gICAgICAgIHRoaXMubmlnaHRseSA9IG5pZ2h0bHk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydFBhcmFsbGVsTGltaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2VuZXJhdGVDaGFpbiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgdGhpcy5nZnYpO1xuICAgICAgICAgICAgdGhpcy53ZWJwYWNrSHlicmlkRmlsZVN5c3RlbSA9IG5ldyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbShwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKSk7XG5cbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDaGFpbiA9IE9ic2VydmUuZmlsZShwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oZm9ybUpzb25GaWxlID0+XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVGb3JtSW5mbyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Kc29uRmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uaWdodGx5XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyB4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudXNlR2VuZXJhdG9yRnJvbUxvY2FsU291cmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlKHRoaXMuZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmVTb3VyY2U6IHJlc29sdmVMb2NhbEVuZ2luZVNvdXJjZSh0aGlzLmVuZ2luZURpcmVjdG9yeSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHguZ2VuZXJhdG9yVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnZW5lcmF0b3JWZXJzaW9uIGlzIG5vIGRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5lbmdpbmVWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImVuZ2luZVZlcnNpb24gaXMgbm8gZGVmaW5lZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IGF3YWl0IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uKHguZ2VuZXJhdG9yVmVyc2lvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiBhd2FpdCByZXNvbHZlRW5naW5lVmVyc2lvbih4LmVuZ2luZVZlcnNpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gZ2VuZXJhdG9yRmFjdG9yeShmaS5nZW5lcmF0b3JTb3VyY2UsIHRoaXMuY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBmYWxzZSwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKGZpLCB5KSA9PiAoeyAuLi5maSwgZ2VuZXJhdG9yOiB5IH0pLFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqL2dlbmVyYXRvci8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNjaGVtYXMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdWdhci8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b2NhbGMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxwZXJzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsaWRhdGlvbnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhbGl6YXRpb24vKiovKlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGdlbmVyYXRlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGxGYXJtRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcENvZGVSZWZvcm1hdHRpbmc6IHRoaXMuc2tpcENvZGVSZWZvcm1hdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0hhc2g6IFwibG9jYWwtaGFzaFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJwYWNrSHlicmlkRmlsZVN5c3RlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUVudHJ5UG9pbnRQYXRoID0gcGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCB0aGlzLmdmdiwgXCJmb3JtXCIsIFwid2ViLmpzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy53ZWJwYWNrSHlicmlkRmlsZVN5c3RlbT8ud3JpdGVCYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1FbnRyeVBvaW50UGF0aF06IGdldFJlcG9ydEdlbmVyYXRvckVycm9yVG9QYWdlQm9keVNjcmlwdCh0aGlzLmZvcm1hdEVycm9yKGUpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2VuZXJhdGVDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgICAgICBhd2FpdCBydW5Gb3JtQ29tcGlsYXRpb25WaWFXZWJwYWNrRGV2U2VydmVyKFxuICAgICAgICAgICAgICAgIHRoaXMuZ2Z2LFxuICAgICAgICAgICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICBwYXRoLmpvaW4odGhpcy5mYXJtRGlyZWN0b3J5LCBcInJlc1wiKSxcbiAgICAgICAgICAgICAgICBcImxvY2FsLWhhc2hcIixcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRGVidWdPbmx5LFxuICAgICAgICAgICAgICAgIHRoaXMud2VicGFja0h5YnJpZEZpbGVTeXN0ZW0sXG4gICAgICAgICAgICAgICAgdGhpcy5wb3J0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy53ZWJwYWNrRGV2U2VydmVyU3RhcnRlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICB3aGlsZSAoIXRoaXMud2VicGFja0RldlNlcnZlclN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KDUwMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChhd2FpdCBmZXRjaChgaHR0cDovL2xvY2FsaG9zdDoke3RoaXMucG9ydH0vJHtmaWxlbmFtZX1gLCB7IG1ldGhvZDogXCJHRVRcIiB9KSkudGV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRHZW5lcmF0ZWRGaWxlQXNTdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8Tm9kZUpTLlJlYWRhYmxlU3RyZWFtPiB7XG4gICAgICAgIHdoaWxlICghdGhpcy53ZWJwYWNrRGV2U2VydmVyU3RhcnRlZCkge1xuICAgICAgICAgICAgYXdhaXQgZGVsYXkoNTAwKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgdGhpcy5nZnYsIFwiZm9ybVwiLCBmaWxlbmFtZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLndlYnBhY2tIeWJyaWRGaWxlU3lzdGVtPy5yZWFkRmlsZShmaWxlTmFtZSwgXCJ1dGYtOFwiLCAoZXJyb3IsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFJlYWRhYmxlLmZyb20oW2RhdGFdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGaWxlQXNTdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8Tm9kZUpTLlJlYWRhYmxlU3RyZWFtPiB7XG4gICAgICAgIHdoaWxlICghdGhpcy53ZWJwYWNrRGV2U2VydmVyU3RhcnRlZCkge1xuICAgICAgICAgICAgYXdhaXQgZGVsYXkoNTAwKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGBodHRwOi8vbG9jYWxob3N0OiR7dGhpcy5wb3J0fS8ke2ZpbGVuYW1lfWAsIHsgbWV0aG9kOiBcIkdFVFwiIH0pO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCkge1xuICAgICAgICAgICAgY29uc3QgdGV4dFJlc3BvbnNlID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHRleHRSZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRFcnJvcihlOiBSZWFzb25PckVycm9yKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGAke2V9XFxuJHtlLnN0YWNrfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2V9YDtcbiAgICB9XG59XG4iXX0=
|