@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
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.WebpackHybridFileSystem = void 0;
7
-
8
7
  var path = _interopRequireWildcard(require("path"));
9
-
10
8
  var _memfs = require("memfs");
11
-
12
9
  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); }
13
-
14
10
  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; }
15
-
16
11
  /* tslint:disable:no-any */
12
+
17
13
  class WebpackHybridFileSystem {
18
14
  constructor(pathToVirtualDirectory) {
19
15
  this.pathToVirtualDirectory = void 0;
@@ -21,20 +17,15 @@ class WebpackHybridFileSystem {
21
17
  this.virtualFs = void 0;
22
18
  this.watchers = [];
23
19
  this.pathToVirtualDirectory = pathToVirtualDirectory;
24
-
25
20
  const virtualVolume = _memfs.Volume.fromJSON({});
26
-
27
21
  this.virtualFs = (0, _memfs.createFsFromVolume)(virtualVolume);
28
22
  }
29
-
30
23
  setInnerInputFileSystem(innerInputFileSystem) {
31
24
  if (this.innerInputFileSystem != undefined) {
32
25
  throw new Error("Cannot set inner file system twice");
33
26
  }
34
-
35
27
  this.innerInputFileSystem = innerInputFileSystem;
36
28
  }
37
-
38
29
  readFile(filename, options, callback) {
39
30
  if (filename.startsWith(this.pathToVirtualDirectory)) {
40
31
  // @ts-ignore
@@ -44,7 +35,6 @@ class WebpackHybridFileSystem {
44
35
  this.innerInputFileSystem.readFile(filename, options, callback);
45
36
  }
46
37
  }
47
-
48
38
  readFileSync(filename, options) {
49
39
  if (filename.startsWith(this.pathToVirtualDirectory)) {
50
40
  // @ts-ignore
@@ -54,7 +44,6 @@ class WebpackHybridFileSystem {
54
44
  return this.innerInputFileSystem.readFileSync(filename, options);
55
45
  }
56
46
  }
57
-
58
47
  readdir(dirPath, callback) {
59
48
  if (dirPath.startsWith(this.pathToVirtualDirectory)) {
60
49
  // @ts-ignore
@@ -64,7 +53,6 @@ class WebpackHybridFileSystem {
64
53
  this.innerInputFileSystem.readdir(dirPath, callback);
65
54
  }
66
55
  }
67
-
68
56
  readdirSync(dirPath) {
69
57
  if (dirPath.startsWith(this.pathToVirtualDirectory)) {
70
58
  // @ts-ignore
@@ -73,9 +61,9 @@ class WebpackHybridFileSystem {
73
61
  // @ts-ignore
74
62
  return this.innerInputFileSystem.readdirSync(dirPath);
75
63
  }
76
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
-
64
+ }
78
65
 
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
67
  readlink(dirPath, callback) {
80
68
  if (dirPath.startsWith(this.pathToVirtualDirectory)) {
81
69
  // @ts-ignore
@@ -85,7 +73,6 @@ class WebpackHybridFileSystem {
85
73
  this.innerInputFileSystem.readlink(dirPath, callback);
86
74
  }
87
75
  }
88
-
89
76
  readlinkSync(linkPath) {
90
77
  if (linkPath.startsWith(this.pathToVirtualDirectory)) {
91
78
  // @ts-ignore
@@ -94,9 +81,9 @@ class WebpackHybridFileSystem {
94
81
  // @ts-ignore
95
82
  return this.innerInputFileSystem.readlinkSync(linkPath);
96
83
  }
97
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
-
84
+ }
99
85
 
86
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
87
  stat(fsPath, callback) {
101
88
  if (fsPath.startsWith(this.pathToVirtualDirectory)) {
102
89
  // @ts-ignore
@@ -106,7 +93,6 @@ class WebpackHybridFileSystem {
106
93
  this.innerInputFileSystem.stat(fsPath, callback);
107
94
  }
108
95
  }
109
-
110
96
  statSync(fsPath) {
111
97
  if (fsPath.startsWith(this.pathToVirtualDirectory)) {
112
98
  // @ts-ignore
@@ -116,33 +102,26 @@ class WebpackHybridFileSystem {
116
102
  return this.innerInputFileSystem.statSync(fsPath);
117
103
  }
118
104
  }
119
-
120
105
  async writeBatch(fileBatch) {
121
106
  for (const filePath of Object.keys(fileBatch)) {
122
- this.virtualFs.mkdirpSync(path.parse(filePath).dir); // @ts-ignore Там баг в тайпингах
123
-
107
+ this.virtualFs.mkdirpSync(path.parse(filePath).dir);
108
+ // @ts-ignore Там баг в тайпингах
124
109
  this.virtualFs.writeFileSync(filePath, fileBatch[filePath], "utf8");
125
110
  }
126
-
127
111
  this.emitChanges(fileBatch);
128
112
  }
129
-
130
113
  watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
131
114
  const result = new WebpackVirtualWatchFileSystemWatcher(this.virtualFs, [...files.values()].filter(x => x.startsWith(this.pathToVirtualDirectory)), [...dirs.values()].filter(x => x.startsWith(this.pathToVirtualDirectory)), [...missing.values()].filter(x => x.startsWith(this.pathToVirtualDirectory)), callback, callbackUndelayed);
132
115
  this.watchers.push(result);
133
116
  return result;
134
117
  }
135
-
136
118
  emitChanges(fileBatch) {
137
119
  for (const watcher of this.watchers) {
138
120
  watcher.emitChanges(Object.keys(fileBatch));
139
121
  }
140
122
  }
141
-
142
123
  }
143
-
144
124
  exports.WebpackHybridFileSystem = WebpackHybridFileSystem;
145
-
146
125
  class WebpackVirtualWatchFileSystemWatcher {
147
126
  constructor(virtualFs, files, dirs, missing, callback, callbackUndelayed) {
148
127
  this.virtualFs = void 0;
@@ -160,59 +139,46 @@ class WebpackVirtualWatchFileSystemWatcher {
160
139
  this.callback = callback;
161
140
  this.callbackUndelayed = callbackUndelayed;
162
141
  }
163
-
164
142
  emitChanges(filePaths) {
165
143
  if (this.paused || this.closed) {
166
144
  return;
167
145
  }
168
-
169
146
  const changes = new Set();
170
-
171
147
  if (filePaths[0] != undefined) {
172
148
  this.callbackUndelayed(filePaths[0], Date.now());
173
149
  }
174
-
175
150
  for (const filePath of filePaths) {
176
151
  changes.add(filePath);
177
152
  }
178
-
179
153
  this.emitAggregatedChanges(changes);
180
154
  }
181
-
182
155
  close() {
183
156
  this.closed = true;
184
157
  }
185
-
186
158
  pause() {
187
159
  this.paused = true;
188
160
  }
189
-
190
161
  getContextTimeInfoEntries() {
191
162
  return this.getFileTimeInfoEntries();
192
163
  }
193
-
194
164
  getFileTimeInfoEntries() {
195
165
  const times = new Map();
196
-
197
166
  for (const file of this.files) {
198
167
  times.set(file, {
199
168
  timestamp: this.virtualFs.statSync(file).mtimeMs,
200
169
  safeTime: this.virtualFs.statSync(file).mtimeMs
201
170
  });
202
171
  }
203
-
204
172
  return times;
205
173
  }
206
-
207
174
  emitAggregatedChanges(changes) {
208
175
  const filePaths = Array.from(changes);
209
176
  const files = filePaths.filter(filePath => this.files.includes(filePath)).sort();
210
177
  const dirs = filePaths.filter(filePath => this.dirs.includes(filePath)).sort();
211
178
  const missing = filePaths.filter(filePath => this.missing.includes(filePath)).sort();
212
- const times = this.getFileTimeInfoEntries(); // @ts-ignore
213
-
179
+ const times = this.getFileTimeInfoEntries();
180
+ // @ts-ignore
214
181
  this.callback(undefined, files, dirs, missing, times, times, new Set());
215
182
  }
216
-
217
183
  }
218
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtLnRzIl0sIm5hbWVzIjpbIldlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwiY29uc3RydWN0b3IiLCJwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5IiwiaW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ2aXJ0dWFsRnMiLCJ3YXRjaGVycyIsInZpcnR1YWxWb2x1bWUiLCJWb2x1bWUiLCJmcm9tSlNPTiIsInNldElubmVySW5wdXRGaWxlU3lzdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJyZWFkRmlsZSIsImZpbGVuYW1lIiwib3B0aW9ucyIsImNhbGxiYWNrIiwic3RhcnRzV2l0aCIsInJlYWRGaWxlU3luYyIsInJlYWRkaXIiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJyZWFkbGluayIsInJlYWRsaW5rU3luYyIsImxpbmtQYXRoIiwic3RhdCIsImZzUGF0aCIsInN0YXRTeW5jIiwid3JpdGVCYXRjaCIsImZpbGVCYXRjaCIsImZpbGVQYXRoIiwiT2JqZWN0Iiwia2V5cyIsIm1rZGlycFN5bmMiLCJwYXRoIiwicGFyc2UiLCJkaXIiLCJ3cml0ZUZpbGVTeW5jIiwiZW1pdENoYW5nZXMiLCJ3YXRjaCIsImZpbGVzIiwiZGlycyIsIm1pc3NpbmciLCJzdGFydFRpbWUiLCJjYWxsYmFja1VuZGVsYXllZCIsInJlc3VsdCIsIldlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciIsInZhbHVlcyIsImZpbHRlciIsIngiLCJwdXNoIiwid2F0Y2hlciIsImNsb3NlZCIsInBhdXNlZCIsImZpbGVQYXRocyIsImNoYW5nZXMiLCJTZXQiLCJEYXRlIiwibm93IiwiYWRkIiwiZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzIiwiY2xvc2UiLCJwYXVzZSIsImdldENvbnRleHRUaW1lSW5mb0VudHJpZXMiLCJnZXRGaWxlVGltZUluZm9FbnRyaWVzIiwidGltZXMiLCJNYXAiLCJmaWxlIiwic2V0IiwidGltZXN0YW1wIiwibXRpbWVNcyIsInNhZmVUaW1lIiwiQXJyYXkiLCJmcm9tIiwiaW5jbHVkZXMiLCJzb3J0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7OztBQUpBO0FBbUJPLE1BQU1BLHVCQUFOLENBQXlGO0FBTXJGQyxFQUFBQSxXQUFXLENBQUNDLHNCQUFELEVBQWlDO0FBQUEsU0FMbENBLHNCQUtrQztBQUFBLFNBSjNDQyxvQkFJMkM7QUFBQSxTQUhsQ0MsU0FHa0M7QUFBQSxTQUZsQ0MsUUFFa0MsR0FGaUIsRUFFakI7QUFDL0MsU0FBS0gsc0JBQUwsR0FBOEJBLHNCQUE5Qjs7QUFDQSxVQUFNSSxhQUFhLEdBQUdDLGNBQU9DLFFBQVAsQ0FBZ0IsRUFBaEIsQ0FBdEI7O0FBQ0EsU0FBS0osU0FBTCxHQUFpQiwrQkFBbUJFLGFBQW5CLENBQWpCO0FBQ0g7O0FBRU1HLEVBQUFBLHVCQUF1QixDQUFDTixvQkFBRCxFQUErQztBQUN6RSxRQUFJLEtBQUtBLG9CQUFMLElBQTZCTyxTQUFqQyxFQUE0QztBQUN4QyxZQUFNLElBQUlDLEtBQUosQ0FBVSxvQ0FBVixDQUFOO0FBQ0g7O0FBQ0QsU0FBS1Isb0JBQUwsR0FBNEJBLG9CQUE1QjtBQUNIOztBQWFNUyxFQUFBQSxRQUFRLENBQ1hDLFFBRFcsRUFFWEMsT0FGVyxFQU9YQyxRQVBXLEVBVVA7QUFDSixRQUFJRixRQUFRLENBQUNHLFVBQVQsQ0FBb0IsS0FBS2Qsc0JBQXpCLENBQUosRUFBc0Q7QUFDbEQ7QUFDQSxXQUFLRSxTQUFMLENBQWVRLFFBQWYsQ0FBd0JDLFFBQXhCLEVBQWtDQyxPQUFsQyxFQUEyQ0MsUUFBM0M7QUFDSCxLQUhELE1BR087QUFDSDtBQUNBLFdBQUtaLG9CQUFMLENBQTBCUyxRQUExQixDQUFtQ0MsUUFBbkMsRUFBNkNDLE9BQTdDLEVBQXNEQyxRQUF0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LENBQW1CNUMsUUFBbkIsQ0FBN0IsRUFBMkQ2QyxJQUEzRCxFQUFiO0FBQ0EsVUFBTWpDLE9BQU8sR0FBR1ksU0FBUyxDQUFDTixNQUFWLENBQWlCbEIsUUFBUSxJQUFJLEtBQUtZLE9BQUwsQ0FBYWdDLFFBQWIsQ0FBc0I1QyxRQUF0QixDQUE3QixFQUE4RDZDLElBQTlELEVBQWhCO0FBQ0EsVUFBTVYsS0FBSyxHQUFHLEtBQUtELHNCQUFMLEVBQWQsQ0FMc0QsQ0FNdEQ7O0FBQ0EsU0FBS2hELFFBQUwsQ0FBY0wsU0FBZCxFQUF5QjZCLEtBQXpCLEVBQWdDQyxJQUFoQyxFQUFzQ0MsT0FBdEMsRUFBK0N1QixLQUEvQyxFQUFzREEsS0FBdEQsRUFBNkQsSUFBSVQsR0FBSixFQUE3RDtBQUNIOztBQXpFeUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZzRnJvbVZvbHVtZSwgSUZzLCBWb2x1bWUgfSBmcm9tIFwibWVtZnNcIjtcbmltcG9ydCB7IFRFbmNvZGluZ0V4dGVuZGVkIH0gZnJvbSBcIm1lbWZzL2xpYi9lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBJRmlsZVdyaXRlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5cbmltcG9ydCB7IElJbnB1dEZpbGVTeXN0ZW0gfSBmcm9tIFwiLi9JSW5wdXRGaWxlU3lzdGVtXCI7XG5pbXBvcnQge1xuICAgIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5LFxuICAgIElXYXRjaEZpbGVTeXN0ZW0sXG4gICAgSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIsXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQsXG4gICAgV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxufSBmcm9tIFwiLi9JV2F0Y2hGaWxlU3lzdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSBpbXBsZW1lbnRzIElGaWxlV3JpdGVyLCBJSW5wdXRGaWxlU3lzdGVtLCBJV2F0Y2hGaWxlU3lzdGVtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIGlubmVySW5wdXRGaWxlU3lzdGVtITogSUlucHV0RmlsZVN5c3RlbTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hlcnM6IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcltdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFRvVmlydHVhbERpcmVjdG9yeTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSA9IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk7XG4gICAgICAgIGNvbnN0IHZpcnR1YWxWb2x1bWUgPSBWb2x1bWUuZnJvbUpTT04oe30pO1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2aXJ0dWFsVm9sdW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SW5uZXJJbnB1dEZpbGVTeXN0ZW0oaW5uZXJJbnB1dEZpbGVTeXN0ZW06IElJbnB1dEZpbGVTeXN0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3Qgc2V0IGlubmVyIGZpbGUgc3lzdGVtIHR3aWNlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gPSBpbm5lcklucHV0RmlsZVN5c3RlbTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczogeyBmbGFnPzogc3RyaW5nIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZFxuICAgICk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICAgIHwgeyBlbmNvZGluZzogVEVuY29kaW5nRXh0ZW5kZWQ7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpLFxuICAgICAgICBjYWxsYmFjaz86XG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IHN0cmluZykgPT4gdm9pZClcbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKVxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSk6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKGZpbGVuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZsYWc/OiBzdHJpbmcgfSk6IEJ1ZmZlcjtcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zPzogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0gfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICk6IHN0cmluZyB8IEJ1ZmZlciB7XG4gICAgICAgIGlmIChmaWxlbmFtZS5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkZGlyKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s6IChlcnI6IEVycm9yLCBmaWxlczogc3RyaW5nW10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpclN5bmMoZGlyUGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAoZGlyUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXJTeW5jKGRpclBhdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgcmVhZGxpbmsoZGlyUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgbGlua1N0cmluZzogc3RyaW5nKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkbGlua1N5bmMobGlua1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChsaW5rUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkbGlua1N5bmMobGlua1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHN0YXQoZnNQYXRoOiBzdHJpbmcsIGNhbGxiYWNrPzogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBzdGF0czogU3RhdHMpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoZnNQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMuc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0U3luYyhmc1BhdGg6IHN0cmluZyk6IFN0YXRzIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5zdGF0U3luYyhmc1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB3cml0ZUJhdGNoKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhmaWxlQmF0Y2gpKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5ta2RpcnBTeW5jKHBhdGgucGFyc2UoZmlsZVBhdGgpLmRpcik7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlINCi0LDQvCDQsdCw0LMg0LIg0YLQsNC50L/QuNC90LPQsNGFXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBmaWxlQmF0Y2hbZmlsZVBhdGhdLCBcInV0ZjhcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlcyhmaWxlQmF0Y2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3YXRjaChcbiAgICAgICAgZmlsZXM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIGRpcnM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIG1pc3Npbmc6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIHN0YXJ0VGltZTogbnVtYmVyLFxuICAgICAgICBvcHRpb25zOiBXYXRjaEZpbGVTeXN0ZW1XYXRjaE9wdGlvbnMsXG4gICAgICAgIGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjayxcbiAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWQ6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkXG4gICAgKTogSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgV2VicGFja1ZpcnR1YWxXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyKFxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMsXG4gICAgICAgICAgICBbLi4uZmlsZXMudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIFsuLi5kaXJzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4ubWlzc2luZy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICBjYWxsYmFja1VuZGVsYXllZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLndhdGNoZXJzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRDaGFuZ2VzKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB3YXRjaGVyIG9mIHRoaXMud2F0Y2hlcnMpIHtcbiAgICAgICAgICAgIHdhdGNoZXIuZW1pdENoYW5nZXMoT2JqZWN0LmtleXMoZmlsZUJhdGNoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciBpbXBsZW1lbnRzIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZXM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBtaXNzaW5nOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjaztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZDtcblxuICAgIHByaXZhdGUgY2xvc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwYXVzZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmlydHVhbEZzOiBJRnMsXG4gICAgICAgIGZpbGVzOiBzdHJpbmdbXSxcbiAgICAgICAgZGlyczogc3RyaW5nW10sXG4gICAgICAgIG1pc3Npbmc6IHN0cmluZ1tdLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICkge1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IHZpcnR1YWxGcztcbiAgICAgICAgdGhpcy5maWxlcyA9IGZpbGVzO1xuICAgICAgICB0aGlzLmRpcnMgPSBkaXJzO1xuICAgICAgICB0aGlzLm1pc3NpbmcgPSBtaXNzaW5nO1xuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQgPSBjYWxsYmFja1VuZGVsYXllZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdENoYW5nZXMoZmlsZVBhdGhzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYXVzZWQgfHwgdGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGFuZ2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgICAgICAgaWYgKGZpbGVQYXRoc1swXSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQoZmlsZVBhdGhzWzBdLCBEYXRlLm5vdygpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIGZpbGVQYXRocykge1xuICAgICAgICAgICAgY2hhbmdlcy5hZGQoZmlsZVBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbWl0QWdncmVnYXRlZENoYW5nZXMoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdXNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHRUaW1lSW5mb0VudHJpZXMoKTogTWFwPHN0cmluZywgRmlsZVN5c3RlbVRpbWVJbmZvRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWxlVGltZUluZm9FbnRyaWVzKCk6IE1hcDxzdHJpbmcsIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5PiB7XG4gICAgICAgIGNvbnN0IHRpbWVzOiBNYXA8c3RyaW5nLCBGaWxlU3lzdGVtVGltZUluZm9FbnRyeT4gPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLmZpbGVzKSB7XG4gICAgICAgICAgICB0aW1lcy5zZXQoZmlsZSwge1xuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgICAgICBzYWZlVGltZTogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRBZ2dyZWdhdGVkQ2hhbmdlcyhjaGFuZ2VzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlUGF0aHMgPSBBcnJheS5mcm9tKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5maWxlcy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgZGlycyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5kaXJzLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gZmlsZVBhdGhzLmZpbHRlcihmaWxlUGF0aCA9PiB0aGlzLm1pc3NpbmcuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IHRpbWVzID0gdGhpcy5nZXRGaWxlVGltZUluZm9FbnRyaWVzKCk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5jYWxsYmFjayh1bmRlZmluZWQsIGZpbGVzLCBkaXJzLCBtaXNzaW5nLCB0aW1lcywgdGltZXMsIG5ldyBTZXQoKSk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSUxhenlTZXQ8VD4ge1xuICAgIHZhbHVlcygpOiBJdGVyYWJsZTxUPjtcbn1cbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX21lbWZzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIldlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwiY29uc3RydWN0b3IiLCJwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5IiwiaW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ2aXJ0dWFsRnMiLCJ3YXRjaGVycyIsInZpcnR1YWxWb2x1bWUiLCJWb2x1bWUiLCJmcm9tSlNPTiIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsInNldElubmVySW5wdXRGaWxlU3lzdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJyZWFkRmlsZSIsImZpbGVuYW1lIiwib3B0aW9ucyIsImNhbGxiYWNrIiwic3RhcnRzV2l0aCIsInJlYWRGaWxlU3luYyIsInJlYWRkaXIiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJyZWFkbGluayIsInJlYWRsaW5rU3luYyIsImxpbmtQYXRoIiwic3RhdCIsImZzUGF0aCIsInN0YXRTeW5jIiwid3JpdGVCYXRjaCIsImZpbGVCYXRjaCIsImZpbGVQYXRoIiwia2V5cyIsIm1rZGlycFN5bmMiLCJwYXJzZSIsImRpciIsIndyaXRlRmlsZVN5bmMiLCJlbWl0Q2hhbmdlcyIsIndhdGNoIiwiZmlsZXMiLCJkaXJzIiwibWlzc2luZyIsInN0YXJ0VGltZSIsImNhbGxiYWNrVW5kZWxheWVkIiwicmVzdWx0IiwiV2VicGFja1ZpcnR1YWxXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIiwidmFsdWVzIiwiZmlsdGVyIiwieCIsInB1c2giLCJ3YXRjaGVyIiwiZXhwb3J0cyIsImNsb3NlZCIsInBhdXNlZCIsImZpbGVQYXRocyIsImNoYW5nZXMiLCJTZXQiLCJEYXRlIiwibm93IiwiYWRkIiwiZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzIiwiY2xvc2UiLCJwYXVzZSIsImdldENvbnRleHRUaW1lSW5mb0VudHJpZXMiLCJnZXRGaWxlVGltZUluZm9FbnRyaWVzIiwidGltZXMiLCJNYXAiLCJmaWxlIiwidGltZXN0YW1wIiwibXRpbWVNcyIsInNhZmVUaW1lIiwiQXJyYXkiLCJmcm9tIiwiaW5jbHVkZXMiLCJzb3J0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RldlNlcnZlcnMvV2VicGFja0luTWVtb3J5VXRpbHMvV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG5pbXBvcnQgeyBTdGF0cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIElGcywgVm9sdW1lIH0gZnJvbSBcIm1lbWZzXCI7XG5pbXBvcnQgeyBURW5jb2RpbmdFeHRlbmRlZCB9IGZyb20gXCJtZW1mcy9saWIvZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgSUZpbGVXcml0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuXG5pbXBvcnQgeyBJSW5wdXRGaWxlU3lzdGVtIH0gZnJvbSBcIi4vSUlucHV0RmlsZVN5c3RlbVwiO1xuaW1wb3J0IHtcbiAgICBGaWxlU3lzdGVtVGltZUluZm9FbnRyeSxcbiAgICBJV2F0Y2hGaWxlU3lzdGVtLFxuICAgIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkLFxuICAgIFdhdGNoRmlsZVN5c3RlbVdhdGNoT3B0aW9ucyxcbn0gZnJvbSBcIi4vSVdhdGNoRmlsZVN5c3RlbVwiO1xuXG5leHBvcnQgY2xhc3MgV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0gaW1wbGVtZW50cyBJRmlsZVdyaXRlciwgSUlucHV0RmlsZVN5c3RlbSwgSVdhdGNoRmlsZVN5c3RlbSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpbm5lcklucHV0RmlsZVN5c3RlbSE6IElJbnB1dEZpbGVTeXN0ZW07XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZXJzOiBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZykge1xuICAgICAgICB0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkgPSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5O1xuICAgICAgICBjb25zdCB2aXJ0dWFsVm9sdW1lID0gVm9sdW1lLmZyb21KU09OKHt9KTtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodmlydHVhbFZvbHVtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElubmVySW5wdXRGaWxlU3lzdGVtKGlubmVySW5wdXRGaWxlU3lzdGVtOiBJSW5wdXRGaWxlU3lzdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNldCBpbm5lciBmaWxlIHN5c3RlbSB0d2ljZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtID0gaW5uZXJJbnB1dEZpbGVTeXN0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSxcbiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogc3RyaW5nKSA9PiB2b2lkXG4gICAgKTogdm9pZDtcbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczpcbiAgICAgICAgICAgIHwgc3RyaW5nXG4gICAgICAgICAgICB8IHsgZW5jb2Rpbmc6IFRFbmNvZGluZ0V4dGVuZGVkOyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKSxcbiAgICAgICAgY2FsbGJhY2s/OlxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWQpXG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZClcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVuYW1lLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkRmlsZVN5bmMoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9uczogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0pOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogeyBmbGFnPzogc3RyaW5nIH0pOiBCdWZmZXI7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9IHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICApOiBzdHJpbmcgfCBCdWZmZXIge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRGaWxlU3luYyhmaWxlbmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpcihkaXJQYXRoOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciwgZmlsZXM6IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXIoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRkaXJTeW5jKGRpclBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGRpclN5bmMoZGlyUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlYWRsaW5rKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s/OiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGxpbmtTdHJpbmc6IHN0cmluZykgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGxpbmsoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGxpbmtTeW5jKGxpbmtQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAobGlua1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rU3luYyhsaW5rUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBzdGF0KGZzUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgc3RhdHM6IFN0YXRzKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdFN5bmMoZnNQYXRoOiBzdHJpbmcpOiBTdGF0cyB7XG4gICAgICAgIGlmIChmc1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXRTeW5jKGZzUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgd3JpdGVCYXRjaChmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgT2JqZWN0LmtleXMoZmlsZUJhdGNoKSkge1xuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMubWtkaXJwU3luYyhwYXRoLnBhcnNlKGZpbGVQYXRoKS5kaXIpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSDQotCw0Lwg0LHQsNCzINCyINGC0LDQudC/0LjQvdCz0LDRhVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZmlsZUJhdGNoW2ZpbGVQYXRoXSwgXCJ1dGY4XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZXMoZmlsZUJhdGNoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2F0Y2goXG4gICAgICAgIGZpbGVzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBkaXJzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBtaXNzaW5nOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcixcbiAgICAgICAgb3B0aW9uczogV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICk6IElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLFxuICAgICAgICAgICAgWy4uLmZpbGVzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4uZGlycy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgWy4uLm1pc3NpbmcudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53YXRjaGVycy5wdXNoKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q2hhbmdlcyhmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3Qgd2F0Y2hlciBvZiB0aGlzLndhdGNoZXJzKSB7XG4gICAgICAgICAgICB3YXRjaGVyLmVtaXRDaGFuZ2VzKE9iamVjdC5rZXlzKGZpbGVCYXRjaCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXIgaW1wbGVtZW50cyBJV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcnM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWlzc2luZzogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2s7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQ7XG5cbiAgICBwcml2YXRlIGNsb3NlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcGF1c2VkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHZpcnR1YWxGczogSUZzLFxuICAgICAgICBmaWxlczogc3RyaW5nW10sXG4gICAgICAgIGRpcnM6IHN0cmluZ1tdLFxuICAgICAgICBtaXNzaW5nOiBzdHJpbmdbXSxcbiAgICAgICAgY2FsbGJhY2s6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgICAgICBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWRcbiAgICApIHtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICAgICAgdGhpcy5kaXJzID0gZGlycztcbiAgICAgICAgdGhpcy5taXNzaW5nID0gbWlzc2luZztcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkID0gY2FsbGJhY2tVbmRlbGF5ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRDaGFuZ2VzKGZpbGVQYXRoczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkIHx8IHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hhbmdlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gICAgICAgIGlmIChmaWxlUGF0aHNbMF0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkKGZpbGVQYXRoc1swXSwgRGF0ZS5ub3coKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBmaWxlUGF0aHMpIHtcbiAgICAgICAgICAgIGNoYW5nZXMuYWRkKGZpbGVQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXVzZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb250ZXh0VGltZUluZm9FbnRyaWVzKCk6IE1hcDxzdHJpbmcsIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbGVUaW1lSW5mb0VudHJpZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpOiBNYXA8c3RyaW5nLCBGaWxlU3lzdGVtVGltZUluZm9FbnRyeT4ge1xuICAgICAgICBjb25zdCB0aW1lczogTWFwPHN0cmluZywgRmlsZVN5c3RlbVRpbWVJbmZvRW50cnk+ID0gbmV3IE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5maWxlcykge1xuICAgICAgICAgICAgdGltZXMuc2V0KGZpbGUsIHtcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IHRoaXMudmlydHVhbEZzLnN0YXRTeW5jKGZpbGUpLm10aW1lTXMsXG4gICAgICAgICAgICAgICAgc2FmZVRpbWU6IHRoaXMudmlydHVhbEZzLnN0YXRTeW5jKGZpbGUpLm10aW1lTXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGltZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0QWdncmVnYXRlZENoYW5nZXMoY2hhbmdlczogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGhzID0gQXJyYXkuZnJvbShjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmaWxlUGF0aHMuZmlsdGVyKGZpbGVQYXRoID0+IHRoaXMuZmlsZXMuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IGRpcnMgPSBmaWxlUGF0aHMuZmlsdGVyKGZpbGVQYXRoID0+IHRoaXMuZGlycy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgbWlzc2luZyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5taXNzaW5nLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCB0aW1lcyA9IHRoaXMuZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuY2FsbGJhY2sodW5kZWZpbmVkLCBmaWxlcywgZGlycywgbWlzc2luZywgdGltZXMsIHRpbWVzLCBuZXcgU2V0KCkpO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElMYXp5U2V0PFQ+IHtcbiAgICB2YWx1ZXMoKTogSXRlcmFibGU8VD47XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLElBQUFBLElBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUF3RCxTQUFBRSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFB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
@@ -1,30 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.FarmDirectory = void 0;
9
-
10
8
  var _path = _interopRequireDefault(require("path"));
11
-
12
9
  var _fs = require("fs");
13
-
14
10
  var _FormGlobsUtils = require("../../../../Commons/FormGlobsUtils");
15
-
16
11
  var _FsUtils = require("../../../../Commons/FsUtils");
17
-
18
12
  var _PathPattern = require("../../../../Commons/PathPattern");
19
-
20
13
  var _TypingUtils = require("../../../../../../Common/TypingUtils");
21
-
22
14
  class FarmDirectory {
23
15
  constructor(farmDirectory) {
24
16
  this.farmDirectory = void 0;
25
17
  this.farmDirectory = farmDirectory;
26
18
  }
27
-
28
19
  async getAllFormJsonFiles() {
29
20
  const pattern = new _PathPattern.PathPattern("forms/{gfv}/form.json");
30
21
  const files = await (0, _FsUtils.globAsync)("forms/*/form.json", {
@@ -32,29 +23,22 @@ class FarmDirectory {
32
23
  });
33
24
  return files.map(x => {
34
25
  var _pattern$execStrict$g;
35
-
36
26
  return {
37
27
  relativePath: x,
38
28
  gfv: (_pattern$execStrict$g = pattern.execStrict(x)["gfv"]) !== null && _pattern$execStrict$g !== void 0 ? _pattern$execStrict$g : (0, _TypingUtils.reject)()
39
29
  };
40
30
  });
41
31
  }
42
-
43
32
  async resolveFormGlobs(formGlobs) {
44
33
  return _FormGlobsUtils.FormGlobs.resolveGlobsToGfvs(await _FormGlobsUtils.FormGlobs.resolveSpecifiers(formGlobs, this.farmDirectory), this.farmDirectory);
45
34
  }
46
-
47
35
  getFormJsonPath(gfv) {
48
36
  const formDirPath = _path.default.join(this.farmDirectory, "forms", gfv);
49
-
50
37
  if ((0, _fs.existsSync)(_path.default.join(formDirPath, "form.json"))) {
51
38
  return _path.default.join(formDirPath, "form.json");
52
39
  }
53
-
54
40
  return undefined;
55
41
  }
56
-
57
42
  }
58
-
59
43
  exports.FarmDirectory = FarmDirectory;
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9GYXJtRGlyZWN0b3J5LnRzIl0sIm5hbWVzIjpbIkZhcm1EaXJlY3RvcnkiLCJjb25zdHJ1Y3RvciIsImZhcm1EaXJlY3RvcnkiLCJnZXRBbGxGb3JtSnNvbkZpbGVzIiwicGF0dGVybiIsIlBhdGhQYXR0ZXJuIiwiZmlsZXMiLCJjd2QiLCJtYXAiLCJ4IiwicmVsYXRpdmVQYXRoIiwiZ2Z2IiwiZXhlY1N0cmljdCIsInJlc29sdmVGb3JtR2xvYnMiLCJmb3JtR2xvYnMiLCJGb3JtR2xvYnMiLCJyZXNvbHZlR2xvYnNUb0dmdnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdldEZvcm1Kc29uUGF0aCIsImZvcm1EaXJQYXRoIiwicGF0aCIsImpvaW4iLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQU9PLE1BQU1BLGFBQU4sQ0FBb0I7QUFHaEJDLEVBQUFBLFdBQVcsQ0FBQ0MsYUFBRCxFQUF3QjtBQUFBLFNBRnpCQSxhQUV5QjtBQUN0QyxTQUFLQSxhQUFMLEdBQXFCQSxhQUFyQjtBQUNIOztBQUUrQixRQUFuQkMsbUJBQW1CLEdBQTRCO0FBQ3hELFVBQU1DLE9BQU8sR0FBRyxJQUFJQyx3QkFBSixDQUFnQix1QkFBaEIsQ0FBaEI7QUFDQSxVQUFNQyxLQUFLLEdBQUcsTUFBTSx3QkFBVSxtQkFBVixFQUErQjtBQUFFQyxNQUFBQSxHQUFHLEVBQUUsS0FBS0w7QUFBWixLQUEvQixDQUFwQjtBQUNBLFdBQU9JLEtBQUssQ0FBQ0UsR0FBTixDQUFVQyxDQUFDO0FBQUE7O0FBQUEsYUFBSztBQUNuQkMsUUFBQUEsWUFBWSxFQUFFRCxDQURLO0FBRW5CRSxRQUFBQSxHQUFHLDJCQUFFUCxPQUFPLENBQUNRLFVBQVIsQ0FBbUJILENBQW5CLEVBQXNCLEtBQXRCLENBQUYseUVBQWtDO0FBRmxCLE9BQUw7QUFBQSxLQUFYLENBQVA7QUFJSDs7QUFFNEIsUUFBaEJJLGdCQUFnQixDQUFDQyxTQUFELEVBQXlDO0FBQ2xFLFdBQU9DLDBCQUFVQyxrQkFBVixDQUNILE1BQU1ELDBCQUFVRSxpQkFBVixDQUE0QkgsU0FBNUIsRUFBdUMsS0FBS1osYUFBNUMsQ0FESCxFQUVILEtBQUtBLGFBRkYsQ0FBUDtBQUlIOztBQUVNZ0IsRUFBQUEsZUFBZSxDQUFDUCxHQUFELEVBQWtDO0FBQ3BELFVBQU1RLFdBQVcsR0FBR0MsY0FBS0MsSUFBTCxDQUFVLEtBQUtuQixhQUFmLEVBQThCLE9BQTlCLEVBQXVDUyxHQUF2QyxDQUFwQjs7QUFDQSxRQUFJLG9CQUFXUyxjQUFLQyxJQUFMLENBQVVGLFdBQVYsRUFBdUIsV0FBdkIsQ0FBWCxDQUFKLEVBQXFEO0FBQ2pELGFBQU9DLGNBQUtDLElBQUwsQ0FBVUYsV0FBVixFQUF1QixXQUF2QixDQUFQO0FBQ0g7O0FBQ0QsV0FBT0csU0FBUDtBQUNIOztBQTdCc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiO1xuXG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRnNVdGlsc1wiO1xuaW1wb3J0IHsgUGF0aFBhdHRlcm4gfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9QYXRoUGF0dGVyblwiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuXG5pbnRlcmZhY2UgRmFybUZpbGVJbmZvIHtcbiAgICByZWxhdGl2ZVBhdGg6IHN0cmluZztcbiAgICBnZnY6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZhcm1EaXJlY3Rvcnkge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZhcm1EaXJlY3Rvcnk6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxGb3JtSnNvbkZpbGVzKCk6IFByb21pc2U8RmFybUZpbGVJbmZvW10+IHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IG5ldyBQYXRoUGF0dGVybihcImZvcm1zL3tnZnZ9L2Zvcm0uanNvblwiKTtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBhd2FpdCBnbG9iQXN5bmMoXCJmb3Jtcy8qL2Zvcm0uanNvblwiLCB7IGN3ZDogdGhpcy5mYXJtRGlyZWN0b3J5IH0pO1xuICAgICAgICByZXR1cm4gZmlsZXMubWFwKHggPT4gKHtcbiAgICAgICAgICAgIHJlbGF0aXZlUGF0aDogeCxcbiAgICAgICAgICAgIGdmdjogcGF0dGVybi5leGVjU3RyaWN0KHgpW1wiZ2Z2XCJdID8/IHJlamVjdCgpLFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlc29sdmVGb3JtR2xvYnMoZm9ybUdsb2JzOiBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIEZvcm1HbG9icy5yZXNvbHZlR2xvYnNUb0dmdnMoXG4gICAgICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMoZm9ybUdsb2JzLCB0aGlzLmZhcm1EaXJlY3RvcnkpLFxuICAgICAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1Kc29uUGF0aChnZnY6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgICAgICBpZiAoZXhpc3RzU3luYyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzIiwiX0Zvcm1HbG9ic1V0aWxzIiwiX0ZzVXRpbHMiLCJfUGF0aFBhdHRlcm4iLCJfVHlwaW5nVXRpbHMiLCJGYXJtRGlyZWN0b3J5IiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZ2V0QWxsRm9ybUpzb25GaWxlcyIsInBhdHRlcm4iLCJQYXRoUGF0dGVybiIsImZpbGVzIiwiZ2xvYkFzeW5jIiwiY3dkIiwibWFwIiwieCIsIl9wYXR0ZXJuJGV4ZWNTdHJpY3QkZyIsInJlbGF0aXZlUGF0aCIsImdmdiIsImV4ZWNTdHJpY3QiLCJyZWplY3QiLCJyZXNvbHZlRm9ybUdsb2JzIiwiZm9ybUdsb2JzIiwiRm9ybUdsb2JzIiwicmVzb2x2ZUdsb2JzVG9HZnZzIiwicmVzb2x2ZVNwZWNpZmllcnMiLCJnZXRGb3JtSnNvblBhdGgiLCJmb3JtRGlyUGF0aCIsInBhdGgiLCJqb2luIiwiZXhpc3RzU3luYyIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiO1xuXG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRnNVdGlsc1wiO1xuaW1wb3J0IHsgUGF0aFBhdHRlcm4gfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9QYXRoUGF0dGVyblwiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuXG5pbnRlcmZhY2UgRmFybUZpbGVJbmZvIHtcbiAgICByZWxhdGl2ZVBhdGg6IHN0cmluZztcbiAgICBnZnY6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZhcm1EaXJlY3Rvcnkge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZhcm1EaXJlY3Rvcnk6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxGb3JtSnNvbkZpbGVzKCk6IFByb21pc2U8RmFybUZpbGVJbmZvW10+IHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IG5ldyBQYXRoUGF0dGVybihcImZvcm1zL3tnZnZ9L2Zvcm0uanNvblwiKTtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBhd2FpdCBnbG9iQXN5bmMoXCJmb3Jtcy8qL2Zvcm0uanNvblwiLCB7IGN3ZDogdGhpcy5mYXJtRGlyZWN0b3J5IH0pO1xuICAgICAgICByZXR1cm4gZmlsZXMubWFwKHggPT4gKHtcbiAgICAgICAgICAgIHJlbGF0aXZlUGF0aDogeCxcbiAgICAgICAgICAgIGdmdjogcGF0dGVybi5leGVjU3RyaWN0KHgpW1wiZ2Z2XCJdID8/IHJlamVjdCgpLFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlc29sdmVGb3JtR2xvYnMoZm9ybUdsb2JzOiBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIEZvcm1HbG9icy5yZXNvbHZlR2xvYnNUb0dmdnMoXG4gICAgICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMoZm9ybUdsb2JzLCB0aGlzLmZhcm1EaXJlY3RvcnkpLFxuICAgICAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1Kc29uUGF0aChnZnY6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgICAgICBpZiAoZXhpc3RzU3luYyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxHQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFPTyxNQUFNTSxhQUFhLENBQUM7RUFHaEJDLFdBQVdBLENBQUNDLGFBQXFCLEVBQUU7SUFBQSxLQUZ6QkEsYUFBYTtJQUcxQixJQUFJLENBQUNBLGFBQWEsR0FBR0EsYUFBYTtFQUN0QztFQUVBLE1BQWFDLG1CQUFtQkEsQ0FBQSxFQUE0QjtJQUN4RCxNQUFNQyxPQUFPLEdBQUcsSUFBSUMsd0JBQVcsQ0FBQyx1QkFBdUIsQ0FBQztJQUN4RCxNQUFNQyxLQUFLLEdBQUcsTUFBTSxJQUFBQyxrQkFBUyxFQUFDLG1CQUFtQixFQUFFO01BQUVDLEdBQUcsRUFBRSxJQUFJLENBQUNOO0lBQWMsQ0FBQyxDQUFDO0lBQy9FLE9BQU9JLEtBQUssQ0FBQ0csR0FBRyxDQUFDQyxDQUFDO01BQUEsSUFBQUMscUJBQUE7TUFBQSxPQUFLO1FBQ25CQyxZQUFZLEVBQUVGLENBQUM7UUFDZkcsR0FBRyxHQUFBRixxQkFBQSxHQUFFUCxPQUFPLENBQUNVLFVBQVUsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQUFDLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksSUFBQUksbUJBQU0sRUFBQztNQUNoRCxDQUFDO0lBQUEsQ0FBQyxDQUFDO0VBQ1A7RUFFQSxNQUFhQyxnQkFBZ0JBLENBQUNDLFNBQW1CLEVBQXFCO0lBQ2xFLE9BQU9DLHlCQUFTLENBQUNDLGtCQUFrQixDQUMvQixNQUFNRCx5QkFBUyxDQUFDRSxpQkFBaUIsQ0FBQ0gsU0FBUyxFQUFFLElBQUksQ0FBQ2YsYUFBYSxDQUFDLEVBQ2hFLElBQUksQ0FBQ0EsYUFDVCxDQUFDO0VBQ0w7RUFFT21CLGVBQWVBLENBQUNSLEdBQVcsRUFBc0I7SUFDcEQsTUFBTVMsV0FBVyxHQUFHQyxhQUFJLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUN0QixhQUFhLEVBQUUsT0FBTyxFQUFFVyxHQUFHLENBQUM7SUFDL0QsSUFBSSxJQUFBWSxjQUFVLEVBQUNGLGFBQUksQ0FBQ0MsSUFBSSxDQUFDRixXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsRUFBRTtNQUNqRCxPQUFPQyxhQUFJLENBQUNDLElBQUksQ0FBQ0YsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUM5QztJQUNBLE9BQU9JLFNBQVM7RUFDcEI7QUFDSjtBQUFDQyxPQUFBLENBQUEzQixhQUFBLEdBQUFBLGFBQUEifQ==
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.globToRegexp = globToRegexp;
7
-
8
7
  function globToRegexp(inputGlob) {
9
8
  const pathTokens = inputGlob.split("/");
10
9
  return new RegExp("^" + pathTokens.map((x, index) => {
@@ -12,15 +11,12 @@ function globToRegexp(inputGlob) {
12
11
  if (index === pathTokens.length - 1) {
13
12
  return ".*$";
14
13
  }
15
-
16
14
  return "[^\\/]*?";
17
15
  }
18
-
19
16
  if (x.includes("*")) {
20
17
  return x.replace("*", "[^\\/]*?");
21
18
  }
22
-
23
19
  return x;
24
20
  }).join("[\\/\\\\]"));
25
21
  }
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9HbG9iVG9SZWdleHAudHMiXSwibmFtZXMiOlsiZ2xvYlRvUmVnZXhwIiwiaW5wdXRHbG9iIiwicGF0aFRva2VucyIsInNwbGl0IiwiUmVnRXhwIiwibWFwIiwieCIsImluZGV4IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPLFNBQVNBLFlBQVQsQ0FBc0JDLFNBQXRCLEVBQWlEO0FBQ3BELFFBQU1DLFVBQVUsR0FBR0QsU0FBUyxDQUFDRSxLQUFWLENBQWdCLEdBQWhCLENBQW5CO0FBQ0EsU0FBTyxJQUFJQyxNQUFKLENBQ0gsTUFDSUYsVUFBVSxDQUNMRyxHQURMLENBQ1MsQ0FBQ0MsQ0FBRCxFQUFJQyxLQUFKLEtBQWM7QUFDZixRQUFJRCxDQUFDLEtBQUssR0FBVixFQUFlO0FBQ1gsVUFBSUMsS0FBSyxLQUFLTCxVQUFVLENBQUNNLE1BQVgsR0FBb0IsQ0FBbEMsRUFBcUM7QUFDakMsZUFBTyxLQUFQO0FBQ0g7O0FBQ0QsYUFBTyxVQUFQO0FBQ0g7O0FBQ0QsUUFBSUYsQ0FBQyxDQUFDRyxRQUFGLENBQVcsR0FBWCxDQUFKLEVBQXFCO0FBQ2pCLGFBQU9ILENBQUMsQ0FBQ0ksT0FBRixDQUFVLEdBQVYsRUFBZSxVQUFmLENBQVA7QUFDSDs7QUFDRCxXQUFPSixDQUFQO0FBQ0gsR0FaTCxFQWFLSyxJQWJMLENBYVUsV0FiVixDQUZELENBQVA7QUFpQkgiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2xvYlRvUmVnZXhwKGlucHV0R2xvYjogc3RyaW5nKTogUmVnRXhwIHtcbiAgICBjb25zdCBwYXRoVG9rZW5zID0gaW5wdXRHbG9iLnNwbGl0KFwiL1wiKTtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgXCJeXCIgK1xuICAgICAgICAgICAgcGF0aFRva2Vuc1xuICAgICAgICAgICAgICAgIC5tYXAoKHgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh4ID09PSBcIipcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBwYXRoVG9rZW5zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCIuKiRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlteXFxcXC9dKj9cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoeC5pbmNsdWRlcyhcIipcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4LnJlcGxhY2UoXCIqXCIsIFwiW15cXFxcL10qP1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5qb2luKFwiW1xcXFwvXFxcXFxcXFxdXCIpXG4gICAgKTtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnbG9iVG9SZWdleHAiLCJpbnB1dEdsb2IiLCJwYXRoVG9rZW5zIiwic3BsaXQiLCJSZWdFeHAiLCJtYXAiLCJ4IiwiaW5kZXgiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJlcGxhY2UiLCJqb2luIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0dsb2JUb1JlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2xvYlRvUmVnZXhwKGlucHV0R2xvYjogc3RyaW5nKTogUmVnRXhwIHtcbiAgICBjb25zdCBwYXRoVG9rZW5zID0gaW5wdXRHbG9iLnNwbGl0KFwiL1wiKTtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgXCJeXCIgK1xuICAgICAgICAgICAgcGF0aFRva2Vuc1xuICAgICAgICAgICAgICAgIC5tYXAoKHgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh4ID09PSBcIipcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBwYXRoVG9rZW5zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCIuKiRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlteXFxcXC9dKj9cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoeC5pbmNsdWRlcyhcIipcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4LnJlcGxhY2UoXCIqXCIsIFwiW15cXFxcL10qP1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5qb2luKFwiW1xcXFwvXFxcXFxcXFxdXCIpXG4gICAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sU0FBU0EsWUFBWUEsQ0FBQ0MsU0FBaUIsRUFBVTtFQUNwRCxNQUFNQyxVQUFVLEdBQUdELFNBQVMsQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUN2QyxPQUFPLElBQUlDLE1BQU0sQ0FDYixHQUFHLEdBQ0NGLFVBQVUsQ0FDTEcsR0FBRyxDQUFDLENBQUNDLENBQUMsRUFBRUMsS0FBSyxLQUFLO0lBQ2YsSUFBSUQsQ0FBQyxLQUFLLEdBQUcsRUFBRTtNQUNYLElBQUlDLEtBQUssS0FBS0wsVUFBVSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pDLE9BQU8sS0FBSztNQUNoQjtNQUNBLE9BQU8sVUFBVTtJQUNyQjtJQUNBLElBQUlGLENBQUMsQ0FBQ0csUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO01BQ2pCLE9BQU9ILENBQUMsQ0FBQ0ksT0FBTyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUM7SUFDckM7SUFDQSxPQUFPSixDQUFDO0VBQ1osQ0FBQyxDQUFDLENBQ0RLLElBQUksQ0FBQyxXQUFXLENBQzdCLENBQUM7QUFDTCJ9
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0lHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIge1xuICAgIGdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMoKTogUHJvbWlzZTxzdHJpbmdbXT47XG4gICAgZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdjogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xuICAgIGdldEFsbEF0dGFjaG1lbnRQYXRoRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nW10+O1xuICAgIGdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50KGdmdjogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xufVxuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -5,59 +5,40 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.runBuildServer = runBuildServer;
7
7
  exports.runDevBuildServer = runDevBuildServer;
8
-
9
8
  var _TypingUtils = require("../../../../Common/TypingUtils");
10
-
11
9
  var _ExpressServerWrapper = require("../../Commons/HttpServer/ExpressWrapper/ExpressServerWrapper");
12
-
13
10
  var _FormsHelperController = require("../FormsHelper/FormsHelperController");
14
-
15
11
  var _BuildLogsWebsocketController = require("./BuildLogsWebsocketController");
16
-
17
12
  var _BuildServerBackendResourcesController = require("./ResourcesControllers/BuildServerBackendResourcesController");
18
-
19
13
  var _BuildServerBackendResourcesUpdatesController = require("./ResourcesControllers/BuildServerBackendResourcesUpdatesController");
20
-
21
14
  var _BuildServerBuildFormsController = require("./ResourcesControllers/BuildServerBuildFormsController");
22
-
23
15
  var _BuildServerClientJsController = require("./ResourcesControllers/BuildServerClientJsController");
24
-
25
16
  var _BuildServerClientJsFromResourcesController = require("./ResourcesControllers/BuildServerClientJsFromResourcesController");
26
-
27
17
  var _BuildServerFormInfoController = require("./ResourcesControllers/BuildServerFormInfoController");
28
-
29
18
  var _BuildServerLocalSourcesEngineController = require("./ResourcesControllers/BuildServerLocalSourcesEngineController");
30
-
31
19
  var _BuildServerPrebuiltResourcesController = require("./ResourcesControllers/BuildServerPrebuiltResourcesController");
32
-
33
20
  var _BuildServerPublishedEngineController = require("./ResourcesControllers/BuildServerPublishedEngineController");
34
-
35
21
  async function runBuildServer(context, options, allFarmConfig) {
36
22
  (0, _TypingUtils.ensureArrayIsNotEmpty)(allFarmConfig);
37
23
  let engineDirectory = "";
38
-
39
24
  for (const conf of allFarmConfig) {
40
25
  if (conf.engineDirectory != undefined) {
41
26
  engineDirectory = conf.engineDirectory;
42
27
  break;
43
28
  }
44
29
  }
45
-
46
30
  if (engineDirectory === "") {
47
31
  throw Error("All Engine directory is empty");
48
32
  }
49
-
50
33
  const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;
51
34
  const formTestingHelpersWebServer = new _ExpressServerWrapper.ExpressServerWrapper(9010, undefined, context.logger, "Forms helpers");
52
35
  formTestingHelpersWebServer.registerSigletonController(new _FormsHelperController.FormsHelperController({
53
36
  frontEndDevMode: options.developmentMode
54
37
  }));
55
38
  const webServer = new _ExpressServerWrapper.ExpressServerWrapper(9000, 9043, context.logger);
56
-
57
39
  if (!options.disableClientOverride) {
58
40
  webServer.registerSigletonController(new _BuildLogsWebsocketController.BuildLogsWebsocketController());
59
41
  }
60
-
61
42
  const buildFormsController = new _BuildServerBuildFormsController.BuildServerBuildFormsController(allFarmConfig, candyModulesDirectory, false, engineDirectory, options.buildDebugOnly, options.nightly);
62
43
  webServer.registerSigletonController(buildFormsController);
63
44
  webServer.registerSigletonController(new _BuildServerBackendResourcesController.BuildServerBackendResourcesController(allFarmConfig, buildFormsController));
@@ -74,36 +55,29 @@ async function runBuildServer(context, options, allFarmConfig) {
74
55
  await webServer.stop();
75
56
  await formTestingHelpersWebServer.stop();
76
57
  }
77
-
78
58
  async function runDevBuildServer(context, options, allFarmConfig) {
79
59
  if (allFarmConfig[0] == undefined) {
80
60
  throw Error("Config can't be length 0");
81
61
  }
82
-
83
62
  let engineDirectory = "";
84
-
85
63
  for (const conf of allFarmConfig) {
86
64
  if (conf.engineDirectory != undefined) {
87
65
  engineDirectory = conf.engineDirectory;
88
66
  break;
89
67
  }
90
68
  }
91
-
92
69
  if (engineDirectory === "") {
93
70
  throw Error("All Engine directory is empty");
94
71
  }
95
-
96
72
  const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;
97
73
  const formTestingHelpersWebServer = new _ExpressServerWrapper.ExpressServerWrapper(9010, undefined, context.logger, "Forms helpers");
98
74
  formTestingHelpersWebServer.registerSigletonController(new _FormsHelperController.FormsHelperController({
99
75
  frontEndDevMode: options.developmentMode
100
76
  }));
101
77
  const webServer = new _ExpressServerWrapper.ExpressServerWrapper(9000, 9043, context.logger);
102
-
103
78
  if (!options.disableClientOverride) {
104
79
  webServer.registerSigletonController(new _BuildLogsWebsocketController.BuildLogsWebsocketController());
105
80
  }
106
-
107
81
  const buildServerBuildFormsController = new _BuildServerBuildFormsController.BuildServerBuildFormsController(allFarmConfig, candyModulesDirectory, true, engineDirectory, options.buildDebugOnly);
108
82
  webServer.registerSigletonController(buildServerBuildFormsController);
109
83
  webServer.registerSigletonController(new _BuildServerBackendResourcesController.BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController));
@@ -121,4 +95,4 @@ async function runDevBuildServer(context, options, allFarmConfig) {
121
95
  await webServer.stop();
122
96
  await formTestingHelpersWebServer.stop();
123
97
  }
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SdW5CdWlsZFNlcnZlci50cyJdLCJuYW1lcyI6WyJydW5CdWlsZFNlcnZlciIsImNvbnRleHQiLCJvcHRpb25zIiwiYWxsRmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsImNvbmYiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlciIsIkV4cHJlc3NTZXJ2ZXJXcmFwcGVyIiwibG9nZ2VyIiwicmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIiLCJGb3Jtc0hlbHBlckNvbnRyb2xsZXIiLCJmcm9udEVuZERldk1vZGUiLCJkZXZlbG9wbWVudE1vZGUiLCJ3ZWJTZXJ2ZXIiLCJkaXNhYmxlQ2xpZW50T3ZlcnJpZGUiLCJCdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyIiwiYnVpbGRGb3Jtc0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyIiwiYnVpbGREZWJ1Z09ubHkiLCJuaWdodGx5IiwiQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyIiwiQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlclB1Ymxpc2hlZEVuZ2luZUNvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlciIsInN0YXJ0Iiwid2FpdEZvckV4aXQiLCJzdG9wIiwicnVuRGV2QnVpbGRTZXJ2ZXIiLCJidWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyIiwiQnVpbGRTZXJ2ZXJMb2NhbFNvdXJjZXNFbmdpbmVDb250cm9sbGVyIiwiQnVpbGRTZXJ2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aWcgfSBmcm9tIFwiVG9vbHMvc3JjL0NhbmR5Q0xJXCI7XG5cbmltcG9ydCB7IGVuc3VyZUFycmF5SXNOb3RFbXB0eSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRXhwcmVzc1NlcnZlcldyYXBwZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0V4cHJlc3NXcmFwcGVyL0V4cHJlc3NTZXJ2ZXJXcmFwcGVyXCI7XG5pbXBvcnQgeyBGb3Jtc0hlbHBlckNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vRm9ybXNIZWxwZXIvRm9ybXNIZWxwZXJDb250cm9sbGVyXCI7XG5cbmltcG9ydCB7IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIgfSBmcm9tIFwiLi9CdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlck9wdGlvbnMsIERldkJ1aWxkU2VydmVyT3B0aW9ucyB9IGZyb20gXCIuL0J1aWxkU2VydmVyU2VydmVyT3B0aW9uc1wiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQ2xpZW50SnNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyTG9jYWxTb3VyY2VzRW5naW5lQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyTG9jYWxTb3VyY2VzRW5naW5lQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5CdWlsZFNlcnZlcihcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IEJ1aWxkU2VydmVyT3B0aW9ucyxcbiAgICBhbGxGYXJtQ29uZmlnOiBGYXJtQ29uZmlnW11cbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGVuc3VyZUFycmF5SXNOb3RFbXB0eShhbGxGYXJtQ29uZmlnKTtcblxuICAgIGxldCBlbmdpbmVEaXJlY3RvcnkgPSBcIlwiO1xuICAgIGZvciAoY29uc3QgY29uZiBvZiBhbGxGYXJtQ29uZmlnKSB7XG4gICAgICAgIGlmIChjb25mLmVuZ2luZURpcmVjdG9yeSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSA9IGNvbmYuZW5naW5lRGlyZWN0b3J5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuZ2luZURpcmVjdG9yeSA9PT0gXCJcIikge1xuICAgICAgICB0aHJvdyBFcnJvcihcIkFsbCBFbmdpbmUgZGlyZWN0b3J5IGlzIGVtcHR5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IGFsbEZhcm1Db25maWdbMF0uY2FuZHlNb2R1bGVzRGlyZWN0b3J5O1xuXG4gICAgY29uc3QgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyID0gbmV3IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyKDkwMTAsIHVuZGVmaW5lZCwgY29udGV4dC5sb2dnZXIsIFwiRm9ybXMgaGVscGVyc1wiKTtcbiAgICBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBGb3Jtc0hlbHBlckNvbnRyb2xsZXIoeyBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHdlYlNlcnZlciA9IG5ldyBFeHByZXNzU2VydmVyV3JhcHBlcig5MDAwLCA5MDQzLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSkge1xuICAgICAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIoKSk7XG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkRm9ybXNDb250cm9sbGVyID0gbmV3IEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIoXG4gICAgICAgIGFsbEZhcm1Db25maWcsXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgb3B0aW9ucy5idWlsZERlYnVnT25seSxcbiAgICAgICAgb3B0aW9ucy5uaWdodGx5XG4gICAgKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihidWlsZEZvcm1zQ29udHJvbGxlcik7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnLCBidWlsZEZvcm1zQ29udHJvbGxlcilcbiAgICApO1xuXG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnLCBmYWxzZSwgb3B0aW9ucy5uaWdodGx5KSk7XG5cbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyUHJlYnVpbHRSZXNvdXJjZXNDb250cm9sbGVyKCkpO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyKGNhbmR5TW9kdWxlc0RpcmVjdG9yeSkpO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEJ1aWxkU2VydmVyQ2xpZW50SnNGcm9tUmVzb3VyY2VzQ29udHJvbGxlcihvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSwge1xuICAgICAgICAgICAgZnJvbnRFbmREZXZNb2RlOiBvcHRpb25zLmRldmVsb3BtZW50TW9kZSxcbiAgICAgICAgfSlcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZykpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IHdlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IGNvbnRleHQud2FpdEZvckV4aXQoKTtcbiAgICBhd2FpdCB3ZWJTZXJ2ZXIuc3RvcCgpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdG9wKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5EZXZCdWlsZFNlcnZlcihcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IERldkJ1aWxkU2VydmVyT3B0aW9ucyxcbiAgICBhbGxGYXJtQ29uZmlnOiBGYXJtQ29uZmlnW11cbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChhbGxGYXJtQ29uZmlnWzBdID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBFcnJvcihcIkNvbmZpZyBjYW4ndCBiZSBsZW5ndGggMFwiKTtcbiAgICB9XG5cbiAgICBsZXQgZW5naW5lRGlyZWN0b3J5ID0gXCJcIjtcbiAgICBmb3IgKGNvbnN0IGNvbmYgb2YgYWxsRmFybUNvbmZpZykge1xuICAgICAgICBpZiAoY29uZi5lbmdpbmVEaXJlY3RvcnkgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnkgPSBjb25mLmVuZ2luZURpcmVjdG9yeTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChlbmdpbmVEaXJlY3RvcnkgPT09IFwiXCIpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJBbGwgRW5naW5lIGRpcmVjdG9yeSBpcyBlbXB0eVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBhbGxGYXJtQ29uZmlnWzBdLmNhbmR5TW9kdWxlc0RpcmVjdG9yeTtcblxuICAgIGNvbnN0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlciA9IG5ldyBFeHByZXNzU2VydmVyV3JhcHBlcig5MDEwLCB1bmRlZmluZWQsIGNvbnRleHQubG9nZ2VyLCBcIkZvcm1zIGhlbHBlcnNcIik7XG4gICAgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgRm9ybXNIZWxwZXJDb250cm9sbGVyKHsgZnJvbnRFbmREZXZNb2RlOiBvcHRpb25zLmRldmVsb3BtZW50TW9kZSB9KVxuICAgICk7XG5cbiAgICBjb25zdCB3ZWJTZXJ2ZXIgPSBuZXcgRXhwcmVzc1NlcnZlcldyYXBwZXIoOTAwMCwgOTA0MywgY29udGV4dC5sb2dnZXIpO1xuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlQ2xpZW50T3ZlcnJpZGUpIHtcbiAgICAgICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyKCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIgPSBuZXcgQnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlcihcbiAgICAgICAgYWxsRmFybUNvbmZpZyxcbiAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgICAgICB0cnVlLFxuICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHlcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihidWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNDb250cm9sbGVyKGFsbEZhcm1Db25maWcsIGJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIpXG4gICAgKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyKGFsbEZhcm1Db25maWcsIHRydWUsIGZhbHNlKSk7XG5cbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyUHJlYnVpbHRSZXNvdXJjZXNDb250cm9sbGVyKCkpO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyKGNhbmR5TW9kdWxlc0RpcmVjdG9yeSkpO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEJ1aWxkU2VydmVyTG9jYWxTb3VyY2VzRW5naW5lQ29udHJvbGxlcihlbmdpbmVEaXJlY3RvcnksIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHkpXG4gICAgKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBCdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlcihlbmdpbmVEaXJlY3RvcnksIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHksIG9wdGlvbnMuZGlzYWJsZUNsaWVudE92ZXJyaWRlLCB7XG4gICAgICAgICAgICBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlLFxuICAgICAgICB9KVxuICAgICk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnKSk7XG4gICAgYXdhaXQgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnN0YXJ0KCk7XG4gICAgYXdhaXQgd2ViU2VydmVyLnN0YXJ0KCk7XG4gICAgYXdhaXQgY29udGV4dC53YWl0Rm9yRXhpdCgpO1xuICAgIGF3YWl0IHdlYlNlcnZlci5zdG9wKCk7XG4gICAgYXdhaXQgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnN0b3AoKTtcbn1cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwaW5nVXRpbHMiLCJyZXF1aXJlIiwiX0V4cHJlc3NTZXJ2ZXJXcmFwcGVyIiwiX0Zvcm1zSGVscGVyQ29udHJvbGxlciIsIl9CdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyIiwiX0J1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJMb2NhbFNvdXJjZXNFbmdpbmVDb250cm9sbGVyIiwiX0J1aWxkU2VydmVyUHJlYnVpbHRSZXNvdXJjZXNDb250cm9sbGVyIiwiX0J1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlciIsInJ1bkJ1aWxkU2VydmVyIiwiY29udGV4dCIsIm9wdGlvbnMiLCJhbGxGYXJtQ29uZmlnIiwiZW5zdXJlQXJyYXlJc05vdEVtcHR5IiwiZW5naW5lRGlyZWN0b3J5IiwiY29uZiIsInVuZGVmaW5lZCIsIkVycm9yIiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwiZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyIiwiRXhwcmVzc1NlcnZlcldyYXBwZXIiLCJsb2dnZXIiLCJyZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlciIsIkZvcm1zSGVscGVyQ29udHJvbGxlciIsImZyb250RW5kRGV2TW9kZSIsImRldmVsb3BtZW50TW9kZSIsIndlYlNlcnZlciIsImRpc2FibGVDbGllbnRPdmVycmlkZSIsIkJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJidWlsZEZvcm1zQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIiLCJidWlsZERlYnVnT25seSIsIm5pZ2h0bHkiLCJCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNDb250cm9sbGVyIiwiQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyQ2xpZW50SnNGcm9tUmVzb3VyY2VzQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyIiwic3RhcnQiLCJ3YWl0Rm9yRXhpdCIsInN0b3AiLCJydW5EZXZCdWlsZFNlcnZlciIsImJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SdW5CdWlsZFNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYXJtQ29uZmlnIH0gZnJvbSBcIlRvb2xzL3NyYy9DYW5keUNMSVwiO1xuXG5pbXBvcnQgeyBlbnN1cmVBcnJheUlzTm90RW1wdHkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9FeHByZXNzU2VydmVyV3JhcHBlclwiO1xuaW1wb3J0IHsgRm9ybXNIZWxwZXJDb250cm9sbGVyIH0gZnJvbSBcIi4uL0Zvcm1zSGVscGVyL0Zvcm1zSGVscGVyQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBCdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyIH0gZnJvbSBcIi4vQnVpbGRMb2dzV2Vic29ja2V0Q29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJPcHRpb25zLCBEZXZCdWlsZFNlcnZlck9wdGlvbnMgfSBmcm9tIFwiLi9CdWlsZFNlcnZlclNlcnZlck9wdGlvbnNcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJDbGllbnRKc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJDbGllbnRKc0Zyb21SZXNvdXJjZXNDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJDbGllbnRKc0Zyb21SZXNvdXJjZXNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyUHJlYnVpbHRSZXNvdXJjZXNDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlclwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQnVpbGRTZXJ2ZXIoXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBCdWlsZFNlcnZlck9wdGlvbnMsXG4gICAgYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBlbnN1cmVBcnJheUlzTm90RW1wdHkoYWxsRmFybUNvbmZpZyk7XG5cbiAgICBsZXQgZW5naW5lRGlyZWN0b3J5ID0gXCJcIjtcbiAgICBmb3IgKGNvbnN0IGNvbmYgb2YgYWxsRmFybUNvbmZpZykge1xuICAgICAgICBpZiAoY29uZi5lbmdpbmVEaXJlY3RvcnkgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnkgPSBjb25mLmVuZ2luZURpcmVjdG9yeTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChlbmdpbmVEaXJlY3RvcnkgPT09IFwiXCIpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJBbGwgRW5naW5lIGRpcmVjdG9yeSBpcyBlbXB0eVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBhbGxGYXJtQ29uZmlnWzBdLmNhbmR5TW9kdWxlc0RpcmVjdG9yeTtcblxuICAgIGNvbnN0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlciA9IG5ldyBFeHByZXNzU2VydmVyV3JhcHBlcig5MDEwLCB1bmRlZmluZWQsIGNvbnRleHQubG9nZ2VyLCBcIkZvcm1zIGhlbHBlcnNcIik7XG4gICAgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgRm9ybXNIZWxwZXJDb250cm9sbGVyKHsgZnJvbnRFbmREZXZNb2RlOiBvcHRpb25zLmRldmVsb3BtZW50TW9kZSB9KVxuICAgICk7XG5cbiAgICBjb25zdCB3ZWJTZXJ2ZXIgPSBuZXcgRXhwcmVzc1NlcnZlcldyYXBwZXIoOTAwMCwgOTA0MywgY29udGV4dC5sb2dnZXIpO1xuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlQ2xpZW50T3ZlcnJpZGUpIHtcbiAgICAgICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyKCkpO1xuICAgIH1cbiAgICBjb25zdCBidWlsZEZvcm1zQ29udHJvbGxlciA9IG5ldyBCdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyKFxuICAgICAgICBhbGxGYXJtQ29uZmlnLFxuICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgIGZhbHNlLFxuICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHksXG4gICAgICAgIG9wdGlvbnMubmlnaHRseVxuICAgICk7XG5cbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoYnVpbGRGb3Jtc0NvbnRyb2xsZXIpO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgYnVpbGRGb3Jtc0NvbnRyb2xsZXIpXG4gICAgKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgZmFsc2UsIG9wdGlvbnMubmlnaHRseSkpO1xuXG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlcigpKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlcihjYW5keU1vZHVsZXNEaXJlY3RvcnkpKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBCdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXIob3B0aW9ucy5kaXNhYmxlQ2xpZW50T3ZlcnJpZGUsIHtcbiAgICAgICAgICAgIGZyb250RW5kRGV2TW9kZTogb3B0aW9ucy5kZXZlbG9wbWVudE1vZGUsXG4gICAgICAgIH0pXG4gICAgKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyKGFsbEZhcm1Db25maWcpKTtcbiAgICBhd2FpdCBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIuc3RhcnQoKTtcbiAgICBhd2FpdCB3ZWJTZXJ2ZXIuc3RhcnQoKTtcbiAgICBhd2FpdCBjb250ZXh0LndhaXRGb3JFeGl0KCk7XG4gICAgYXdhaXQgd2ViU2VydmVyLnN0b3AoKTtcbiAgICBhd2FpdCBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIuc3RvcCgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuRGV2QnVpbGRTZXJ2ZXIoXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBEZXZCdWlsZFNlcnZlck9wdGlvbnMsXG4gICAgYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYWxsRmFybUNvbmZpZ1swXSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJDb25maWcgY2FuJ3QgYmUgbGVuZ3RoIDBcIik7XG4gICAgfVxuXG4gICAgbGV0IGVuZ2luZURpcmVjdG9yeSA9IFwiXCI7XG4gICAgZm9yIChjb25zdCBjb25mIG9mIGFsbEZhcm1Db25maWcpIHtcbiAgICAgICAgaWYgKGNvbmYuZW5naW5lRGlyZWN0b3J5ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5ID0gY29uZi5lbmdpbmVEaXJlY3Rvcnk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5naW5lRGlyZWN0b3J5ID09PSBcIlwiKSB7XG4gICAgICAgIHRocm93IEVycm9yKFwiQWxsIEVuZ2luZSBkaXJlY3RvcnkgaXMgZW1wdHlcIik7XG4gICAgfVxuXG4gICAgY29uc3QgY2FuZHlNb2R1bGVzRGlyZWN0b3J5ID0gYWxsRmFybUNvbmZpZ1swXS5jYW5keU1vZHVsZXNEaXJlY3Rvcnk7XG5cbiAgICBjb25zdCBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIgPSBuZXcgRXhwcmVzc1NlcnZlcldyYXBwZXIoOTAxMCwgdW5kZWZpbmVkLCBjb250ZXh0LmxvZ2dlciwgXCJGb3JtcyBoZWxwZXJzXCIpO1xuICAgIGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEZvcm1zSGVscGVyQ29udHJvbGxlcih7IGZyb250RW5kRGV2TW9kZTogb3B0aW9ucy5kZXZlbG9wbWVudE1vZGUgfSlcbiAgICApO1xuXG4gICAgY29uc3Qgd2ViU2VydmVyID0gbmV3IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyKDkwMDAsIDkwNDMsIGNvbnRleHQubG9nZ2VyKTtcbiAgICBpZiAoIW9wdGlvbnMuZGlzYWJsZUNsaWVudE92ZXJyaWRlKSB7XG4gICAgICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRMb2dzV2Vic29ja2V0Q29udHJvbGxlcigpKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyID0gbmV3IEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIoXG4gICAgICAgIGFsbEZhcm1Db25maWcsXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICBvcHRpb25zLmJ1aWxkRGVidWdPbmx5XG4gICAgKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoYnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlcik7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnLCBidWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyKVxuICAgICk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnLCB0cnVlLCBmYWxzZSkpO1xuXG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlcigpKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlcihjYW5keU1vZHVsZXNEaXJlY3RvcnkpKTtcbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBCdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXIoZW5naW5lRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkRGVidWdPbmx5KVxuICAgICk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJDbGllbnRKc0NvbnRyb2xsZXIoZW5naW5lRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkRGVidWdPbmx5LCBvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSwge1xuICAgICAgICAgICAgZnJvbnRFbmREZXZNb2RlOiBvcHRpb25zLmRldmVsb3BtZW50TW9kZSxcbiAgICAgICAgfSlcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZykpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IHdlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IGNvbnRleHQud2FpdEZvckV4aXQoKTtcbiAgICBhd2FpdCB3ZWJTZXJ2ZXIuc3RvcCgpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdG9wKCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFBQSxZQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFB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