@kontur.candy/tools 2.169.0 → 2.170.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/distr/Common/CandyApiClient/CandyApiClient.js +27 -7
  3. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +8 -2
  4. package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
  5. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +1 -1
  6. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
  7. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +1 -1
  8. package/distr/Common/FormPathUtils.js +14 -0
  9. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +3 -3
  10. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +3 -3
  11. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +3 -3
  12. package/distr/Tools/src/BuildTasks/ReadFormSource.js +3 -2
  13. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +3 -4
  14. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +13 -9
  15. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +59 -115
  16. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +17 -3
  17. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +2 -2
  18. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +69 -25
  19. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +3 -6
  20. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +181 -17
  21. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/WellKnownDirectories.js +11 -0
  22. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +7 -1
  23. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +21 -11
  24. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +4 -2
  25. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +3 -2
  26. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +5 -2
  27. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +8 -4
  28. package/distr/Tools/src/Commons/FormGlobsUtils.js +80 -2
  29. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +12 -4
  30. package/distr/Tools/src/Commons/TasksCore/Observe.js +5 -1
  31. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +4 -4
  32. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  33. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  34. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +60 -47
  35. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  36. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +42 -29
  37. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  38. package/package.json +1 -1
@@ -11,6 +11,7 @@ var _PublishedVersionUtils = require("../../BuildTasks/PublishedVersionUtils");
11
11
  var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
12
12
  var _FsUtils = require("../../Commons/FsUtils");
13
13
  var _CommandBasedOptionsParser = require("../../Commons/Options/CommandBasedOptionsParser");
