@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,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.IterUtils = void 0;
|
|
7
|
+
exports.concat = concat;
|
|
8
|
+
exports.count = count;
|
|
9
|
+
exports.findLast = findLast;
|
|
10
|
+
exports.iterateEntries = iterateEntries;
|
|
11
|
+
exports.iterateKeys = iterateKeys;
|
|
12
|
+
exports.iterateValues = iterateValues;
|
|
13
|
+
exports.reverseArray = reverseArray;
|
|
14
|
+
exports.toAsyncIterator = toAsyncIterator;
|
|
15
|
+
var _TypingUtils = require("./TypingUtils");
|
|
16
|
+
var _Errors = require("./Errors");
|
|
17
|
+
function* reverseArray(array) {
|
|
18
|
+
for (let i = array.length - 1; i >= 0; i--) {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
20
|
+
yield array[i];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function toAsyncIterator(generator) {
|
|
24
|
+
return AsyncIterator.from(generator());
|
|
25
|
+
}
|
|
26
|
+
function findLast(items, condition) {
|
|
27
|
+
let result;
|
|
28
|
+
for (const item of items) {
|
|
29
|
+
if (condition(item)) {
|
|
30
|
+
result = item;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
function* concat(...iterables) {
|
|
36
|
+
for (const iterableItem of iterables) {
|
|
37
|
+
yield* iterableItem;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function* iterateValues(obj) {
|
|
41
|
+
for (const key in obj) {
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
43
|
+
yield obj[key];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function* iterateKeys(obj) {
|
|
48
|
+
for (const key in obj) {
|
|
49
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
50
|
+
yield key;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function* iterateEntries(obj) {
|
|
55
|
+
for (const key in obj) {
|
|
56
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
58
|
+
yield [key, obj[key]];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function count(items) {
|
|
63
|
+
let result = 0;
|
|
64
|
+
for (const _item of items) {
|
|
65
|
+
result++;
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
const EmptySingleElement = Symbol.for("EmptySingleElement");
|
|
70
|
+
const NoValueMarker = Symbol.for("NoValueMarker");
|
|
71
|
+
class IterUtils {
|
|
72
|
+
static isEmpty(iterable) {
|
|
73
|
+
for (const _item of iterable) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
static groupBy(iterable, selectKey) {
|
|
79
|
+
const result = new Map();
|
|
80
|
+
for (const item of iterable) {
|
|
81
|
+
const key = selectKey(item);
|
|
82
|
+
const keyList = result.get(key);
|
|
83
|
+
if (keyList == undefined) {
|
|
84
|
+
result.set(key, [item]);
|
|
85
|
+
} else {
|
|
86
|
+
keyList.push(item);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
static sortBy(items, selector) {
|
|
92
|
+
const result = [...items];
|
|
93
|
+
result.sort((aItem, bItem) => {
|
|
94
|
+
const leftValue = selector(aItem);
|
|
95
|
+
const rightValue = selector(bItem);
|
|
96
|
+
if (leftValue === rightValue) {
|
|
97
|
+
return 0;
|
|
98
|
+
} else if (leftValue < rightValue) {
|
|
99
|
+
return -1;
|
|
100
|
+
} else {
|
|
101
|
+
return 1;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
static last(items) {
|
|
107
|
+
if (Array.isArray(items)) {
|
|
108
|
+
return items[items.length - 1];
|
|
109
|
+
}
|
|
110
|
+
let lastItem;
|
|
111
|
+
for (const item of items) {
|
|
112
|
+
lastItem = item;
|
|
113
|
+
}
|
|
114
|
+
return lastItem;
|
|
115
|
+
}
|
|
116
|
+
static first(items) {
|
|
117
|
+
if (Array.isArray(items)) {
|
|
118
|
+
return items[0];
|
|
119
|
+
}
|
|
120
|
+
let firstItem;
|
|
121
|
+
for (const item of items) {
|
|
122
|
+
firstItem = item;
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
return firstItem;
|
|
126
|
+
}
|
|
127
|
+
static single(items, singleAssertMessage) {
|
|
128
|
+
if (Array.isArray(items)) {
|
|
129
|
+
var _items$;
|
|
130
|
+
if (items.length !== 1) {
|
|
131
|
+
throw new Error(singleAssertMessage !== null && singleAssertMessage !== void 0 ? singleAssertMessage : `Sequence must contain exactly single element, but got ${items.length}`);
|
|
132
|
+
}
|
|
133
|
+
return (_items$ = items[0]) !== null && _items$ !== void 0 ? _items$ : (0, _TypingUtils.reject)();
|
|
134
|
+
} else {
|
|
135
|
+
let singleElement = EmptySingleElement;
|
|
136
|
+
for (const item of items) {
|
|
137
|
+
if (singleElement !== EmptySingleElement) {
|
|
138
|
+
throw new Error(singleAssertMessage !== null && singleAssertMessage !== void 0 ? singleAssertMessage : `Sequence must contain exactly single element, but got at least 2`);
|
|
139
|
+
}
|
|
140
|
+
singleElement = item;
|
|
141
|
+
}
|
|
142
|
+
if (singleElement === EmptySingleElement) {
|
|
143
|
+
throw new Error(singleAssertMessage !== null && singleAssertMessage !== void 0 ? singleAssertMessage : "Sequence must contain exactly single element, but got 0");
|
|
144
|
+
}
|
|
145
|
+
return singleElement;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
static *iterateEntries(items) {
|
|
149
|
+
let index = 0;
|
|
150
|
+
for (const item of items) {
|
|
151
|
+
yield [index, item];
|
|
152
|
+
index++;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
static *skipLast(items, skipCount) {
|
|
156
|
+
if (skipCount === 0) {
|
|
157
|
+
yield* items;
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const prevItems = new Array(skipCount).fill(EmptySingleElement);
|
|
161
|
+
let resultItem = EmptySingleElement;
|
|
162
|
+
let currentIndex = 0;
|
|
163
|
+
for (const item of items) {
|
|
164
|
+
// @ts-expect-error В общем, строка выше гарантирует длину массива
|
|
165
|
+
resultItem = prevItems[currentIndex];
|
|
166
|
+
prevItems[currentIndex] = item;
|
|
167
|
+
currentIndex = (currentIndex + 1) % skipCount;
|
|
168
|
+
if (resultItem != EmptySingleElement) {
|
|
169
|
+
yield resultItem;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
static minBy(items, compareFunc) {
|
|
174
|
+
let minValue = NoValueMarker;
|
|
175
|
+
for (const item of items) {
|
|
176
|
+
if (minValue === NoValueMarker) {
|
|
177
|
+
minValue = item;
|
|
178
|
+
} else if (compareFunc(item, minValue) === -1) {
|
|
179
|
+
minValue = item;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (minValue === NoValueMarker) {
|
|
183
|
+
throw new _Errors.InvalidArgumentError("items", "Items should be not empty list");
|
|
184
|
+
}
|
|
185
|
+
return minValue;
|
|
186
|
+
}
|
|
187
|
+
static minByOrUndefined(items, compareFunc) {
|
|
188
|
+
let minValue = NoValueMarker;
|
|
189
|
+
for (const item of items) {
|
|
190
|
+
if (minValue === NoValueMarker) {
|
|
191
|
+
minValue = item;
|
|
192
|
+
} else if (compareFunc(item, minValue) === -1) {
|
|
193
|
+
minValue = item;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (minValue === NoValueMarker) {
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
return minValue;
|
|
200
|
+
}
|
|
201
|
+
static *range(inStartOrCount, inItemCount) {
|
|
202
|
+
const start = inItemCount === undefined ? 0 : inStartOrCount;
|
|
203
|
+
const itemCount = inItemCount === undefined ? inStartOrCount : inItemCount;
|
|
204
|
+
if (itemCount < 0) {
|
|
205
|
+
throw new _Errors.InvalidArgumentError("itemCount", "itemCount must be a non negative number");
|
|
206
|
+
}
|
|
207
|
+
for (let i = start; i < start + itemCount; i++) {
|
|
208
|
+
yield i;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* @summary Вставляет между элементами массива заданный элемент и возвращает новый массив
|
|
214
|
+
*/
|
|
215
|
+
static intersperse(items, item) {
|
|
216
|
+
return this.intersperseFn(items, () => item);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @summary Вставляет между элементами массива элемент, создаваемый функцией, и возвращает новый массив
|
|
221
|
+
*/
|
|
222
|
+
static intersperseFn(items, item) {
|
|
223
|
+
return items.flatMap((x, index) => index === 0 ? [x] : [item(x, index), x]);
|
|
224
|
+
}
|
|
225
|
+
static *zip(...iterables) {
|
|
226
|
+
const iterators = iterables.map(it => Iterator.from(it));
|
|
227
|
+
let hasUndoneIterators = true;
|
|
228
|
+
while (hasUndoneIterators) {
|
|
229
|
+
const resultEntry = [];
|
|
230
|
+
hasUndoneIterators = false;
|
|
231
|
+
for (const [i, iterator] of this.iterateEntries(iterators)) {
|
|
232
|
+
if (iterator === NoValueMarker) {
|
|
233
|
+
resultEntry.push(undefined);
|
|
234
|
+
} else {
|
|
235
|
+
const resultValue = iterator.next();
|
|
236
|
+
if (resultValue.done) {
|
|
237
|
+
resultEntry.push(undefined);
|
|
238
|
+
iterators[i] = NoValueMarker;
|
|
239
|
+
} else {
|
|
240
|
+
resultEntry.push(resultValue.value);
|
|
241
|
+
hasUndoneIterators = true;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
if (hasUndoneIterators) {
|
|
246
|
+
yield resultEntry;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
static *distinctBy(items, idSelector) {
|
|
251
|
+
const set = new Set();
|
|
252
|
+
for (const item of items) {
|
|
253
|
+
const id = idSelector(item);
|
|
254
|
+
if (!set.has(id)) {
|
|
255
|
+
set.add(id);
|
|
256
|
+
yield item;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
static reduce(items, reducer, initialValue) {
|
|
261
|
+
let index = 0;
|
|
262
|
+
return Iterator.from(items).reduce((acc, item) => reducer(acc, item, index++), initialValue);
|
|
263
|
+
}
|
|
264
|
+
static *batch(items, batchSize) {
|
|
265
|
+
const iterator = Iterator.from(items);
|
|
266
|
+
const safeBatchSize = batchSize > 0 ? batchSize : 1;
|
|
267
|
+
let done = false;
|
|
268
|
+
while (!done) {
|
|
269
|
+
const batch = [];
|
|
270
|
+
while (batch.length < safeBatchSize) {
|
|
271
|
+
const current = iterator.next();
|
|
272
|
+
if (current.done) {
|
|
273
|
+
done = true;
|
|
274
|
+
break;
|
|
275
|
+
} else {
|
|
276
|
+
batch.push(current.value);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (batch.length > 0) {
|
|
280
|
+
yield batch;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
exports.IterUtils = IterUtils;
|
|
286
|
+
IterUtils.count = count;
|
|
287
|
+
IterUtils.concat = concat;
|
|
288
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwaW5nVXRpbHMiLCJyZXF1aXJlIiwiX0Vycm9ycyIsInJldmVyc2VBcnJheSIsImFycmF5IiwiaSIsImxlbmd0aCIsInRvQXN5bmNJdGVyYXRvciIsImdlbmVyYXRvciIsIkFzeW5jSXRlcmF0b3IiLCJmcm9tIiwiZmluZExhc3QiLCJpdGVtcyIsImNvbmRpdGlvbiIsInJlc3VsdCIsIml0ZW0iLCJjb25jYXQiLCJpdGVyYWJsZXMiLCJpdGVyYWJsZUl0ZW0iLCJpdGVyYXRlVmFsdWVzIiwib2JqIiwia2V5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaXRlcmF0ZUtleXMiLCJpdGVyYXRlRW50cmllcyIsImNvdW50IiwiX2l0ZW0iLCJFbXB0eVNpbmdsZUVsZW1lbnQiLCJTeW1ib2wiLCJmb3IiLCJOb1ZhbHVlTWFya2VyIiwiSXRlclV0aWxzIiwiaXNFbXB0eSIsIml0ZXJhYmxlIiwiZ3JvdXBCeSIsInNlbGVjdEtleSIsIk1hcCIsImtleUxpc3QiLCJnZXQiLCJ1bmRlZmluZWQiLCJzZXQiLCJwdXNoIiwic29ydEJ5Iiwic2VsZWN0b3IiLCJzb3J0IiwiYUl0ZW0iLCJiSXRlbSIsImxlZnRWYWx1ZSIsInJpZ2h0VmFsdWUiLCJsYXN0IiwiQXJyYXkiLCJpc0FycmF5IiwibGFzdEl0ZW0iLCJmaXJzdCIsImZpcnN0SXRlbSIsInNpbmdsZSIsInNpbmdsZUFzc2VydE1lc3NhZ2UiLCJfaXRlbXMkIiwiRXJyb3IiLCJyZWplY3QiLCJzaW5nbGVFbGVtZW50IiwiaW5kZXgiLCJza2lwTGFzdCIsInNraXBDb3VudCIsInByZXZJdGVtcyIsImZpbGwiLCJyZXN1bHRJdGVtIiwiY3VycmVudEluZGV4IiwibWluQnkiLCJjb21wYXJlRnVuYyIsIm1pblZhbHVlIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtaW5CeU9yVW5kZWZpbmVkIiwicmFuZ2UiLCJpblN0YXJ0T3JDb3VudCIsImluSXRlbUNvdW50Iiwic3RhcnQiLCJpdGVtQ291bnQiLCJpbnRlcnNwZXJzZSIsImludGVyc3BlcnNlRm4iLCJmbGF0TWFwIiwieCIsInppcCIsIml0ZXJhdG9ycyIsIm1hcCIsIml0IiwiSXRlcmF0b3IiLCJoYXNVbmRvbmVJdGVyYXRvcnMiLCJyZXN1bHRFbnRyeSIsIml0ZXJhdG9yIiwicmVzdWx0VmFsdWUiLCJuZXh0IiwiZG9uZSIsInZhbHVlIiwiZGlzdGluY3RCeSIsImlkU2VsZWN0b3IiLCJTZXQiLCJpZCIsImhhcyIsImFkZCIsInJlZHVjZSIsInJlZHVjZXIiLCJpbml0aWFsVmFsdWUiLCJhY2MiLCJiYXRjaCIsImJhdGNoU2l6ZSIsInNhZmVCYXRjaFNpemUiLCJjdXJyZW50IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL0NvbW1vbi9JdGVyYWJsZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbkxlbmd0aEFycmF5LCByZWplY3QgfSBmcm9tIFwiLi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgQ29tcGFyZUZ1bmMgfSBmcm9tIFwiLi9Db21wYXJlcnNcIjtcbmltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yIH0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiogcmV2ZXJzZUFycmF5PFQ+KGFycmF5OiByZWFkb25seSBUW10pOiBJdGVyYWJsZUl0ZXJhdG9yPFQ+IHtcbiAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgeWllbGQgYXJyYXlbaV0hO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQXN5bmNJdGVyYXRvcjxUPihnZW5lcmF0b3I6ICgpID0+IEFzeW5jR2VuZXJhdG9yPFQ+KTogQXN5bmNJdGVyYWJsZUl0ZXJhdG9yPFQ+IHtcbiAgICByZXR1cm4gQXN5bmNJdGVyYXRvci5mcm9tKGdlbmVyYXRvcigpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRMYXN0PFQ+KGl0ZW1zOiBJdGVyYWJsZTxUPiwgY29uZGl0aW9uOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IFQgfCB1bmRlZmluZWQge1xuICAgIGxldCByZXN1bHQ6IFQgfCB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgIGlmIChjb25kaXRpb24oaXRlbSkpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBjb25jYXQ8VD4oLi4uaXRlcmFibGVzOiBBcnJheTxJdGVyYWJsZTxUPj4pOiBJdGVyYWJsZUl0ZXJhdG9yPFQ+IHtcbiAgICBmb3IgKGNvbnN0IGl0ZXJhYmxlSXRlbSBvZiBpdGVyYWJsZXMpIHtcbiAgICAgICAgeWllbGQqIGl0ZXJhYmxlSXRlbTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlcmF0ZVZhbHVlczxUSyBleHRlbmRzIHN0cmluZyB8IHN5bWJvbCB8IG51bWJlciwgVFY+KG9iajogeyBba2V5IGluIFRLXTogVFYgfSk6IEl0ZXJhYmxlPFRWPiB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB5aWVsZCBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGl0ZXJhdGVLZXlzPFRPPihvYmo6IFJlYWRvbmx5PFRPPik6IEl0ZXJhYmxlPEV4dHJhY3Q8a2V5b2YgVE8sIHN0cmluZz4+O1xuZXhwb3J0IGZ1bmN0aW9uIGl0ZXJhdGVLZXlzPFRWPihvYmo6IFJlYWRvbmx5PHsgW2tleTogc3RyaW5nXTogVFYgfT4pOiBJdGVyYWJsZTxzdHJpbmc+O1xuZXhwb3J0IGZ1bmN0aW9uIGl0ZXJhdGVLZXlzKG9iajogUmVhZG9ubHk8e30+KTogSXRlcmFibGU8c3RyaW5nPjtcbmV4cG9ydCBmdW5jdGlvbiogaXRlcmF0ZUtleXM8VEsgZXh0ZW5kcyBzdHJpbmcgfCBzeW1ib2wgfCBudW1iZXI+KG9iajogeyBba2V5IGluIFRLXTogdW5rbm93biB9KTogSXRlcmFibGU8VEs+IHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHlpZWxkIGtleTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGl0ZXJhdGVFbnRyaWVzPFRPPihvYmo6IFJlYWRvbmx5PFRPPik6IEl0ZXJhYmxlPFtFeHRyYWN0PGtleW9mIFRPLCBzdHJpbmc+LCBUT1trZXlvZiBUT11dPjtcbmV4cG9ydCBmdW5jdGlvbiBpdGVyYXRlRW50cmllczxUVj4ob2JqOiBSZWFkb25seTx7IFtrZXk6IHN0cmluZ106IFRWIH0+KTogSXRlcmFibGU8W3N0cmluZywgVFZdPjtcbmV4cG9ydCBmdW5jdGlvbiBpdGVyYXRlRW50cmllcyhvYmo6IFJlYWRvbmx5PHt9Pik6IEl0ZXJhYmxlPFtzdHJpbmcsIHVua25vd25dPjtcbmV4cG9ydCBmdW5jdGlvbiogaXRlcmF0ZUVudHJpZXM8VFY+KG9iajogUmVhZG9ubHk8eyBba2V5OiBzdHJpbmddOiBUViB9Pik6IEl0ZXJhYmxlPFtzdHJpbmcsIFRWXT4ge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgIHlpZWxkIFtrZXksIG9ialtrZXldIV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3VudDxUPihpdGVtczogSXRlcmFibGU8VD4pOiBudW1iZXIge1xuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGZvciAoY29uc3QgX2l0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgcmVzdWx0Kys7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbnN0IEVtcHR5U2luZ2xlRWxlbWVudCA9IFN5bWJvbC5mb3IoXCJFbXB0eVNpbmdsZUVsZW1lbnRcIik7XG5jb25zdCBOb1ZhbHVlTWFya2VyID0gU3ltYm9sLmZvcihcIk5vVmFsdWVNYXJrZXJcIik7XG5cbmV4cG9ydCBjbGFzcyBJdGVyVXRpbHMge1xuICAgIHB1YmxpYyBzdGF0aWMgY291bnQgPSBjb3VudDtcbiAgICBwdWJsaWMgc3RhdGljIGNvbmNhdCA9IGNvbmNhdDtcblxuICAgIHB1YmxpYyBzdGF0aWMgaXNFbXB0eTxUPihpdGVyYWJsZTogSXRlcmFibGU8VD4pOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChjb25zdCBfaXRlbSBvZiBpdGVyYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ3JvdXBCeTxULCBUS2V5PihpdGVyYWJsZTogSXRlcmFibGU8VD4sIHNlbGVjdEtleTogKGl0ZW06IFQpID0+IFRLZXkpOiBNYXA8VEtleSwgVFtdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8VEtleSwgVFtdPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlcmFibGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHNlbGVjdEtleShpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IGtleUxpc3QgPSByZXN1bHQuZ2V0KGtleSk7XG4gICAgICAgICAgICBpZiAoa2V5TGlzdCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuc2V0KGtleSwgW2l0ZW1dKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAga2V5TGlzdC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzb3J0Qnk8VD4oaXRlbXM6IEl0ZXJhYmxlPFQ+LCBzZWxlY3RvcjogKGl0ZW06IFQpID0+IHN0cmluZyB8IG51bWJlcik6IFRbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5pdGVtc107XG4gICAgICAgIHJlc3VsdC5zb3J0KChhSXRlbSwgYkl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxlZnRWYWx1ZSA9IHNlbGVjdG9yKGFJdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0VmFsdWUgPSBzZWxlY3RvcihiSXRlbSk7XG4gICAgICAgICAgICBpZiAobGVmdFZhbHVlID09PSByaWdodFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnRWYWx1ZSA8IHJpZ2h0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGxhc3Q8VD4oaXRlbXM6IE1pbkxlbmd0aEFycmF5PFQsIDE+KTogVDtcbiAgICBwdWJsaWMgc3RhdGljIGxhc3Q8VD4oaXRlbXM6IEl0ZXJhYmxlPFQ+IHwgcmVhZG9ubHkgVFtdKTogdW5kZWZpbmVkIHwgVDtcbiAgICBwdWJsaWMgc3RhdGljIGxhc3Q8VD4oaXRlbXM6IEl0ZXJhYmxlPFQ+IHwgcmVhZG9ubHkgVFtdKTogdW5kZWZpbmVkIHwgVCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsYXN0SXRlbTogVCB8IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICBsYXN0SXRlbSA9IGl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxhc3RJdGVtO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZmlyc3Q8VD4oaXRlbXM6IFtULCAuLi51bmtub3duW11dKTogVDtcbiAgICBwdWJsaWMgc3RhdGljIGZpcnN0PFQ+KGl0ZW1zOiBNaW5MZW5ndGhBcnJheTxULCAxPik6IFQ7XG4gICAgcHVibGljIHN0YXRpYyBmaXJzdDxUPihpdGVtczogSXRlcmFibGU8VD4gfCByZWFkb25seSBUW10pOiB1bmRlZmluZWQgfCBUO1xuICAgIHB1YmxpYyBzdGF0aWMgZmlyc3Q8VD4oaXRlbXM6IEl0ZXJhYmxlPFQ+IHwgcmVhZG9ubHkgVFtdKTogdW5kZWZpbmVkIHwgVCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zWzBdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmaXJzdEl0ZW06IFQgfCB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgZmlyc3RJdGVtID0gaXRlbTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaXJzdEl0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzaW5nbGU8VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSB8IEl0ZXJhYmxlPFQ+LCBzaW5nbGVBc3NlcnRNZXNzYWdlPzogc3RyaW5nKTogVCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgc2luZ2xlQXNzZXJ0TWVzc2FnZSA/PyBgU2VxdWVuY2UgbXVzdCBjb250YWluIGV4YWN0bHkgc2luZ2xlIGVsZW1lbnQsIGJ1dCBnb3QgJHtpdGVtcy5sZW5ndGh9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbXNbMF0gPz8gcmVqZWN0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgc2luZ2xlRWxlbWVudDogVCB8IHR5cGVvZiBFbXB0eVNpbmdsZUVsZW1lbnQgPSBFbXB0eVNpbmdsZUVsZW1lbnQ7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2luZ2xlRWxlbWVudCAhPT0gRW1wdHlTaW5nbGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZUFzc2VydE1lc3NhZ2UgPz8gYFNlcXVlbmNlIG11c3QgY29udGFpbiBleGFjdGx5IHNpbmdsZSBlbGVtZW50LCBidXQgZ290IGF0IGxlYXN0IDJgXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNpbmdsZUVsZW1lbnQgPSBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNpbmdsZUVsZW1lbnQgPT09IEVtcHR5U2luZ2xlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzaW5nbGVBc3NlcnRNZXNzYWdlID8/IFwiU2VxdWVuY2UgbXVzdCBjb250YWluIGV4YWN0bHkgc2luZ2xlIGVsZW1lbnQsIGJ1dCBnb3QgMFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzaW5nbGVFbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyAqaXRlcmF0ZUVudHJpZXM8VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSB8IFRbXSB8IEl0ZXJhYmxlPFQ+KTogSXRlcmFibGU8W251bWJlciwgVF0+IHtcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICB5aWVsZCBbaW5kZXgsIGl0ZW1dO1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgKnNraXBMYXN0PFQ+KGl0ZW1zOiBJdGVyYWJsZTxUPiwgc2tpcENvdW50OiBudW1iZXIpOiBJdGVyYWJsZTxUPiB7XG4gICAgICAgIGlmIChza2lwQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgIHlpZWxkKiBpdGVtcztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2SXRlbXM6IEFycmF5PFQgfCB0eXBlb2YgRW1wdHlTaW5nbGVFbGVtZW50PiA9IG5ldyBBcnJheShza2lwQ291bnQpLmZpbGwoRW1wdHlTaW5nbGVFbGVtZW50KTtcbiAgICAgICAgbGV0IHJlc3VsdEl0ZW06IFQgfCB0eXBlb2YgRW1wdHlTaW5nbGVFbGVtZW50ID0gRW1wdHlTaW5nbGVFbGVtZW50O1xuICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yINCSINC+0LHRidC10LwsINGB0YLRgNC+0LrQsCDQstGL0YjQtSDQs9Cw0YDQsNC90YLQuNGA0YPQtdGCINC00LvQuNC90YMg0LzQsNGB0YHQuNCy0LBcbiAgICAgICAgICAgIHJlc3VsdEl0ZW0gPSBwcmV2SXRlbXNbY3VycmVudEluZGV4XTtcbiAgICAgICAgICAgIHByZXZJdGVtc1tjdXJyZW50SW5kZXhdID0gaXRlbTtcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IChjdXJyZW50SW5kZXggKyAxKSAlIHNraXBDb3VudDtcbiAgICAgICAgICAgIGlmIChyZXN1bHRJdGVtICE9IEVtcHR5U2luZ2xlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHlpZWxkIHJlc3VsdEl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG1pbkJ5PFQ+KGl0ZW1zOiByZWFkb25seSBUW10gfCBUW10gfCBJdGVyYWJsZTxUPiwgY29tcGFyZUZ1bmM6IENvbXBhcmVGdW5jPFQ+KTogVCB7XG4gICAgICAgIGxldCBtaW5WYWx1ZTogdHlwZW9mIE5vVmFsdWVNYXJrZXIgfCBUID0gTm9WYWx1ZU1hcmtlcjtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAobWluVmFsdWUgPT09IE5vVmFsdWVNYXJrZXIpIHtcbiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IGl0ZW07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBhcmVGdW5jKGl0ZW0sIG1pblZhbHVlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IGl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pblZhbHVlID09PSBOb1ZhbHVlTWFya2VyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJpdGVtc1wiLCBcIkl0ZW1zIHNob3VsZCBiZSBub3QgZW1wdHkgbGlzdFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWluVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBtaW5CeU9yVW5kZWZpbmVkPFQ+KFxuICAgICAgICBpdGVtczogcmVhZG9ubHkgVFtdIHwgVFtdIHwgSXRlcmFibGU8VD4sXG4gICAgICAgIGNvbXBhcmVGdW5jOiBDb21wYXJlRnVuYzxUPlxuICAgICk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgbWluVmFsdWU6IHR5cGVvZiBOb1ZhbHVlTWFya2VyIHwgVCA9IE5vVmFsdWVNYXJrZXI7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgaWYgKG1pblZhbHVlID09PSBOb1ZhbHVlTWFya2VyKSB7XG4gICAgICAgICAgICAgICAgbWluVmFsdWUgPSBpdGVtO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wYXJlRnVuYyhpdGVtLCBtaW5WYWx1ZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgbWluVmFsdWUgPSBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtaW5WYWx1ZSA9PT0gTm9WYWx1ZU1hcmtlcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWluVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByYW5nZShpdGVtQ291bnQ6IG51bWJlcik6IEl0ZXJhYmxlPG51bWJlcj47XG4gICAgcHVibGljIHN0YXRpYyByYW5nZShzdGFydDogbnVtYmVyLCBpdGVtQ291bnQ6IG51bWJlcik6IEl0ZXJhYmxlPG51bWJlcj47XG4gICAgcHVibGljIHN0YXRpYyAqcmFuZ2UoaW5TdGFydE9yQ291bnQ6IG51bWJlciwgaW5JdGVtQ291bnQ/OiBudW1iZXIpOiBJdGVyYWJsZTxudW1iZXI+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbkl0ZW1Db3VudCA9PT0gdW5kZWZpbmVkID8gMCA6IGluU3RhcnRPckNvdW50O1xuICAgICAgICBjb25zdCBpdGVtQ291bnQgPSBpbkl0ZW1Db3VudCA9PT0gdW5kZWZpbmVkID8gaW5TdGFydE9yQ291bnQgOiBpbkl0ZW1Db3VudDtcbiAgICAgICAgaWYgKGl0ZW1Db3VudCA8IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIml0ZW1Db3VudFwiLCBcIml0ZW1Db3VudCBtdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIG51bWJlclwiKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdGFydCArIGl0ZW1Db3VudDsgaSsrKSB7XG4gICAgICAgICAgICB5aWVsZCBpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkg0JLRgdGC0LDQstC70Y/QtdGCINC80LXQttC00YMg0Y3Qu9C10LzQtdC90YLQsNC80Lgg0LzQsNGB0YHQuNCy0LAg0LfQsNC00LDQvdC90YvQuSDRjdC70LXQvNC10L3RgiDQuCDQstC+0LfQstGA0LDRidCw0LXRgiDQvdC+0LLRi9C5INC80LDRgdGB0LjQslxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzcGVyc2U8VEksIFRTPihpdGVtczogVElbXSwgaXRlbTogVFMpOiBBcnJheTxUSSB8IFRTPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVyc3BlcnNlRm4oaXRlbXMsICgpID0+IGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5INCS0YHRgtCw0LLQu9GP0LXRgiDQvNC10LbQtNGDINGN0LvQtdC80LXQvdGC0LDQvNC4INC80LDRgdGB0LjQstCwINGN0LvQtdC80LXQvdGCLCDRgdC+0LfQtNCw0LLQsNC10LzRi9C5INGE0YPQvdC60YbQuNC10LksINC4INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC90L7QstGL0Lkg0LzQsNGB0YHQuNCyXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpbnRlcnNwZXJzZUZuPFRJLCBUUz4oaXRlbXM6IFRJW10sIGl0ZW06IChuZXh0SXRlbTogVEksIGluZGV4OiBudW1iZXIpID0+IFRTKTogQXJyYXk8VEkgfCBUUz4ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmxhdE1hcCgoeCwgaW5kZXgpID0+IChpbmRleCA9PT0gMCA/IFt4XSA6IFtpdGVtKHgsIGluZGV4KSwgeF0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHppcDxUMSwgVDI+KGl0ZW1zMTogSXRlcmFibGU8VDE+LCBpdGVtczI6IEl0ZXJhYmxlPFQyPik6IEl0ZXJhYmxlPFtUMSB8IHVuZGVmaW5lZCwgVDIgfCB1bmRlZmluZWRdPjtcbiAgICBwdWJsaWMgc3RhdGljICp6aXAoLi4uaXRlcmFibGVzOiBBcnJheTxJdGVyYWJsZTx1bmtub3duPj4pOiBJdGVyYWJsZTx1bmtub3duW10+IHtcbiAgICAgICAgY29uc3QgaXRlcmF0b3JzOiBBcnJheTxJdGVyYXRvcjx1bmtub3duPiB8IHR5cGVvZiBOb1ZhbHVlTWFya2VyPiA9IGl0ZXJhYmxlcy5tYXAoaXQgPT4gSXRlcmF0b3IuZnJvbShpdCkpO1xuICAgICAgICBsZXQgaGFzVW5kb25lSXRlcmF0b3JzID0gdHJ1ZTtcbiAgICAgICAgd2hpbGUgKGhhc1VuZG9uZUl0ZXJhdG9ycykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0RW50cnkgPSBbXTtcbiAgICAgICAgICAgIGhhc1VuZG9uZUl0ZXJhdG9ycyA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbaSwgaXRlcmF0b3JdIG9mIHRoaXMuaXRlcmF0ZUVudHJpZXMoaXRlcmF0b3JzKSkge1xuICAgICAgICAgICAgICAgIGlmIChpdGVyYXRvciA9PT0gTm9WYWx1ZU1hcmtlcikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRFbnRyeS5wdXNoKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0VmFsdWUgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRWYWx1ZS5kb25lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRFbnRyeS5wdXNoKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRvcnNbaV0gPSBOb1ZhbHVlTWFya2VyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0RW50cnkucHVzaChyZXN1bHRWYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmRvbmVJdGVyYXRvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc1VuZG9uZUl0ZXJhdG9ycykge1xuICAgICAgICAgICAgICAgIHlpZWxkIHJlc3VsdEVudHJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyAqZGlzdGluY3RCeTxUPihpdGVtczogSXRlcmFibGU8VD4sIGlkU2VsZWN0b3I6IChpdGVtOiBUKSA9PiBzdHJpbmcpOiBJdGVyYWJsZTxUPiB7XG4gICAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gaWRTZWxlY3RvcihpdGVtKTtcbiAgICAgICAgICAgIGlmICghc2V0LmhhcyhpZCkpIHtcbiAgICAgICAgICAgICAgICBzZXQuYWRkKGlkKTtcbiAgICAgICAgICAgICAgICB5aWVsZCBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWR1Y2U8VCwgVT4oXG4gICAgICAgIGl0ZW1zOiBJdGVyYWJsZTxUPixcbiAgICAgICAgcmVkdWNlcjogKGFjY3VtdWxhdG9yOiBVLCBpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiBVLFxuICAgICAgICBpbml0aWFsVmFsdWU6IFVcbiAgICApOiBVIHtcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgcmV0dXJuIEl0ZXJhdG9yLmZyb20oaXRlbXMpLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiByZWR1Y2VyKGFjYywgaXRlbSwgaW5kZXgrKyksIGluaXRpYWxWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyAqYmF0Y2g8VD4oaXRlbXM6IEl0ZXJhYmxlPFQ+LCBiYXRjaFNpemU6IG51bWJlcik6IEl0ZXJhYmxlPEl0ZXJhYmxlPFQ+PiB7XG4gICAgICAgIGNvbnN0IGl0ZXJhdG9yID0gSXRlcmF0b3IuZnJvbShpdGVtcyk7XG4gICAgICAgIGNvbnN0IHNhZmVCYXRjaFNpemUgPSBiYXRjaFNpemUgPiAwID8gYmF0Y2hTaXplIDogMTtcbiAgICAgICAgbGV0IGRvbmUgPSBmYWxzZTtcbiAgICAgICAgd2hpbGUgKCFkb25lKSB7XG4gICAgICAgICAgICBjb25zdCBiYXRjaDogVFtdID0gW107XG4gICAgICAgICAgICB3aGlsZSAoYmF0Y2gubGVuZ3RoIDwgc2FmZUJhdGNoU2l6ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQuZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYmF0Y2gucHVzaChjdXJyZW50LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYmF0Y2gubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHlpZWxkIGJhdGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxu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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IterableUtils.js","names":["_TypingUtils","require","_Errors","reverseArray","array","i","length","toAsyncIterator","generator","AsyncIterator","from","findLast","items","condition","result","item","concat","iterables","iterableItem","iterateValues","obj","key","Object","prototype","hasOwnProperty","call","iterateKeys","iterateEntries","count","_item","EmptySingleElement","Symbol","for","NoValueMarker","IterUtils","isEmpty","iterable","groupBy","selectKey","Map","keyList","get","undefined","set","push","sortBy","selector","sort","aItem","bItem","leftValue","rightValue","last","Array","isArray","lastItem","first","firstItem","single","singleAssertMessage","_items$","Error","reject","singleElement","index","skipLast","skipCount","prevItems","fill","resultItem","currentIndex","minBy","compareFunc","minValue","InvalidArgumentError","minByOrUndefined","range","inStartOrCount","inItemCount","start","itemCount","intersperse","intersperseFn","flatMap","x","zip","iterators","map","it","Iterator","hasUndoneIterators","resultEntry","iterator","resultValue","next","done","value","distinctBy","idSelector","Set","id","has","add","reduce","reducer","initialValue","acc","batch","batchSize","safeBatchSize","current","exports"],"sources":["../../../Common/IterableUtils.ts"],"sourcesContent":["import { MinLengthArray, reject } from \"./TypingUtils\";\nimport { CompareFunc } from \"./Comparers\";\nimport { InvalidArgumentError } from \"./Errors\";\n\nexport function* reverseArray<T>(array: readonly T[]): IterableIterator<T> {\n for (let i = array.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield array[i]!;\n }\n}\n\nexport function toAsyncIterator<T>(generator: () => AsyncGenerator<T>): AsyncIterableIterator<T> {\n return AsyncIterator.from(generator());\n}\n\nexport function findLast<T>(items: Iterable<T>, condition: (item: T) => boolean): T | undefined {\n let result: T | undefined;\n for (const item of items) {\n if (condition(item)) {\n result = item;\n }\n }\n return result;\n}\n\nexport function* concat<T>(...iterables: Array<Iterable<T>>): IterableIterator<T> {\n for (const iterableItem of iterables) {\n yield* iterableItem;\n }\n}\n\nexport function* iterateValues<TK extends string | symbol | number, TV>(obj: { [key in TK]: TV }): Iterable<TV> {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n yield obj[key];\n }\n }\n}\n\nexport function iterateKeys<TO>(obj: Readonly<TO>): Iterable<Extract<keyof TO, string>>;\nexport function iterateKeys<TV>(obj: Readonly<{ [key: string]: TV }>): Iterable<string>;\nexport function iterateKeys(obj: Readonly<{}>): Iterable<string>;\nexport function* iterateKeys<TK extends string | symbol | number>(obj: { [key in TK]: unknown }): Iterable<TK> {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n yield key;\n }\n }\n}\n\nexport function iterateEntries<TO>(obj: Readonly<TO>): Iterable<[Extract<keyof TO, string>, TO[keyof TO]]>;\nexport function iterateEntries<TV>(obj: Readonly<{ [key: string]: TV }>): Iterable<[string, TV]>;\nexport function iterateEntries(obj: Readonly<{}>): Iterable<[string, unknown]>;\nexport function* iterateEntries<TV>(obj: Readonly<{ [key: string]: TV }>): Iterable<[string, TV]> {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield [key, obj[key]!];\n }\n }\n}\n\nexport function count<T>(items: Iterable<T>): number {\n let result = 0;\n for (const _item of items) {\n result++;\n }\n return result;\n}\n\nconst EmptySingleElement = Symbol.for(\"EmptySingleElement\");\nconst NoValueMarker = Symbol.for(\"NoValueMarker\");\n\nexport class IterUtils {\n public static count = count;\n public static concat = concat;\n\n public static isEmpty<T>(iterable: Iterable<T>): boolean {\n for (const _item of iterable) {\n return false;\n }\n return true;\n }\n\n public static groupBy<T, TKey>(iterable: Iterable<T>, selectKey: (item: T) => TKey): Map<TKey, T[]> {\n const result = new Map<TKey, T[]>();\n for (const item of iterable) {\n const key = selectKey(item);\n const keyList = result.get(key);\n if (keyList == undefined) {\n result.set(key, [item]);\n } else {\n keyList.push(item);\n }\n }\n return result;\n }\n\n public static sortBy<T>(items: Iterable<T>, selector: (item: T) => string | number): T[] {\n const result = [...items];\n result.sort((aItem, bItem) => {\n const leftValue = selector(aItem);\n const rightValue = selector(bItem);\n if (leftValue === rightValue) {\n return 0;\n } else if (leftValue < rightValue) {\n return -1;\n } else {\n return 1;\n }\n });\n return result;\n }\n\n public static last<T>(items: MinLengthArray<T, 1>): T;\n public static last<T>(items: Iterable<T> | readonly T[]): undefined | T;\n public static last<T>(items: Iterable<T> | readonly T[]): undefined | T {\n if (Array.isArray(items)) {\n return items[items.length - 1];\n }\n let lastItem: T | undefined;\n for (const item of items) {\n lastItem = item;\n }\n return lastItem;\n }\n\n public static first<T>(items: [T, ...unknown[]]): T;\n public static first<T>(items: MinLengthArray<T, 1>): T;\n public static first<T>(items: Iterable<T> | readonly T[]): undefined | T;\n public static first<T>(items: Iterable<T> | readonly T[]): undefined | T {\n if (Array.isArray(items)) {\n return items[0];\n }\n let firstItem: T | undefined;\n for (const item of items) {\n firstItem = item;\n break;\n }\n return firstItem;\n }\n\n public static single<T>(items: readonly T[] | Iterable<T>, singleAssertMessage?: string): T {\n if (Array.isArray(items)) {\n if (items.length !== 1) {\n throw new Error(\n singleAssertMessage ?? `Sequence must contain exactly single element, but got ${items.length}`\n );\n }\n return items[0] ?? reject();\n } else {\n let singleElement: T | typeof EmptySingleElement = EmptySingleElement;\n for (const item of items) {\n if (singleElement !== EmptySingleElement) {\n throw new Error(\n singleAssertMessage ?? `Sequence must contain exactly single element, but got at least 2`\n );\n }\n singleElement = item;\n }\n if (singleElement === EmptySingleElement) {\n throw new Error(singleAssertMessage ?? \"Sequence must contain exactly single element, but got 0\");\n }\n return singleElement;\n }\n }\n\n public static *iterateEntries<T>(items: readonly T[] | T[] | Iterable<T>): Iterable<[number, T]> {\n let index = 0;\n for (const item of items) {\n yield [index, item];\n index++;\n }\n }\n\n public static *skipLast<T>(items: Iterable<T>, skipCount: number): Iterable<T> {\n if (skipCount === 0) {\n yield* items;\n return;\n }\n const prevItems: Array<T | typeof EmptySingleElement> = new Array(skipCount).fill(EmptySingleElement);\n let resultItem: T | typeof EmptySingleElement = EmptySingleElement;\n let currentIndex = 0;\n for (const item of items) {\n // @ts-expect-error В общем, строка выше гарантирует длину массива\n resultItem = prevItems[currentIndex];\n prevItems[currentIndex] = item;\n currentIndex = (currentIndex + 1) % skipCount;\n if (resultItem != EmptySingleElement) {\n yield resultItem;\n }\n }\n }\n\n public static minBy<T>(items: readonly T[] | T[] | Iterable<T>, compareFunc: CompareFunc<T>): T {\n let minValue: typeof NoValueMarker | T = NoValueMarker;\n for (const item of items) {\n if (minValue === NoValueMarker) {\n minValue = item;\n } else if (compareFunc(item, minValue) === -1) {\n minValue = item;\n }\n }\n if (minValue === NoValueMarker) {\n throw new InvalidArgumentError(\"items\", \"Items should be not empty list\");\n }\n return minValue;\n }\n\n public static minByOrUndefined<T>(\n items: readonly T[] | T[] | Iterable<T>,\n compareFunc: CompareFunc<T>\n ): T | undefined {\n let minValue: typeof NoValueMarker | T = NoValueMarker;\n for (const item of items) {\n if (minValue === NoValueMarker) {\n minValue = item;\n } else if (compareFunc(item, minValue) === -1) {\n minValue = item;\n }\n }\n if (minValue === NoValueMarker) {\n return undefined;\n }\n return minValue;\n }\n\n public static range(itemCount: number): Iterable<number>;\n public static range(start: number, itemCount: number): Iterable<number>;\n public static *range(inStartOrCount: number, inItemCount?: number): Iterable<number> {\n const start = inItemCount === undefined ? 0 : inStartOrCount;\n const itemCount = inItemCount === undefined ? inStartOrCount : inItemCount;\n if (itemCount < 0) {\n throw new InvalidArgumentError(\"itemCount\", \"itemCount must be a non negative number\");\n }\n for (let i = start; i < start + itemCount; i++) {\n yield i;\n }\n }\n\n /**\n * @summary Вставляет между элементами массива заданный элемент и возвращает новый массив\n */\n public static intersperse<TI, TS>(items: TI[], item: TS): Array<TI | TS> {\n return this.intersperseFn(items, () => item);\n }\n\n /**\n * @summary Вставляет между элементами массива элемент, создаваемый функцией, и возвращает новый массив\n */\n public static intersperseFn<TI, TS>(items: TI[], item: (nextItem: TI, index: number) => TS): Array<TI | TS> {\n return items.flatMap((x, index) => (index === 0 ? [x] : [item(x, index), x]));\n }\n\n public static zip<T1, T2>(items1: Iterable<T1>, items2: Iterable<T2>): Iterable<[T1 | undefined, T2 | undefined]>;\n public static *zip(...iterables: Array<Iterable<unknown>>): Iterable<unknown[]> {\n const iterators: Array<Iterator<unknown> | typeof NoValueMarker> = iterables.map(it => Iterator.from(it));\n let hasUndoneIterators = true;\n while (hasUndoneIterators) {\n const resultEntry = [];\n hasUndoneIterators = false;\n for (const [i, iterator] of this.iterateEntries(iterators)) {\n if (iterator === NoValueMarker) {\n resultEntry.push(undefined);\n } else {\n const resultValue = iterator.next();\n if (resultValue.done) {\n resultEntry.push(undefined);\n iterators[i] = NoValueMarker;\n } else {\n resultEntry.push(resultValue.value);\n hasUndoneIterators = true;\n }\n }\n }\n if (hasUndoneIterators) {\n yield resultEntry;\n }\n }\n }\n\n public static *distinctBy<T>(items: Iterable<T>, idSelector: (item: T) => string): Iterable<T> {\n const set = new Set<string>();\n for (const item of items) {\n const id = idSelector(item);\n if (!set.has(id)) {\n set.add(id);\n yield item;\n }\n }\n }\n\n public static reduce<T, U>(\n items: Iterable<T>,\n reducer: (accumulator: U, item: T, index: number) => U,\n initialValue: U\n ): U {\n let index = 0;\n return Iterator.from(items).reduce((acc, item) => reducer(acc, item, index++), initialValue);\n }\n\n public static *batch<T>(items: Iterable<T>, batchSize: number): Iterable<Iterable<T>> {\n const iterator = Iterator.from(items);\n const safeBatchSize = batchSize > 0 ? batchSize : 1;\n let done = false;\n while (!done) {\n const batch: T[] = [];\n while (batch.length < safeBatchSize) {\n const current = iterator.next();\n if (current.done) {\n done = true;\n break;\n } else {\n batch.push(current.value);\n }\n }\n if (batch.length > 0) {\n yield batch;\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|