@kontur.candy/tools 2.154.0 → 2.155.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 (272) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/distr/Common/AsyncUtils.js +1 -3
  3. package/distr/Common/CandyApiClient/CandyApiClient.js +25 -138
  4. package/distr/Common/CandyApiClient/CandyApiClientContext.js +1 -8
  5. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +1 -1
  6. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +1 -1
  7. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +1 -2
  8. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +1 -1
  9. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +1 -16
  10. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +1 -12
  11. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +1 -12
  12. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +1 -1
  13. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +1 -13
  14. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +1 -3
  15. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +1 -1
  16. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +1 -8
  17. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +1 -7
  18. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +9 -12
  19. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +1 -1
  20. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestResponse.js +1 -1
  21. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +4 -72
  22. package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
  23. package/distr/Common/CandyApiClient/IsBuffer.js +1 -2
  24. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +1 -1
  25. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +1 -1
  26. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +1 -1
  27. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +1 -1
  28. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +1 -1
  29. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +12 -7
  30. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +1 -1
  31. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
  32. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +1 -3
  33. package/distr/Common/CandyApiClient/Types/DraftFullId.js +1 -1
  34. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +5 -6
  35. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +9 -12
  36. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +5 -6
  37. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +1 -1
  38. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +1 -1
  39. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +5 -6
  40. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +1 -1
  41. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +1 -3
  42. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +1 -1
  43. package/distr/Common/CandyApiClient/Types/Guid.js +1 -1
  44. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +1 -1
  45. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +1 -1
  46. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +6 -0
  47. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +5 -6
  48. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +1 -1
  49. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +1 -1
  50. package/distr/Common/CandyApiClient/Types/Print/PrintType.js +5 -6
  51. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +1 -1
  52. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +1 -1
  53. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +1 -1
  54. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +1 -1
  55. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +1 -1
  56. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +5 -6
  57. package/distr/Common/CandyApiClient/Types/TestClassification.js +1 -1
  58. package/distr/Common/CollectionUtils.js +1 -3
  59. package/distr/Common/CommonConstants/SectionNames.js +1 -3
  60. package/distr/Common/Comparers.js +2 -16
  61. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +1 -5
  62. package/distr/Common/EndPoints.js +1 -2
  63. package/distr/Common/Enums/ButtonSettingsTypeEnum.js +5 -6
  64. package/distr/Common/Errors.js +1 -19
  65. package/distr/Common/FormActionHandlers/ContextualActionNames.js +1 -3
  66. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +1 -1
  67. package/distr/Common/Funcs.js +1 -5
  68. package/distr/Common/GFV.js +1 -1
  69. package/distr/Common/Hooks/UseLocalStorage.js +3 -10
  70. package/distr/Common/HttpClient/AuthenticationMode.js +3 -7
  71. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +1 -3
  72. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +1 -3
  73. package/distr/Common/HttpClient/FetchImplementation/Fetch.js +1 -1
  74. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +1 -1
  75. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +6 -11
  76. package/distr/Common/HttpClient/HttpClient.js +9 -80
  77. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +1 -1
  78. package/distr/Common/HttpClient/IHttpClient.js +1 -1
  79. package/distr/Common/IndentString.js +1 -3
  80. package/distr/Common/IntRangeUtils.js +3 -10
  81. package/distr/Common/IterableUtils.js +3 -76
  82. package/distr/Common/KCLangRuntimeUtils.js +1 -87
  83. package/distr/Common/ModelPath/BuildIterationSequence.js +1 -5
  84. package/distr/Common/ModelPath/EachCurrentCollision.js +5 -6
  85. package/distr/Common/ModelPath/IEquatable.js +1 -1
  86. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +1 -8
  87. package/distr/Common/ModelPath/Map/Map2.js +2 -24
  88. package/distr/Common/ModelPath/Map/ModelPathMap.js +1 -8
  89. package/distr/Common/ModelPath/ModelPath.js +16 -140
  90. package/distr/Common/ModelPath/ModelPathBuilder.js +1 -14
  91. package/distr/Common/ModelPath/ModelPathHelper.js +1 -2
  92. package/distr/Common/ModelPath/PathMatcher.js +5 -24
  93. package/distr/Common/ModelPath/PathSplitHelper.js +1 -6
  94. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +1 -10
  95. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +1 -10
  96. package/distr/Common/ModelPath/Set/ModelPathSet.js +1 -10
  97. package/distr/Common/ModelPath/Set/Set2.js +1 -16
  98. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +1 -9
  99. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +1 -1
  100. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +1 -3
  101. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +1 -17
  102. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +1 -30
  103. package/distr/Common/NidusClient/INidusClient.js +1 -3
  104. package/distr/Common/NidusClient/NidusClientContext.js +1 -14
  105. package/distr/Common/NidusClient/NidusClientImpl.js +1 -18
  106. package/distr/Common/PathConstants.js +1 -3
  107. package/distr/Common/StringArrayKey.js +1 -8
  108. package/distr/Common/TypingUtils.js +7 -26
  109. package/distr/Common/UUID.js +1 -4
  110. package/distr/Common/UseAsyncEffect.js +3 -7
  111. package/distr/Common/UseShowOnce.js +1 -17
  112. package/distr/Common/UseTypedSelector.js +1 -3
  113. package/distr/Common/getRngSchemaFilename.js +18 -0
  114. package/distr/Common/hashUtils.js +1 -4
  115. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +1 -23
  116. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +3 -10
  117. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +1 -10
  118. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +5 -23
  119. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +1 -27
  120. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +1 -2
  121. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +3 -10
  122. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +1 -9
  123. package/distr/Tools/src/BuildTasks/FSTask.js +1 -19
  124. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +1 -19
  125. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +1 -16
  126. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +1 -11
  127. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +1 -10
  128. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +1 -10
  129. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +1 -10
  130. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +5 -26
  131. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +1 -38
  132. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +2 -42
  133. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +4 -39
  134. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +4 -7
  135. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +4 -10
  136. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +9 -17
  137. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +3 -5
  138. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +1 -13
  139. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +1 -20
  140. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +3 -48
  141. package/distr/Tools/src/BuildTasks/ReadFormSource.js +7 -32
  142. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +5 -32
  143. package/distr/Tools/src/BuildTasks/Version.js +1 -10
  144. package/distr/Tools/src/BuildTasks/WriteFormMeta.js +1 -10
  145. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +5 -9
  146. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +1 -5
  147. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +22 -71
  148. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +1 -12
  149. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +1 -5
  150. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +1 -67
  151. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +3 -28
  152. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +3 -41
  153. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +3 -23
  154. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +3 -20
  155. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +1 -23
  156. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +1 -37
  157. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +1 -13
  158. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +1 -40
  159. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +8 -49
  160. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +1 -13
  161. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +1 -17
  162. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +1 -4
  163. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +10 -19
  164. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +12 -26
  165. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +1 -5
  166. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +1 -1
  167. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +1 -1
  168. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +10 -44
  169. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +1 -17
  170. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +1 -5
  171. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +1 -1
  172. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +1 -27
  173. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +11 -16
  174. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +1 -1
  175. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +1 -1
  176. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +1 -1
  177. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +1 -4
  178. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +13 -34
  179. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +1 -4
  180. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +1 -15
  181. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +3 -19
  182. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}.calc.js +1 -2
  183. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/setKppValue.js +1 -2
  184. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +1 -6
  185. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +1 -11
  186. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/kppValue.js +3 -4
  187. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +1 -4
  188. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +1 -23
  189. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +1 -4
  190. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +7 -23
  191. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +26 -0
  192. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +48 -0
  193. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +1 -37
  194. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +1 -4
  195. package/distr/Tools/src/CandyCLI.js +7 -56
  196. package/distr/Tools/src/CheckNodeJsVersion.js +3 -10
  197. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +1 -10
  198. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +4 -29
  199. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +1 -6
  200. package/distr/Tools/src/Commons/ErrorUntyped.js +1 -1
  201. package/distr/Tools/src/Commons/EventObject.js +10 -20
  202. package/distr/Tools/src/Commons/ExecUtils.js +3 -9
  203. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +1 -7
  204. package/distr/Tools/src/Commons/FormGlobsUtils.js +1 -33
  205. package/distr/Tools/src/Commons/FsUtils.js +1 -12
  206. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +1 -8
  207. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +4 -15
  208. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +1 -4
  209. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +1 -5
  210. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +1 -1
  211. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +1 -4
  212. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +1 -5
  213. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +2 -5
  214. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +1 -5
  215. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +1 -14
  216. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +1 -4
  217. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +1 -5
  218. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +1 -4
  219. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +1 -4
  220. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +1 -1
  221. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +1 -4
  222. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +1 -4
  223. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +1 -36
  224. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +1 -9
  225. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +5 -35
  226. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +9 -11
  227. package/distr/Tools/src/Commons/Locks/Lock.js +1 -8
  228. package/distr/Tools/src/Commons/Locks/LockHandle.js +1 -5
  229. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +1 -9
  230. package/distr/Tools/src/Commons/Logging/ELKLogger.js +17 -22
  231. package/distr/Tools/src/Commons/Logging/ILogger.js +1 -5
  232. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +3 -21
  233. package/distr/Tools/src/Commons/Logging/Logger.js +9 -29
  234. package/distr/Tools/src/Commons/Logging/StaticLogger.js +11 -15
  235. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +1 -1
  236. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +3 -37
  237. package/distr/Tools/src/Commons/PathPattern.js +1 -13
  238. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +1 -4
  239. package/distr/Tools/src/Commons/TasksCore/BuildTask.js +1 -1
  240. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +13 -200
  241. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +1 -20
  242. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +7 -10
  243. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +1 -15
  244. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +1 -15
  245. package/distr/Tools/src/Commons/TasksCore/Observe.js +1 -13
  246. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +5 -11
  247. package/distr/Tools/src/Commons/TimingUtils.js +1 -2
  248. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +13 -51
  249. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +4 -14
  250. package/distr/Tools/src/GenerateReadMe.js +1 -13
  251. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
  252. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +10 -1
  253. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  254. package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +10 -1
  255. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  256. package/distr/Tools/src/Options/CandyToolOptions.js +3 -11
  257. package/distr/Tools/src/ReadFarmConfig.js +1 -5
  258. package/distr/Tools/src/SelfUpdate.js +4 -28
  259. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1506 -1257
  260. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.LICENSE.txt +1 -0
  261. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  262. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +843 -623
  263. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.LICENSE.txt +1 -0
  264. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  265. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +777 -1117
  266. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +1665 -2015
  267. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +9 -55
  268. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +777 -1117
  269. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +1665 -2015
  270. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +9 -55
  271. package/package.json +10 -10
  272. /package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/schemas/{{gfv}.rng.xml → {gfv}.0.rng.xml} +0 -0
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runRenameFiles = runRenameFiles;
7
+ var path = _interopRequireWildcard(require("path"));
8
+ var _fsExtra = require("fs-extra");
9
+ var _FormGlobsUtils = require("../../Commons/FormGlobsUtils");
10
+ 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); }
11
+ 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
+ async function runRenameFiles(context, options, resourcesDirectory, farmDirectory) {
13
+ const formGlobs = await _FormGlobsUtils.FormGlobs.validateGlobs(await _FormGlobsUtils.FormGlobs.resolveSpecifiers(options.formGlobs, farmDirectory), farmDirectory);
14
+ for (const gfv of await _FormGlobsUtils.FormGlobs.resolveGlobsToGfvs(formGlobs, farmDirectory)) {
15
+ if (!isNaN(Number(gfv))) {
16
+ const logger = context.logger.withPrefix(`FORM:${gfv}`);
17
+ await renameFiles(farmDirectory, gfv, logger);
18
+ }
19
+ }
20
+ }
21
+ async function renameFiles(farmDirectory, gfv, logger) {
22
+ var _maxSubversion;
23
+ const presentationsFile = path.join(farmDirectory, "forms", gfv, "presentations.json");
24
+ if (!(await (0, _fsExtra.pathExists)(presentationsFile))) {
25
+ logger.warning(`Form ${gfv} does not have presentations.json.`);
26
+ return;
27
+ }
28
+ const json = await (0, _fsExtra.readJson)(presentationsFile);
29
+ let maxSubversion = 0;
30
+ for (const item of json) {
31
+ if (item["MaxVersion"] !== undefined && item["MaxVersion"]) {
32
+ maxSubversion = item["MaxVersion"];
33
+ }
34
+ }
35
+ maxSubversion = (_maxSubversion = maxSubversion) !== null && _maxSubversion !== void 0 ? _maxSubversion : 0;
36
+ const rngXmlFileName = `${gfv}.rng.xml`;
37
+ const newRngXmlFileName = `${gfv}.${maxSubversion}.rng.xml`;
38
+ const formDirPath = path.join(farmDirectory, "forms", gfv);
39
+ const fileDirPath = path.join(formDirPath, "schemas", rngXmlFileName);
40
+ if (!(await (0, _fsExtra.pathExists)(fileDirPath))) {
41
+ logger.warning(`Form ${gfv} does not have ${rngXmlFileName}.`);
42
+ return;
43
+ }
44
+ const newFileDirPath = path.join(formDirPath, "schemas", newRngXmlFileName);
45
+ logger.log(`Rename "${rngXmlFileName}" in "${newRngXmlFileName}".`);
46
+ await (0, _fsExtra.rename)(fileDirPath, newFileDirPath);
47
+ }
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwicnVuUmVuYW1lRmlsZXMiLCJjb250ZXh0Iiwib3B0aW9ucyIsInJlc291cmNlc0RpcmVjdG9yeSIsImZhcm1EaXJlY3RvcnkiLCJmb3JtR2xvYnMiLCJGb3JtR2xvYnMiLCJ2YWxpZGF0ZUdsb2JzIiwicmVzb2x2ZVNwZWNpZmllcnMiLCJnZnYiLCJyZXNvbHZlR2xvYnNUb0dmdnMiLCJpc05hTiIsIk51bWJlciIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJyZW5hbWVGaWxlcyIsIl9tYXhTdWJ2ZXJzaW9uIiwicHJlc2VudGF0aW9uc0ZpbGUiLCJqb2luIiwicGF0aEV4aXN0cyIsIndhcm5pbmciLCJqc29uIiwicmVhZEpzb24iLCJtYXhTdWJ2ZXJzaW9uIiwiaXRlbSIsInVuZGVmaW5lZCIsInJuZ1htbEZpbGVOYW1lIiwibmV3Um5nWG1sRmlsZU5hbWUiLCJmb3JtRGlyUGF0aCIsImZpbGVEaXJQYXRoIiwibmV3RmlsZURpclBhdGgiLCJsb2ciLCJyZW5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvUmVuYW1lRmlsZXMvUnVuUmVuYW1lRmlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkSnNvbiwgcmVuYW1lIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5cbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcblxuaW1wb3J0IHsgUmVuYW1lRmlsZXNPcHRpb25zIH0gZnJvbSBcIi4vUmVuYW1lRmlsZXNPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5SZW5hbWVGaWxlcyhcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IFJlbmFtZUZpbGVzT3B0aW9ucyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1HbG9icyA9IGF3YWl0IEZvcm1HbG9icy52YWxpZGF0ZUdsb2JzKFxuICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpLFxuICAgICAgICBmYXJtRGlyZWN0b3J5XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdsb2JzVG9HZnZzKGZvcm1HbG9icywgZmFybURpcmVjdG9yeSkpIHtcbiAgICAgICAgaWYgKCFpc05hTihOdW1iZXIoZ2Z2KSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtnZnZ9YCk7XG4gICAgICAgICAgICBhd2FpdCByZW5hbWVGaWxlcyhmYXJtRGlyZWN0b3J5LCBnZnYsIGxvZ2dlcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmFtZUZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgZ2Z2OiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHByZXNlbnRhdGlvbnNGaWxlID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2LCBcInByZXNlbnRhdGlvbnMuanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHByZXNlbnRhdGlvbnNGaWxlKSkpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoYEZvcm0gJHtnZnZ9IGRvZXMgbm90IGhhdmUgcHJlc2VudGF0aW9ucy5qc29uLmApO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZWFkSnNvbihwcmVzZW50YXRpb25zRmlsZSk7XG4gICAgbGV0IG1heFN1YnZlcnNpb24gPSAwO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBqc29uKSB7XG4gICAgICAgIGlmIChpdGVtW1wiTWF4VmVyc2lvblwiXSAhPT0gdW5kZWZpbmVkICYmIGl0ZW1bXCJNYXhWZXJzaW9uXCJdKSB7XG4gICAgICAgICAgICBtYXhTdWJ2ZXJzaW9uID0gaXRlbVtcIk1heFZlcnNpb25cIl07XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWF4U3VidmVyc2lvbiA9IG1heFN1YnZlcnNpb24gPz8gMDtcbiAgICBjb25zdCBybmdYbWxGaWxlTmFtZSA9IGAke2dmdn0ucm5nLnhtbGA7XG4gICAgY29uc3QgbmV3Um5nWG1sRmlsZU5hbWUgPSBgJHtnZnZ9LiR7bWF4U3VidmVyc2lvbn0ucm5nLnhtbGA7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZpbGVEaXJQYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcInNjaGVtYXNcIiwgcm5nWG1sRmlsZU5hbWUpO1xuICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMoZmlsZURpclBhdGgpKSkge1xuICAgICAgICBsb2dnZXIud2FybmluZyhgRm9ybSAke2dmdn0gZG9lcyBub3QgaGF2ZSAke3JuZ1htbEZpbGVOYW1lfS5gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdGaWxlRGlyUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJzY2hlbWFzXCIsIG5ld1JuZ1htbEZpbGVOYW1lKTtcbiAgICBsb2dnZXIubG9nKGBSZW5hbWUgXCIke3JuZ1htbEZpbGVOYW1lfVwiIGluIFwiJHtuZXdSbmdYbWxGaWxlTmFtZX1cIi5gKTtcbiAgICBhd2FpdCByZW5hbWUoZmlsZURpclBhdGgsIG5ld0ZpbGVEaXJQYXRoKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsZUFBQSxHQUFBRixPQUFBO0FBQXlELFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFMLHdCQUFBUyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFB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
@@ -4,43 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.runUpgradeForm = runUpgradeForm;
7
-
8
7
  var path = _interopRequireWildcard(require("path"));