14
+ var _WellKnownDirectories = require("../BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
14
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
17
  async function runInitForm(context, options, farmDirectory) {
@@ -64,7 +65,7 @@ async function runInitForm(context, options, farmDirectory) {
64
65
  }
65
66
  gfvLogger.verbose(`Processed template path ${relativeFilePath}`);
66
67
  }
67
- const formJsonPath = path.join(tempOutputDir, "form.json");
68
+ const formJsonPath = path.join(tempOutputDir, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
68
69
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, gfvLogger);
69
70
  formConfig.dependencies = {
70
71
  engine: await (0, _PublishedVersionUtils.getLastStableEngineVersion)(),
@@ -90,4 +91,4 @@ async function moveDirectory(sourcePath, targetPath) {
90
91
  }
91
92
  }
92
93
  }
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfZnNFeHRyYSIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX0ZzVXRpbHMiLCJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5Jbml0Rm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwiZmFybURpcmVjdG9yeSIsImxvZ2dlciIsImdmdnMiLCJ1bmRlZmluZWQiLCJJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvciIsInRlbXBsYXRlRGlyIiwiam9pbiIsIl9fZGlybmFtZSIsImdmdiIsImdmdkxvZ2dlciIsIndpdGhQcmVmaXgiLCJmYXJtRGlyZWN0b3J5Rm9ybVBhdGgiLCJwYXRoRXhpc3RzIiwiZXJyb3JNZXNzYWdlIiwiZXJyb3IiLCJFcnJvciIsInRlbXBPdXRwdXREaXIiLCJybWRpciIsImxvZyIsImVuc3VyZURpciIsImhpZ2hsYW5kZXJGYXJtUGF0aCIsImhsUm5nUGF0aDEiLCJobFJuZ1BhdGgyIiwicmVsYXRpdmVGaWxlUGF0aCIsImdsb2JBc3luYyIsImN3ZCIsInRhcmdldFJlbGF0aXZlUGF0aCIsInJlcGxhY2UiLCJ2ZXJib3NlIiwic3RhdCIsImlzRGlyZWN0b3J5IiwiaGxybmciLCJleGlzdHNIbFJuZ1BhdGgiLCJjb250ZW50IiwicmVhZEZpbGUiLCJ0YXJnZXRDb250ZW50Iiwid3JpdGVGaWxlIiwiaW5jbHVkZXMiLCJmb3JtSnNvblBhdGgiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJlbmdpbmUiLCJnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiIsImdlbmVyYXRvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwid3JpdGVKc29uIiwic3BhY2VzIiwibW92ZURpcmVjdG9yeSIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwicGxhdGZvcm0iLCJyZW5hbWUiLCJtb3ZlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG1vdmUsIHBhdGhFeGlzdHMsIHJlYWRGaWxlLCByZW5hbWUsIHJtZGlyLCBzdGF0LCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiwgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvT3B0aW9ucy9Db21tYW5kQmFzZWRPcHRpb25zUGFyc2VyXCI7XG5cbmltcG9ydCB7IEluaXRGb3JtT3B0aW9ucyB9IGZyb20gXCIuL0luaXRGb3JtT3B0aW9uc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuSW5pdEZvcm0oXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBJbml0Rm9ybU9wdGlvbnMsXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlcjtcbiAgICBpZiAob3B0aW9ucy5nZnZzID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbW1hbmRMaW5lQXJndW1lbnRzRXJyb3IoXCLQndC1INGD0LrQsNC30LDQvdCwIEdWRiDQtNC70Y8g0YHQvtC30LTQsNC90LjRj1wiLCBcIlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wbGF0ZURpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiRW1wdHlGb3JtVGVtcGxhdGVcIik7XG5cbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBvcHRpb25zLmdmdnMpIHtcbiAgICAgICAgY29uc3QgZ2Z2TG9nZ2VyID0gbG9nZ2VyLndpdGhQcmVmaXgoZ2Z2KTtcbiAgICAgICAgY29uc3QgZmFybURpcmVjdG9yeUZvcm1QYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmFybURpcmVjdG9yeUZvcm1QYXRoKSkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYERpcmVjdG9yeSBmb3IgJyR7Z2Z2fScgYWxyZWFkeSBleGlzdHMuYDtcbiAgICAgICAgICAgIGdmdkxvZ2dlci5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVtcE91dHB1dERpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLnRtcFwiLCBnZnYpO1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyh0ZW1wT3V0cHV0RGlyKSkge1xuICAgICAgICAgICAgYXdhaXQgcm1kaXIodGVtcE91dHB1dERpcik7XG4gICAgICAgIH1cbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgQ3JlYXRpbmcgZGlyZWN0b3J5IHdpdGggc291cmNlcyBmcm9tIHRlbXBsYXRlYCk7XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcih0ZW1wT3V0cHV0RGlyKTtcbiAgICAgICAgY29uc3QgaGlnaGxhbmRlckZhcm1QYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIiwgXCJoaWdobGFuZGVyLmZhcm1cIiwgXCJGb3Jtc1wiLCBnZnYpO1xuICAgICAgICBjb25zdCBobFJuZ1BhdGgxID0gcGF0aC5qb2luKGhpZ2hsYW5kZXJGYXJtUGF0aCwgYCR7Z2Z2fS7RgdGF0LXQvNCwLnJuZy54bWxgKTtcbiAgICAgICAgY29uc3QgaGxSbmdQYXRoMiA9IHBhdGguam9pbihoaWdobGFuZGVyRmFybVBhdGgsIFwiSGlnaGxhbmRlclwiLCBgJHtnZnZ9LtGB0YXQtdC80LAucm5nLnhtbGApO1xuICAgICAgICBmb3IgKGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggb2YgYXdhaXQgZ2xvYkFzeW5jKFwiKiovKlwiLCB7IGN3ZDogdGVtcGxhdGVEaXIgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldFJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlRmlsZVBhdGgucmVwbGFjZSgve2dmdn0vZywgZ2Z2KTtcbiAgICAgICAgICAgIGdmdkxvZ2dlci52ZXJib3NlKGBQcm9jZXNzaW5nIHRlbXBsYXRlIHBhdGggJHtyZWxhdGl2ZUZpbGVQYXRofWApO1xuICAgICAgICAgICAgaWYgKChhd2FpdCBzdGF0KHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCkpKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmhscm5nICYmXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFJlbGF0aXZlUGF0aCA9PT0gYHNjaGVtYXMvJHtnZnZ9LjAucm5nLnhtbGAgJiZcbiAgICAgICAgICAgICAgICAgICAgKChhd2FpdCBwYXRoRXhpc3RzKGhsUm5nUGF0aDEpKSB8fCAoYXdhaXQgcGF0aEV4aXN0cyhobFJuZ1BhdGgyKSkpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0c0hsUm5nUGF0aCA9IChhd2FpdCBwYXRoRXhpc3RzKGhsUm5nUGF0aDEpKSA/IGhsUm5nUGF0aDEgOiBobFJuZ1BhdGgyO1xuICAgICAgICAgICAgICAgICAgICBnZnZMb2dnZXIubG9nKGBDb3B5IHNjaGVtYSBybmcgZmlsZSBmcm9tIGhpZ2hsYW5kZXIuZmFybS5gKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGV4aXN0c0hsUm5nUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgve2dmdn0vZywgZ2Z2KTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpLCB0YXJnZXRDb250ZW50LCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRSZWxhdGl2ZVBhdGguaW5jbHVkZXMoXCJoZWxwZXJzL2FkZFByaWwxLnR4dFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy/Qv9GA0Lgg0LrQvtC/0LjRgNC+0LLQsNC90LjQuCBqcyDRhNCw0LnQu9C+0LIgYmFiZWwg0L3QsNGB0L7QstGL0LLQsNC10YIgdXNlIHN0cmljdCwg0L7QsdC+0YjQu9C4INGC0LDQutC40Lwg0L/Rg9GC0LXQvFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCksIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aC5yZXBsYWNlKFwiLnR4dFwiLCBcIi5qc1wiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInV0Zi04XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGF0aC5qb2luKHRlbXBsYXRlRGlyLCByZWxhdGl2ZUZpbGVQYXRoKSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL3tnZnZ9L2csIGdmdik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aCksIHRhcmdldENvbnRlbnQsIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBnZnZMb2dnZXIudmVyYm9zZShgUHJvY2Vzc2VkIHRlbXBsYXRlIHBhdGggJHtyZWxhdGl2ZUZpbGVQYXRofWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCBcImZvcm0uanNvblwiKTtcbiAgICAgICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2Z2TG9nZ2VyKTtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYFNldCBsYXN0IHN0YWJsZSB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgTW92aW5nIHByZXBhcmVkIHNvdXJjZXMgdG8gJyR7ZmFybURpcmVjdG9yeX0nYCk7XG4gICAgICAgIGF3YWl0IG1vdmVEaXJlY3RvcnkodGVtcE91dHB1dERpciwgZmFybURpcmVjdG9yeUZvcm1QYXRoKTtcbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgRm9ybSBjcmVhdGluZyBjb21wbGV0ZWQuIFBhdGg6ICcke2Zhcm1EaXJlY3RvcnlGb3JtUGF0aH0nYCk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtb3ZlRGlyZWN0b3J5KHNvdXJjZVBhdGg6IHN0cmluZywgdGFyZ2V0UGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKG9zLnBsYXRmb3JtKCkgIT09IFwid2luMzJcIikge1xuICAgICAgICBhd2FpdCByZW5hbWUoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNvdXJjZVBhdGhbMF0gPT09IHRhcmdldFBhdGhbMF0pIHtcbiAgICAgICAgICAgIGF3YWl0IHJlbmFtZShzb3VyY2VQYXRoLCB0YXJnZXRQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IG1vdmUoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEVBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLElBQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLHNCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sMEJBQUEsR0FBQU4sT0FBQTtBQUFtRyxTQUFBTyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBVCx3QkFBQWEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdC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
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfZnNFeHRyYSIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX0ZzVXRpbHMiLCJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5Jbml0Rm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwiZmFybURpcmVjdG9yeSIsImxvZ2dlciIsImdmdnMiLCJ1bmRlZmluZWQiLCJJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvciIsInRlbXBsYXRlRGlyIiwiam9pbiIsIl9fZGlybmFtZSIsImdmdiIsImdmdkxvZ2dlciIsIndpdGhQcmVmaXgiLCJmYXJtRGlyZWN0b3J5Rm9ybVBhdGgiLCJwYXRoRXhpc3RzIiwiZXJyb3JNZXNzYWdlIiwiZXJyb3IiLCJFcnJvciIsInRlbXBPdXRwdXREaXIiLCJybWRpciIsImxvZyIsImVuc3VyZURpciIsImhpZ2hsYW5kZXJGYXJtUGF0aCIsImhsUm5nUGF0aDEiLCJobFJuZ1BhdGgyIiwicmVsYXRpdmVGaWxlUGF0aCIsImdsb2JBc3luYyIsImN3ZCIsInRhcmdldFJlbGF0aXZlUGF0aCIsInJlcGxhY2UiLCJ2ZXJib3NlIiwic3RhdCIsImlzRGlyZWN0b3J5IiwiaGxybmciLCJleGlzdHNIbFJuZ1BhdGgiLCJjb250ZW50IiwicmVhZEZpbGUiLCJ0YXJnZXRDb250ZW50Iiwid3JpdGVGaWxlIiwiaW5jbHVkZXMiLCJmb3JtSnNvblBhdGgiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJlbmdpbmUiLCJnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiIsImdlbmVyYXRvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwid3JpdGVKc29uIiwic3BhY2VzIiwibW92ZURpcmVjdG9yeSIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwicGxhdGZvcm0iLCJyZW5hbWUiLCJtb3ZlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG1vdmUsIHBhdGhFeGlzdHMsIHJlYWRGaWxlLCByZW5hbWUsIHJtZGlyLCBzdGF0LCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiwgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvT3B0aW9ucy9Db21tYW5kQmFzZWRPcHRpb25zUGFyc2VyXCI7XG5cbmltcG9ydCB7IEluaXRGb3JtT3B0aW9ucyB9IGZyb20gXCIuL0luaXRGb3JtT3B0aW9uc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkluaXRGb3JtKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogSW5pdEZvcm1PcHRpb25zLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXI7XG4gICAgaWYgKG9wdGlvbnMuZ2Z2cyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yKFwi0J3QtSDRg9C60LDQt9Cw0L3QsCBHVkYg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y9cIiwgXCJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVtcGxhdGVEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIkVtcHR5Rm9ybVRlbXBsYXRlXCIpO1xuXG4gICAgZm9yIChjb25zdCBnZnYgb2Ygb3B0aW9ucy5nZnZzKSB7XG4gICAgICAgIGNvbnN0IGdmdkxvZ2dlciA9IGxvZ2dlci53aXRoUHJlZml4KGdmdik7XG4gICAgICAgIGNvbnN0IGZhcm1EaXJlY3RvcnlGb3JtUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZhcm1EaXJlY3RvcnlGb3JtUGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBEaXJlY3RvcnkgZm9yICcke2dmdn0nIGFscmVhZHkgZXhpc3RzLmA7XG4gICAgICAgICAgICBnZnZMb2dnZXIuZXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRlbXBPdXRwdXREaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi50bXBcIiwgZ2Z2KTtcbiAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHModGVtcE91dHB1dERpcikpIHtcbiAgICAgICAgICAgIGF3YWl0IHJtZGlyKHRlbXBPdXRwdXREaXIpO1xuICAgICAgICB9XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYENyZWF0aW5nIGRpcmVjdG9yeSB3aXRoIHNvdXJjZXMgZnJvbSB0ZW1wbGF0ZWApO1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIodGVtcE91dHB1dERpcik7XG4gICAgICAgIGNvbnN0IGhpZ2hsYW5kZXJGYXJtUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiaGlnaGxhbmRlci5mYXJtXCIsIFwiRm9ybXNcIiwgZ2Z2KTtcbiAgICAgICAgY29uc3QgaGxSbmdQYXRoMSA9IHBhdGguam9pbihoaWdobGFuZGVyRmFybVBhdGgsIGAke2dmdn0u0YHRhdC10LzQsC5ybmcueG1sYCk7XG4gICAgICAgIGNvbnN0IGhsUm5nUGF0aDIgPSBwYXRoLmpvaW4oaGlnaGxhbmRlckZhcm1QYXRoLCBcIkhpZ2hsYW5kZXJcIiwgYCR7Z2Z2fS7RgdGF0LXQvNCwLnJuZy54bWxgKTtcbiAgICAgICAgZm9yIChjb25zdCByZWxhdGl2ZUZpbGVQYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcIioqLypcIiwgeyBjd2Q6IHRlbXBsYXRlRGlyIH0pKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRSZWxhdGl2ZVBhdGggPSByZWxhdGl2ZUZpbGVQYXRoLnJlcGxhY2UoL3tnZnZ9L2csIGdmdik7XG4gICAgICAgICAgICBnZnZMb2dnZXIudmVyYm9zZShgUHJvY2Vzc2luZyB0ZW1wbGF0ZSBwYXRoICR7cmVsYXRpdmVGaWxlUGF0aH1gKTtcbiAgICAgICAgICAgIGlmICgoYXdhaXQgc3RhdChwYXRoLmpvaW4odGVtcGxhdGVEaXIsIHJlbGF0aXZlRmlsZVBhdGgpKSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmpvaW4odGVtcE91dHB1dERpciwgdGFyZ2V0UmVsYXRpdmVQYXRoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5obHJuZyAmJlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRSZWxhdGl2ZVBhdGggPT09IGBzY2hlbWFzLyR7Z2Z2fS4wLnJuZy54bWxgICYmXG4gICAgICAgICAgICAgICAgICAgICgoYXdhaXQgcGF0aEV4aXN0cyhobFJuZ1BhdGgxKSkgfHwgKGF3YWl0IHBhdGhFeGlzdHMoaGxSbmdQYXRoMikpKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdHNIbFJuZ1BhdGggPSAoYXdhaXQgcGF0aEV4aXN0cyhobFJuZ1BhdGgxKSkgPyBobFJuZ1BhdGgxIDogaGxSbmdQYXRoMjtcbiAgICAgICAgICAgICAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgQ29weSBzY2hlbWEgcm5nIGZpbGUgZnJvbSBoaWdobGFuZGVyLmZhcm0uYCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShleGlzdHNIbFJuZ1BhdGgsIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL3tnZnZ9L2csIGdmdik7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShwYXRoLmpvaW4odGVtcE91dHB1dERpciwgdGFyZ2V0UmVsYXRpdmVQYXRoKSwgdGFyZ2V0Q29udGVudCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0UmVsYXRpdmVQYXRoLmluY2x1ZGVzKFwiaGVscGVycy9hZGRQcmlsMS50eHRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v0L/RgNC4INC60L7Qv9C40YDQvtCy0LDQvdC40LgganMg0YTQsNC50LvQvtCyIGJhYmVsINC90LDRgdC+0LLRi9Cy0LDQtdGCIHVzZSBzdHJpY3QsINC+0LHQvtGI0LvQuCDRgtCw0LrQuNC8INC/0YPRgtC10LxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShwYXRoLmpvaW4odGVtcGxhdGVEaXIsIHJlbGF0aXZlRmlsZVBhdGgpLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgucmVwbGFjZShcIi50eHRcIiwgXCIuanNcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1dGYtOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCksIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKC97Z2Z2fS9nLCBnZnYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpLCB0YXJnZXRDb250ZW50LCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2Z2TG9nZ2VyLnZlcmJvc2UoYFByb2Nlc3NlZCB0ZW1wbGF0ZSBwYXRoICR7cmVsYXRpdmVGaWxlUGF0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4odGVtcE91dHB1dERpciwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSk7XG4gICAgICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGdmdkxvZ2dlcik7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgZW5naW5lOiBhd2FpdCBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpLFxuICAgICAgICAgICAgZ2VuZXJhdG9yOiBhd2FpdCBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpLFxuICAgICAgICB9O1xuICAgICAgICBnZnZMb2dnZXIubG9nKGBTZXQgbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYE1vdmluZyBwcmVwYXJlZCBzb3VyY2VzIHRvICcke2Zhcm1EaXJlY3Rvcnl9J2ApO1xuICAgICAgICBhd2FpdCBtb3ZlRGlyZWN0b3J5KHRlbXBPdXRwdXREaXIsIGZhcm1EaXJlY3RvcnlGb3JtUGF0aCk7XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYEZvcm0gY3JlYXRpbmcgY29tcGxldGVkLiBQYXRoOiAnJHtmYXJtRGlyZWN0b3J5Rm9ybVBhdGh9J2ApO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbW92ZURpcmVjdG9yeShzb3VyY2VQYXRoOiBzdHJpbmcsIHRhcmdldFBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChvcy5wbGF0Zm9ybSgpICE9PSBcIndpbjMyXCIpIHtcbiAgICAgICAgYXdhaXQgcmVuYW1lKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzb3VyY2VQYXRoWzBdID09PSB0YXJnZXRQYXRoWzBdKSB7XG4gICAgICAgICAgICBhd2FpdCByZW5hbWUoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBtb3ZlKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxFQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxzQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLDBCQUFBLEdBQUFOLE9BQUE7QUFHQSxJQUFBTyxxQkFBQSxHQUFBUCxPQUFBO0FBQTRHLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFWLHdCQUFBYyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVgsR0FBQSxRQUFBVyxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFkLEdBQUEsRUFBQVcsR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVYsR0FBQSxFQUFBVyxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFYLEdBQUEsQ0FBQVcsR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUYsR0FBQSxNQUFBRyxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBaEIsR0FBQSxFQUFBTSxNQUFBLFlBQUFBLE1BQUE7QUFFckcsZUFBZVcsV0FBV0EsQ0FDN0JDLE9BQWtDLEVBQ2xDQyxPQUF3QixFQUN4QkMsYUFBcUIsRUFDUjtFQUNiLE1BQU1DLE1BQU0sR0FBR0gsT0FBTyxDQUFDRyxNQUFNO0VBQzdCLElBQUlGLE9BQU8sQ0FBQ0csSUFBSSxJQUFJQyxTQUFTLEVBQUU7SUFDM0IsTUFBTSxJQUFJQywyREFBZ0MsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLENBQUM7RUFDakY7RUFFQSxNQUFNQyxXQUFXLEdBQUdyQyxJQUFJLENBQUNzQyxJQUFJLENBQUNDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQztFQUU3RCxLQUFLLE1BQU1DLEdBQUcsSUFBSVQsT0FBTyxDQUFDRyxJQUFJLEVBQUU7SUFDNUIsTUFBTU8sU0FBUyxHQUFHUixNQUFNLENBQUNTLFVBQVUsQ0FBQ0YsR0FBRyxDQUFDO0lBQ3hDLE1BQU1HLHFCQUFxQixHQUFHM0MsSUFBSSxDQUFDc0MsSUFBSSxDQUFDTixhQUFhLEVBQUUsT0FBTyxFQUFFUSxHQUFHLENBQUM7SUFDcEUsSUFBSSxNQUFNLElBQUFJLG1CQUFVLEVBQUNELHFCQUFxQixDQUFDLEVBQUU7TUFDekMsTUFBTUUsWUFBWSxHQUFJLGtCQUFpQkwsR0FBSSxtQkFBa0I7TUFDN0RDLFNBQVMsQ0FBQ0ssS0FBSyxDQUFDRCxZQUFZLENBQUM7TUFDN0IsTUFBTSxJQUFJRSxLQUFLLENBQUNGLFlBQVksQ0FBQztJQUNqQztJQUNBLE1BQU1HLGFBQWEsR0FBR2hELElBQUksQ0FBQ3NDLElBQUksQ0FBQ0MsU0FBUyxFQUFFLE1BQU0sRUFBRUMsR0FBRyxDQUFDO0lBQ3ZELElBQUksTUFBTSxJQUFBSSxtQkFBVSxFQUFDSSxhQUFhLENBQUMsRUFBRTtNQUNqQyxNQUFNLElBQUFDLGNBQUssRUFBQ0QsYUFBYSxDQUFDO0lBQzlCO0lBQ0FQLFNBQVMsQ0FBQ1MsR0FBRyxDQUFFLCtDQUE4QyxDQUFDO0lBQzlELE1BQU0sSUFBQUMsa0JBQVMsRUFBQ0gsYUFBYSxDQUFDO0lBQzlCLE1BQU1JLGtCQUFrQixHQUFHcEQsSUFBSSxDQUFDc0MsSUFBSSxDQUFDTixhQUFhLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRVEsR0FBRyxDQUFDO0lBQzFGLE1BQU1hLFVBQVUsR0FBR3JELElBQUksQ0FBQ3NDLElBQUksQ0FBQ2Msa0JBQWtCLEVBQUcsR0FBRVosR0FBSSxnQkFBZSxDQUFDO0lBQ3hFLE1BQU1jLFVBQVUsR0FBR3RELElBQUksQ0FBQ3NDLElBQUksQ0FBQ2Msa0JBQWtCLEVBQUUsWUFBWSxFQUFHLEdBQUVaLEdBQUksZ0JBQWUsQ0FBQztJQUN0RixLQUFLLE1BQU1lLGdCQUFnQixJQUFJLE1BQU0sSUFBQUMsa0JBQVMsRUFBQyxNQUFNLEVBQUU7TUFBRUMsR0FBRyxFQUFFcEI7SUFBWSxDQUFDLENBQUMsRUFBRTtNQUMxRSxNQUFNcUIsa0JBQWtCLEdBQUdILGdCQUFnQixDQUFDSSxPQUFPLENBQUMsUUFBUSxFQUFFbkIsR0FBRyxDQUFDO01BQ2xFQyxTQUFTLENBQUNtQixPQUFPLENBQUUsNEJBQTJCTCxnQkFBaUIsRUFBQyxDQUFDO01BQ2pFLElBQUksQ0FBQyxNQUFNLElBQUFNLGFBQUksRUFBQzdELElBQUksQ0FBQ3NDLElBQUksQ0FBQ0QsV0FBVyxFQUFFa0IsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFTyxXQUFXLENBQUMsQ0FBQyxFQUFFO1FBQ3RFLE1BQU0sSUFBQVgsa0JBQVMsRUFBQ25ELElBQUksQ0FBQ3NDLElBQUksQ0FBQ1UsYUFBYSxFQUFFVSxrQkFBa0IsQ0FBQyxDQUFDO01BQ2pFLENBQUMsTUFBTTtRQUNILElBQ0kzQixPQUFPLENBQUNnQyxLQUFLLElBQ2JMLGtCQUFrQixLQUFNLFdBQVVsQixHQUFJLFlBQVcsS0FDaEQsQ0FBQyxNQUFNLElBQUFJLG1CQUFVLEVBQUNTLFVBQVUsQ0FBQyxNQUFNLE1BQU0sSUFBQVQsbUJBQVUsRUFBQ1UsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUNwRTtVQUNFLE1BQU1VLGVBQWUsR0FBRyxDQUFDLE1BQU0sSUFBQXBCLG1CQUFVLEVBQUNTLFVBQVUsQ0FBQyxJQUFJQSxVQUFVLEdBQUdDLFVBQVU7VUFDaEZiLFNBQVMsQ0FBQ1MsR0FBRyxDQUFFLDRDQUEyQyxDQUFDO1VBQzNELE1BQU1lLE9BQU8sR0FBRyxNQUFNLElBQUFDLGlCQUFRLEVBQUNGLGVBQWUsRUFBRSxPQUFPLENBQUM7VUFDeEQsTUFBTUcsYUFBYSxHQUFHRixPQUFPLENBQUNOLE9BQU8sQ0FBQyxRQUFRLEVBQUVuQixHQUFHLENBQUM7VUFDcEQsTUFBTSxJQUFBNEIsa0JBQVMsRUFBQ3BFLElBQUksQ0FBQ3NDLElBQUksQ0FBQ1UsYUFBYSxFQUFFVSxrQkFBa0IsQ0FBQyxFQUFFUyxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQ3pGLENBQUMsTUFBTTtVQUNILElBQUlULGtCQUFrQixDQUFDVyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUNyRDtZQUNBLE1BQU1KLE9BQU8sR0FBRyxNQUFNLElBQUFDLGlCQUFRLEVBQUNsRSxJQUFJLENBQUNzQyxJQUFJLENBQUNELFdBQVcsRUFBRWtCLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO1lBQ2pGLE1BQU0sSUFBQWEsa0JBQVMsRUFDWHBFLElBQUksQ0FBQ3NDLElBQUksQ0FBQ1UsYUFBYSxFQUFFVSxrQkFBa0IsQ0FBQ0MsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUNuRU0sT0FBTyxFQUNQLE9BQ0osQ0FBQztVQUNMLENBQUMsTUFBTTtZQUNILE1BQU1BLE9BQU8sR0FBRyxNQUFNLElBQUFDLGlCQUFRLEVBQUNsRSxJQUFJLENBQUNzQyxJQUFJLENBQUNELFdBQVcsRUFBRWtCLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO1lBQ2pGLE1BQU1ZLGFBQWEsR0FBR0YsT0FBTyxDQUFDTixPQUFPLENBQUMsUUFBUSxFQUFFbkIsR0FBRyxDQUFDO1lBQ3BELE1BQU0sSUFBQTRCLGtCQUFTLEVBQUNwRSxJQUFJLENBQUNzQyxJQUFJLENBQUNVLGFBQWEsRUFBRVUsa0JBQWtCLENBQUMsRUFBRVMsYUFBYSxFQUFFLE9BQU8sQ0FBQztVQUN6RjtRQUNKO01BQ0o7TUFDQTFCLFNBQVMsQ0FBQ21CLE9BQU8sQ0FBRSwyQkFBMEJMLGdCQUFpQixFQUFDLENBQUM7SUFDcEU7SUFDQSxNQUFNZSxZQUFZLEdBQUd0RSxJQUFJLENBQUNzQyxJQUFJLENBQUNVLGFBQWEsRUFBRXVCLDBDQUFvQixDQUFDQyxnQkFBZ0IsQ0FBQztJQUNwRixNQUFNQyxVQUFVLEdBQUcsTUFBTSxJQUFBQywrQkFBYyxFQUFDSixZQUFZLEVBQUU3QixTQUFTLENBQUM7SUFDaEVnQyxVQUFVLENBQUNFLFlBQVksR0FBRztNQUN0QkMsTUFBTSxFQUFFLE1BQU0sSUFBQUMsaURBQTBCLEVBQUMsQ0FBQztNQUMxQ0MsU0FBUyxFQUFFLE1BQU0sSUFBQUMsb0RBQTZCLEVBQUM7SUFDbkQsQ0FBQztJQUNEdEMsU0FBUyxDQUFDUyxHQUFHLENBQUUsMkJBQTBCdUIsVUFBVSxDQUFDRSxZQUFZLENBQUNDLE1BQU8sRUFBQyxDQUFDO0lBQzFFLE1BQU0sSUFBQUksa0JBQVMsRUFBQ1YsWUFBWSxFQUFFRyxVQUFVLEVBQUU7TUFBRVEsTUFBTSxFQUFFO0lBQUUsQ0FBQyxDQUFDO0lBQ3hEeEMsU0FBUyxDQUFDUyxHQUFHLENBQUUsK0JBQThCbEIsYUFBYyxHQUFFLENBQUM7SUFDOUQsTUFBTWtELGFBQWEsQ0FBQ2xDLGFBQWEsRUFBRUwscUJBQXFCLENBQUM7SUFDekRGLFNBQVMsQ0FBQ1MsR0FBRyxDQUFFLG1DQUFrQ1AscUJBQXNCLEdBQUUsQ0FBQztFQUM5RTtBQUNKO0FBRUEsZUFBZXVDLGFBQWFBLENBQUNDLFVBQWtCLEVBQUVDLFVBQWtCLEVBQWlCO0VBQ2hGLElBQUl2RixFQUFFLENBQUN3RixRQUFRLENBQUMsQ0FBQyxLQUFLLE9BQU8sRUFBRTtJQUMzQixNQUFNLElBQUFDLGVBQU0sRUFBQ0gsVUFBVSxFQUFFQyxVQUFVLENBQUM7RUFDeEMsQ0FBQyxNQUFNO0lBQ0gsSUFBSUQsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDakMsTUFBTSxJQUFBRSxlQUFNLEVBQUNILFVBQVUsRUFBRUMsVUFBVSxDQUFDO0lBQ3hDLENBQUMsTUFBTTtNQUNILE1BQU0sSUFBQUcsYUFBSSxFQUFDSixVQUFVLEVBQUVDLFVBQVUsQ0FBQztJQUN0QztFQUNKO0FBQ0oifQ==
@@ -12,12 +12,15 @@ var _PublishedVersionUtils = require("../../BuildTasks/PublishedVersionUtils");
12
12
  var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
