@kontur.candy/tools 2.189.1 → 2.190.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/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +10 -3
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +3 -3
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +2 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -1
- package/distr/Tools/src/CandyCLI.js +1 -8
- package/distr/Tools/src/CandyCLI.js.map +1 -1
- package/distr/Tools/src/Commons/GetCpuLimits.js +28 -0
- package/distr/Tools/src/Commons/GetCpuLimits.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +5 -5
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -1
- package/distr/Tools/src/Keys/localhost-key.pem +111 -30
- package/distr/Tools/src/Keys/localhost.pem +30 -75
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -48,8 +48,15 @@ class ShellProcessHandle {
|
|
|
48
48
|
start() {
|
|
49
49
|
var _this$process$stdout, _this$process$stderr;
|
|
50
50
|
this.subscription = _ConsoleApplication.ConsoleApplication.onExit.subscribe(this.handleExit);
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
let shellExe, shellArg;
|
|
52
|
+
if (process.platform === "win32") {
|
|
53
|
+
shellExe = "cmd.exe";
|
|
54
|
+
shellArg = ["/c", this.startInfo.command, ...this.startInfo.args];
|
|
55
|
+
} else {
|
|
56
|
+
shellExe = "/bin/sh";
|
|
57
|
+
shellArg = ["-c", [this.startInfo.command, ...this.startInfo.args].join(" ")];
|
|
58
|
+
}
|
|
59
|
+
this.process = (0, _child_process.spawn)(shellExe, shellArg, {
|
|
53
60
|
cwd: this.startInfo.workingDirectory,
|
|
54
61
|
stdio: "pipe"
|
|
55
62
|
});
|
|
@@ -74,4 +81,4 @@ class ShellProcessHandle {
|
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
83
|
exports.ShellProcessHandle = ShellProcessHandle;
|
|
77
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfQ29uc29sZUFwcGxpY2F0aW9uIiwiX0V2ZW50T2JqZWN0IiwiX1Byb2Nlc3NVdGlscyIsIlNoZWxsUHJvY2Vzc0hhbmRsZSIsImNvbnN0cnVjdG9yIiwic3RhcnRJbmZvIiwicHJvY2VzcyIsIm9uU3RkT3V0IiwiY3JlYXRlRXZlbnQiLCJvblN0ZEVyciIsInN1YnNjcmlwdGlvbiIsImhhbmRsZUV4aXQiLCJraWxsIiwiX3Byb2Nlc3NUb0tpbGwkc3RkZXJyIiwiX3Byb2Nlc3NUb0tpbGwkc3Rkb3V0IiwidW5kZWZpbmVkIiwidW5zdWJzY3JpYmUiLCJwcm9jZXNzVG9LaWxsIiwiRXJyb3IiLCJwaWQiLCJzdGRlcnIiLCJwYXVzZSIsInN0ZG91dCIsIlByb2Nlc3NVdGlscyIsImtpbGxUcmVlQXN5bmMiLCJ3YWl0T3V0cHV0SW5jbHVkZXNTdHJpbmciLCJleHBlY3RlZFN0cmluZyIsIlByb21pc2UiLCJyZXNvbHZlIiwic3Vic2NyaWJlIiwib3V0cHV0IiwiaW5jbHVkZXMiLCJzdGFydCIsIl90aGlzJHByb2Nlc3Mkc3Rkb3V0IiwiX3RoaXMkcHJvY2VzcyRzdGRlcnIiLCJDb25zb2xlQXBwbGljYXRpb24iLCJvbkV4aXQiLCJzaGVsbEV4ZSIsInNoZWxsQXJnIiwicGxhdGZvcm0iLCJjb21tYW5kIiwiYXJncyIsImpvaW4iLCJzcGF3biIsImN3ZCIsIndvcmtpbmdEaXJlY3RvcnkiLCJzdGRpbyIsIm9uIiwiZGF0YSIsImVtaXQiLCJ0b1N0cmluZyIsIndhaXRGb3JFeGl0IiwiY3VycmVudFByb2Nlc3MiLCJjb2RlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL1Byb2Nlc3NVdGlscy9TaGVsbFByb2Nlc3NIYW5kbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBzcGF3biB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5cbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbiB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25cIjtcbmltcG9ydCB7IGNyZWF0ZUV2ZW50LCBJRXZlbnRTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9FdmVudE9iamVjdFwiO1xuXG5pbXBvcnQgeyBQcm9jZXNzVXRpbHMgfSBmcm9tIFwiLi9Qcm9jZXNzVXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTaGVsbFByb2Nlc3NTdGFydEluZm8ge1xuICAgIGNvbW1hbmQ6IHN0cmluZztcbiAgICBhcmdzOiBzdHJpbmdbXTtcbiAgICB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU2hlbGxQcm9jZXNzSGFuZGxlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0SW5mbzogU2hlbGxQcm9jZXNzU3RhcnRJbmZvO1xuICAgIHByaXZhdGUgcHJvY2Vzcz86IENoaWxkUHJvY2VzcztcblxuICAgIHB1YmxpYyByZWFkb25seSBvblN0ZE91dCA9IGNyZWF0ZUV2ZW50PFtzdHJpbmddPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBvblN0ZEVyciA9IGNyZWF0ZUV2ZW50PFtzdHJpbmddPigpO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogSUV2ZW50U3Vic2NyaXB0aW9uO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHN0YXJ0SW5mbzogU2hlbGxQcm9jZXNzU3RhcnRJbmZvKSB7XG4gICAgICAgIHRoaXMuc3RhcnRJbmZvID0gc3RhcnRJbmZvO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBraWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2Nlc3NUb0tpbGwgPSB0aGlzLnByb2Nlc3M7XG4gICAgICAgIGlmIChwcm9jZXNzVG9LaWxsID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvY2VzcyBub3Qgc3RhcnRlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwaWQgPSBwcm9jZXNzVG9LaWxsLnBpZDtcbiAgICAgICAgdGhpcy5wcm9jZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICBwcm9jZXNzVG9LaWxsLnN0ZGVycj8ucGF1c2UoKTtcbiAgICAgICAgcHJvY2Vzc1RvS2lsbC5zdGRvdXQ/LnBhdXNlKCk7XG4gICAgICAgIGF3YWl0IFByb2Nlc3NVdGlscy5raWxsVHJlZUFzeW5jKHBpZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdhaXRPdXRwdXRJbmNsdWRlc1N0cmluZyhleHBlY3RlZFN0cmluZzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMub25TdGRPdXQuc3Vic2NyaWJlKG91dHB1dCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG91dHB1dC5pbmNsdWRlcyhleHBlY3RlZFN0cmluZykpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IENvbnNvbGVBcHBsaWNhdGlvbi5vbkV4aXQuc3Vic2NyaWJlKHRoaXMuaGFuZGxlRXhpdCk7XG4gICAgICAgIGxldCBzaGVsbEV4ZTogc3RyaW5nLCBzaGVsbEFyZzogc3RyaW5nW107XG4gICAgICAgIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIpIHtcbiAgICAgICAgICAgIHNoZWxsRXhlID0gXCJjbWQuZXhlXCI7XG4gICAgICAgICAgICBzaGVsbEFyZyA9IFtcIi9jXCIsIHRoaXMuc3RhcnRJbmZvLmNvbW1hbmQsIC4uLnRoaXMuc3RhcnRJbmZvLmFyZ3NdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2hlbGxFeGUgPSBcIi9iaW4vc2hcIjtcbiAgICAgICAgICAgIHNoZWxsQXJnID0gW1wiLWNcIiwgW3RoaXMuc3RhcnRJbmZvLmNvbW1hbmQsIC4uLnRoaXMuc3RhcnRJbmZvLmFyZ3NdLmpvaW4oXCIgXCIpXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2Nlc3MgPSBzcGF3bihzaGVsbEV4ZSwgc2hlbGxBcmcsIHtcbiAgICAgICAgICAgIGN3ZDogdGhpcy5zdGFydEluZm8ud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgIHN0ZGlvOiBcInBpcGVcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJvY2Vzcy5zdGRvdXQ/Lm9uKFwiZGF0YVwiLCAoZGF0YTogQnVmZmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uU3RkT3V0LmVtaXQoZGF0YS50b1N0cmluZygpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJvY2Vzcy5zdGRlcnI/Lm9uKFwiZGF0YVwiLCAoZGF0YTogQnVmZmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uU3RkRXJyLmVtaXQoZGF0YS50b1N0cmluZygpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHdhaXRGb3JFeGl0KCk6IFByb21pc2U8bnVsbCB8IG51bWJlcj4ge1xuICAgICAgICBjb25zdCBjdXJyZW50UHJvY2VzcyA9IHRoaXMucHJvY2VzcztcbiAgICAgICAgaWYgKGN1cnJlbnRQcm9jZXNzICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPG51bGwgfCBudW1iZXI+KHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRQcm9jZXNzLm9uKFwiZXhpdFwiLCBjb2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gcHJvY2VzcyBzdGFydGVkXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVFeGl0ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmtpbGwoKTtcbiAgICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxtQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBUU8sTUFBTUksa0JBQWtCLENBQUM7RUFRckJDLFdBQVdBLENBQUNDLFNBQWdDLEVBQUU7SUFBQSxLQVBwQ0EsU0FBUztJQUFBLEtBQ2xCQyxPQUFPO0lBQUEsS0FFQ0MsUUFBUSxHQUFHLElBQUFDLHdCQUFXLEVBQVcsQ0FBQztJQUFBLEtBQ2xDQyxRQUFRLEdBQUcsSUFBQUQsd0JBQVcsRUFBVyxDQUFDO0lBQUEsS0FDMUNFLFlBQVk7SUFBQSxLQW1FSEMsVUFBVSxHQUFHLFlBQTJCO01BQ3JELE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBbEVHLElBQUksQ0FBQ1AsU0FBUyxHQUFHQSxTQUFTO0VBQzlCO0VBRUEsTUFBYU8sSUFBSUEsQ0FBQSxFQUFrQjtJQUFBLElBQUFDLHFCQUFBLEVBQUFDLHFCQUFBO0lBQy9CLElBQUks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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellProcessHandle.js","names":["_child_process","require","_ConsoleApplication","_EventObject","_ProcessUtils","ShellProcessHandle","constructor","startInfo","process","onStdOut","createEvent","onStdErr","subscription","handleExit","kill","_processToKill$stderr","_processToKill$stdout","undefined","unsubscribe","processToKill","Error","pid","stderr","pause","stdout","ProcessUtils","killTreeAsync","waitOutputIncludesString","expectedString","Promise","resolve","subscribe","output","includes","start","_this$process$stdout","_this$process$stderr","ConsoleApplication","onExit","shellExe","shellArg","platform","
|
|
1
|
+
{"version":3,"file":"ShellProcessHandle.js","names":["_child_process","require","_ConsoleApplication","_EventObject","_ProcessUtils","ShellProcessHandle","constructor","startInfo","process","onStdOut","createEvent","onStdErr","subscription","handleExit","kill","_processToKill$stderr","_processToKill$stdout","undefined","unsubscribe","processToKill","Error","pid","stderr","pause","stdout","ProcessUtils","killTreeAsync","waitOutputIncludesString","expectedString","Promise","resolve","subscribe","output","includes","start","_this$process$stdout","_this$process$stderr","ConsoleApplication","onExit","shellExe","shellArg","platform","command","args","join","spawn","cwd","workingDirectory","stdio","on","data","emit","toString","waitForExit","currentProcess","code","exports"],"sources":["../../../../../src/BuildTasks/ProcessUtils/ShellProcessHandle.ts"],"sourcesContent":["import { ChildProcess, spawn } from \"child_process\";\n\nimport { ConsoleApplication } from \"../../Commons/ConsoleApplication/ConsoleApplication\";\nimport { createEvent, IEventSubscription } from \"../../Commons/EventObject\";\n\nimport { ProcessUtils } from \"./ProcessUtils\";\n\nexport interface ShellProcessStartInfo {\n command: string;\n args: string[];\n workingDirectory?: string;\n}\n\nexport class ShellProcessHandle {\n private readonly startInfo: ShellProcessStartInfo;\n private process?: ChildProcess;\n\n public readonly onStdOut = createEvent<[string]>();\n public readonly onStdErr = createEvent<[string]>();\n private subscription?: IEventSubscription;\n\n public constructor(startInfo: ShellProcessStartInfo) {\n this.startInfo = startInfo;\n }\n\n public async kill(): Promise<void> {\n if (this.subscription != undefined) {\n this.subscription.unsubscribe();\n }\n const processToKill = this.process;\n if (processToKill == undefined) {\n throw new Error(\"Process not started\");\n }\n const pid = processToKill.pid;\n this.process = undefined;\n processToKill.stderr?.pause();\n processToKill.stdout?.pause();\n await ProcessUtils.killTreeAsync(pid);\n }\n\n public waitOutputIncludesString(expectedString: string): Promise<void> {\n return new Promise<void>(resolve => {\n const subscription = this.onStdOut.subscribe(output => {\n if (output.includes(expectedString)) {\n subscription.unsubscribe();\n resolve();\n }\n });\n });\n }\n\n public start(): void {\n this.subscription = ConsoleApplication.onExit.subscribe(this.handleExit);\n let shellExe: string, shellArg: string[];\n if (process.platform === \"win32\") {\n shellExe = \"cmd.exe\";\n shellArg = [\"/c\", this.startInfo.command, ...this.startInfo.args];\n } else {\n shellExe = \"/bin/sh\";\n shellArg = [\"-c\", [this.startInfo.command, ...this.startInfo.args].join(\" \")];\n }\n this.process = spawn(shellExe, shellArg, {\n cwd: this.startInfo.workingDirectory,\n stdio: \"pipe\",\n });\n this.process.stdout?.on(\"data\", (data: Buffer | string) => {\n this.onStdOut.emit(data.toString());\n });\n this.process.stderr?.on(\"data\", (data: Buffer | string) => {\n this.onStdErr.emit(data.toString());\n });\n }\n\n public waitForExit(): Promise<null | number> {\n const currentProcess = this.process;\n if (currentProcess != undefined) {\n return new Promise<null | number>(resolve => {\n currentProcess.on(\"exit\", code => {\n resolve(code);\n });\n });\n } else {\n throw new Error(\"No process started\");\n }\n }\n\n private readonly handleExit = async (): Promise<void> => {\n await this.kill();\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -63,8 +63,8 @@ let BuildServerBackendResourcesUpdatesController = exports.BuildServerBackendRes
|
|
|
63
63
|
recursive: true
|
|
64
64
|
}, _lodash.default.debounce((x, y) => this.handleFarmFSUpdate(x, y, config.farmDirectory), 200)));
|
|
65
65
|
this.formWatchers = this.allFarmConfig.map(config => {
|
|
66
|
-
const formRootDirectory = _path.default.normalize(_path.default.join(config.farmDirectory, ".."));
|
|
67
|
-
return (0, _fs.watch)(
|
|
66
|
+
const formRootDirectory = _path.default.normalize(_path.default.join(config.farmDirectory, "..", _WellKnownDirectories.WellKnownDirectories.FormsDirectory));
|
|
67
|
+
return (0, _fs.watch)(formRootDirectory, {
|
|
68
68
|
recursive: true
|
|
69
69
|
}, _lodash.default.debounce((x, y) => this.handleFormFSUpdate(x, y, formRootDirectory), 200));
|
|
70
70
|
});
|
|
@@ -101,4 +101,4 @@ class Monitor {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvZGFzaCIsIl9Bc3luY1V0aWxzIiwiX01ldGhvZHMiLCJfUGFyYW1zIiwiX1Jlc3VsdHMiLCJfU2luZ2xldG9uQ29udHJvbGxlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9HbG9iVG9SZWdleHAiLCJfZGVjIiwiX2NsYXNzIiwiQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIiLCJleHBvcnRzIiwiaHR0cEdldCIsImh0dHBSZXR1cm4iLCJQbGFpblRleHQiLCJodHRwUXVlcnlQYXJhbSIsImh0dHBUeXBlIiwiTnVtYmVyIiwiU2luZ2xldG9uQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWxsRmFybUNvbmZpZyIsImxhc3RVcGRhdGVUaW1lIiwidXBkYXRlTW9uaXRvciIsIk1vbml0b3IiLCJmYXJtV2F0Y2hlcnMiLCJmb3JtV2F0Y2hlcnMiLCJyZXNvdXJjZXNXYXRjaGVyIiwiZmFybVdhdGNoaW5nUmVnZXhwcyIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybUpzb25GaWxlTmFtZSIsIm1hcCIsImdsb2JUb1JlZ2V4cCIsImZvcm1zV2F0Y2hpbmdSZWdleHBzIiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwiaGFuZGxlRmFybUZTVXBkYXRlIiwiZXZlbnRUeXBlIiwiZmlsZVBhdGgiLCJyb290RGlyIiwic29tZSIsIngiLCJ0ZXN0Iiwic3RhdCIsInBhdGgiLCJqb2luIiwiZXJyIiwiZmlsZVN0YXQiLCJmaWxlVGlja3MiLCJNYXRoIiwibWF4IiwibXRpbWVNcyIsImN0aW1lTXMiLCJEYXRlIiwibm93IiwicHVsc2VBbGwiLCJoYW5kbGVGb3JtRlNVcGRhdGUiLCJiZWZvcmVTdGFydCIsImNvbmZpZyIsIndhdGNoIiwiZmFybURpcmVjdG9yeSIsInJlY3Vyc2l2ZSIsIl8iLCJkZWJvdW5jZSIsInkiLCJmb3JtUm9vdERpcmVjdG9yeSIsIm5vcm1hbGl6ZSIsImdldExhc3RVcGRhdGVUaW1lIiwicHJldkxhc3RVcGRhdGVUaW1lIiwidW5kZWZpbmVkIiwidG9TdHJpbmciLCJQcm9taXNlIiwicmFjZSIsIndhaXQiLCJkZWxheSIsImFmdGVyU3RvcCIsIl90aGlzJGZhcm1XYXRjaGVycyIsIl90aGlzJGZvcm1XYXRjaGVycyIsIl90aGlzJHJlc291cmNlc1dhdGNoZSIsImkiLCJjbG9zZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IyIiwiZGVmYXVsdCIsInByb3RvdHlwZSIsIk9iamVjdCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImF3YWl0ZXJzIiwid2FpdFByb21pc2VIYW5kbGVyIiwicmVzb2x2ZSIsInB1c2giLCJhd2FpdGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZTV2F0Y2hlciwgd2F0Y2gsIHN0YXQgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IEZhcm1Db25maWcgfSBmcm9tIFwiVG9vbHMvc3JjL0NhbmR5Q0xJXCI7XG5cbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9Bc3luY1V0aWxzXCI7XG5pbXBvcnQgeyBodHRwR2V0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL01ldGhvZHNcIjtcbmltcG9ydCB7IGh0dHBRdWVyeVBhcmFtLCBodHRwVHlwZSB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9QYXJhbXNcIjtcbmltcG9ydCB7IGh0dHBSZXR1cm4gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0c1wiO1xuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IGdsb2JUb1JlZ2V4cCB9IGZyb20gXCIuL0dsb2JUb1JlZ2V4cFwiO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIgZXh0ZW5kcyBTaW5nbGV0b25Db250cm9sbGVyIHtcbiAgICBwcml2YXRlIGxhc3RVcGRhdGVUaW1lID0gMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwZGF0ZU1vbml0b3I6IE1vbml0b3IgPSBuZXcgTW9uaXRvcigpO1xuICAgIHByaXZhdGUgZmFybVdhdGNoZXJzPzogRlNXYXRjaGVyW107XG4gICAgcHJpdmF0ZSBmb3JtV2F0Y2hlcnM/OiBGU1dhdGNoZXJbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlc1dhdGNoZXI/OiBGU1dhdGNoZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxGYXJtQ29uZmlnOiBGYXJtQ29uZmlnW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtV2F0Y2hpbmdSZWdleHBzID0gW1xuICAgICAgICBcImZvcm1zLyovc2NoZW1hcy8qLnJuZy54bWxcIixcbiAgICAgICAgXCJmb3Jtcy8qL2NvbnZlcnRlcnMvKlwiLFxuICAgICAgICBcImZvcm1zLyovbWVyZ2Vycy8qXCIsXG4gICAgICAgIC8vIE5PVEUg0KLRg9GCINGC0LDQutC+0LUg0LTQtdC70L46INC/0L7Rh9C10LzRgy3RgtC+INC40L3QvtCz0LTQsCAo0LjQvdC+0LPQtNCwLCDRgtC+INC10YHRgtGMINC90LUg0LLRgdC10LPQtNCwISksINC60L7Qs9C00LAg0L3QsNC8INC/0YDQuNGF0L7QtNC40YIg0LfQsNC/0YDQvtGBINC90LBcbiAgICAgICAgLy8gZm9ybXMvKi9wcmVzZW50YXRpb25zLmpzb24g0LIg0Y3RgtC+0Lwg0LrQu9Cw0YHRgdC1INCy0L7Qt9C90LjQutCw0LXRgiDRgdC+0LHRi9GC0LjQtSDQvtCxINC40LfQvNC10L3QuNC4INGN0YLQvtCz0L4g0YTQsNC50LvQsCDQuCDQvNGLINCz0LXQvdC10YDQuNC8INC+0YfQtdC90Ywg0LzQvdC+0LPQvlxuICAgICAgICAvLyDQu9C40YjQvdC40YUg0YHQvtCx0YvRgtC40Lkg0L7QsSDQuNC30LzQtdC90LjQuCDRgNC10YHRg9GA0YHQvtCyINC4IENhbmR5QXBpINC30LDQstC40YHQsNC10YIuINCvINC/0L7QutCwINC90LUg0YHQvNC+0LMg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQv9C+0YfQtdC80YMg0Y3RgtC+INGC0LDQui5cbiAgICAgICAgLy8gXCJmb3Jtcy8qL3ByZXNlbnRhdGlvbnMuanNvblwiLFxuICAgICAgICBgZm9ybXMvKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgXCJmb3Jtcy8qL3N1Z2FyLyoueG1sXCIsXG4gICAgICAgIFwiZm9ybXMvKi9ub3JtYWxpemUvKi54bWxcIixcbiAgICAgICAgXCJmb3Jtcy8qL3VubWFwLyoueG1sXCIsXG4gICAgICAgIFwiZm9ybXMvKi9tYXAvKi54bWxcIixcbiAgICAgICAgXCJmb3Jtcy8qL3BhdGNoLyoueHNsdFwiLFxuICAgICAgICBcInBpY2tsaXN0cy8qXCIsXG4gICAgXS5tYXAoZ2xvYlRvUmVnZXhwKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1zV2F0Y2hpbmdSZWdleHBzID0gW1xuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3NjaGVtYXMvKi5ybmcueG1sYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9jb252ZXJ0ZXJzLypgLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L21lcmdlcnMvKmAsXG4gICAgICAgIGBmb3Jtcy8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vcHJlc2VudGF0aW9ucy5qc29uYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9zdWdhci8qLnhtbGAsXG4gICAgICAgIGBmb3Jtcy8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vbm9ybWFsaXplLyoueG1sYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS91bm1hcC8qLnhtbGAsXG4gICAgICAgIGBmb3Jtcy8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vbWFwLyoueG1sYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9wYXRjaC8qLnhzbHRgLFxuICAgIF0ubWFwKGdsb2JUb1JlZ2V4cCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYWxsRmFybUNvbmZpZyA9IGFsbEZhcm1Db25maWc7XG4gICAgICAgIHRoaXMubGFzdFVwZGF0ZVRpbWUgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBiZWZvcmVTdGFydCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mYXJtV2F0Y2hlcnMgPSB0aGlzLmFsbEZhcm1Db25maWcubWFwKGNvbmZpZyA9PlxuICAgICAgICAgICAgd2F0Y2goXG4gICAgICAgICAgICAgICAgY29uZmlnLmZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgeyByZWN1cnNpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBfLmRlYm91bmNlKCh4OiBzdHJpbmcsIHk6IHN0cmluZykgPT4gdGhpcy5oYW5kbGVGYXJtRlNVcGRhdGUoeCwgeSwgY29uZmlnLmZhcm1EaXJlY3RvcnkpLCAyMDApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZm9ybVdhdGNoZXJzID0gdGhpcy5hbGxGYXJtQ29uZmlnLm1hcChjb25maWcgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVJvb3REaXJlY3RvcnkgPSBwYXRoLm5vcm1hbGl6ZShwYXRoLmpvaW4oY29uZmlnLmZhcm1EaXJlY3RvcnksIFwiLi5cIikpO1xuICAgICAgICAgICAgcmV0dXJuIHdhdGNoKFxuICAgICAgICAgICAgICAgIHBhdGgubm9ybWFsaXplKHBhdGguam9pbihjb25maWcuZmFybURpcmVjdG9yeSwgXCIuLlwiKSksXG4gICAgICAgICAgICAgICAgeyByZWN1cnNpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBfLmRlYm91bmNlKCh4OiBzdHJpbmcsIHk6IHN0cmluZykgPT4gdGhpcy5oYW5kbGVGb3JtRlNVcGRhdGUoeCwgeSwgZm9ybVJvb3REaXJlY3RvcnkpLCAyMDApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcbiAgICAgICAgXCIvdXBkYXRlcy1vYnNlcnZlci9jaGVjay1sYXN0LXVwZGF0ZS1sb25nLXBvbGxcIixcbiAgICAgICAgaHR0cFJldHVybi5QbGFpblRleHQsXG4gICAgICAgIGh0dHBRdWVyeVBhcmFtKFwicHJldkxhc3RVcGRhdGVcIiwgaHR0cFR5cGUuTnVtYmVyKVxuICAgIClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TGFzdFVwZGF0ZVRpbWUocHJldkxhc3RVcGRhdGVUaW1lPzogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKHByZXZMYXN0VXBkYXRlVGltZSA9PSB1bmRlZmluZWQgfHwgcHJldkxhc3RVcGRhdGVUaW1lIDwgdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGFzdFVwZGF0ZVRpbWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMudXBkYXRlTW9uaXRvci53YWl0KCksIGRlbGF5KDYwMDAwKV0pO1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VXBkYXRlVGltZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhZnRlclN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZmFybVdhdGNoZXJzPy5tYXAoaSA9PiBpLmNsb3NlKCkpO1xuICAgICAgICB0aGlzLmZvcm1XYXRjaGVycz8ubWFwKGkgPT4gaS5jbG9zZSgpKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZXNXYXRjaGVyPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlRmFybUZTVXBkYXRlID0gKGV2ZW50VHlwZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCByb290RGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZmFybVdhdGNoaW5nUmVnZXhwcy5zb21lKHggPT4geC50ZXN0KGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHN0YXQocGF0aC5qb2luKHJvb3REaXIsIGZpbGVQYXRoKSwgKGVyciwgZmlsZVN0YXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVGlja3MgPSBNYXRoLm1heChmaWxlU3RhdC5tdGltZU1zLCBmaWxlU3RhdC5jdGltZU1zKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZVRpY2tzID4gdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RVcGRhdGVUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb25pdG9yLnB1bHNlQWxsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVGb3JtRlNVcGRhdGUgPSAoZXZlbnRUeXBlOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcsIHJvb3REaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodGhpcy5mb3Jtc1dhdGNoaW5nUmVnZXhwcy5zb21lKHggPT4geC50ZXN0KGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHN0YXQocGF0aC5qb2luKHJvb3REaXIsIGZpbGVQYXRoKSwgKGVyciwgZmlsZVN0YXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVGlja3MgPSBNYXRoLm1heChmaWxlU3RhdC5tdGltZU1zLCBmaWxlU3RhdC5jdGltZU1zKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZVRpY2tzID4gdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RVcGRhdGVUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb25pdG9yLnB1bHNlQWxsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5jbGFzcyBNb25pdG9yIHtcbiAgICBwcml2YXRlIGF3YWl0ZXJzOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuXG4gICAgcHVibGljIHdhaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSh0aGlzLndhaXRQcm9taXNlSGFuZGxlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHB1bHNlQWxsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhd2FpdGVycyA9IFsuLi50aGlzLmF3YWl0ZXJzXTtcbiAgICAgICAgdGhpcy5hd2FpdGVycyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGF3YWl0ZXIgb2YgYXdhaXRlcnMpIHtcbiAgICAgICAgICAgIGF3YWl0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2FpdFByb21pc2VIYW5kbGVyID0gKHJlc29sdmU6ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5hd2FpdGVycy5wdXNoKHJlc29sdmUpO1xuICAgIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLHFCQUFBLEdBQUFULE9BQUE7QUFFQSxJQUFBVSxhQUFBLEdBQUFWLE9BQUE7QUFBOEMsSUFBQVcsSUFBQSxFQUFBQyxNQUFBO0FBQUEsSUFFakNDLDRDQUE0QyxHQUFBQyxPQUFBLENBQUFELDRDQUFBLElB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
|
|
104
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvZGFzaCIsIl9Bc3luY1V0aWxzIiwiX01ldGhvZHMiLCJfUGFyYW1zIiwiX1Jlc3VsdHMiLCJfU2luZ2xldG9uQ29udHJvbGxlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9HbG9iVG9SZWdleHAiLCJfZGVjIiwiX2NsYXNzIiwiQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIiLCJleHBvcnRzIiwiaHR0cEdldCIsImh0dHBSZXR1cm4iLCJQbGFpblRleHQiLCJodHRwUXVlcnlQYXJhbSIsImh0dHBUeXBlIiwiTnVtYmVyIiwiU2luZ2xldG9uQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWxsRmFybUNvbmZpZyIsImxhc3RVcGRhdGVUaW1lIiwidXBkYXRlTW9uaXRvciIsIk1vbml0b3IiLCJmYXJtV2F0Y2hlcnMiLCJmb3JtV2F0Y2hlcnMiLCJyZXNvdXJjZXNXYXRjaGVyIiwiZmFybVdhdGNoaW5nUmVnZXhwcyIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybUpzb25GaWxlTmFtZSIsIm1hcCIsImdsb2JUb1JlZ2V4cCIsImZvcm1zV2F0Y2hpbmdSZWdleHBzIiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwiaGFuZGxlRmFybUZTVXBkYXRlIiwiZXZlbnRUeXBlIiwiZmlsZVBhdGgiLCJyb290RGlyIiwic29tZSIsIngiLCJ0ZXN0Iiwic3RhdCIsInBhdGgiLCJqb2luIiwiZXJyIiwiZmlsZVN0YXQiLCJmaWxlVGlja3MiLCJNYXRoIiwibWF4IiwibXRpbWVNcyIsImN0aW1lTXMiLCJEYXRlIiwibm93IiwicHVsc2VBbGwiLCJoYW5kbGVGb3JtRlNVcGRhdGUiLCJiZWZvcmVTdGFydCIsImNvbmZpZyIsIndhdGNoIiwiZmFybURpcmVjdG9yeSIsInJlY3Vyc2l2ZSIsIl8iLCJkZWJvdW5jZSIsInkiLCJmb3JtUm9vdERpcmVjdG9yeSIsIm5vcm1hbGl6ZSIsIkZvcm1zRGlyZWN0b3J5IiwiZ2V0TGFzdFVwZGF0ZVRpbWUiLCJwcmV2TGFzdFVwZGF0ZVRpbWUiLCJ1bmRlZmluZWQiLCJ0b1N0cmluZyIsIlByb21pc2UiLCJyYWNlIiwid2FpdCIsImRlbGF5IiwiYWZ0ZXJTdG9wIiwiX3RoaXMkZmFybVdhdGNoZXJzIiwiX3RoaXMkZm9ybVdhdGNoZXJzIiwiX3RoaXMkcmVzb3VyY2VzV2F0Y2hlIiwiaSIsImNsb3NlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvcjIiLCJkZWZhdWx0IiwicHJvdG90eXBlIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiYXdhaXRlcnMiLCJ3YWl0UHJvbWlzZUhhbmRsZXIiLCJyZXNvbHZlIiwicHVzaCIsImF3YWl0ZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlNXYXRjaGVyLCB3YXRjaCwgc3RhdCB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgRmFybUNvbmZpZyB9IGZyb20gXCJUb29scy9zcmMvQ2FuZHlDTElcIjtcblxuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0FzeW5jVXRpbHNcIjtcbmltcG9ydCB7IGh0dHBHZXQgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTWV0aG9kc1wiO1xuaW1wb3J0IHsgaHR0cFF1ZXJ5UGFyYW0sIGh0dHBUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1BhcmFtc1wiO1xuaW1wb3J0IHsgaHR0cFJldHVybiB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9SZXN1bHRzXCI7XG5pbXBvcnQgeyBTaW5nbGV0b25Db250cm9sbGVyIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9TaW5nbGV0b25Db250cm9sbGVyXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuaW1wb3J0IHsgZ2xvYlRvUmVnZXhwIH0gZnJvbSBcIi4vR2xvYlRvUmVnZXhwXCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgbGFzdFVwZGF0ZVRpbWUgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlTW9uaXRvcjogTW9uaXRvciA9IG5ldyBNb25pdG9yKCk7XG4gICAgcHJpdmF0ZSBmYXJtV2F0Y2hlcnM/OiBGU1dhdGNoZXJbXTtcbiAgICBwcml2YXRlIGZvcm1XYXRjaGVycz86IEZTV2F0Y2hlcltdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VzV2F0Y2hlcj86IEZTV2F0Y2hlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhcm1XYXRjaGluZ1JlZ2V4cHMgPSBbXG4gICAgICAgIFwiZm9ybXMvKi9zY2hlbWFzLyoucm5nLnhtbFwiLFxuICAgICAgICBcImZvcm1zLyovY29udmVydGVycy8qXCIsXG4gICAgICAgIFwiZm9ybXMvKi9tZXJnZXJzLypcIixcbiAgICAgICAgLy8gTk9URSDQotGD0YIg0YLQsNC60L7QtSDQtNC10LvQvjog0L/QvtGH0LXQvNGDLdGC0L4g0LjQvdC+0LPQtNCwICjQuNC90L7Qs9C00LAsINGC0L4g0LXRgdGC0Ywg0L3QtSDQstGB0LXQs9C00LAhKSwg0LrQvtCz0LTQsCDQvdCw0Lwg0L/RgNC40YXQvtC00LjRgiDQt9Cw0L/RgNC+0YEg0L3QsFxuICAgICAgICAvLyBmb3Jtcy8qL3ByZXNlbnRhdGlvbnMuanNvbiDQsiDRjdGC0L7QvCDQutC70LDRgdGB0LUg0LLQvtC30L3QuNC60LDQtdGCINGB0L7QsdGL0YLQuNC1INC+0LEg0LjQt9C80LXQvdC40Lgg0Y3RgtC+0LPQviDRhNCw0LnQu9CwINC4INC80Ysg0LPQtdC90LXRgNC40Lwg0L7Rh9C10L3RjCDQvNC90L7Qs9C+XG4gICAgICAgIC8vINC70LjRiNC90LjRhSDRgdC+0LHRi9GC0LjQuSDQvtCxINC40LfQvNC10L3QuNC4INGA0LXRgdGD0YDRgdC+0LIg0LggQ2FuZHlBcGkg0LfQsNCy0LjRgdCw0LXRgi4g0K8g0L/QvtC60LAg0L3QtSDRgdC80L7QsyDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINC/0L7Rh9C10LzRgyDRjdGC0L4g0YLQsNC6LlxuICAgICAgICAvLyBcImZvcm1zLyovcHJlc2VudGF0aW9ucy5qc29uXCIsXG4gICAgICAgIGBmb3Jtcy8qLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZX1gLFxuICAgICAgICBcImZvcm1zLyovc3VnYXIvKi54bWxcIixcbiAgICAgICAgXCJmb3Jtcy8qL25vcm1hbGl6ZS8qLnhtbFwiLFxuICAgICAgICBcImZvcm1zLyovdW5tYXAvKi54bWxcIixcbiAgICAgICAgXCJmb3Jtcy8qL21hcC8qLnhtbFwiLFxuICAgICAgICBcImZvcm1zLyovcGF0Y2gvKi54c2x0XCIsXG4gICAgICAgIFwicGlja2xpc3RzLypcIixcbiAgICBdLm1hcChnbG9iVG9SZWdleHApO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybXNXYXRjaGluZ1JlZ2V4cHMgPSBbXG4gICAgICAgIGBmb3Jtcy8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vc2NoZW1hcy8qLnJuZy54bWxgLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L2NvbnZlcnRlcnMvKmAsXG4gICAgICAgIGBmb3Jtcy8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vbWVyZ2Vycy8qYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9wcmVzZW50YXRpb25zLmpzb25gLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9LyR7V2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZX1gLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3N1Z2FyLyoueG1sYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9ub3JtYWxpemUvKi54bWxgLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3VubWFwLyoueG1sYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9tYXAvKi54bWxgLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3BhdGNoLyoueHNsdGAsXG4gICAgXS5tYXAoZ2xvYlRvUmVnZXhwKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhbGxGYXJtQ29uZmlnOiBGYXJtQ29uZmlnW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hbGxGYXJtQ29uZmlnID0gYWxsRmFybUNvbmZpZztcbiAgICAgICAgdGhpcy5sYXN0VXBkYXRlVGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGJlZm9yZVN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZhcm1XYXRjaGVycyA9IHRoaXMuYWxsRmFybUNvbmZpZy5tYXAoY29uZmlnID0+XG4gICAgICAgICAgICB3YXRjaChcbiAgICAgICAgICAgICAgICBjb25maWcuZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICB7IHJlY3Vyc2l2ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIF8uZGVib3VuY2UoKHg6IHN0cmluZywgeTogc3RyaW5nKSA9PiB0aGlzLmhhbmRsZUZhcm1GU1VwZGF0ZSh4LCB5LCBjb25maWcuZmFybURpcmVjdG9yeSksIDIwMClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5mb3JtV2F0Y2hlcnMgPSB0aGlzLmFsbEZhcm1Db25maWcubWFwKGNvbmZpZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtUm9vdERpcmVjdG9yeSA9IHBhdGgubm9ybWFsaXplKFxuICAgICAgICAgICAgICAgIHBhdGguam9pbihjb25maWcuZmFybURpcmVjdG9yeSwgXCIuLlwiLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3Jtc0RpcmVjdG9yeSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gd2F0Y2goXG4gICAgICAgICAgICAgICAgZm9ybVJvb3REaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgeyByZWN1cnNpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBfLmRlYm91bmNlKCh4OiBzdHJpbmcsIHk6IHN0cmluZykgPT4gdGhpcy5oYW5kbGVGb3JtRlNVcGRhdGUoeCwgeSwgZm9ybVJvb3REaXJlY3RvcnkpLCAyMDApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcbiAgICAgICAgXCIvdXBkYXRlcy1vYnNlcnZlci9jaGVjay1sYXN0LXVwZGF0ZS1sb25nLXBvbGxcIixcbiAgICAgICAgaHR0cFJldHVybi5QbGFpblRleHQsXG4gICAgICAgIGh0dHBRdWVyeVBhcmFtKFwicHJldkxhc3RVcGRhdGVcIiwgaHR0cFR5cGUuTnVtYmVyKVxuICAgIClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TGFzdFVwZGF0ZVRpbWUocHJldkxhc3RVcGRhdGVUaW1lPzogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKHByZXZMYXN0VXBkYXRlVGltZSA9PSB1bmRlZmluZWQgfHwgcHJldkxhc3RVcGRhdGVUaW1lIDwgdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGFzdFVwZGF0ZVRpbWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMudXBkYXRlTW9uaXRvci53YWl0KCksIGRlbGF5KDYwMDAwKV0pO1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VXBkYXRlVGltZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhZnRlclN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZmFybVdhdGNoZXJzPy5tYXAoaSA9PiBpLmNsb3NlKCkpO1xuICAgICAgICB0aGlzLmZvcm1XYXRjaGVycz8ubWFwKGkgPT4gaS5jbG9zZSgpKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZXNXYXRjaGVyPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlRmFybUZTVXBkYXRlID0gKGV2ZW50VHlwZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCByb290RGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZmFybVdhdGNoaW5nUmVnZXhwcy5zb21lKHggPT4geC50ZXN0KGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHN0YXQocGF0aC5qb2luKHJvb3REaXIsIGZpbGVQYXRoKSwgKGVyciwgZmlsZVN0YXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVGlja3MgPSBNYXRoLm1heChmaWxlU3RhdC5tdGltZU1zLCBmaWxlU3RhdC5jdGltZU1zKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZVRpY2tzID4gdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RVcGRhdGVUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb25pdG9yLnB1bHNlQWxsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVGb3JtRlNVcGRhdGUgPSAoZXZlbnRUeXBlOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcsIHJvb3REaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodGhpcy5mb3Jtc1dhdGNoaW5nUmVnZXhwcy5zb21lKHggPT4geC50ZXN0KGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHN0YXQocGF0aC5qb2luKHJvb3REaXIsIGZpbGVQYXRoKSwgKGVyciwgZmlsZVN0YXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVGlja3MgPSBNYXRoLm1heChmaWxlU3RhdC5tdGltZU1zLCBmaWxlU3RhdC5jdGltZU1zKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZVRpY2tzID4gdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RVcGRhdGVUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb25pdG9yLnB1bHNlQWxsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5jbGFzcyBNb25pdG9yIHtcbiAgICBwcml2YXRlIGF3YWl0ZXJzOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuXG4gICAgcHVibGljIHdhaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSh0aGlzLndhaXRQcm9taXNlSGFuZGxlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHB1bHNlQWxsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhd2FpdGVycyA9IFsuLi50aGlzLmF3YWl0ZXJzXTtcbiAgICAgICAgdGhpcy5hd2FpdGVycyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGF3YWl0ZXIgb2YgYXdhaXRlcnMpIHtcbiAgICAgICAgICAgIGF3YWl0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2FpdFByb21pc2VIYW5kbGVyID0gKHJlc29sdmU6ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5hd2FpdGVycy5wdXNoKHJlc29sdmUpO1xuICAgIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLHFCQUFBLEdBQUFULE9BQUE7QUFFQSxJQUFBVSxhQUFBLEdBQUFWLE9BQUE7QUFBOEMsSUFBQVcsSUFBQSxFQUFBQyxN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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildServerBackendResourcesUpdatesController.js","names":["_fs","require","_path","_interopRequireDefault","_lodash","_AsyncUtils","_Methods","_Params","_Results","_SingletonController","_WellKnownDirectories","_GlobToRegexp","_dec","_class","BuildServerBackendResourcesUpdatesController","exports","httpGet","httpReturn","PlainText","httpQueryParam","httpType","Number","SingletonController","constructor","allFarmConfig","lastUpdateTime","updateMonitor","Monitor","farmWatchers","formWatchers","resourcesWatcher","farmWatchingRegexps","WellKnownDirectories","FormJsonFileName","map","globToRegexp","formsWatchingRegexps","CandySubdirectoryName","handleFarmFSUpdate","eventType","filePath","rootDir","some","x","test","stat","path","join","err","fileStat","fileTicks","Math","max","mtimeMs","ctimeMs","Date","now","pulseAll","handleFormFSUpdate","beforeStart","config","watch","farmDirectory","recursive","_","debounce","y","formRootDirectory","normalize","getLastUpdateTime","prevLastUpdateTime","undefined","toString","Promise","race","wait","delay","afterStop","_this$farmWatchers","_this$formWatchers","_this$resourcesWatche","i","close","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor","awaiters","waitPromiseHandler","resolve","push","awaiter"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.ts"],"sourcesContent":["import { FSWatcher, watch, stat } from \"fs\";\nimport path from \"path\";\n\nimport _ from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { delay } from \"../../../../../Common/AsyncUtils\";\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpQueryParam, httpType } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\n\nimport { globToRegexp } from \"./GlobToRegexp\";\n\nexport class BuildServerBackendResourcesUpdatesController extends SingletonController {\n private lastUpdateTime = 0;\n private readonly updateMonitor: Monitor = new Monitor();\n private farmWatchers?: FSWatcher[];\n private formWatchers?: FSWatcher[];\n private readonly resourcesWatcher?: FSWatcher;\n private readonly allFarmConfig: FarmConfig[];\n private readonly farmWatchingRegexps = [\n \"forms/*/schemas/*.rng.xml\",\n \"forms/*/converters/*\",\n \"forms/*/mergers/*\",\n // NOTE Тут такое дело: почему-то иногда (иногда, то есть не всегда!), когда нам приходит запрос на\n // forms/*/presentations.json в этом классе возникает событие об измении этого файла и мы генерим очень много\n // лишних событий об измении ресурсов и CandyApi зависает. Я пока не смог разобраться почему это так.\n // \"forms/*/presentations.json\",\n `forms/*/${WellKnownDirectories.FormJsonFileName}`,\n \"forms/*/sugar/*.xml\",\n \"forms/*/normalize/*.xml\",\n \"forms/*/unmap/*.xml\",\n \"forms/*/map/*.xml\",\n \"forms/*/patch/*.xslt\",\n \"picklists/*\",\n ].map(globToRegexp);\n private readonly formsWatchingRegexps = [\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/schemas/*.rng.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/converters/*`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/mergers/*`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/presentations.json`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/sugar/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/normalize/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/unmap/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/map/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/patch/*.xslt`,\n ].map(globToRegexp);\n\n public constructor(allFarmConfig: FarmConfig[]) {\n super();\n this.allFarmConfig = allFarmConfig;\n this.lastUpdateTime = Date.now();\n }\n\n public async beforeStart(): Promise<void> {\n this.farmWatchers = this.allFarmConfig.map(config =>\n watch(\n config.farmDirectory,\n { recursive: true },\n _.debounce((x: string, y: string) => this.handleFarmFSUpdate(x, y, config.farmDirectory), 200)\n )\n );\n this.formWatchers = this.allFarmConfig.map(config => {\n const formRootDirectory = path.normalize(path.join(config.farmDirectory, \"..\"));\n return watch(\n path.normalize(path.join(config.farmDirectory, \"..\")),\n { recursive: true },\n _.debounce((x: string, y: string) => this.handleFormFSUpdate(x, y, formRootDirectory), 200)\n );\n });\n }\n\n @httpGet(\n \"/updates-observer/check-last-update-long-poll\",\n httpReturn.PlainText,\n httpQueryParam(\"prevLastUpdate\", httpType.Number)\n )\n public async getLastUpdateTime(prevLastUpdateTime?: number): Promise<string> {\n if (prevLastUpdateTime == undefined || prevLastUpdateTime < this.lastUpdateTime) {\n return this.lastUpdateTime.toString();\n }\n await Promise.race([this.updateMonitor.wait(), delay(60000)]);\n return this.lastUpdateTime.toString();\n }\n\n public async afterStop(): Promise<void> {\n this.farmWatchers?.map(i => i.close());\n this.formWatchers?.map(i => i.close());\n this.resourcesWatcher?.close();\n }\n\n private readonly handleFarmFSUpdate = (eventType: string, filePath: string, rootDir: string) => {\n if (this.farmWatchingRegexps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n\n private readonly handleFormFSUpdate = (eventType: string, filePath: string, rootDir: string) => {\n if (this.formsWatchingRegexps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n}\n\nclass Monitor {\n private awaiters: Array<() => void> = [];\n\n public wait(): Promise<void> {\n return new Promise(this.waitPromiseHandler);\n }\n\n public pulseAll(): void {\n const awaiters = [...this.awaiters];\n this.awaiters = [];\n for (const awaiter of awaiters) {\n awaiter();\n }\n }\n\n private readonly waitPromiseHandler = (resolve: () => void) => {\n this.awaiters.push(resolve);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BuildServerBackendResourcesUpdatesController.js","names":["_fs","require","_path","_interopRequireDefault","_lodash","_AsyncUtils","_Methods","_Params","_Results","_SingletonController","_WellKnownDirectories","_GlobToRegexp","_dec","_class","BuildServerBackendResourcesUpdatesController","exports","httpGet","httpReturn","PlainText","httpQueryParam","httpType","Number","SingletonController","constructor","allFarmConfig","lastUpdateTime","updateMonitor","Monitor","farmWatchers","formWatchers","resourcesWatcher","farmWatchingRegexps","WellKnownDirectories","FormJsonFileName","map","globToRegexp","formsWatchingRegexps","CandySubdirectoryName","handleFarmFSUpdate","eventType","filePath","rootDir","some","x","test","stat","path","join","err","fileStat","fileTicks","Math","max","mtimeMs","ctimeMs","Date","now","pulseAll","handleFormFSUpdate","beforeStart","config","watch","farmDirectory","recursive","_","debounce","y","formRootDirectory","normalize","FormsDirectory","getLastUpdateTime","prevLastUpdateTime","undefined","toString","Promise","race","wait","delay","afterStop","_this$farmWatchers","_this$formWatchers","_this$resourcesWatche","i","close","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor","awaiters","waitPromiseHandler","resolve","push","awaiter"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.ts"],"sourcesContent":["import { FSWatcher, watch, stat } from \"fs\";\nimport path from \"path\";\n\nimport _ from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { delay } from \"../../../../../Common/AsyncUtils\";\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpQueryParam, httpType } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\n\nimport { globToRegexp } from \"./GlobToRegexp\";\n\nexport class BuildServerBackendResourcesUpdatesController extends SingletonController {\n private lastUpdateTime = 0;\n private readonly updateMonitor: Monitor = new Monitor();\n private farmWatchers?: FSWatcher[];\n private formWatchers?: FSWatcher[];\n private readonly resourcesWatcher?: FSWatcher;\n private readonly allFarmConfig: FarmConfig[];\n private readonly farmWatchingRegexps = [\n \"forms/*/schemas/*.rng.xml\",\n \"forms/*/converters/*\",\n \"forms/*/mergers/*\",\n // NOTE Тут такое дело: почему-то иногда (иногда, то есть не всегда!), когда нам приходит запрос на\n // forms/*/presentations.json в этом классе возникает событие об измении этого файла и мы генерим очень много\n // лишних событий об измении ресурсов и CandyApi зависает. Я пока не смог разобраться почему это так.\n // \"forms/*/presentations.json\",\n `forms/*/${WellKnownDirectories.FormJsonFileName}`,\n \"forms/*/sugar/*.xml\",\n \"forms/*/normalize/*.xml\",\n \"forms/*/unmap/*.xml\",\n \"forms/*/map/*.xml\",\n \"forms/*/patch/*.xslt\",\n \"picklists/*\",\n ].map(globToRegexp);\n private readonly formsWatchingRegexps = [\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/schemas/*.rng.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/converters/*`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/mergers/*`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/presentations.json`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/sugar/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/normalize/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/unmap/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/map/*.xml`,\n `forms/**/${WellKnownDirectories.CandySubdirectoryName}/patch/*.xslt`,\n ].map(globToRegexp);\n\n public constructor(allFarmConfig: FarmConfig[]) {\n super();\n this.allFarmConfig = allFarmConfig;\n this.lastUpdateTime = Date.now();\n }\n\n public async beforeStart(): Promise<void> {\n this.farmWatchers = this.allFarmConfig.map(config =>\n watch(\n config.farmDirectory,\n { recursive: true },\n _.debounce((x: string, y: string) => this.handleFarmFSUpdate(x, y, config.farmDirectory), 200)\n )\n );\n this.formWatchers = this.allFarmConfig.map(config => {\n const formRootDirectory = path.normalize(\n path.join(config.farmDirectory, \"..\", WellKnownDirectories.FormsDirectory)\n );\n return watch(\n formRootDirectory,\n { recursive: true },\n _.debounce((x: string, y: string) => this.handleFormFSUpdate(x, y, formRootDirectory), 200)\n );\n });\n }\n\n @httpGet(\n \"/updates-observer/check-last-update-long-poll\",\n httpReturn.PlainText,\n httpQueryParam(\"prevLastUpdate\", httpType.Number)\n )\n public async getLastUpdateTime(prevLastUpdateTime?: number): Promise<string> {\n if (prevLastUpdateTime == undefined || prevLastUpdateTime < this.lastUpdateTime) {\n return this.lastUpdateTime.toString();\n }\n await Promise.race([this.updateMonitor.wait(), delay(60000)]);\n return this.lastUpdateTime.toString();\n }\n\n public async afterStop(): Promise<void> {\n this.farmWatchers?.map(i => i.close());\n this.formWatchers?.map(i => i.close());\n this.resourcesWatcher?.close();\n }\n\n private readonly handleFarmFSUpdate = (eventType: string, filePath: string, rootDir: string) => {\n if (this.farmWatchingRegexps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n\n private readonly handleFormFSUpdate = (eventType: string, filePath: string, rootDir: string) => {\n if (this.formsWatchingRegexps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n}\n\nclass Monitor {\n private awaiters: Array<() => void> = [];\n\n public wait(): Promise<void> {\n return new Promise(this.waitPromiseHandler);\n }\n\n public pulseAll(): void {\n const awaiters = [...this.awaiters];\n this.awaiters = [];\n for (const awaiter of awaiters) {\n awaiter();\n }\n }\n\n private readonly waitPromiseHandler = (resolve: () => void) => {\n this.awaiters.push(resolve);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,7 +46,7 @@ async function runFormCompilationViaWebpackDevServer(gfv, farmDirectory, formPat
|
|
|
46
46
|
webSocketURL: `wss://localhost.testkontur.ru:${port}/ws`
|
|
47
47
|
}
|
|
48
48
|
}, compiler);
|
|
49
|
-
server.
|
|
49
|
+
await server.start();
|
|
50
50
|
await (0, _AsyncUtils.delay)(1000);
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2VicGFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3dlYnBhY2tEZXZTZXJ2ZXIiLCJfQXN5bmNVdGlscyIsIl9jcmVhdGVGb3JtV2VicGFja0NvbmZpZ3VyYXRpb24iLCJydW5Gb3JtQ29tcGlsYXRpb25WaWFXZWJwYWNrRGV2U2VydmVyIiwiZ2Z2IiwiZmFybURpcmVjdG9yeSIsImZvcm1QYXRoIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwicmVzb3VyY2VzSGFzaCIsImJ1aWxkRGVidWdPbmx5IiwiZmlsZVN5c3RlbSIsInBvcnQiLCJjb25maWdzIiwiY3JlYXRlQ29uZmlnIiwibW9kZXMiLCJyZXNvdXJjZXNEaXJlY3RvcnlQYXRoIiwiY29tcGlsZXIiLCJ3ZWJwYWNrIiwiaW5wdXRGaWxlU3lzdGVtIiwiY29tcGlsZXJzIiwic2V0SW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJzaW5nbGVDb21waWxlciIsIndhdGNoRmlsZVN5c3RlbSIsInNlcnZlciIsIldlYnBhY2tEZXZTZXJ2ZXIiLCJhbGxvd2VkSG9zdHMiLCJ0eXBlIiwib3B0aW9ucyIsImNlcnQiLCJyZXNvbHZlIiwia2V5IiwiY2xpZW50Iiwib3ZlcmxheSIsIndlYlNvY2tldFVSTCIsInN0YXJ0IiwiZGVsYXkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGV2U2VydmVycy9SdW5Gb3JtQ29tcGlsYXRpb25WaWFXZWJwYWNrRGV2U2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB3ZWJwYWNrIGZyb20gXCJ3ZWJwYWNrXCI7XG5pbXBvcnQgV2VicGFja0RldlNlcnZlciBmcm9tIFwid2VicGFjay1kZXYtc2VydmVyXCI7XG5cbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9Bc3luY1V0aWxzXCI7XG5pbXBvcnQgeyBjcmVhdGVDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uL2NyZWF0ZUZvcm1XZWJwYWNrQ29uZmlndXJhdGlvblwiO1xuXG5pbXBvcnQgeyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSB9IGZyb20gXCIuL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5Gb3JtQ29tcGlsYXRpb25WaWFXZWJwYWNrRGV2U2VydmVyKFxuICAgIGdmdjogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmb3JtUGF0aDogc3RyaW5nLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIHJlc291cmNlc0hhc2g6IHN0cmluZyxcbiAgICBidWlsZERlYnVnT25seTogYm9vbGVhbixcbiAgICBmaWxlU3lzdGVtOiBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSxcbiAgICBwb3J0OiBudW1iZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBhd2FpdCBjcmVhdGVDb25maWcoe1xuICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgcmVzb3VyY2VzSGFzaDogcmVzb3VyY2VzSGFzaCxcbiAgICAgICAgZm9ybVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICBtb2RlczogYnVpbGREZWJ1Z09ubHkgPyBbXCJkZXZlbG9wbWVudFwiXSA6IFtcInByb2R1Y3Rpb25cIiwgXCJkZXZlbG9wbWVudFwiXSxcbiAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5UGF0aDogcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29tcGlsZXIgPSB3ZWJwYWNrKGNvbmZpZ3MpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGlucHV0RmlsZVN5c3RlbSA9IGNvbXBpbGVyLmNvbXBpbGVyc1swXS5pbnB1dEZpbGVTeXN0ZW0gYXMgYW55O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgZmlsZVN5c3RlbS5zZXRJbm5lcklucHV0RmlsZVN5c3RlbShpbnB1dEZpbGVTeXN0ZW0pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZm9yIChjb25zdCBzaW5nbGVDb21waWxlciBvZiBjb21waWxlci5jb21waWxlcnMgYXMgYW55W10pIHtcbiAgICAgICAgc2luZ2xlQ29tcGlsZXIuaW5wdXRGaWxlU3lzdGVtID0gZmlsZVN5c3RlbTtcbiAgICAgICAgc2luZ2xlQ29tcGlsZXIud2F0Y2hGaWxlU3lzdGVtID0gZmlsZVN5c3RlbTtcbiAgICB9XG4gICAgLy8gdHNsaW50OmVuYWJsZSBuby1hbnkgbm8tdW5zYWZlLWFueVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAgICAgICB7XG4gICAgICAgICAgICBwb3J0OiBwb3J0LFxuICAgICAgICAgICAgYWxsb3dlZEhvc3RzOiBcImFsbFwiLFxuICAgICAgICAgICAgc2VydmVyOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJodHRwc1wiLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgY2VydDogcmVxdWlyZS5yZXNvbHZlKFwiLi4vLi4vLi4vLi4vS2V5cy9sb2NhbGhvc3QucGVtXCIpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IHJlcXVpcmUucmVzb2x2ZShcIi4uLy4uLy4uLy4uL0tleXMvbG9jYWxob3N0LWtleS5wZW1cIiksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGllbnQ6IHtcbiAgICAgICAgICAgICAgICBvdmVybGF5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3ZWJTb2NrZXRVUkw6IGB3c3M6Ly9sb2NhbGhvc3QudGVzdGtvbnR1ci5ydToke3BvcnR9L3dzYCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBpbGVyXG4gICAgKTtcbiAgICBhd2FpdCBzZXJ2ZXIuc3RhcnQoKTtcbiAgICBhd2FpdCBkZWxheSgxMDAwKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRywrQkFBQSxHQUFBSCxPQUFBO0FBSU8sZUFBZUkscUNBQXFDQSxDQUN2REMsR0FBVyxFQUNYQyxhQUFxQixFQUNyQkMsUUFBZ0IsRUFDaEJDLGtCQUEwQixFQUMxQkMsYUFBcUIsRUFDckJDLGNBQXVCLEVBQ3ZCQyxVQUFtQyxFQUNuQ0MsSUFBWSxFQUNDO0VBQ2IsTUFBTUMsT0FBTyxHQUFHLE1BQU0sSUFBQUMsNENBQVksRUFBQztJQUMvQlQsR0FBRyxFQUFFQSxHQUFHO0lBQ1JJLGFBQWEsRUFBRUEsYUFBYTtJQUM1QkYsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCUSxLQUFLLEVBQUVMLGNBQWMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztJQUN2RU0sc0JBQXNCLEVBQUVSO0VBQzVCLENBQUMsQ0FBQztFQUVGLE1BQU1TLFFBQVEsR0FBRyxJQUFBQyxnQkFBTyxFQUFDTCxPQUFPLENBQUM7RUFDakM7RUFDQTtFQUNBLE1BQU1NLGVBQWUsR0FBR0YsUUFBUSxDQUFDRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUNELGVBQXNCO0VBQ3BFO0VBQ0FSLFVBQVUsQ0FBQ1UsdUJBQXVCLENBQUNGLGVBQWUsQ0FBQztFQUNuRDtFQUNBLEtBQUssTUFBTUcsY0FBYyxJQUFJTCxRQUFRLENBQUNHLFNBQVMsRUFBVztJQUN0REUsY0FBYyxDQUFDSCxlQUFlLEdBQUdSLFVBQVU7SUFDM0NXLGNBQWMsQ0FBQ0MsZUFBZSxHQUFHWixVQUFVO0VBQy9DO0VBQ0E7O0VBRUE7RUFDQSxNQUFNYSxNQUFNLEdBQUcsSUFBSUMseUJBQWdCLENBQy9CO0lBQ0liLElBQUksRUFBRUEsSUFBSTtJQUNWYyxZQUFZLEVBQUUsS0FBSztJQUNuQkYsTUFBTSxFQUFFO01BQ0pHLElBQUksRUFBRSxPQUFPO01BQ2JDLE9BQU8sRUFBRTtRQUNMQyxJQUFJLEVBQUU3QixPQUFPLENBQUM4QixPQUFPLGlDQUFpQyxDQUFDO1FBQ3ZEQyxHQUFHLEVBQUUvQixPQUFPLENBQUM4QixPQUFPLHFDQUFxQztNQUM3RDtJQUNKLENBQUM7SUFDREUsTUFBTSxFQUFFO01BQ0pDLE9BQU8sRUFBRSxLQUFLO01BQ2RDLFlBQVksRUFBRSxpQ0FBaUN0QixJQUFJO0lBQ3ZEO0VBQ0osQ0FBQyxFQUNESyxRQUNKLENBQUM7RUFDRCxNQUFNTyxNQUFNLENBQUNXLEtBQUssQ0FBQyxDQUFDO0VBQ3BCLE1BQU0sSUFBQUMsaUJBQUssRUFBQyxJQUFJLENBQUM7QUFDckIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunFormCompilationViaWebpackDevServer.js","names":["_webpack","_interopRequireDefault","require","_webpackDevServer","_AsyncUtils","_createFormWebpackConfiguration","runFormCompilationViaWebpackDevServer","gfv","farmDirectory","formPath","resourcesDirectory","resourcesHash","buildDebugOnly","fileSystem","port","configs","createConfig","modes","resourcesDirectoryPath","compiler","webpack","inputFileSystem","compilers","setInnerInputFileSystem","singleCompiler","watchFileSystem","server","WebpackDevServer","allowedHosts","type","options","cert","resolve","key","client","overlay","webSocketURL","
|
|
1
|
+
{"version":3,"file":"RunFormCompilationViaWebpackDevServer.js","names":["_webpack","_interopRequireDefault","require","_webpackDevServer","_AsyncUtils","_createFormWebpackConfiguration","runFormCompilationViaWebpackDevServer","gfv","farmDirectory","formPath","resourcesDirectory","resourcesHash","buildDebugOnly","fileSystem","port","configs","createConfig","modes","resourcesDirectoryPath","compiler","webpack","inputFileSystem","compilers","setInnerInputFileSystem","singleCompiler","watchFileSystem","server","WebpackDevServer","allowedHosts","type","options","cert","resolve","key","client","overlay","webSocketURL","start","delay"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.ts"],"sourcesContent":["import webpack from \"webpack\";\nimport WebpackDevServer from \"webpack-dev-server\";\n\nimport { delay } from \"../../../../../../Common/AsyncUtils\";\nimport { createConfig } from \"../../../../FormWebpackConfiguration/createFormWebpackConfiguration\";\n\nimport { WebpackHybridFileSystem } from \"./WebpackInMemoryUtils/WebpackHybridFileSystem\";\n\nexport async function runFormCompilationViaWebpackDevServer(\n gfv: string,\n farmDirectory: string,\n formPath: string,\n resourcesDirectory: string,\n resourcesHash: string,\n buildDebugOnly: boolean,\n fileSystem: WebpackHybridFileSystem,\n port: number\n): Promise<void> {\n const configs = await createConfig({\n gfv: gfv,\n resourcesHash: resourcesHash,\n formPath: formPath,\n modes: buildDebugOnly ? [\"development\"] : [\"production\", \"development\"],\n resourcesDirectoryPath: resourcesDirectory,\n });\n\n const compiler = webpack(configs);\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const inputFileSystem = compiler.compilers[0].inputFileSystem as any;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n fileSystem.setInnerInputFileSystem(inputFileSystem);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (const singleCompiler of compiler.compilers as any[]) {\n singleCompiler.inputFileSystem = fileSystem;\n singleCompiler.watchFileSystem = fileSystem;\n }\n // tslint:enable no-any no-unsafe-any\n\n // @ts-ignore\n const server = new WebpackDevServer(\n {\n port: port,\n allowedHosts: \"all\",\n server: {\n type: \"https\",\n options: {\n cert: require.resolve(\"../../../../Keys/localhost.pem\"),\n key: require.resolve(\"../../../../Keys/localhost-key.pem\"),\n },\n },\n client: {\n overlay: false,\n webSocketURL: `wss://localhost.testkontur.ru:${port}/ws`,\n },\n },\n compiler\n );\n await server.start();\n await delay(1000);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,+BAAA,GAAAH,OAAA;AAIO,eAAeI,qCAAqCA,CACvDC,GAAW,EACXC,aAAqB,EACrBC,QAAgB,EAChBC,kBAA0B,EAC1BC,aAAqB,EACrBC,cAAuB,EACvBC,UAAmC,EACnCC,IAAY,EACC;EACb,MAAMC,OAAO,GAAG,MAAM,IAAAC,4CAAY,EAAC;IAC/BT,GAAG,EAAEA,GAAG;IACRI,aAAa,EAAEA,aAAa;IAC5BF,QAAQ,EAAEA,QAAQ;IAClBQ,KAAK,EAAEL,cAAc,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC;IACvEM,sBAAsB,EAAER;EAC5B,CAAC,CAAC;EAEF,MAAMS,QAAQ,GAAG,IAAAC,gBAAO,EAACL,OAAO,CAAC;EACjC;EACA;EACA,MAAMM,eAAe,GAAGF,QAAQ,CAACG,SAAS,CAAC,CAAC,CAAC,CAACD,eAAsB;EACpE;EACAR,UAAU,CAACU,uBAAuB,CAACF,eAAe,CAAC;EACnD;EACA,KAAK,MAAMG,cAAc,IAAIL,QAAQ,CAACG,SAAS,EAAW;IACtDE,cAAc,CAACH,eAAe,GAAGR,UAAU;IAC3CW,cAAc,CAACC,eAAe,GAAGZ,UAAU;EAC/C;EACA;;EAEA;EACA,MAAMa,MAAM,GAAG,IAAIC,yBAAgB,CAC/B;IACIb,IAAI,EAAEA,IAAI;IACVc,YAAY,EAAE,KAAK;IACnBF,MAAM,EAAE;MACJG,IAAI,EAAE,OAAO;MACbC,OAAO,EAAE;QACLC,IAAI,EAAE7B,OAAO,CAAC8B,OAAO,iCAAiC,CAAC;QACvDC,GAAG,EAAE/B,OAAO,CAAC8B,OAAO,qCAAqC;MAC7D;IACJ,CAAC;IACDE,MAAM,EAAE;MACJC,OAAO,EAAE,KAAK;MACdC,YAAY,EAAE,iCAAiCtB,IAAI;IACvD;EACJ,CAAC,EACDK,QACJ,CAAC;EACD,MAAMO,MAAM,CAACW,KAAK,CAAC,CAAC;EACpB,MAAM,IAAAC,iBAAK,EAAC,IAAI,CAAC;AACrB","ignoreList":[]}
|
|
@@ -80,14 +80,7 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
|
|
|
80
80
|
return result;
|
|
81
81
|
};
|
|
82
82
|
(0, _ConsoleApplication.runConsoleApplication)(async (argv, context) => {
|
|
83
|
-
var _process$env$NODE_OPT;
|
|
84
83
|
remoteInspectFlagToDisableDebuggerInChildProcess();
|
|
85
|
-
context.logger.log("NODE_OPTIONS: " + ((_process$env$NODE_OPT = process.env["NODE_OPTIONS"]) !== null && _process$env$NODE_OPT !== void 0 ? _process$env$NODE_OPT : "<empty>"));
|
|
86
|
-
context.logger.log("execArgv : " + process.execArgv.join(" "));
|
|
87
|
-
setInterval(x => {
|
|
88
|
-
context.logger.log("memoryUsage: ");
|
|
89
|
-
context.logger.log(JSON.stringify(process.memoryUsage(), null, 2));
|
|
90
|
-
}, 1000 * 30);
|
|
91
84
|
context.logger.log("@kontur.candy/tools: " + (await (0, _SelfUpdate.getCurrentVersion)()));
|
|
92
85
|
const parsedArgs = (0, _CandyToolOptions.parseOptions)(argv);
|
|
93
86
|
context.setConsoleLoggingVerbosity(parsedArgs.options.logVerbosity);
|
|
@@ -144,4 +137,4 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
|
|
|
144
137
|
await (0, _RunLocalization.runLocalization)(context, parsedArgs.options, farmDirectory, engineDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
|
|
145
138
|
}
|
|
146
139
|
});
|
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2ZzRXh0cmEiLCJfc2hlbGxqcyIsIl9SdW5CdWlsZEZvcm1zIiwiX1J1bkJ1aWxkU2VydmVyIiwiX1J1bkRldkJ1aWxkIiwiX1J1bkZvcm1TdGF0cyIsIl9SdW5Jbml0Rm9ybSIsIl9SdW5Mb2NhbGl6YXRpb24iLCJfUnVuVXBncmFkZUZvcm0iLCJfQ29uc29sZUFwcGxpY2F0aW9uIiwiX1N0YXRpY0xvZ2dlciIsIl9DYW5keVRvb2xPcHRpb25zIiwiX1JlYWRGYXJtQ29uZmlnIiwiX1NlbGZVcGRhdGUiLCJfUnVuUmVuYW1lRmlsZXMiLCJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsInJlYWRkaXIiLCJvbGRUZW1wRmlsZU5hbWVzIiwiZmlsdGVyIiwieCIsImVuZHNXaXRoIiwibGVuZ3RoIiwibG9nIiwiZmlsZU5hbWUiLCJ1bmxpbmsiLCJwYXRoIiwiam9pbiIsInZhbGlkYXRlRmFybUNvbmZpZyIsImZhcm1Db25maWciLCJyZWFkRmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInBhdGhFeGlzdHMiLCJwdXNoIiwicGF0aFRvRmFybSIsInJ1bkNvbnNvbGVBcHBsaWNhdGlvbiIsImFyZ3YiLCJfcHJvY2VzcyRlbnYkTk9ERV9PUFQiLCJlbnYiLCJzZXRJbnRlcnZhbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJtZW1vcnlVc2FnZSIsImdldEN1cnJlbnRWZXJzaW9uIiwicGFyc2VkQXJncyIsInBhcnNlT3B0aW9ucyIsInNldENvbnNvbGVMb2dnaW5nVmVyYm9zaXR5Iiwib3B0aW9ucyIsImxvZ1ZlcmJvc2l0eSIsInNldExvZ2dlciIsInZlcmJvc2UiLCJ0eXBlIiwicnVuSW5pdEZvcm0iLCJjd2QiLCJhbGxGYXJtc0RpciIsIndhcm5pbmciLCJhbGxGYXJtQ29uZmlnIiwiQXJyYXkiLCJpc0FycmF5IiwicnVuRGV2QnVpbGRTZXJ2ZXIiLCJydW5CdWlsZFNlcnZlciIsInJ1bkJ1aWxkRm9ybXMiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwicnVuRGV2QnVpbGQiLCJydW5Gb3JtU3RhdHMiLCJydW5VcGdyYWRlRm9ybSIsInJ1blJlbmFtZUZpbGVzIiwicnVuTG9jYWxpemF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NhbmR5Q0xJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcImNvcmUtanMvZmVhdHVyZXMvYXJyYXkvZmxhdFwiO1xuaW1wb3J0IFwiY29yZS1qcy9wcm9wb3NhbHMvaXRlcmF0b3ItaGVscGVyc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9zdGFibGVcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHBhdGhFeGlzdHMsIHJlYWRkaXIsIHVubGluayB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuaW1wb3J0IFwicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lXCI7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tIFwic2hlbGxqc1wiO1xuXG5pbXBvcnQgeyBydW5CdWlsZEZvcm1zIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRGb3Jtcy9SdW5CdWlsZEZvcm1zXCI7XG5pbXBvcnQgeyBydW5CdWlsZFNlcnZlciwgcnVuRGV2QnVpbGRTZXJ2ZXIgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SdW5CdWlsZFNlcnZlclwiO1xuaW1wb3J0IHsgcnVuRGV2QnVpbGQgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9EZXZCdWlsZC9SdW5EZXZCdWlsZFwiO1xuaW1wb3J0IHsgcnVuRm9ybVN0YXRzIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRm9ybVN0YXRzL1J1bkZvcm1TdGF0c1wiO1xuaW1wb3J0IHsgcnVuSW5pdEZvcm0gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9Jbml0Rm9ybS9SdW5Jbml0Rm9ybVwiO1xuaW1wb3J0IHsgcnVuTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvTG9jYWxpemF0aW9uL1J1bkxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgcnVuVXBncmFkZUZvcm0gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9SdW5VcGdyYWRlRm9ybVwiO1xuaW1wb3J0IHsgcnVuQ29uc29sZUFwcGxpY2F0aW9uIH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IHNldExvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlT3B0aW9ucyB9IGZyb20gXCIuL09wdGlvbnMvQ2FuZHlUb29sT3B0aW9uc1wiO1xuaW1wb3J0IHsgcmVhZEZhcm1Db25maWcgfSBmcm9tIFwiLi9SZWFkRmFybUNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFZlcnNpb24gfSBmcm9tIFwiLi9TZWxmVXBkYXRlXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgcnVuUmVuYW1lRmlsZXMgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9SZW5hbWVGaWxlcy9SdW5SZW5hbWVGaWxlc1wiO1xuXG5jb25maWcuZmF0YWwgPSB0cnVlO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZhcm1Db25maWcge1xuICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogc3RyaW5nO1xuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZztcbiAgICBlbmdpbmVEaXJlY3Rvcnk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlYnVnQXJnSWR4ID0gcHJvY2Vzcy5leGVjQXJndi5pbmRleE9mKFwiLS1pbnNwZWN0LWJya1wiKTtcbiAgICBpZiAoZGVidWdBcmdJZHggIT09IC0xKSB7XG4gICAgICAgIHByb2Nlc3MuZXhlY0FyZ3Yuc3BsaWNlKGRlYnVnQXJnSWR4LCAxKTtcbiAgICB9XG4gICAgY29uc3QgZGVidWdBcmcySWR4ID0gcHJvY2Vzcy5leGVjQXJndi5pbmRleE9mKFwiLS1pbnNwZWN0XCIpO1xuICAgIGlmIChkZWJ1Z0FyZzJJZHggIT09IC0xKSB7XG4gICAgICAgIHByb2Nlc3MuZXhlY0FyZ3Yuc3BsaWNlKGRlYnVnQXJnMklkeCwgMSk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeTogc3RyaW5nLCBsb2dnZXI6IElMb2dnZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IHJlYWRkaXIoZmFybURpcmVjdG9yeSk7XG4gICAgY29uc3Qgb2xkVGVtcEZpbGVOYW1lcyA9IGZpbGVzLmZpbHRlcih4ID0+IHguZW5kc1dpdGgoXCIuY2FuZHktdG1wLndlYnBhY2suY29uZmlnLmpzXCIpKTtcbiAgICBpZiAob2xkVGVtcEZpbGVOYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmluZyBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2Ygb2xkVGVtcEZpbGVOYW1lcykge1xuICAgICAgICAgICAgYXdhaXQgdW5saW5rKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBmaWxlTmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmVkIG9sZCB3ZWJwYWNrLmNvbmZpZy5qcyBmaWxlc1wiKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBGYXJtQ29uZmlnIHtcbiAgICBjb25zdCBmYXJtQ29uZmlnID0gcmVhZEZhcm1Db25maWcoZmFybURpcmVjdG9yeSk7XG5cbiAgICBpZiAoZmFybUNvbmZpZy5lbmdpbmVEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuZ2luZURpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cbiAgICBpZiAoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlc291cmNlc0RpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmFybUNvbmZpZyxcbiAgICAgICAgZmFybURpcmVjdG9yeTogZmFybURpcmVjdG9yeSxcbiAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgfTtcbn1cblxuY29uc3QgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aCA9IGFzeW5jIChcbiAgICBhbGxGYXJtRGlyZWN0b3JpZXM6IHN0cmluZ1tdLFxuICAgIGN1cnJlbnREaXI6IHN0cmluZyxcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0XG4pOiBQcm9taXNlPEZhcm1Db25maWdbXT4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdDogRmFybUNvbmZpZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBwdGggb2YgYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihwdGgsIFwiY29uZmlnLmpzXCIpKSkge1xuICAgICAgICAgICAgYXdhaXQgcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKHB0aCwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHB0aCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8g0JLRgdC1INC00LXQu9C+INCyINGC0L7QvCwg0YfRgtC+INGB0LLRj9C30LrQsCBzZXJ2aWNlLXJ1bm5lci0yICsgdG9vbHMg0LrQvtGA0YDQtdC60YLQvdC+INGA0LDQsdC+0YLQsNC10YIg0YLQvtC70YzQutC+INCyINC/0LDQv9C60LUg0YEg0YTQvtGA0LzQvtC5XG4gICAgICAgICAgICAvLyDQuNC3INC30LAg0YfQtdCz0L4sINCy0L3Rg9GC0YDQuCDRgNCw0L3QvdC10YDQsCDQvdCw0L/QuNC70LXQvSDRhdC40YLRgNGL0Lkg0LzQtdGF0LDQvdC40LfQvCDQv9C+0LjRgdC60LAg0L/Rg9GC0LXQuSDRhNC+0YDQvNGLLiDQn9C10YDQtdC/0LjQu9C40LLQsNGC0Ywg0LLRgdC1INC80LXRhdCw0L3QuNC60LhcbiAgICAgICAgICAgIC8vINGB0L7QstGB0LXQvCDQvdC1INGF0L7Rh9C10YLRgdGPLCDQv9C+0Y3RgtC+0LzRgyDQtNC70Y8g0L3QsNGBLCDRgdGH0LjRgtCw0Y4g0L/QvtC00L3Rj9GC0LjQtSDQtNC+INGD0YDQvtCy0L3RjyBlbmdpbmUg0LLQv9C+0LvQvdC1INC/0YDQuNC10LzQu9C10LzRi9C8INGA0LXRiNC10L3QuNC10LxcbiAgICAgICAgICAgIGNvbnN0IHBhdGhUb0Zhcm0gPSBwYXRoLmpvaW4oY3VycmVudERpciwgXCIuLlwiLCBcIi4uXCIsIFwiLi5cIiwgcHRoKTtcbiAgICAgICAgICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMocGF0aFRvRmFybSkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYGFsbEZhcm1EaXJlY3RvcmllcyBwYXRoID0gJHtwYXRoVG9GYXJtfSBub3QgZXhpc3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwYXRoVG9GYXJtLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh2YWxpZGF0ZUZhcm1Db25maWcocGF0aFRvRmFybSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5ydW5Db25zb2xlQXBwbGljYXRpb24oYXN5bmMgKGFyZ3YsIGNvbnRleHQpID0+IHtcbiAgICByZW1vdGVJbnNwZWN0RmxhZ1RvRGlzYWJsZURlYnVnZ2VySW5DaGlsZFByb2Nlc3MoKTtcblxuICAgIGNvbnRleHQubG9nZ2VyLmxvZyhcIk5PREVfT1BUSU9OUzogXCIgKyAocHJvY2Vzcy5lbnZbXCJOT0RFX09QVElPTlNcIl0gPz8gXCI8ZW1wdHk+XCIpKTtcbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJleGVjQXJndiAgICA6IFwiICsgcHJvY2Vzcy5leGVjQXJndi5qb2luKFwiIFwiKSk7XG5cbiAgICBzZXRJbnRlcnZhbCh4ID0+IHtcbiAgICAgICAgY29udGV4dC5sb2dnZXIubG9nKFwibWVtb3J5VXNhZ2U6IFwiKTtcbiAgICAgICAgY29udGV4dC5sb2dnZXIubG9nKEpTT04uc3RyaW5naWZ5KHByb2Nlc3MubWVtb3J5VXNhZ2UoKSwgbnVsbCwgMikpO1xuICAgIH0sIDEwMDAgKiAzMCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwicmVuYW1lXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuUmVuYW1lRmlsZXMoY29udGV4dCwgcGFyc2VkQXJncy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHBhcnNlZEFyZ3Mub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUFBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxtQkFBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsYUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsaUJBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLGVBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixXQUFBLEdBQUFoQixPQUFBO0FBRUEsSUFBQWlCLGVBQUEsR0FBQWpCLE9BQUE7QUFFQWtCLGVBQU0sQ0FBQ0MsS0FBSyxHQUFHLElBQUk7QUFVbkIsU0FBU0MsZ0RBQWdEQSxDQUFBLEVBQVM7RUFDOUQsTUFBTUMsV0FBVyxHQUFHQyxPQUFPLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDLGVBQWUsQ0FBQztFQUM3RCxJQUFJSCxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7SUFDcEJDLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDRSxNQUFNLENBQUNKLFdBQVcsRUFBRSxDQUFDLENBQUM7RUFDM0M7RUFDQSxNQUFNSyxZQUFZLEdBQUdKLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDQyxPQUFPLENBQUMs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
|
|
140
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2ZzRXh0cmEiLCJfc2hlbGxqcyIsIl9SdW5CdWlsZEZvcm1zIiwiX1J1bkJ1aWxkU2VydmVyIiwiX1J1bkRldkJ1aWxkIiwiX1J1bkZvcm1TdGF0cyIsIl9SdW5Jbml0Rm9ybSIsIl9SdW5Mb2NhbGl6YXRpb24iLCJfUnVuVXBncmFkZUZvcm0iLCJfQ29uc29sZUFwcGxpY2F0aW9uIiwiX1N0YXRpY0xvZ2dlciIsIl9DYW5keVRvb2xPcHRpb25zIiwiX1JlYWRGYXJtQ29uZmlnIiwiX1NlbGZVcGRhdGUiLCJfUnVuUmVuYW1lRmlsZXMiLCJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsInJlYWRkaXIiLCJvbGRUZW1wRmlsZU5hbWVzIiwiZmlsdGVyIiwieCIsImVuZHNXaXRoIiwibGVuZ3RoIiwibG9nIiwiZmlsZU5hbWUiLCJ1bmxpbmsiLCJwYXRoIiwiam9pbiIsInZhbGlkYXRlRmFybUNvbmZpZyIsImZhcm1Db25maWciLCJyZWFkRmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInBhdGhFeGlzdHMiLCJwdXNoIiwicGF0aFRvRmFybSIsInJ1bkNvbnNvbGVBcHBsaWNhdGlvbiIsImFyZ3YiLCJnZXRDdXJyZW50VmVyc2lvbiIsInBhcnNlZEFyZ3MiLCJwYXJzZU9wdGlvbnMiLCJzZXRDb25zb2xlTG9nZ2luZ1ZlcmJvc2l0eSIsIm9wdGlvbnMiLCJsb2dWZXJib3NpdHkiLCJzZXRMb2dnZXIiLCJ2ZXJib3NlIiwidHlwZSIsInJ1bkluaXRGb3JtIiwiY3dkIiwiYWxsRmFybXNEaXIiLCJ3YXJuaW5nIiwiYWxsRmFybUNvbmZpZyIsIkFycmF5IiwiaXNBcnJheSIsInJ1bkRldkJ1aWxkU2VydmVyIiwicnVuQnVpbGRTZXJ2ZXIiLCJydW5CdWlsZEZvcm1zIiwiaGxGYXJtRGlyZWN0b3J5UGF0aCIsInJ1bkRldkJ1aWxkIiwicnVuRm9ybVN0YXRzIiwicnVuVXBncmFkZUZvcm0iLCJydW5SZW5hbWVGaWxlcyIsInJ1bkxvY2FsaXphdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJjb3JlLWpzL2ZlYXR1cmVzL2FycmF5L2ZsYXRcIjtcbmltcG9ydCBcImNvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnNcIjtcbmltcG9ydCBcImNvcmUtanMvc3RhYmxlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkZGlyLCB1bmxpbmsgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCBcInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgcnVuQnVpbGRGb3JtcyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtc1wiO1xuaW1wb3J0IHsgcnVuQnVpbGRTZXJ2ZXIsIHJ1bkRldkJ1aWxkU2VydmVyIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUnVuQnVpbGRTZXJ2ZXJcIjtcbmltcG9ydCB7IHJ1bkRldkJ1aWxkIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRGV2QnVpbGQvUnVuRGV2QnVpbGRcIjtcbmltcG9ydCB7IHJ1bkZvcm1TdGF0cyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0Zvcm1TdGF0cy9SdW5Gb3JtU3RhdHNcIjtcbmltcG9ydCB7IHJ1bkluaXRGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvSW5pdEZvcm0vUnVuSW5pdEZvcm1cIjtcbmltcG9ydCB7IHJ1bkxvY2FsaXphdGlvbiB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0xvY2FsaXphdGlvbi9SdW5Mb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IHJ1blVwZ3JhZGVGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vUnVuVXBncmFkZUZvcm1cIjtcbmltcG9ydCB7IHJ1bkNvbnNvbGVBcHBsaWNhdGlvbiB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvblwiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBzZXRMb2dnZXIgfSBmcm9tIFwiLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbnMgfSBmcm9tIFwiLi9PcHRpb25zL0NhbmR5VG9vbE9wdGlvbnNcIjtcbmltcG9ydCB7IHJlYWRGYXJtQ29uZmlnIH0gZnJvbSBcIi4vUmVhZEZhcm1Db25maWdcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSBcIi4vU2VsZlVwZGF0ZVwiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IHJ1blJlbmFtZUZpbGVzIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvUmVuYW1lRmlsZXMvUnVuUmVuYW1lRmlsZXNcIjtcblxuY29uZmlnLmZhdGFsID0gdHJ1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBGYXJtQ29uZmlnIHtcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgZW5naW5lRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlc291cmNlc0RpcmVjdG9yeT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWJ1Z0FyZ0lkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdC1icmtcIik7XG4gICAgaWYgKGRlYnVnQXJnSWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZ0lkeCwgMSk7XG4gICAgfVxuICAgIGNvbnN0IGRlYnVnQXJnMklkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdFwiKTtcbiAgICBpZiAoZGVidWdBcmcySWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZzJJZHgsIDEpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IG9sZFRlbXBGaWxlTmFtZXMgPSBmaWxlcy5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKFwiLmNhbmR5LXRtcC53ZWJwYWNrLmNvbmZpZy5qc1wiKSk7XG4gICAgaWYgKG9sZFRlbXBGaWxlTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3Zpbmcgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIG9sZFRlbXBGaWxlTmFtZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHVubGluayhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZhcm1Db25maWcoZmFybURpcmVjdG9yeTogc3RyaW5nKTogRmFybUNvbmZpZyB7XG4gICAgY29uc3QgZmFybUNvbmZpZyA9IHJlYWRGYXJtQ29uZmlnKGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgaWYgKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmdpbmVEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG4gICAgaWYgKGZhcm1Db25maWcucmVzb3VyY2VzRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXNvdXJjZXNEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybURpcmVjdG9yeSwgXCIuLlwiLCBcIi5jYW5keV9tb2R1bGVzXCIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZhcm1Db25maWcsXG4gICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgIH07XG59XG5cbmNvbnN0IHZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGggPSBhc3luYyAoXG4gICAgYWxsRmFybURpcmVjdG9yaWVzOiBzdHJpbmdbXSxcbiAgICBjdXJyZW50RGlyOiBzdHJpbmcsXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFxuKTogUHJvbWlzZTxGYXJtQ29uZmlnW10+ID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IEZhcm1Db25maWdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcHRoIG9mIGFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocHRoLCBcImNvbmZpZy5qc1wiKSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwdGgsIGNvbnRleHQubG9nZ2VyKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbGlkYXRlRmFybUNvbmZpZyhwdGgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vINCS0YHQtSDQtNC10LvQviDQsiDRgtC+0LwsINGH0YLQviDRgdCy0Y/Qt9C60LAgc2VydmljZS1ydW5uZXItMiArIHRvb2xzINC60L7RgNGA0LXQutGC0L3QviDRgNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQsiDQv9Cw0L/QutC1INGBINGE0L7RgNC80L7QuVxuICAgICAgICAgICAgLy8g0LjQtyDQt9CwINGH0LXQs9C+LCDQstC90YPRgtGA0Lgg0YDQsNC90L3QtdGA0LAg0L3QsNC/0LjQu9C10L0g0YXQuNGC0YDRi9C5INC80LXRhdCw0L3QuNC30Lwg0L/QvtC40YHQutCwINC/0YPRgtC10Lkg0YTQvtGA0LzRiy4g0J/QtdGA0LXQv9C40LvQuNCy0LDRgtGMINCy0YHQtSDQvNC10YXQsNC90LjQutC4XG4gICAgICAgICAgICAvLyDRgdC+0LLRgdC10Lwg0L3QtSDRhdC+0YfQtdGC0YHRjywg0L/QvtGN0YLQvtC80YMg0LTQu9GPINC90LDRgSwg0YHRh9C40YLQsNGOINC/0L7QtNC90Y/RgtC40LUg0LTQviDRg9GA0L7QstC90Y8gZW5naW5lINCy0L/QvtC70L3QtSDQv9GA0LjQtdC80LvQtdC80YvQvCDRgNC10YjQtdC90LjQtdC8XG4gICAgICAgICAgICBjb25zdCBwYXRoVG9GYXJtID0gcGF0aC5qb2luKGN1cnJlbnREaXIsIFwiLi5cIiwgXCIuLlwiLCBcIi4uXCIsIHB0aCk7XG4gICAgICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHBhdGhUb0Zhcm0pKSkge1xuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBhbGxGYXJtRGlyZWN0b3JpZXMgcGF0aCA9ICR7cGF0aFRvRmFybX0gbm90IGV4aXN0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMocGF0aFRvRmFybSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHBhdGhUb0Zhcm0pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxucnVuQ29uc29sZUFwcGxpY2F0aW9uKGFzeW5jIChhcmd2LCBjb250ZXh0KSA9PiB7XG4gICAgcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwicmVuYW1lXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuUmVuYW1lRmlsZXMoY29udGV4dCwgcGFyc2VkQXJncy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHBhcnNlZEFyZ3Mub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUFBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGdCQUFBLEdBQUFWLE9BQUE7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CandyCLI.js","names":["require","_path","_interopRequireDefault","_fsExtra","_shelljs","_RunBuildForms","_RunBuildServer","_RunDevBuild","_RunFormStats","_RunInitForm","_RunLocalization","_RunUpgradeForm","_ConsoleApplication","_StaticLogger","_CandyToolOptions","_ReadFarmConfig","_SelfUpdate","_RunRenameFiles","config","fatal","remoteInspectFlagToDisableDebuggerInChildProcess","debugArgIdx","process","execArgv","indexOf","splice","debugArg2Idx","removeTemporaryWebpackConfigFiles","farmDirectory","logger","files","readdir","oldTempFileNames","filter","x","endsWith","length","log","fileName","unlink","path","join","validateFarmConfig","farmConfig","readFarmConfig","engineDirectory","undefined","Error","resourcesDirectory","candyModulesDirectory","resolve","validateAndPrepareFarmDirectoriesPath","allFarmDirectories","currentDir","context","result","pth","pathExists","push","pathToFarm","runConsoleApplication","argv","_process$env$NODE_OPT","env","setInterval","JSON","stringify","memoryUsage","getCurrentVersion","parsedArgs","parseOptions","setConsoleLoggingVerbosity","options","logVerbosity","setLogger","verbose","type","runInitForm","cwd","allFarmsDir","warning","allFarmConfig","Array","isArray","runDevBuildServer","runBuildServer","runBuildForms","hlFarmDirectoryPath","runDevBuild","runFormStats","runUpgradeForm","runRenameFiles","runLocalization"],"sources":["../../../src/CandyCLI.ts"],"sourcesContent":["import \"core-js/features/array/flat\";\nimport \"core-js/proposals/iterator-helpers\";\nimport \"core-js/stable\";\nimport path from \"path\";\n\nimport { pathExists, readdir, unlink } from \"fs-extra\";\nimport \"reflect-metadata\";\nimport \"regenerator-runtime/runtime\";\nimport { config } from \"shelljs\";\n\nimport { runBuildForms } from \"./CLICommands/BuildForms/RunBuildForms\";\nimport { runBuildServer, runDevBuildServer } from \"./CLICommands/BuildServer/RunBuildServer\";\nimport { runDevBuild } from \"./CLICommands/DevBuild/RunDevBuild\";\nimport { runFormStats } from \"./CLICommands/FormStats/RunFormStats\";\nimport { runInitForm } from \"./CLICommands/InitForm/RunInitForm\";\nimport { runLocalization } from \"./CLICommands/Localization/RunLocalization\";\nimport { runUpgradeForm } from \"./CLICommands/UpgradeForm/RunUpgradeForm\";\nimport { runConsoleApplication } from \"./Commons/ConsoleApplication/ConsoleApplication\";\nimport { ILogger } from \"./Commons/Logging/ILogger\";\nimport { setLogger } from \"./Commons/Logging/StaticLogger\";\nimport { parseOptions } from \"./Options/CandyToolOptions\";\nimport { readFarmConfig } from \"./ReadFarmConfig\";\nimport { getCurrentVersion } from \"./SelfUpdate\";\nimport { ConsoleApplicationContext } from \"./Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { runRenameFiles } from \"./CLICommands/RenameFiles/RunRenameFiles\";\n\nconfig.fatal = true;\n\nexport interface FarmConfig {\n candyModulesDirectory: string;\n farmDirectory: string;\n engineDirectory?: string | undefined;\n resourcesDirectory?: string | undefined;\n hlFarmDirectoryPath: string;\n}\n\nfunction remoteInspectFlagToDisableDebuggerInChildProcess(): void {\n const debugArgIdx = process.execArgv.indexOf(\"--inspect-brk\");\n if (debugArgIdx !== -1) {\n process.execArgv.splice(debugArgIdx, 1);\n }\n const debugArg2Idx = process.execArgv.indexOf(\"--inspect\");\n if (debugArg2Idx !== -1) {\n process.execArgv.splice(debugArg2Idx, 1);\n }\n}\n\nasync function removeTemporaryWebpackConfigFiles(farmDirectory: string, logger: ILogger): Promise<void> {\n const files = await readdir(farmDirectory);\n const oldTempFileNames = files.filter(x => x.endsWith(\".candy-tmp.webpack.config.js\"));\n if (oldTempFileNames.length > 0) {\n logger.log(\"Removing old webpack.config.js files\");\n for (const fileName of oldTempFileNames) {\n await unlink(path.join(farmDirectory, fileName));\n }\n logger.log(\"Removed old webpack.config.js files\");\n }\n}\n\nfunction validateFarmConfig(farmDirectory: string): FarmConfig {\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n return {\n ...farmConfig,\n farmDirectory: farmDirectory,\n candyModulesDirectory: candyModulesDirectory,\n };\n}\n\nconst validateAndPrepareFarmDirectoriesPath = async (\n allFarmDirectories: string[],\n currentDir: string,\n context: ConsoleApplicationContext\n): Promise<FarmConfig[]> => {\n const result: FarmConfig[] = [];\n for (const pth of allFarmDirectories) {\n if (await pathExists(path.join(pth, \"config.js\"))) {\n await removeTemporaryWebpackConfigFiles(pth, context.logger);\n result.push(validateFarmConfig(pth));\n } else {\n // Все дело в том, что связка service-runner-2 + tools корректно работает только в папке с формой\n // из за чего, внутри раннера напилен хитрый механизм поиска путей формы. Перепиливать все механики\n // совсем не хочется, поэтому для нас, считаю поднятие до уровня engine вполне приемлемым решением\n const pathToFarm = path.join(currentDir, \"..\", \"..\", \"..\", pth);\n if (!(await pathExists(pathToFarm))) {\n throw Error(`allFarmDirectories path = ${pathToFarm} not exist`);\n }\n await removeTemporaryWebpackConfigFiles(pathToFarm, context.logger);\n result.push(validateFarmConfig(pathToFarm));\n }\n }\n return result;\n};\n\nrunConsoleApplication(async (argv, context) => {\n remoteInspectFlagToDisableDebuggerInChildProcess();\n\n context.logger.log(\"NODE_OPTIONS: \" + (process.env[\"NODE_OPTIONS\"] ?? \"<empty>\"));\n context.logger.log(\"execArgv : \" + process.execArgv.join(\" \"));\n\n setInterval(x => {\n context.logger.log(\"memoryUsage: \");\n context.logger.log(JSON.stringify(process.memoryUsage(), null, 2));\n }, 1000 * 30);\n\n context.logger.log(\"@kontur.candy/tools: \" + (await getCurrentVersion()));\n const parsedArgs = parseOptions(argv);\n\n context.setConsoleLoggingVerbosity(parsedArgs.options.logVerbosity);\n setLogger(context.logger);\n context.logger.verbose(`Verbose level: ${parsedArgs.options.logVerbosity}`);\n\n if (parsedArgs.type === \"init-form\") {\n await runInitForm(context, parsedArgs.options);\n return;\n }\n\n const farmDirectory = process.cwd();\n await removeTemporaryWebpackConfigFiles(farmDirectory, context.logger);\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const engineDirectory = path.resolve(farmConfig.engineDirectory);\n const resourcesDirectory = path.resolve(farmConfig.resourcesDirectory);\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n\n if (parsedArgs.type === \"build-server\" || parsedArgs.type === \"dev-build-server\") {\n const allFarmDirectories = parsedArgs.options.allFarmsDir;\n context.logger.warning(`allFarmDirectories = ${parsedArgs.options.allFarmsDir}`);\n let allFarmConfig;\n if (Array.isArray(allFarmDirectories) && allFarmDirectories.length > 0) {\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath(allFarmDirectories, farmDirectory, context);\n } else {\n context.logger.warning(`Use default candyFarm path dir = ${farmDirectory}`);\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath([farmDirectory], farmDirectory, context);\n }\n\n if (parsedArgs.type === \"dev-build-server\") {\n await runDevBuildServer(context, parsedArgs.options, allFarmConfig);\n } else {\n await runBuildServer(context, parsedArgs.options, allFarmConfig);\n }\n }\n\n if (parsedArgs.type === \"build\") {\n await runBuildForms(\n context,\n parsedArgs.options,\n farmDirectory,\n resourcesDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"dev-build\") {\n await runDevBuild(\n context,\n parsedArgs.options,\n engineDirectory,\n resourcesDirectory,\n farmDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"form-stats\") {\n await runFormStats(context, parsedArgs.options, farmDirectory);\n }\n if (parsedArgs.type === \"upgrade\") {\n await runUpgradeForm(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"rename\") {\n await runRenameFiles(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"localize\") {\n await runLocalization(\n context,\n parsedArgs.options,\n farmDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CandyCLI.js","names":["require","_path","_interopRequireDefault","_fsExtra","_shelljs","_RunBuildForms","_RunBuildServer","_RunDevBuild","_RunFormStats","_RunInitForm","_RunLocalization","_RunUpgradeForm","_ConsoleApplication","_StaticLogger","_CandyToolOptions","_ReadFarmConfig","_SelfUpdate","_RunRenameFiles","config","fatal","remoteInspectFlagToDisableDebuggerInChildProcess","debugArgIdx","process","execArgv","indexOf","splice","debugArg2Idx","removeTemporaryWebpackConfigFiles","farmDirectory","logger","files","readdir","oldTempFileNames","filter","x","endsWith","length","log","fileName","unlink","path","join","validateFarmConfig","farmConfig","readFarmConfig","engineDirectory","undefined","Error","resourcesDirectory","candyModulesDirectory","resolve","validateAndPrepareFarmDirectoriesPath","allFarmDirectories","currentDir","context","result","pth","pathExists","push","pathToFarm","runConsoleApplication","argv","getCurrentVersion","parsedArgs","parseOptions","setConsoleLoggingVerbosity","options","logVerbosity","setLogger","verbose","type","runInitForm","cwd","allFarmsDir","warning","allFarmConfig","Array","isArray","runDevBuildServer","runBuildServer","runBuildForms","hlFarmDirectoryPath","runDevBuild","runFormStats","runUpgradeForm","runRenameFiles","runLocalization"],"sources":["../../../src/CandyCLI.ts"],"sourcesContent":["import \"core-js/features/array/flat\";\nimport \"core-js/proposals/iterator-helpers\";\nimport \"core-js/stable\";\nimport path from \"path\";\n\nimport { pathExists, readdir, unlink } from \"fs-extra\";\nimport \"reflect-metadata\";\nimport \"regenerator-runtime/runtime\";\nimport { config } from \"shelljs\";\n\nimport { runBuildForms } from \"./CLICommands/BuildForms/RunBuildForms\";\nimport { runBuildServer, runDevBuildServer } from \"./CLICommands/BuildServer/RunBuildServer\";\nimport { runDevBuild } from \"./CLICommands/DevBuild/RunDevBuild\";\nimport { runFormStats } from \"./CLICommands/FormStats/RunFormStats\";\nimport { runInitForm } from \"./CLICommands/InitForm/RunInitForm\";\nimport { runLocalization } from \"./CLICommands/Localization/RunLocalization\";\nimport { runUpgradeForm } from \"./CLICommands/UpgradeForm/RunUpgradeForm\";\nimport { runConsoleApplication } from \"./Commons/ConsoleApplication/ConsoleApplication\";\nimport { ILogger } from \"./Commons/Logging/ILogger\";\nimport { setLogger } from \"./Commons/Logging/StaticLogger\";\nimport { parseOptions } from \"./Options/CandyToolOptions\";\nimport { readFarmConfig } from \"./ReadFarmConfig\";\nimport { getCurrentVersion } from \"./SelfUpdate\";\nimport { ConsoleApplicationContext } from \"./Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { runRenameFiles } from \"./CLICommands/RenameFiles/RunRenameFiles\";\n\nconfig.fatal = true;\n\nexport interface FarmConfig {\n candyModulesDirectory: string;\n farmDirectory: string;\n engineDirectory?: string | undefined;\n resourcesDirectory?: string | undefined;\n hlFarmDirectoryPath: string;\n}\n\nfunction remoteInspectFlagToDisableDebuggerInChildProcess(): void {\n const debugArgIdx = process.execArgv.indexOf(\"--inspect-brk\");\n if (debugArgIdx !== -1) {\n process.execArgv.splice(debugArgIdx, 1);\n }\n const debugArg2Idx = process.execArgv.indexOf(\"--inspect\");\n if (debugArg2Idx !== -1) {\n process.execArgv.splice(debugArg2Idx, 1);\n }\n}\n\nasync function removeTemporaryWebpackConfigFiles(farmDirectory: string, logger: ILogger): Promise<void> {\n const files = await readdir(farmDirectory);\n const oldTempFileNames = files.filter(x => x.endsWith(\".candy-tmp.webpack.config.js\"));\n if (oldTempFileNames.length > 0) {\n logger.log(\"Removing old webpack.config.js files\");\n for (const fileName of oldTempFileNames) {\n await unlink(path.join(farmDirectory, fileName));\n }\n logger.log(\"Removed old webpack.config.js files\");\n }\n}\n\nfunction validateFarmConfig(farmDirectory: string): FarmConfig {\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n return {\n ...farmConfig,\n farmDirectory: farmDirectory,\n candyModulesDirectory: candyModulesDirectory,\n };\n}\n\nconst validateAndPrepareFarmDirectoriesPath = async (\n allFarmDirectories: string[],\n currentDir: string,\n context: ConsoleApplicationContext\n): Promise<FarmConfig[]> => {\n const result: FarmConfig[] = [];\n for (const pth of allFarmDirectories) {\n if (await pathExists(path.join(pth, \"config.js\"))) {\n await removeTemporaryWebpackConfigFiles(pth, context.logger);\n result.push(validateFarmConfig(pth));\n } else {\n // Все дело в том, что связка service-runner-2 + tools корректно работает только в папке с формой\n // из за чего, внутри раннера напилен хитрый механизм поиска путей формы. Перепиливать все механики\n // совсем не хочется, поэтому для нас, считаю поднятие до уровня engine вполне приемлемым решением\n const pathToFarm = path.join(currentDir, \"..\", \"..\", \"..\", pth);\n if (!(await pathExists(pathToFarm))) {\n throw Error(`allFarmDirectories path = ${pathToFarm} not exist`);\n }\n await removeTemporaryWebpackConfigFiles(pathToFarm, context.logger);\n result.push(validateFarmConfig(pathToFarm));\n }\n }\n return result;\n};\n\nrunConsoleApplication(async (argv, context) => {\n remoteInspectFlagToDisableDebuggerInChildProcess();\n\n context.logger.log(\"@kontur.candy/tools: \" + (await getCurrentVersion()));\n const parsedArgs = parseOptions(argv);\n\n context.setConsoleLoggingVerbosity(parsedArgs.options.logVerbosity);\n setLogger(context.logger);\n context.logger.verbose(`Verbose level: ${parsedArgs.options.logVerbosity}`);\n\n if (parsedArgs.type === \"init-form\") {\n await runInitForm(context, parsedArgs.options);\n return;\n }\n\n const farmDirectory = process.cwd();\n await removeTemporaryWebpackConfigFiles(farmDirectory, context.logger);\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const engineDirectory = path.resolve(farmConfig.engineDirectory);\n const resourcesDirectory = path.resolve(farmConfig.resourcesDirectory);\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n\n if (parsedArgs.type === \"build-server\" || parsedArgs.type === \"dev-build-server\") {\n const allFarmDirectories = parsedArgs.options.allFarmsDir;\n context.logger.warning(`allFarmDirectories = ${parsedArgs.options.allFarmsDir}`);\n let allFarmConfig;\n if (Array.isArray(allFarmDirectories) && allFarmDirectories.length > 0) {\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath(allFarmDirectories, farmDirectory, context);\n } else {\n context.logger.warning(`Use default candyFarm path dir = ${farmDirectory}`);\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath([farmDirectory], farmDirectory, context);\n }\n\n if (parsedArgs.type === \"dev-build-server\") {\n await runDevBuildServer(context, parsedArgs.options, allFarmConfig);\n } else {\n await runBuildServer(context, parsedArgs.options, allFarmConfig);\n }\n }\n\n if (parsedArgs.type === \"build\") {\n await runBuildForms(\n context,\n parsedArgs.options,\n farmDirectory,\n resourcesDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"dev-build\") {\n await runDevBuild(\n context,\n parsedArgs.options,\n engineDirectory,\n resourcesDirectory,\n farmDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"form-stats\") {\n await runFormStats(context, parsedArgs.options, farmDirectory);\n }\n if (parsedArgs.type === \"upgrade\") {\n await runUpgradeForm(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"rename\") {\n await runRenameFiles(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"localize\") {\n await runLocalization(\n context,\n parsedArgs.options,\n farmDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCpuLimits = getCpuLimits;
|
|
7
|
+
var fs = _interopRequireWildcard(require("fs"));
|
|
8
|
+
var os = _interopRequireWildcard(require("os"));
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
function readNumberFromFile(file) {
|
|
12
|
+
return Number(fs.readFileSync(file, "utf-8"));
|
|
13
|
+
}
|
|
14
|
+
function getCpuLimitsIntenal() {
|
|
15
|
+
try {
|
|
16
|
+
return readNumberFromFile("/sys/fs/cgroup/cpu/cpu.cfs_quota_us") / readNumberFromFile("/sys/fs/cgroup/cpu/cpu.cfs_period_us");
|
|
17
|
+
} catch (err) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function getCpuLimits() {
|
|
22
|
+
var _getCpuLimitsIntenal;
|
|
23
|
+
if (process.platform !== "linux") {
|
|
24
|
+
return os.cpus().length;
|
|
25
|
+
}
|
|
26
|
+
return (_getCpuLimitsIntenal = getCpuLimitsIntenal()) !== null && _getCpuLimitsIntenal !== void 0 ? _getCpuLimitsIntenal : os.cpus().length;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIm9zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwicmVhZE51bWJlckZyb21GaWxlIiwiZmlsZSIsIk51bWJlciIsInJlYWRGaWxlU3luYyIsImdldENwdUxpbWl0c0ludGVuYWwiLCJlcnIiLCJnZXRDcHVMaW1pdHMiLCJfZ2V0Q3B1TGltaXRzSW50ZW5hbCIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsImNwdXMiLCJsZW5ndGgiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQ29tbW9ucy9HZXRDcHVMaW1pdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcblxuZnVuY3Rpb24gcmVhZE51bWJlckZyb21GaWxlKGZpbGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIE51bWJlcihmcy5yZWFkRmlsZVN5bmMoZmlsZSwgXCJ1dGYtOFwiKSk7XG59XG5cbmZ1bmN0aW9uIGdldENwdUxpbWl0c0ludGVuYWwoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHJlYWROdW1iZXJGcm9tRmlsZShcIi9zeXMvZnMvY2dyb3VwL2NwdS9jcHUuY2ZzX3F1b3RhX3VzXCIpIC9cbiAgICAgICAgICAgIHJlYWROdW1iZXJGcm9tRmlsZShcIi9zeXMvZnMvY2dyb3VwL2NwdS9jcHUuY2ZzX3BlcmlvZF91c1wiKVxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcHVMaW1pdHMoKTogbnVtYmVyIHtcbiAgICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSAhPT0gXCJsaW51eFwiKSB7XG4gICAgICAgIHJldHVybiBvcy5jcHVzKCkubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q3B1TGltaXRzSW50ZW5hbCgpID8/IG9zLmNwdXMoKS5sZW5ndGg7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEVBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEVBQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQUF5QixTQUFBRSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSix3QkFBQUksQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLENBQUFILE9BQUEsR0FBQUwsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFFekIsU0FBU1csa0JBQWtCQSxDQUFDQyxJQUFZLEVBQVU7RUFDOUMsT0FBT0MsTUFBTSxDQUFDMUIsRUFBRSxDQUFDMkIsWUFBWSxDQUFDRixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakQ7QUFFQSxTQUFTRyxtQkFBbUJBLENBQUEsRUFBa0I7RUFDMUMsSUFBSTtJQUNBLE9BQ0lKLGtCQUFrQixDQUFDLHFDQUFxQyxDQUFDLEdBQ3pEQSxrQkFBa0IsQ0FBQyxzQ0FBc0MsQ0FBQztFQUVsRSxDQUFDLENBQUMsT0FBT0ssR0FBRyxFQUFFO0lBQ1YsT0FBTyxJQUFJO0VBQ2Y7QUFDSjtBQUVPLFNBQVNDLFlBQVlBLENBQUEsRUFBVztFQUFBLElBQUFDLG9CQUFBO0VBQ25DLElBQUlDLE9BQU8sQ0FBQ0MsUUFBUSxLQUFLLE9BQU8sRUFBRTtJQUM5QixPQUFPOUIsRUFBRSxDQUFDK0IsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsTUFBTTtFQUMzQjtFQUNBLFFBQUFKLG9CQUFBLEdBQU9ILG1CQUFtQixDQUFDLENBQUMsY0FBQUcsb0JBQUEsY0FBQUEsb0JBQUEsR0FBSTVCLEVBQUUsQ0FBQytCLElBQUksQ0FBQyxDQUFDLENBQUNDLE1BQU07QUFDcEQiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetCpuLimits.js","names":["fs","_interopRequireWildcard","require","os","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","readNumberFromFile","file","Number","readFileSync","getCpuLimitsIntenal","err","getCpuLimits","_getCpuLimitsIntenal","process","platform","cpus","length"],"sources":["../../../../src/Commons/GetCpuLimits.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as os from \"os\";\n\nfunction readNumberFromFile(file: string): number {\n return Number(fs.readFileSync(file, \"utf-8\"));\n}\n\nfunction getCpuLimitsIntenal(): number | null {\n try {\n return (\n readNumberFromFile(\"/sys/fs/cgroup/cpu/cpu.cfs_quota_us\") /\n readNumberFromFile(\"/sys/fs/cgroup/cpu/cpu.cfs_period_us\")\n );\n } catch (err) {\n return null;\n }\n}\n\nexport function getCpuLimits(): number {\n if (process.platform !== \"linux\") {\n return os.cpus().length;\n }\n return getCpuLimitsIntenal() ?? os.cpus().length;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,EAAA,GAAAF,uBAAA,CAAAC,OAAA;AAAyB,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEzB,SAASW,kBAAkBA,CAACC,IAAY,EAAU;EAC9C,OAAOC,MAAM,CAAC1B,EAAE,CAAC2B,YAAY,CAACF,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD;AAEA,SAASG,mBAAmBA,CAAA,EAAkB;EAC1C,IAAI;IACA,OACIJ,kBAAkB,CAAC,qCAAqC,CAAC,GACzDA,kBAAkB,CAAC,sCAAsC,CAAC;EAElE,CAAC,CAAC,OAAOK,GAAG,EAAE;IACV,OAAO,IAAI;EACf;AACJ;AAEO,SAASC,YAAYA,CAAA,EAAW;EAAA,IAAAC,oBAAA;EACnC,IAAIC,OAAO,CAACC,QAAQ,KAAK,OAAO,EAAE;IAC9B,OAAO9B,EAAE,CAAC+B,IAAI,CAAC,CAAC,CAACC,MAAM;EAC3B;EACA,QAAAJ,oBAAA,GAAOH,mBAAmB,CAAC,CAAC,cAAAG,oBAAA,cAAAA,oBAAA,GAAI5B,EAAE,CAAC+B,IAAI,CAAC,CAAC,CAACC,MAAM;AACpD","ignoreList":[]}
|