9
-
10
8
  var _fsExtra = require("fs-extra");
11
-
12
9
  var _PublishedVersionUtils = require("../../BuildTasks/PublishedVersionUtils");
13
-
14
10
  var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
15
-
16
11
  var _FormGlobsUtils = require("../../Commons/FormGlobsUtils");
17
-
18
12
  var _StaticLogger = require("../../Commons/Logging/StaticLogger");
19
-
20
13
  var _Version = require("../../BuildTasks/Version");
21
-
22
14
  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); }
23
-
24
15
  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; }
25
-
26
16
  async function runUpgradeForm(context, options, resourcesDirectory, farmDirectory) {
27
17
  const formGlobs = await _FormGlobsUtils.FormGlobs.validateGlobs(await _FormGlobsUtils.FormGlobs.resolveSpecifiers(options.formGlobs, farmDirectory), farmDirectory);
28
-
29
18
  for (const gfv of await _FormGlobsUtils.FormGlobs.resolveGlobsToGfvs(formGlobs, farmDirectory)) {
30
19
  const logger = context.logger.withPrefix(`FORM:${gfv}`);
31
-
32
20
  if (options.useCiBuild) {
33
21
  logger.log("Begin upgrading build mode");
34
22
  await upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv, logger);
35
23
  logger.log("Finish upgrading build mode");
36
24
  }
37
-
38
25
  if (options.engine != undefined) {
39
26
  logger.log("Begin upgrading engine version");
40
27
  await upgradeFormEngine(farmDirectory, gfv, options.engine, options.skipPreVersions, logger);
41
28
  logger.log("Finish upgrading engine version");
42
29
  }
43
-
44
30
  if (options.preid != undefined) {
45
31
  logger.log("Begin upgrading engine version");
46
32
  await upgradeFormPrerelease(farmDirectory, gfv, options.preid, logger);
@@ -48,44 +34,34 @@ async function runUpgradeForm(context, options, resourcesDirectory, farmDirector
48
34
  }
49
35
  }
50
36
  }
51
-
52
37
  async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersions, logger) {
53
38
  const formDirPath = path.join(farmDirectory, "forms", gfv);
54
39
  const formJsonPath = path.join(formDirPath, "form.json");
55
-
56
40
  if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
57
41
  logger.warning("Form does not have form.json: Upgrade skipped");
58
42
  return;
59
43
  }
60
-
61
44
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, logger);
62
-
63
45
  if (skipPreVersions) {
64
46
  var _formConfig$dependenc, _formConfig$dependenc2;
65
-
66
47
  if (((_formConfig$dependenc = formConfig.dependencies) === null || _formConfig$dependenc === void 0 ? void 0 : _formConfig$dependenc.engine) != undefined && ((_formConfig$dependenc2 = formConfig.dependencies) === null || _formConfig$dependenc2 === void 0 ? void 0 : _formConfig$dependenc2.generator) != undefined) {
67
48
  var _formConfig$dependenc3, _formConfig$dependenc4;
68
-
69
49
  const engineVersionSpec = (0, _Version.parseCandyVersionSpec)((_formConfig$dependenc3 = formConfig.dependencies) === null || _formConfig$dependenc3 === void 0 ? void 0 : _formConfig$dependenc3.engine);
70
50
  const generatorVersionSpec = (0, _Version.parseCandyVersionSpec)((_formConfig$dependenc4 = formConfig.dependencies) === null || _formConfig$dependenc4 === void 0 ? void 0 : _formConfig$dependenc4.generator);
71
-
72
51
  if (engineVersionSpec.type === "pre" || generatorVersionSpec.type === "pre" || engineVersionSpec.type === "version" && /[a-zA-Z]/.test(engineVersionSpec.version) || generatorVersionSpec.type === "version" && /[a-zA-Z]/.test(generatorVersionSpec.version)) {
73
52
  logger.log("Form version has prerelease version: Upgrade skipped due to flag skipPreVersions (--skip-pre-versions) specified");
74
53
  return;
75
54
  }
76
55
  }
77
56
  }
78
-
79
57
  if (formConfig.mode === "no-editor") {
80
58
  logger.log("Form does not have editor: Upgrade skipped");
81
59
  return;
82
60
  }
83
-
84
61
  if (formConfig.mode === "copy-legacy-prebuilt-resources") {
85
62
  logger.log("Form does not have editor: Upgrade skipped");
86
63
  return;
87
64
  }
88
-
89
65
  if (engineVersion === "latest") {
90
66
  formConfig.dependencies = {
91
67
  engine: await (0, _PublishedVersionUtils.getLastStableEngineVersion)(),
@@ -110,24 +86,18 @@ async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersi
110
86
  }
111
87
  }
112
88
  }
113
-
114
89
  async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv, logger) {
115
90
  const formDirPath = path.join(farmDirectory, "forms", gfv);
116
91
  const formJsonPath = path.join(formDirPath, "form.json");
117
-
118
92
  if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
119
93
  logger.warning("form.json does not exists. Upgrade skipped.");
120
94
  return;
121
95
  }
122
-
123
96
  const generatedFormDirectory = path.join(formDirPath, "form");
124
-
125
97
  if (!(0, _ResolveFormInfo.isNewFormJsonFormat)(formJsonPath)) {
126
98
  throw new Error("Файл form.json формы должен иметь новый формат зависимости. Обратитесь к расзработчикам за разъяснениями.");
127
99
  }
