@kontur.candy/tools 2.203.0 → 2.204.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.
|
@@ -9,7 +9,6 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
|
|
|
9
9
|
var _fs = require("fs");
|
|
10
10
|
var _path = _interopRequireDefault(require("path"));
|
|
11
11
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
12
|
-
var _AsyncUtils = require("../../../../../Common/AsyncUtils");
|
|
13
12
|
var _Methods = require("../../../Commons/HttpServer/AttributeRouting/Methods");
|
|
14
13
|
var _Params = require("../../../Commons/HttpServer/AttributeRouting/Params");
|
|
15
14
|
var _Results = require("../../../Commons/HttpServer/AttributeRouting/Results");
|
|
@@ -26,8 +25,8 @@ let BuildServerBackendResourcesUpdatesController = exports.BuildServerBackendRes
|
|
|
26
25
|
this.formWatchers = void 0;
|
|
27
26
|
this.resourcesWatcher = void 0;
|
|
28
27
|
this.allFarmConfig = void 0;
|
|
29
|
-
this.farmWatchingRegexps = ["
|
|
30
|
-
this.formsWatchingRegexps = [
|
|
28
|
+
this.farmWatchingRegexps = ["sugarTemplates", "legacyfetchfunctions", "jsHelpers", `images`, "tour", "controls", "commonResources", "externalConverters"].map(_GlobToRegexp.globToRegexp);
|
|
29
|
+
this.formsWatchingRegexps = [`**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/schemas`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/converters`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/mergers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/autocalc`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/validations`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/helpers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/sugar`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/normalize`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/unmap`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/map`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/patch`].map(_GlobToRegexp.globToRegexp);
|
|
31
30
|
this.handleFarmFSUpdate = (eventType, filePath, rootDir) => {
|
|
32
31
|
if (this.farmWatchingRegexps.some(x => x.test(filePath))) {
|
|
33
32
|
(0, _fs.stat)(_path.default.join(rootDir, filePath), (err, fileStat) => {
|
|
@@ -65,10 +64,6 @@ let BuildServerBackendResourcesUpdatesController = exports.BuildServerBackendRes
|
|
|
65
64
|
});
|
|
66
65
|
}
|
|
67
66
|
async getLastUpdateTime(prevLastUpdateTime) {
|
|
68
|
-
if (prevLastUpdateTime == undefined || prevLastUpdateTime < this.lastUpdateTime) {
|
|
69
|
-
return this.lastUpdateTime.toString();
|
|
70
|
-
}
|
|
71
|
-
await Promise.race([this.updateMonitor.wait(), (0, _AsyncUtils.delay)(60000)]);
|
|
72
67
|
return this.lastUpdateTime.toString();
|
|
73
68
|
}
|
|
74
69
|
async afterStop() {
|
|
@@ -96,4 +91,4 @@ class Monitor {
|
|
|
96
91
|
}
|
|
97
92
|
}
|
|
98
93
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvZGFzaCIsIl9Bc3luY1V0aWxzIiwiX01ldGhvZHMiLCJfUGFyYW1zIiwiX1Jlc3VsdHMiLCJfU2luZ2xldG9uQ29udHJvbGxlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9HbG9iVG9SZWdleHAiLCJfZGVjIiwiX2NsYXNzIiwiQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIiLCJleHBvcnRzIiwiaHR0cEdldCIsImh0dHBSZXR1cm4iLCJQbGFpblRleHQiLCJodHRwUXVlcnlQYXJhbSIsImh0dHBUeXBlIiwiTnVtYmVyIiwiU2luZ2xldG9uQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWxsRmFybUNvbmZpZyIsImxhc3RVcGRhdGVUaW1lIiwidXBkYXRlTW9uaXRvciIsIk1vbml0b3IiLCJmYXJtV2F0Y2hlcnMiLCJmb3JtV2F0Y2hlcnMiLCJyZXNvdXJjZXNXYXRjaGVyIiwiZmFybVdhdGNoaW5nUmVnZXhwcyIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybUpzb25GaWxlTmFtZSIsIm1hcCIsImdsb2JUb1JlZ2V4cCIsImZvcm1zV2F0Y2hpbmdSZWdleHBzIiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwiaGFuZGxlRmFybUZTVXBkYXRlIiwiZXZlbnRUeXBlIiwiZmlsZVBhdGgiLCJyb290RGlyIiwic29tZSIsIngiLCJ0ZXN0Iiwic3RhdCIsInBhdGgiLCJqb2luIiwiZXJyIiwiZmlsZVN0YXQiLCJmaWxlVGlja3MiLCJNYXRoIiwibWF4IiwibXRpbWVNcyIsImN0aW1lTXMiLCJEYXRlIiwibm93IiwicHVsc2VBbGwiLCJoYW5kbGVGb3JtRlNVcGRhdGUiLCJiZWZvcmVTdGFydCIsImNvbmZpZyIsIndhdGNoIiwiZmFybURpcmVjdG9yeSIsInJlY3Vyc2l2ZSIsIl8iLCJkZWJvdW5jZSIsInkiLCJmb3JtUm9vdERpcmVjdG9yeSIsIm5vcm1hbGl6ZSIsIkZvcm1zRGlyZWN0b3J5IiwiZ2V0TGFzdFVwZGF0ZVRpbWUiLCJwcmV2TGFzdFVwZGF0ZVRpbWUiLCJ1bmRlZmluZWQiLCJ0b1N0cmluZyIsIlByb21pc2UiLCJyYWNlIiwid2FpdCIsImRlbGF5IiwiYWZ0ZXJTdG9wIiwiX3RoaXMkZmFybVdhdGNoZXJzIiwiX3RoaXMkZm9ybVdhdGNoZXJzIiwiX3RoaXMkcmVzb3VyY2VzV2F0Y2hlIiwiaSIsImNsb3NlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvcjIiLCJkZWZhdWx0IiwicHJvdG90eXBlIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiYXdhaXRlcnMiLCJ3YWl0UHJvbWlzZUhhbmRsZXIiLCJyZXNvbHZlIiwicHVzaCIsImF3YWl0ZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlNXYXRjaGVyLCB3YXRjaCwgc3RhdCB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgRmFybUNvbmZpZyB9IGZyb20gXCJUb29scy9zcmMvQ2FuZHlDTElcIjtcblxuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0FzeW5jVXRpbHNcIjtcbmltcG9ydCB7IGh0dHBHZXQgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTWV0aG9kc1wiO1xuaW1wb3J0IHsgaHR0cFF1ZXJ5UGFyYW0sIGh0dHBUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1BhcmFtc1wiO1xuaW1wb3J0IHsgaHR0cFJldHVybiB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9SZXN1bHRzXCI7XG5pbXBvcnQgeyBTaW5nbGV0b25Db250cm9sbGVyIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9TaW5nbGV0b25Db250cm9sbGVyXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuaW1wb3J0IHsgZ2xvYlRvUmVnZXhwIH0gZnJvbSBcIi4vR2xvYlRvUmVnZXhwXCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgbGFzdFVwZGF0ZVRpbWUgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlTW9uaXRvcjogTW9uaXRvciA9IG5ldyBNb25pdG9yKCk7XG4gICAgcHJpdmF0ZSBmYXJtV2F0Y2hlcnM/OiBGU1dhdGNoZXJbXTtcbiAgICBwcml2YXRlIGZvcm1XYXRjaGVycz86IEZTV2F0Y2hlcltdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VzV2F0Y2hlcj86IEZTV2F0Y2hlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhcm1XYXRjaGluZ1JlZ2V4cHMgPSBbXG4gICAgICAgIFwiZm9ybXMvKi9zY2hlbWFzLyoucm5nLnhtbFwiLFxuICAgICAgICBcImZvcm1zLyovY29udmVydGVycy8qXCIsXG4gICAgICAgIFwiZm9ybXMvKi9tZXJnZXJzLypcIixcbiAgICAgICAgYGZvcm1zLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgIFwiZm9ybXMvKi9zdWdhci8qLnhtbFwiLFxuICAgICAgICBcImZvcm1zLyovbm9ybWFsaXplLyoueG1sXCIsXG4gICAgICAgIFwiZm9ybXMvKi91bm1hcC8qLnhtbFwiLFxuICAgICAgICBcImZvcm1zLyovbWFwLyoueG1sXCIsXG4gICAgICAgIFwiZm9ybXMvKi9wYXRjaC8qLnhzbHRcIixcbiAgICAgICAgXCJwaWNrbGlzdHMvKlwiLFxuICAgIF0ubWFwKGdsb2JUb1JlZ2V4cCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3Jtc1dhdGNoaW5nUmVnZXhwcyA9IFtcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9zY2hlbWFzLyoucm5nLnhtbGAsXG4gICAgICAgIGBmb3Jtcy8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vY29udmVydGVycy8qYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9tZXJnZXJzLypgLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9LyR7V2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZX1gLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3N1Z2FyLyoueG1sYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9ub3JtYWxpemUvKi54bWxgLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3VubWFwLyoueG1sYCxcbiAgICAgICAgYGZvcm1zLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9tYXAvKi54bWxgLFxuICAgICAgICBgZm9ybXMvKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3BhdGNoLyoueHNsdGAsXG4gICAgXS5tYXAoZ2xvYlRvUmVnZXhwKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhbGxGYXJtQ29uZmlnOiBGYXJtQ29uZmlnW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hbGxGYXJtQ29uZmlnID0gYWxsRmFybUNvbmZpZztcbiAgICAgICAgdGhpcy5sYXN0VXBkYXRlVGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGJlZm9yZVN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZhcm1XYXRjaGVycyA9IHRoaXMuYWxsRmFybUNvbmZpZy5tYXAoY29uZmlnID0+XG4gICAgICAgICAgICB3YXRjaChcbiAgICAgICAgICAgICAgICBjb25maWcuZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICB7IHJlY3Vyc2l2ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIF8uZGVib3VuY2UoKHg6IHN0cmluZywgeTogc3RyaW5nKSA9PiB0aGlzLmhhbmRsZUZhcm1GU1VwZGF0ZSh4LCB5LCBjb25maWcuZmFybURpcmVjdG9yeSksIDIwMClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5mb3JtV2F0Y2hlcnMgPSB0aGlzLmFsbEZhcm1Db25maWcubWFwKGNvbmZpZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtUm9vdERpcmVjdG9yeSA9IHBhdGgubm9ybWFsaXplKFxuICAgICAgICAgICAgICAgIHBhdGguam9pbihjb25maWcuZmFybURpcmVjdG9yeSwgXCIuLlwiLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3Jtc0RpcmVjdG9yeSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gd2F0Y2goXG4gICAgICAgICAgICAgICAgZm9ybVJvb3REaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgeyByZWN1cnNpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBfLmRlYm91bmNlKCh4OiBzdHJpbmcsIHk6IHN0cmluZykgPT4gdGhpcy5oYW5kbGVGb3JtRlNVcGRhdGUoeCwgeSwgZm9ybVJvb3REaXJlY3RvcnkpLCAyMDApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcbiAgICAgICAgXCIvdXBkYXRlcy1vYnNlcnZlci9jaGVjay1sYXN0LXVwZGF0ZS1sb25nLXBvbGxcIixcbiAgICAgICAgaHR0cFJldHVybi5QbGFpblRleHQsXG4gICAgICAgIGh0dHBRdWVyeVBhcmFtKFwicHJldkxhc3RVcGRhdGVcIiwgaHR0cFR5cGUuTnVtYmVyKVxuICAgIClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TGFzdFVwZGF0ZVRpbWUocHJldkxhc3RVcGRhdGVUaW1lPzogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKHByZXZMYXN0VXBkYXRlVGltZSA9PSB1bmRlZmluZWQgfHwgcHJldkxhc3RVcGRhdGVUaW1lIDwgdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGFzdFVwZGF0ZVRpbWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMudXBkYXRlTW9uaXRvci53YWl0KCksIGRlbGF5KDYwMDAwKV0pO1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VXBkYXRlVGltZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhZnRlclN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZmFybVdhdGNoZXJzPy5tYXAoaSA9PiBpLmNsb3NlKCkpO1xuICAgICAgICB0aGlzLmZvcm1XYXRjaGVycz8ubWFwKGkgPT4gaS5jbG9zZSgpKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZXNXYXRjaGVyPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlRmFybUZTVXBkYXRlID0gKGV2ZW50VHlwZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCByb290RGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZmFybVdhdGNoaW5nUmVnZXhwcy5zb21lKHggPT4geC50ZXN0KGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHN0YXQocGF0aC5qb2luKHJvb3REaXIsIGZpbGVQYXRoKSwgKGVyciwgZmlsZVN0YXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVGlja3MgPSBNYXRoLm1heChmaWxlU3RhdC5tdGltZU1zLCBmaWxlU3RhdC5jdGltZU1zKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZVRpY2tzID4gdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RVcGRhdGVUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb25pdG9yLnB1bHNlQWxsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVGb3JtRlNVcGRhdGUgPSAoZXZlbnRUeXBlOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcsIHJvb3REaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodGhpcy5mb3Jtc1dhdGNoaW5nUmVnZXhwcy5zb21lKHggPT4geC50ZXN0KGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHN0YXQocGF0aC5qb2luKHJvb3REaXIsIGZpbGVQYXRoKSwgKGVyciwgZmlsZVN0YXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVGlja3MgPSBNYXRoLm1heChmaWxlU3RhdC5tdGltZU1zLCBmaWxlU3RhdC5jdGltZU1zKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZVRpY2tzID4gdGhpcy5sYXN0VXBkYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RVcGRhdGVUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb25pdG9yLnB1bHNlQWxsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5jbGFzcyBNb25pdG9yIHtcbiAgICBwcml2YXRlIGF3YWl0ZXJzOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuXG4gICAgcHVibGljIHdhaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSh0aGlzLndhaXRQcm9taXNlSGFuZGxlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHB1bHNlQWxsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhd2FpdGVycyA9IFsuLi50aGlzLmF3YWl0ZXJzXTtcbiAgICAgICAgdGhpcy5hd2FpdGVycyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGF3YWl0ZXIgb2YgYXdhaXRlcnMpIHtcbiAgICAgICAgICAgIGF3YWl0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2FpdFByb21pc2VIYW5kbGVyID0gKHJlc29sdmU6ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5hd2FpdGVycy5wdXNoKHJlc29sdmUpO1xuICAgIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFB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
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvZGFzaCIsIl9NZXRob2RzIiwiX1BhcmFtcyIsIl9SZXN1bHRzIiwiX1NpbmdsZXRvbkNvbnRyb2xsZXIiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJfR2xvYlRvUmVnZXhwIiwiX2RlYyIsIl9jbGFzcyIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyIiwiZXhwb3J0cyIsImh0dHBHZXQiLCJodHRwUmV0dXJuIiwiUGxhaW5UZXh0IiwiaHR0cFF1ZXJ5UGFyYW0iLCJodHRwVHlwZSIsIk51bWJlciIsIlNpbmdsZXRvbkNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImFsbEZhcm1Db25maWciLCJsYXN0VXBkYXRlVGltZSIsInVwZGF0ZU1vbml0b3IiLCJNb25pdG9yIiwiZmFybVdhdGNoZXJzIiwiZm9ybVdhdGNoZXJzIiwicmVzb3VyY2VzV2F0Y2hlciIsImZhcm1XYXRjaGluZ1JlZ2V4cHMiLCJtYXAiLCJnbG9iVG9SZWdleHAiLCJmb3Jtc1dhdGNoaW5nUmVnZXhwcyIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwiRm9ybUpzb25GaWxlTmFtZSIsImhhbmRsZUZhcm1GU1VwZGF0ZSIsImV2ZW50VHlwZSIsImZpbGVQYXRoIiwicm9vdERpciIsInNvbWUiLCJ4IiwidGVzdCIsInN0YXQiLCJwYXRoIiwiam9pbiIsImVyciIsImZpbGVTdGF0IiwiZmlsZVRpY2tzIiwiTWF0aCIsIm1heCIsIm10aW1lTXMiLCJjdGltZU1zIiwiRGF0ZSIsIm5vdyIsInB1bHNlQWxsIiwiaGFuZGxlRm9ybUZTVXBkYXRlIiwiYmVmb3JlU3RhcnQiLCJjb25maWciLCJ3YXRjaCIsImZhcm1EaXJlY3RvcnkiLCJyZWN1cnNpdmUiLCJfIiwiZGVib3VuY2UiLCJ5IiwiZm9ybVJvb3REaXJlY3RvcnkiLCJub3JtYWxpemUiLCJGb3Jtc0RpcmVjdG9yeSIsImdldExhc3RVcGRhdGVUaW1lIiwicHJldkxhc3RVcGRhdGVUaW1lIiwidG9TdHJpbmciLCJhZnRlclN0b3AiLCJfdGhpcyRmYXJtV2F0Y2hlcnMiLCJfdGhpcyRmb3JtV2F0Y2hlcnMiLCJfdGhpcyRyZXNvdXJjZXNXYXRjaGUiLCJpIiwiY2xvc2UiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yMiIsImRlZmF1bHQiLCJwcm90b3R5cGUiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJhd2FpdGVycyIsIndhaXRQcm9taXNlSGFuZGxlciIsInJlc29sdmUiLCJwdXNoIiwid2FpdCIsIlByb21pc2UiLCJhd2FpdGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZTV2F0Y2hlciwgd2F0Y2gsIHN0YXQgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IEZhcm1Db25maWcgfSBmcm9tIFwiVG9vbHMvc3JjL0NhbmR5Q0xJXCI7XG5cbmltcG9ydCB7IGh0dHBHZXQgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTWV0aG9kc1wiO1xuaW1wb3J0IHsgaHR0cFF1ZXJ5UGFyYW0sIGh0dHBUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1BhcmFtc1wiO1xuaW1wb3J0IHsgaHR0cFJldHVybiB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9SZXN1bHRzXCI7XG5pbXBvcnQgeyBTaW5nbGV0b25Db250cm9sbGVyIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9TaW5nbGV0b25Db250cm9sbGVyXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuaW1wb3J0IHsgZ2xvYlRvUmVnZXhwIH0gZnJvbSBcIi4vR2xvYlRvUmVnZXhwXCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgbGFzdFVwZGF0ZVRpbWUgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlTW9uaXRvcjogTW9uaXRvciA9IG5ldyBNb25pdG9yKCk7XG4gICAgcHJpdmF0ZSBmYXJtV2F0Y2hlcnM/OiBGU1dhdGNoZXJbXTtcbiAgICBwcml2YXRlIGZvcm1XYXRjaGVycz86IEZTV2F0Y2hlcltdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VzV2F0Y2hlcj86IEZTV2F0Y2hlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhcm1XYXRjaGluZ1JlZ2V4cHMgPSBbXG4gICAgICAgIFwic3VnYXJUZW1wbGF0ZXNcIixcbiAgICAgICAgXCJsZWdhY3lmZXRjaGZ1bmN0aW9uc1wiLFxuICAgICAgICBcImpzSGVscGVyc1wiLFxuICAgICAgICBgaW1hZ2VzYCxcbiAgICAgICAgXCJ0b3VyXCIsXG4gICAgICAgIFwiY29udHJvbHNcIixcbiAgICAgICAgXCJjb21tb25SZXNvdXJjZXNcIixcbiAgICAgICAgXCJleHRlcm5hbENvbnZlcnRlcnNcIixcbiAgICBdLm1hcChnbG9iVG9SZWdleHApO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybXNXYXRjaGluZ1JlZ2V4cHMgPSBbXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vc2NoZW1hc2AsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vY29udmVydGVyc2AsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vbWVyZ2Vyc2AsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vYXV0b2NhbGNgLFxuICAgICAgICBgKiovKiovKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L3ZhbGlkYXRpb25zYCxcbiAgICAgICAgYCoqLyoqLyoqLyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfS9mZXRjaGZ1bmN0aW9uc2AsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vaGVscGVyc2AsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vc3VnYXJgLFxuICAgICAgICBgKiovKiovKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L25vcm1hbGl6ZWAsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vdW5tYXBgLFxuICAgICAgICBgKiovKiovKiovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9L21hcGAsXG4gICAgICAgIGAqKi8qKi8qKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vcGF0Y2hgLFxuICAgIF0ubWFwKGdsb2JUb1JlZ2V4cCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYWxsRmFybUNvbmZpZyA9IGFsbEZhcm1Db25maWc7XG4gICAgICAgIHRoaXMubGFzdFVwZGF0ZVRpbWUgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBiZWZvcmVTdGFydCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mYXJtV2F0Y2hlcnMgPSB0aGlzLmFsbEZhcm1Db25maWcubWFwKGNvbmZpZyA9PlxuICAgICAgICAgICAgd2F0Y2goXG4gICAgICAgICAgICAgICAgY29uZmlnLmZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgeyByZWN1cnNpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBfLmRlYm91bmNlKCh4OiBzdHJpbmcsIHk6IHN0cmluZykgPT4gdGhpcy5oYW5kbGVGYXJtRlNVcGRhdGUoeCwgeSwgY29uZmlnLmZhcm1EaXJlY3RvcnkpLCAyMDApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZm9ybVdhdGNoZXJzID0gdGhpcy5hbGxGYXJtQ29uZmlnLm1hcChjb25maWcgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVJvb3REaXJlY3RvcnkgPSBwYXRoLm5vcm1hbGl6ZShcbiAgICAgICAgICAgICAgICBwYXRoLmpvaW4oY29uZmlnLmZhcm1EaXJlY3RvcnksIFwiLi5cIiwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybXNEaXJlY3RvcnkpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gd2F0Y2goXG4gICAgICAgICAgICAgICAgZm9ybVJvb3REaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgeyByZWN1cnNpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBfLmRlYm91bmNlKCh4OiBzdHJpbmcsIHk6IHN0cmluZykgPT4gdGhpcy5oYW5kbGVGb3JtRlNVcGRhdGUoeCwgeSwgZm9ybVJvb3REaXJlY3RvcnkpLCAyMDApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcbiAgICAgICAgXCIvdXBkYXRlcy1vYnNlcnZlci9jaGVjay1sYXN0LXVwZGF0ZS1sb25nLXBvbGxcIixcbiAgICAgICAgaHR0cFJldHVybi5QbGFpblRleHQsXG4gICAgICAgIGh0dHBRdWVyeVBhcmFtKFwicHJldkxhc3RVcGRhdGVcIiwgaHR0cFR5cGUuTnVtYmVyKVxuICAgIClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TGFzdFVwZGF0ZVRpbWUocHJldkxhc3RVcGRhdGVUaW1lPzogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdFVwZGF0ZVRpbWUudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYWZ0ZXJTdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZhcm1XYXRjaGVycz8ubWFwKGkgPT4gaS5jbG9zZSgpKTtcbiAgICAgICAgdGhpcy5mb3JtV2F0Y2hlcnM/Lm1hcChpID0+IGkuY2xvc2UoKSk7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzV2F0Y2hlcj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZUZhcm1GU1VwZGF0ZSA9IChldmVudFR5cGU6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZywgcm9vdERpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZhcm1XYXRjaGluZ1JlZ2V4cHMuc29tZSh4ID0+IHgudGVzdChmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICBzdGF0KHBhdGguam9pbihyb290RGlyLCBmaWxlUGF0aCksIChlcnIsIGZpbGVTdGF0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZVRpY2tzID0gTWF0aC5tYXgoZmlsZVN0YXQubXRpbWVNcywgZmlsZVN0YXQuY3RpbWVNcyk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGVUaWNrcyA+IHRoaXMubGFzdFVwZGF0ZVRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VXBkYXRlVGltZSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTW9uaXRvci5wdWxzZUFsbCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlRm9ybUZTVXBkYXRlID0gKGV2ZW50VHlwZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCByb290RGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybXNXYXRjaGluZ1JlZ2V4cHMuc29tZSh4ID0+IHgudGVzdChmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICBzdGF0KHBhdGguam9pbihyb290RGlyLCBmaWxlUGF0aCksIChlcnIsIGZpbGVTdGF0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZVRpY2tzID0gTWF0aC5tYXgoZmlsZVN0YXQubXRpbWVNcywgZmlsZVN0YXQuY3RpbWVNcyk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGVUaWNrcyA+IHRoaXMubGFzdFVwZGF0ZVRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VXBkYXRlVGltZSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTW9uaXRvci5wdWxzZUFsbCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuY2xhc3MgTW9uaXRvciB7XG4gICAgcHJpdmF0ZSBhd2FpdGVyczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuICAgIHB1YmxpYyB3YWl0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UodGhpcy53YWl0UHJvbWlzZUhhbmRsZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwdWxzZUFsbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXdhaXRlcnMgPSBbLi4udGhpcy5hd2FpdGVyc107XG4gICAgICAgIHRoaXMuYXdhaXRlcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBhd2FpdGVyIG9mIGF3YWl0ZXJzKSB7XG4gICAgICAgICAgICBhd2FpdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHdhaXRQcm9taXNlSGFuZGxlciA9IChyZXNvbHZlOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHRoaXMuYXdhaXRlcnMucHVzaChyZXNvbHZlKTtcbiAgICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLEdBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLE9BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxxQkFBQSxHQUFBUixPQUFBO0FBRUEsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBQThDLElBQUFVLElBQUEsRUFBQUMsTUFBQTtBQUFBLElBRWpDQyw0Q0FB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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","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 `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}/${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":[]}
|
|
1
|
+
{"version":3,"file":"BuildServerBackendResourcesUpdatesController.js","names":["_fs","require","_path","_interopRequireDefault","_lodash","_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","map","globToRegexp","formsWatchingRegexps","WellKnownDirectories","CandySubdirectoryName","FormJsonFileName","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","toString","afterStop","_this$farmWatchers","_this$formWatchers","_this$resourcesWatche","i","close","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor","awaiters","waitPromiseHandler","resolve","push","wait","Promise","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 { 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 \"sugarTemplates\",\n \"legacyfetchfunctions\",\n \"jsHelpers\",\n `images`,\n \"tour\",\n \"controls\",\n \"commonResources\",\n \"externalConverters\",\n ].map(globToRegexp);\n private readonly formsWatchingRegexps = [\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/schemas`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/converters`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/mergers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/autocalc`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/validations`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/helpers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/sugar`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalize`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/unmap`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/map`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/patch`,\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\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 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":[]}
|