@kontur.candy/tools 2.210.1-cgroupv2.0 → 2.210.1-cgroupv2.1

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 (625) hide show
  1. package/distr/Common/AsyncUtils.js +18 -0
  2. package/distr/Common/AsyncUtils.js.map +1 -0
  3. package/distr/Common/AutoValidationUtils.js +8 -0
  4. package/distr/Common/AutoValidationUtils.js.map +1 -0
  5. package/distr/Common/CandyApiClient/CandyApiClient.js +578 -0
  6. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -0
  7. package/distr/Common/CandyApiClient/CandyApiClientContext.js +18 -0
  8. package/distr/Common/CandyApiClient/CandyApiClientContext.js.map +1 -0
  9. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +6 -0
  10. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js.map +1 -0
  11. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +6 -0
  12. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js.map +1 -0
  13. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +12 -0
  14. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js.map +1 -0
  15. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +6 -0
  16. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js.map +1 -0
  17. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +33 -0
  18. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js.map +1 -0
  19. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +35 -0
  20. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js.map +1 -0
  21. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +20 -0
  22. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js.map +1 -0
  23. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +89 -0
  24. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js.map +1 -0
  25. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +42 -0
  26. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js.map +1 -0
  27. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +9 -0
  28. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js.map +1 -0
  29. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +6 -0
  30. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js.map +1 -0
  31. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +18 -0
  32. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js.map +1 -0
  33. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +15 -0
  34. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js.map +1 -0
  35. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +19 -0
  36. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js.map +1 -0
  37. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +6 -0
  38. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js.map +1 -0
  39. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +248 -0
  40. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -0
  41. package/distr/Common/CandyApiClient/ICandyApiClient.js +6 -0
  42. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -0
  43. package/distr/Common/CandyApiClient/IsBuffer.js +15 -0
  44. package/distr/Common/CandyApiClient/IsBuffer.js.map +1 -0
  45. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +6 -0
  46. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js.map +1 -0
  47. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +6 -0
  48. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js.map +1 -0
  49. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +6 -0
  50. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js.map +1 -0
  51. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +6 -0
  52. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js.map +1 -0
  53. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +6 -0
  54. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js.map +1 -0
  55. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +24 -0
  56. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js.map +1 -0
  57. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +6 -0
  58. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js.map +1 -0
  59. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +6 -0
  60. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -0
  61. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +9 -0
  62. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js.map +1 -0
  63. package/distr/Common/CandyApiClient/Types/DraftFullId.js +6 -0
  64. package/distr/Common/CandyApiClient/Types/DraftFullId.js.map +1 -0
  65. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +12 -0
  66. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js.map +1 -0
  67. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js +6 -0
  68. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js.map +1 -0
  69. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js +6 -0
  70. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js.map +1 -0
  71. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +17 -0
  72. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -0
  73. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +13 -0
  74. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js.map +1 -0
  75. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +6 -0
  76. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -0
  77. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +6 -0
  78. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js.map +1 -0
  79. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +15 -0
  80. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js.map +1 -0
  81. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +6 -0
  82. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js.map +1 -0
  83. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +9 -0
  84. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js.map +1 -0
  85. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +6 -0
  86. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js.map +1 -0
  87. package/distr/Common/CandyApiClient/Types/Guid.js +6 -0
  88. package/distr/Common/CandyApiClient/Types/Guid.js.map +1 -0
  89. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +6 -0
  90. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js.map +1 -0
  91. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +6 -0
  92. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js.map +1 -0
  93. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +6 -0
  94. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js.map +1 -0
  95. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +24 -0
  96. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js.map +1 -0
  97. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +6 -0
  98. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js.map +1 -0
  99. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +6 -0
  100. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js.map +1 -0
  101. package/distr/Common/CandyApiClient/Types/Print/PrintType.js +12 -0
  102. package/distr/Common/CandyApiClient/Types/Print/PrintType.js.map +1 -0
  103. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js +15 -0
  104. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js.map +1 -0
  105. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js +19 -0
  106. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js.map +1 -0
  107. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js +15 -0
  108. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js.map +1 -0
  109. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js +15 -0
  110. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js.map +1 -0
  111. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js +13 -0
  112. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js.map +1 -0
  113. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js +15 -0
  114. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js.map +1 -0
  115. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js +15 -0
  116. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js.map +1 -0
  117. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js +15 -0
  118. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js.map +1 -0
  119. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js +21 -0
  120. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js.map +1 -0
  121. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js +15 -0
  122. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js.map +1 -0
  123. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js +19 -0
  124. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js.map +1 -0
  125. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js +15 -0
  126. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js.map +1 -0
  127. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js +6 -0
  128. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js.map +1 -0
  129. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js +26 -0
  130. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -0
  131. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js +6 -0
  132. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js.map +1 -0
  133. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js +16 -0
  134. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js.map +1 -0
  135. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js +16 -0
  136. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js.map +1 -0
  137. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +6 -0
  138. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js.map +1 -0
  139. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +6 -0
  140. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js.map +1 -0
  141. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +6 -0
  142. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js.map +1 -0
  143. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +6 -0
  144. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js.map +1 -0
  145. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +6 -0
  146. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js.map +1 -0
  147. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +14 -0
  148. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js.map +1 -0
  149. package/distr/Common/CollectionUtils.js +15 -0
  150. package/distr/Common/CollectionUtils.js.map +1 -0
  151. package/distr/Common/CommonConstants/SectionNames.js +11 -0
  152. package/distr/Common/CommonConstants/SectionNames.js.map +1 -0
  153. package/distr/Common/Comparers.js +63 -0
  154. package/distr/Common/Comparers.js.map +1 -0
  155. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +22 -0
  156. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js.map +1 -0
  157. package/distr/Common/EndPoints.js +16 -0
  158. package/distr/Common/EndPoints.js.map +1 -0
  159. package/distr/Common/Enums/ButtonSettingsTypeEnum.js +12 -0
  160. package/distr/Common/Enums/ButtonSettingsTypeEnum.js.map +1 -0
  161. package/distr/Common/Errors.js +44 -0
  162. package/distr/Common/Errors.js.map +1 -0
  163. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js +31 -0
  164. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js.map +1 -0
  165. package/distr/Common/FSPrinterClient/FSPrinterClient.js +153 -0
  166. package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -0
  167. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js +19 -0
  168. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js.map +1 -0
  169. package/distr/Common/FSPrinterClient/IFSPrinterClient.js +39 -0
  170. package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -0
  171. package/distr/Common/FormActionHandlers/ContextualActionNames.js +14 -0
  172. package/distr/Common/FormActionHandlers/ContextualActionNames.js.map +1 -0
  173. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +6 -0
  174. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js.map +1 -0
  175. package/distr/Common/FormPathUtils.js +21 -0
  176. package/distr/Common/FormPathUtils.js.map +1 -0
  177. package/distr/Common/Funcs.js +11 -0
  178. package/distr/Common/Funcs.js.map +1 -0
  179. package/distr/Common/GFV.js +6 -0
  180. package/distr/Common/GFV.js.map +1 -0
  181. package/distr/Common/GetRngSchemaFileExtension.js +26 -0
  182. package/distr/Common/GetRngSchemaFileExtension.js.map +1 -0
  183. package/distr/Common/Hooks/UseLocalStorage.js +35 -0
  184. package/distr/Common/Hooks/UseLocalStorage.js.map +1 -0
  185. package/distr/Common/HttpClient/AuthenticationMode.js +31 -0
  186. package/distr/Common/HttpClient/AuthenticationMode.js.map +1 -0
  187. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +9 -0
  188. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js.map +1 -0
  189. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +9 -0
  190. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js.map +1 -0
  191. package/distr/Common/HttpClient/FetchImplementation/Fetch.js +6 -0
  192. package/distr/Common/HttpClient/FetchImplementation/Fetch.js.map +1 -0
  193. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +8 -0
  194. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js.map +1 -0
  195. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +36 -0
  196. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js.map +1 -0
  197. package/distr/Common/HttpClient/HttpClient.js +313 -0
  198. package/distr/Common/HttpClient/HttpClient.js.map +1 -0
  199. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +6 -0
  200. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js.map +1 -0
  201. package/distr/Common/HttpClient/IHttpClient.js +6 -0
  202. package/distr/Common/HttpClient/IHttpClient.js.map +1 -0
  203. package/distr/Common/IndentString.js +16 -0
  204. package/distr/Common/IndentString.js.map +1 -0
  205. package/distr/Common/IntRangeUtils.js +32 -0
  206. package/distr/Common/IntRangeUtils.js.map +1 -0
  207. package/distr/Common/IterableUtils.js +288 -0
  208. package/distr/Common/IterableUtils.js.map +1 -0
  209. package/distr/Common/KCLangRuntimeUtils.js +266 -0
  210. package/distr/Common/KCLangRuntimeUtils.js.map +1 -0
  211. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +55 -0
  212. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -0
  213. package/distr/Common/ModelPath/BuildIterationSequence.js +41 -0
  214. package/distr/Common/ModelPath/BuildIterationSequence.js.map +1 -0
  215. package/distr/Common/ModelPath/EachCurrentCollision.js +12 -0
  216. package/distr/Common/ModelPath/EachCurrentCollision.js.map +1 -0
  217. package/distr/Common/ModelPath/IEquatable.js +6 -0
  218. package/distr/Common/ModelPath/IEquatable.js.map +1 -0
  219. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +23 -0
  220. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js.map +1 -0
  221. package/distr/Common/ModelPath/Map/Map2.js +99 -0
  222. package/distr/Common/ModelPath/Map/Map2.js.map +1 -0
  223. package/distr/Common/ModelPath/Map/ModelPathMap.js +23 -0
  224. package/distr/Common/ModelPath/Map/ModelPathMap.js.map +1 -0
  225. package/distr/Common/ModelPath/ModelPath.js +476 -0
  226. package/distr/Common/ModelPath/ModelPath.js.map +1 -0
  227. package/distr/Common/ModelPath/ModelPathBuilder.js +42 -0
  228. package/distr/Common/ModelPath/ModelPathBuilder.js.map +1 -0
  229. package/distr/Common/ModelPath/ModelPathHelper.js +34 -0
  230. package/distr/Common/ModelPath/ModelPathHelper.js.map +1 -0
  231. package/distr/Common/ModelPath/PathMatcher.js +95 -0
  232. package/distr/Common/ModelPath/PathMatcher.js.map +1 -0
  233. package/distr/Common/ModelPath/PathSplitHelper.js +21 -0
  234. package/distr/Common/ModelPath/PathSplitHelper.js.map +1 -0
  235. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +31 -0
  236. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js.map +1 -0
  237. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +31 -0
  238. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js.map +1 -0
  239. package/distr/Common/ModelPath/Set/ModelPathSet.js +31 -0
  240. package/distr/Common/ModelPath/Set/ModelPathSet.js.map +1 -0
  241. package/distr/Common/ModelPath/Set/Set2.js +59 -0
  242. package/distr/Common/ModelPath/Set/Set2.js.map +1 -0
  243. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +33 -0
  244. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js.map +1 -0
  245. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +6 -0
  246. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js.map +1 -0
  247. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +11 -0
  248. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js.map +1 -0
  249. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +66 -0
  250. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js.map +1 -0
  251. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +108 -0
  252. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js.map +1 -0
  253. package/distr/Common/NidusClient/INidusClient.js +14 -0
  254. package/distr/Common/NidusClient/INidusClient.js.map +1 -0
  255. package/distr/Common/NidusClient/NidusClientContext.js +34 -0
  256. package/distr/Common/NidusClient/NidusClientContext.js.map +1 -0
  257. package/distr/Common/NidusClient/NidusClientImpl.js +55 -0
  258. package/distr/Common/NidusClient/NidusClientImpl.js.map +1 -0
  259. package/distr/Common/PathConstants.js +11 -0
  260. package/distr/Common/PathConstants.js.map +1 -0
  261. package/distr/Common/PicklistApiClient/IPicklistApiClient.js +6 -0
  262. package/distr/Common/PicklistApiClient/IPicklistApiClient.js.map +1 -0
  263. package/distr/Common/PicklistApiClient/PicklistApiClient.js +31 -0
  264. package/distr/Common/PicklistApiClient/PicklistApiClient.js.map +1 -0
  265. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +36 -0
  266. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js.map +1 -0
  267. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +53 -0
  268. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js.map +1 -0
  269. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +37 -0
  270. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js.map +1 -0
  271. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js +6 -0
  272. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js.map +1 -0
  273. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js +6 -0
  274. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js.map +1 -0
  275. package/distr/Common/RngSchemeTypes/types.js +6 -0
  276. package/distr/Common/RngSchemeTypes/types.js.map +1 -0
  277. package/distr/Common/StringArrayKey.js +26 -0
  278. package/distr/Common/StringArrayKey.js.map +1 -0
  279. package/distr/Common/TextExtractor/TextExtractorTypes.js +6 -0
  280. package/distr/Common/TextExtractor/TextExtractorTypes.js.map +1 -0
  281. package/distr/Common/TypingUtils.js +118 -0
  282. package/distr/Common/TypingUtils.js.map +1 -0
  283. package/distr/Common/UUID.js +14 -0
  284. package/distr/Common/UUID.js.map +1 -0
  285. package/distr/Common/UseAsyncEffect.js +20 -0
  286. package/distr/Common/UseAsyncEffect.js.map +1 -0
  287. package/distr/Common/UseShowOnce.js +60 -0
  288. package/distr/Common/UseShowOnce.js.map +1 -0
  289. package/distr/Common/UseTypedSelector.js +10 -0
  290. package/distr/Common/UseTypedSelector.js.map +1 -0
  291. package/distr/Common/WellKnownDirectories.js +14 -0
  292. package/distr/Common/WellKnownDirectories.js.map +1 -0
  293. package/distr/Common/hashUtils.js +14 -0
  294. package/distr/Common/hashUtils.js.map +1 -0
  295. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +77 -0
  296. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js.map +1 -0
  297. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +14 -0
  298. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js.map +1 -0
  299. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +22 -0
  300. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js.map +1 -0
  301. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +88 -0
  302. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js.map +1 -0
  303. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +82 -0
  304. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js.map +1 -0
  305. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +10 -0
  306. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js.map +1 -0
  307. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +42 -0
  308. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js.map +1 -0
  309. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +30 -0
  310. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js.map +1 -0
  311. package/distr/Tools/src/BuildTasks/FSTask.js +67 -0
  312. package/distr/Tools/src/BuildTasks/FSTask.js.map +1 -0
  313. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +52 -0
  314. package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -0
  315. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +44 -0
  316. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -0
  317. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +37 -0
  318. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js.map +1 -0
  319. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +25 -0
  320. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js.map +1 -0
  321. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +31 -0
  322. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js.map +1 -0
  323. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +27 -0
  324. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js.map +1 -0
  325. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +95 -0
  326. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -0
  327. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +126 -0
  328. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -0
  329. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +174 -0
  330. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js.map +1 -0
  331. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +121 -0
  332. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -0
  333. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +45 -0
  334. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js.map +1 -0
  335. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +52 -0
  336. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -0
  337. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +49 -0
  338. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +1 -0
  339. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +19 -0
  340. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js.map +1 -0
  341. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +64 -0
  342. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js.map +1 -0
  343. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +84 -0
  344. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -0
  345. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +174 -0
  346. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -0
  347. package/distr/Tools/src/BuildTasks/ReadFormSource.js +112 -0
  348. package/distr/Tools/src/BuildTasks/ReadFormSource.js.map +1 -0
  349. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +107 -0
  350. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -0
  351. package/distr/Tools/src/BuildTasks/Version.js +41 -0
  352. package/distr/Tools/src/BuildTasks/Version.js.map +1 -0
  353. package/distr/Tools/src/BuildTasks/WriteFormMeta.js +27 -0
  354. package/distr/Tools/src/BuildTasks/WriteFormMeta.js.map +1 -0
  355. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +28 -0
  356. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js.map +1 -0
  357. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +169 -0
  358. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -0
  359. package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js +24 -0
  360. package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js.map +1 -0
  361. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +234 -0
  362. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -0
  363. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +36 -0
  364. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js.map +1 -0
  365. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +112 -0
  366. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js.map +1 -0
  367. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +158 -0
  368. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -0
  369. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +94 -0
  370. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -0
  371. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +129 -0
  372. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -0
  373. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js +45 -0
  374. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js.map +1 -0
  375. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +76 -0
  376. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js.map +1 -0
  377. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +67 -0
  378. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js.map +1 -0
  379. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +65 -0
  380. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -0
  381. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +117 -0
  382. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js.map +1 -0
  383. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +22 -0
  384. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js.map +1 -0
  385. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +96 -0
  386. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js.map +1 -0
  387. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +231 -0
  388. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -0
  389. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js +70 -0
  390. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js.map +1 -0
  391. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +57 -0
  392. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -0
  393. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +67 -0
  394. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -0
  395. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +21 -0
  396. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js.map +1 -0
  397. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +52 -0
  398. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -0
  399. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +80 -0
  400. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js.map +1 -0
  401. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +31 -0
  402. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js.map +1 -0
  403. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +6 -0
  404. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js.map +1 -0
  405. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +6 -0
  406. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js.map +1 -0
  407. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +184 -0
  408. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js.map +1 -0
  409. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +213 -0
  410. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -0
  411. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +28 -0
  412. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js.map +1 -0
  413. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +6 -0
  414. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js.map +1 -0
  415. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +110 -0
  416. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -0
  417. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +50 -0
  418. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js.map +1 -0
  419. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +19 -0
  420. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js.map +1 -0
  421. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +30 -0
  422. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js.map +1 -0
  423. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +6 -0
  424. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js.map +1 -0
  425. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +163 -0
  426. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -0
  427. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +112 -0
  428. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -0
  429. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +34 -0
  430. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js.map +1 -0
  431. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +50 -0
  432. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js.map +1 -0
  433. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +54 -0
  434. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js.map +1 -0
  435. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}./320/232/320/241.candy.js.kclang +0 -0
  436. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.AfterMerge.xslt +11 -0
  437. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.BeforePreload.xslt +11 -0
  438. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.fufPatcher.xslt +11 -0
  439. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.outer.inner.json +1 -0
  440. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js +2 -0
  441. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js.map +1 -0
  442. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/form.json +12 -0
  443. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/addPril1.txt +6 -0
  444. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/presentations.json +8 -0
  445. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/schemas/{gfv}.0.rng.xml +20 -0
  446. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/sugar/index.sugar.xml +10 -0
  447. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +16 -0
  448. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +1 -0
  449. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +23 -0
  450. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +1 -0
  451. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/validations.KC.kclang +0 -0
  452. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +34 -0
  453. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js.map +1 -0
  454. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +117 -0
  455. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js.map +1 -0
  456. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +44 -0
  457. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js.map +1 -0
  458. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +73 -0
  459. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js.map +1 -0
  460. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +25 -0
  461. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js.map +1 -0
  462. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +38 -0
  463. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js.map +1 -0
  464. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js +36 -0
  465. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js.map +1 -0
  466. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js +50 -0
  467. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js.map +1 -0
  468. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +144 -0
  469. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js.map +1 -0
  470. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +78 -0
  471. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js.map +1 -0
  472. package/distr/Tools/src/CandyCLI.js +144 -0
  473. package/distr/Tools/src/CandyCLI.js.map +1 -0
  474. package/distr/Tools/src/CheckNodeJsVersion.js +32 -0
  475. package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -0
  476. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +28 -0
  477. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js.map +1 -0
  478. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +93 -0
  479. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js.map +1 -0
  480. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +24 -0
  481. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js.map +1 -0
  482. package/distr/Tools/src/Commons/ErrorUntyped.js +6 -0
  483. package/distr/Tools/src/Commons/ErrorUntyped.js.map +1 -0
  484. package/distr/Tools/src/Commons/EventObject.js +74 -0
  485. package/distr/Tools/src/Commons/EventObject.js.map +1 -0
  486. package/distr/Tools/src/Commons/ExecUtils.js +38 -0
  487. package/distr/Tools/src/Commons/ExecUtils.js.map +1 -0
  488. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +21 -0
  489. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js.map +1 -0
  490. package/distr/Tools/src/Commons/FormGlobsUtils.js +137 -0
  491. package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -0
  492. package/distr/Tools/src/Commons/FormLocationInfo.js +6 -0
  493. package/distr/Tools/src/Commons/FormLocationInfo.js.map +1 -0
  494. package/distr/Tools/src/Commons/FsUtils.js +35 -0
  495. package/distr/Tools/src/Commons/FsUtils.js.map +1 -0
  496. package/distr/Tools/src/Commons/GetCpuLimits.js +64 -0
  497. package/distr/Tools/src/Commons/GetCpuLimits.js.map +1 -0
  498. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +38 -0
  499. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js.map +1 -0
  500. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +57 -0
  501. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js.map +1 -0
  502. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +15 -0
  503. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js.map +1 -0
  504. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +18 -0
  505. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js.map +1 -0
  506. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +6 -0
  507. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js.map +1 -0
  508. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +14 -0
  509. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js.map +1 -0
  510. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +17 -0
  511. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js.map +1 -0
  512. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +22 -0
  513. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js.map +1 -0
  514. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +20 -0
  515. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js.map +1 -0
  516. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +46 -0
  517. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js.map +1 -0
  518. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +13 -0
  519. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js.map +1 -0
  520. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +18 -0
  521. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js.map +1 -0
  522. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +13 -0
  523. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js.map +1 -0
  524. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +13 -0
  525. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js.map +1 -0
  526. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +6 -0
  527. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js.map +1 -0
  528. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +13 -0
  529. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js.map +1 -0
  530. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +13 -0
  531. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js.map +1 -0
  532. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +113 -0
  533. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js.map +1 -0
  534. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +24 -0
  535. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js.map +1 -0
  536. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +106 -0
  537. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js.map +1 -0
  538. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +22 -0
  539. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js.map +1 -0
  540. package/distr/Tools/src/Commons/Locks/Lock.js +24 -0
  541. package/distr/Tools/src/Commons/Locks/Lock.js.map +1 -0
  542. package/distr/Tools/src/Commons/Locks/LockHandle.js +17 -0
  543. package/distr/Tools/src/Commons/Locks/LockHandle.js.map +1 -0
  544. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +31 -0
  545. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js.map +1 -0
  546. package/distr/Tools/src/Commons/Logging/ELKLogger.js +56 -0
  547. package/distr/Tools/src/Commons/Logging/ELKLogger.js.map +1 -0
  548. package/distr/Tools/src/Commons/Logging/ILogger.js +25 -0
  549. package/distr/Tools/src/Commons/Logging/ILogger.js.map +1 -0
  550. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +61 -0
  551. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js.map +1 -0
  552. package/distr/Tools/src/Commons/Logging/Logger.js +78 -0
  553. package/distr/Tools/src/Commons/Logging/Logger.js.map +1 -0
  554. package/distr/Tools/src/Commons/Logging/StaticLogger.js +37 -0
  555. package/distr/Tools/src/Commons/Logging/StaticLogger.js.map +1 -0
  556. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +2 -0
  557. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js.map +1 -0
  558. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +152 -0
  559. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js.map +1 -0
  560. package/distr/Tools/src/Commons/PathPattern.js +42 -0
  561. package/distr/Tools/src/Commons/PathPattern.js.map +1 -0
  562. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +16 -0
  563. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js.map +1 -0
  564. package/distr/Tools/src/Commons/TasksCore/BuildTask.js +6 -0
  565. package/distr/Tools/src/Commons/TasksCore/BuildTask.js.map +1 -0
  566. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +668 -0
  567. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -0
  568. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +77 -0
  569. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js.map +1 -0
  570. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +20 -0
  571. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js.map +1 -0
  572. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +48 -0
  573. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js.map +1 -0
  574. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +45 -0
  575. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js.map +1 -0
  576. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +25 -0
  577. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js.map +1 -0
  578. package/distr/Tools/src/Commons/TasksCore/Observe.js +35 -0
  579. package/distr/Tools/src/Commons/TasksCore/Observe.js.map +1 -0
  580. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +29 -0
  581. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js.map +1 -0
  582. package/distr/Tools/src/Commons/TimingUtils.js +13 -0
  583. package/distr/Tools/src/Commons/TimingUtils.js.map +1 -0
  584. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +180 -0
  585. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -0
  586. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +145 -0
  587. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +1 -0
  588. package/distr/Tools/src/FormWebpackConfiguration/variables.less +132 -0
  589. package/distr/Tools/src/GenerateReadMe.js +54 -0
  590. package/distr/Tools/src/GenerateReadMe.js.map +1 -0
  591. package/distr/Tools/src/Keys/localhost-key.pem +116 -0
  592. package/distr/Tools/src/Keys/localhost.pem +35 -0
  593. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +2 -0
  594. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +49 -0
  595. package/distr/Tools/src/LocalServerFrontEndDist/favicon-16x16.png +0 -0
  596. package/distr/Tools/src/LocalServerFrontEndDist/favicon-32x32.png +0 -0
  597. package/distr/Tools/src/LocalServerFrontEndDist/favicon.ico +0 -0
  598. package/distr/Tools/src/LocalServerFrontEndDist/index.html +1 -0
  599. package/distr/Tools/src/LocalServerFrontEndDist/index.js +3 -0
  600. package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +60 -0
  601. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -0
  602. package/distr/Tools/src/Options/CandyToolOptions.js +20 -0
  603. package/distr/Tools/src/Options/CandyToolOptions.js.map +1 -0
  604. package/distr/Tools/src/ReadFarmConfig.js +18 -0
  605. package/distr/Tools/src/ReadFarmConfig.js.map +1 -0
  606. package/distr/Tools/src/SelfUpdate.js +121 -0
  607. package/distr/Tools/src/SelfUpdate.js.map +1 -0
  608. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1722 -0
  609. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.LICENSE.txt +1 -0
  610. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -0
  611. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +1076 -0
  612. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -0
  613. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +3328 -0
  614. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js.map +1 -0
  615. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +6517 -0
  616. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js.map +1 -0
  617. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +222 -0
  618. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js.map +1 -0
  619. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +3328 -0
  620. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js.map +1 -0
  621. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +6517 -0
  622. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js.map +1 -0
  623. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +222 -0
  624. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js.map +1 -0
  625. package/package.json +1 -1
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AcquirePublishedGeneratorTask = void 0;
8
+ var _child_process = require("child_process");
9
+ var path = _interopRequireWildcard(require("path"));
10
+ var _fsExtra = require("fs-extra");
11
+ var _pLimit = _interopRequireDefault(require("p-limit"));
12
+ var _StaticLogger = require("../../Commons/Logging/StaticLogger");
13
+ var _ChainableValueProducer = require("../../Commons/TasksCore/ChainableValueProducer");
14
+ var _TypingUtils = require("../../../../Common/TypingUtils");
15
+ var _CreateAsyncGenerator = require("./GeneratorWorker/CreateAsyncGenerator");
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ class AcquirePublishedGeneratorTask extends _ChainableValueProducer.ObservableValueProducerBase {
19
+ constructor(version, candyModulesDirectory, useVersionFromCache, logger = (0, _StaticLogger.getLogger)()) {
20
+ super();
21
+ this.logger = void 0;
22
+ this.version = void 0;
23
+ this.cacheDirectory = void 0;
24
+ this.acquiredGenerator = void 0;
25
+ this.useVersionFromCache = void 0;
26
+ this.acquireLimit = (0, _pLimit.default)(1);
27
+ this.logger = logger.withPrefix("GENERATOR");
28
+ this.version = version;
29
+ this.cacheDirectory = candyModulesDirectory;
30
+ this.useVersionFromCache = useVersionFromCache;
31
+ }
32
+ async getCurrentValue() {
33
+ if (this.acquiredGenerator == undefined) {
34
+ await this.acquireLimit(async () => {
35
+ if (this.acquiredGenerator == undefined) {
36
+ const generatorDirectory = path.join(this.cacheDirectory, "generators", this.version);
37
+ const useGeneratorFromCache = this.useVersionFromCache && (await (0, _fsExtra.pathExists)(generatorDirectory));
38
+ if (!useGeneratorFromCache) {
39
+ await this.prepareGeneratorDirectory(generatorDirectory);
40
+ this.logger.log(`Acquiring generator ${this.version}`);
41
+ await this.execute(generatorDirectory, `npm install @kontur.candy/generator@${this.version}`);
42
+ }
43
+ const result = (0, _CreateAsyncGenerator.createAsyncGenerator)(path.join(generatorDirectory, "node_modules", "@kontur.candy", "generator"), false, false);
44
+ this.acquiredGenerator = result;
45
+ }
46
+ });
47
+ }
48
+ if (this.acquiredGenerator == undefined) {
49
+ throw new Error("InvalidProgramState");
50
+ }
51
+ return this.acquiredGenerator;
52
+ }
53
+ async beginListening() {
54
+ // Нет предков и тут нечего наблюдать
55
+ }
56
+ async stopListening() {
57
+ // Нет предков и тут нечего наблюдать
58
+ }
59
+ async prepareGeneratorDirectory(generatorDirectory) {
60
+ await (0, _fsExtra.ensureDir)(generatorDirectory);
61
+ await (0, _fsExtra.outputFile)(path.resolve(generatorDirectory, "package.json"), `{ "name": "generator", "version": "1.0.0", "description": "Generator", "author": "" }`);
62
+ }
63
+ execute(generatorDirectory, command) {
64
+ const workingDirectory = generatorDirectory;
65
+ const [executable, ...executableArguments] = command.split(" ");
66
+ return new Promise((resolve, rejectPromise) => {
67
+ const {
68
+ npm_config_registry,
69
+ ...env
70
+ } = process.env;
71
+ const watchProcess = (0, _child_process.spawn)(executable !== null && executable !== void 0 ? executable : (0, _TypingUtils.reject)(), executableArguments, {
72
+ cwd: workingDirectory,
73
+ shell: true,
74
+ windowsHide: true,
75
+ stdio: "pipe",
76
+ env: env
77
+ });
78
+ watchProcess.stdout.on("data", data => {
79
+ this.logger.verbose(data.toString());
80
+ });
81
+ watchProcess.stderr.on("data", data => {
82
+ this.logger.verbose(data.toString());
83
+ });
84
+ watchProcess.on("exit", code => {
85
+ if (code !== 0) {
86
+ rejectPromise(new Error(`Command ${command} exited with code ${code}`));
87
+ } else {
88
+ resolve();
89
+ }
90
+ });
91
+ });
92
+ }
93
+ }
94
+ exports.AcquirePublishedGeneratorTask = AcquirePublishedGeneratorTask;
95
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZnNFeHRyYSIsIl9wTGltaXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1N0YXRpY0xvZ2dlciIsIl9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyIiwiX1R5cGluZ1V0aWxzIiwiX0NyZWF0ZUFzeW5jR2VuZXJhdG9yIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiQWNxdWlyZVB1Ymxpc2hlZEdlbmVyYXRvclRhc2siLCJPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2UiLCJjb25zdHJ1Y3RvciIsInZlcnNpb24iLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJ1c2VWZXJzaW9uRnJvbUNhY2hlIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwiY2FjaGVEaXJlY3RvcnkiLCJhY3F1aXJlZEdlbmVyYXRvciIsImFjcXVpcmVMaW1pdCIsInBMaW1pdCIsIndpdGhQcmVmaXgiLCJnZXRDdXJyZW50VmFsdWUiLCJ1bmRlZmluZWQiLCJnZW5lcmF0b3JEaXJlY3RvcnkiLCJqb2luIiwidXNlR2VuZXJhdG9yRnJvbUNhY2hlIiwicGF0aEV4aXN0cyIsInByZXBhcmVHZW5lcmF0b3JEaXJlY3RvcnkiLCJsb2ciLCJleGVjdXRlIiwicmVzdWx0IiwiY3JlYXRlQXN5bmNHZW5lcmF0b3IiLCJFcnJvciIsImJlZ2luTGlzdGVuaW5nIiwic3RvcExpc3RlbmluZyIsImVuc3VyZURpciIsIm91dHB1dEZpbGUiLCJyZXNvbHZlIiwiY29tbWFuZCIsIndvcmtpbmdEaXJlY3RvcnkiLCJleGVjdXRhYmxlIiwiZXhlY3V0YWJsZUFyZ3VtZW50cyIsInNwbGl0IiwiUHJvbWlzZSIsInJlamVjdFByb21pc2UiLCJucG1fY29uZmlnX3JlZ2lzdHJ5IiwiZW52IiwicHJvY2VzcyIsIndhdGNoUHJvY2VzcyIsInNwYXduIiwicmVqZWN0IiwiY3dkIiwic2hlbGwiLCJ3aW5kb3dzSGlkZSIsInN0ZGlvIiwic3Rkb3V0Iiwib24iLCJkYXRhIiwidmVyYm9zZSIsInRvU3RyaW5nIiwic3RkZXJyIiwiY29kZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZVB1Ymxpc2hlZEdlbmVyYXRvclRhc2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG91dHB1dEZpbGUsIHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcblxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IE9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yIH0gZnJvbSBcIi4uL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUFzeW5jR2VuZXJhdG9yIH0gZnJvbSBcIi4vR2VuZXJhdG9yV29ya2VyL0NyZWF0ZUFzeW5jR2VuZXJhdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBBY3F1aXJlUHVibGlzaGVkR2VuZXJhdG9yVGFzayBleHRlbmRzIE9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZTxGb3JtR2VuZXJhdG9yPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IElMb2dnZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWNoZURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgYWNxdWlyZWRHZW5lcmF0b3I/OiBGb3JtR2VuZXJhdG9yO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjcXVpcmVMaW1pdCA9IHBMaW1pdCgxKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmVyc2lvbjogc3RyaW5nLFxuICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbixcbiAgICAgICAgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKClcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIud2l0aFByZWZpeChcIkdFTkVSQVRPUlwiKTtcbiAgICAgICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgdGhpcy5jYWNoZURpcmVjdG9yeSA9IGNhbmR5TW9kdWxlc0RpcmVjdG9yeTtcbiAgICAgICAgdGhpcy51c2VWZXJzaW9uRnJvbUNhY2hlID0gdXNlVmVyc2lvbkZyb21DYWNoZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q3VycmVudFZhbHVlKCk6IFByb21pc2U8Rm9ybUdlbmVyYXRvcj4ge1xuICAgICAgICBpZiAodGhpcy5hY3F1aXJlZEdlbmVyYXRvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYWNxdWlyZUxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3F1aXJlZEdlbmVyYXRvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2VuZXJhdG9yRGlyZWN0b3J5ID0gcGF0aC5qb2luKHRoaXMuY2FjaGVEaXJlY3RvcnksIFwiZ2VuZXJhdG9yc1wiLCB0aGlzLnZlcnNpb24pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VHZW5lcmF0b3JGcm9tQ2FjaGUgPSB0aGlzLnVzZVZlcnNpb25Gcm9tQ2FjaGUgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZ2VuZXJhdG9yRGlyZWN0b3J5KSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VHZW5lcmF0b3JGcm9tQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZUdlbmVyYXRvckRpcmVjdG9yeShnZW5lcmF0b3JEaXJlY3RvcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBBY3F1aXJpbmcgZ2VuZXJhdG9yICR7dGhpcy52ZXJzaW9ufWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlKGdlbmVyYXRvckRpcmVjdG9yeSwgYG5wbSBpbnN0YWxsIEBrb250dXIuY2FuZHkvZ2VuZXJhdG9yQCR7dGhpcy52ZXJzaW9ufWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gY3JlYXRlQXN5bmNHZW5lcmF0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4oZ2VuZXJhdG9yRGlyZWN0b3J5LCBcIm5vZGVfbW9kdWxlc1wiLCBcIkBrb250dXIuY2FuZHlcIiwgXCJnZW5lcmF0b3JcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNxdWlyZWRHZW5lcmF0b3IgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWNxdWlyZWRHZW5lcmF0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkUHJvZ3JhbVN0YXRlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFjcXVpcmVkR2VuZXJhdG9yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBiZWdpbkxpc3RlbmluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8g0J3QtdGCINC/0YDQtdC00LrQvtCyINC4INGC0YPRgiDQvdC10YfQtdCz0L4g0L3QsNCx0LvRjtC00LDRgtGMXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIHN0b3BMaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vINCd0LXRgiDQv9GA0LXQtNC60L7QsiDQuCDRgtGD0YIg0L3QtdGH0LXQs9C+INC90LDQsdC70Y7QtNCw0YLRjFxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgcHJlcGFyZUdlbmVyYXRvckRpcmVjdG9yeShnZW5lcmF0b3JEaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIoZ2VuZXJhdG9yRGlyZWN0b3J5KTtcbiAgICAgICAgYXdhaXQgb3V0cHV0RmlsZShcbiAgICAgICAgICAgIHBhdGgucmVzb2x2ZShnZW5lcmF0b3JEaXJlY3RvcnksIFwicGFja2FnZS5qc29uXCIpLFxuICAgICAgICAgICAgYHsgXCJuYW1lXCI6IFwiZ2VuZXJhdG9yXCIsIFwidmVyc2lvblwiOiBcIjEuMC4wXCIsIFwiZGVzY3JpcHRpb25cIjogXCJHZW5lcmF0b3JcIiwgXCJhdXRob3JcIjogXCJcIiB9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhlY3V0ZShnZW5lcmF0b3JEaXJlY3Rvcnk6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHdvcmtpbmdEaXJlY3RvcnkgPSBnZW5lcmF0b3JEaXJlY3Rvcnk7XG4gICAgICAgIGNvbnN0IFtleGVjdXRhYmxlLCAuLi5leGVjdXRhYmxlQXJndW1lbnRzXSA9IGNvbW1hbmQuc3BsaXQoXCIgXCIpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdFByb21pc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbnBtX2NvbmZpZ19yZWdpc3RyeSwgLi4uZW52IH0gPSBwcm9jZXNzLmVudjtcbiAgICAgICAgICAgIGNvbnN0IHdhdGNoUHJvY2VzcyA9IHNwYXduKGV4ZWN1dGFibGUgPz8gcmVqZWN0KCksIGV4ZWN1dGFibGVBcmd1bWVudHMsIHtcbiAgICAgICAgICAgICAgICBjd2Q6IHdvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgc2hlbGw6IHRydWUsXG4gICAgICAgICAgICAgICAgd2luZG93c0hpZGU6IHRydWUsXG4gICAgICAgICAgICAgICAgc3RkaW86IFwicGlwZVwiLFxuICAgICAgICAgICAgICAgIGVudjogZW52LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3YXRjaFByb2Nlc3Muc3Rkb3V0Lm9uKFwiZGF0YVwiLCAoZGF0YTogQnVmZmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIudmVyYm9zZShkYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3YXRjaFByb2Nlc3Muc3RkZXJyLm9uKFwiZGF0YVwiLCAoZGF0YTogQnVmZmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIudmVyYm9zZShkYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3YXRjaFByb2Nlc3Mub24oXCJleGl0XCIsIGNvZGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb2RlICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdFByb21pc2UobmV3IEVycm9yKGBDb21tYW5kICR7Y29tbWFuZH0gZXhpdGVkIHdpdGggY29kZSAke2NvZGV9YCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBR0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sdUJBQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLFlBQUEsR0FBQVIsT0FBQTtBQUVBLElBQUFTLHFCQUFBLEdBQUFULE9BQUE7QUFBOEUsU0FBQVUseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVQsd0JBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcquirePublishedGeneratorTask.js","names":["_child_process","require","path","_interopRequireWildcard","_fsExtra","_pLimit","_interopRequireDefault","_StaticLogger","_ChainableValueProducer","_TypingUtils","_CreateAsyncGenerator","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AcquirePublishedGeneratorTask","ObservableValueProducerBase","constructor","version","candyModulesDirectory","useVersionFromCache","logger","getLogger","cacheDirectory","acquiredGenerator","acquireLimit","pLimit","withPrefix","getCurrentValue","undefined","generatorDirectory","join","useGeneratorFromCache","pathExists","prepareGeneratorDirectory","log","execute","result","createAsyncGenerator","Error","beginListening","stopListening","ensureDir","outputFile","resolve","command","workingDirectory","executable","executableArguments","split","Promise","rejectPromise","npm_config_registry","env","process","watchProcess","spawn","reject","cwd","shell","windowsHide","stdio","stdout","on","data","verbose","toString","stderr","code","exports"],"sources":["../../../../../src/BuildTasks/Generator/AcquirePublishedGeneratorTask.ts"],"sourcesContent":["import { spawn } from \"child_process\";\nimport * as path from \"path\";\n\nimport { ensureDir, outputFile, pathExists } from \"fs-extra\";\nimport pLimit from \"p-limit\";\n\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { ObservableValueProducerBase } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { FormGenerator } from \"../Form/GenerateForm\";\nimport { reject } from \"../../../../Common/TypingUtils\";\n\nimport { createAsyncGenerator } from \"./GeneratorWorker/CreateAsyncGenerator\";\n\nexport class AcquirePublishedGeneratorTask extends ObservableValueProducerBase<FormGenerator> {\n private readonly logger: ILogger;\n private readonly version: string;\n private readonly cacheDirectory: string;\n private acquiredGenerator?: FormGenerator;\n private readonly useVersionFromCache: boolean;\n private readonly acquireLimit = pLimit(1);\n\n public constructor(\n version: string,\n candyModulesDirectory: string,\n useVersionFromCache: boolean,\n logger: ILogger = getLogger()\n ) {\n super();\n this.logger = logger.withPrefix(\"GENERATOR\");\n this.version = version;\n this.cacheDirectory = candyModulesDirectory;\n this.useVersionFromCache = useVersionFromCache;\n }\n\n public async getCurrentValue(): Promise<FormGenerator> {\n if (this.acquiredGenerator == undefined) {\n await this.acquireLimit(async () => {\n if (this.acquiredGenerator == undefined) {\n const generatorDirectory = path.join(this.cacheDirectory, \"generators\", this.version);\n const useGeneratorFromCache = this.useVersionFromCache && (await pathExists(generatorDirectory));\n\n if (!useGeneratorFromCache) {\n await this.prepareGeneratorDirectory(generatorDirectory);\n this.logger.log(`Acquiring generator ${this.version}`);\n await this.execute(generatorDirectory, `npm install @kontur.candy/generator@${this.version}`);\n }\n\n const result = createAsyncGenerator(\n path.join(generatorDirectory, \"node_modules\", \"@kontur.candy\", \"generator\"),\n false,\n false\n );\n this.acquiredGenerator = result;\n }\n });\n }\n if (this.acquiredGenerator == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n return this.acquiredGenerator;\n }\n\n protected async beginListening(): Promise<void> {\n // Нет предков и тут нечего наблюдать\n }\n\n protected async stopListening(): Promise<void> {\n // Нет предков и тут нечего наблюдать\n }\n\n private async prepareGeneratorDirectory(generatorDirectory: string): Promise<void> {\n await ensureDir(generatorDirectory);\n await outputFile(\n path.resolve(generatorDirectory, \"package.json\"),\n `{ \"name\": \"generator\", \"version\": \"1.0.0\", \"description\": \"Generator\", \"author\": \"\" }`\n );\n }\n\n private execute(generatorDirectory: string, command: string): Promise<void> {\n const workingDirectory = generatorDirectory;\n const [executable, ...executableArguments] = command.split(\" \");\n return new Promise<void>((resolve, rejectPromise) => {\n const { npm_config_registry, ...env } = process.env;\n const watchProcess = spawn(executable ?? reject(), executableArguments, {\n cwd: workingDirectory,\n shell: true,\n windowsHide: true,\n stdio: \"pipe\",\n env: env,\n });\n watchProcess.stdout.on(\"data\", (data: Buffer | string) => {\n this.logger.verbose(data.toString());\n });\n watchProcess.stderr.on(\"data\", (data: Buffer | string) => {\n this.logger.verbose(data.toString());\n });\n watchProcess.on(\"exit\", code => {\n if (code !== 0) {\n rejectPromise(new Error(`Command ${command} exited with code ${code}`));\n } else {\n resolve();\n }\n });\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.BuildGeneratorFromSourcesTask = void 0;
8
+ var _path = _interopRequireDefault(require("path"));
9
+ var _chokidar = require("chokidar");
10
+ var _lodash = _interopRequireDefault(require("lodash"));
11
+ var _pLimit = _interopRequireDefault(require("p-limit"));
12
+ var _ExecUtils = require("../../Commons/ExecUtils");
13
+ var _ILogger = require("../../Commons/Logging/ILogger");
14
+ var _StaticLogger = require("../../Commons/Logging/StaticLogger");
15
+ var _ChainableValueProducer = require("../../Commons/TasksCore/ChainableValueProducer");
16
+ var _EngineStructureUtils = require("../EngineStructureUtils");
17
+ var _ProcessUtils = require("../ProcessUtils/ProcessUtils");
18
+ var _IsWebpack = require("../ClientJS/IsWebpack5");
19
+ var _CreateAsyncGenerator = require("./GeneratorWorker/CreateAsyncGenerator");
20
+ const generatorBuildLimit = (0, _pLimit.default)(1);
21
+ class BuildGeneratorFromSourcesTask extends _ChainableValueProducer.ObservableValueProducerBase {
22
+ constructor(pathToEngineSources, logger = (0, _StaticLogger.getLogger)()) {
23
+ super();
24
+ this.pathToEngineSources = void 0;
25
+ this.logger = void 0;
26
+ this.useWatch = false;
27
+ this.currentGenerator = void 0;
28
+ this.buildProcess = void 0;
29
+ this.buildResultWatcher = void 0;
30
+ this.handleUpdate = async () => {
31
+ this.logger.log("Generator sources updated");
32
+ await this.emitUpdate((0, _CreateAsyncGenerator.createAsyncGenerator)(_path.default.join(this.pathToEngineSources, "Generator"), this.useWatch, this.useWatch));
33
+ };
34
+ this.logger = logger.withPrefix("GENERATOR");
35
+ this.pathToEngineSources = pathToEngineSources;
36
+ }
37
+ async getCurrentValue() {
38
+ return generatorBuildLimit(async () => {
39
+ if (this.currentGenerator != undefined) {
40
+ return this.currentGenerator;
41
+ }
42
+ if (this.useWatch) {
43
+ if (this.buildProcess == undefined) {
44
+ this.buildProcess = await this.runWatchProcessStarted();
45
+ this.buildResultWatcher = await this.createBuildResultWatcher(_path.default.join(this.pathToEngineSources, "Generator", "dist"));
46
+ this.currentGenerator = (0, _CreateAsyncGenerator.createAsyncGenerator)(_path.default.join(this.pathToEngineSources, "Generator"), this.useWatch, this.useWatch);
47
+ }
48
+ } else {
49
+ this.currentGenerator = await this.acquireGeneratorFromSources();
50
+ }
51
+ if (this.currentGenerator == undefined) {
52
+ throw new Error("InvalidProgramState");
53
+ }
54
+ return this.currentGenerator;
55
+ });
56
+ }
57
+ async beginListening() {
58
+ this.useWatch = true;
59
+ }
60
+ async stopListening() {
61
+ if (this.buildProcess != undefined) {
62
+ try {
63
+ const buildProcess = this.buildProcess;
64
+ this.buildProcess = undefined;
65
+ await buildProcess.kill();
66
+ } catch (error) {
67
+ this.logger.error(`Failed to stop process: ${error}`);
68
+ }
69
+ }
70
+ if (this.buildResultWatcher != undefined) {
71
+ this.buildResultWatcher.close();
72
+ }
73
+ this.useWatch = false;
74
+ }
75
+ async acquireGeneratorFromSources() {
76
+ const action = (0, _ILogger.buildActionBegin)(this.logger, "Build generator");
77
+ const buildDirectory = await this.getBuildDirectory();
78
+ await (0, _ExecUtils.execCommandAsync)(this.logger, `npm run generator:build`, {
79
+ cwd: buildDirectory
80
+ });
81
+ const result = (0, _CreateAsyncGenerator.createAsyncGenerator)(_path.default.join(this.pathToEngineSources, "Generator"), this.useWatch, this.useWatch);
82
+ action.complete();
83
+ return result;
84
+ }
85
+ async getBuildDirectory() {
86
+ return (await (0, _EngineStructureUtils.isNewEngineStructure)(this.pathToEngineSources)) ? _path.default.join(this.pathToEngineSources, "Generator") : this.pathToEngineSources;
87
+ }
88
+ async runWatchProcessStarted() {
89
+ this.logger.log("Start watch");
90
+ const buildDirectory = await this.getBuildDirectory();
91
+ const result = (await (0, _IsWebpack.isYarn)(buildDirectory)) ? _ProcessUtils.ProcessUtils.createShellProcess("yarn", ["generator:build", "--watch"], buildDirectory) : _ProcessUtils.ProcessUtils.createShellProcess("npm", ["run", "generator:build", "--", "--watch"], buildDirectory);
92
+ result.onStdOut.subscribe(data => {
93
+ this.logger.verbose(data.toString());
94
+ });
95
+ result.onStdErr.subscribe(data => {
96
+ this.logger.verbose(data.toString());
97
+ });
98
+ result.start();
99
+ await this.waitFirstCompilationCompleted(result);
100
+ this.logger.log("Successfully complied");
101
+ return result;
102
+ }
103
+ async waitFirstCompilationCompleted(result) {
104
+ await result.waitOutputIncludesString("Successfully compiled");
105
+ }
106
+ async createBuildResultWatcher(pathToGeneratorOutputDir) {
107
+ let maskToObserveGeneratorChanges;
108
+ if (await (0, _EngineStructureUtils.isOldGeneratorSourcesStructure)(this.pathToEngineSources)) {
109
+ maskToObserveGeneratorChanges = ["**/*.js"];
110
+ } else {
111
+ maskToObserveGeneratorChanges = ["Generator/src/**/*.js", "index.js"];
112
+ }
113
+ const watcher = (0, _chokidar.watch)(maskToObserveGeneratorChanges, {
114
+ ignoreInitial: true,
115
+ cwd: pathToGeneratorOutputDir,
116
+ ignorePermissionErrors: false,
117
+ usePolling: true
118
+ });
119
+ const handleAnyFsEventDebounced = _lodash.default.debounce(() => this.handleUpdate(), 500);
120
+ watcher.on("all", handleAnyFsEventDebounced);
121
+ watcher.on("error", handleAnyFsEventDebounced);
122
+ return watcher;
123
+ }
124
+ }
125
+ exports.BuildGeneratorFromSourcesTask = BuildGeneratorFromSourcesTask;
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2Nob2tpZGFyIiwiX2xvZGFzaCIsIl9wTGltaXQiLCJfRXhlY1V0aWxzIiwiX0lMb2dnZXIiLCJfU3RhdGljTG9nZ2VyIiwiX0NoYWluYWJsZVZhbHVlUHJvZHVjZXIiLCJfRW5naW5lU3RydWN0dXJlVXRpbHMiLCJfUHJvY2Vzc1V0aWxzIiwiX0lzV2VicGFjayIsIl9DcmVhdGVBc3luY0dlbmVyYXRvciIsImdlbmVyYXRvckJ1aWxkTGltaXQiLCJwTGltaXQiLCJCdWlsZEdlbmVyYXRvckZyb21Tb3VyY2VzVGFzayIsIk9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSIsImNvbnN0cnVjdG9yIiwicGF0aFRvRW5naW5lU291cmNlcyIsImxvZ2dlciIsImdldExvZ2dlciIsInVzZVdhdGNoIiwiY3VycmVudEdlbmVyYXRvciIsImJ1aWxkUHJvY2VzcyIsImJ1aWxkUmVzdWx0V2F0Y2hlciIsImhhbmRsZVVwZGF0ZSIsImxvZyIsImVtaXRVcGRhdGUiLCJjcmVhdGVBc3luY0dlbmVyYXRvciIsInBhdGgiLCJqb2luIiwid2l0aFByZWZpeCIsImdldEN1cnJlbnRWYWx1ZSIsInVuZGVmaW5lZCIsInJ1bldhdGNoUHJvY2Vzc1N0YXJ0ZWQiLCJjcmVhdGVCdWlsZFJlc3VsdFdhdGNoZXIiLCJhY3F1aXJlR2VuZXJhdG9yRnJvbVNvdXJjZXMiLCJFcnJvciIsImJlZ2luTGlzdGVuaW5nIiwic3RvcExpc3RlbmluZyIsImtpbGwiLCJlcnJvciIsImNsb3NlIiwiYWN0aW9uIiwiYnVpbGRBY3Rpb25CZWdpbiIsImJ1aWxkRGlyZWN0b3J5IiwiZ2V0QnVpbGREaXJlY3RvcnkiLCJleGVjQ29tbWFuZEFzeW5jIiwiY3dkIiwicmVzdWx0IiwiY29tcGxldGUiLCJpc05ld0VuZ2luZVN0cnVjdHVyZSIsImlzWWFybiIsIlByb2Nlc3NVdGlscyIsImNyZWF0ZVNoZWxsUHJvY2VzcyIsIm9uU3RkT3V0Iiwic3Vic2NyaWJlIiwiZGF0YSIsInZlcmJvc2UiLCJ0b1N0cmluZyIsIm9uU3RkRXJyIiwic3RhcnQiLCJ3YWl0Rmlyc3RDb21waWxhdGlvbkNvbXBsZXRlZCIsIndhaXRPdXRwdXRJbmNsdWRlc1N0cmluZyIsInBhdGhUb0dlbmVyYXRvck91dHB1dERpciIsIm1hc2tUb09ic2VydmVHZW5lcmF0b3JDaGFuZ2VzIiwiaXNPbGRHZW5lcmF0b3JTb3VyY2VzU3RydWN0dXJlIiwid2F0Y2hlciIsIndhdGNoIiwiaWdub3JlSW5pdGlhbCIsImlnbm9yZVBlcm1pc3Npb25FcnJvcnMiLCJ1c2VQb2xsaW5nIiwiaGFuZGxlQW55RnNFdmVudERlYm91bmNlZCIsIl8iLCJkZWJvdW5jZSIsIm9uIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL0dlbmVyYXRvci9CdWlsZEdlbmVyYXRvckZyb21Tb3VyY2VzVGFzay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGU1dhdGNoZXIgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHdhdGNoIH0gZnJvbSBcImNob2tpZGFyXCI7XG5pbXBvcnQgXyBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgcExpbWl0IGZyb20gXCJwLWxpbWl0XCI7XG5cbmltcG9ydCB7IGV4ZWNDb21tYW5kQXN5bmMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9FeGVjVXRpbHNcIjtcbmltcG9ydCB7IGJ1aWxkQWN0aW9uQmVnaW4sIElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2UgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgaXNOZXdFbmdpbmVTdHJ1Y3R1cmUsIGlzT2xkR2VuZXJhdG9yU291cmNlc1N0cnVjdHVyZSB9IGZyb20gXCIuLi9FbmdpbmVTdHJ1Y3R1cmVVdGlsc1wiO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvciB9IGZyb20gXCIuLi9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuaW1wb3J0IHsgUHJvY2Vzc1V0aWxzIH0gZnJvbSBcIi4uL1Byb2Nlc3NVdGlscy9Qcm9jZXNzVXRpbHNcIjtcbmltcG9ydCB7IFNoZWxsUHJvY2Vzc0hhbmRsZSB9IGZyb20gXCIuLi9Qcm9jZXNzVXRpbHMvU2hlbGxQcm9jZXNzSGFuZGxlXCI7XG5pbXBvcnQgeyBpc1lhcm4gfSBmcm9tIFwiLi4vQ2xpZW50SlMvSXNXZWJwYWNrNVwiO1xuXG5pbXBvcnQgeyBjcmVhdGVBc3luY0dlbmVyYXRvciB9IGZyb20gXCIuL0dlbmVyYXRvcldvcmtlci9DcmVhdGVBc3luY0dlbmVyYXRvclwiO1xuXG5jb25zdCBnZW5lcmF0b3JCdWlsZExpbWl0ID0gcExpbWl0KDEpO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRHZW5lcmF0b3JGcm9tU291cmNlc1Rhc2sgZXh0ZW5kcyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2U8Rm9ybUdlbmVyYXRvcj4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF0aFRvRW5naW5lU291cmNlczogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBJTG9nZ2VyO1xuICAgIHByaXZhdGUgdXNlV2F0Y2ggPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRHZW5lcmF0b3I/OiBGb3JtR2VuZXJhdG9yO1xuICAgIHByaXZhdGUgYnVpbGRQcm9jZXNzPzogU2hlbGxQcm9jZXNzSGFuZGxlO1xuICAgIHByaXZhdGUgYnVpbGRSZXN1bHRXYXRjaGVyPzogRlNXYXRjaGVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhUb0VuZ2luZVNvdXJjZXM6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKCkpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIud2l0aFByZWZpeChcIkdFTkVSQVRPUlwiKTtcbiAgICAgICAgdGhpcy5wYXRoVG9FbmdpbmVTb3VyY2VzID0gcGF0aFRvRW5naW5lU291cmNlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q3VycmVudFZhbHVlKCk6IFByb21pc2U8Rm9ybUdlbmVyYXRvcj4ge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdG9yQnVpbGRMaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50R2VuZXJhdG9yICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRHZW5lcmF0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy51c2VXYXRjaCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJ1aWxkUHJvY2VzcyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZFByb2Nlc3MgPSBhd2FpdCB0aGlzLnJ1bldhdGNoUHJvY2Vzc1N0YXJ0ZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZFJlc3VsdFdhdGNoZXIgPSBhd2FpdCB0aGlzLmNyZWF0ZUJ1aWxkUmVzdWx0V2F0Y2hlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbih0aGlzLnBhdGhUb0VuZ2luZVNvdXJjZXMsIFwiR2VuZXJhdG9yXCIsIFwiZGlzdFwiKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRHZW5lcmF0b3IgPSBjcmVhdGVBc3luY0dlbmVyYXRvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbih0aGlzLnBhdGhUb0VuZ2luZVNvdXJjZXMsIFwiR2VuZXJhdG9yXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VXYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlV2F0Y2hcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEdlbmVyYXRvciA9IGF3YWl0IHRoaXMuYWNxdWlyZUdlbmVyYXRvckZyb21Tb3VyY2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50R2VuZXJhdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWRQcm9ncmFtU3RhdGVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50R2VuZXJhdG9yO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgYmVnaW5MaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMudXNlV2F0Y2ggPSB0cnVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBzdG9wTGlzdGVuaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5idWlsZFByb2Nlc3MgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUHJvY2VzcyA9IHRoaXMuYnVpbGRQcm9jZXNzO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRQcm9jZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGF3YWl0IGJ1aWxkUHJvY2Vzcy5raWxsKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gc3RvcCBwcm9jZXNzOiAke2Vycm9yfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmJ1aWxkUmVzdWx0V2F0Y2hlciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRXYXRjaGVyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51c2VXYXRjaCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlVXBkYXRlID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coXCJHZW5lcmF0b3Igc291cmNlcyB1cGRhdGVkXCIpO1xuICAgICAgICBhd2FpdCB0aGlzLmVtaXRVcGRhdGUoXG4gICAgICAgICAgICBjcmVhdGVBc3luY0dlbmVyYXRvcihwYXRoLmpvaW4odGhpcy5wYXRoVG9FbmdpbmVTb3VyY2VzLCBcIkdlbmVyYXRvclwiKSwgdGhpcy51c2VXYXRjaCwgdGhpcy51c2VXYXRjaClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBhc3luYyBhY3F1aXJlR2VuZXJhdG9yRnJvbVNvdXJjZXMoKTogUHJvbWlzZTxGb3JtR2VuZXJhdG9yPiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGJ1aWxkQWN0aW9uQmVnaW4odGhpcy5sb2dnZXIsIFwiQnVpbGQgZ2VuZXJhdG9yXCIpO1xuICAgICAgICBjb25zdCBidWlsZERpcmVjdG9yeSA9IGF3YWl0IHRoaXMuZ2V0QnVpbGREaXJlY3RvcnkoKTtcbiAgICAgICAgYXdhaXQgZXhlY0NvbW1hbmRBc3luYyh0aGlzLmxvZ2dlciwgYG5wbSBydW4gZ2VuZXJhdG9yOmJ1aWxkYCwge1xuICAgICAgICAgICAgY3dkOiBidWlsZERpcmVjdG9yeSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNyZWF0ZUFzeW5jR2VuZXJhdG9yKFxuICAgICAgICAgICAgcGF0aC5qb2luKHRoaXMucGF0aFRvRW5naW5lU291cmNlcywgXCJHZW5lcmF0b3JcIiksXG4gICAgICAgICAgICB0aGlzLnVzZVdhdGNoLFxuICAgICAgICAgICAgdGhpcy51c2VXYXRjaFxuICAgICAgICApO1xuICAgICAgICBhY3Rpb24uY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEJ1aWxkRGlyZWN0b3J5KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgaXNOZXdFbmdpbmVTdHJ1Y3R1cmUodGhpcy5wYXRoVG9FbmdpbmVTb3VyY2VzKSlcbiAgICAgICAgICAgID8gcGF0aC5qb2luKHRoaXMucGF0aFRvRW5naW5lU291cmNlcywgXCJHZW5lcmF0b3JcIilcbiAgICAgICAgICAgIDogdGhpcy5wYXRoVG9FbmdpbmVTb3VyY2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgcnVuV2F0Y2hQcm9jZXNzU3RhcnRlZCgpOiBQcm9taXNlPFNoZWxsUHJvY2Vzc0hhbmRsZT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coXCJTdGFydCB3YXRjaFwiKTtcbiAgICAgICAgY29uc3QgYnVpbGREaXJlY3RvcnkgPSBhd2FpdCB0aGlzLmdldEJ1aWxkRGlyZWN0b3J5KCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChhd2FpdCBpc1lhcm4oYnVpbGREaXJlY3RvcnkpKVxuICAgICAgICAgICAgPyBQcm9jZXNzVXRpbHMuY3JlYXRlU2hlbGxQcm9jZXNzKFwieWFyblwiLCBbXCJnZW5lcmF0b3I6YnVpbGRcIiwgXCItLXdhdGNoXCJdLCBidWlsZERpcmVjdG9yeSlcbiAgICAgICAgICAgIDogUHJvY2Vzc1V0aWxzLmNyZWF0ZVNoZWxsUHJvY2VzcyhcIm5wbVwiLCBbXCJydW5cIiwgXCJnZW5lcmF0b3I6YnVpbGRcIiwgXCItLVwiLCBcIi0td2F0Y2hcIl0sIGJ1aWxkRGlyZWN0b3J5KTtcbiAgICAgICAgcmVzdWx0Lm9uU3RkT3V0LnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLnZlcmJvc2UoZGF0YS50b1N0cmluZygpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdC5vblN0ZEVyci5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci52ZXJib3NlKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQuc3RhcnQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rmlyc3RDb21waWxhdGlvbkNvbXBsZXRlZChyZXN1bHQpO1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coXCJTdWNjZXNzZnVsbHkgY29tcGxpZWRcIik7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB3YWl0Rmlyc3RDb21waWxhdGlvbkNvbXBsZXRlZChyZXN1bHQ6IFNoZWxsUHJvY2Vzc0hhbmRsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCByZXN1bHQud2FpdE91dHB1dEluY2x1ZGVzU3RyaW5nKFwiU3VjY2Vzc2Z1bGx5IGNvbXBpbGVkXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY3JlYXRlQnVpbGRSZXN1bHRXYXRjaGVyKHBhdGhUb0dlbmVyYXRvck91dHB1dERpcjogc3RyaW5nKTogUHJvbWlzZTxGU1dhdGNoZXI+IHtcbiAgICAgICAgbGV0IG1hc2tUb09ic2VydmVHZW5lcmF0b3JDaGFuZ2VzOiBzdHJpbmdbXTtcbiAgICAgICAgaWYgKGF3YWl0IGlzT2xkR2VuZXJhdG9yU291cmNlc1N0cnVjdHVyZSh0aGlzLnBhdGhUb0VuZ2luZVNvdXJjZXMpKSB7XG4gICAgICAgICAgICBtYXNrVG9PYnNlcnZlR2VuZXJhdG9yQ2hhbmdlcyA9IFtcIioqLyouanNcIl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXNrVG9PYnNlcnZlR2VuZXJhdG9yQ2hhbmdlcyA9IFtcIkdlbmVyYXRvci9zcmMvKiovKi5qc1wiLCBcImluZGV4LmpzXCJdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdhdGNoZXIgPSB3YXRjaChtYXNrVG9PYnNlcnZlR2VuZXJhdG9yQ2hhbmdlcywge1xuICAgICAgICAgICAgaWdub3JlSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgIGN3ZDogcGF0aFRvR2VuZXJhdG9yT3V0cHV0RGlyLFxuICAgICAgICAgICAgaWdub3JlUGVybWlzc2lvbkVycm9yczogZmFsc2UsXG4gICAgICAgICAgICB1c2VQb2xsaW5nOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlQW55RnNFdmVudERlYm91bmNlZCA9IF8uZGVib3VuY2UoKCkgPT4gdGhpcy5oYW5kbGVVcGRhdGUoKSwgNTAwKTtcbiAgICAgICAgd2F0Y2hlci5vbihcImFsbFwiLCBoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkKTtcbiAgICAgICAgd2F0Y2hlci5vbihcImVycm9yXCIsIGhhbmRsZUFueUZzRXZlbnREZWJvdW5jZWQpO1xuICAgICAgICByZXR1cm4gd2F0Y2hlcjtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyx1QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEscUJBQUEsR0FBQVIsT0FBQTtBQUVBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUVBLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUVBLElBQUFXLHFCQUFB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildGeneratorFromSourcesTask.js","names":["_path","_interopRequireDefault","require","_chokidar","_lodash","_pLimit","_ExecUtils","_ILogger","_StaticLogger","_ChainableValueProducer","_EngineStructureUtils","_ProcessUtils","_IsWebpack","_CreateAsyncGenerator","generatorBuildLimit","pLimit","BuildGeneratorFromSourcesTask","ObservableValueProducerBase","constructor","pathToEngineSources","logger","getLogger","useWatch","currentGenerator","buildProcess","buildResultWatcher","handleUpdate","log","emitUpdate","createAsyncGenerator","path","join","withPrefix","getCurrentValue","undefined","runWatchProcessStarted","createBuildResultWatcher","acquireGeneratorFromSources","Error","beginListening","stopListening","kill","error","close","action","buildActionBegin","buildDirectory","getBuildDirectory","execCommandAsync","cwd","result","complete","isNewEngineStructure","isYarn","ProcessUtils","createShellProcess","onStdOut","subscribe","data","verbose","toString","onStdErr","start","waitFirstCompilationCompleted","waitOutputIncludesString","pathToGeneratorOutputDir","maskToObserveGeneratorChanges","isOldGeneratorSourcesStructure","watcher","watch","ignoreInitial","ignorePermissionErrors","usePolling","handleAnyFsEventDebounced","_","debounce","on","exports"],"sources":["../../../../../src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.ts"],"sourcesContent":["import { FSWatcher } from \"fs\";\nimport path from \"path\";\n\nimport { watch } from \"chokidar\";\nimport _ from \"lodash\";\nimport pLimit from \"p-limit\";\n\nimport { execCommandAsync } from \"../../Commons/ExecUtils\";\nimport { buildActionBegin, ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { ObservableValueProducerBase } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { isNewEngineStructure, isOldGeneratorSourcesStructure } from \"../EngineStructureUtils\";\nimport { FormGenerator } from \"../Form/GenerateForm\";\nimport { ProcessUtils } from \"../ProcessUtils/ProcessUtils\";\nimport { ShellProcessHandle } from \"../ProcessUtils/ShellProcessHandle\";\nimport { isYarn } from \"../ClientJS/IsWebpack5\";\n\nimport { createAsyncGenerator } from \"./GeneratorWorker/CreateAsyncGenerator\";\n\nconst generatorBuildLimit = pLimit(1);\n\nexport class BuildGeneratorFromSourcesTask extends ObservableValueProducerBase<FormGenerator> {\n private readonly pathToEngineSources: string;\n private readonly logger: ILogger;\n private useWatch = false;\n private currentGenerator?: FormGenerator;\n private buildProcess?: ShellProcessHandle;\n private buildResultWatcher?: FSWatcher;\n\n public constructor(pathToEngineSources: string, logger: ILogger = getLogger()) {\n super();\n this.logger = logger.withPrefix(\"GENERATOR\");\n this.pathToEngineSources = pathToEngineSources;\n }\n\n public async getCurrentValue(): Promise<FormGenerator> {\n return generatorBuildLimit(async () => {\n if (this.currentGenerator != undefined) {\n return this.currentGenerator;\n }\n if (this.useWatch) {\n if (this.buildProcess == undefined) {\n this.buildProcess = await this.runWatchProcessStarted();\n this.buildResultWatcher = await this.createBuildResultWatcher(\n path.join(this.pathToEngineSources, \"Generator\", \"dist\")\n );\n this.currentGenerator = createAsyncGenerator(\n path.join(this.pathToEngineSources, \"Generator\"),\n this.useWatch,\n this.useWatch\n );\n }\n } else {\n this.currentGenerator = await this.acquireGeneratorFromSources();\n }\n if (this.currentGenerator == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n return this.currentGenerator;\n });\n }\n\n protected async beginListening(): Promise<void> {\n this.useWatch = true;\n }\n\n protected async stopListening(): Promise<void> {\n if (this.buildProcess != undefined) {\n try {\n const buildProcess = this.buildProcess;\n this.buildProcess = undefined;\n await buildProcess.kill();\n } catch (error) {\n this.logger.error(`Failed to stop process: ${error}`);\n }\n }\n if (this.buildResultWatcher != undefined) {\n this.buildResultWatcher.close();\n }\n this.useWatch = false;\n }\n\n private readonly handleUpdate = async (): Promise<void> => {\n this.logger.log(\"Generator sources updated\");\n await this.emitUpdate(\n createAsyncGenerator(path.join(this.pathToEngineSources, \"Generator\"), this.useWatch, this.useWatch)\n );\n };\n\n private async acquireGeneratorFromSources(): Promise<FormGenerator> {\n const action = buildActionBegin(this.logger, \"Build generator\");\n const buildDirectory = await this.getBuildDirectory();\n await execCommandAsync(this.logger, `npm run generator:build`, {\n cwd: buildDirectory,\n });\n const result = createAsyncGenerator(\n path.join(this.pathToEngineSources, \"Generator\"),\n this.useWatch,\n this.useWatch\n );\n action.complete();\n return result;\n }\n\n private async getBuildDirectory(): Promise<string> {\n return (await isNewEngineStructure(this.pathToEngineSources))\n ? path.join(this.pathToEngineSources, \"Generator\")\n : this.pathToEngineSources;\n }\n\n private async runWatchProcessStarted(): Promise<ShellProcessHandle> {\n this.logger.log(\"Start watch\");\n const buildDirectory = await this.getBuildDirectory();\n const result = (await isYarn(buildDirectory))\n ? ProcessUtils.createShellProcess(\"yarn\", [\"generator:build\", \"--watch\"], buildDirectory)\n : ProcessUtils.createShellProcess(\"npm\", [\"run\", \"generator:build\", \"--\", \"--watch\"], buildDirectory);\n result.onStdOut.subscribe(data => {\n this.logger.verbose(data.toString());\n });\n result.onStdErr.subscribe(data => {\n this.logger.verbose(data.toString());\n });\n result.start();\n await this.waitFirstCompilationCompleted(result);\n this.logger.log(\"Successfully complied\");\n return result;\n }\n\n private async waitFirstCompilationCompleted(result: ShellProcessHandle): Promise<void> {\n await result.waitOutputIncludesString(\"Successfully compiled\");\n }\n\n private async createBuildResultWatcher(pathToGeneratorOutputDir: string): Promise<FSWatcher> {\n let maskToObserveGeneratorChanges: string[];\n if (await isOldGeneratorSourcesStructure(this.pathToEngineSources)) {\n maskToObserveGeneratorChanges = [\"**/*.js\"];\n } else {\n maskToObserveGeneratorChanges = [\"Generator/src/**/*.js\", \"index.js\"];\n }\n const watcher = watch(maskToObserveGeneratorChanges, {\n ignoreInitial: true,\n cwd: pathToGeneratorOutputDir,\n ignorePermissionErrors: false,\n usePolling: true,\n });\n const handleAnyFsEventDebounced = _.debounce(() => this.handleUpdate(), 500);\n watcher.on(\"all\", handleAnyFsEventDebounced);\n watcher.on(\"error\", handleAnyFsEventDebounced);\n return watcher;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createAsyncGenerator = createAsyncGenerator;
7
+ var _child_process = require("child_process");
8
+ var _StaticLogger = require("../../../Commons/Logging/StaticLogger");
9
+ var _IterableUtils = require("../../../../../Common/IterableUtils");
10
+ var _GeneratorRequireUtils = require("./GeneratorRequireUtils");
11
+ /* eslint-disable no-console */
12
+
13
+ class GeneratorAsyncProxy {
14
+ constructor(pathToGeneratorRootDir, purgeCache, useGeneratorRestarting, logger = (0, _StaticLogger.getLogger)()) {
15
+ this.pathToGeneratorRootDir = void 0;
16
+ this.generatorSourcesImporter = void 0;
17
+ this.purgeCache = void 0;
18
+ this.useGeneratorRestarting = void 0;
19
+ this.generatorProcess = void 0;
20
+ this.maxRequestNumber = 0;
21
+ this.processSugarDeferredMap = new Map();
22
+ this.useGeneratorRestarting = useGeneratorRestarting;
23
+ this.pathToGeneratorRootDir = pathToGeneratorRootDir;
24
+ this.purgeCache = purgeCache;
25
+ this.generatorSourcesImporter = new _GeneratorRequireUtils.GeneratorSourcesImporter(purgeCache);
26
+ }
27
+ async getLocalizedSugar(sugarFiles, resources) {
28
+ const localizationEntryPoint = await this.generatorSourcesImporter.importLocalization(this.pathToGeneratorRootDir);
29
+ if (localizationEntryPoint == undefined) {
30
+ throw new Error("Данная версия генератора не поддерживает локализацию.");
31
+ }
32
+ return localizationEntryPoint.getLocalizedSugar(sugarFiles, resources);
33
+ }
34
+ async getDictionary(sugarFiles, resources) {
35
+ const localizationEntryPoint = await this.generatorSourcesImporter.importLocalization(this.pathToGeneratorRootDir);
36
+ if (localizationEntryPoint == undefined) {
37
+ throw new Error("Данная версия генератора не поддерживает локализацию.");
38
+ }
39
+ return localizationEntryPoint.getDictionary(sugarFiles, resources);
40
+ }
41
+ async readSources(formSourcesPath, farmDirectory, hlFarmDirectoryPath) {
42
+ const readSources = await this.generatorSourcesImporter.importReadSources(this.pathToGeneratorRootDir);
43
+ const formSource = await readSources(formSourcesPath, farmDirectory, hlFarmDirectoryPath);
44
+ return formSource;
45
+ }
46
+ async getSugarTexts(formSourcesPath, farmDirectory, hlFarmDirectoryPath) {
47
+ const getSugarTexts = await this.generatorSourcesImporter.importGetSugarTexts(this.pathToGeneratorRootDir);
48
+ const result = await getSugarTexts(formSourcesPath, farmDirectory, hlFarmDirectoryPath);
49
+ return result;
50
+ }
51
+ async getAllDependencies(formSourcesPath, farmDirectory, hlFarmDirectoryPath) {
52
+ const getAllDependencies = await this.generatorSourcesImporter.importGetAllDependencies(this.pathToGeneratorRootDir);
53
+ if (getAllDependencies == undefined) {
54
+ throw new Error("This version of generator does not support dependencies extraction");
55
+ }
56
+ const formSource = await getAllDependencies(formSourcesPath, farmDirectory, hlFarmDirectoryPath);
57
+ return formSource;
58
+ }
59
+ async supportsDependenciesExtraction() {
60
+ const getAllDependenciesHash = await this.generatorSourcesImporter.importGetAllDependenciesHash(this.pathToGeneratorRootDir);
61
+ return getAllDependenciesHash != undefined;
62
+ }
63
+ async getAllDependenciesHash(formSourcesPath, farmDirectory, hlFarmDirectoryPath) {
64
+ const getAllDependenciesHash = await this.generatorSourcesImporter.importGetAllDependenciesHash(this.pathToGeneratorRootDir);
65
+ if (getAllDependenciesHash == undefined) {
66
+ throw new Error("This version of generator does not support dependencies extraction");
67
+ }
68
+ const formSource = await getAllDependenciesHash(formSourcesPath, farmDirectory, hlFarmDirectoryPath);
69
+ return formSource;
70
+ }
71
+ async readSourcesAndProcessSugar(formSourcesPath, farmDirectory, hlFarmDirectoryPath, generationOptions) {
72
+ this.maxRequestNumber++;
73
+ const currentRequestNumber = this.maxRequestNumber;
74
+ const promise = new Promise((resolve, reject) => {
75
+ this.processSugarDeferredMap.set(currentRequestNumber, {
76
+ resolve: resolve,
77
+ reject: reject
78
+ });
79
+ });
80
+ if (!this.generatorProcess) {
81
+ this.generatorProcess = this.forkReadSourcesAndProcessSugarWorker();
82
+ }
83
+ if (this.useGeneratorRestarting) {
84
+ if (this.maxRequestNumber % 10 === 0) {
85
+ console.log("Restarting generator");
86
+ this.generatorProcess.kill();
87
+ this.generatorProcess = undefined;
88
+ this.generatorProcess = this.forkReadSourcesAndProcessSugarWorker();
89
+ console.log("Restarted generator");
90
+ }
91
+ }
92
+ this.generatorProcess.send([this.pathToGeneratorRootDir, formSourcesPath, farmDirectory, hlFarmDirectoryPath, generationOptions, this.purgeCache, currentRequestNumber]);
93
+ const result = await promise;
94
+ this.processSugarDeferredMap.delete(currentRequestNumber);
95
+ return result;
96
+ }
97
+ async processSugar(sugarFiles, resources, generationOptions) {
98
+ this.maxRequestNumber++;
99
+ const currentRequestNumber = this.maxRequestNumber;
100
+ const promise = new Promise((resolve, reject) => {
101
+ this.processSugarDeferredMap.set(currentRequestNumber, {
102
+ resolve: resolve,
103
+ reject: reject
104
+ });
105
+ });
106
+ if (!this.generatorProcess) {
107
+ this.generatorProcess = this.forkProcessSugarWorker();
108
+ }
109
+ this.generatorProcess.send([this.pathToGeneratorRootDir, sugarFiles, resources, generationOptions, this.purgeCache, currentRequestNumber]);
110
+ const result = await promise;
111
+ this.processSugarDeferredMap.delete(currentRequestNumber);
112
+ return result;
113
+ }
114
+ forkProcessSugarWorker() {
115
+ const processSugarWorker = (0, _child_process.fork)("./ProcessSugarWorker", [], {
116
+ cwd: __dirname
117
+ });
118
+ processSugarWorker.on("message", response => {
119
+ const currentDeferred = this.processSugarDeferredMap.get(response.requestNumber);
120
+ if (currentDeferred == undefined) {
121
+ return;
122
+ }
123
+ if (response.type === "Error") {
124
+ currentDeferred.reject(new Error(response.errorText));
125
+ } else {
126
+ const formContent = response.generatedForm;
127
+ const result = {};
128
+ for (const [key, formContentItem] of (0, _IterableUtils.iterateEntries)(formContent)) {
129
+ result[key] = typeof formContentItem === "string" ? formContentItem : Buffer.from(formContentItem.payload, formContentItem.encoding);
130
+ }
131
+ currentDeferred.resolve(result);
132
+ }
133
+ });
134
+ processSugarWorker.on("error", error => {
135
+ throw error;
136
+ });
137
+ return processSugarWorker;
138
+ }
139
+ forkReadSourcesAndProcessSugarWorker() {
140
+ const processSugarWorker = (0, _child_process.fork)("./ReadSourcesAndProcessSugarWorker", [], {
141
+ cwd: __dirname
142
+ });
143
+ processSugarWorker.on("message", response => {
144
+ const currentDeferred = this.processSugarDeferredMap.get(response.requestNumber);
145
+ if (currentDeferred == undefined) {
146
+ return;
147
+ }
148
+ if (response.type === "Error") {
149
+ currentDeferred.reject(new Error(response.errorText));
150
+ } else {
151
+ const formContent = response.generatedForm;
152
+ const result = {};
153
+ for (const [key, formContentItem] of (0, _IterableUtils.iterateEntries)(formContent)) {
154
+ result[key] = typeof formContentItem === "string" ? formContentItem : Buffer.from(formContentItem.payload, formContentItem.encoding);
155
+ }
156
+ currentDeferred.resolve(result);
157
+ }
158
+ });
159
+ processSugarWorker.on("error", error => {
160
+ throw error;
161
+ });
162
+ return processSugarWorker;
163
+ }
164
+ }
165
+ const generatorsCache = new Map();
166
+ function createAsyncGenerator(pathToGeneratorRootDir, purgeCache, useGeneratorRestarting) {
167
+ let result = generatorsCache.get(pathToGeneratorRootDir);
168
+ if (result == undefined) {
169
+ result = new GeneratorAsyncProxy(pathToGeneratorRootDir, purgeCache, useGeneratorRestarting);
170
+ generatorsCache.set(pathToGeneratorRootDir, result);
171
+ }
172
+ return result;
173
+ }
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfU3RhdGljTG9nZ2VyIiwiX0l0ZXJhYmxlVXRpbHMiLCJfR2VuZXJhdG9yUmVxdWlyZVV0aWxzIiwiR2VuZXJhdG9yQXN5bmNQcm94eSIsImNvbnN0cnVjdG9yIiwicGF0aFRvR2VuZXJhdG9yUm9vdERpciIsInB1cmdlQ2FjaGUiLCJ1c2VHZW5lcmF0b3JSZXN0YXJ0aW5nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwiZ2VuZXJhdG9yU291cmNlc0ltcG9ydGVyIiwiZ2VuZXJhdG9yUHJvY2VzcyIsIm1heFJlcXVlc3ROdW1iZXIiLCJwcm9jZXNzU3VnYXJEZWZlcnJlZE1hcCIsIk1hcCIsIkdlbmVyYXRvclNvdXJjZXNJbXBvcnRlciIsImdldExvY2FsaXplZFN1Z2FyIiwic3VnYXJGaWxlcyIsInJlc291cmNlcyIsImxvY2FsaXphdGlvbkVudHJ5UG9pbnQiLCJpbXBvcnRMb2NhbGl6YXRpb24iLCJ1bmRlZmluZWQiLCJFcnJvciIsImdldERpY3Rpb25hcnkiLCJyZWFkU291cmNlcyIsImZvcm1Tb3VyY2VzUGF0aCIsImZhcm1EaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiaW1wb3J0UmVhZFNvdXJjZXMiLCJmb3JtU291cmNlIiwiZ2V0U3VnYXJUZXh0cyIsImltcG9ydEdldFN1Z2FyVGV4dHMiLCJyZXN1bHQiLCJnZXRBbGxEZXBlbmRlbmNpZXMiLCJpbXBvcnRHZXRBbGxEZXBlbmRlbmNpZXMiLCJzdXBwb3J0c0RlcGVuZGVuY2llc0V4dHJhY3Rpb24iLCJnZXRBbGxEZXBlbmRlbmNpZXNIYXNoIiwiaW1wb3J0R2V0QWxsRGVwZW5kZW5jaWVzSGFzaCIsInJlYWRTb3VyY2VzQW5kUHJvY2Vzc1N1Z2FyIiwiZ2VuZXJhdGlvbk9wdGlvbnMiLCJjdXJyZW50UmVxdWVzdE51bWJlciIsInByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNldCIsImZvcmtSZWFkU291cmNlc0FuZFByb2Nlc3NTdWdhcldvcmtlciIsImNvbnNvbGUiLCJsb2ciLCJraWxsIiwic2VuZCIsImRlbGV0ZSIsInByb2Nlc3NTdWdhciIsImZvcmtQcm9jZXNzU3VnYXJXb3JrZXIiLCJwcm9jZXNzU3VnYXJXb3JrZXIiLCJmb3JrIiwiY3dkIiwiX19kaXJuYW1lIiwib24iLCJyZXNwb25zZSIsImN1cnJlbnREZWZlcnJlZCIsImdldCIsInJlcXVlc3ROdW1iZXIiLCJ0eXBlIiwiZXJyb3JUZXh0IiwiZm9ybUNvbnRlbnQiLCJnZW5lcmF0ZWRGb3JtIiwia2V5IiwiZm9ybUNvbnRlbnRJdGVtIiwiaXRlcmF0ZUVudHJpZXMiLCJCdWZmZXIiLCJmcm9tIiwicGF5bG9hZCIsImVuY29kaW5nIiwiZXJyb3IiLCJnZW5lcmF0b3JzQ2FjaGUiLCJjcmVhdGVBc3luY0dlbmVyYXRvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL0dlbmVyYXRvci9HZW5lcmF0b3JXb3JrZXIvQ3JlYXRlQXN5bmNHZW5lcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBmb3JrIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcblxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7XG4gICAgRm9ybUdlbmVyYXRvcixcbiAgICBHZW5lcmF0ZWRGb3JtLFxuICAgIEdlbmVyYXRpb25PcHRpb25zLFxuICAgIExvY2FsaXphdGlvbkRpY3Rpb25hcnlDb250ZW50LFxufSBmcm9tIFwiLi4vLi4vRm9ybS9HZW5lcmF0ZUZvcm1cIjtcbmltcG9ydCB7IEZvcm1SZXNvdXJjZXMsIEZvcm1Tb3VyY2UsIFN1Z2FyQ29udGVudCB9IGZyb20gXCIuLi8uLi9SZWFkRm9ybVNvdXJjZVwiO1xuaW1wb3J0IHsgaXRlcmF0ZUVudHJpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0l0ZXJhYmxlVXRpbHNcIjtcbmltcG9ydCB7IEV4dHJhY3RvclJlc3VsdCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vVGV4dEV4dHJhY3Rvci9UZXh0RXh0cmFjdG9yVHlwZXNcIjtcblxuaW1wb3J0IHsgR2VuZXJhdG9yU291cmNlc0ltcG9ydGVyIH0gZnJvbSBcIi4vR2VuZXJhdG9yUmVxdWlyZVV0aWxzXCI7XG5pbXBvcnQgeyBDYWxsUmVzcG9uc2UgfSBmcm9tIFwiLi9Qcm9jZXNzU3VnYXJXb3JrZXJcIjtcblxuaW50ZXJmYWNlIFByb2Nlc3NTdWdhckRlZmVycmVkIHtcbiAgICByZXNvbHZlOiAocmVzdWx0OiBHZW5lcmF0ZWRGb3JtKSA9PiB2b2lkO1xuICAgIHJlamVjdDogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkO1xufVxuXG5jbGFzcyBHZW5lcmF0b3JBc3luY1Byb3h5IGltcGxlbWVudHMgRm9ybUdlbmVyYXRvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9HZW5lcmF0b3JSb290RGlyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0b3JTb3VyY2VzSW1wb3J0ZXI6IEdlbmVyYXRvclNvdXJjZXNJbXBvcnRlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHB1cmdlQ2FjaGU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VHZW5lcmF0b3JSZXN0YXJ0aW5nOiBib29sZWFuO1xuICAgIHByaXZhdGUgZ2VuZXJhdG9yUHJvY2Vzcz86IENoaWxkUHJvY2VzcztcbiAgICBwcml2YXRlIG1heFJlcXVlc3ROdW1iZXIgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc1N1Z2FyRGVmZXJyZWRNYXA6IE1hcDxudW1iZXIsIFByb2Nlc3NTdWdhckRlZmVycmVkPiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcGF0aFRvR2VuZXJhdG9yUm9vdERpcjogc3RyaW5nLFxuICAgICAgICBwdXJnZUNhY2hlOiBib29sZWFuLFxuICAgICAgICB1c2VHZW5lcmF0b3JSZXN0YXJ0aW5nOiBib29sZWFuLFxuICAgICAgICBsb2dnZXI6IElMb2dnZXIgPSBnZXRMb2dnZXIoKVxuICAgICkge1xuICAgICAgICB0aGlzLnVzZUdlbmVyYXRvclJlc3RhcnRpbmcgPSB1c2VHZW5lcmF0b3JSZXN0YXJ0aW5nO1xuICAgICAgICB0aGlzLnBhdGhUb0dlbmVyYXRvclJvb3REaXIgPSBwYXRoVG9HZW5lcmF0b3JSb290RGlyO1xuICAgICAgICB0aGlzLnB1cmdlQ2FjaGUgPSBwdXJnZUNhY2hlO1xuICAgICAgICB0aGlzLmdlbmVyYXRvclNvdXJjZXNJbXBvcnRlciA9IG5ldyBHZW5lcmF0b3JTb3VyY2VzSW1wb3J0ZXIocHVyZ2VDYWNoZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldExvY2FsaXplZFN1Z2FyKHN1Z2FyRmlsZXM6IFN1Z2FyQ29udGVudCwgcmVzb3VyY2VzOiBGb3JtUmVzb3VyY2VzKTogUHJvbWlzZTxTdWdhckNvbnRlbnQ+IHtcbiAgICAgICAgY29uc3QgbG9jYWxpemF0aW9uRW50cnlQb2ludCA9IGF3YWl0IHRoaXMuZ2VuZXJhdG9yU291cmNlc0ltcG9ydGVyLmltcG9ydExvY2FsaXphdGlvbihcbiAgICAgICAgICAgIHRoaXMucGF0aFRvR2VuZXJhdG9yUm9vdERpclxuICAgICAgICApO1xuICAgICAgICBpZiAobG9jYWxpemF0aW9uRW50cnlQb2ludCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcItCU0LDQvdC90LDRjyDQstC10YDRgdC40Y8g0LPQtdC90LXRgNCw0YLQvtGA0LAg0L3QtSDQv9C+0LTQtNC10YDQttC40LLQsNC10YIg0LvQvtC60LDQu9C40LfQsNGG0LjRji5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsaXphdGlvbkVudHJ5UG9pbnQuZ2V0TG9jYWxpemVkU3VnYXIoc3VnYXJGaWxlcywgcmVzb3VyY2VzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RGljdGlvbmFyeShcbiAgICAgICAgc3VnYXJGaWxlczogU3VnYXJDb250ZW50LFxuICAgICAgICByZXNvdXJjZXM6IEZvcm1SZXNvdXJjZXNcbiAgICApOiBQcm9taXNlPExvY2FsaXphdGlvbkRpY3Rpb25hcnlDb250ZW50PiB7XG4gICAgICAgIGNvbnN0IGxvY2FsaXphdGlvbkVudHJ5UG9pbnQgPSBhd2FpdCB0aGlzLmdlbmVyYXRvclNvdXJjZXNJbXBvcnRlci5pbXBvcnRMb2NhbGl6YXRpb24oXG4gICAgICAgICAgICB0aGlzLnBhdGhUb0dlbmVyYXRvclJvb3REaXJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGxvY2FsaXphdGlvbkVudHJ5UG9pbnQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCLQlNCw0L3QvdCw0Y8g0LLQtdGA0YHQuNGPINCz0LXQvdC10YDQsNGC0L7RgNCwINC90LUg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGCINC70L7QutCw0LvQuNC30LDRhtC40Y4uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhbGl6YXRpb25FbnRyeVBvaW50LmdldERpY3Rpb25hcnkoc3VnYXJGaWxlcywgcmVzb3VyY2VzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVhZFNvdXJjZXMoXG4gICAgICAgIGZvcm1Tb3VyY2VzUGF0aDogc3RyaW5nLFxuICAgICAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZ1xuICAgICk6IFByb21pc2U8Rm9ybVNvdXJjZT4ge1xuICAgICAgICBjb25zdCByZWFkU291cmNlczogRm9ybUdlbmVyYXRvcltcInJlYWRTb3VyY2VzXCJdID0gYXdhaXQgdGhpcy5nZW5lcmF0b3JTb3VyY2VzSW1wb3J0ZXIuaW1wb3J0UmVhZFNvdXJjZXMoXG4gICAgICAgICAgICB0aGlzLnBhdGhUb0dlbmVyYXRvclJvb3REaXJcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZm9ybVNvdXJjZSA9IGF3YWl0IHJlYWRTb3VyY2VzKGZvcm1Tb3VyY2VzUGF0aCwgZmFybURpcmVjdG9yeSwgaGxGYXJtRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1Tb3VyY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFN1Z2FyVGV4dHMoXG4gICAgICAgIGZvcm1Tb3VyY2VzUGF0aDogc3RyaW5nLFxuICAgICAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZ1xuICAgICk6IFByb21pc2U8RXh0cmFjdG9yUmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGdldFN1Z2FyVGV4dHM6IEZvcm1HZW5lcmF0b3JbXCJnZXRTdWdhclRleHRzXCJdID0gYXdhaXQgdGhpcy5nZW5lcmF0b3JTb3VyY2VzSW1wb3J0ZXIuaW1wb3J0R2V0U3VnYXJUZXh0cyhcbiAgICAgICAgICAgIHRoaXMucGF0aFRvR2VuZXJhdG9yUm9vdERpclxuICAgICAgICApO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBnZXRTdWdhclRleHRzKGZvcm1Tb3VyY2VzUGF0aCwgZmFybURpcmVjdG9yeSwgaGxGYXJtRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsRGVwZW5kZW5jaWVzKFxuICAgICAgICBmb3JtU291cmNlc1BhdGg6IHN0cmluZyxcbiAgICAgICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IGdldEFsbERlcGVuZGVuY2llcyA9IGF3YWl0IHRoaXMuZ2VuZXJhdG9yU291cmNlc0ltcG9ydGVyLmltcG9ydEdldEFsbERlcGVuZGVuY2llcyhcbiAgICAgICAgICAgIHRoaXMucGF0aFRvR2VuZXJhdG9yUm9vdERpclxuICAgICAgICApO1xuICAgICAgICBpZiAoZ2V0QWxsRGVwZW5kZW5jaWVzID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyB2ZXJzaW9uIG9mIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGRlcGVuZGVuY2llcyBleHRyYWN0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1Tb3VyY2UgPSBhd2FpdCBnZXRBbGxEZXBlbmRlbmNpZXMoZm9ybVNvdXJjZXNQYXRoLCBmYXJtRGlyZWN0b3J5LCBobEZhcm1EaXJlY3RvcnlQYXRoKTtcbiAgICAgICAgcmV0dXJuIGZvcm1Tb3VyY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHN1cHBvcnRzRGVwZW5kZW5jaWVzRXh0cmFjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaCA9IGF3YWl0IHRoaXMuZ2VuZXJhdG9yU291cmNlc0ltcG9ydGVyLmltcG9ydEdldEFsbERlcGVuZGVuY2llc0hhc2goXG4gICAgICAgICAgICB0aGlzLnBhdGhUb0dlbmVyYXRvclJvb3REaXJcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGdldEFsbERlcGVuZGVuY2llc0hhc2ggIT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxEZXBlbmRlbmNpZXNIYXNoKFxuICAgICAgICBmb3JtU291cmNlc1BhdGg6IHN0cmluZyxcbiAgICAgICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBnZXRBbGxEZXBlbmRlbmNpZXNIYXNoID0gYXdhaXQgdGhpcy5nZW5lcmF0b3JTb3VyY2VzSW1wb3J0ZXIuaW1wb3J0R2V0QWxsRGVwZW5kZW5jaWVzSGFzaChcbiAgICAgICAgICAgIHRoaXMucGF0aFRvR2VuZXJhdG9yUm9vdERpclxuICAgICAgICApO1xuICAgICAgICBpZiAoZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgdmVyc2lvbiBvZiBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydCBkZXBlbmRlbmNpZXMgZXh0cmFjdGlvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtU291cmNlID0gYXdhaXQgZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaChmb3JtU291cmNlc1BhdGgsIGZhcm1EaXJlY3RvcnksIGhsRmFybURpcmVjdG9yeVBhdGgpO1xuICAgICAgICByZXR1cm4gZm9ybVNvdXJjZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVhZFNvdXJjZXNBbmRQcm9jZXNzU3VnYXIoXG4gICAgICAgIGZvcm1Tb3VyY2VzUGF0aDogc3RyaW5nLFxuICAgICAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZyxcbiAgICAgICAgZ2VuZXJhdGlvbk9wdGlvbnM/OiBHZW5lcmF0aW9uT3B0aW9uc1xuICAgICk6IFByb21pc2U8R2VuZXJhdGVkRm9ybT4ge1xuICAgICAgICB0aGlzLm1heFJlcXVlc3ROdW1iZXIrKztcbiAgICAgICAgY29uc3QgY3VycmVudFJlcXVlc3ROdW1iZXIgPSB0aGlzLm1heFJlcXVlc3ROdW1iZXI7XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxHZW5lcmF0ZWRGb3JtPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NTdWdhckRlZmVycmVkTWFwLnNldChjdXJyZW50UmVxdWVzdE51bWJlciwge1xuICAgICAgICAgICAgICAgIHJlc29sdmU6IHJlc29sdmUsXG4gICAgICAgICAgICAgICAgcmVqZWN0OiByZWplY3QsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmdlbmVyYXRvclByb2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdG9yUHJvY2VzcyA9IHRoaXMuZm9ya1JlYWRTb3VyY2VzQW5kUHJvY2Vzc1N1Z2FyV29ya2VyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXNlR2VuZXJhdG9yUmVzdGFydGluZykge1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4UmVxdWVzdE51bWJlciAlIDEwID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSZXN0YXJ0aW5nIGdlbmVyYXRvclwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRvclByb2Nlc3Mua2lsbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdG9yUHJvY2VzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRvclByb2Nlc3MgPSB0aGlzLmZvcmtSZWFkU291cmNlc0FuZFByb2Nlc3NTdWdhcldvcmtlcigpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUmVzdGFydGVkIGdlbmVyYXRvclwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2VuZXJhdG9yUHJvY2Vzcy5zZW5kKFtcbiAgICAgICAgICAgIHRoaXMucGF0aFRvR2VuZXJhdG9yUm9vdERpcixcbiAgICAgICAgICAgIGZvcm1Tb3VyY2VzUGF0aCxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgZ2VuZXJhdGlvbk9wdGlvbnMsXG4gICAgICAgICAgICB0aGlzLnB1cmdlQ2FjaGUsXG4gICAgICAgICAgICBjdXJyZW50UmVxdWVzdE51bWJlcixcbiAgICAgICAgXSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3VnYXJEZWZlcnJlZE1hcC5kZWxldGUoY3VycmVudFJlcXVlc3ROdW1iZXIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcm9jZXNzU3VnYXIoXG4gICAgICAgIHN1Z2FyRmlsZXM6IFN1Z2FyQ29udGVudCxcbiAgICAgICAgcmVzb3VyY2VzOiBGb3JtUmVzb3VyY2VzLFxuICAgICAgICBnZW5lcmF0aW9uT3B0aW9ucz86IEdlbmVyYXRpb25PcHRpb25zXG4gICAgKTogUHJvbWlzZTxHZW5lcmF0ZWRGb3JtPiB7XG4gICAgICAgIHRoaXMubWF4UmVxdWVzdE51bWJlcisrO1xuICAgICAgICBjb25zdCBjdXJyZW50UmVxdWVzdE51bWJlciA9IHRoaXMubWF4UmVxdWVzdE51bWJlcjtcbiAgICAgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPEdlbmVyYXRlZEZvcm0+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N1Z2FyRGVmZXJyZWRNYXAuc2V0KGN1cnJlbnRSZXF1ZXN0TnVtYmVyLCB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZTogcmVzb2x2ZSxcbiAgICAgICAgICAgICAgICByZWplY3Q6IHJlamVjdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuZ2VuZXJhdG9yUHJvY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0b3JQcm9jZXNzID0gdGhpcy5mb3JrUHJvY2Vzc1N1Z2FyV29ya2VyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdlbmVyYXRvclByb2Nlc3Muc2VuZChbXG4gICAgICAgICAgICB0aGlzLnBhdGhUb0dlbmVyYXRvclJvb3REaXIsXG4gICAgICAgICAgICBzdWdhckZpbGVzLFxuICAgICAgICAgICAgcmVzb3VyY2VzLFxuICAgICAgICAgICAgZ2VuZXJhdGlvbk9wdGlvbnMsXG4gICAgICAgICAgICB0aGlzLnB1cmdlQ2FjaGUsXG4gICAgICAgICAgICBjdXJyZW50UmVxdWVzdE51bWJlcixcbiAgICAgICAgXSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3VnYXJEZWZlcnJlZE1hcC5kZWxldGUoY3VycmVudFJlcXVlc3ROdW1iZXIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ya1Byb2Nlc3NTdWdhcldvcmtlcigpOiBDaGlsZFByb2Nlc3Mge1xuICAgICAgICBjb25zdCBwcm9jZXNzU3VnYXJXb3JrZXIgPSBmb3JrKFwiLi9Qcm9jZXNzU3VnYXJXb3JrZXJcIiwgW10sIHtcbiAgICAgICAgICAgIGN3ZDogX19kaXJuYW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICBwcm9jZXNzU3VnYXJXb3JrZXIub24oXCJtZXNzYWdlXCIsIChyZXNwb25zZTogQ2FsbFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGVmZXJyZWQgPSB0aGlzLnByb2Nlc3NTdWdhckRlZmVycmVkTWFwLmdldChyZXNwb25zZS5yZXF1ZXN0TnVtYmVyKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50RGVmZXJyZWQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiRXJyb3JcIikge1xuICAgICAgICAgICAgICAgIGN1cnJlbnREZWZlcnJlZC5yZWplY3QobmV3IEVycm9yKHJlc3BvbnNlLmVycm9yVGV4dCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtQ29udGVudCA9IHJlc3BvbnNlLmdlbmVyYXRlZEZvcm07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBHZW5lcmF0ZWRGb3JtID0ge307XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGZvcm1Db250ZW50SXRlbV0gb2YgaXRlcmF0ZUVudHJpZXMoZm9ybUNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBmb3JtQ29udGVudEl0ZW0gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGZvcm1Db250ZW50SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQnVmZmVyLmZyb20oZm9ybUNvbnRlbnRJdGVtLnBheWxvYWQsIGZvcm1Db250ZW50SXRlbS5lbmNvZGluZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VycmVudERlZmVycmVkLnJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJvY2Vzc1N1Z2FyV29ya2VyLm9uKFwiZXJyb3JcIiwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9jZXNzU3VnYXJXb3JrZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JrUmVhZFNvdXJjZXNBbmRQcm9jZXNzU3VnYXJXb3JrZXIoKTogQ2hpbGRQcm9jZXNzIHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc1N1Z2FyV29ya2VyID0gZm9yayhcIi4vUmVhZFNvdXJjZXNBbmRQcm9jZXNzU3VnYXJXb3JrZXJcIiwgW10sIHtcbiAgICAgICAgICAgIGN3ZDogX19kaXJuYW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICBwcm9jZXNzU3VnYXJXb3JrZXIub24oXCJtZXNzYWdlXCIsIChyZXNwb25zZTogQ2FsbFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGVmZXJyZWQgPSB0aGlzLnByb2Nlc3NTdWdhckRlZmVycmVkTWFwLmdldChyZXNwb25zZS5yZXF1ZXN0TnVtYmVyKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50RGVmZXJyZWQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiRXJyb3JcIikge1xuICAgICAgICAgICAgICAgIGN1cnJlbnREZWZlcnJlZC5yZWplY3QobmV3IEVycm9yKHJlc3BvbnNlLmVycm9yVGV4dCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtQ29udGVudCA9IHJlc3BvbnNlLmdlbmVyYXRlZEZvcm07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBHZW5lcmF0ZWRGb3JtID0ge307XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGZvcm1Db250ZW50SXRlbV0gb2YgaXRlcmF0ZUVudHJpZXMoZm9ybUNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBmb3JtQ29udGVudEl0ZW0gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGZvcm1Db250ZW50SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQnVmZmVyLmZyb20oZm9ybUNvbnRlbnRJdGVtLnBheWxvYWQsIGZvcm1Db250ZW50SXRlbS5lbmNvZGluZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VycmVudERlZmVycmVkLnJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJvY2Vzc1N1Z2FyV29ya2VyLm9uKFwiZXJyb3JcIiwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9jZXNzU3VnYXJXb3JrZXI7XG4gICAgfVxufVxuXG5jb25zdCBnZW5lcmF0b3JzQ2FjaGU6IE1hcDxzdHJpbmcsIEdlbmVyYXRvckFzeW5jUHJveHk+ID0gbmV3IE1hcCgpO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXN5bmNHZW5lcmF0b3IoXG4gICAgcGF0aFRvR2VuZXJhdG9yUm9vdERpcjogc3RyaW5nLFxuICAgIHB1cmdlQ2FjaGU6IGJvb2xlYW4sXG4gICAgdXNlR2VuZXJhdG9yUmVzdGFydGluZzogYm9vbGVhblxuKTogRm9ybUdlbmVyYXRvciB7XG4gICAgbGV0IHJlc3VsdCA9IGdlbmVyYXRvcnNDYWNoZS5nZXQocGF0aFRvR2VuZXJhdG9yUm9vdERpcik7XG4gICAgaWYgKHJlc3VsdCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ID0gbmV3IEdlbmVyYXRvckFzeW5jUHJveHkocGF0aFRvR2VuZXJhdG9yUm9vdERpciwgcHVyZ2VDYWNoZSwgdXNlR2VuZXJhdG9yUmVzdGFydGluZyk7XG4gICAgICAgIGdlbmVyYXRvcnNDYWNoZS5zZXQocGF0aFRvR2VuZXJhdG9yUm9vdERpciwgcmVzdWx0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsY0FBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBUUEsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBR0EsSUFBQUcsc0JBQUEsR0FBQUgsT0FBQTtBQWZBOztBQXVCQSxNQUFNSSxtQkFBbUIsQ0FBMEI7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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateAsyncGenerator.js","names":["_child_process","require","_StaticLogger","_IterableUtils","_GeneratorRequireUtils","GeneratorAsyncProxy","constructor","pathToGeneratorRootDir","purgeCache","useGeneratorRestarting","logger","getLogger","generatorSourcesImporter","generatorProcess","maxRequestNumber","processSugarDeferredMap","Map","GeneratorSourcesImporter","getLocalizedSugar","sugarFiles","resources","localizationEntryPoint","importLocalization","undefined","Error","getDictionary","readSources","formSourcesPath","farmDirectory","hlFarmDirectoryPath","importReadSources","formSource","getSugarTexts","importGetSugarTexts","result","getAllDependencies","importGetAllDependencies","supportsDependenciesExtraction","getAllDependenciesHash","importGetAllDependenciesHash","readSourcesAndProcessSugar","generationOptions","currentRequestNumber","promise","Promise","resolve","reject","set","forkReadSourcesAndProcessSugarWorker","console","log","kill","send","delete","processSugar","forkProcessSugarWorker","processSugarWorker","fork","cwd","__dirname","on","response","currentDeferred","get","requestNumber","type","errorText","formContent","generatedForm","key","formContentItem","iterateEntries","Buffer","from","payload","encoding","error","generatorsCache","createAsyncGenerator"],"sources":["../../../../../../src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { ChildProcess, fork } from \"child_process\";\n\nimport { ILogger } from \"../../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../../Commons/Logging/StaticLogger\";\nimport {\n FormGenerator,\n GeneratedForm,\n GenerationOptions,\n LocalizationDictionaryContent,\n} from \"../../Form/GenerateForm\";\nimport { FormResources, FormSource, SugarContent } from \"../../ReadFormSource\";\nimport { iterateEntries } from \"../../../../../Common/IterableUtils\";\nimport { ExtractorResult } from \"../../../../../Common/TextExtractor/TextExtractorTypes\";\n\nimport { GeneratorSourcesImporter } from \"./GeneratorRequireUtils\";\nimport { CallResponse } from \"./ProcessSugarWorker\";\n\ninterface ProcessSugarDeferred {\n resolve: (result: GeneratedForm) => void;\n reject: (error: unknown) => void;\n}\n\nclass GeneratorAsyncProxy implements FormGenerator {\n private readonly pathToGeneratorRootDir: string;\n private readonly generatorSourcesImporter: GeneratorSourcesImporter;\n private readonly purgeCache: boolean;\n private readonly useGeneratorRestarting: boolean;\n private generatorProcess?: ChildProcess;\n private maxRequestNumber = 0;\n private readonly processSugarDeferredMap: Map<number, ProcessSugarDeferred> = new Map();\n\n public constructor(\n pathToGeneratorRootDir: string,\n purgeCache: boolean,\n useGeneratorRestarting: boolean,\n logger: ILogger = getLogger()\n ) {\n this.useGeneratorRestarting = useGeneratorRestarting;\n this.pathToGeneratorRootDir = pathToGeneratorRootDir;\n this.purgeCache = purgeCache;\n this.generatorSourcesImporter = new GeneratorSourcesImporter(purgeCache);\n }\n\n public async getLocalizedSugar(sugarFiles: SugarContent, resources: FormResources): Promise<SugarContent> {\n const localizationEntryPoint = await this.generatorSourcesImporter.importLocalization(\n this.pathToGeneratorRootDir\n );\n if (localizationEntryPoint == undefined) {\n throw new Error(\"Данная версия генератора не поддерживает локализацию.\");\n }\n return localizationEntryPoint.getLocalizedSugar(sugarFiles, resources);\n }\n\n public async getDictionary(\n sugarFiles: SugarContent,\n resources: FormResources\n ): Promise<LocalizationDictionaryContent> {\n const localizationEntryPoint = await this.generatorSourcesImporter.importLocalization(\n this.pathToGeneratorRootDir\n );\n if (localizationEntryPoint == undefined) {\n throw new Error(\"Данная версия генератора не поддерживает локализацию.\");\n }\n return localizationEntryPoint.getDictionary(sugarFiles, resources);\n }\n\n public async readSources(\n formSourcesPath: string,\n farmDirectory: string,\n hlFarmDirectoryPath: string\n ): Promise<FormSource> {\n const readSources: FormGenerator[\"readSources\"] = await this.generatorSourcesImporter.importReadSources(\n this.pathToGeneratorRootDir\n );\n const formSource = await readSources(formSourcesPath, farmDirectory, hlFarmDirectoryPath);\n\n return formSource;\n }\n\n public async getSugarTexts(\n formSourcesPath: string,\n farmDirectory: string,\n hlFarmDirectoryPath: string\n ): Promise<ExtractorResult> {\n const getSugarTexts: FormGenerator[\"getSugarTexts\"] = await this.generatorSourcesImporter.importGetSugarTexts(\n this.pathToGeneratorRootDir\n );\n const result = await getSugarTexts(formSourcesPath, farmDirectory, hlFarmDirectoryPath);\n\n return result;\n }\n\n public async getAllDependencies(\n formSourcesPath: string,\n farmDirectory: string,\n hlFarmDirectoryPath: string\n ): Promise<string[]> {\n const getAllDependencies = await this.generatorSourcesImporter.importGetAllDependencies(\n this.pathToGeneratorRootDir\n );\n if (getAllDependencies == undefined) {\n throw new Error(\"This version of generator does not support dependencies extraction\");\n }\n const formSource = await getAllDependencies(formSourcesPath, farmDirectory, hlFarmDirectoryPath);\n return formSource;\n }\n\n public async supportsDependenciesExtraction(): Promise<boolean> {\n const getAllDependenciesHash = await this.generatorSourcesImporter.importGetAllDependenciesHash(\n this.pathToGeneratorRootDir\n );\n return getAllDependenciesHash != undefined;\n }\n\n public async getAllDependenciesHash(\n formSourcesPath: string,\n farmDirectory: string,\n hlFarmDirectoryPath: string\n ): Promise<string> {\n const getAllDependenciesHash = await this.generatorSourcesImporter.importGetAllDependenciesHash(\n this.pathToGeneratorRootDir\n );\n if (getAllDependenciesHash == undefined) {\n throw new Error(\"This version of generator does not support dependencies extraction\");\n }\n const formSource = await getAllDependenciesHash(formSourcesPath, farmDirectory, hlFarmDirectoryPath);\n return formSource;\n }\n\n public async readSourcesAndProcessSugar(\n formSourcesPath: string,\n farmDirectory: string,\n hlFarmDirectoryPath: string,\n generationOptions?: GenerationOptions\n ): Promise<GeneratedForm> {\n this.maxRequestNumber++;\n const currentRequestNumber = this.maxRequestNumber;\n const promise = new Promise<GeneratedForm>((resolve, reject) => {\n this.processSugarDeferredMap.set(currentRequestNumber, {\n resolve: resolve,\n reject: reject,\n });\n });\n\n if (!this.generatorProcess) {\n this.generatorProcess = this.forkReadSourcesAndProcessSugarWorker();\n }\n if (this.useGeneratorRestarting) {\n if (this.maxRequestNumber % 10 === 0) {\n console.log(\"Restarting generator\");\n this.generatorProcess.kill();\n this.generatorProcess = undefined;\n this.generatorProcess = this.forkReadSourcesAndProcessSugarWorker();\n console.log(\"Restarted generator\");\n }\n }\n\n this.generatorProcess.send([\n this.pathToGeneratorRootDir,\n formSourcesPath,\n farmDirectory,\n hlFarmDirectoryPath,\n generationOptions,\n this.purgeCache,\n currentRequestNumber,\n ]);\n\n const result = await promise;\n this.processSugarDeferredMap.delete(currentRequestNumber);\n return result;\n }\n\n public async processSugar(\n sugarFiles: SugarContent,\n resources: FormResources,\n generationOptions?: GenerationOptions\n ): Promise<GeneratedForm> {\n this.maxRequestNumber++;\n const currentRequestNumber = this.maxRequestNumber;\n const promise = new Promise<GeneratedForm>((resolve, reject) => {\n this.processSugarDeferredMap.set(currentRequestNumber, {\n resolve: resolve,\n reject: reject,\n });\n });\n\n if (!this.generatorProcess) {\n this.generatorProcess = this.forkProcessSugarWorker();\n }\n\n this.generatorProcess.send([\n this.pathToGeneratorRootDir,\n sugarFiles,\n resources,\n generationOptions,\n this.purgeCache,\n currentRequestNumber,\n ]);\n\n const result = await promise;\n this.processSugarDeferredMap.delete(currentRequestNumber);\n return result;\n }\n\n private forkProcessSugarWorker(): ChildProcess {\n const processSugarWorker = fork(\"./ProcessSugarWorker\", [], {\n cwd: __dirname,\n });\n\n processSugarWorker.on(\"message\", (response: CallResponse) => {\n const currentDeferred = this.processSugarDeferredMap.get(response.requestNumber);\n if (currentDeferred == undefined) {\n return;\n }\n if (response.type === \"Error\") {\n currentDeferred.reject(new Error(response.errorText));\n } else {\n const formContent = response.generatedForm;\n const result: GeneratedForm = {};\n\n for (const [key, formContentItem] of iterateEntries(formContent)) {\n result[key] =\n typeof formContentItem === \"string\"\n ? formContentItem\n : Buffer.from(formContentItem.payload, formContentItem.encoding);\n }\n\n currentDeferred.resolve(result);\n }\n });\n\n processSugarWorker.on(\"error\", error => {\n throw error;\n });\n\n return processSugarWorker;\n }\n\n private forkReadSourcesAndProcessSugarWorker(): ChildProcess {\n const processSugarWorker = fork(\"./ReadSourcesAndProcessSugarWorker\", [], {\n cwd: __dirname,\n });\n\n processSugarWorker.on(\"message\", (response: CallResponse) => {\n const currentDeferred = this.processSugarDeferredMap.get(response.requestNumber);\n if (currentDeferred == undefined) {\n return;\n }\n if (response.type === \"Error\") {\n currentDeferred.reject(new Error(response.errorText));\n } else {\n const formContent = response.generatedForm;\n const result: GeneratedForm = {};\n\n for (const [key, formContentItem] of iterateEntries(formContent)) {\n result[key] =\n typeof formContentItem === \"string\"\n ? formContentItem\n : Buffer.from(formContentItem.payload, formContentItem.encoding);\n }\n\n currentDeferred.resolve(result);\n }\n });\n\n processSugarWorker.on(\"error\", error => {\n throw error;\n });\n\n return processSugarWorker;\n }\n}\n\nconst generatorsCache: Map<string, GeneratorAsyncProxy> = new Map();\n\nexport function createAsyncGenerator(\n pathToGeneratorRootDir: string,\n purgeCache: boolean,\n useGeneratorRestarting: boolean\n): FormGenerator {\n let result = generatorsCache.get(pathToGeneratorRootDir);\n if (result == undefined) {\n result = new GeneratorAsyncProxy(pathToGeneratorRootDir, purgeCache, useGeneratorRestarting);\n generatorsCache.set(pathToGeneratorRootDir, result);\n }\n return result;\n}\n"],"mappings":";;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AAGA,IAAAC,aAAA,GAAAD,OAAA;AAQA,IAAAE,cAAA,GAAAF,OAAA;AAGA,IAAAG,sBAAA,GAAAH,OAAA;AAfA;;AAuBA,MAAMI,mBAAmB,CAA0B;EASxCC,WAAWA,CACdC,sBAA8B,EAC9BC,UAAmB,EACnBC,sBAA+B,EAC/BC,MAAe,GAAG,IAAAC,uBAAS,EAAC,CAAC,EAC/B;IAAA,KAbeJ,sBAAsB;IAAA,KACtBK,wBAAwB;IAAA,KACxBJ,UAAU;IAAA,KACVC,sBAAsB;IAAA,KAC/BI,gBAAgB;IAAA,KAChBC,gBAAgB,GAAG,CAAC;IAAA,KACXC,uBAAuB,GAAsC,IAAIC,GAAG,CAAC,CAAC;IAQnF,IAAI,CAACP,sBAAsB,GAAGA,sBAAsB;IACpD,IAAI,CAACF,sBAAsB,GAAGA,sBAAsB;IACpD,IAAI,CAACC,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACI,wBAAwB,GAAG,IAAIK,+CAAwB,CAACT,UAAU,CAAC;EAC5E;EAEA,MAAaU,iBAAiBA,CAACC,UAAwB,EAAEC,SAAwB,EAAyB;IACtG,MAAMC,sBAAsB,GAAG,MAAM,IAAI,CAACT,wBAAwB,CAACU,kBAAkB,CACjF,IAAI,CAACf,sBACT,CAAC;IACD,IAAIc,sBAAsB,IAAIE,SAAS,EAAE;MACrC,MAAM,IAAIC,KAAK,CAAC,uDAAuD,CAAC;IAC5E;IACA,OAAOH,sBAAsB,CAACH,iBAAiB,CAACC,UAAU,EAAEC,SAAS,CAAC;EAC1E;EAEA,MAAaK,aAAaA,CACtBN,UAAwB,EACxBC,SAAwB,EACc;IACtC,MAAMC,sBAAsB,GAAG,MAAM,IAAI,CAACT,wBAAwB,CAACU,kBAAkB,CACjF,IAAI,CAACf,sBACT,CAAC;IACD,IAAIc,sBAAsB,IAAIE,SAAS,EAAE;MACrC,MAAM,IAAIC,KAAK,CAAC,uDAAuD,CAAC;IAC5E;IACA,OAAOH,sBAAsB,CAACI,aAAa,CAACN,UAAU,EAAEC,SAAS,CAAC;EACtE;EAEA,MAAaM,WAAWA,CACpBC,eAAuB,EACvBC,aAAqB,EACrBC,mBAA2B,EACR;IACnB,MAAMH,WAAyC,GAAG,MAAM,IAAI,CAACd,wBAAwB,CAACkB,iBAAiB,CACnG,IAAI,CAACvB,sBACT,CAAC;IACD,MAAMwB,UAAU,GAAG,MAAML,WAAW,CAACC,eAAe,EAAEC,aAAa,EAAEC,mBAAmB,CAAC;IAEzF,OAAOE,UAAU;EACrB;EAEA,MAAaC,aAAaA,CACtBL,eAAuB,EACvBC,aAAqB,EACrBC,mBAA2B,EACH;IACxB,MAAMG,aAA6C,GAAG,MAAM,IAAI,CAACpB,wBAAwB,CAACqB,mBAAmB,CACzG,IAAI,CAAC1B,sBACT,CAAC;IACD,MAAM2B,MAAM,GAAG,MAAMF,aAAa,CAACL,eAAe,EAAEC,aAAa,EAAEC,mBAAmB,CAAC;IAEvF,OAAOK,MAAM;EACjB;EAEA,MAAaC,kBAAkBA,CAC3BR,eAAuB,EACvBC,aAAqB,EACrBC,mBAA2B,EACV;IACjB,MAAMM,kBAAkB,GAAG,MAAM,IAAI,CAACvB,wBAAwB,CAACwB,wBAAwB,CACnF,IAAI,CAAC7B,sBACT,CAAC;IACD,IAAI4B,kBAAkB,IAAIZ,SAAS,EAAE;MACjC,MAAM,IAAIC,KAAK,CAAC,oEAAoE,CAAC;IACzF;IACA,MAAMO,UAAU,GAAG,MAAMI,kBAAkB,CAACR,eAAe,EAAEC,aAAa,EAAEC,mBAAmB,CAAC;IAChG,OAAOE,UAAU;EACrB;EAEA,MAAaM,8BAA8BA,CAAA,EAAqB;IAC5D,MAAMC,sBAAsB,GAAG,MAAM,IAAI,CAAC1B,wBAAwB,CAAC2B,4BAA4B,CAC3F,IAAI,CAAChC,sBACT,CAAC;IACD,OAAO+B,sBAAsB,IAAIf,SAAS;EAC9C;EAEA,MAAae,sBAAsBA,CAC/BX,eAAuB,EACvBC,aAAqB,EACrBC,mBAA2B,EACZ;IACf,MAAMS,sBAAsB,GAAG,MAAM,IAAI,CAAC1B,wBAAwB,CAAC2B,4BAA4B,CAC3F,IAAI,CAAChC,sBACT,CAAC;IACD,IAAI+B,sBAAsB,IAAIf,SAAS,EAAE;MACrC,MAAM,IAAIC,KAAK,CAAC,oEAAoE,CAAC;IACzF;IACA,MAAMO,UAAU,GAAG,MAAMO,sBAAsB,CAACX,eAAe,EAAEC,aAAa,EAAEC,mBAAmB,CAAC;IACpG,OAAOE,UAAU;EACrB;EAEA,MAAaS,0BAA0BA,CACnCb,eAAuB,EACvBC,aAAqB,EACrBC,mBAA2B,EAC3BY,iBAAqC,EACf;IACtB,IAAI,CAAC3B,gBAAgB,EAAE;IACvB,MAAM4B,oBAAoB,GAAG,IAAI,CAAC5B,gBAAgB;IAClD,MAAM6B,OAAO,GAAG,IAAIC,OAAO,CAAgB,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC5D,IAAI,CAAC/B,uBAAuB,CAACgC,GAAG,CAACL,oBAAoB,EAAE;QACnDG,OAAO,EAAEA,OAAO;QAChBC,MAAM,EAAEA;MACZ,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAACjC,gBAAgB,EAAE;MACxB,IAAI,CAACA,gBAAgB,GAAG,IAAI,CAACmC,oCAAoC,CAAC,CAAC;IACvE;IACA,IAAI,IAAI,CAACvC,sBAAsB,EAAE;MAC7B,IAAI,IAAI,CAACK,gBAAgB,GAAG,EAAE,KAAK,CAAC,EAAE;QAClCmC,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC;QACnC,IAAI,CAACrC,gBAAgB,CAACsC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAACtC,gBAAgB,GAAGU,SAAS;QACjC,IAAI,CAACV,gBAAgB,GAAG,IAAI,CAACmC,oCAAoC,CAAC,CAAC;QACnEC,OAAO,CAACC,GAAG,CAAC,qBAAqB,CAAC;MACtC;IACJ;IAEA,IAAI,CAACrC,gBAAgB,CAACuC,IAAI,CAAC,CACvB,IAAI,CAAC7C,sBAAsB,EAC3BoB,eAAe,EACfC,aAAa,EACbC,mBAAmB,EACnBY,iBAAiB,EACjB,IAAI,CAACjC,UAAU,EACfkC,oBAAoB,CACvB,CAAC;IAEF,MAAMR,MAAM,GAAG,MAAMS,OAAO;IAC5B,IAAI,CAAC5B,uBAAuB,CAACsC,MAAM,CAACX,oBAAoB,CAAC;IACzD,OAAOR,MAAM;EACjB;EAEA,MAAaoB,YAAYA,CACrBnC,UAAwB,EACxBC,SAAwB,EACxBqB,iBAAqC,EACf;IACtB,IAAI,CAAC3B,gBAAgB,EAAE;IACvB,MAAM4B,oBAAoB,GAAG,IAAI,CAAC5B,gBAAgB;IAClD,MAAM6B,OAAO,GAAG,IAAIC,OAAO,CAAgB,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC5D,IAAI,CAAC/B,uBAAuB,CAACgC,GAAG,CAACL,oBAAoB,EAAE;QACnDG,OAAO,EAAEA,OAAO;QAChBC,MAAM,EAAEA;MACZ,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAACjC,gBAAgB,EAAE;MACxB,IAAI,CAACA,gBAAgB,GAAG,IAAI,CAAC0C,sBAAsB,CAAC,CAAC;IACzD;IAEA,IAAI,CAAC1C,gBAAgB,CAACuC,IAAI,CAAC,CACvB,IAAI,CAAC7C,sBAAsB,EAC3BY,UAAU,EACVC,SAAS,EACTqB,iBAAiB,EACjB,IAAI,CAACjC,UAAU,EACfkC,oBAAoB,CACvB,CAAC;IAEF,MAAMR,MAAM,GAAG,MAAMS,OAAO;IAC5B,IAAI,CAAC5B,uBAAuB,CAACsC,MAAM,CAACX,oBAAoB,CAAC;IACzD,OAAOR,MAAM;EACjB;EAEQqB,sBAAsBA,CAAA,EAAiB;IAC3C,MAAMC,kBAAkB,GAAG,IAAAC,mBAAI,EAAC,sBAAsB,EAAE,EAAE,EAAE;MACxDC,GAAG,EAAEC;IACT,CAAC,CAAC;IAEFH,kBAAkB,CAACI,EAAE,CAAC,SAAS,EAAGC,QAAsB,IAAK;MACzD,MAAMC,eAAe,GAAG,IAAI,CAAC/C,uBAAuB,CAACgD,GAAG,CAACF,QAAQ,CAACG,aAAa,CAAC;MAChF,IAAIF,eAAe,IAAIvC,SAAS,EAAE;QAC9B;MACJ;MACA,IAAIsC,QAAQ,CAACI,IAAI,KAAK,OAAO,EAAE;QAC3BH,eAAe,CAAChB,MAAM,CAAC,IAAItB,KAAK,CAACqC,QAAQ,CAACK,SAAS,CAAC,CAAC;MACzD,CAAC,MAAM;QACH,MAAMC,WAAW,GAAGN,QAAQ,CAACO,aAAa;QAC1C,MAAMlC,MAAqB,GAAG,CAAC,CAAC;QAEhC,KAAK,MAAM,CAACmC,GAAG,EAAEC,eAAe,CAAC,IAAI,IAAAC,6BAAc,EAACJ,WAAW,CAAC,EAAE;UAC9DjC,MAAM,CAACmC,GAAG,CAAC,GACP,OAAOC,eAAe,KAAK,QAAQ,GAC7BA,eAAe,GACfE,MAAM,CAACC,IAAI,CAACH,eAAe,CAACI,OAAO,EAAEJ,eAAe,CAACK,QAAQ,CAAC;QAC5E;QAEAb,eAAe,CAACjB,OAAO,CAACX,MAAM,CAAC;MACnC;IACJ,CAAC,CAAC;IAEFsB,kBAAkB,CAACI,EAAE,CAAC,OAAO,EAAEgB,KAAK,IAAI;MACpC,MAAMA,KAAK;IACf,CAAC,CAAC;IAEF,OAAOpB,kBAAkB;EAC7B;EAEQR,oCAAoCA,CAAA,EAAiB;IACzD,MAAMQ,kBAAkB,GAAG,IAAAC,mBAAI,EAAC,oCAAoC,EAAE,EAAE,EAAE;MACtEC,GAAG,EAAEC;IACT,CAAC,CAAC;IAEFH,kBAAkB,CAACI,EAAE,CAAC,SAAS,EAAGC,QAAsB,IAAK;MACzD,MAAMC,eAAe,GAAG,IAAI,CAAC/C,uBAAuB,CAACgD,GAAG,CAACF,QAAQ,CAACG,aAAa,CAAC;MAChF,IAAIF,eAAe,IAAIvC,SAAS,EAAE;QAC9B;MACJ;MACA,IAAIsC,QAAQ,CAACI,IAAI,KAAK,OAAO,EAAE;QAC3BH,eAAe,CAAChB,MAAM,CAAC,IAAItB,KAAK,CAACqC,QAAQ,CAACK,SAAS,CAAC,CAAC;MACzD,CAAC,MAAM;QACH,MAAMC,WAAW,GAAGN,QAAQ,CAACO,aAAa;QAC1C,MAAMlC,MAAqB,GAAG,CAAC,CAAC;QAEhC,KAAK,MAAM,CAACmC,GAAG,EAAEC,eAAe,CAAC,IAAI,IAAAC,6BAAc,EAACJ,WAAW,CAAC,EAAE;UAC9DjC,MAAM,CAACmC,GAAG,CAAC,GACP,OAAOC,eAAe,KAAK,QAAQ,GAC7BA,eAAe,GACfE,MAAM,CAACC,IAAI,CAACH,eAAe,CAACI,OAAO,EAAEJ,eAAe,CAACK,QAAQ,CAAC;QAC5E;QAEAb,eAAe,CAACjB,OAAO,CAACX,MAAM,CAAC;MACnC;IACJ,CAAC,CAAC;IAEFsB,kBAAkB,CAACI,EAAE,CAAC,OAAO,EAAEgB,KAAK,IAAI;MACpC,MAAMA,KAAK;IACf,CAAC,CAAC;IAEF,OAAOpB,kBAAkB;EAC7B;AACJ;AAEA,MAAMqB,eAAiD,GAAG,IAAI7D,GAAG,CAAC,CAAC;AAE5D,SAAS8D,oBAAoBA,CAChCvE,sBAA8B,EAC9BC,UAAmB,EACnBC,sBAA+B,EAClB;EACb,IAAIyB,MAAM,GAAG2C,eAAe,CAACd,GAAG,CAACxD,sBAAsB,CAAC;EACxD,IAAI2B,MAAM,IAAIX,SAAS,EAAE;IACrBW,MAAM,GAAG,IAAI7B,mBAAmB,CAACE,sBAAsB,EAAEC,UAAU,EAAEC,sBAAsB,CAAC;IAC5FoE,eAAe,CAAC9B,GAAG,CAACxC,sBAAsB,EAAE2B,MAAM,CAAC;EACvD;EACA,OAAOA,MAAM;AACjB","ignoreList":[]}