128
-
129
100
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, (0, _StaticLogger.getLogger)());
130
-
131
101
  if (formConfig.build !== "ci") {
132
102
  formConfig.build = "ci";
133
103
  await (0, _fsExtra.writeJson)(formJsonPath, formConfig, {
@@ -135,17 +105,13 @@ async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv,
135
105
  });
136
106
  logger.log("Updated form.json");
137
107
  }
138
-
139
108
  if (await (0, _fsExtra.pathExists)(generatedFormDirectory)) {
140
109
  await (0, _fsExtra.remove)(generatedFormDirectory);
141
110
  logger.log("Removed form directory");
142
111
  }
143
-
144
112
  const formGitIgnorePath = path.join(formDirPath, ".gitignore");
145
-
146
113
  if (await (0, _fsExtra.pathExists)(formGitIgnorePath)) {
147
114
  const gitIgnoreContent = await (0, _fsExtra.readFile)(formGitIgnorePath, "utf8");
148
-
149
115
  if (!gitIgnoreContent.split("\n").includes("form")) {
150
116
  await (0, _fsExtra.writeFile)(formGitIgnorePath, gitIgnoreContent.trimRight() + "\n" + "form\n");
151
117
  logger.log("Updated .gitignore");
@@ -155,13 +121,11 @@ async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv,
155
121
  logger.log("Created .gitignore");
156
122
  }
157
123
  }
158
-
159
124
  async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
160
125
  const formDirPath = path.join(farmDirectory, "forms", gfv);
161
126
  const formJsonPath = path.join(formDirPath, "form.json");
162
127
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, logger);
163
128
  const prereleaseVersionFormJson = await (0, _PublishedVersionUtils.getPrereleaseVersionFormJson)(preid);
164
-
165
129
  if (prereleaseVersionFormJson != undefined) {
166
130
  formConfig.dependencies = {
167
131
  engine: prereleaseVersionFormJson,
@@ -175,4 +139,4 @@ async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
175
139
  throw new Error(`Версии ${preid} не существует.`);
176
140
  }
177
141
  }
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9SdW5VcGdyYWRlRm9ybS50cyJdLCJuYW1lcyI6WyJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsInBhdGgiLCJqb2luIiwiZm9ybUpzb25QYXRoIiwid2FybmluZyIsImZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJlbmdpbmVWZXJzaW9uU3BlYyIsImdlbmVyYXRvclZlcnNpb25TcGVjIiwidHlwZSIsInRlc3QiLCJ2ZXJzaW9uIiwibW9kZSIsInNwYWNlcyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImJ1aWxkIiwiZm9ybUdpdElnbm9yZVBhdGgiLCJnaXRJZ25vcmVDb250ZW50Iiwic3BsaXQiLCJpbmNsdWRlcyIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQTs7QUFNQTs7QUFFQTs7QUFFQTs7QUFDQTs7Ozs7O0FBSU8sZUFBZUEsY0FBZixDQUNIQyxPQURHLEVBRUhDLE9BRkcsRUFHSEMsa0JBSEcsRUFJSEMsYUFKRyxFQUtVO0FBQ2IsUUFBTUMsU0FBUyxHQUFH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QUkwQix5QkFBeUIsSUFBSTdCLFNBQWpDLEVBQTRDO0FBQ3hDVyxJQUFBQSxVQUFVLENBQUNDLFlBQVgsR0FBMEI7QUFBRWIsTUFBQUEsTUFBTSxFQUFFOEIseUJBQVY7QUFBcUNoQixNQUFBQSxTQUFTLEVBQUVnQjtBQUFoRCxLQUExQjtBQUNBbkMsSUFBQUEsTUFBTSxDQUFDRyxHQUFQLENBQVksaUNBQWdDYyxVQUFVLENBQUNDLFlBQVgsQ0FBd0JiLE1BQU8sRUFBM0U7QUFDQSxVQUFNLHdCQUFVVSxZQUFWLEVBQXdCRSxVQUF4QixFQUFvQztBQUFFUyxNQUFBQSxNQUFNLEVBQUU7QUFBVixLQUFwQyxDQUFOO0FBQ0gsR0FKRCxNQUlPO0FBQ0gsVUFBTSxJQUFJQyxLQUFKLENBQVcsVUFBU2xCLEtBQU0saUJBQTFCLENBQU47QUFDSDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkRmlsZSwgcmVtb3ZlLCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQge1xuICAgIGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uLFxuICAgIGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uLFxuICAgIGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sXG4gICAgaXNFbmdpbmVWZXJzaW9uRXhpc3RzLFxufSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IGlzTmV3Rm9ybUpzb25Gb3JtYXQsIHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgcGFyc2VDYW5keVZlcnNpb25TcGVjIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvVmVyc2lvblwiO1xuXG5pbXBvcnQgeyBVcGdyYWRlRm9ybU9wdGlvbnMgfSBmcm9tIFwiLi9VcGdyYWRlRm9ybU9wdGlvbnNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1blVwZ3JhZGVGb3JtKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogVXBncmFkZUZvcm1PcHRpb25zLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybUdsb2JzID0gYXdhaXQgRm9ybUdsb2JzLnZhbGlkYXRlR2xvYnMoXG4gICAgICAgIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlU3BlY2lmaWVycyhvcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSksXG4gICAgICAgIGZhcm1EaXJlY3RvcnlcbiAgICApO1xuICAgIGZvciAoY29uc3QgZ2Z2IG9mIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlR2xvYnNUb0dmdnMoZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSkge1xuICAgICAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBGT1JNOiR7Z2Z2fWApO1xuICAgICAgICBpZiAob3B0aW9ucy51c2VDaUJ1aWxkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGJ1aWxkIG1vZGVcIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVRvQ2lCdWlsZE1vZGUocmVzb3VyY2VzRGlyZWN0b3J5LCBmYXJtRGlyZWN0b3J5LCBnZnYsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmVuZ2luZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybUVuZ2luZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMuZW5naW5lLCBvcHRpb25zLnNraXBQcmVWZXJzaW9ucywgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnByZWlkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMucHJlaWQsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1FbmdpbmUoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIGVuZ2luZVZlcnNpb246IHN0cmluZyxcbiAgICBza2lwUHJlVmVyc2lvbnM6IGJvb2xlYW4sXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGZvcm0uanNvbjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgaWYgKHNraXBQcmVWZXJzaW9ucykge1xuICAgICAgICBpZiAoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSAhPSB1bmRlZmluZWQgJiYgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZVZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUpO1xuICAgICAgICAgICAgY29uc3QgZ2VuZXJhdG9yVmVyc2lvblNwZWMgPSBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvcik7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJwcmVcIiB8fFxuICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICAoZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGVuZ2luZVZlcnNpb25TcGVjLnZlcnNpb24pKSB8fFxuICAgICAgICAgICAgICAgIChnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInZlcnNpb25cIiAmJiAvW2EtekEtWl0vLnRlc3QoZ2VuZXJhdG9yVmVyc2lvblNwZWMudmVyc2lvbikpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFxuICAgICAgICAgICAgICAgICAgICBcIkZvcm0gdmVyc2lvbiBoYXMgcHJlcmVsZWFzZSB2ZXJzaW9uOiBVcGdyYWRlIHNraXBwZWQgZHVlIHRvIGZsYWcgc2tpcFByZVZlcnNpb25zICgtLXNraXAtcHJlLXZlcnNpb25zKSBzcGVjaWZpZWRcIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwibm8tZWRpdG9yXCIpIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBlZGl0b3I6IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGVuZ2luZVZlcnNpb24gPT09IFwibGF0ZXN0XCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGF3YWl0IGlzRW5naW5lVmVyc2lvbkV4aXN0cyhlbmdpbmVWZXJzaW9uKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogZW5naW5lVmVyc2lvbiwgZ2VuZXJhdG9yOiBlbmdpbmVWZXJzaW9uIH07XG4gICAgICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7ZW5naW5lVmVyc2lvbn0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMoZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoXCJmb3JtLmpzb24gZG9lcyBub3QgZXhpc3RzLiBVcGdyYWRlIHNraXBwZWQuXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkgPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKTtcbiAgICBpZiAoIWlzTmV3Rm9ybUpzb25Gb3JtYXQoZm9ybUpzb25QYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcItCk0LDQudC7IGZvcm0uanNvbiDRhNC+0YDQvNGLINC00L7Qu9C20LXQvSDQuNC80LXRgtGMINC90L7QstGL0Lkg0YTQvtGA0LzQsNGCINC30LDQstC40YHQuNC80L7RgdGC0LguINCe0LHRgNCw0YLQuNGC0LXRgdGMINC6INGA0LDRgdC30YDQsNCx0L7RgtGH0LjQutCw0Lwg0LfQsCDRgNCw0LfRitGP0YHQvdC10L3QuNGP0LzQuC5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBnZXRMb2dnZXIoKSk7XG4gICAgaWYgKGZvcm1Db25maWcuYnVpbGQgIT09IFwiY2lcIikge1xuICAgICAgICBmb3JtQ29uZmlnLmJ1aWxkID0gXCJjaVwiO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIlVwZGF0ZWQgZm9ybS5qc29uXCIpO1xuICAgIH1cbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5KSkge1xuICAgICAgICBhd2FpdCByZW1vdmUoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmVkIGZvcm0gZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgICBjb25zdCBmb3JtR2l0SWdub3JlUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCIuZ2l0aWdub3JlXCIpO1xuICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZvcm1HaXRJZ25vcmVQYXRoKSkge1xuICAgICAgICBjb25zdCBnaXRJZ25vcmVDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgaWYgKCFnaXRJZ25vcmVDb250ZW50LnNwbGl0KFwiXFxuXCIpLmluY2x1ZGVzKFwiZm9ybVwiKSkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBnaXRJZ25vcmVDb250ZW50LnRyaW1SaWdodCgpICsgXCJcXG5cIiArIFwiZm9ybVxcblwiKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwiZm9ybVxcblwiKTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkNyZWF0ZWQgLmdpdGlnbm9yZVwiKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgcHJlaWQ6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgY29uc3QgcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiA9IGF3YWl0IGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24ocHJlaWQpO1xuXG4gICAgaWYgKHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sIGdlbmVyYXRvcjogcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHByZXJlbGVhc2UgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQktC10YDRgdC40LggJHtwcmVpZH0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICB9XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtR2xvYnNVdGlscyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsImpvaW4iLCJmb3JtSnNvblBhdGgiLCJwYXRoRXhpc3RzIiwid2FybmluZyIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYzIiLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJfZm9ybUNvbmZpZyRkZXBlbmRlbmMzIiwiX2Zvcm1Db25maWckZGVwZW5kZW5jNCIsImVuZ2luZVZlcnNpb25TcGVjIiwicGFyc2VDYW5keVZlcnNpb25TcGVjIiwiZ2VuZXJhdG9yVmVyc2lvblNwZWMiLCJ0eXBlIiwidGVzdCIsInZlcnNpb24iLCJtb2RlIiwiZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24iLCJnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbiIsIndyaXRlSnNvbiIsInNwYWNlcyIsImlzRW5naW5lVmVyc2lvbkV4aXN0cyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImlzTmV3Rm9ybUpzb25Gb3JtYXQiLCJnZXRMb2dnZXIiLCJidWlsZCIsInJlbW92ZSIsImZvcm1HaXRJZ25vcmVQYXRoIiwiZ2l0SWdub3JlQ29udGVudCIsInJlYWRGaWxlIiwic3BsaXQiLCJpbmNsdWRlcyIsIndyaXRlRmlsZSIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHJlbW92ZSwgd3JpdGVGaWxlLCB3cml0ZUpzb24gfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHtcbiAgICBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbixcbiAgICBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbixcbiAgICBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxuICAgIGlzRW5naW5lVmVyc2lvbkV4aXN0cyxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBpc05ld0Zvcm1Kc29uRm9ybWF0LCByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1ZlcnNpb25cIjtcblxuaW1wb3J0IHsgVXBncmFkZUZvcm1PcHRpb25zIH0gZnJvbSBcIi4vVXBncmFkZUZvcm1PcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5VcGdyYWRlRm9ybShcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IFVwZ3JhZGVGb3JtT3B0aW9ucyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1HbG9icyA9IGF3YWl0IEZvcm1HbG9icy52YWxpZGF0ZUdsb2JzKFxuICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpLFxuICAgICAgICBmYXJtRGlyZWN0b3J5XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdsb2JzVG9HZnZzKGZvcm1HbG9icywgZmFybURpcmVjdG9yeSkpIHtcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgRk9STToke2dmdn1gKTtcbiAgICAgICAgaWYgKG9wdGlvbnMudXNlQ2lCdWlsZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSwgZ2Z2LCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgYnVpbGQgbW9kZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5lbmdpbmUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1FbmdpbmUoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLmVuZ2luZSwgb3B0aW9ucy5za2lwUHJlVmVyc2lvbnMsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5wcmVpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVByZXJlbGVhc2UoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLnByZWlkLCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtRW5naW5lKFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBlbmdpbmVWZXJzaW9uOiBzdHJpbmcsXG4gICAgc2tpcFByZVZlcnNpb25zOiBib29sZWFuLFxuICAgIGxvZ2dlcjogSUxvZ2dlclxuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIik7XG4gICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhmb3JtSnNvblBhdGgpKSkge1xuICAgICAgICBsb2dnZXIud2FybmluZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBmb3JtLmpzb246IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGlmIChza2lwUHJlVmVyc2lvbnMpIHtcbiAgICAgICAgaWYgKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUgIT0gdW5kZWZpbmVkICYmIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBlbmdpbmVWZXJzaW9uU3BlYyA9IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyhmb3JtQ29uZmlnLmRlcGVuZGVuY2llcz8uZW5naW5lKTtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYXRvclZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInByZVwiIHx8XG4gICAgICAgICAgICAgICAgKGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwidmVyc2lvblwiICYmIC9bYS16QS1aXS8udGVzdChlbmdpbmVWZXJzaW9uU3BlYy52ZXJzaW9uKSkgfHxcbiAgICAgICAgICAgICAgICAoZ2VuZXJhdG9yVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGdlbmVyYXRvclZlcnNpb25TcGVjLnZlcnNpb24pKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcbiAgICAgICAgICAgICAgICAgICAgXCJGb3JtIHZlcnNpb24gaGFzIHByZXJlbGVhc2UgdmVyc2lvbjogVXBncmFkZSBza2lwcGVkIGR1ZSB0byBmbGFnIHNraXBQcmVWZXJzaW9ucyAoLS1za2lwLXByZS12ZXJzaW9ucykgc3BlY2lmaWVkXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcIm5vLWVkaXRvclwiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGZvcm1Db25maWcubW9kZSA9PT0gXCJjb3B5LWxlZ2FjeS1wcmVidWlsdC1yZXNvdXJjZXNcIikge1xuICAgICAgICBsb2dnZXIubG9nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGVkaXRvcjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChlbmdpbmVWZXJzaW9uID09PSBcImxhdGVzdFwiKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgZW5naW5lOiBhd2FpdCBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpLFxuICAgICAgICAgICAgZ2VuZXJhdG9yOiBhd2FpdCBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpLFxuICAgICAgICB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIGxhc3Qgc3RhYmxlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhd2FpdCBpc0VuZ2luZVZlcnNpb25FeGlzdHMoZW5naW5lVmVyc2lvbikpIHtcbiAgICAgICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IGVuZ2luZVZlcnNpb24sIGdlbmVyYXRvcjogZW5naW5lVmVyc2lvbiB9O1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCS0LXRgNGB0LjQuCAke2VuZ2luZVZlcnNpb259INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtVG9DaUJ1aWxkTW9kZShcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiZm9ybS5qc29uIGRvZXMgbm90IGV4aXN0cy4gVXBncmFkZSBza2lwcGVkLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIik7XG4gICAgaWYgKCFpc05ld0Zvcm1Kc29uRm9ybWF0KGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCLQpNCw0LnQuyBmb3JtLmpzb24g0YTQvtGA0LzRiyDQtNC+0LvQttC10L0g0LjQvNC10YLRjCDQvdC+0LLRi9C5INGE0L7RgNC80LDRgiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4LiDQntCx0YDQsNGC0LjRgtC10YHRjCDQuiDRgNCw0YHQt9GA0LDQsdC+0YLRh9C40LrQsNC8INC30LAg0YDQsNC30YrRj9GB0L3QtdC90LjRj9C80LguXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2V0TG9nZ2VyKCkpO1xuICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkICE9PSBcImNpXCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5idWlsZCA9IFwiY2lcIjtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIGZvcm0uanNvblwiKTtcbiAgICB9XG4gICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSkpIHtcbiAgICAgICAgYXdhaXQgcmVtb3ZlKGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkpO1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBmb3JtIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUdpdElnbm9yZVBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtR2l0SWdub3JlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIGlmICghZ2l0SWdub3JlQ29udGVudC5zcGxpdChcIlxcblwiKS5pbmNsdWRlcyhcImZvcm1cIikpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmb3JtR2l0SWdub3JlUGF0aCwgZ2l0SWdub3JlQ29udGVudC50cmltUmlnaHQoKSArIFwiXFxuXCIgKyBcImZvcm1cXG5cIik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiVXBkYXRlZCAuZ2l0aWdub3JlXCIpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcImZvcm1cXG5cIik7XG4gICAgICAgIGxvZ2dlci5sb2coXCJDcmVhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybVByZXJlbGVhc2UoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIHByZWlkOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGNvbnN0IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gPSBhd2FpdCBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uKHByZWlkKTtcblxuICAgIGlmIChwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyA9IHsgZW5naW5lOiBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLCBnZW5lcmF0b3I6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gfTtcbiAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byBwcmVyZWxlYXNlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7cHJlaWR9INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFF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
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.upgradeFormCommandDefinition = void 0;
7
-
8
7
  var _CommandBasedOptionsParser = require("../../Commons/Options/CommandBasedOptionsParser");
