@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.
- package/distr/Common/AsyncUtils.js +18 -0
- package/distr/Common/AsyncUtils.js.map +1 -0
- package/distr/Common/AutoValidationUtils.js +8 -0
- package/distr/Common/AutoValidationUtils.js.map +1 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js +578 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/CandyApiClientContext.js +18 -0
- package/distr/Common/CandyApiClient/CandyApiClientContext.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +6 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +6 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +12 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +6 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +33 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +35 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +20 -0
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +89 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +42 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +9 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +6 -0
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +18 -0
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +15 -0
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +19 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +6 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +248 -0
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/ICandyApiClient.js +6 -0
- package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/IsBuffer.js +15 -0
- package/distr/Common/CandyApiClient/IsBuffer.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +6 -0
- package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +6 -0
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +24 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +6 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +6 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +9 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftFullId.js +6 -0
- package/distr/Common/CandyApiClient/Types/DraftFullId.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +12 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js +6 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +17 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +13 -0
- package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +15 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +9 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Guid.js +6 -0
- package/distr/Common/CandyApiClient/Types/Guid.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +6 -0
- package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +6 -0
- package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +6 -0
- package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +24 -0
- package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +6 -0
- package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintType.js +12 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintType.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js +19 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js +13 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js +21 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js +19 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js +6 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js +26 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js +16 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js +16 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +14 -0
- package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js.map +1 -0
- package/distr/Common/CollectionUtils.js +15 -0
- package/distr/Common/CollectionUtils.js.map +1 -0
- package/distr/Common/CommonConstants/SectionNames.js +11 -0
- package/distr/Common/CommonConstants/SectionNames.js.map +1 -0
- package/distr/Common/Comparers.js +63 -0
- package/distr/Common/Comparers.js.map +1 -0
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +22 -0
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js.map +1 -0
- package/distr/Common/EndPoints.js +16 -0
- package/distr/Common/EndPoints.js.map +1 -0
- package/distr/Common/Enums/ButtonSettingsTypeEnum.js +12 -0
- package/distr/Common/Enums/ButtonSettingsTypeEnum.js.map +1 -0
- package/distr/Common/Errors.js +44 -0
- package/distr/Common/Errors.js.map +1 -0
- package/distr/Common/ExtractGFVPath/ExtractGFVPath.js +31 -0
- package/distr/Common/ExtractGFVPath/ExtractGFVPath.js.map +1 -0
- package/distr/Common/FSPrinterClient/FSPrinterClient.js +153 -0
- package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -0
- package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js +19 -0
- package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js.map +1 -0
- package/distr/Common/FSPrinterClient/IFSPrinterClient.js +39 -0
- package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -0
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +14 -0
- package/distr/Common/FormActionHandlers/ContextualActionNames.js.map +1 -0
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +6 -0
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js.map +1 -0
- package/distr/Common/FormPathUtils.js +21 -0
- package/distr/Common/FormPathUtils.js.map +1 -0
- package/distr/Common/Funcs.js +11 -0
- package/distr/Common/Funcs.js.map +1 -0
- package/distr/Common/GFV.js +6 -0
- package/distr/Common/GFV.js.map +1 -0
- package/distr/Common/GetRngSchemaFileExtension.js +26 -0
- package/distr/Common/GetRngSchemaFileExtension.js.map +1 -0
- package/distr/Common/Hooks/UseLocalStorage.js +35 -0
- package/distr/Common/Hooks/UseLocalStorage.js.map +1 -0
- package/distr/Common/HttpClient/AuthenticationMode.js +31 -0
- package/distr/Common/HttpClient/AuthenticationMode.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +9 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +9 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/Fetch.js +6 -0
- package/distr/Common/HttpClient/FetchImplementation/Fetch.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +8 -0
- package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +36 -0
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js.map +1 -0
- package/distr/Common/HttpClient/HttpClient.js +313 -0
- package/distr/Common/HttpClient/HttpClient.js.map +1 -0
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +6 -0
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js.map +1 -0
- package/distr/Common/HttpClient/IHttpClient.js +6 -0
- package/distr/Common/HttpClient/IHttpClient.js.map +1 -0
- package/distr/Common/IndentString.js +16 -0
- package/distr/Common/IndentString.js.map +1 -0
- package/distr/Common/IntRangeUtils.js +32 -0
- package/distr/Common/IntRangeUtils.js.map +1 -0
- package/distr/Common/IterableUtils.js +288 -0
- package/distr/Common/IterableUtils.js.map +1 -0
- package/distr/Common/KCLangRuntimeUtils.js +266 -0
- package/distr/Common/KCLangRuntimeUtils.js.map +1 -0
- package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +55 -0
- package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -0
- package/distr/Common/ModelPath/BuildIterationSequence.js +41 -0
- package/distr/Common/ModelPath/BuildIterationSequence.js.map +1 -0
- package/distr/Common/ModelPath/EachCurrentCollision.js +12 -0
- package/distr/Common/ModelPath/EachCurrentCollision.js.map +1 -0
- package/distr/Common/ModelPath/IEquatable.js +6 -0
- package/distr/Common/ModelPath/IEquatable.js.map +1 -0
- package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +23 -0
- package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js.map +1 -0
- package/distr/Common/ModelPath/Map/Map2.js +99 -0
- package/distr/Common/ModelPath/Map/Map2.js.map +1 -0
- package/distr/Common/ModelPath/Map/ModelPathMap.js +23 -0
- package/distr/Common/ModelPath/Map/ModelPathMap.js.map +1 -0
- package/distr/Common/ModelPath/ModelPath.js +476 -0
- package/distr/Common/ModelPath/ModelPath.js.map +1 -0
- package/distr/Common/ModelPath/ModelPathBuilder.js +42 -0
- package/distr/Common/ModelPath/ModelPathBuilder.js.map +1 -0
- package/distr/Common/ModelPath/ModelPathHelper.js +34 -0
- package/distr/Common/ModelPath/ModelPathHelper.js.map +1 -0
- package/distr/Common/ModelPath/PathMatcher.js +95 -0
- package/distr/Common/ModelPath/PathMatcher.js.map +1 -0
- package/distr/Common/ModelPath/PathSplitHelper.js +21 -0
- package/distr/Common/ModelPath/PathSplitHelper.js.map +1 -0
- package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +31 -0
- package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js.map +1 -0
- package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +31 -0
- package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js.map +1 -0
- package/distr/Common/ModelPath/Set/ModelPathSet.js +31 -0
- package/distr/Common/ModelPath/Set/ModelPathSet.js.map +1 -0
- package/distr/Common/ModelPath/Set/Set2.js +59 -0
- package/distr/Common/ModelPath/Set/Set2.js.map +1 -0
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +33 -0
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +6 -0
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +11 -0
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js.map +1 -0
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +66 -0
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +108 -0
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/INidusClient.js +14 -0
- package/distr/Common/NidusClient/INidusClient.js.map +1 -0
- package/distr/Common/NidusClient/NidusClientContext.js +34 -0
- package/distr/Common/NidusClient/NidusClientContext.js.map +1 -0
- package/distr/Common/NidusClient/NidusClientImpl.js +55 -0
- package/distr/Common/NidusClient/NidusClientImpl.js.map +1 -0
- package/distr/Common/PathConstants.js +11 -0
- package/distr/Common/PathConstants.js.map +1 -0
- package/distr/Common/PicklistApiClient/IPicklistApiClient.js +6 -0
- package/distr/Common/PicklistApiClient/IPicklistApiClient.js.map +1 -0
- package/distr/Common/PicklistApiClient/PicklistApiClient.js +31 -0
- package/distr/Common/PicklistApiClient/PicklistApiClient.js.map +1 -0
- package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +36 -0
- package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js.map +1 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +53 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js.map +1 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +37 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js.map +1 -0
- package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js +6 -0
- package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js.map +1 -0
- package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js +6 -0
- package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js.map +1 -0
- package/distr/Common/RngSchemeTypes/types.js +6 -0
- package/distr/Common/RngSchemeTypes/types.js.map +1 -0
- package/distr/Common/StringArrayKey.js +26 -0
- package/distr/Common/StringArrayKey.js.map +1 -0
- package/distr/Common/TextExtractor/TextExtractorTypes.js +6 -0
- package/distr/Common/TextExtractor/TextExtractorTypes.js.map +1 -0
- package/distr/Common/TypingUtils.js +118 -0
- package/distr/Common/TypingUtils.js.map +1 -0
- package/distr/Common/UUID.js +14 -0
- package/distr/Common/UUID.js.map +1 -0
- package/distr/Common/UseAsyncEffect.js +20 -0
- package/distr/Common/UseAsyncEffect.js.map +1 -0
- package/distr/Common/UseShowOnce.js +60 -0
- package/distr/Common/UseShowOnce.js.map +1 -0
- package/distr/Common/UseTypedSelector.js +10 -0
- package/distr/Common/UseTypedSelector.js.map +1 -0
- package/distr/Common/WellKnownDirectories.js +14 -0
- package/distr/Common/WellKnownDirectories.js.map +1 -0
- package/distr/Common/hashUtils.js +14 -0
- package/distr/Common/hashUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +77 -0
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +14 -0
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +22 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +88 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +82 -0
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +10 -0
- package/distr/Tools/src/BuildTasks/Engine/EngineSource.js.map +1 -0
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +42 -0
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +30 -0
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/FSTask.js +67 -0
- package/distr/Tools/src/BuildTasks/FSTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +52 -0
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +44 -0
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +37 -0
- package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +25 -0
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +31 -0
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +27 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +95 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +126 -0
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +174 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +121 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +45 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +52 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +49 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +19 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +64 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +84 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -0
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +174 -0
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ReadFormSource.js +112 -0
- package/distr/Tools/src/BuildTasks/ReadFormSource.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +107 -0
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Version.js +41 -0
- package/distr/Tools/src/BuildTasks/Version.js.map +1 -0
- package/distr/Tools/src/BuildTasks/WriteFormMeta.js +27 -0
- package/distr/Tools/src/BuildTasks/WriteFormMeta.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +28 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +169 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js +24 -0
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +234 -0
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +36 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +112 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +158 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +94 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +129 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js +45 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +76 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +67 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +65 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +117 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +22 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +96 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +231 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js +70 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +57 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +67 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +21 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +52 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +80 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +31 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +6 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +6 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +184 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +213 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +28 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +6 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +110 -0
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +50 -0
- package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js.map +1 -0
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +19 -0
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js.map +1 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +30 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js.map +1 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +6 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +163 -0
- package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +112 -0
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -0
- package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +34 -0
- package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +50 -0
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js.map +1 -0
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +54 -0
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}./320/232/320/241.candy.js.kclang +0 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.AfterMerge.xslt +11 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.BeforePreload.xslt +11 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.fufPatcher.xslt +11 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.outer.inner.json +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js +2 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/form.json +12 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/addPril1.txt +6 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/presentations.json +8 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/schemas/{gfv}.0.rng.xml +20 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/sugar/index.sugar.xml +10 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +16 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +23 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/validations.KC.kclang +0 -0
- package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +34 -0
- package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +117 -0
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js.map +1 -0
- package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +44 -0
- package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +73 -0
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js.map +1 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +25 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +38 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js.map +1 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js +36 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js.map +1 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js +50 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js.map +1 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +144 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js.map +1 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +78 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js.map +1 -0
- package/distr/Tools/src/CandyCLI.js +144 -0
- package/distr/Tools/src/CandyCLI.js.map +1 -0
- package/distr/Tools/src/CheckNodeJsVersion.js +32 -0
- package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -0
- package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +28 -0
- package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js.map +1 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +93 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js.map +1 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +24 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js.map +1 -0
- package/distr/Tools/src/Commons/ErrorUntyped.js +6 -0
- package/distr/Tools/src/Commons/ErrorUntyped.js.map +1 -0
- package/distr/Tools/src/Commons/EventObject.js +74 -0
- package/distr/Tools/src/Commons/EventObject.js.map +1 -0
- package/distr/Tools/src/Commons/ExecUtils.js +38 -0
- package/distr/Tools/src/Commons/ExecUtils.js.map +1 -0
- package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +21 -0
- package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js.map +1 -0
- package/distr/Tools/src/Commons/FormGlobsUtils.js +137 -0
- package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -0
- package/distr/Tools/src/Commons/FormLocationInfo.js +6 -0
- package/distr/Tools/src/Commons/FormLocationInfo.js.map +1 -0
- package/distr/Tools/src/Commons/FsUtils.js +35 -0
- package/distr/Tools/src/Commons/FsUtils.js.map +1 -0
- package/distr/Tools/src/Commons/GetCpuLimits.js +64 -0
- package/distr/Tools/src/Commons/GetCpuLimits.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +38 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +57 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +15 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +18 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +6 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +14 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +17 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +22 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +20 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +46 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +18 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +6 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +113 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +24 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +106 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +22 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js.map +1 -0
- package/distr/Tools/src/Commons/Locks/Lock.js +24 -0
- package/distr/Tools/src/Commons/Locks/Lock.js.map +1 -0
- package/distr/Tools/src/Commons/Locks/LockHandle.js +17 -0
- package/distr/Tools/src/Commons/Locks/LockHandle.js.map +1 -0
- package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +31 -0
- package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/ELKLogger.js +56 -0
- package/distr/Tools/src/Commons/Logging/ELKLogger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/ILogger.js +25 -0
- package/distr/Tools/src/Commons/Logging/ILogger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +61 -0
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/Logger.js +78 -0
- package/distr/Tools/src/Commons/Logging/Logger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/StaticLogger.js +37 -0
- package/distr/Tools/src/Commons/Logging/StaticLogger.js.map +1 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +2 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js.map +1 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +152 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js.map +1 -0
- package/distr/Tools/src/Commons/PathPattern.js +42 -0
- package/distr/Tools/src/Commons/PathPattern.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +16 -0
- package/distr/Tools/src/Commons/TasksCore/AggregatedError.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/BuildTask.js +6 -0
- package/distr/Tools/src/Commons/TasksCore/BuildTask.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +668 -0
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +77 -0
- package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +20 -0
- package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +48 -0
- package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +45 -0
- package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +25 -0
- package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/Observe.js +35 -0
- package/distr/Tools/src/Commons/TasksCore/Observe.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +29 -0
- package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TimingUtils.js +13 -0
- package/distr/Tools/src/Commons/TimingUtils.js.map +1 -0
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +180 -0
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -0
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +145 -0
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +1 -0
- package/distr/Tools/src/FormWebpackConfiguration/variables.less +132 -0
- package/distr/Tools/src/GenerateReadMe.js +54 -0
- package/distr/Tools/src/GenerateReadMe.js.map +1 -0
- package/distr/Tools/src/Keys/localhost-key.pem +116 -0
- package/distr/Tools/src/Keys/localhost.pem +35 -0
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +2 -0
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +49 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-16x16.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-32x32.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon.ico +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.html +1 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +3 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +60 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -0
- package/distr/Tools/src/Options/CandyToolOptions.js +20 -0
- package/distr/Tools/src/Options/CandyToolOptions.js.map +1 -0
- package/distr/Tools/src/ReadFarmConfig.js +18 -0
- package/distr/Tools/src/ReadFarmConfig.js.map +1 -0
- package/distr/Tools/src/SelfUpdate.js +121 -0
- package/distr/Tools/src/SelfUpdate.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1722 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.LICENSE.txt +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +1076 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +3328 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +6517 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +222 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +3328 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +6517 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +222 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.runBuildForms = runBuildForms;
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
9
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
10
|
+
var _fsExtra = require("fs-extra");
|
|
11
|
+
var _nodeNotifier = _interopRequireDefault(require("node-notifier"));
|
|
12
|
+
var _AcquireFormEngine = require("../../BuildTasks/Engine/AcquireFormEngine");
|
|
13
|
+
var _EngineSource = require("../../BuildTasks/Engine/EngineSource");
|
|
14
|
+
var _CompileForm = require("../../BuildTasks/Form/CompileForm");
|
|
15
|
+
var _GenerateForm = require("../../BuildTasks/Form/GenerateForm");
|
|
16
|
+
var _NullFormGenerator = require("../../BuildTasks/Form/NullFormGenerator");
|
|
17
|
+
var _WriteFLangNormalizationFiles = require("../../BuildTasks/Form/WriteFLangNormalizationFiles");
|
|
18
|
+
var _FSTask = require("../../BuildTasks/FSTask");
|
|
19
|
+
var _AcquireFormGenerator = require("../../BuildTasks/Generator/AcquireFormGenerator");
|
|
20
|
+
var _PublishedVersionUtils = require("../../BuildTasks/PublishedVersionUtils");
|
|
21
|
+
var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
|
|
22
|
+
var _WriteFormMeta = require("../../BuildTasks/WriteFormMeta");
|
|
23
|
+
var _FormGlobsUtils = require("../../Commons/FormGlobsUtils");
|
|
24
|
+
var _StaticLogger = require("../../Commons/Logging/StaticLogger");
|
|
25
|
+
var _Observe = require("../../Commons/TasksCore/Observe");
|
|
26
|
+
var _SingleValueProducer = require("../../Commons/TasksCore/SingleValueProducer");
|
|
27
|
+
var _TimingUtils = require("../../Commons/TimingUtils");
|
|
28
|
+
var _CacheAssetsPlugin = require("../../FormWebpackConfiguration/CacheAssetsPlugin");
|
|
29
|
+
var _TypingUtils = require("../../../../Common/TypingUtils");
|
|
30
|
+
var _WriteAttachmentPathFiles = require("../../BuildTasks/Form/WriteAttachmentPathFiles");
|
|
31
|
+
var _GetRngSchemaFileExtension = require("../../../../Common/GetRngSchemaFileExtension");
|
|
32
|
+
var _FormPathUtils = require("../../../../Common/FormPathUtils");
|
|
33
|
+
var _WellKnownDirectories = require("../../../../Common/WellKnownDirectories");
|
|
34
|
+
function getGeneratorVersion(generatorSource) {
|
|
35
|
+
if (generatorSource.type === "PublishedGenerator") {
|
|
36
|
+
return generatorSource.version;
|
|
37
|
+
} else {
|
|
38
|
+
throw new Error("InvalidProgramState");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function runBuildForms(context, options, farmDirectory, resourcesDirectory, engineDirectory, candyModulesDirectory, hlFarmDirectoryPath) {
|
|
42
|
+
const buildOptions = options;
|
|
43
|
+
const pickListsChain = _Observe.Observe.files(_path.default.join(farmDirectory, "picklists"), "*.json").do(x => _FSTask.FSTask.copyRecursively(context.logger.withPrefix("PICKLISTS"), x, _path.default.join(resourcesDirectory, "picklists")));
|
|
44
|
+
await _FormGlobsUtils.FormGlobs.ensureEachGlobResolvesIntoExistingForm(options.formGlobs, farmDirectory);
|
|
45
|
+
const formInfos = await _FormGlobsUtils.FormGlobs.resolveGfvGlobs(options.formGlobs, farmDirectory);
|
|
46
|
+
const staticResourcesForProductionChain = _Observe.Observe.files(_path.default.join(__dirname, "..", "..", "StaticFilesForProductionResourcesDir"), "*.js", "*.js.map").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("STATICS"), x, _path.default.join(resourcesDirectory, "public", "scripts")));
|
|
47
|
+
|
|
48
|
+
/** Конвертеры описи для форм, которые пока не реализованы на кенди, сама механика описи перенесена в формы в кенди апи, поэтому они должны быть в candy.resources
|
|
49
|
+
* Реализуется только при общем билде форм: candy build *
|
|
50
|
+
* */
|
|
51
|
+
let resourcesExternalConvertersChain = _Observe.Observe.empty();
|
|
52
|
+
if (options.formGlobs[0] === "*") {
|
|
53
|
+
resourcesExternalConvertersChain = _Observe.Observe.files(_path.default.join(farmDirectory, "externalConverters"), "*.xslt").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("EXTERNAL-CONVERTERS"), x, _path.default.join(resourcesDirectory, "converters")));
|
|
54
|
+
}
|
|
55
|
+
const copiedEngines = new Set();
|
|
56
|
+
const repositoryRoot = _path.default.join(farmDirectory, "..");
|
|
57
|
+
const buildCache = new _CacheAssetsPlugin.BuildCache(farmDirectory, options.buildCacheMode);
|
|
58
|
+
const buildFormsChain = _Observe.Observe.fixedFormDirectories(formInfos.map(x => _path.default.relative(repositoryRoot, x.formPath))).splitToParallelChains(x => x, x => x, async formRelativePath => {
|
|
59
|
+
const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formRelativePath);
|
|
60
|
+
const formDirPath = _path.default.join(repositoryRoot, formRelativePath);
|
|
61
|
+
if (!(await (0, _fsExtra.pathExists)(_path.default.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName)))) {
|
|
62
|
+
context.logger.warning(`Form ${gfv} does not have form.json file. To include this form to build process restart build`);
|
|
63
|
+
return _Observe.Observe.value({});
|
|
64
|
+
}
|
|
65
|
+
const formSchemasDirPath = _path.default.join(formDirPath, "schemas");
|
|
66
|
+
const rngSchemaMask = `*${(0, _GetRngSchemaFileExtension.getRngSchemaFileExtension)(formSchemasDirPath, gfv)}`;
|
|
67
|
+
return _Observe.Observe.file(_path.default.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName)).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, engineDirectory, context.logger.withPrefix(`FORM:${gfv}`), options.upgradeFormJson, options.useLastStableVersion, options.usePrereleaseVersion)).transform(async fi => {
|
|
68
|
+
if (fi.mode === _ResolveFormInfo.FormBuildMode.NormalBuild) {
|
|
69
|
+
if (fi.generatorVersion == undefined) {
|
|
70
|
+
throw new Error("generatorVersion is not defined");
|
|
71
|
+
}
|
|
72
|
+
if (fi.engineVersion == undefined) {
|
|
73
|
+
throw new Error("engineVersion is not defined");
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
...fi,
|
|
77
|
+
generatorSource: await (0, _PublishedVersionUtils.resolveGeneratorVersion)(fi.generatorVersion, context.logger.withPrefix(gfv)),
|
|
78
|
+
engineSource: await (0, _PublishedVersionUtils.resolveEngineVersion)(fi.engineVersion, context.logger.withPrefix(gfv))
|
|
79
|
+
};
|
|
80
|
+
} else {
|
|
81
|
+
return {
|
|
82
|
+
...fi,
|
|
83
|
+
generatorSource: undefined,
|
|
84
|
+
engineSource: undefined
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}).attach(async fi => {
|
|
88
|
+
if (fi.generatorSource == undefined) {
|
|
89
|
+
return new _SingleValueProducer.SingleValueProducer(new _NullFormGenerator.NullFormGenerator());
|
|
90
|
+
} else {
|
|
91
|
+
return (0, _AcquireFormGenerator.generatorFactory)(fi.generatorSource, candyModulesDirectory, options.useVersionFromCache);
|
|
92
|
+
}
|
|
93
|
+
}, async (fi, y) => ({
|
|
94
|
+
...fi,
|
|
95
|
+
generator: y
|
|
96
|
+
}), async fi => fi.generatorSource != undefined ? (0, _AcquireFormGenerator.getGeneratorSourceKey)(fi.generatorSource) : "NullFormGenerator").attach(async fi => {
|
|
97
|
+
if (fi.engineSource === undefined) {
|
|
98
|
+
return new _SingleValueProducer.SingleValueProducer("NullEngine");
|
|
99
|
+
}
|
|
100
|
+
return (0, _AcquireFormEngine.engineFactory)(fi.engineSource, candyModulesDirectory, options.useVersionFromCache).do(async x => {
|
|
101
|
+
if (!copiedEngines.has((0, _EngineSource.getEngineSourceKey)(fi.engineSource))) {
|
|
102
|
+
await _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("ENGINE"), x, _path.default.join(resourcesDirectory, "public"));
|
|
103
|
+
copiedEngines.add((0, _EngineSource.getEngineSourceKey)(fi.engineSource));
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}, async fi => fi, async fi => fi.engineSource != undefined ? (0, _EngineSource.getEngineSourceKey)(fi.engineSource) : "NullEngine").attach(async fi => _Observe.Observe.files(fi.formSourcesPath, "../../controls/**/*", "../../xsltTemplates/**/*", "../../jsHelpers/**/*", "schemas/**/*", "sugar/**/*", "controls/**/*", "autocalc/**/*", "helpers/**/*", "validations/**/*", "localization/**/*")).transform(async fi => {
|
|
107
|
+
let dependenciesHash;
|
|
108
|
+
if (fi.mode !== _ResolveFormInfo.FormBuildMode.NormalBuild) {
|
|
109
|
+
return {
|
|
110
|
+
...fi,
|
|
111
|
+
dependenciesHash: undefined
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
if (await fi.generator.supportsDependenciesExtraction()) {
|
|
115
|
+
dependenciesHash = await fi.generator.getAllDependenciesHash(formDirPath, farmDirectory, hlFarmDirectoryPath);
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
...fi,
|
|
119
|
+
dependenciesHash: dependenciesHash
|
|
120
|
+
};
|
|
121
|
+
}).transform(async fi => {
|
|
122
|
+
let buildCacheExist = false;
|
|
123
|
+
if (fi.dependenciesHash != undefined && fi.generatorSource != undefined) {
|
|
124
|
+
buildCacheExist = await buildCache.exists(fi.generatorSource, gfv, fi.dependenciesHash);
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
...fi,
|
|
128
|
+
buildCacheExist: buildCacheExist
|
|
129
|
+
};
|
|
130
|
+
}).do(async fi => {
|
|
131
|
+
var _fi$dependenciesHash;
|
|
132
|
+
if (fi.generatorSource == undefined) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
if (fi.buildCacheExist) {
|
|
136
|
+
context.logger.withPrefix(`GENERATE:${gfv}`).log("Skipped due build cache exits");
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
return (0, _GenerateForm.generateForm)(fi.formSourcesPath, farmDirectory, hlFarmDirectoryPath, fi.generator, undefined, {
|
|
140
|
+
skipCodeReformatting: options.skipGeneratedCodeReformatting,
|
|
141
|
+
resourcesHash: (_fi$dependenciesHash = fi.dependenciesHash) !== null && _fi$dependenciesHash !== void 0 ? _fi$dependenciesHash : "UndefinedResourcesHash"
|
|
142
|
+
});
|
|
143
|
+
}).attach(async fi => _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*")).do(async fi => {
|
|
144
|
+
var _fi$dependenciesHash2, _fi$dependenciesHash3;
|
|
145
|
+
if (fi.generatorSource == undefined) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (fi.dependenciesHash != undefined && fi.buildCacheExist) {
|
|
149
|
+
context.logger.withPrefix(`COMPILE:${gfv}`).log("Skipped due build cache exists");
|
|
150
|
+
await buildCache.extract(fi.generatorSource, gfv, fi.dependenciesHash, resourcesDirectory);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const buildCacheOptions = fi.dependenciesHash != undefined ? {
|
|
154
|
+
depsHash: fi.dependenciesHash,
|
|
155
|
+
generatorVersion: getGeneratorVersion(fi.generatorSource),
|
|
156
|
+
gfv: gfv,
|
|
157
|
+
mode: options.buildCacheMode,
|
|
158
|
+
farmDirectory: farmDirectory
|
|
159
|
+
} : undefined;
|
|
160
|
+
await (0, _CompileForm.compileForm)(fi.formName, formDirPath, resourcesDirectory, (_fi$dependenciesHash2 = fi.dependenciesHash) !== null && _fi$dependenciesHash2 !== void 0 ? _fi$dependenciesHash2 : (0, _TypingUtils.reject)("This version of generator is not supported due to dependencies extraction is not supported"), false, undefined, options.mode === "production", buildCacheOptions);
|
|
161
|
+
await (0, _WriteFormMeta.writeFormMeta)(resourcesDirectory, gfv, fi.engineSource, (_fi$dependenciesHash3 = fi.dependenciesHash) !== null && _fi$dependenciesHash3 !== void 0 ? _fi$dependenciesHash3 : (0, _TypingUtils.reject)("This version of generator is not supported due to dependencies extraction is not supported"), fi.themes, buildCache, buildCacheOptions);
|
|
162
|
+
}).do(async fi => {
|
|
163
|
+
if (fi.generatorSource == undefined) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const buildCacheOptions = fi.dependenciesHash != undefined ? {
|
|
167
|
+
depsHash: fi.dependenciesHash,
|
|
168
|
+
generatorVersion: getGeneratorVersion(fi.generatorSource),
|
|
169
|
+
gfv: gfv,
|
|
170
|
+
mode: options.buildCacheMode,
|
|
171
|
+
farmDirectory: farmDirectory
|
|
172
|
+
} : undefined;
|
|
173
|
+
await (0, _WriteFLangNormalizationFiles.writeFLangNormalizationFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory, undefined, buildCache, buildCacheOptions, fi.buildCacheExist);
|
|
174
|
+
await (0, _WriteAttachmentPathFiles.writeAttachmentPathFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory, undefined, buildCache, buildCacheOptions);
|
|
175
|
+
}).attach(async fi => {
|
|
176
|
+
if (fi.mode === _ResolveFormInfo.FormBuildMode.CopyLegacyPrebuiltResources) {
|
|
177
|
+
return _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "legacy-prebuilt"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("LEGACY-PREBUILT"), x, _path.default.join(resourcesDirectory)));
|
|
178
|
+
} else {
|
|
179
|
+
return new _SingleValueProducer.SingleValueProducer("");
|
|
180
|
+
}
|
|
181
|
+
}).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "schemas"), rngSchemaMask).do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("SCHEMAS"), x, _path.default.join(resourcesDirectory, "schemas")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "converters"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("CONVERTERS"), x, _path.default.join(resourcesDirectory, "converters")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "mergers"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MERGERS"), x, _path.default.join(resourcesDirectory, "mergers")))).attach(async fi => {
|
|
182
|
+
const modifier = content => content.replace(/<x:include href="[./]+/g, '<x:include href="');
|
|
183
|
+
return _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "converters"), "*").do(x => _FSTask.FSTask.modifyFilesContent((0, _StaticLogger.getLogger)().withPrefix("FIX-XSLT-INCLUDE"), x, _path.default.join(resourcesDirectory, "converters"), "**/*.xslt", modifier));
|
|
184
|
+
}).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "..", "..", "xsltTemplates"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("XSLT-TEMPLATES"), x, _path.default.join(resourcesDirectory, "converters", "xsltTemplates")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "normalize"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("NORMALIZE"), x, _path.default.join(resourcesDirectory, "normalize")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "patch"), "*.xslt").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("PATCH"), x, _path.default.join(resourcesDirectory, "patch")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "map"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MAP"), x, _path.default.join(resourcesDirectory, "map")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "unmap"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("UNMAP"), x, _path.default.join(resourcesDirectory, "unmap")))).do(async fi => {
|
|
185
|
+
if (buildOptions.watch) {
|
|
186
|
+
_nodeNotifier.default.notify({
|
|
187
|
+
title: `${fi.formName}: сборка завершена`,
|
|
188
|
+
message: `Engine: ${fi.engineSource == undefined ? "[NoEngine]" : fi.engineSource.type === "LocalEngineSources" ? "local" : fi.engineSource.version}`
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
if (buildOptions.watch) {
|
|
194
|
+
if (options.clean) {
|
|
195
|
+
await cleanTargetDirectory(resourcesDirectory, context.logger);
|
|
196
|
+
}
|
|
197
|
+
const stopObserve1 = await pickListsChain.observe();
|
|
198
|
+
const stopObserve2 = await buildFormsChain.observe();
|
|
199
|
+
const stopObserve3 = await staticResourcesForProductionChain.observe();
|
|
200
|
+
const stopObserve5 = await resourcesExternalConvertersChain.observe();
|
|
201
|
+
await context.waitForExit();
|
|
202
|
+
if (stopObserve3 != undefined) {
|
|
203
|
+
await stopObserve3();
|
|
204
|
+
}
|
|
205
|
+
if (stopObserve5 != undefined) {
|
|
206
|
+
await stopObserve5();
|
|
207
|
+
}
|
|
208
|
+
await stopObserve2();
|
|
209
|
+
await stopObserve1();
|
|
210
|
+
} else {
|
|
211
|
+
const startDate = Date.now();
|
|
212
|
+
try {
|
|
213
|
+
if (options.clean) {
|
|
214
|
+
await cleanTargetDirectory(resourcesDirectory, context.logger);
|
|
215
|
+
}
|
|
216
|
+
await pickListsChain.currentValue;
|
|
217
|
+
await resourcesExternalConvertersChain.currentValue;
|
|
218
|
+
await buildFormsChain.currentValue;
|
|
219
|
+
await staticResourcesForProductionChain.currentValue;
|
|
220
|
+
// eslint-disable-next-line no-console
|
|
221
|
+
console.log(_chalk.default.greenBright("Build success"));
|
|
222
|
+
} finally {
|
|
223
|
+
const totalTime = Date.now() - startDate;
|
|
224
|
+
// eslint-disable-next-line no-console
|
|
225
|
+
console.log(`Total time: ${(0, _TimingUtils.printTime)(totalTime)}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
async function cleanTargetDirectory(resourcesDirectory, logger) {
|
|
230
|
+
logger.log("Cleaning resource directory. " + resourcesDirectory);
|
|
231
|
+
await (0, _fsExtra.emptyDir)(resourcesDirectory);
|
|
232
|
+
logger.log("Resource directory clean");
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX2ZzRXh0cmEiLCJfbm9kZU5vdGlmaWVyIiwiX0FjcXVpcmVGb3JtRW5naW5lIiwiX0VuZ2luZVNvdXJjZSIsIl9Db21waWxlRm9ybSIsIl9HZW5lcmF0ZUZvcm0iLCJfTnVsbEZvcm1HZW5lcmF0b3IiLCJfV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyIsIl9GU1Rhc2siLCJfQWNxdWlyZUZvcm1HZW5lcmF0b3IiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Xcml0ZUZvcm1NZXRhIiwiX0Zvcm1HbG9ic1V0aWxzIiwiX1N0YXRpY0xvZ2dlciIsIl9PYnNlcnZlIiwiX1NpbmdsZVZhbHVlUHJvZHVjZXIiLCJfVGltaW5nVXRpbHMiLCJfQ2FjaGVBc3NldHNQbHVnaW4iLCJfVHlwaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX0dldFJuZ1NjaGVtYUZpbGVFeHRlbnNpb24iLCJfRm9ybVBhdGhVdGlscyIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsImdldEdlbmVyYXRvclZlcnNpb24iLCJnZW5lcmF0b3JTb3VyY2UiLCJ0eXBlIiwidmVyc2lvbiIsIkVycm9yIiwicnVuQnVpbGRGb3JtcyIsImNvbnRleHQiLCJvcHRpb25zIiwiZmFybURpcmVjdG9yeSIsInJlc291cmNlc0RpcmVjdG9yeSIsImVuZ2luZURpcmVjdG9yeSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJidWlsZE9wdGlvbnMiLCJwaWNrTGlzdHNDaGFpbiIsIk9ic2VydmUiLCJmaWxlcyIsInBhdGgiLCJqb2luIiwiZG8iLCJ4IiwiRlNUYXNrIiwiY29weVJlY3Vyc2l2ZWx5IiwibG9nZ2VyIiwid2l0aFByZWZpeCIsIkZvcm1HbG9icyIsImVuc3VyZUVhY2hHbG9iUmVzb2x2ZXNJbnRvRXhpc3RpbmdGb3JtIiwiZm9ybUdsb2JzIiwiZm9ybUluZm9zIiwicmVzb2x2ZUdmdkdsb2JzIiwic3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluIiwiX19kaXJuYW1lIiwiZ2V0TG9nZ2VyIiwicmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4iLCJlbXB0eSIsImNvcGllZEVuZ2luZXMiLCJTZXQiLCJyZXBvc2l0b3J5Um9vdCIsImJ1aWxkQ2FjaGUiLCJCdWlsZENhY2hlIiwiYnVpbGRDYWNoZU1vZGUiLCJidWlsZEZvcm1zQ2hhaW4iLCJmaXhlZEZvcm1EaXJlY3RvcmllcyIsIm1hcCIsInJlbGF0aXZlIiwiZm9ybVBhdGgiLCJzcGxpdFRvUGFyYWxsZWxDaGFpbnMiLCJmb3JtUmVsYXRpdmVQYXRoIiwiZ2Z2IiwiZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCIsImZvcm1EaXJQYXRoIiwicGF0aEV4aXN0cyIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybUpzb25GaWxlTmFtZSIsIndhcm5pbmciLCJ2YWx1ZSIsImZvcm1TY2hlbWFzRGlyUGF0aCIsInJuZ1NjaGVtYU1hc2siLCJnZXRSbmdTY2hlbWFGaWxlRXh0ZW5zaW9uIiwiZmlsZSIsInRyYW5zZm9ybSIsImZvcm1Kc29uRmlsZSIsInJlc29sdmVGb3JtSW5mbyIsInVwZ3JhZGVGb3JtSnNvbiIsInVzZUxhc3RTdGFibGVWZXJzaW9uIiwidXNlUHJlcmVsZWFzZVZlcnNpb24iLCJmaSIsIm1vZGUiLCJGb3JtQnVpbGRNb2RlIiwiTm9ybWFsQnVpbGQiLCJnZW5lcmF0b3JWZXJzaW9uIiwidW5kZWZpbmVkIiwiZW5naW5lVmVyc2lvbiIsInJlc29sdmVHZW5lcmF0b3JWZXJzaW9uIiwiZW5naW5lU291cmNlIiwicmVzb2x2ZUVuZ2luZVZlcnNpb24iLCJhdHRhY2giLCJTaW5nbGVWYWx1ZVByb2R1Y2VyIiwiTnVsbEZvcm1HZW5lcmF0b3IiLCJnZW5lcmF0b3JGYWN0b3J5IiwidXNlVmVyc2lvbkZyb21DYWNoZSIsInkiLCJnZW5lcmF0b3IiLCJnZXRHZW5lcmF0b3JTb3VyY2VLZXkiLCJlbmdpbmVGYWN0b3J5IiwiaGFzIiwiZ2V0RW5naW5lU291cmNlS2V5IiwiYWRkIiwiZm9ybVNvdXJjZXNQYXRoIiwiZGVwZW5kZW5jaWVzSGFzaCIsInN1cHBvcnRzRGVwZW5kZW5jaWVzRXh0cmFjdGlvbiIsImdldEFsbERlcGVuZGVuY2llc0hhc2giLCJidWlsZENhY2hlRXhpc3QiLCJleGlzdHMiLCJfZmkkZGVwZW5kZW5jaWVzSGFzaCIsImxvZyIsImdlbmVyYXRlRm9ybSIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwic2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmciLCJyZXNvdXJjZXNIYXNoIiwiX2ZpJGRlcGVuZGVuY2llc0hhc2gyIiwiX2ZpJGRlcGVuZGVuY2llc0hhc2gzIiwiZXh0cmFjdCIsImJ1aWxkQ2FjaGVPcHRpb25zIiwiZGVwc0hhc2giLCJjb21waWxlRm9ybSIsImZvcm1OYW1lIiwicmVqZWN0Iiwid3JpdGVGb3JtTWV0YSIsInRoZW1lcyIsIndyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMiLCJ3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMiLCJDb3B5TGVnYWN5UHJlYnVpbHRSZXNvdXJjZXMiLCJtb2RpZmllciIsImNvbnRlbnQiLCJyZXBsYWNlIiwibW9kaWZ5RmlsZXNDb250ZW50Iiwid2F0Y2giLCJub3RpZmllciIsIm5vdGlmeSIsInRpdGxlIiwibWVzc2FnZSIsImNsZWFuIiwiY2xlYW5UYXJnZXREaXJlY3RvcnkiLCJzdG9wT2JzZXJ2ZTEiLCJvYnNlcnZlIiwic3RvcE9ic2VydmUyIiwic3RvcE9ic2VydmUzIiwic3RvcE9ic2VydmU1Iiwid2FpdEZvckV4aXQiLCJzdGFydERhdGUiLCJEYXRlIiwibm93IiwiY3VycmVudFZhbHVlIiwiY29uc29sZSIsImNoYWxrIiwiZ3JlZW5CcmlnaHQiLCJ0b3RhbFRpbWUiLCJwcmludFRpbWUiLCJlbXB0eURpciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZEZvcm1zL1J1bkJ1aWxkRm9ybXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHsgZW1wdHlEaXIsIHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBub3RpZmllciBmcm9tIFwibm9kZS1ub3RpZmllclwiO1xuXG5pbXBvcnQgeyBlbmdpbmVGYWN0b3J5IH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRW5naW5lL0FjcXVpcmVGb3JtRW5naW5lXCI7XG5pbXBvcnQgeyBnZXRFbmdpbmVTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmUvRW5naW5lU291cmNlXCI7XG5pbXBvcnQgeyBjb21waWxlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vQ29tcGlsZUZvcm1cIjtcbmltcG9ydCB7IGdlbmVyYXRlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5pbXBvcnQgeyBOdWxsRm9ybUdlbmVyYXRvciB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vTnVsbEZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHdyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL1dyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXNcIjtcbmltcG9ydCB7IEZTVGFzayB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0ZTVGFza1wiO1xuaW1wb3J0IHtcbiAgICBnZW5lcmF0b3JGYWN0b3J5LFxuICAgIEdlbmVyYXRvclNvdXJjZSxcbiAgICBnZXRHZW5lcmF0b3JTb3VyY2VLZXksXG59IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZ2luZVZlcnNpb24sIHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRNb2RlLCByZXNvbHZlRm9ybUluZm8gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IHdyaXRlRm9ybU1ldGEgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Xcml0ZUZvcm1NZXRhXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9PYnNlcnZlXCI7XG5pbXBvcnQgeyBTaW5nbGVWYWx1ZVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL1NpbmdsZVZhbHVlUHJvZHVjZXJcIjtcbmltcG9ydCB7IHByaW50VGltZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1RpbWluZ1V0aWxzXCI7XG5pbXBvcnQgeyBCdWlsZENhY2hlIH0gZnJvbSBcIi4uLy4uL0Zvcm1XZWJwYWNrQ29uZmlndXJhdGlvbi9DYWNoZUFzc2V0c1BsdWdpblwiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUF0dGFjaG1lbnRQYXRoRmlsZXNcIjtcbmltcG9ydCB7IENoYWluYWJsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgRW1wdHlQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9FbXB0eVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBnZXRSbmdTY2hlbWFGaWxlRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9HZXRSbmdTY2hlbWFGaWxlRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBleHRyYWN0R2Z2RnJvbUZvcm1QYXRoIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9Gb3JtUGF0aFV0aWxzXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuaW1wb3J0IHsgQnVpbGRGb3Jtc09wdGlvbnMgfSBmcm9tIFwiLi9CdWlsZEZvcm1zT3B0aW9uc1wiO1xuXG5mdW5jdGlvbiBnZXRHZW5lcmF0b3JWZXJzaW9uKGdlbmVyYXRvclNvdXJjZTogR2VuZXJhdG9yU291cmNlKTogc3RyaW5nIHtcbiAgICBpZiAoZ2VuZXJhdG9yU291cmNlLnR5cGUgPT09IFwiUHVibGlzaGVkR2VuZXJhdG9yXCIpIHtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRvclNvdXJjZS52ZXJzaW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWRQcm9ncmFtU3RhdGVcIik7XG4gICAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQnVpbGRGb3JtcyhcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IEJ1aWxkRm9ybXNPcHRpb25zLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBlbmdpbmVEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBwaWNrTGlzdHNDaGFpbiA9IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpLCBcIiouanNvblwiKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChcIlBJQ0tMSVNUU1wiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIikpXG4gICAgKTtcblxuICAgIGF3YWl0IEZvcm1HbG9icy5lbnN1cmVFYWNoR2xvYlJlc29sdmVzSW50b0V4aXN0aW5nRm9ybShvcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSk7XG4gICAgY29uc3QgZm9ybUluZm9zID0gYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVHZnZHbG9icyhvcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSk7XG5cbiAgICBjb25zdCBzdGF0aWNSZXNvdXJjZXNGb3JQcm9kdWN0aW9uQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJTdGF0aWNGaWxlc0ZvclByb2R1Y3Rpb25SZXNvdXJjZXNEaXJcIiksXG4gICAgICAgIFwiKi5qc1wiLFxuICAgICAgICBcIiouanMubWFwXCJcbiAgICApLmRvKHggPT5cbiAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiU1RBVElDU1wiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwdWJsaWNcIiwgXCJzY3JpcHRzXCIpKVxuICAgICk7XG5cbiAgICAvKiog0JrQvtC90LLQtdGA0YLQtdGA0Ysg0L7Qv9C40YHQuCDQtNC70Y8g0YTQvtGA0LwsINC60L7RgtC+0YDRi9C1INC/0L7QutCwINC90LUg0YDQtdCw0LvQuNC30L7QstCw0L3RiyDQvdCwINC60LXQvdC00LgsINGB0LDQvNCwINC80LXRhdCw0L3QuNC60LAg0L7Qv9C40YHQuCDQv9C10YDQtdC90LXRgdC10L3QsCDQsiDRhNC+0YDQvNGLINCyINC60LXQvdC00Lgg0LDQv9C4LCDQv9C+0Y3RgtC+0LzRgyDQvtC90Lgg0LTQvtC70LbQvdGLINCx0YvRgtGMINCyIGNhbmR5LnJlc291cmNlc1xuICAgICAqICDQoNC10LDQu9C40LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQv9GA0Lgg0L7QsdGJ0LXQvCDQsdC40LvQtNC1INGE0L7RgNC8OiBjYW5keSBidWlsZCAqXG4gICAgICogKi9cbiAgICBsZXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW46IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8c3RyaW5nPiB8IEVtcHR5UHJvZHVjZXIgPSBPYnNlcnZlLmVtcHR5KCk7XG4gICAgaWYgKG9wdGlvbnMuZm9ybUdsb2JzWzBdID09PSBcIipcIikge1xuICAgICAgICByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbiA9IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZXh0ZXJuYWxDb252ZXJ0ZXJzXCIpLCBcIioueHNsdFwiKS5kbyhcbiAgICAgICAgICAgIHggPT5cbiAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiRVhURVJOQUwtQ09OVkVSVEVSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJjb252ZXJ0ZXJzXCIpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvcGllZEVuZ2luZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnlSb290ID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIik7XG4gICAgY29uc3QgYnVpbGRDYWNoZSA9IG5ldyBCdWlsZENhY2hlKGZhcm1EaXJlY3RvcnksIG9wdGlvbnMuYnVpbGRDYWNoZU1vZGUpO1xuICAgIGNvbnN0IGJ1aWxkRm9ybXNDaGFpbiA9IE9ic2VydmUuZml4ZWRGb3JtRGlyZWN0b3JpZXMoXG4gICAgICAgIGZvcm1JbmZvcy5tYXAoeCA9PiBwYXRoLnJlbGF0aXZlKHJlcG9zaXRvcnlSb290LCB4LmZvcm1QYXRoKSlcbiAgICApLnNwbGl0VG9QYXJhbGxlbENoYWlucyhcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICB4ID0+IHgsXG4gICAgICAgIGFzeW5jIGZvcm1SZWxhdGl2ZVBhdGggPT4ge1xuICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUmVsYXRpdmVQYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKHJlcG9zaXRvcnlSb290LCBmb3JtUmVsYXRpdmVQYXRoKTtcblxuICAgICAgICAgICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpKSkpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKFxuICAgICAgICAgICAgICAgICAgICBgRm9ybSAke2dmdn0gZG9lcyBub3QgaGF2ZSBmb3JtLmpzb24gZmlsZS4gVG8gaW5jbHVkZSB0aGlzIGZvcm0gdG8gYnVpbGQgcHJvY2VzcyByZXN0YXJ0IGJ1aWxkYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUudmFsdWUoe30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZm9ybVNjaGVtYXNEaXJQYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcInNjaGVtYXNcIik7XG4gICAgICAgICAgICBjb25zdCBybmdTY2hlbWFNYXNrID0gYCoke2dldFJuZ1NjaGVtYUZpbGVFeHRlbnNpb24oZm9ybVNjaGVtYXNEaXJQYXRoLCBnZnYpfWA7XG5cbiAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGZvcm1Kc29uRmlsZSA9PlxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlRm9ybUluZm8oXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtSnNvbkZpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtnZnZ9YCksXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnVwZ3JhZGVGb3JtSnNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlTGFzdFN0YWJsZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnVzZVByZXJlbGVhc2VWZXJzaW9uXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5tb2RlID09PSBGb3JtQnVpbGRNb2RlLk5vcm1hbEJ1aWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZ2VuZXJhdG9yVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnZW5lcmF0b3JWZXJzaW9uIGlzIG5vdCBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmVuZ2luZVZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZW5naW5lVmVyc2lvbiBpcyBub3QgZGVmaW5lZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiBhd2FpdCByZXNvbHZlR2VuZXJhdG9yVmVyc2lvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yVmVyc2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChnZnYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmVTb3VyY2U6IGF3YWl0IHJlc29sdmVFbmdpbmVWZXJzaW9uKGZpLmVuZ2luZVZlcnNpb24sIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoZ2Z2KSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmVTb3VyY2U6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JTb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVByb2R1Y2VyKG5ldyBOdWxsRm9ybUdlbmVyYXRvcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvckZhY3RvcnkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvclNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnVzZVZlcnNpb25Gcm9tQ2FjaGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhc3luYyAoZmksIHkpID0+ICh7IC4uLmZpLCBnZW5lcmF0b3I6IHkgfSksXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3JTb3VyY2UgIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJOdWxsRm9ybUdlbmVyYXRvclwiXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaS5lbmdpbmVTb3VyY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlVmFsdWVQcm9kdWNlcihcIk51bGxFbmdpbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW5naW5lRmFjdG9yeShmaS5lbmdpbmVTb3VyY2UsIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSwgb3B0aW9ucy51c2VWZXJzaW9uRnJvbUNhY2hlKS5kbyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3luYyB4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb3BpZWRFbmdpbmVzLmhhcyhnZXRFbmdpbmVTb3VyY2VLZXkoZmkuZW5naW5lU291cmNlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkVOR0lORVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicHVibGljXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29waWVkRW5naW5lcy5hZGQoZ2V0RW5naW5lU291cmNlS2V5KGZpLmVuZ2luZVNvdXJjZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gZmksXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIGZpID0+IChmaS5lbmdpbmVTb3VyY2UgIT0gdW5kZWZpbmVkID8gZ2V0RW5naW5lU291cmNlS2V5KGZpLmVuZ2luZVNvdXJjZSkgOiBcIk51bGxFbmdpbmVcIilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIuLi8uLi9jb250cm9scy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL3hzbHRUZW1wbGF0ZXMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIuLi8uLi9qc0hlbHBlcnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzY2hlbWFzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3VnYXIvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb250cm9scy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImF1dG9jYWxjLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGVscGVycy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInZhbGlkYXRpb25zLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYWxpemF0aW9uLyoqLypcIlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGVwZW5kZW5jaWVzSGFzaDogdW5kZWZpbmVkIHwgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkubW9kZSAhPT0gRm9ybUJ1aWxkTW9kZS5Ob3JtYWxCdWlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChhd2FpdCBmaS5nZW5lcmF0b3Iuc3VwcG9ydHNEZXBlbmRlbmNpZXNFeHRyYWN0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc0hhc2ggPSBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzSGFzaDogZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYnVpbGRDYWNoZUV4aXN0OiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5kZXBlbmRlbmNpZXNIYXNoICE9IHVuZGVmaW5lZCAmJiBmaS5nZW5lcmF0b3JTb3VyY2UgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlRXhpc3QgPSBhd2FpdCBidWlsZENhY2hlLmV4aXN0cyhmaS5nZW5lcmF0b3JTb3VyY2UsIGdmdiwgZmkuZGVwZW5kZW5jaWVzSGFzaCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZUV4aXN0OiBidWlsZENhY2hlRXhpc3QsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZ2VuZXJhdG9yU291cmNlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuYnVpbGRDYWNoZUV4aXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBHRU5FUkFURToke2dmdn1gKS5sb2coXCJTa2lwcGVkIGR1ZSBidWlsZCBjYWNoZSBleGl0c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVGb3JtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcENvZGVSZWZvcm1hdHRpbmc6IG9wdGlvbnMuc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCA/PyBcIlVuZGVmaW5lZFJlc291cmNlc0hhc2hcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKSwgXCIqKi8qXCIpKVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JTb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmRlcGVuZGVuY2llc0hhc2ggIT0gdW5kZWZpbmVkICYmIGZpLmJ1aWxkQ2FjaGVFeGlzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgQ09NUElMRToke2dmdn1gKS5sb2coXCJTa2lwcGVkIGR1ZSBidWlsZCBjYWNoZSBleGlzdHNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBidWlsZENhY2hlLmV4dHJhY3QoZmkuZ2VuZXJhdG9yU291cmNlLCBnZnYsIGZpLmRlcGVuZGVuY2llc0hhc2gsIHJlc291cmNlc0RpcmVjdG9yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRDYWNoZU9wdGlvbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uOiBnZXRHZW5lcmF0b3JWZXJzaW9uKGZpLmdlbmVyYXRvclNvdXJjZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogb3B0aW9ucy5idWlsZENhY2hlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5OiBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGNvbXBpbGVGb3JtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2ggPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhpcyB2ZXJzaW9uIG9mIGdlbmVyYXRvciBpcyBub3Qgc3VwcG9ydGVkIGR1ZSB0byBkZXBlbmRlbmNpZXMgZXh0cmFjdGlvbiBpcyBub3Qgc3VwcG9ydGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm1vZGUgPT09IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZvcm1NZXRhKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZW5naW5lU291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGlzIHZlcnNpb24gb2YgZ2VuZXJhdG9yIGlzIG5vdCBzdXBwb3J0ZWQgZHVlIHRvIGRlcGVuZGVuY2llcyBleHRyYWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS50aGVtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JTb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRDYWNoZU9wdGlvbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uOiBnZXRHZW5lcmF0b3JWZXJzaW9uKGZpLmdlbmVyYXRvclNvdXJjZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogb3B0aW9ucy5idWlsZENhY2hlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5OiBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURpclBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5idWlsZENhY2hlRXhpc3RcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURpclBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkubW9kZSA9PT0gRm9ybUJ1aWxkTW9kZS5Db3B5TGVnYWN5UHJlYnVpbHRSZXNvdXJjZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibGVnYWN5LXByZWJ1aWx0XCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJMRUdBQ1ktUFJFQlVJTFRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlVmFsdWVQcm9kdWNlcihcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwic2NoZW1hc1wiKSwgcm5nU2NoZW1hTWFzaykuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiU0NIRU1BU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwic2NoZW1hc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcImNvbnZlcnRlcnNcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJDT05WRVJURVJTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJjb252ZXJ0ZXJzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibWVyZ2Vyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk1FUkdFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1lcmdlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kaWZpZXIgPSAoY29udGVudDogc3RyaW5nKTogc3RyaW5nID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LnJlcGxhY2UoLzx4OmluY2x1ZGUgaHJlZj1cIlsuL10rL2csICc8eDppbmNsdWRlIGhyZWY9XCInKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJjb252ZXJ0ZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLm1vZGlmeUZpbGVzQ29udGVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiRklYLVhTTFQtSU5DTFVERVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIioqLyoueHNsdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCIuLlwiLCBcIi4uXCIsIFwieHNsdFRlbXBsYXRlc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlhTTFQtVEVNUExBVEVTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJjb252ZXJ0ZXJzXCIsIFwieHNsdFRlbXBsYXRlc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm5vcm1hbGl6ZVwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJOT1JNQUxJWkVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm5vcm1hbGl6ZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInBhdGNoXCIpLCBcIioueHNsdFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJQQVRDSFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGF0Y2hcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUFQXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1hcFwiKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJ1bm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJVTk1BUFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwidW5tYXBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnVpbGRPcHRpb25zLndhdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RpZmllci5ub3RpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgJHtmaS5mb3JtTmFtZX06INGB0LHQvtGA0LrQsCDQt9Cw0LLQtdGA0YjQtdC90LBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBFbmdpbmU6ICR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpLmVuZ2luZVNvdXJjZSA9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJbTm9FbmdpbmVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmkuZW5naW5lU291cmNlLnR5cGUgPT09IFwiTG9jYWxFbmdpbmVTb3VyY2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJsb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZpLmVuZ2luZVNvdXJjZS52ZXJzaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIGlmIChidWlsZE9wdGlvbnMud2F0Y2gpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuY2xlYW4pIHtcbiAgICAgICAgICAgIGF3YWl0IGNsZWFuVGFyZ2V0RGlyZWN0b3J5KHJlc291cmNlc0RpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlMSA9IGF3YWl0IHBpY2tMaXN0c0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUyID0gYXdhaXQgYnVpbGRGb3Jtc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUzID0gYXdhaXQgc3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmU1ID0gYXdhaXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBhd2FpdCBjb250ZXh0LndhaXRGb3JFeGl0KCk7XG4gICAgICAgIGlmIChzdG9wT2JzZXJ2ZTMgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RvcE9ic2VydmU1ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU1KCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUyKCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IERhdGUubm93KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5jbGVhbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNsZWFuVGFyZ2V0RGlyZWN0b3J5KHJlc291cmNlc0RpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgcGlja0xpc3RzQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgYnVpbGRGb3Jtc0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGF3YWl0IHN0YXRpY1Jlc291cmNlc0ZvclByb2R1Y3Rpb25DaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW5CcmlnaHQoXCJCdWlsZCBzdWNjZXNzXCIpKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsVGltZSA9IERhdGUubm93KCkgLSBzdGFydERhdGU7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5sb2coYFRvdGFsIHRpbWU6ICR7cHJpbnRUaW1lKHRvdGFsVGltZSl9YCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNsZWFuVGFyZ2V0RGlyZWN0b3J5KHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLCBsb2dnZXI6IElMb2dnZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsb2dnZXIubG9nKFwiQ2xlYW5pbmcgcmVzb3VyY2UgZGlyZWN0b3J5LiBcIiArIHJlc291cmNlc0RpcmVjdG9yeSk7XG4gICAgYXdhaXQgZW1wdHlEaXIocmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICBsb2dnZXIubG9nKFwiUmVzb3VyY2UgZGlyZWN0b3J5IGNsZWFuXCIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsTUFBQSxHQUFB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Q29GLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELE1BQU1FLFlBQVksR0FBRyxNQUFNakcsaUNBQWlDLENBQUMrRixPQUFPLENBQUMsQ0FBQztJQUN0RSxNQUFNRyxZQUFZLEdBQUcsTUFBTS9GLGdDQUFnQyxDQUFDNEYsT0FBTyxDQUFDLENBQUM7SUFDckUsTUFBTXZILE9BQU8sQ0FBQzJILFdBQVcsQ0FBQyxDQUFDO0lBQzNCLElBQUlGLFlBQVksSUFBSXhELFNBQVMsRUFBRTtNQUMzQixNQUFNd0QsWUFBWSxDQUFDLENBQUM7SUFDeEI7SUFDQSxJQUFJQyxZQUFZLElBQUl6RCxTQUFTLEVBQUU7TUFDM0IsTUFBTXlELFlBQVksQ0FBQyxDQUFDO0lBQ3hCO0lBQ0EsTUFBTUYsWUFBWSxDQUFDLENBQUM7SUFDcEIsTUFBTUYsWUFBWSxDQUFDLENBQUM7RUFDeEIsQ0FBQyxNQUFNO0lBQ0gsTUFBTU0sU0FBUyxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLElBQUk7TUFDQSxJQUFJN0gsT0FBTyxDQUFDbUgsS0FBSyxFQUFFO1FBQ2YsTUFBTUMsb0JBQW9CLENBQUNsSCxrQkFBa0IsRUFBRUgsT0FBTyxDQUFDaUIsTUFBTSxDQUFDO01BQ2xFO01BQ0EsTUFBTVQsY0FBYyxDQUFDdUgsWUFBWTtNQUNqQyxNQUFNcEcsZ0NBQWdDLENBQUNvRyxZQUFZO01BQ25ELE1BQU01RixlQUFlLENBQUM0RixZQUFZO01BQ2xDLE1BQU12RyxpQ0FBaUMsQ0FBQ3VHLFlBQVk7TUFDcEQ7TUFDQUMsT0FBTyxDQUFDdkMsR0FBRyxDQUFDd0MsY0FBSyxDQUFDQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQyxTQUFTO01BQ04sTUFBTUMsU0FBUyxHQUFHTixJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEdBQUdGLFNBQVM7TUFDeEM7TUFDQUksT0FBTyxDQUFDdkMsR0FBRyxDQUFDLGVBQWUsSUFBQTJDLHNCQUFTLEVBQUNELFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDdEQ7RUFDSjtBQUNKO0FBRUEsZUFBZWQsb0JBQW9CQSxDQUFDbEgsa0JBQTBCLEVBQUVjLE1BQWUsRUFBaUI7RUFDNUZBLE1BQU0sQ0FBQ3dFLEdBQUcsQ0FBQywrQkFBK0IsR0FBR3RGLGtCQUFrQixDQUFDO0VBQ2hFLE1BQU0sSUFBQWtJLGlCQUFRLEVBQUNsSSxrQkFBa0IsQ0FBQztFQUNsQ2MsTUFBTSxDQUFDd0UsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0FBQzFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunBuildForms.js","names":["_path","_interopRequireDefault","require","_chalk","_fsExtra","_nodeNotifier","_AcquireFormEngine","_EngineSource","_CompileForm","_GenerateForm","_NullFormGenerator","_WriteFLangNormalizationFiles","_FSTask","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_WriteFormMeta","_FormGlobsUtils","_StaticLogger","_Observe","_SingleValueProducer","_TimingUtils","_CacheAssetsPlugin","_TypingUtils","_WriteAttachmentPathFiles","_GetRngSchemaFileExtension","_FormPathUtils","_WellKnownDirectories","getGeneratorVersion","generatorSource","type","version","Error","runBuildForms","context","options","farmDirectory","resourcesDirectory","engineDirectory","candyModulesDirectory","hlFarmDirectoryPath","buildOptions","pickListsChain","Observe","files","path","join","do","x","FSTask","copyRecursively","logger","withPrefix","FormGlobs","ensureEachGlobResolvesIntoExistingForm","formGlobs","formInfos","resolveGfvGlobs","staticResourcesForProductionChain","__dirname","getLogger","resourcesExternalConvertersChain","empty","copiedEngines","Set","repositoryRoot","buildCache","BuildCache","buildCacheMode","buildFormsChain","fixedFormDirectories","map","relative","formPath","splitToParallelChains","formRelativePath","gfv","extractGfvFromFormPath","formDirPath","pathExists","WellKnownDirectories","FormJsonFileName","warning","value","formSchemasDirPath","rngSchemaMask","getRngSchemaFileExtension","file","transform","formJsonFile","resolveFormInfo","upgradeFormJson","useLastStableVersion","usePrereleaseVersion","fi","mode","FormBuildMode","NormalBuild","generatorVersion","undefined","engineVersion","resolveGeneratorVersion","engineSource","resolveEngineVersion","attach","SingleValueProducer","NullFormGenerator","generatorFactory","useVersionFromCache","y","generator","getGeneratorSourceKey","engineFactory","has","getEngineSourceKey","add","formSourcesPath","dependenciesHash","supportsDependenciesExtraction","getAllDependenciesHash","buildCacheExist","exists","_fi$dependenciesHash","log","generateForm","skipCodeReformatting","skipGeneratedCodeReformatting","resourcesHash","_fi$dependenciesHash2","_fi$dependenciesHash3","extract","buildCacheOptions","depsHash","compileForm","formName","reject","writeFormMeta","themes","writeFLangNormalizationFiles","writeAttachmentPathFiles","CopyLegacyPrebuiltResources","modifier","content","replace","modifyFilesContent","watch","notifier","notify","title","message","clean","cleanTargetDirectory","stopObserve1","observe","stopObserve2","stopObserve3","stopObserve5","waitForExit","startDate","Date","now","currentValue","console","chalk","greenBright","totalTime","printTime","emptyDir"],"sources":["../../../../../src/CLICommands/BuildForms/RunBuildForms.ts"],"sourcesContent":["import path from \"path\";\n\nimport chalk from \"chalk\";\nimport { emptyDir, pathExists } from \"fs-extra\";\nimport notifier from \"node-notifier\";\n\nimport { engineFactory } from \"../../BuildTasks/Engine/AcquireFormEngine\";\nimport { getEngineSourceKey } from \"../../BuildTasks/Engine/EngineSource\";\nimport { compileForm } from \"../../BuildTasks/Form/CompileForm\";\nimport { generateForm } from \"../../BuildTasks/Form/GenerateForm\";\nimport { NullFormGenerator } from \"../../BuildTasks/Form/NullFormGenerator\";\nimport { writeFLangNormalizationFiles } from \"../../BuildTasks/Form/WriteFLangNormalizationFiles\";\nimport { FSTask } from \"../../BuildTasks/FSTask\";\nimport {\n generatorFactory,\n GeneratorSource,\n getGeneratorSourceKey,\n} from \"../../BuildTasks/Generator/AcquireFormGenerator\";\nimport { resolveEngineVersion, resolveGeneratorVersion } from \"../../BuildTasks/PublishedVersionUtils\";\nimport { FormBuildMode, resolveFormInfo } from \"../../BuildTasks/ResolveFormInfo\";\nimport { writeFormMeta } from \"../../BuildTasks/WriteFormMeta\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { FormGlobs } from \"../../Commons/FormGlobsUtils\";\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { Observe } from \"../../Commons/TasksCore/Observe\";\nimport { SingleValueProducer } from \"../../Commons/TasksCore/SingleValueProducer\";\nimport { printTime } from \"../../Commons/TimingUtils\";\nimport { BuildCache } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\nimport { reject } from \"../../../../Common/TypingUtils\";\nimport { writeAttachmentPathFiles } from \"../../BuildTasks/Form/WriteAttachmentPathFiles\";\nimport { ChainableValueProducer } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { EmptyProducer } from \"../../Commons/TasksCore/EmptyProducer\";\nimport { getRngSchemaFileExtension } from \"../../../../Common/GetRngSchemaFileExtension\";\nimport { extractGfvFromFormPath } from \"../../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../../Common/WellKnownDirectories\";\n\nimport { BuildFormsOptions } from \"./BuildFormsOptions\";\n\nfunction getGeneratorVersion(generatorSource: GeneratorSource): string {\n if (generatorSource.type === \"PublishedGenerator\") {\n return generatorSource.version;\n } else {\n throw new Error(\"InvalidProgramState\");\n }\n}\n\nexport async function runBuildForms(\n context: ConsoleApplicationContext,\n options: BuildFormsOptions,\n farmDirectory: string,\n resourcesDirectory: string,\n engineDirectory: string,\n candyModulesDirectory: string,\n hlFarmDirectoryPath: string\n): Promise<void> {\n const buildOptions = options;\n\n const pickListsChain = Observe.files(path.join(farmDirectory, \"picklists\"), \"*.json\").do(x =>\n FSTask.copyRecursively(context.logger.withPrefix(\"PICKLISTS\"), x, path.join(resourcesDirectory, \"picklists\"))\n );\n\n await FormGlobs.ensureEachGlobResolvesIntoExistingForm(options.formGlobs, farmDirectory);\n const formInfos = await FormGlobs.resolveGfvGlobs(options.formGlobs, farmDirectory);\n\n const staticResourcesForProductionChain = Observe.files(\n path.join(__dirname, \"..\", \"..\", \"StaticFilesForProductionResourcesDir\"),\n \"*.js\",\n \"*.js.map\"\n ).do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"STATICS\"), x, path.join(resourcesDirectory, \"public\", \"scripts\"))\n );\n\n /** Конвертеры описи для форм, которые пока не реализованы на кенди, сама механика описи перенесена в формы в кенди апи, поэтому они должны быть в candy.resources\n * Реализуется только при общем билде форм: candy build *\n * */\n let resourcesExternalConvertersChain: ChainableValueProducer<string> | EmptyProducer = Observe.empty();\n if (options.formGlobs[0] === \"*\") {\n resourcesExternalConvertersChain = Observe.files(path.join(farmDirectory, \"externalConverters\"), \"*.xslt\").do(\n x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"EXTERNAL-CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n );\n }\n\n const copiedEngines = new Set<string>();\n\n const repositoryRoot = path.join(farmDirectory, \"..\");\n const buildCache = new BuildCache(farmDirectory, options.buildCacheMode);\n const buildFormsChain = Observe.fixedFormDirectories(\n formInfos.map(x => path.relative(repositoryRoot, x.formPath))\n ).splitToParallelChains(\n x => x,\n x => x,\n async formRelativePath => {\n const gfv = extractGfvFromFormPath(formRelativePath);\n const formDirPath = path.join(repositoryRoot, formRelativePath);\n\n if (!(await pathExists(path.join(formDirPath, WellKnownDirectories.FormJsonFileName)))) {\n context.logger.warning(\n `Form ${gfv} does not have form.json file. To include this form to build process restart build`\n );\n return Observe.value({});\n }\n const formSchemasDirPath = path.join(formDirPath, \"schemas\");\n const rngSchemaMask = `*${getRngSchemaFileExtension(formSchemasDirPath, gfv)}`;\n\n return Observe.file(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile =>\n resolveFormInfo(\n formJsonFile,\n formDirPath,\n engineDirectory,\n context.logger.withPrefix(`FORM:${gfv}`),\n options.upgradeFormJson,\n options.useLastStableVersion,\n options.usePrereleaseVersion\n )\n )\n .transform(async fi => {\n if (fi.mode === FormBuildMode.NormalBuild) {\n if (fi.generatorVersion == undefined) {\n throw new Error(\"generatorVersion is not defined\");\n }\n if (fi.engineVersion == undefined) {\n throw new Error(\"engineVersion is not defined\");\n }\n return {\n ...fi,\n generatorSource: await resolveGeneratorVersion(\n fi.generatorVersion,\n context.logger.withPrefix(gfv)\n ),\n engineSource: await resolveEngineVersion(fi.engineVersion, context.logger.withPrefix(gfv)),\n };\n } else {\n return {\n ...fi,\n generatorSource: undefined,\n engineSource: undefined,\n };\n }\n })\n .attach(\n async fi => {\n if (fi.generatorSource == undefined) {\n return new SingleValueProducer(new NullFormGenerator());\n } else {\n return generatorFactory(\n fi.generatorSource,\n candyModulesDirectory,\n options.useVersionFromCache\n );\n }\n },\n async (fi, y) => ({ ...fi, generator: y }),\n async fi =>\n fi.generatorSource != undefined\n ? getGeneratorSourceKey(fi.generatorSource)\n : \"NullFormGenerator\"\n )\n .attach(\n async fi => {\n if (fi.engineSource === undefined) {\n return new SingleValueProducer(\"NullEngine\");\n }\n return engineFactory(fi.engineSource, candyModulesDirectory, options.useVersionFromCache).do(\n async x => {\n if (!copiedEngines.has(getEngineSourceKey(fi.engineSource))) {\n await FSTask.copyRecursively(\n getLogger().withPrefix(\"ENGINE\"),\n x,\n path.join(resourcesDirectory, \"public\")\n );\n copiedEngines.add(getEngineSourceKey(fi.engineSource));\n }\n }\n );\n },\n async fi => fi,\n async fi => (fi.engineSource != undefined ? getEngineSourceKey(fi.engineSource) : \"NullEngine\")\n )\n .attach(async fi =>\n Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/*\",\n \"../../xsltTemplates/**/*\",\n \"../../jsHelpers/**/*\",\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n )\n .transform(async fi => {\n let dependenciesHash: undefined | string;\n if (fi.mode !== FormBuildMode.NormalBuild) {\n return {\n ...fi,\n dependenciesHash: undefined,\n };\n }\n if (await fi.generator.supportsDependenciesExtraction()) {\n dependenciesHash = await fi.generator.getAllDependenciesHash(\n formDirPath,\n farmDirectory,\n hlFarmDirectoryPath\n );\n }\n return {\n ...fi,\n dependenciesHash: dependenciesHash,\n };\n })\n .transform(async fi => {\n let buildCacheExist: boolean = false;\n if (fi.dependenciesHash != undefined && fi.generatorSource != undefined) {\n buildCacheExist = await buildCache.exists(fi.generatorSource, gfv, fi.dependenciesHash);\n }\n return {\n ...fi,\n buildCacheExist: buildCacheExist,\n };\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return undefined;\n }\n if (fi.buildCacheExist) {\n context.logger.withPrefix(`GENERATE:${gfv}`).log(\"Skipped due build cache exits\");\n return undefined;\n }\n\n return generateForm(\n fi.formSourcesPath,\n farmDirectory,\n hlFarmDirectoryPath,\n fi.generator,\n undefined,\n {\n skipCodeReformatting: options.skipGeneratedCodeReformatting,\n resourcesHash: fi.dependenciesHash ?? \"UndefinedResourcesHash\",\n }\n );\n })\n .attach(async fi => Observe.files(path.join(formDirPath, \"form\"), \"**/*\"))\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n if (fi.dependenciesHash != undefined && fi.buildCacheExist) {\n context.logger.withPrefix(`COMPILE:${gfv}`).log(\"Skipped due build cache exists\");\n await buildCache.extract(fi.generatorSource, gfv, fi.dependenciesHash, resourcesDirectory);\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n\n await compileForm(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n false,\n undefined,\n options.mode === \"production\",\n buildCacheOptions\n );\n\n await writeFormMeta(\n resourcesDirectory,\n gfv,\n fi.engineSource,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n fi.themes,\n buildCache,\n buildCacheOptions\n );\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n await writeFLangNormalizationFiles(\n fi.formName,\n farmDirectory,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeAttachmentPathFiles(\n fi.formName,\n farmDirectory,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions\n );\n })\n .attach(async fi => {\n if (fi.mode === FormBuildMode.CopyLegacyPrebuiltResources) {\n return Observe.files(path.join(fi.formSourcesPath, \"legacy-prebuilt\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"LEGACY-PREBUILT\"),\n x,\n path.join(resourcesDirectory)\n )\n );\n } else {\n return new SingleValueProducer(\"\");\n }\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"schemas\"), rngSchemaMask).do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"SCHEMAS\"),\n x,\n path.join(resourcesDirectory, \"schemas\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"mergers\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"MERGERS\"),\n x,\n path.join(resourcesDirectory, \"mergers\")\n )\n )\n )\n .attach(async fi => {\n const modifier = (content: string): string =>\n content.replace(/<x:include href=\"[./]+/g, '<x:include href=\"');\n return Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.modifyFilesContent(\n getLogger().withPrefix(\"FIX-XSLT-INCLUDE\"),\n x,\n path.join(resourcesDirectory, \"converters\"),\n \"**/*.xslt\",\n modifier\n )\n );\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"..\", \"..\", \"xsltTemplates\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"XSLT-TEMPLATES\"),\n x,\n path.join(resourcesDirectory, \"converters\", \"xsltTemplates\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"normalize\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"NORMALIZE\"),\n x,\n path.join(resourcesDirectory, \"normalize\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"patch\"), \"*.xslt\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"PATCH\"),\n x,\n path.join(resourcesDirectory, \"patch\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"map\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"MAP\"), x, path.join(resourcesDirectory, \"map\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"unmap\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"UNMAP\"),\n x,\n path.join(resourcesDirectory, \"unmap\")\n )\n )\n )\n .do(async fi => {\n if (buildOptions.watch) {\n notifier.notify({\n title: `${fi.formName}: сборка завершена`,\n message: `Engine: ${\n fi.engineSource == undefined\n ? \"[NoEngine]\"\n : fi.engineSource.type === \"LocalEngineSources\"\n ? \"local\"\n : fi.engineSource.version\n }`,\n });\n }\n });\n }\n );\n\n if (buildOptions.watch) {\n if (options.clean) {\n await cleanTargetDirectory(resourcesDirectory, context.logger);\n }\n const stopObserve1 = await pickListsChain.observe();\n const stopObserve2 = await buildFormsChain.observe();\n const stopObserve3 = await staticResourcesForProductionChain.observe();\n const stopObserve5 = await resourcesExternalConvertersChain.observe();\n await context.waitForExit();\n if (stopObserve3 != undefined) {\n await stopObserve3();\n }\n if (stopObserve5 != undefined) {\n await stopObserve5();\n }\n await stopObserve2();\n await stopObserve1();\n } else {\n const startDate = Date.now();\n try {\n if (options.clean) {\n await cleanTargetDirectory(resourcesDirectory, context.logger);\n }\n await pickListsChain.currentValue;\n await resourcesExternalConvertersChain.currentValue;\n await buildFormsChain.currentValue;\n await staticResourcesForProductionChain.currentValue;\n // eslint-disable-next-line no-console\n console.log(chalk.greenBright(\"Build success\"));\n } finally {\n const totalTime = Date.now() - startDate;\n // eslint-disable-next-line no-console\n console.log(`Total time: ${printTime(totalTime)}`);\n }\n }\n}\n\nasync function cleanTargetDirectory(resourcesDirectory: string, logger: ILogger): Promise<void> {\n logger.log(\"Cleaning resource directory. \" + resourcesDirectory);\n await emptyDir(resourcesDirectory);\n logger.log(\"Resource directory clean\");\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BuildLogsWebsocketController = void 0;
|
|
7
|
+
var _socket = require("socket.io");
|
|
8
|
+
var _SingletonController = require("../../Commons/HttpServer/ExpressWrapper/SingletonController");
|
|
9
|
+
var _StdStreamsIntercepter = require("./StdStreamsIntercepter");
|
|
10
|
+
class BuildLogsWebsocketController extends _SingletonController.SingletonController {
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
this.socketIoServer = void 0;
|
|
14
|
+
this.socketIoHttpsServer = void 0;
|
|
15
|
+
this.handleOutput = text => {
|
|
16
|
+
var _this$socketIoServer, _this$socketIoHttpsSe;
|
|
17
|
+
(_this$socketIoServer = this.socketIoServer) === null || _this$socketIoServer === void 0 || _this$socketIoServer.emit("message", text);
|
|
18
|
+
(_this$socketIoHttpsSe = this.socketIoHttpsServer) === null || _this$socketIoHttpsSe === void 0 || _this$socketIoHttpsSe.emit("message", text);
|
|
19
|
+
};
|
|
20
|
+
(0, _StdStreamsIntercepter.interceptStdStreams)(this.handleOutput);
|
|
21
|
+
}
|
|
22
|
+
async afterStart(httpServer, httpsServer) {
|
|
23
|
+
this.socketIoServer = new _socket.Server(httpServer, {
|
|
24
|
+
transports: ["websocket", "polling"],
|
|
25
|
+
path: "/build-info"
|
|
26
|
+
});
|
|
27
|
+
if (httpsServer != undefined) {
|
|
28
|
+
this.socketIoHttpsServer = new _socket.Server(httpsServer, {
|
|
29
|
+
transports: ["websocket", "polling"],
|
|
30
|
+
path: "/build-info"
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.BuildLogsWebsocketController = BuildLogsWebsocketController;
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc29ja2V0IiwicmVxdWlyZSIsIl9TaW5nbGV0b25Db250cm9sbGVyIiwiX1N0ZFN0cmVhbXNJbnRlcmNlcHRlciIsIkJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJzb2NrZXRJb1NlcnZlciIsInNvY2tldElvSHR0cHNTZXJ2ZXIiLCJoYW5kbGVPdXRwdXQiLCJ0ZXh0IiwiX3RoaXMkc29ja2V0SW9TZXJ2ZXIiLCJfdGhpcyRzb2NrZXRJb0h0dHBzU2UiLCJlbWl0IiwiaW50ZXJjZXB0U3RkU3RyZWFtcyIsImFmdGVyU3RhcnQiLCJodHRwU2VydmVyIiwiaHR0cHNTZXJ2ZXIiLCJTZXJ2ZXIiLCJ0cmFuc3BvcnRzIiwicGF0aCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvQnVpbGRMb2dzV2Vic29ja2V0Q29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBodHRwIGZyb20gXCJodHRwXCI7XG5pbXBvcnQgaHR0cHMgZnJvbSBcImh0dHBzXCI7XG5cbmltcG9ydCB7IFNlcnZlciB9IGZyb20gXCJzb2NrZXQuaW9cIjtcblxuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBpbnRlcmNlcHRTdGRTdHJlYW1zIH0gZnJvbSBcIi4vU3RkU3RyZWFtc0ludGVyY2VwdGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyIGV4dGVuZHMgU2luZ2xldG9uQ29udHJvbGxlciB7XG4gICAgcHJpdmF0ZSBzb2NrZXRJb1NlcnZlcj86IFNlcnZlcjtcbiAgICBwcml2YXRlIHNvY2tldElvSHR0cHNTZXJ2ZXI/OiBTZXJ2ZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGludGVyY2VwdFN0ZFN0cmVhbXModGhpcy5oYW5kbGVPdXRwdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhZnRlclN0YXJ0KGh0dHBTZXJ2ZXI6IGh0dHAuU2VydmVyLCBodHRwc1NlcnZlcj86IGh0dHBzLlNlcnZlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnNvY2tldElvU2VydmVyID0gbmV3IFNlcnZlcihodHRwU2VydmVyLCB7XG4gICAgICAgICAgICB0cmFuc3BvcnRzOiBbXCJ3ZWJzb2NrZXRcIiwgXCJwb2xsaW5nXCJdLFxuICAgICAgICAgICAgcGF0aDogXCIvYnVpbGQtaW5mb1wiLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGh0dHBzU2VydmVyICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zb2NrZXRJb0h0dHBzU2VydmVyID0gbmV3IFNlcnZlcihodHRwc1NlcnZlciwge1xuICAgICAgICAgICAgICAgIHRyYW5zcG9ydHM6IFtcIndlYnNvY2tldFwiLCBcInBvbGxpbmdcIl0sXG4gICAgICAgICAgICAgICAgcGF0aDogXCIvYnVpbGQtaW5mb1wiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZU91dHB1dCA9ICh0ZXh0OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zb2NrZXRJb1NlcnZlcj8uZW1pdChcIm1lc3NhZ2VcIiwgdGV4dCk7XG4gICAgICAgIHRoaXMuc29ja2V0SW9IdHRwc1NlcnZlcj8uZW1pdChcIm1lc3NhZ2VcIiwgdGV4dCk7XG4gICAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsb0JBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLHNCQUFBLEdBQUFGLE9BQUE7QUFFTyxNQUFNRyw0QkFBNEIsU0FBU0Msd0NBQW1CLENBQUM7RUFJM0RDLFdBQVdBLENBQUEsRUFBRztJQUNqQixLQUFLLENBQUMsQ0FBQztJQUFDLEtBSkpDLGNBQWM7SUFBQSxLQUNkQyxtQkFBbUI7SUFBQSxLQW9CVkMsWUFBWSxHQUFJQyxJQUFZLElBQVc7TUFBQSxJQUFBQyxvQkFBQSxFQUFBQyxxQkFBQTtNQUNwRCxDQUFBRCxvQkFBQSxPQUFJLENBQUNKLGNBQWMsY0FBQUksb0JBQUEsZUFBbkJBLG9CQUFBLENBQXFCRSxJQUFJLENBQUMsU0FBUyxFQUFFSCxJQUFJLENBQUM7TUFDMUMsQ0FBQUUscUJBQUEsT0FBSSxDQUFDSixtQkFBbUIsY0FBQUkscUJBQUEsZUFBeEJBLHFCQUFBLENBQTBCQyxJQUFJLENBQUMsU0FBUyxFQUFFSCxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQW5CRyxJQUFBSSwwQ0FBbUIsRUFBQyxJQUFJLENBQUNMLFlBQVksQ0FBQztFQUMxQztFQUVBLE1BQWFNLFVBQVVBLENBQUNDLFVBQXVCLEVBQUVDLFdBQTBCLEVBQWlCO0lBQ3hGLElBQUksQ0FBQ1YsY0FBYyxHQUFHLElBQUlXLGNBQU0sQ0FBQ0YsVUFBVSxFQUFFO01BQ3pDRyxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO01BQ3BDQyxJQUFJLEVBQUU7SUFDVixDQUFDLENBQUM7SUFDRixJQUFJSCxXQUFXLElBQUlJLFNBQVMsRUFBRTtNQUMxQixJQUFJLENBQUNiLG1CQUFtQixHQUFHLElBQUlVLGNBQU0sQ0FBQ0QsV0FBVyxFQUFFO1FBQy9DRSxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO1FBQ3BDQyxJQUFJLEVBQUU7TUFDVixDQUFDLENBQUM7SUFDTjtFQUNKO0FBTUo7QUFBQ0UsT0FBQSxDQUFBbEIsNEJBQUEsR0FBQUEsNEJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildLogsWebsocketController.js","names":["_socket","require","_SingletonController","_StdStreamsIntercepter","BuildLogsWebsocketController","SingletonController","constructor","socketIoServer","socketIoHttpsServer","handleOutput","text","_this$socketIoServer","_this$socketIoHttpsSe","emit","interceptStdStreams","afterStart","httpServer","httpsServer","Server","transports","path","undefined","exports"],"sources":["../../../../../src/CLICommands/BuildServer/BuildLogsWebsocketController.ts"],"sourcesContent":["import * as http from \"http\";\nimport https from \"https\";\n\nimport { Server } from \"socket.io\";\n\nimport { SingletonController } from \"../../Commons/HttpServer/ExpressWrapper/SingletonController\";\n\nimport { interceptStdStreams } from \"./StdStreamsIntercepter\";\n\nexport class BuildLogsWebsocketController extends SingletonController {\n private socketIoServer?: Server;\n private socketIoHttpsServer?: Server;\n\n public constructor() {\n super();\n interceptStdStreams(this.handleOutput);\n }\n\n public async afterStart(httpServer: http.Server, httpsServer?: https.Server): Promise<void> {\n this.socketIoServer = new Server(httpServer, {\n transports: [\"websocket\", \"polling\"],\n path: \"/build-info\",\n });\n if (httpsServer != undefined) {\n this.socketIoHttpsServer = new Server(httpsServer, {\n transports: [\"websocket\", \"polling\"],\n path: \"/build-info\",\n });\n }\n }\n\n private readonly handleOutput = (text: string): void => {\n this.socketIoServer?.emit(\"message\", text);\n this.socketIoHttpsServer?.emit(\"message\", text);\n };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AAEO,MAAMG,4BAA4B,SAASC,wCAAmB,CAAC;EAI3DC,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,CAAC;IAAC,KAJJC,cAAc;IAAA,KACdC,mBAAmB;IAAA,KAoBVC,YAAY,GAAIC,IAAY,IAAW;MAAA,IAAAC,oBAAA,EAAAC,qBAAA;MACpD,CAAAD,oBAAA,OAAI,CAACJ,cAAc,cAAAI,oBAAA,eAAnBA,oBAAA,CAAqBE,IAAI,CAAC,SAAS,EAAEH,IAAI,CAAC;MAC1C,CAAAE,qBAAA,OAAI,CAACJ,mBAAmB,cAAAI,qBAAA,eAAxBA,qBAAA,CAA0BC,IAAI,CAAC,SAAS,EAAEH,IAAI,CAAC;IACnD,CAAC;IAnBG,IAAAI,0CAAmB,EAAC,IAAI,CAACL,YAAY,CAAC;EAC1C;EAEA,MAAaM,UAAUA,CAACC,UAAuB,EAAEC,WAA0B,EAAiB;IACxF,IAAI,CAACV,cAAc,GAAG,IAAIW,cAAM,CAACF,UAAU,EAAE;MACzCG,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;MACpCC,IAAI,EAAE;IACV,CAAC,CAAC;IACF,IAAIH,WAAW,IAAII,SAAS,EAAE;MAC1B,IAAI,CAACb,mBAAmB,GAAG,IAAIU,cAAM,CAACD,WAAW,EAAE;QAC/CE,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;QACpCC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AAMJ;AAACE,OAAA,CAAAlB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|