13
13
  var _FsUtils = require("../../Commons/FsUtils");
14
14
  var _Observe = require("../../Commons/TasksCore/Observe");
15
+ var _WellKnownDirectories = require("../BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
15
16
  async function runLocalization(context, options, farmDirectory, engineDirectory, candyModulesDirectory, hlFarmDirectoryPath) {
16
17
  const formDirPath = _path.default.join(farmDirectory, "forms", options.gfv);
17
18
  if (!(await (0, _fsExtra.pathExists)(formDirPath))) {
18
19
  throw new Error(`GFV ${options.gfv} don't exist`);
19
20
  }
20
- const localizeChain = _Observe.Observe.file(_path.default.join(formDirPath, "form.json")).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, engineDirectory, context.logger.withPrefix(`FORM:${options.gfv}`))).transform(async x => {
21
+
22
+ // TODO
23
+ const localizeChain = _Observe.Observe.file(_path.default.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName)).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, engineDirectory, context.logger.withPrefix(`FORM:${options.gfv}`))).transform(async x => {
21
24
  if (options.useLocalGeneratorSources) {
22
25
  return {
23
26
  ...x,
@@ -69,4 +72,4 @@ async function writeFilesBatch(filesBatch, outputDirectory) {
69
72
  }
70
73
  }
71
74
  }
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfQWNxdWlyZUZvcm1HZW5lcmF0b3IiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gc1V0aWxzIiwiX09ic2VydmUiLCJydW5Mb2NhbGl6YXRpb24iLCJjb250ZXh0Iiwib3B0aW9ucyIsImZhcm1EaXJlY3RvcnkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiZm9ybURpclBhdGgiLCJwYXRoIiwiam9pbiIsImdmdiIsInBhdGhFeGlzdHMiLCJFcnJvciIsImxvY2FsaXplQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZSIsInRyYW5zZm9ybSIsImZvcm1Kc29uRmlsZSIsInJlc29sdmVGb3JtSW5mbyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ4IiwidXNlTG9jYWxHZW5lcmF0b3JTb3VyY2VzIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZ2VuZXJhdG9yVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlc29sdmVHZW5lcmF0b3JWZXJzaW9uIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImRvIiwiZm9ybVNvdXJjZSIsInJlYWRTb3VyY2VzIiwiZGljdGlvbmFyeU9ubHkiLCJsb2ciLCJsb2NhbGl6YXRpb25EaWN0aW9uYXJ5IiwiZ2V0RGljdGlvbmFyeSIsInN1Z2FyQ29udGVudCIsInJlc291cmNlcyIsIndyaXRlRmlsZXNCYXRjaCIsImxvY2FsaXplZFN1Z2FyIiwiZ2V0TG9jYWxpemVkU3VnYXIiLCJvbGRTdWdhckRpcmVjdG9yeSIsImVuc3VyZURpciIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiZmlsZW5hbWUiLCJzdWdhciIsIndyaXRlRmlsZUFzeW5jIiwiY3VycmVudFZhbHVlIiwiZmlsZXNCYXRjaCIsIm91dHB1dERpcmVjdG9yeSIsImZpbGVQYXRoIiwia2V5cyIsImNvbnRlbnQiLCJwYXJzZSIsImRpciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Mb2NhbGl6YXRpb24vUnVuTG9jYWxpemF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGVuc3VyZURpciwgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uLCByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyB3cml0ZUZpbGVBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvT2JzZXJ2ZVwiO1xuXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25PcHRpb25zIH0gZnJvbSBcIi4vTG9jYWxpemF0aW9uT3B0aW9uc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuTG9jYWxpemF0aW9uKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogTG9jYWxpemF0aW9uT3B0aW9ucyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgaGxGYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIG9wdGlvbnMuZ2Z2KTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1EaXJQYXRoKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHRlYgJHtvcHRpb25zLmdmdn0gZG9uJ3QgZXhpc3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbGl6ZUNoYWluID0gT2JzZXJ2ZS5maWxlKHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIikpXG4gICAgICAgIC50cmFuc2Zvcm0oZm9ybUpzb25GaWxlID0+XG4gICAgICAgICAgICByZXNvbHZlRm9ybUluZm8oXG4gICAgICAgICAgICAgICAgZm9ybUpzb25GaWxlLFxuICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBGT1JNOiR7b3B0aW9ucy5nZnZ9YClcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAudHJhbnNmb3JtKGFzeW5jIHggPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlTG9jYWxHZW5lcmF0b3JTb3VyY2VzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoeC5nZW5lcmF0b3JWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdlbmVyYXRvclZlcnNpb24gaXMgbm8gZGVmaW5lZFwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogYXdhaXQgcmVzb2x2ZUdlbmVyYXRvclZlcnNpb24oeC5nZW5lcmF0b3JWZXJzaW9uKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgIC5hdHRhY2goXG4gICAgICAgICAgICBhc3luYyBmaSA9PiBnZW5lcmF0b3JGYWN0b3J5KGZpLmdlbmVyYXRvclNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBmYWxzZSksXG4gICAgICAgICAgICBhc3luYyAoZmksIHkpID0+ICh7IC4uLmZpLCBnZW5lcmF0b3I6IHkgfSksXG4gICAgICAgICAgICBhc3luYyBmaSA9PiBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICApXG4gICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KFwiTE9DQUxJWkVcIikud2l0aFByZWZpeChvcHRpb25zLmdmdik7XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1Tb3VyY2UgPSBhd2FpdCBmaS5nZW5lcmF0b3IucmVhZFNvdXJjZXMoZm9ybURpclBhdGgsIGZhcm1EaXJlY3RvcnksIGhsRmFybURpcmVjdG9yeVBhdGgpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5kaWN0aW9uYXJ5T25seSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJHZW5lcmF0ZSB0cmFuc2xhdGUgZGljdGlvbmFyeVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGl6YXRpb25EaWN0aW9uYXJ5ID0gYXdhaXQgZmkuZ2VuZXJhdG9yLmdldERpY3Rpb25hcnkoXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2Uuc3VnYXJDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBmb3JtU291cmNlLnJlc291cmNlc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIldyaXRlIHRyYW5zbGF0ZSBkaWN0aW9uYXJ5XCIpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZXNCYXRjaChsb2NhbGl6YXRpb25EaWN0aW9uYXJ5LCBmb3JtRGlyUGF0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJHZW5lcmF0ZSBsb2NhbGl6YXRpb24gc3VnYXJcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxpemVkU3VnYXIgPSBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0TG9jYWxpemVkU3VnYXIoXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2Uuc3VnYXJDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBmb3JtU291cmNlLnJlc291cmNlc1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFwiR2VuZXJhdGUgdHJhbnNsYXRlIGRpY3Rpb25hcnlcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxpemF0aW9uRGljdGlvbmFyeSA9IGF3YWl0IGZpLmdlbmVyYXRvci5nZXREaWN0aW9uYXJ5KGxvY2FsaXplZFN1Z2FyLCBmb3JtU291cmNlLnJlc291cmNlcyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvbGRTdWdhckRpcmVjdG9yeSA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJvbGRzdWdhclwiKTtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKGBXcml0ZSBwcmV2aW91cyB2ZXJzaW9uIHN1Z2FyIGluIFwiJHtvbGRTdWdhckRpcmVjdG9yeX1cImApO1xuICAgICAgICAgICAgICAgIGF3YWl0IGVuc3VyZURpcihvbGRTdWdhckRpcmVjdG9yeSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZvcm1Tb3VyY2Uuc3VnYXJDb250ZW50KS5tYXAoKFtmaWxlbmFtZSwgc3VnYXJdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlQXN5bmMocGF0aC5qb2luKG9sZFN1Z2FyRGlyZWN0b3J5LCBmaWxlbmFtZSArIFwiLnN1Z2FyLnhtbFwiKSwgc3VnYXIpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIldyaXRlIGxvY2FsaXphdGlvbiBzdWdhclwiKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGVzQmF0Y2gobG9jYWxpemVkU3VnYXIsIGZvcm1EaXJQYXRoKTtcblxuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJXcml0ZSB0cmFuc2xhdGUgZGljdGlvbmFyeVwiKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGVzQmF0Y2gobG9jYWxpemF0aW9uRGljdGlvbmFyeSwgZm9ybURpclBhdGgpO1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJMb2NhbGl6ZSBzdWNjZXNzZnVsIGNvbXBsZXRlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIGF3YWl0IGxvY2FsaXplQ2hhaW4uY3VycmVudFZhbHVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZUZpbGVzQmF0Y2goXG4gICAgZmlsZXNCYXRjaDoge1xuICAgICAgICBbcmVsYXRpdmVGaWxlTmFtZTogc3RyaW5nXTogc3RyaW5nIHwgQnVmZmVyO1xuICAgIH0sXG4gICAgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgT2JqZWN0LmtleXMoZmlsZXNCYXRjaCkpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGZpbGVzQmF0Y2hbZmlsZVBhdGhdO1xuICAgICAgICBpZiAoY29udGVudCAhPSB1bmRlZmluZWQgJiYgY29udGVudCAhPT0gXCJcIikge1xuICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguam9pbihvdXRwdXREaXJlY3RvcnksIHBhdGgucGFyc2UoZmlsZVBhdGgpLmRpcikpO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlQXN5bmMocGF0aC5qb2luKG91dHB1dERpcmVjdG9yeSwgZmlsZVBhdGgpLCBjb250ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxzQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUlPLGVBQWVPLGVBQWVBLENBQ2pDQyxPQUFrQyxFQUNsQ0MsT0FBNEIsRUFDNUJDLGFBQXFCLEVBQ3JCQyxlQUF1QixFQUN2QkMscUJBQTZCLEVBQzdCQyxtQkFBMkIsRUFDZDtFQUNiLE1BQU1DLFdBQVcsR0FBR0MsYUFBSSxDQUFDQyxJQUFJLENBQUNOLGFBQWEs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
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfQWNxdWlyZUZvcm1HZW5lcmF0b3IiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gc1V0aWxzIiwiX09ic2VydmUiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5Mb2NhbGl6YXRpb24iLCJjb250ZXh0Iiwib3B0aW9ucyIsImZhcm1EaXJlY3RvcnkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiZm9ybURpclBhdGgiLCJwYXRoIiwiam9pbiIsImdmdiIsInBhdGhFeGlzdHMiLCJFcnJvciIsImxvY2FsaXplQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZSIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybUpzb25GaWxlTmFtZSIsInRyYW5zZm9ybSIsImZvcm1Kc29uRmlsZSIsInJlc29sdmVGb3JtSW5mbyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ4IiwidXNlTG9jYWxHZW5lcmF0b3JTb3VyY2VzIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZ2VuZXJhdG9yVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlc29sdmVHZW5lcmF0b3JWZXJzaW9uIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImRvIiwiZm9ybVNvdXJjZSIsInJlYWRTb3VyY2VzIiwiZGljdGlvbmFyeU9ubHkiLCJsb2ciLCJsb2NhbGl6YXRpb25EaWN0aW9uYXJ5IiwiZ2V0RGljdGlvbmFyeSIsInN1Z2FyQ29udGVudCIsInJlc291cmNlcyIsIndyaXRlRmlsZXNCYXRjaCIsImxvY2FsaXplZFN1Z2FyIiwiZ2V0TG9jYWxpemVkU3VnYXIiLCJvbGRTdWdhckRpcmVjdG9yeSIsImVuc3VyZURpciIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiZmlsZW5hbWUiLCJzdWdhciIsIndyaXRlRmlsZUFzeW5jIiwiY3VycmVudFZhbHVlIiwiZmlsZXNCYXRjaCIsIm91dHB1dERpcmVjdG9yeSIsImZpbGVQYXRoIiwia2V5cyIsImNvbnRlbnQiLCJwYXJzZSIsImRpciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Mb2NhbGl6YXRpb24vUnVuTG9jYWxpemF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGVuc3VyZURpciwgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uLCByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyB3cml0ZUZpbGVBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvT2JzZXJ2ZVwiO1xuXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25PcHRpb25zIH0gZnJvbSBcIi4vTG9jYWxpemF0aW9uT3B0aW9uc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkxvY2FsaXphdGlvbihcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IExvY2FsaXphdGlvbk9wdGlvbnMsXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBvcHRpb25zLmdmdik7XG4gICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhmb3JtRGlyUGF0aCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR0ZWICR7b3B0aW9ucy5nZnZ9IGRvbid0IGV4aXN0YCk7XG4gICAgfVxuXG4gICAgLy8gVE9ET1xuICAgIGNvbnN0IGxvY2FsaXplQ2hhaW4gPSBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSlcbiAgICAgICAgLnRyYW5zZm9ybShmb3JtSnNvbkZpbGUgPT5cbiAgICAgICAgICAgIHJlc29sdmVGb3JtSW5mbyhcbiAgICAgICAgICAgICAgICBmb3JtSnNvbkZpbGUsXG4gICAgICAgICAgICAgICAgZm9ybURpclBhdGgsXG4gICAgICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtvcHRpb25zLmdmdn1gKVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC50cmFuc2Zvcm0oYXN5bmMgeCA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VMb2NhbEdlbmVyYXRvclNvdXJjZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IHJlc29sdmVMb2NhbEdlbmVyYXRvclNvdXJjZShlbmdpbmVEaXJlY3RvcnkpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh4LmdlbmVyYXRvclZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2VuZXJhdG9yVmVyc2lvbiBpcyBubyBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiBhd2FpdCByZXNvbHZlR2VuZXJhdG9yVmVyc2lvbih4LmdlbmVyYXRvclZlcnNpb24pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgIGFzeW5jIGZpID0+IGdlbmVyYXRvckZhY3RvcnkoZmkuZ2VuZXJhdG9yU291cmNlLCBjYW5keU1vZHVsZXNEaXJlY3RvcnksIGZhbHNlKSxcbiAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgIGFzeW5jIGZpID0+IGdldEdlbmVyYXRvclNvdXJjZUtleShmaS5nZW5lcmF0b3JTb3VyY2UpXG4gICAgICAgIClcbiAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoXCJMT0NBTElaRVwiKS53aXRoUHJlZml4KG9wdGlvbnMuZ2Z2KTtcblxuICAgICAgICAgICAgY29uc3QgZm9ybVNvdXJjZSA9IGF3YWl0IGZpLmdlbmVyYXRvci5yZWFkU291cmNlcyhmb3JtRGlyUGF0aCwgZmFybURpcmVjdG9yeSwgaGxGYXJtRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRpY3Rpb25hcnlPbmx5KSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkdlbmVyYXRlIHRyYW5zbGF0ZSBkaWN0aW9uYXJ5XCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsaXphdGlvbkRpY3Rpb25hcnkgPSBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0RGljdGlvbmFyeShcbiAgICAgICAgICAgICAgICAgICAgZm9ybVNvdXJjZS5zdWdhckNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2UucmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFwiV3JpdGUgdHJhbnNsYXRlIGRpY3Rpb25hcnlcIik7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlc0JhdGNoKGxvY2FsaXphdGlvbkRpY3Rpb25hcnksIGZvcm1EaXJQYXRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkdlbmVyYXRlIGxvY2FsaXphdGlvbiBzdWdhclwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGl6ZWRTdWdhciA9IGF3YWl0IGZpLmdlbmVyYXRvci5nZXRMb2NhbGl6ZWRTdWdhcihcbiAgICAgICAgICAgICAgICAgICAgZm9ybVNvdXJjZS5zdWdhckNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2UucmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJHZW5lcmF0ZSB0cmFuc2xhdGUgZGljdGlvbmFyeVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGl6YXRpb25EaWN0aW9uYXJ5ID0gYXdhaXQgZmkuZ2VuZXJhdG9yLmdldERpY3Rpb25hcnkobG9jYWxpemVkU3VnYXIsIGZvcm1Tb3VyY2UucmVzb3VyY2VzKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG9sZFN1Z2FyRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcIm9sZHN1Z2FyXCIpO1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coYFdyaXRlIHByZXZpb3VzIHZlcnNpb24gc3VnYXIgaW4gXCIke29sZFN1Z2FyRGlyZWN0b3J5fVwiYCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKG9sZFN1Z2FyRGlyZWN0b3J5KTtcbiAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZm9ybVNvdXJjZS5zdWdhckNvbnRlbnQpLm1hcCgoW2ZpbGVuYW1lLCBzdWdhcl0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGVBc3luYyhwYXRoLmpvaW4ob2xkU3VnYXJEaXJlY3RvcnksIGZpbGVuYW1lICsgXCIuc3VnYXIueG1sXCIpLCBzdWdhcilcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFwiV3JpdGUgbG9jYWxpemF0aW9uIHN1Z2FyXCIpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZXNCYXRjaChsb2NhbGl6ZWRTdWdhciwgZm9ybURpclBhdGgpO1xuXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIldyaXRlIHRyYW5zbGF0ZSBkaWN0aW9uYXJ5XCIpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZXNCYXRjaChsb2NhbGl6YXRpb25EaWN0aW9uYXJ5LCBmb3JtRGlyUGF0aCk7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkxvY2FsaXplIHN1Y2Nlc3NmdWwgY29tcGxldGVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgYXdhaXQgbG9jYWxpemVDaGFpbi5jdXJyZW50VmFsdWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZXNCYXRjaChcbiAgICBmaWxlc0JhdGNoOiB7XG4gICAgICAgIFtyZWxhdGl2ZUZpbGVOYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBCdWZmZXI7XG4gICAgfSxcbiAgICBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhmaWxlc0JhdGNoKSkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gZmlsZXNCYXRjaFtmaWxlUGF0aF07XG4gICAgICAgIGlmIChjb250ZW50ICE9IHVuZGVmaW5lZCAmJiBjb250ZW50ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5qb2luKG91dHB1dERpcmVjdG9yeSwgcGF0aC5wYXJzZShmaWxlUGF0aCkuZGlyKSk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGVBc3luYyhwYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCBmaWxlUGF0aCksIGNvbnRlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUscUJBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLHNCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxH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
@@ -11,6 +11,7 @@ var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
11
11
  var _FormGlobsUtils = require("../../Commons/FormGlobsUtils");
12
12
  var _StaticLogger = require("../../Commons/Logging/StaticLogger");
13
13
  var _Version = require("../../BuildTasks/Version");
14
+ var _WellKnownDirectories = require("../BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
14
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
17
  async function runUpgradeForm(context, options, resourcesDirectory, farmDirectory) {
@@ -35,8 +36,9 @@ async function runUpgradeForm(context, options, resourcesDirectory, farmDirector
35
36
  }
36
37
  }
37
38
  async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersions, logger) {
39
+ // TODO
38
40
  const formDirPath = path.join(farmDirectory, "forms", gfv);
39
- const formJsonPath = path.join(formDirPath, "form.json");
41
+ const formJsonPath = path.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
40
42
  if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
41
43
  logger.warning("Form does not have form.json: Upgrade skipped");
42
44
  return;
@@ -87,8 +89,9 @@ async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersi
87
89
  }
88
90
  }
89
91
  async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv, logger) {
92
+ // TODO
90
93
  const formDirPath = path.join(farmDirectory, "forms", gfv);
91
- const formJsonPath = path.join(formDirPath, "form.json");
94
+ const formJsonPath = path.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
92
95
  if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
93
96
  logger.warning("form.json does not exists. Upgrade skipped.");
94
97
  return;
@@ -122,8 +125,9 @@ async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv,
122
125
  }