9
-
10
8
  var _CommonOptionDefintions = require("../CommonOptions/CommonOptionDefintions");
11
-
12
9
  const localServerOptionsDefinition = (0, _CommandBasedOptionsParser.optionsDefinition)({
13
10
  alias: "g",
14
11
  name: "gfvs",
@@ -79,4 +76,4 @@ candy upgrade --engine latest 9900101
79
76
  `.trim()
80
77
  });
81
78
  exports.upgradeFormCommandDefinition = upgradeFormCommandDefinition;
82
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9VcGdyYWRlRm9ybU9wdGlvbnMudHMiXSwibmFtZXMiOlsibG9jYWxTZXJ2ZXJPcHRpb25zRGVmaW5pdGlvbiIsImFsaWFzIiwibmFtZSIsImRlZmF1bHRWYWx1ZSIsImZvcm1HbG9icyIsInBhcnNlIiwiaW5wdXQiLCJkZWZhdWx0T3B0aW9uIiwibXVsdGlwbGUiLCJkZXNjcmlwdGlvbiIsImRvZXNOb3RSZXF1aXJlVmFsdWUiLCJ1c2VDaUJ1aWxkIiwieCIsInNraXBQcmVWZXJzaW9ucyIsImVuZ2luZSIsInVuZGVmaW5lZCIsInByZWlkIiwiZGV2TW9kZU9wdGlvbiIsImxvZ1ZlcmJvc2l0eU9wdGlvbiIsInVwZ3JhZGVGb3JtQ29tbWFuZERlZmluaXRpb24iLCJleGFtcGxlcyIsInRyaW0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFVQSxNQUFNQSw0QkFBNEIsR0FBRyxrREFDakM7QUFDSUMsRUFBQUEsS0FBSyxFQUFFLEdBRFg7QUFFSUMsRUFBQUEsSUFBSSxFQUFFLE1BRlY7QUFHSUMsRUFBQUEsWUFBWSxFQUFFO0FBQUVDLElBQUFBLFNBQVMsRUFBRTtBQUFiLEdBSGxCO0FBSUlDLEVBQUFBLEtBQUssRUFBR0MsS0FBRCxLQUFzQjtBQUFFRixJQUFBQSxTQUFTLEVBQUVFO0FBQWIsR0FBdEIsQ0FKWDtBQUtJQyxFQUFBQSxhQUFhLEVBQUUsSUFMbkI7QUFNSUMsRUFBQUEsUUFBUSxFQUFFLElBTmQ7QUFPSUMsRUFBQUEsV0FBVyxFQUFFO0FBUGpCLENBRGlDLEVBVWpDO0FBQ0lQLEVBQUFBLElBQUksRUFBRSxjQURWO0FBRUlRLEVBQUFBLG1CQUFtQixFQUFFLElBRnpCO0FBR0lQLEVBQUFBLFlBQVksRUFBRTtBQUFFUSxJQUFBQSxVQUFVLEVBQUU7QUFBZCxHQUhsQjtBQUlJTixFQUFBQSxLQUFLLEVBQUdPLENBQUQsS0FBaUI7QUFBRUQsSUFBQUEsVUFBVSxFQUFFQztBQUFkLEdBQWpCLENBSlg7QUFLSUgsRUFBQUEsV0FBVyxFQUFFO0FBTGpCLENBVmlDLEVBaUJqQztBQUNJUCxFQUFBQSxJQUFJLEVBQUUsbUJBRFY7QUFFSVEsRUFBQUEsbUJBQW1CLEVBQUUsSUFGekI7QUFHSVAsRUFBQUEsWUFBWSxFQUFFO0FBQUVVLElBQUFBLGVBQWUsRUFBRTtBQUFuQixHQUhsQjtBQUlJUixFQUFBQSxLQUFLLEVBQUdPLENBQUQsS0FBaUI7QUFBRUMsSUFBQUEsZUFBZSxFQUFFRDtBQUFuQixHQUFqQixDQUpYO0FBS0lILEVBQUFBLFdBQVcsRUFBRTtBQUxqQixDQWpCaUMsRUF3QmpDO0FBQ0lQLEVBQUFBLElBQUksRUFBRSxRQURWO0FBRUlDLEVBQUFBLFlBQVksRUFBRTtBQUFFVyxJQUFBQSxNQUFNLEVBQUVDO0FBQVYsR0FGbEI7QUFHSVYsRUFBQUEsS0FBSyxFQUFHTyxDQUFELEtBQWdCO0FBQUVFLElBQUFBLE1BQU0sRUFBRUY7QUFBVixHQUFoQixDQUhYO0FBSUlILEVBQUFBLFdBQVcsRUFDUDtBQUxSLENBeEJpQyxFQStCakM7QUFDSVAsRUFBQUEsSUFBSSxFQUFFLE9BRFY7QUFFSUMsRUFBQUEsWUFBWSxFQUFFO0FBQUVhLElBQUFBLEtBQUssRUFBRUQ7QUFBVCxHQUZsQjtBQUdJVixFQUFBQSxLQUFLLEVBQUdPLENBQUQsS0FBZ0I7QUFBRUksSUFBQUEsS0FBSyxFQUFFSjtBQUFULEdBQWhCLENBSFg7QUFJSUgsRUFBQUEsV0FBVyxFQUFFO0FBSmpCLENBL0JpQyxFQXFDakNRLHFDQXJDaUMsRUFzQ2pDQywwQ0F0Q2lDLENBQXJDO0FBeUNPLE1BQU1DLDRCQUE0QixHQUFHLGtEQUN4QyxTQUR3QyxFQUV4QyxTQUZ3QyxFQUd4Q25CLDRCQUh3QyxFQUl4QztBQUNJUyxFQUFBQSxXQUFXLEVBQUUsK0RBRGpCO0FBRUlXLEVBQUFBLFFBQVEsRUFBRztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBZGtCLENBY2hCQyxJQWRnQjtBQUZkLENBSndDLENBQXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tbWFuZERlZmluaXRpb24sIG9wdGlvbnNEZWZpbml0aW9uIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvT3B0aW9ucy9Db21tYW5kQmFzZWRPcHRpb25zUGFyc2VyXCI7XG5pbXBvcnQgeyBDb21tb25PcHRpb25zIH0gZnJvbSBcIi4uL0NvbW1vbk9wdGlvbnMvQ29tbW9uT3B0aW9uc1wiO1xuaW1wb3J0IHsgZGV2TW9kZU9wdGlvbiwgbG9nVmVyYm9zaXR5T3B0aW9uIH0gZnJvbSBcIi4uL0NvbW1vbk9wdGlvbnMvQ29tbW9uT3B0aW9uRGVmaW50aW9uc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwZ3JhZGVGb3JtT3B0aW9ucyBleHRlbmRzIENvbW1vbk9wdGlvbnMge1xuICAgIGZvcm1HbG9iczogc3RyaW5nW107XG4gICAgdXNlQ2lCdWlsZDogYm9vbGVhbjtcbiAgICBlbmdpbmU6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBwcmVpZDogdW5kZWZpbmVkIHwgc3RyaW5nO1xuICAgIHNraXBQcmVWZXJzaW9uczogYm9vbGVhbjtcbn1cblxuY29uc3QgbG9jYWxTZXJ2ZXJPcHRpb25zRGVmaW5pdGlvbiA9IG9wdGlvbnNEZWZpbml0aW9uKFxuICAgIHtcbiAgICAgICAgYWxpYXM6IFwiZ1wiLFxuICAgICAgICBuYW1lOiBcImdmdnNcIixcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGZvcm1HbG9iczogW10gfSxcbiAgICAgICAgcGFyc2U6IChpbnB1dDogc3RyaW5nW10pID0+ICh7IGZvcm1HbG9iczogaW5wdXQgfSksXG4gICAgICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCLQntC00L3QsCDQuNC70Lgg0L3QtdGB0LrQvtC70YzQutC+IEdGViDQuNC70LggR0ZWLdC80LDRgdC+0Log0LTQu9GPINC+0LHQvdC+0LLQu9C10L3QuNGPLlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcInVzZS1jaS1idWlsZFwiLFxuICAgICAgICBkb2VzTm90UmVxdWlyZVZhbHVlOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHsgdXNlQ2lCdWlsZDogZmFsc2UgfSxcbiAgICAgICAgcGFyc2U6ICh4OiBib29sZWFuKSA9PiAoeyB1c2VDaUJ1aWxkOiB4IH0pLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCLQn9GA0LjQs9C+0YLQvtCy0LjRgtGMINGE0L7RgNC80YMg0Log0YHQsdC+0YDQutC1INC90LAgQ0ksINCx0LXQtyDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQu9C+0LrQsNC70YzQvdC+0Lkg0L/QtdGA0LXRgdCx0L7RgNC60LguXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIG5hbWU6IFwic2tpcC1wcmUtdmVyc2lvbnNcIixcbiAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHNraXBQcmVWZXJzaW9uczogZmFsc2UgfSxcbiAgICAgICAgcGFyc2U6ICh4OiBib29sZWFuKSA9PiAoeyBza2lwUHJlVmVyc2lvbnM6IHggfSksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcItCf0YDQuCDQvtCx0L3QvtCy0LvQtdC90LjQuCDQstC10YDRgdC40Lkg0YTQvtGA0Lwg0L3QtSDQvtCx0L3QvtCy0LvRj9GC0Ywg0YTQvtGA0LzRiyDRgSDQvdC10YHRgtCw0LHQuNC70YzQvdGL0LzQuCDQstC10YDRgdC40Y/QvNC4LlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcImVuZ2luZVwiLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHsgZW5naW5lOiB1bmRlZmluZWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkIH0sXG4gICAgICAgIHBhcnNlOiAoeDogc3RyaW5nKSA9PiAoeyBlbmdpbmU6IHggfSksXG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCLQntCx0L3QvtCy0LvRj9C10YIg0LTQstC40LbQvtC6INC00L4g0LfQsNC00LDQvdC90L7QuSDQstC10YDRgdC40LguINCc0L7QttC90L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC60L7QutGA0LXRgtC90YPRjiDQstC10YDRgdC40Y4g0LTQstC40LbQutCwICjQvdCw0L/RgNC40LzQtdGALCAwLjQuODIpINC40LvQuCBsYXRlc3QsINC00LvRjyDQvtCx0L3QvtCy0LvQtdC90LjRjyDQtNC+INC/0L7RgdC70LXQtNC90LXQuSDRgdGC0LDQsdC40LvRjNC90L7QuSDQstC10YDRgdC40LguXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIG5hbWU6IFwicHJlaWRcIixcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHByZWlkOiB1bmRlZmluZWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkIH0sXG4gICAgICAgIHBhcnNlOiAoeDogc3RyaW5nKSA9PiAoeyBwcmVpZDogeCB9KSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwi0J7QsdC90L7QstC70Y/QtdGCINC00LLQuNC20L7QuiDQtNC+INC/0L7RgdC70LXQtNC90LXQuSDQv9GA0LXRgNC10LvQuNC30L3QvtC5INCy0LXRgNGB0LjQuCDRg9C60LDQt9Cw0L3QvdC+0Lkg0LIgcHJlaWQuXCIsXG4gICAgfSxcbiAgICBkZXZNb2RlT3B0aW9uLFxuICAgIGxvZ1ZlcmJvc2l0eU9wdGlvblxuKTtcblxuZXhwb3J0IGNvbnN0IHVwZ3JhZGVGb3JtQ29tbWFuZERlZmluaXRpb24gPSBjb21tYW5kRGVmaW5pdGlvbjxcInVwZ3JhZGVcIiwgVXBncmFkZUZvcm1PcHRpb25zPihcbiAgICBcInVwZ3JhZGVcIixcbiAgICBcInVwZ3JhZGVcIixcbiAgICBsb2NhbFNlcnZlck9wdGlvbnNEZWZpbml0aW9uLFxuICAgIHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwi0J7QsdC90L7QstC70LXQvdC40LUg0YTQvtGA0LzQsNGC0LAg0YTQvtGA0Lwg0LjQu9C4INGA0LXQttC40LzQsCDQvtC00L3QvtC5INC40LvQuCDQvdC10YHQutC+0LvRjNC60LjRhSDRhNC+0YDQvC5cIixcbiAgICAgICAgZXhhbXBsZXM6IGBcbiMjIyDQn9C10YDQtdCy0L7QtCDRhNC+0YDQvNGLINC90LAg0YHQsdC+0YDQutGDINCyIENJXG5cbtCS0YvQv9C+0LvQvdC40YLRjDpcblxcYFxcYFxcYFxuY2FuZHkgdXBncmFkZSAtLXVzZS1jaS1idWlsZCA5OTAwMTAxXG5cXGBcXGBcXGBcbtCt0YLQsCDQutC+0LzQsNC90LTQsCDRg9C00LDQu9C40YIg0Lgg0LfQsNC40LPQvdC+0YDQuNGCINCz0LXQvdC10YDQuNGA0YPQtdC80YvQtSDRhNCw0LnQu9GLINCyINC60LDRgtCw0LvQvtCz0LUgZmFybSDQuCDQv9C+0LzQtdC90LjRgiDRhNC+0YDQvNGDINC60LDQuiDRgdC+0LHQuNGA0LDQtdC80YPRjiDQvdCwIENJLlxu0J/QvtGB0LvQtSDRjdGC0L7Qs9C+INC90LUg0YLRgNC10LHRg9C10YLRgdGPINC00LDQu9GC0Ywg0LrQvtC80LjRgtGLINCyINGA0LXQv9C+0LfQuNGC0L7RgNC40LkgcmVzb3VyY2VzLlxuXG7QntCx0L3QvtCy0LvRj9GC0Ywg0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCDRhNC+0YDQvNGLINC90LDQtNC+INC60L7QvNCw0L3QtNC+0Lk6XG5cXGBcXGBcXGBcbmNhbmR5IHVwZ3JhZGUgLS1lbmdpbmUgbGF0ZXN0IDk5MDAxMDFcblxcYFxcYFxcYFxuYC50cmltKCksXG4gICAgfVxuKTtcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsInJlcXVpcmUiLCJfQ29tbW9uT3B0aW9uRGVmaW50aW9ucyIsImxvY2FsU2VydmVyT3B0aW9uc0RlZmluaXRpb24iLCJvcHRpb25zRGVmaW5pdGlvbiIsImFsaWFzIiwibmFtZSIsImRlZmF1bHRWYWx1ZSIsImZvcm1HbG9icyIsInBhcnNlIiwiaW5wdXQiLCJkZWZhdWx0T3B0aW9uIiwibXVsdGlwbGUiLCJkZXNjcmlwdGlvbiIsImRvZXNOb3RSZXF1aXJlVmFsdWUiLCJ1c2VDaUJ1aWxkIiwieCIsInNraXBQcmVWZXJzaW9ucyIsImVuZ2luZSIsInVuZGVmaW5lZCIsInByZWlkIiwiZGV2TW9kZU9wdGlvbiIsImxvZ1ZlcmJvc2l0eU9wdGlvbiIsInVwZ3JhZGVGb3JtQ29tbWFuZERlZmluaXRpb24iLCJjb21tYW5kRGVmaW5pdGlvbiIsImV4YW1wbGVzIiwidHJpbSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vVXBncmFkZUZvcm1PcHRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbW1hbmREZWZpbml0aW9uLCBvcHRpb25zRGVmaW5pdGlvbiB9IGZyb20gXCIuLi8uLi9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlclwiO1xuaW1wb3J0IHsgQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbnNcIjtcbmltcG9ydCB7IGRldk1vZGVPcHRpb24sIGxvZ1ZlcmJvc2l0eU9wdGlvbiB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbkRlZmludGlvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVcGdyYWRlRm9ybU9wdGlvbnMgZXh0ZW5kcyBDb21tb25PcHRpb25zIHtcbiAgICBmb3JtR2xvYnM6IHN0cmluZ1tdO1xuICAgIHVzZUNpQnVpbGQ6IGJvb2xlYW47XG4gICAgZW5naW5lOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgcHJlaWQ6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBza2lwUHJlVmVyc2lvbnM6IGJvb2xlYW47XG59XG5cbmNvbnN0IGxvY2FsU2VydmVyT3B0aW9uc0RlZmluaXRpb24gPSBvcHRpb25zRGVmaW5pdGlvbihcbiAgICB7XG4gICAgICAgIGFsaWFzOiBcImdcIixcbiAgICAgICAgbmFtZTogXCJnZnZzXCIsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogeyBmb3JtR2xvYnM6IFtdIH0sXG4gICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZ1tdKSA9PiAoeyBmb3JtR2xvYnM6IGlucHV0IH0pLFxuICAgICAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwi0J7QtNC90LAg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQviBHRlYg0LjQu9C4IEdGVi3QvNCw0YHQvtC6INC00LvRjyDQvtCx0L3QvtCy0LvQtdC90LjRjy5cIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogXCJ1c2UtY2ktYnVpbGRcIixcbiAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVzZUNpQnVpbGQ6IGZhbHNlIH0sXG4gICAgICAgIHBhcnNlOiAoeDogYm9vbGVhbikgPT4gKHsgdXNlQ2lCdWlsZDogeCB9KSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwi0J/RgNC40LPQvtGC0L7QstC40YLRjCDRhNC+0YDQvNGDINC6INGB0LHQvtGA0LrQtSDQvdCwIENJLCDQsdC10Lcg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Lgg0LvQvtC60LDQu9GM0L3QvtC5INC/0LXRgNC10YHQsdC+0YDQutC4LlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcInNraXAtcHJlLXZlcnNpb25zXCIsXG4gICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogeyBza2lwUHJlVmVyc2lvbnM6IGZhbHNlIH0sXG4gICAgICAgIHBhcnNlOiAoeDogYm9vbGVhbikgPT4gKHsgc2tpcFByZVZlcnNpb25zOiB4IH0pLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCLQn9GA0Lgg0L7QsdC90L7QstC70LXQvdC40Lgg0LLQtdGA0YHQuNC5INGE0L7RgNC8INC90LUg0L7QsdC90L7QstC70Y/RgtGMINGE0L7RgNC80Ysg0YEg0L3QtdGB0YLQsNCx0LjQu9GM0L3Ri9C80Lgg0LLQtdGA0YHQuNGP0LzQuC5cIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogXCJlbmdpbmVcIixcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGVuZ2luZTogdW5kZWZpbmVkIGFzIHN0cmluZyB8IHVuZGVmaW5lZCB9LFxuICAgICAgICBwYXJzZTogKHg6IHN0cmluZykgPT4gKHsgZW5naW5lOiB4IH0pLFxuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIFwi0J7QsdC90L7QstC70Y/QtdGCINC00LLQuNC20L7QuiDQtNC+INC30LDQtNCw0L3QvdC+0Lkg0LLQtdGA0YHQuNC4LiDQnNC+0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutC+0LrRgNC10YLQvdGD0Y4g0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCAo0L3QsNC/0YDQuNC80LXRgCwgMC40LjgyKSDQuNC70LggbGF0ZXN0LCDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviDQv9C+0YHQu9C10LTQvdC10Lkg0YHRgtCw0LHQuNC70YzQvdC+0Lkg0LLQtdGA0YHQuNC4LlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcInByZWlkXCIsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogeyBwcmVpZDogdW5kZWZpbmVkIGFzIHN0cmluZyB8IHVuZGVmaW5lZCB9LFxuICAgICAgICBwYXJzZTogKHg6IHN0cmluZykgPT4gKHsgcHJlaWQ6IHggfSksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcItCe0LHQvdC+0LLQu9GP0LXRgiDQtNCy0LjQttC+0Log0LTQviDQv9C+0YHQu9C10LTQvdC10Lkg0L/RgNC10YDQtdC70LjQt9C90L7QuSDQstC10YDRgdC40Lgg0YPQutCw0LfQsNC90L3QvtC5INCyIHByZWlkLlwiLFxuICAgIH0sXG4gICAgZGV2TW9kZU9wdGlvbixcbiAgICBsb2dWZXJib3NpdHlPcHRpb25cbik7XG5cbmV4cG9ydCBjb25zdCB1cGdyYWRlRm9ybUNvbW1hbmREZWZpbml0aW9uID0gY29tbWFuZERlZmluaXRpb248XCJ1cGdyYWRlXCIsIFVwZ3JhZGVGb3JtT3B0aW9ucz4oXG4gICAgXCJ1cGdyYWRlXCIsXG4gICAgXCJ1cGdyYWRlXCIsXG4gICAgbG9jYWxTZXJ2ZXJPcHRpb25zRGVmaW5pdGlvbixcbiAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcItCe0LHQvdC+0LLQu9C10L3QuNC1INGE0L7RgNC80LDRgtCwINGE0L7RgNC8INC40LvQuCDRgNC10LbQuNC80LAg0L7QtNC90L7QuSDQuNC70Lgg0L3QtdGB0LrQvtC70YzQutC40YUg0YTQvtGA0LwuXCIsXG4gICAgICAgIGV4YW1wbGVzOiBgXG4jIyMg0J/QtdGA0LXQstC+0LQg0YTQvtGA0LzRiyDQvdCwINGB0LHQvtGA0LrRgyDQsiBDSVxuXG7QktGL0L/QvtC70L3QuNGC0Yw6XG5cXGBcXGBcXGBcbmNhbmR5IHVwZ3JhZGUgLS11c2UtY2ktYnVpbGQgOTkwMDEwMVxuXFxgXFxgXFxgXG7QrdGC0LAg0LrQvtC80LDQvdC00LAg0YPQtNCw0LvQuNGCINC4INC30LDQuNCz0L3QvtGA0LjRgiDQs9C10L3QtdGA0LjRgNGD0LXQvNGL0LUg0YTQsNC50LvRiyDQsiDQutCw0YLQsNC70L7Qs9C1IGZhcm0g0Lgg0L/QvtC80LXQvdC40YIg0YTQvtGA0LzRgyDQutCw0Log0YHQvtCx0LjRgNCw0LXQvNGD0Y4g0L3QsCBDSS5cbtCf0L7RgdC70LUg0Y3RgtC+0LPQviDQvdC1INGC0YDQtdCx0YPQtdGC0YHRjyDQtNCw0LvRgtGMINC60L7QvNC40YLRiyDQsiDRgNC10L/QvtC30LjRgtC+0YDQuNC5IHJlc291cmNlcy5cblxu0J7QsdC90L7QstC70Y/RgtGMINCy0LXRgNGB0LjRjiDQtNCy0LjQttC60LAg0YTQvtGA0LzRiyDQvdCw0LTQviDQutC+0LzQsNC90LTQvtC5OlxuXFxgXFxgXFxgXG5jYW5keSB1cGdyYWRlIC0tZW5naW5lIGxhdGVzdCA5OTAwMTAxXG5cXGBcXGBcXGBcbmAudHJpbSgpLFxuICAgIH1cbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLDBCQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyx1QkFBQSxHQUFBRCxPQUFBO0FBVUEsTUFBTUUsNEJBQTRCLEdBQUcsSUFBQUMsNENBQWlCLEVBQ2xEO0VBQ0lDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxNQUFNO0VBQ1pDLFlBQVksRUFBRTtJQUFFQyxTQUFTLEVBQUU7RUFBRyxDQUFDO0VBQy9CQyxLQUFLLEVBQUdDLEtBQWUsS0FBTTtJQUFFRixTQUFTLEVBQUVFO0VBQU0sQ0FBQyxDQUFDO0VBQ2xEQyxhQUFhLEVBQUUsSUFBSTtFQUNuQkMsUUFBUSxFQUFFLElBQUk7RUFDZEMsV0FBVyxFQUFFO0FBQ2pCLENBQUMsRUFDRDtFQUNJUCxJQUFJLEVBQUUsY0FBYztFQUNwQlEsbUJBQW1CLEVBQUUsSUFBSTtFQUN6QlAsWUFBWSxFQUFFO0lBQUVRLFVBQVUsRUFBRTtFQUFNLENBQUM7RUFDbkNOLEtBQUssRUFBR08sQ0FBVSxLQUFNO0lBQUVELFVBQVUsRUFBRUM7RUFBRSxDQUFDLENBQUM7RUFDMUNILFdBQVcsRUFBRTtBQUNqQixDQUFDLEVBQ0Q7RUFDSVAsSUFBSSxFQUFFLG1CQUFtQjtFQUN6QlEsbUJBQW1CLEVBQUUsSUFBSTtFQUN6QlAsWUFBWSxFQUFFO0lBQUVVLGVBQWUsRUFBRTtFQUFNLENBQUM7RUFDeENSLEtBQUssRUFBR08sQ0FBVSxLQUFNO0lBQUVDLGVBQWUsRUFBRUQ7RUFBRSxDQUFDLENBQUM7RUFDL0NILFdBQVcsRUFBRTtBQUNqQixDQUFDLEVBQ0Q7RUFDSVAsSUFBSSxFQUFFLFFBQVE7RUFDZEMsWUFBWSxFQUFFO0lBQUVXLE1BQU0sRUFBRUM7RUFBZ0MsQ0FBQztFQUN6RFYsS0FBSyxFQUFHTyxDQUFTLEtBQU07SUFBRUUsTUFBTSxFQUFFRjtFQUFFLENBQUMsQ0FBQztFQUNyQ0gsV0FBVyxFQUNQO0FBQ1IsQ0FBQyxFQUNEO0VBQ0lQLElBQUksRUFBRSxPQUFPO0VBQ2JDLFlBQVksRUFBRTtJQUFFYSxLQUFLLEVBQUVEO0VBQWdDLENBQUM7RUFDeERWLEtBQUssRUFBR08sQ0FBUyxLQUFNO0lBQUVJLEtBQUssRUFBRUo7RUFBRSxDQUFDLENBQUM7RUFDcENILFdBQVcsRUFBRTtBQUNqQixDQUFDLEVBQ0RRLHFDQUFhLEVBQ2JDLDBDQUNKLENBQUM7QUFFTSxNQUFNQyw0QkFBNEIsR0FBRyxJQUFBQyw0Q0FBaUIsRUFDekQsU0FBUyxFQUNULFNBQVMsRUFDVHJCLDRCQUE0QixFQUM1QjtFQUNJVSxXQUFXLEVBQUUsK0RBQStEO0VBQzVFWSxRQUFRLEVBQUc7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLENBQUNDLElBQUksQ0FBQztBQUNILENBQ0osQ0FBQztBQUFDQyxPQUFBLENBQUFKLDRCQUFBLEdBQUFBLDRCQUFBIn0=
@@ -1,100 +1,66 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/features/array/flat");
6
-
7
5
  require("core-js/proposals/iterator-helpers");
8
-
9
6
  require("core-js/stable");
10
-
11
7
  var _path = _interopRequireDefault(require("path"));
12
-
13
8
  var _fsExtra = require("fs-extra");
14
-
15
9
  require("reflect-metadata");
16
-
17
10
  require("regenerator-runtime/runtime");
18
-
19
11
  var _shelljs = require("shelljs");
20
-
21
12
  var _RunBuildForms = require("./CLICommands/BuildForms/RunBuildForms");
22
-
23
13
  var _RunBuildServer = require("./CLICommands/BuildServer/RunBuildServer");
24
-
25
14
  var _RunDevBuild = require("./CLICommands/DevBuild/RunDevBuild");
26
-
27
15
  var _RunFormStats = require("./CLICommands/FormStats/RunFormStats");
28
-
29
16
  var _RunInitForm = require("./CLICommands/InitForm/RunInitForm");
30
-
31
17
  var _RunLocalization = require("./CLICommands/Localization/RunLocalization");
32
-
33
18
  var _RunUpgradeForm = require("./CLICommands/UpgradeForm/RunUpgradeForm");
34
-
35
19
  var _ConsoleApplication = require("./Commons/ConsoleApplication/ConsoleApplication");
36
-
37
20
  var _StaticLogger = require("./Commons/Logging/StaticLogger");
38
-
39
21
  var _CandyToolOptions = require("./Options/CandyToolOptions");
40
-
41
22
  var _ReadFarmConfig = require("./ReadFarmConfig");
42
-
43
23
  var _SelfUpdate = require("./SelfUpdate");
44
-
24
+ var _RunRenameFiles = require("./CLICommands/RenameFiles/RunRenameFiles");
45
25
  _shelljs.config.fatal = true;
46
-
47
26
  function remoteInspectFlagToDisableDebuggerInChildProcess() {
48
27
  const debugArgIdx = process.execArgv.indexOf("--inspect-brk");
49
-
50
28
  if (debugArgIdx !== -1) {
51
29
  process.execArgv.splice(debugArgIdx, 1);
52
30
  }
53
-
54
31
  const debugArg2Idx = process.execArgv.indexOf("--inspect");
55
-
56
32
  if (debugArg2Idx !== -1) {
57
33
  process.execArgv.splice(debugArg2Idx, 1);
58
34
  }
59
35
  }
60
-
61
36
  async function removeTemporaryWebpackConfigFiles(farmDirectory, logger) {
62
37
  const files = await (0, _fsExtra.readdir)(farmDirectory);
63
38
  const oldTempFileNames = files.filter(x => x.endsWith(".candy-tmp.webpack.config.js"));
64
-
65
39
  if (oldTempFileNames.length > 0) {
66
40
  logger.log("Removing old webpack.config.js files");
67
-
68
41
  for (const fileName of oldTempFileNames) {
69
42
  await (0, _fsExtra.unlink)(_path.default.join(farmDirectory, fileName));
70
43
  }
71
-
72
44
  logger.log("Removed old webpack.config.js files");
73
45
  }
74
46
  }
75
-
76
47
  function validateFarmConfig(farmDirectory) {
77
48
  const farmConfig = (0, _ReadFarmConfig.readFarmConfig)(farmDirectory);
78
-
79
49
  if (farmConfig.engineDirectory == undefined) {
80
50
  throw new Error("EngineDirectory is not specified");
81
51
  }
82
-
83
52
  if (farmConfig.resourcesDirectory == undefined) {
84
53
  throw new Error("ResourcesDirectory is not specified");
85
54
  }
86
-
87
55
  const candyModulesDirectory = _path.default.resolve(farmDirectory, "..", ".candy_modules");
88
-
89
- return { ...farmConfig,
56
+ return {
57
+ ...farmConfig,
90
58
  farmDirectory: farmDirectory,
91
59
  candyModulesDirectory: candyModulesDirectory
92
60
  };
93
61
  }
94
-
95
62
  const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, currentDir, context) => {
96
63
  const result = [];
97
-
98
64
  for (const pth of allFarmDirectories) {
99
65
  if (await (0, _fsExtra.pathExists)(_path.default.join(pth, "config.js"))) {
100
66
  await removeTemporaryWebpackConfigFiles(pth, context.logger);
@@ -104,19 +70,15 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
104
70
  // из за чего, внутри раннера напилен хитрый механизм поиска путей формы. Перепиливать все механики
105
71
  // совсем не хочется, поэтому для нас, считаю поднятие до уровня engine вполне приемлемым решением
106
72
  const pathToFarm = _path.default.join(currentDir, "..", "..", "..", pth);
107
-
108
73
  if (!(await (0, _fsExtra.pathExists)(pathToFarm))) {
109
74
  throw Error(`allFarmDirectories path = ${pathToFarm} not exist`);
110
75
  }
111
-
112
76
  await removeTemporaryWebpackConfigFiles(pathToFarm, context.logger);
113
77
  result.push(validateFarmConfig(pathToFarm));
114
78
  }
115
79
  }
116
-
117
80
  return result;
118
81
  };
119
-
120
82
  (0, _ConsoleApplication.runConsoleApplication)(async (argv, context) => {
121
83
  remoteInspectFlagToDisableDebuggerInChildProcess();
122
84
  context.logger.log("@kontur.candy/tools: " + (await (0, _SelfUpdate.getCurrentVersion)()));
@@ -127,62 +89,51 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
127
89
  const farmDirectory = process.cwd();
128
90
  await removeTemporaryWebpackConfigFiles(farmDirectory, context.logger);
129
91
  const farmConfig = (0, _ReadFarmConfig.readFarmConfig)(farmDirectory);
130
-
131
92
  if (farmConfig.engineDirectory == undefined) {
132
93
  throw new Error("EngineDirectory is not specified");
133
94
  }
134
-
135
95
  if (farmConfig.resourcesDirectory == undefined) {
136
96
  throw new Error("ResourcesDirectory is not specified");
137
97
  }
138
-
139
98
  const engineDirectory = _path.default.resolve(farmConfig.engineDirectory);
140
-
141
99
  const resourcesDirectory = _path.default.resolve(farmConfig.resourcesDirectory);
142
-
143
100
  const candyModulesDirectory = _path.default.resolve(farmDirectory, "..", ".candy_modules");
144
-
145
101
  if (parsedArgs.type === "build-server" || parsedArgs.type === "dev-build-server") {
146
102
  const allFarmDirectories = parsedArgs.options.allFarmsDir;
147
103
  context.logger.warning(`allFarmDirectories = ${parsedArgs.options.allFarmsDir}`);
148
104
  let allFarmConfig;
149
-
150
105
  if (Array.isArray(allFarmDirectories) && allFarmDirectories.length > 0) {
151
106
  allFarmConfig = await validateAndPrepareFarmDirectoriesPath(allFarmDirectories, farmDirectory, context);
152
107
  } else {
153
108
  context.logger.warning(`Use default candyFarm path dir = ${farmDirectory}`);
154
109
  allFarmConfig = await validateAndPrepareFarmDirectoriesPath([farmDirectory], farmDirectory, context);
155
110
  }
156
-
157
111
  if (parsedArgs.type === "dev-build-server") {
158
112
  await (0, _RunBuildServer.runDevBuildServer)(context, parsedArgs.options, allFarmConfig);
159
113
  } else {
160
114
  await (0, _RunBuildServer.runBuildServer)(context, parsedArgs.options, allFarmConfig);
161
115
  }
162
116
  }
163
-
164
117
  if (parsedArgs.type === "build") {
165
118
  await (0, _RunBuildForms.runBuildForms)(context, parsedArgs.options, farmDirectory, resourcesDirectory, engineDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
166
119
  }
167
-
168
120
  if (parsedArgs.type === "dev-build") {
169
121
  await (0, _RunDevBuild.runDevBuild)(context, parsedArgs.options, engineDirectory, resourcesDirectory, farmDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
170
122
  }
171
-
172
123
  if (parsedArgs.type === "form-stats") {
173
124
  await (0, _RunFormStats.runFormStats)(context, parsedArgs.options, farmDirectory);
174
125
  }
175
-
176
126
  if (parsedArgs.type === "upgrade") {
177
127
  await (0, _RunUpgradeForm.runUpgradeForm)(context, parsedArgs.options, resourcesDirectory, farmDirectory);
178
128
  }
179
-
129
+ if (parsedArgs.type === "rename") {
130
+ await (0, _RunRenameFiles.runRenameFiles)(context, parsedArgs.options, resourcesDirectory, farmDirectory);
131
+ }
180
132
  if (parsedArgs.type === "localize") {
181
133
  await (0, _RunLocalization.runLocalization)(context, parsedArgs.options, farmDirectory, engineDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
182
134
  }
183
-
184
135
  if (parsedArgs.type === "init-form") {
185
136
  await (0, _RunInitForm.runInitForm)(context, parsedArgs.options, farmDirectory);
186
137
  }
187
138
  });
188
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJuYW1lcyI6WyJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsIm9sZFRlbXBGaWxlTmFtZXMiLCJmaWx0ZXIiLCJ4IiwiZW5kc1dpdGgiLCJsZW5ndGgiLCJsb2ciLCJmaWxlTmFtZSIsInBhdGgiLCJqb2luIiwidmFsaWRhdGVGYXJtQ29uZmlnIiwiZmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInB1c2giLCJwYXRoVG9GYXJtIiwiYXJndiIsInBhcnNlZEFyZ3MiLCJzZXRDb25zb2xlTG9nZ2luZ1ZlcmJvc2l0eSIsIm9wdGlvbnMiLCJsb2dWZXJib3NpdHkiLCJ2ZXJib3NlIiwiY3dkIiwidHlwZSIsImFsbEZhcm1zRGlyIiwid2FybmluZyIsImFsbEZhcm1Db25maWciLCJBcnJheSIsImlzQXJyYXkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FB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QUFvQixXQUF4QixFQUFxQztBQUNqQyxVQUFNLDhCQUFZWixPQUFaLEVBQXFCTSxVQUFVLENBQUNFLE9BQWhDLEVBQXlDL0IsYUFBekMsQ0FBTjtBQUNIO0FBQ0osQ0F0RkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJjb3JlLWpzL2ZlYXR1cmVzL2FycmF5L2ZsYXRcIjtcbmltcG9ydCBcImNvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnNcIjtcbmltcG9ydCBcImNvcmUtanMvc3RhYmxlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkZGlyLCB1bmxpbmsgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCBcInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgcnVuQnVpbGRGb3JtcyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtc1wiO1xuaW1wb3J0IHsgcnVuQnVpbGRTZXJ2ZXIsIHJ1bkRldkJ1aWxkU2VydmVyIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUnVuQnVpbGRTZXJ2ZXJcIjtcbmltcG9ydCB7IHJ1bkRldkJ1aWxkIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRGV2QnVpbGQvUnVuRGV2QnVpbGRcIjtcbmltcG9ydCB7IHJ1bkZvcm1TdGF0cyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0Zvcm1TdGF0cy9SdW5Gb3JtU3RhdHNcIjtcbmltcG9ydCB7IHJ1bkluaXRGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvSW5pdEZvcm0vUnVuSW5pdEZvcm1cIjtcbmltcG9ydCB7IHJ1bkxvY2FsaXphdGlvbiB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0xvY2FsaXphdGlvbi9SdW5Mb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IHJ1blVwZ3JhZGVGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vUnVuVXBncmFkZUZvcm1cIjtcbmltcG9ydCB7IHJ1bkNvbnNvbGVBcHBsaWNhdGlvbiB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvblwiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBzZXRMb2dnZXIgfSBmcm9tIFwiLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbnMgfSBmcm9tIFwiLi9PcHRpb25zL0NhbmR5VG9vbE9wdGlvbnNcIjtcbmltcG9ydCB7IHJlYWRGYXJtQ29uZmlnIH0gZnJvbSBcIi4vUmVhZEZhcm1Db25maWdcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSBcIi4vU2VsZlVwZGF0ZVwiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcblxuY29uZmlnLmZhdGFsID0gdHJ1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBGYXJtQ29uZmlnIHtcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgZW5naW5lRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlc291cmNlc0RpcmVjdG9yeT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWJ1Z0FyZ0lkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdC1icmtcIik7XG4gICAgaWYgKGRlYnVnQXJnSWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZ0lkeCwgMSk7XG4gICAgfVxuICAgIGNvbnN0IGRlYnVnQXJnMklkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdFwiKTtcbiAgICBpZiAoZGVidWdBcmcySWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZzJJZHgsIDEpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IG9sZFRlbXBGaWxlTmFtZXMgPSBmaWxlcy5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKFwiLmNhbmR5LXRtcC53ZWJwYWNrLmNvbmZpZy5qc1wiKSk7XG4gICAgaWYgKG9sZFRlbXBGaWxlTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3Zpbmcgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIG9sZFRlbXBGaWxlTmFtZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHVubGluayhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZhcm1Db25maWcoZmFybURpcmVjdG9yeTogc3RyaW5nKTogRmFybUNvbmZpZyB7XG4gICAgY29uc3QgZmFybUNvbmZpZyA9IHJlYWRGYXJtQ29uZmlnKGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgaWYgKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmdpbmVEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG4gICAgaWYgKGZhcm1Db25maWcucmVzb3VyY2VzRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXNvdXJjZXNEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybURpcmVjdG9yeSwgXCIuLlwiLCBcIi5jYW5keV9tb2R1bGVzXCIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZhcm1Db25maWcsXG4gICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgIH07XG59XG5cbmNvbnN0IHZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGggPSBhc3luYyAoXG4gICAgYWxsRmFybURpcmVjdG9yaWVzOiBzdHJpbmdbXSxcbiAgICBjdXJyZW50RGlyOiBzdHJpbmcsXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFxuKTogUHJvbWlzZTxGYXJtQ29uZmlnW10+ID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IEZhcm1Db25maWdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcHRoIG9mIGFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocHRoLCBcImNvbmZpZy5qc1wiKSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwdGgsIGNvbnRleHQubG9nZ2VyKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbGlkYXRlRmFybUNvbmZpZyhwdGgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vINCS0YHQtSDQtNC10LvQviDQsiDRgtC+0LwsINGH0YLQviDRgdCy0Y/Qt9C60LAgc2VydmljZS1ydW5uZXItMiArIHRvb2xzINC60L7RgNGA0LXQutGC0L3QviDRgNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQsiDQv9Cw0L/QutC1INGBINGE0L7RgNC80L7QuVxuICAgICAgICAgICAgLy8g0LjQtyDQt9CwINGH0LXQs9C+LCDQstC90YPRgtGA0Lgg0YDQsNC90L3QtdGA0LAg0L3QsNC/0LjQu9C10L0g0YXQuNGC0YDRi9C5INC80LXRhdCw0L3QuNC30Lwg0L/QvtC40YHQutCwINC/0YPRgtC10Lkg0YTQvtGA0LzRiy4g0J/QtdGA0LXQv9C40LvQuNCy0LDRgtGMINCy0YHQtSDQvNC10YXQsNC90LjQutC4XG4gICAgICAgICAgICAvLyDRgdC+0LLRgdC10Lwg0L3QtSDRhdC+0YfQtdGC0YHRjywg0L/QvtGN0YLQvtC80YMg0LTQu9GPINC90LDRgSwg0YHRh9C40YLQsNGOINC/0L7QtNC90Y/RgtC40LUg0LTQviDRg9GA0L7QstC90Y8gZW5naW5lINCy0L/QvtC70L3QtSDQv9GA0LjQtdC80LvQtdC80YvQvCDRgNC10YjQtdC90LjQtdC8XG4gICAgICAgICAgICBjb25zdCBwYXRoVG9GYXJtID0gcGF0aC5qb2luKGN1cnJlbnREaXIsIFwiLi5cIiwgXCIuLlwiLCBcIi4uXCIsIHB0aCk7XG4gICAgICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHBhdGhUb0Zhcm0pKSkge1xuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBhbGxGYXJtRGlyZWN0b3JpZXMgcGF0aCA9ICR7cGF0aFRvRmFybX0gbm90IGV4aXN0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMocGF0aFRvRmFybSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHBhdGhUb0Zhcm0pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxucnVuQ29uc29sZUFwcGxpY2F0aW9uKGFzeW5jIChhcmd2LCBjb250ZXh0KSA9PiB7XG4gICAgcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwibG9jYWxpemVcIikge1xuICAgICAgICBhd2FpdCBydW5Mb2NhbGl6YXRpb24oXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgZmFybURpcmVjdG9yeSk7XG4gICAgfVxufSk7XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2ZzRXh0cmEiLCJfc2hlbGxqcyIsIl9SdW5CdWlsZEZvcm1zIiwiX1J1bkJ1aWxkU2VydmVyIiwiX1J1bkRldkJ1aWxkIiwiX1J1bkZvcm1TdGF0cyIsIl9SdW5Jbml0Rm9ybSIsIl9SdW5Mb2NhbGl6YXRpb24iLCJfUnVuVXBncmFkZUZvcm0iLCJfQ29uc29sZUFwcGxpY2F0aW9uIiwiX1N0YXRpY0xvZ2dlciIsIl9DYW5keVRvb2xPcHRpb25zIiwiX1JlYWRGYXJtQ29uZmlnIiwiX1NlbGZVcGRhdGUiLCJfUnVuUmVuYW1lRmlsZXMiLCJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsInJlYWRkaXIiLCJvbGRUZW1wRmlsZU5hbWVzIiwiZmlsdGVyIiwieCIsImVuZHNXaXRoIiwibGVuZ3RoIiwibG9nIiwiZmlsZU5hbWUiLCJ1bmxpbmsiLCJwYXRoIiwiam9pbiIsInZhbGlkYXRlRmFybUNvbmZpZyIsImZhcm1Db25maWciLCJyZWFkRmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInBhdGhFeGlzdHMiLCJwdXNoIiwicGF0aFRvRmFybSIsInJ1bkNvbnNvbGVBcHBsaWNhdGlvbiIsImFyZ3YiLCJnZXRDdXJyZW50VmVyc2lvbiIsInBhcnNlZEFyZ3MiLCJwYXJzZU9wdGlvbnMiLCJzZXRDb25zb2xlTG9nZ2luZ1ZlcmJvc2l0eSIsIm9wdGlvbnMiLCJsb2dWZXJib3NpdHkiLCJzZXRMb2dnZXIiLCJ2ZXJib3NlIiwiY3dkIiwidHlwZSIsImFsbEZhcm1zRGlyIiwid2FybmluZyIsImFsbEZhcm1Db25maWciLCJBcnJheSIsImlzQXJyYXkiLCJydW5EZXZCdWlsZFNlcnZlciIsInJ1bkJ1aWxkU2VydmVyIiwicnVuQnVpbGRGb3JtcyIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJydW5EZXZCdWlsZCIsInJ1bkZvcm1TdGF0cyIsInJ1blVwZ3JhZGVGb3JtIiwicnVuUmVuYW1lRmlsZXMiLCJydW5Mb2NhbGl6YXRpb24iLCJydW5Jbml0Rm9ybSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJjb3JlLWpzL2ZlYXR1cmVzL2FycmF5L2ZsYXRcIjtcbmltcG9ydCBcImNvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnNcIjtcbmltcG9ydCBcImNvcmUtanMvc3RhYmxlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkZGlyLCB1bmxpbmsgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCBcInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgcnVuQnVpbGRGb3JtcyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtc1wiO1xuaW1wb3J0IHsgcnVuQnVpbGRTZXJ2ZXIsIHJ1bkRldkJ1aWxkU2VydmVyIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUnVuQnVpbGRTZXJ2ZXJcIjtcbmltcG9ydCB7IHJ1bkRldkJ1aWxkIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRGV2QnVpbGQvUnVuRGV2QnVpbGRcIjtcbmltcG9ydCB7IHJ1bkZvcm1TdGF0cyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0Zvcm1TdGF0cy9SdW5Gb3JtU3RhdHNcIjtcbmltcG9ydCB7IHJ1bkluaXRGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvSW5pdEZvcm0vUnVuSW5pdEZvcm1cIjtcbmltcG9ydCB7IHJ1bkxvY2FsaXphdGlvbiB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0xvY2FsaXphdGlvbi9SdW5Mb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IHJ1blVwZ3JhZGVGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vUnVuVXBncmFkZUZvcm1cIjtcbmltcG9ydCB7IHJ1bkNvbnNvbGVBcHBsaWNhdGlvbiB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvblwiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBzZXRMb2dnZXIgfSBmcm9tIFwiLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbnMgfSBmcm9tIFwiLi9PcHRpb25zL0NhbmR5VG9vbE9wdGlvbnNcIjtcbmltcG9ydCB7IHJlYWRGYXJtQ29uZmlnIH0gZnJvbSBcIi4vUmVhZEZhcm1Db25maWdcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSBcIi4vU2VsZlVwZGF0ZVwiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IHJ1blJlbmFtZUZpbGVzIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvUmVuYW1lRmlsZXMvUnVuUmVuYW1lRmlsZXNcIjtcblxuY29uZmlnLmZhdGFsID0gdHJ1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBGYXJtQ29uZmlnIHtcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgZW5naW5lRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlc291cmNlc0RpcmVjdG9yeT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWJ1Z0FyZ0lkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdC1icmtcIik7XG4gICAgaWYgKGRlYnVnQXJnSWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZ0lkeCwgMSk7XG4gICAgfVxuICAgIGNvbnN0IGRlYnVnQXJnMklkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdFwiKTtcbiAgICBpZiAoZGVidWdBcmcySWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZzJJZHgsIDEpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IG9sZFRlbXBGaWxlTmFtZXMgPSBmaWxlcy5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKFwiLmNhbmR5LXRtcC53ZWJwYWNrLmNvbmZpZy5qc1wiKSk7XG4gICAgaWYgKG9sZFRlbXBGaWxlTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3Zpbmcgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIG9sZFRlbXBGaWxlTmFtZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHVubGluayhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZhcm1Db25maWcoZmFybURpcmVjdG9yeTogc3RyaW5nKTogRmFybUNvbmZpZyB7XG4gICAgY29uc3QgZmFybUNvbmZpZyA9IHJlYWRGYXJtQ29uZmlnKGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgaWYgKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmdpbmVEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG4gICAgaWYgKGZhcm1Db25maWcucmVzb3VyY2VzRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXNvdXJjZXNEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybURpcmVjdG9yeSwgXCIuLlwiLCBcIi5jYW5keV9tb2R1bGVzXCIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZhcm1Db25maWcsXG4gICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgIH07XG59XG5cbmNvbnN0IHZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGggPSBhc3luYyAoXG4gICAgYWxsRmFybURpcmVjdG9yaWVzOiBzdHJpbmdbXSxcbiAgICBjdXJyZW50RGlyOiBzdHJpbmcsXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFxuKTogUHJvbWlzZTxGYXJtQ29uZmlnW10+ID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IEZhcm1Db25maWdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcHRoIG9mIGFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocHRoLCBcImNvbmZpZy5qc1wiKSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwdGgsIGNvbnRleHQubG9nZ2VyKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbGlkYXRlRmFybUNvbmZpZyhwdGgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vINCS0YHQtSDQtNC10LvQviDQsiDRgtC+0LwsINGH0YLQviDRgdCy0Y/Qt9C60LAgc2VydmljZS1ydW5uZXItMiArIHRvb2xzINC60L7RgNGA0LXQutGC0L3QviDRgNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQsiDQv9Cw0L/QutC1INGBINGE0L7RgNC80L7QuVxuICAgICAgICAgICAgLy8g0LjQtyDQt9CwINGH0LXQs9C+LCDQstC90YPRgtGA0Lgg0YDQsNC90L3QtdGA0LAg0L3QsNC/0LjQu9C10L0g0YXQuNGC0YDRi9C5INC80LXRhdCw0L3QuNC30Lwg0L/QvtC40YHQutCwINC/0YPRgtC10Lkg0YTQvtGA0LzRiy4g0J/QtdGA0LXQv9C40LvQuNCy0LDRgtGMINCy0YHQtSDQvNC10YXQsNC90LjQutC4XG4gICAgICAgICAgICAvLyDRgdC+0LLRgdC10Lwg0L3QtSDRhdC+0YfQtdGC0YHRjywg0L/QvtGN0YLQvtC80YMg0LTQu9GPINC90LDRgSwg0YHRh9C40YLQsNGOINC/0L7QtNC90Y/RgtC40LUg0LTQviDRg9GA0L7QstC90Y8gZW5naW5lINCy0L/QvtC70L3QtSDQv9GA0LjQtdC80LvQtdC80YvQvCDRgNC10YjQtdC90LjQtdC8XG4gICAgICAgICAgICBjb25zdCBwYXRoVG9GYXJtID0gcGF0aC5qb2luKGN1cnJlbnREaXIsIFwiLi5cIiwgXCIuLlwiLCBcIi4uXCIsIHB0aCk7XG4gICAgICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHBhdGhUb0Zhcm0pKSkge1xuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBhbGxGYXJtRGlyZWN0b3JpZXMgcGF0aCA9ICR7cGF0aFRvRmFybX0gbm90IGV4aXN0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMocGF0aFRvRmFybSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHBhdGhUb0Zhcm0pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxucnVuQ29uc29sZUFwcGxpY2F0aW9uKGFzeW5jIChhcmd2LCBjb250ZXh0KSA9PiB7XG4gICAgcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwicmVuYW1lXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuUmVuYW1lRmlsZXMoY29udGV4dCwgcGFyc2VkQXJncy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHBhcnNlZEFyZ3Mub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJpbml0LWZvcm1cIikge1xuICAgICAgICBhd2FpdCBydW5Jbml0Rm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsZ0JBQUEsR0FBQVYsT0FBQTtBQUNB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