123
126
  }
124
127
  async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
128
+ // TODO
125
129
  const formDirPath = path.join(farmDirectory, "forms", gfv);
126
- const formJsonPath = path.join(formDirPath, "form.json");
130
+ const formJsonPath = path.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
127
131
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, logger);
128
132
  const prereleaseVersionFormJson = await (0, _PublishedVersionUtils.getPrereleaseVersionFormJson)(preid);
129
133
  if (prereleaseVersionFormJson != undefined) {
@@ -139,4 +143,4 @@ async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
139
143
  throw new Error(`Версии ${preid} не существует.`);
140
144
  }
141
145
  }
142
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtR2xvYnNVdGlscyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsImpvaW4iLCJmb3JtSnNvblBhdGgiLCJwYXRoRXhpc3RzIiwid2FybmluZyIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYzIiLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJfZm9ybUNvbmZpZyRkZXBlbmRlbmMzIiwiX2Zvcm1Db25maWckZGVwZW5kZW5jNCIsImVuZ2luZVZlcnNpb25TcGVjIiwicGFyc2VDYW5keVZlcnNpb25TcGVjIiwiZ2VuZXJhdG9yVmVyc2lvblNwZWMiLCJ0eXBlIiwidGVzdCIsInZlcnNpb24iLCJtb2RlIiwiZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24iLCJnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbiIsIndyaXRlSnNvbiIsInNwYWNlcyIsImlzRW5naW5lVmVyc2lvbkV4aXN0cyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImlzTmV3Rm9ybUpzb25Gb3JtYXQiLCJnZXRMb2dnZXIiLCJidWlsZCIsInJlbW92ZSIsImZvcm1HaXRJZ25vcmVQYXRoIiwiZ2l0SWdub3JlQ29udGVudCIsInJlYWRGaWxlIiwic3BsaXQiLCJpbmNsdWRlcyIsIndyaXRlRmlsZSIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHJlbW92ZSwgd3JpdGVGaWxlLCB3cml0ZUpzb24gfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHtcbiAgICBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbixcbiAgICBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbixcbiAgICBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxuICAgIGlzRW5naW5lVmVyc2lvbkV4aXN0cyxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBpc05ld0Zvcm1Kc29uRm9ybWF0LCByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1ZlcnNpb25cIjtcblxuaW1wb3J0IHsgVXBncmFkZUZvcm1PcHRpb25zIH0gZnJvbSBcIi4vVXBncmFkZUZvcm1PcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5VcGdyYWRlRm9ybShcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IFVwZ3JhZGVGb3JtT3B0aW9ucyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1HbG9icyA9IGF3YWl0IEZvcm1HbG9icy52YWxpZGF0ZUdsb2JzKFxuICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpLFxuICAgICAgICBmYXJtRGlyZWN0b3J5XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdsb2JzVG9HZnZzKGZvcm1HbG9icywgZmFybURpcmVjdG9yeSkpIHtcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgRk9STToke2dmdn1gKTtcbiAgICAgICAgaWYgKG9wdGlvbnMudXNlQ2lCdWlsZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSwgZ2Z2LCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgYnVpbGQgbW9kZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5lbmdpbmUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1FbmdpbmUoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLmVuZ2luZSwgb3B0aW9ucy5za2lwUHJlVmVyc2lvbnMsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5wcmVpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVByZXJlbGVhc2UoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLnByZWlkLCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtRW5naW5lKFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBlbmdpbmVWZXJzaW9uOiBzdHJpbmcsXG4gICAgc2tpcFByZVZlcnNpb25zOiBib29sZWFuLFxuICAgIGxvZ2dlcjogSUxvZ2dlclxuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIik7XG4gICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhmb3JtSnNvblBhdGgpKSkge1xuICAgICAgICBsb2dnZXIud2FybmluZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBmb3JtLmpzb246IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGlmIChza2lwUHJlVmVyc2lvbnMpIHtcbiAgICAgICAgaWYgKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUgIT0gdW5kZWZpbmVkICYmIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBlbmdpbmVWZXJzaW9uU3BlYyA9IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyhmb3JtQ29uZmlnLmRlcGVuZGVuY2llcz8uZW5naW5lKTtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYXRvclZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInByZVwiIHx8XG4gICAgICAgICAgICAgICAgKGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwidmVyc2lvblwiICYmIC9bYS16QS1aXS8udGVzdChlbmdpbmVWZXJzaW9uU3BlYy52ZXJzaW9uKSkgfHxcbiAgICAgICAgICAgICAgICAoZ2VuZXJhdG9yVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGdlbmVyYXRvclZlcnNpb25TcGVjLnZlcnNpb24pKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcbiAgICAgICAgICAgICAgICAgICAgXCJGb3JtIHZlcnNpb24gaGFzIHByZXJlbGVhc2UgdmVyc2lvbjogVXBncmFkZSBza2lwcGVkIGR1ZSB0byBmbGFnIHNraXBQcmVWZXJzaW9ucyAoLS1za2lwLXByZS12ZXJzaW9ucykgc3BlY2lmaWVkXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcIm5vLWVkaXRvclwiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGZvcm1Db25maWcubW9kZSA9PT0gXCJjb3B5LWxlZ2FjeS1wcmVidWlsdC1yZXNvdXJjZXNcIikge1xuICAgICAgICBsb2dnZXIubG9nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGVkaXRvcjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChlbmdpbmVWZXJzaW9uID09PSBcImxhdGVzdFwiKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgZW5naW5lOiBhd2FpdCBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpLFxuICAgICAgICAgICAgZ2VuZXJhdG9yOiBhd2FpdCBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpLFxuICAgICAgICB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIGxhc3Qgc3RhYmxlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhd2FpdCBpc0VuZ2luZVZlcnNpb25FeGlzdHMoZW5naW5lVmVyc2lvbikpIHtcbiAgICAgICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IGVuZ2luZVZlcnNpb24sIGdlbmVyYXRvcjogZW5naW5lVmVyc2lvbiB9O1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCS0LXRgNGB0LjQuCAke2VuZ2luZVZlcnNpb259INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtVG9DaUJ1aWxkTW9kZShcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiZm9ybS5qc29uIGRvZXMgbm90IGV4aXN0cy4gVXBncmFkZSBza2lwcGVkLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIik7XG4gICAgaWYgKCFpc05ld0Zvcm1Kc29uRm9ybWF0KGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCLQpNCw0LnQuyBmb3JtLmpzb24g0YTQvtGA0LzRiyDQtNC+0LvQttC10L0g0LjQvNC10YLRjCDQvdC+0LLRi9C5INGE0L7RgNC80LDRgiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4LiDQntCx0YDQsNGC0LjRgtC10YHRjCDQuiDRgNCw0YHQt9GA0LDQsdC+0YLRh9C40LrQsNC8INC30LAg0YDQsNC30YrRj9GB0L3QtdC90LjRj9C80LguXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2V0TG9nZ2VyKCkpO1xuICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkICE9PSBcImNpXCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5idWlsZCA9IFwiY2lcIjtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIGZvcm0uanNvblwiKTtcbiAgICB9XG4gICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSkpIHtcbiAgICAgICAgYXdhaXQgcmVtb3ZlKGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkpO1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBmb3JtIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUdpdElnbm9yZVBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtR2l0SWdub3JlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIGlmICghZ2l0SWdub3JlQ29udGVudC5zcGxpdChcIlxcblwiKS5pbmNsdWRlcyhcImZvcm1cIikpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmb3JtR2l0SWdub3JlUGF0aCwgZ2l0SWdub3JlQ29udGVudC50cmltUmlnaHQoKSArIFwiXFxuXCIgKyBcImZvcm1cXG5cIik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiVXBkYXRlZCAuZ2l0aWdub3JlXCIpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcImZvcm1cXG5cIik7XG4gICAgICAgIGxvZ2dlci5sb2coXCJDcmVhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybVByZXJlbGVhc2UoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIHByZWlkOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGNvbnN0IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gPSBhd2FpdCBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uKHByZWlkKTtcblxuICAgIGlmIChwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyA9IHsgZW5naW5lOiBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLCBnZW5lcmF0b3I6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gfTtcbiAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byBwcmVyZWxlYXNlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7cHJlaWR9INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFF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
146
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtR2xvYnNVdGlscyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsImpvaW4iLCJmb3JtSnNvblBhdGgiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJwYXRoRXhpc3RzIiwid2FybmluZyIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYzIiLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJfZm9ybUNvbmZpZyRkZXBlbmRlbmMzIiwiX2Zvcm1Db25maWckZGVwZW5kZW5jNCIsImVuZ2luZVZlcnNpb25TcGVjIiwicGFyc2VDYW5keVZlcnNpb25TcGVjIiwiZ2VuZXJhdG9yVmVyc2lvblNwZWMiLCJ0eXBlIiwidGVzdCIsInZlcnNpb24iLCJtb2RlIiwiZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24iLCJnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbiIsIndyaXRlSnNvbiIsInNwYWNlcyIsImlzRW5naW5lVmVyc2lvbkV4aXN0cyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImlzTmV3Rm9ybUpzb25Gb3JtYXQiLCJnZXRMb2dnZXIiLCJidWlsZCIsInJlbW92ZSIsImZvcm1HaXRJZ25vcmVQYXRoIiwiZ2l0SWdub3JlQ29udGVudCIsInJlYWRGaWxlIiwic3BsaXQiLCJpbmNsdWRlcyIsIndyaXRlRmlsZSIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHJlbW92ZSwgd3JpdGVGaWxlLCB3cml0ZUpzb24gfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHtcbiAgICBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbixcbiAgICBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbixcbiAgICBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxuICAgIGlzRW5naW5lVmVyc2lvbkV4aXN0cyxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBpc05ld0Zvcm1Kc29uRm9ybWF0LCByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1ZlcnNpb25cIjtcblxuaW1wb3J0IHsgVXBncmFkZUZvcm1PcHRpb25zIH0gZnJvbSBcIi4vVXBncmFkZUZvcm1PcHRpb25zXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9XZWxsS25vd25EaXJlY3Rvcmllc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuVXBncmFkZUZvcm0oXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBVcGdyYWRlRm9ybU9wdGlvbnMsXG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMudmFsaWRhdGVHbG9icyhcbiAgICAgICAgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSxcbiAgICAgICAgZmFybURpcmVjdG9yeVxuICAgICk7XG4gICAgZm9yIChjb25zdCBnZnYgb2YgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVHbG9ic1RvR2Z2cyhmb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpKSB7XG4gICAgICAgIGNvbnN0IGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtnZnZ9YCk7XG4gICAgICAgIGlmIChvcHRpb25zLnVzZUNpQnVpbGQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgYnVpbGQgbW9kZVwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtVG9DaUJ1aWxkTW9kZShyZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnksIGdmdiwgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGJ1aWxkIG1vZGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuZW5naW5lICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtRW5naW5lKGZhcm1EaXJlY3RvcnksIGdmdiwgb3B0aW9ucy5lbmdpbmUsIG9wdGlvbnMuc2tpcFByZVZlcnNpb25zLCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMucHJlaWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1QcmVyZWxlYXNlKGZhcm1EaXJlY3RvcnksIGdmdiwgb3B0aW9ucy5wcmVpZCwgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybUVuZ2luZShcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgZW5naW5lVmVyc2lvbjogc3RyaW5nLFxuICAgIHNraXBQcmVWZXJzaW9uczogYm9vbGVhbixcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRPRE9cbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGZvcm0uanNvbjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgaWYgKHNraXBQcmVWZXJzaW9ucykge1xuICAgICAgICBpZiAoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSAhPSB1bmRlZmluZWQgJiYgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZVZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUpO1xuICAgICAgICAgICAgY29uc3QgZ2VuZXJhdG9yVmVyc2lvblNwZWMgPSBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvcik7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJwcmVcIiB8fFxuICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICAoZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGVuZ2luZVZlcnNpb25TcGVjLnZlcnNpb24pKSB8fFxuICAgICAgICAgICAgICAgIChnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInZlcnNpb25cIiAmJiAvW2EtekEtWl0vLnRlc3QoZ2VuZXJhdG9yVmVyc2lvblNwZWMudmVyc2lvbikpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFxuICAgICAgICAgICAgICAgICAgICBcIkZvcm0gdmVyc2lvbiBoYXMgcHJlcmVsZWFzZSB2ZXJzaW9uOiBVcGdyYWRlIHNraXBwZWQgZHVlIHRvIGZsYWcgc2tpcFByZVZlcnNpb25zICgtLXNraXAtcHJlLXZlcnNpb25zKSBzcGVjaWZpZWRcIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwibm8tZWRpdG9yXCIpIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBlZGl0b3I6IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGVuZ2luZVZlcnNpb24gPT09IFwibGF0ZXN0XCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGF3YWl0IGlzRW5naW5lVmVyc2lvbkV4aXN0cyhlbmdpbmVWZXJzaW9uKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogZW5naW5lVmVyc2lvbiwgZ2VuZXJhdG9yOiBlbmdpbmVWZXJzaW9uIH07XG4gICAgICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7ZW5naW5lVmVyc2lvbn0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRPRE9cbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiZm9ybS5qc29uIGRvZXMgbm90IGV4aXN0cy4gVXBncmFkZSBza2lwcGVkLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIik7XG4gICAgaWYgKCFpc05ld0Zvcm1Kc29uRm9ybWF0KGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCLQpNCw0LnQuyBmb3JtLmpzb24g0YTQvtGA0LzRiyDQtNC+0LvQttC10L0g0LjQvNC10YLRjCDQvdC+0LLRi9C5INGE0L7RgNC80LDRgiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4LiDQntCx0YDQsNGC0LjRgtC10YHRjCDQuiDRgNCw0YHQt9GA0LDQsdC+0YLRh9C40LrQsNC8INC30LAg0YDQsNC30YrRj9GB0L3QtdC90LjRj9C80LguXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2V0TG9nZ2VyKCkpO1xuICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkICE9PSBcImNpXCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5idWlsZCA9IFwiY2lcIjtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIGZvcm0uanNvblwiKTtcbiAgICB9XG4gICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSkpIHtcbiAgICAgICAgYXdhaXQgcmVtb3ZlKGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkpO1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBmb3JtIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUdpdElnbm9yZVBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtR2l0SWdub3JlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIGlmICghZ2l0SWdub3JlQ29udGVudC5zcGxpdChcIlxcblwiKS5pbmNsdWRlcyhcImZvcm1cIikpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmb3JtR2l0SWdub3JlUGF0aCwgZ2l0SWdub3JlQ29udGVudC50cmltUmlnaHQoKSArIFwiXFxuXCIgKyBcImZvcm1cXG5cIik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiVXBkYXRlZCAuZ2l0aWdub3JlXCIpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcImZvcm1cXG5cIik7XG4gICAgICAgIGxvZ2dlci5sb2coXCJDcmVhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybVByZXJlbGVhc2UoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIHByZWlkOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUT0RPXG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSk7XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgbG9nZ2VyKTtcbiAgICBjb25zdCBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uID0gYXdhaXQgZ2V0UHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbihwcmVpZCk7XG5cbiAgICBpZiAocHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiwgZ2VuZXJhdG9yOiBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gcHJlcmVsZWFzZSB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCS0LXRgNGB0LjQuCAke3ByZWlkfSDQvdC1INGB0YPRidC10YHRgtCy0YPQtdGCLmApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsc0JBQUEsR0FBQUYsT0FBQTtBQU1BLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxlQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFHQSxJQUFBTyxxQkFBQSxHQUFBUCxPQUFBO0FBQTRHLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFWLHdCQUFBYyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEs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
@@ -9,6 +9,8 @@ var _path = _interopRequireDefault(require("path"));
9
9
  var _fsExtra = require("fs-extra");
10
10
  var _lodash = _interopRequireDefault(require("lodash"));
11
11
  var _ResolveFormInfo = require("../BuildTasks/ResolveFormInfo");
12
+ var _FormPathUtils = require("../../../Common/FormPathUtils");
13
+ var _WellKnownDirectories = require("../CLICommands/BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
12
14
  var _FsUtils = require("./FsUtils");
13
15
  var _StaticLogger = require("./Logging/StaticLogger");
14
16
  class FormGlobs {
@@ -19,11 +21,84 @@ class FormGlobs {
19
21
  this.formGlobStrings = formGlobStrings;
20
22
  this.farmDirectory = farmDirectory;
21
23
  }
24
+ static async enumerateFormsInRepository(...repositoryRoots) {
25
+ const result = [];
26
+ for (const repositoryRoot of repositoryRoots) {
27
+ for (const formJsonPath of await (0, _FsUtils.globAsync)(`candy.farm/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
28
+ cwd: repositoryRoot
29
+ })) {
30
+ if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
31
+ const formPath = _path.default.dirname(formJsonPath);
32
+ const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
33
+ result.push({
34
+ gfv: gfv,
35
+ formPath: _path.default.join(repositoryRoot, formPath),
36
+ formRelativePath: formPath
37
+ });
38
+ }
39
+ }
40
+ for (const formJsonPath of await (0, _FsUtils.globAsync)(`TestFarm/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
41
+ cwd: repositoryRoot
42
+ })) {
43
+ if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
44
+ const formPath = _path.default.dirname(formJsonPath);
45
+ const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
46
+ result.push({
47
+ gfv: gfv,
48
+ formPath: _path.default.join(repositoryRoot, formPath),
49
+ formRelativePath: formPath
50
+ });
51
+ }
52
+ }
53
+ for (const formJsonPath of await (0, _FsUtils.globAsync)(`candy.rpn.farm/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
54
+ cwd: repositoryRoot
55
+ })) {
56
+ if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
57
+ const formPath = _path.default.dirname(formJsonPath);
58
+ const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
59
+ result.push({
60
+ gfv: gfv,
61
+ formPath: _path.default.join(repositoryRoot, formPath),
62
+ formRelativePath: formPath
63
+ });
64
+ }
65
+ }
66
+ for (const formJsonPath of await (0, _FsUtils.globAsync)(`candy.diadoc.farm/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
67
+ cwd: repositoryRoot
68
+ })) {
69
+ if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
70
+ const formPath = _path.default.dirname(formJsonPath);
71
+ const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
72
+ result.push({
73
+ gfv: gfv,
74
+ formPath: _path.default.join(repositoryRoot, formPath),
75
+ formRelativePath: formPath
76
+ });
77
+ }
78
+ }
79
+ for (const formJsonPath of await (0, _FsUtils.globAsync)(`forms/**/*/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
80
+ cwd: repositoryRoot
81
+ })) {
82
+ if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
83
+ const formPath = _path.default.dirname(formJsonPath);
84
+ const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
85
+ result.push({
86
+ gfv: gfv,
87
+ formPath: _path.default.join(repositoryRoot, formPath),
88
+ formRelativePath: formPath
89
+ });
90
+ }
91
+ }
92
+ }
93
+ return result;
94
+ }
22
95
  static async resolveGlobsToGfvs(formGlobs, farmDirectory) {
23
96
  let result = [];
24
97
  for (const mask of formGlobs) {
25
98
  result = result.concat(await (0, _FsUtils.globAsync)(mask, {
26
99
  cwd: _path.default.join(farmDirectory, "forms")
100
+ })).concat(await (0, _FsUtils.globAsync)(`forms/**/${mask}/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}`, {
101
+ cwd: _path.default.join(farmDirectory, "..")
27
102
  }));
28
103
  }
29
104
  return _lodash.default.uniq(result);
@@ -33,6 +108,8 @@ class FormGlobs {
33
108
  for (const mask of formGlobs) {
34
109
  result = result.concat(await (0, _FsUtils.globAsync)(mask, {
35
110
  cwd: _path.default.join(farmDirectory, "forms")
111
+ })).concat(await (0, _FsUtils.globAsync)(`forms/**/${mask}/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}`, {
112
+ cwd: _path.default.join(farmDirectory, "..")
36
113
  }));
37
114
  if (result.length === 0) {
38
115
  if (mask.includes("*") || mask.includes("?")) {
@@ -63,7 +140,8 @@ class FormGlobs {
63
140
  const forms = await this.resolveGlobsToGfvs([formGlob.replace(":with-ci-build", "")], farmDirectory);
64
141
  const result = [];
65
142
  for (const form of forms) {
66
- const formJsonPath = _path.default.join(farmDirectory, "forms", form, "form.json");
143
+ // TODO
144
+ const formJsonPath = _path.default.join(farmDirectory, "forms", form, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
67
145
  if (await (0, _fsExtra.pathExists)(formJsonPath)) {
68
146
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, new _StaticLogger.NullLogger());
69
147
  if (formConfig.build === "ci") {
@@ -96,4 +174,4 @@ class FormGlobs {
96
174
  }
97
175
  }
98
176
  exports.FormGlobs = FormGlobs;
99
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gc1V0aWxzIiwiX1N0YXRpY0xvZ2dlciIsIkZvcm1HbG9icyIsImNvbnN0cnVjdG9yIiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9iU3RyaW5ncyIsImZvcm1HZnZzIiwicmVzb2x2ZUdsb2JzVG9HZnZzIiwiZm9ybUdsb2JzIiwicmVzdWx0IiwibWFzayIsImNvbmNhdCIsImdsb2JBc3luYyIsImN3ZCIsInBhdGgiLCJqb2luIiwiXyIsInVuaXEiLCJ2YWxpZGF0ZUdsb2JzIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJFcnJvciIsInJlc29sdmVTcGVjaWZpZXJzIiwiZm9ybUdsb2JzV2l0aFNwZWNpZmllcnMiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsIngiLCJyZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzIiwiZmxhdCIsImZvcm1HbG9iIiwiZW5kc1dpdGgiLCJmb3JtcyIsInJlcGxhY2UiLCJmb3JtIiwicGF0aEV4aXN0cyIsInB1c2giLCJmb3JtSnNvblBhdGgiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJOdWxsTG9nZ2VyIiwiYnVpbGQiLCJ1cGRhdGVBbGwiLCJyZXNvbHZlRm9ybUdsb2JzIiwidXBkYXRlRm9yIiwiZ2Z2IiwidW5kZWZpbmVkIiwiaXNNYXRjaCIsImVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Db21tb25zL0Zvcm1HbG9ic1V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcblxuaW1wb3J0IHsgcmVhZEZvcm1Db25maWcgfSBmcm9tIFwiLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IEZhcm1EaXJlY3RvcnkgfSBmcm9tIFwiLi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeVwiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi9Gc1V0aWxzXCI7XG5pbXBvcnQgeyBOdWxsTG9nZ2VyIH0gZnJvbSBcIi4vTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuZXhwb3J0IGNsYXNzIEZvcm1HbG9icyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBGYXJtRGlyZWN0b3J5O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIGZvcm1HZnZzPzogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmFybURpcmVjdG9yeTogRmFybURpcmVjdG9yeSwgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmZvcm1HbG9iU3RyaW5ncyA9IGZvcm1HbG9iU3RyaW5ncztcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gZmFybURpcmVjdG9yeTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVHbG9ic1RvR2Z2cyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8udW5pcShyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgdmFsaWRhdGVHbG9icyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXNrLmluY2x1ZGVzKFwiKlwiKSB8fCBtYXNrLmluY2x1ZGVzKFwiP1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCc0LDRgdC60LAgR0ZWICR7bWFza30g0L3QtSDRgdC+0L7RgtCy0LXRgtGB0YLRgdCy0YPQtdGCINC90Lgg0L7QtNC90L7QuSDRhNC+0YDQvNC1YCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQpNC+0YDQvNGLICR7bWFza30g0L3QtSDQvdCw0LnQtNC10L3Qvi5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1HbG9icztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVTcGVjaWZpZXJzKGZvcm1HbG9ic1dpdGhTcGVjaWZpZXJzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBmb3JtR2xvYnNXaXRoU3BlY2lmaWVycy5tYXAoeCA9PiB0aGlzLnJlc29sdmVGb3JtR2xvYlNwZWNpZmllcnMoeCwgZmFybURpcmVjdG9yeSkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZXN1bHRzLmZsYXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBhc3luYyByZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzKGZvcm1HbG9iOiBzdHJpbmcsIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgaWYgKGZvcm1HbG9iLmVuZHNXaXRoKFwiOndpdGgtdWktdGVzdHNcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1zID0gYXdhaXQgdGhpcy5yZXNvbHZlR2xvYnNUb0dmdnMoW2Zvcm1HbG9iLnJlcGxhY2UoXCI6d2l0aC11aS10ZXN0c1wiLCBcIlwiKV0sIGZhcm1EaXJlY3RvcnkpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm0gb2YgZm9ybXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBmb3JtLCBcInRlc3RzXCIpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChmb3JtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtR2xvYi5lbmRzV2l0aChcIjp3aXRoLWNpLWJ1aWxkXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IGF3YWl0IHRoaXMucmVzb2x2ZUdsb2JzVG9HZnZzKFtmb3JtR2xvYi5yZXBsYWNlKFwiOndpdGgtY2ktYnVpbGRcIiwgXCJcIildLCBmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIGZvcm1zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZm9ybSwgXCJmb3JtLmpzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZm9ybUpzb25QYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBuZXcgTnVsbExvZ2dlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Db25maWcuYnVpbGQgPT09IFwiY2lcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZm9ybUdsb2JdO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZm9ybUdmdnMgPSBhd2FpdCB0aGlzLmZhcm1EaXJlY3RvcnkucmVzb2x2ZUZvcm1HbG9icyh0aGlzLmZvcm1HbG9iU3RyaW5ncyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZUZvcihnZnY6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtR2Z2cyA9PSB1bmRlZmluZWQgfHwgIShhd2FpdCB0aGlzLmlzTWF0Y2goZ2Z2KSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZW5zdXJlRm9ybUdsb2JzUmVzb2x2ZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1HZnZzID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpc01hdGNoKGdmdjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1HZnZzID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FsbCBtZXRob2QgZW5zdXJlRm9ybUdsb2JzUmVzb2x2ZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdmdnMuaW5jbHVkZXMoZ2Z2KTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxnQkFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBRU8sTUFBTU0sU0FBUyxDQUFDO0VBS1pDLFdBQVdBLENBQUNDLGFBQTRCLEVBQUVDLGVBQXlCLEVBQUU7SUFBQSxLQUozREQsYUFBYTtJQUFBLEtBQ2JDLGVBQWU7SUFBQSxLQUN4QkMsUUFBUTtJQUdaLElBQUksQ0FBQ0QsZUFBZSxHQUFHQSxlQUFlO0lBQ3RDLElBQUksQ0FBQ0QsYUFBYSxHQUFHQSxhQUFhO0VBQ3RDO0VBRUEsYUFBb0JHLGtCQUFrQkEsQ0FBQ0MsU0FBbUIsRUFBRUosYUFBcUIsRUFBcUI7SUFDbEcsSUFBSUssTUFBZ0IsR0FBRyxFQUFFO0lBQ3pCLEtBQUssTUFBTUMsSUFBSSxJQUFJ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
177
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtUGF0aFV0aWxzIiwiX1dlbGxLbm93bkRpcmVjdG9yaWVzIiwiX0ZzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiRm9ybUdsb2JzIiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZm9ybUdsb2JTdHJpbmdzIiwiZm9ybUdmdnMiLCJlbnVtZXJhdGVGb3Jtc0luUmVwb3NpdG9yeSIsInJlcG9zaXRvcnlSb290cyIsInJlc3VsdCIsInJlcG9zaXRvcnlSb290IiwiZm9ybUpzb25QYXRoIiwiZ2xvYkFzeW5jIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwiY3dkIiwicGF0aEV4aXN0cyIsInBhdGgiLCJqb2luIiwiZm9ybVBhdGgiLCJkaXJuYW1lIiwiZ2Z2IiwiZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCIsInB1c2giLCJmb3JtUmVsYXRpdmVQYXRoIiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwicmVzb2x2ZUdsb2JzVG9HZnZzIiwiZm9ybUdsb2JzIiwibWFzayIsImNvbmNhdCIsIl8iLCJ1bmlxIiwidmFsaWRhdGVHbG9icyIsImxlbmd0aCIsImluY2x1ZGVzIiwiRXJyb3IiLCJyZXNvbHZlU3BlY2lmaWVycyIsImZvcm1HbG9ic1dpdGhTcGVjaWZpZXJzIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJ4IiwicmVzb2x2ZUZvcm1HbG9iU3BlY2lmaWVycyIsImZsYXQiLCJmb3JtR2xvYiIsImVuZHNXaXRoIiwiZm9ybXMiLCJyZXBsYWNlIiwiZm9ybSIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIk51bGxMb2dnZXIiLCJidWlsZCIsInVwZGF0ZUFsbCIsInJlc29sdmVGb3JtR2xvYnMiLCJ1cGRhdGVGb3IiLCJ1bmRlZmluZWQiLCJpc01hdGNoIiwiZW5zdXJlRm9ybUdsb2JzUmVzb2x2ZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQgeyByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgRmFybURpcmVjdG9yeSB9IGZyb20gXCIuLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9GYXJtRGlyZWN0b3J5XCI7XG5pbXBvcnQgeyBleHRyYWN0R2Z2RnJvbUZvcm1QYXRoIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbi9Gb3JtUGF0aFV0aWxzXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9XZWxsS25vd25EaXJlY3Rvcmllc1wiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi9Gc1V0aWxzXCI7XG5pbXBvcnQgeyBOdWxsTG9nZ2VyIH0gZnJvbSBcIi4vTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuZXhwb3J0IGNsYXNzIEZvcm1HbG9icyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBGYXJtRGlyZWN0b3J5O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIGZvcm1HZnZzPzogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmFybURpcmVjdG9yeTogRmFybURpcmVjdG9yeSwgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmZvcm1HbG9iU3RyaW5ncyA9IGZvcm1HbG9iU3RyaW5ncztcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gZmFybURpcmVjdG9yeTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIGVudW1lcmF0ZUZvcm1zSW5SZXBvc2l0b3J5KFxuICAgICAgICAuLi5yZXBvc2l0b3J5Um9vdHM6IHN0cmluZ1tdXG4gICAgKTogUHJvbWlzZTxBcnJheTx7IGdmdjogc3RyaW5nOyBmb3JtUGF0aDogc3RyaW5nOyBmb3JtUmVsYXRpdmVQYXRoOiBzdHJpbmcgfT4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBBcnJheTx7IGdmdjogc3RyaW5nOyBmb3JtUGF0aDogc3RyaW5nOyBmb3JtUmVsYXRpdmVQYXRoOiBzdHJpbmcgfT4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHJlcG9zaXRvcnlSb290IG9mIHJlcG9zaXRvcnlSb290cykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtSnNvblBhdGggb2YgYXdhaXQgZ2xvYkFzeW5jKFxuICAgICAgICAgICAgICAgIGBjYW5keS5mYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAgeyBjd2Q6IHJlcG9zaXRvcnlSb290IH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoYFRlc3RGYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsIHtcbiAgICAgICAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlSb290LFxuICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGNhbmR5LnJwbi5mYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlSb290LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGNhbmR5LmRpYWRvYy5mYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlSb290LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGZvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9LyR7V2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZX1gLFxuICAgICAgICAgICAgICAgIHsgY3dkOiByZXBvc2l0b3J5Um9vdCB9XG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKHJlcG9zaXRvcnlSb290LCBmb3JtSnNvblBhdGgpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtUGF0aCA9IHBhdGguZGlybmFtZShmb3JtSnNvblBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBnZnYgPSBleHRyYWN0R2Z2RnJvbUZvcm1QYXRoKGZvcm1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtUGF0aDogcGF0aC5qb2luKHJlcG9zaXRvcnlSb290LCBmb3JtUGF0aCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtUmVsYXRpdmVQYXRoOiBmb3JtUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhc3luYyByZXNvbHZlR2xvYnNUb0dmdnMoZm9ybUdsb2JzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG1hc2sgb2YgZm9ybUdsb2JzKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIikgfSkpLmNvbmNhdChcbiAgICAgICAgICAgICAgICBhd2FpdCBnbG9iQXN5bmMoYGZvcm1zLyoqLyR7bWFza30vJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9YCwge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLnVuaXEocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHZhbGlkYXRlR2xvYnMoZm9ybUdsb2JzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG1hc2sgb2YgZm9ybUdsb2JzKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIikgfSkpLmNvbmNhdChcbiAgICAgICAgICAgICAgICBhd2FpdCBnbG9iQXN5bmMoYGZvcm1zLyoqLyR7bWFza30vJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9YCwge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAobWFzay5pbmNsdWRlcyhcIipcIikgfHwgbWFzay5pbmNsdWRlcyhcIj9cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQnNCw0YHQutCwIEdGViAke21hc2t9INC90LUg0YHQvtC+0YLQstC10YLRgdGC0YHQstGD0LXRgiDQvdC4INC+0LTQvdC+0Lkg0YTQvtGA0LzQtWApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0KTQvtGA0LzRiyAke21hc2t9INC90LUg0L3QsNC50LTQtdC90L4uYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtR2xvYnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhc3luYyByZXNvbHZlU3BlY2lmaWVycyhmb3JtR2xvYnNXaXRoU3BlY2lmaWVyczogc3RyaW5nW10sIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgZm9ybUdsb2JzV2l0aFNwZWNpZmllcnMubWFwKHggPT4gdGhpcy5yZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzKHgsIGZhcm1EaXJlY3RvcnkpKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVzdWx0cy5mbGF0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgcmVzb2x2ZUZvcm1HbG9iU3BlY2lmaWVycyhmb3JtR2xvYjogc3RyaW5nLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGlmIChmb3JtR2xvYi5lbmRzV2l0aChcIjp3aXRoLXVpLXRlc3RzXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IGF3YWl0IHRoaXMucmVzb2x2ZUdsb2JzVG9HZnZzKFtmb3JtR2xvYi5yZXBsYWNlKFwiOndpdGgtdWktdGVzdHNcIiwgXCJcIildLCBmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIGZvcm1zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZm9ybSwgXCJ0ZXN0c1wiKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZm9ybSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybUdsb2IuZW5kc1dpdGgoXCI6d2l0aC1jaS1idWlsZFwiKSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybXMgPSBhd2FpdCB0aGlzLnJlc29sdmVHbG9ic1RvR2Z2cyhbZm9ybUdsb2IucmVwbGFjZShcIjp3aXRoLWNpLWJ1aWxkXCIsIFwiXCIpXSwgZmFybURpcmVjdG9yeSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybSBvZiBmb3Jtcykge1xuICAgICAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBmb3JtLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtSnNvblBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIG5ldyBOdWxsTG9nZ2VyKCkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbmZpZy5idWlsZCA9PT0gXCJjaVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChmb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtmb3JtR2xvYl07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZUFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtR2Z2cyA9IGF3YWl0IHRoaXMuZmFybURpcmVjdG9yeS5yZXNvbHZlRm9ybUdsb2JzKHRoaXMuZm9ybUdsb2JTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXBkYXRlRm9yKGdmdjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1HZnZzID09IHVuZGVmaW5lZCB8fCAhKGF3YWl0IHRoaXMuaXNNYXRjaChnZnYpKSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBlbnN1cmVGb3JtR2xvYnNSZXNvbHZlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdmdnMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUFsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGlzTWF0Y2goZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdmdnMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYWxsIG1ldGhvZCBlbnN1cmVGb3JtR2xvYnNSZXNvbHZlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR2Z2cy5pbmNsdWRlcyhnZnYpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxjQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxxQkFBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sUUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBUCxPQUFBO0FBRU8sTUFBTVEsU0FBUyxDQUFD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
@@ -9,6 +9,9 @@ var _chokidar = require("chokidar");
9
9
  var _lodash = _interopRequireDefault(require("lodash"));
10
10
  var _FsUtils = require("../FsUtils");
11
11
  var _ChainableValueProducer = require("./ChainableValueProducer");
12
+ var path = _interopRequireWildcard(require("path"));
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
15
  class DirectoryEntriesProducer extends _ChainableValueProducer.ObservableValueProducerBase {
13
16
  constructor(pathToDir, masks) {
14
17
  super();
@@ -45,11 +48,16 @@ class DirectoryEntriesProducer extends _ChainableValueProducer.ObservableValuePr
45
48
  return this.lastValue;
46
49
  }
47
50
  async resolveDirectoryContent() {
48
- let result = [];
51
+ const result = [];
49
52
  for (const mask of this.masks) {
50
- result = result.concat(await (0, _FsUtils.globAsync)(mask, {
53
+ const paths = await (0, _FsUtils.globAsync)(mask, {
51
54
  cwd: this.pathToDir
52
- }));
55
+ });
56
+ for (const matchedPath of paths) {
57
+ if (await (0, _FsUtils.isDirectoryExists)(path.join(this.pathToDir, matchedPath))) {
58
+ result.push(matchedPath);
59
+ }
60
+ }
53
61
  }
54
62
  return _lodash.default.uniq(result);
55
63
  }
@@ -62,4 +70,4 @@ class DirectoryEntriesProducer extends _ChainableValueProducer.ObservableValuePr
62
70
  }
63
71
  }
64
72
  exports.DirectoryEntriesProducer = DirectoryEntriesProducer;
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hva2lkYXIiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRnNVdGlscyIsIl9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyIiwiRGlyZWN0b3J5RW50cmllc1Byb2R1Y2VyIiwiT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIiwiY29uc3RydWN0b3IiLCJwYXRoVG9EaXIiLCJtYXNrcyIsImxhc3RWYWx1ZSIsIndhdGNoZXIiLCJiZWdpbkxpc3RlbmluZyIsInVuZGVmaW5lZCIsIndhdGNoIiwiaWdub3JlSW5pdGlhbCIsImN3ZCIsImlnbm9yZVBlcm1pc3Npb25FcnJvcnMiLCJ1c2VQb2xsaW5nIiwiZGVwdGgiLCJoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkIiwiXyIsImRlYm91bmNlIiwiaGFuZGxlQW55RnNFdmVudCIsIm9uIiwic3RvcExpc3RlbmluZyIsImNsb3NlIiwiZ2V0Q3VycmVudFZhbHVlIiwicmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQiLCJyZXN1bHQiLCJtYXNrIiwiY29uY2F0IiwiZ2xvYkFzeW5jIiwidW5pcSIsIm5leHRWYWx1ZSIsImlzRXF1YWwiLCJlbWl0VXBkYXRlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Db21tb25zL1Rhc2tzQ29yZS9EaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlNXYXRjaGVyLCB3YXRjaCB9IGZyb20gXCJjaG9raWRhclwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi4vRnNVdGlsc1wiO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2UgfSBmcm9tIFwiLi9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5cbmV4cG9ydCBjbGFzcyBEaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIgZXh0ZW5kcyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2U8c3RyaW5nW10+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhUb0Rpcjogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFza3M6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgbGFzdFZhbHVlPzogc3RyaW5nW107XG4gICAgcHJpdmF0ZSB3YXRjaGVyPzogRlNXYXRjaGVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhUb0Rpcjogc3RyaW5nLCBtYXNrczogc3RyaW5nW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5wYXRoVG9EaXIgPSBwYXRoVG9EaXI7XG4gICAgICAgIHRoaXMubWFza3MgPSBtYXNrcztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgYmVnaW5MaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53YXRjaGVyID0gd2F0Y2godGhpcy5tYXNrcywge1xuICAgICAgICAgICAgaWdub3JlSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgIGN3ZDogdGhpcy5wYXRoVG9EaXIsXG4gICAgICAgICAgICBpZ25vcmVQZXJtaXNzaW9uRXJyb3JzOiBmYWxzZSxcbiAgICAgICAgICAgIHVzZVBvbGxpbmc6IHRydWUsXG4gICAgICAgICAgICBkZXB0aDogMSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZUFueUZzRXZlbnREZWJvdW5jZWQgPSBfLmRlYm91bmNlKCgpID0+IHRoaXMuaGFuZGxlQW55RnNFdmVudCgpLCAxMDAwKTtcbiAgICAgICAgdGhpcy53YXRjaGVyLm9uKFwiYWxsXCIsIGhhbmRsZUFueUZzRXZlbnREZWJvdW5jZWQpO1xuICAgICAgICB0aGlzLndhdGNoZXIub24oXCJlcnJvclwiLCBoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgc3RvcExpc3RlbmluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMud2F0Y2hlciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICAgICAgICAgIHRoaXMud2F0Y2hlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGdldEN1cnJlbnRWYWx1ZSgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHRoaXMubGFzdFZhbHVlID0gYXdhaXQgdGhpcy5yZXNvbHZlRGlyZWN0b3J5Q29udGVudCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyByZXNvbHZlRGlyZWN0b3J5Q29udGVudCgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiB0aGlzLm1hc2tzKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogdGhpcy5wYXRoVG9EaXIgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLnVuaXEocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGhhbmRsZUFueUZzRXZlbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IGF3YWl0IHRoaXMucmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTtcbiAgICAgICAgaWYgKCFfLmlzRXF1YWwodGhpcy5sYXN0VmFsdWUsIG5leHRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gbmV4dFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0VXBkYXRlKHRoaXMubGFzdFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLHVCQUFBLEdBQUFKLE9BQUE7QUFFTyxNQUFNSyx3QkFBd0IsU0FBU0MsbURBQTJCLENBQVc7RUFNekVDLFdBQVdBLENBQUNDLFNBQWlCLEVBQUVDLEtBQWUsRUFBRTtJQUNuRCxLQUFLLENBQUMsQ0FBQztJQUFDLEtBTktELFNBQVM7SUFBQSxLQUNUQyxLQUFLO0lBQUEsS0FDZEMsU0FBUztJQUFBLEtBQ1RDLE9BQU87SUFJWCxJQUFJLENBQUNILFNBQVMsR0FBR0EsU0FBUztJQUMxQixJQUFJLENBQUNDLEtBQUssR0FBR0EsS0FBSztFQUN0QjtFQUVBLE1BQWdCRyxjQUFjQSxDQUFBLEVBQWtCO0lBQzVDLElBQUksSUFBSSxDQUFDRCxPQUFPLElBQUlFLFNBQVMsRUFBRTtNQUMzQjtJQUNKO0lBQ0EsSUFBSSxDQUFDRixPQUFPLEdBQUcsSUFBQUcsZUFBSyxFQUFDLElBQUksQ0FBQ0wsS0FBSyxFQUFFO01BQzdCTSxhQUFhLEVBQUUsSUFBSTtNQUNuQkMsR0FBRyxFQUFFLElBQUksQ0FBQ1IsU0FBUztNQUNuQlMsc0JBQXNCLEVBQUUsS0FBSztNQUM3QkMsVUFBVSxFQUFFLElBQUk7TUFDaEJDLEtBQUssRUFBRTtJQUNYLENBQUMsQ0FBQztJQUNGLE1BQU1DLHlCQUF5QixHQUFHQyxlQUFDLENBQUNDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUNqRixJQUFJLENBQUNaLE9BQU8sQ0FBQ2EsRUFBRSxDQUFDLEtBQUssRUFBRUoseUJBQXlCLENBQUM7SUFDakQsSUFBSSxDQUFDVCxPQUFPLENBQUNhLEVBQUUsQ0FBQyxPQUFPLEVBQUVKLHlCQUF5QixDQUFDO0VBQ3ZEO0VBRUEsTUFBZ0JLLGFBQWFBLENBQUEsRUFBa0I7SUFDM0MsSUFBSSxJQUFJLENBQUNkLE9BQU8sSUFBSUUsU0FBUyxFQUFFO01BQzNCO01BQ0EsSUFBSSxDQUFDRixPQUFPLENBQUNlLEtBQUssQ0FBQyxDQUFDO0lBQ3hCO0VBQ0o7RUFFQSxNQUFnQkMsZUFBZUEsQ0FBQSxFQUFzQjtJQUNqRCxJQUFJLENBQUNqQixTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUNrQix1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sSUFBSSxDQUFDbEIsU0FBUztFQUN6QjtFQUVBLE1BQWNrQix1QkFBdUJBLENBQUEsRUFBc0I7SUFDdkQsSUFBSUMsTUFBZ0IsR0FBRyxFQUFFO0lBQ3pCLEtBQUssTUFBTUMsSUFBSSxJQUFJLElBQUksQ0FBQ3JCLEtBQUssRUFBRTtNQUMzQm9CLE1BQU0sR0FBR0EsTUFBTSxDQUFDRSxNQUFNLENBQUMsTUFBTSxJQUFBQyxrQkFBUyxFQUFDRixJQUFJLEVBQUU7UUFBRWQsR0FBRyxFQUFFLElBQUksQ0FBQ1I7TUFBVSxDQUFDLENBQUMsQ0FBQztJQUMxRTtJQUNBLE9BQU9hLGVBQUMsQ0FBQ1ksSUFBSSxDQUFDSixNQUFNLENBQUM7RUFDekI7RUFFQSxNQUFjTixnQkFBZ0JBLENBQUEsRUFBa0I7SUFDNUMsTUFBTVcsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDTix1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RELElBQUksQ0FBQ1AsZUFBQyxDQUFDYyxPQUFPLENBQUMsSUFBSSxDQUFDekIsU0FBUyxFQUFFd0IsU0FBUyxDQUFDLEVBQUU7TUFDdkMsSUFBSSxDQUFDeEIsU0FBUyxHQUFHd0IsU0FBUztNQUMxQixNQUFNLElBQUksQ0FBQ0UsVUFBVSxDQUFDLElBQUksQ0FBQzFCLFNBQVMsQ0FBQztJQUN6QztFQUNKO0FBQ0o7QUFBQzJCLE9BQUEsQ0FBQWhDLHdCQUFBLEdBQUFBLHdCQUFBIn0=
73
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hva2lkYXIiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRnNVdGlscyIsIl9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyIiwicGF0aCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkRpcmVjdG9yeUVudHJpZXNQcm9kdWNlciIsIk9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSIsImNvbnN0cnVjdG9yIiwicGF0aFRvRGlyIiwibWFza3MiLCJsYXN0VmFsdWUiLCJ3YXRjaGVyIiwiYmVnaW5MaXN0ZW5pbmciLCJ1bmRlZmluZWQiLCJ3YXRjaCIsImlnbm9yZUluaXRpYWwiLCJjd2QiLCJpZ25vcmVQZXJtaXNzaW9uRXJyb3JzIiwidXNlUG9sbGluZyIsImRlcHRoIiwiaGFuZGxlQW55RnNFdmVudERlYm91bmNlZCIsIl8iLCJkZWJvdW5jZSIsImhhbmRsZUFueUZzRXZlbnQiLCJvbiIsInN0b3BMaXN0ZW5pbmciLCJjbG9zZSIsImdldEN1cnJlbnRWYWx1ZSIsInJlc29sdmVEaXJlY3RvcnlDb250ZW50IiwicmVzdWx0IiwibWFzayIsInBhdGhzIiwiZ2xvYkFzeW5jIiwibWF0Y2hlZFBhdGgiLCJpc0RpcmVjdG9yeUV4aXN0cyIsImpvaW4iLCJwdXNoIiwidW5pcSIsIm5leHRWYWx1ZSIsImlzRXF1YWwiLCJlbWl0VXBkYXRlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Db21tb25zL1Rhc2tzQ29yZS9EaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlNXYXRjaGVyLCB3YXRjaCB9IGZyb20gXCJjaG9raWRhclwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMsIGlzRGlyZWN0b3J5RXhpc3RzIH0gZnJvbSBcIi4uL0ZzVXRpbHNcIjtcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIH0gZnJvbSBcIi4vQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgY2xhc3MgRGlyZWN0b3J5RW50cmllc1Byb2R1Y2VyIGV4dGVuZHMgT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlPHN0cmluZ1tdPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9EaXI6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hc2tzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIGxhc3RWYWx1ZT86IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgd2F0Y2hlcj86IEZTV2F0Y2hlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXRoVG9EaXI6IHN0cmluZywgbWFza3M6IHN0cmluZ1tdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucGF0aFRvRGlyID0gcGF0aFRvRGlyO1xuICAgICAgICB0aGlzLm1hc2tzID0gbWFza3M7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGJlZ2luTGlzdGVuaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy53YXRjaGVyICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud2F0Y2hlciA9IHdhdGNoKHRoaXMubWFza3MsIHtcbiAgICAgICAgICAgIGlnbm9yZUluaXRpYWw6IHRydWUsXG4gICAgICAgICAgICBjd2Q6IHRoaXMucGF0aFRvRGlyLFxuICAgICAgICAgICAgaWdub3JlUGVybWlzc2lvbkVycm9yczogZmFsc2UsXG4gICAgICAgICAgICB1c2VQb2xsaW5nOiB0cnVlLFxuICAgICAgICAgICAgZGVwdGg6IDEsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkID0gXy5kZWJvdW5jZSgoKSA9PiB0aGlzLmhhbmRsZUFueUZzRXZlbnQoKSwgMTAwMCk7XG4gICAgICAgIHRoaXMud2F0Y2hlci5vbihcImFsbFwiLCBoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkKTtcbiAgICAgICAgdGhpcy53YXRjaGVyLm9uKFwiZXJyb3JcIiwgaGFuZGxlQW55RnNFdmVudERlYm91bmNlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIHN0b3BMaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgICAgICAgICB0aGlzLndhdGNoZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBnZXRDdXJyZW50VmFsdWUoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICB0aGlzLmxhc3RWYWx1ZSA9IGF3YWl0IHRoaXMucmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgcmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiB0aGlzLm1hc2tzKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRocyA9IGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogdGhpcy5wYXRoVG9EaXIgfSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoZWRQYXRoIG9mIHBhdGhzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IGlzRGlyZWN0b3J5RXhpc3RzKHBhdGguam9pbih0aGlzLnBhdGhUb0RpciwgbWF0Y2hlZFBhdGgpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChtYXRjaGVkUGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLnVuaXEocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGhhbmRsZUFueUZzRXZlbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IGF3YWl0IHRoaXMucmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTtcbiAgICAgICAgaWYgKCFfLmlzRXF1YWwodGhpcy5sYXN0VmFsdWUsIG5leHRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gbmV4dFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0VXBkYXRlKHRoaXMubGFzdFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLHVCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxJQUFBLEdBQUFDLHVCQUFBLENBQUFOLE9BQUE7QUFBNkIsU0FBQU8seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUYsd0JBQUFNLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWQsR0FBQSxFQUFBVyxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixHQUFBLEVBQUFXLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVgsR0FBQSxDQUFBVyxHQUFBLFNBQUFMLE1BQUEsQ0FBQUosT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBYSxHQUFBLENBQUFoQixHQUFBLEVBQUFNLE1BQUEsWUFBQUEsTUFBQTtBQUV0QixNQUFNVyx3QkFBd0IsU0FBU0MsbURBQTJCLENBQVc7RUFNekVDLFdBQVdBLENBQUNDLFNBQWlCLEVBQUVDLEtBQWUsRUFBRTtJQUNuRCxLQUFLLENBQUMsQ0FBQztJQUFDLEtBTktELFNBQVM7SUFBQSxLQUNUQyxLQUFLO0lBQUEsS0FDZEMsU0FBUztJQUFBLEtBQ1RDLE9BQU87SUFJWCxJQUFJLENBQUNILFNBQVMsR0FBR0EsU0FBUztJQUMxQixJQUFJLENBQUNDLEtBQUssR0FBR0EsS0FBSztFQUN0QjtFQUVBLE1BQWdCRyxjQUFjQSxDQUFBLEVBQWtCO0lBQzVDLElBQUksSUFBSSxDQUFDRCxPQUFPLElBQUlFLFNBQVMsRUFBRTtNQUMzQjtJQUNKO0lBQ0EsSUFBSSxDQUFDRixPQUFPLEdBQUcsSUFBQUcsZUFBSyxFQUFDLElBQUksQ0FBQ0wsS0FBSyxFQUFFO01BQzdCTSxhQUFhLEVBQUUsSUFBSTtNQUNuQkMsR0FBRyxFQUFFLElBQUksQ0FBQ1IsU0FBUztNQUNuQlMsc0JBQXNCLEVBQUUsS0FBSztNQUM3QkMsVUFBVSxFQUFFLElBQUk7TUFDaEJDLEtBQUssRUFBRTtJQUNYLENBQUMsQ0FBQztJQUNGLE1BQU1DLHlCQUF5QixHQUFHQyxlQUFDLENBQUNDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUNqRixJQUFJLENBQUNaLE9BQU8sQ0FBQ2EsRUFBRSxDQUFDLEtBQUssRUFBRUoseUJBQXlCLENBQUM7SUFDakQsSUFBSSxDQUFDVCxPQUFPLENBQUNhLEVBQUUsQ0FBQyxPQUFPLEVBQUVKLHlCQUF5QixDQUFDO0VBQ3ZEO0VBRUEsTUFBZ0JLLGFBQWFBLENBQUEsRUFBa0I7SUFDM0MsSUFBSSxJQUFJLENBQUNkLE9BQU8sSUFBSUUsU0FBUyxFQUFFO01BQzNCO01BQ0EsSUFBSSxDQUFDRixPQUFPLENBQUNlLEtBQUssQ0FBQyxDQUFDO0lBQ3hCO0VBQ0o7RUFFQSxNQUFnQkMsZUFBZUEsQ0FBQSxFQUFzQjtJQUNqRCxJQUFJLENBQUNqQixTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUNrQix1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sSUFBSSxDQUFDbEIsU0FBUztFQUN6QjtFQUVBLE1BQWNrQix1QkFBdUJBLENBQUEsRUFBc0I7SUFDdkQsTUFBTUMsTUFBZ0IsR0FBRyxFQUFFO0lBQzNCLEtBQUssTUFBTUMsSUFBSSxJQUFJLElBQUksQ0FBQ3JCLEtBQUssRUFBRTtNQUMzQixNQUFNc0IsS0FBSyxHQUFHLE1BQU0sSUFBQUMsa0JBQVMsRUFBQ0YsSUFBSSxFQUFFO1FBQUVkLEdBQUcsRUFBRSxJQUFJLENBQUNSO01BQVUsQ0FBQyxDQUFDO01BQzVELEtBQUssTUFBTXlCLFdBQVcsSUFBSUYsS0FBSyxFQUFFO1FBQzdCLElBQUksTUFBTSxJQUFBRywwQkFBaUIsRUFBQ3JELElBQUksQ0FBQ3NELElBQUksQ0FBQyxJQUFJLENBQUMzQixTQUFTLEVBQUV5QixXQUFXLENBQUMsQ0FBQyxFQUFFO1VBQ2pFSixNQUFNLENBQUNPLElBQUksQ0FBQ0gsV0FBVyxDQUFDO1FBQzVCO01BQ0o7SUFDSjtJQUNBLE9BQU9aLGVBQUMsQ0FBQ2dCLElBQUksQ0FBQ1IsTUFBTSxDQUFDO0VBQ3pCO0VBRUEsTUFBY04sZ0JBQWdCQSxDQUFBLEVBQWtCO0lBQzVDLE1BQU1lLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQ1YsdUJBQXVCLENBQUMsQ0FBQztJQUN0RCxJQUFJLENBQUNQLGVBQUMsQ0FBQ2tCLE9BQU8sQ0FBQyxJQUFJLENBQUM3QixTQUFTLEVBQUU0QixTQUFTLENBQUMsRUFBRTtNQUN2QyxJQUFJLENBQUM1QixTQUFTLEdBQUc0QixTQUFTO01BQzFCLE1BQU0sSUFBSSxDQUFDRSxVQUFVLENBQUMsSUFBSSxDQUFDOUIsU0FBUyxDQUFDO0lBQ3pDO0VBQ0o7QUFDSjtBQUFDK0IsT0FBQSxDQUFBcEMsd0JBQUEsR0FBQUEsd0JBQUEifQ==