@qimen-lab/core 0.1.3 → 0.1.5
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/dist/async/package.json +1 -1
- package/dist/cache/package.json +3 -3
- package/dist/cache/types/cache.esm.js +2 -0
- package/dist/cache/types/cache.esm.js.map +1 -0
- package/dist/cache/types/index.esm.js +5 -0
- package/dist/cache/types/index.esm.js.map +1 -0
- package/dist/composable/ComposableBase.d.ts +1 -1
- package/dist/composable/ComposableBase.esm.js +1 -1
- package/dist/composable/ComposableBase.js +1 -1
- package/dist/composable/package.json +3 -3
- package/dist/composable/types/composable.esm.js +5 -0
- package/dist/composable/types/composable.esm.js.map +1 -0
- package/dist/context/base/BaseContext.esm.js +120 -0
- package/dist/context/base/BaseContext.esm.js.map +1 -0
- package/dist/context/base/ExecutionStep.esm.js +9 -0
- package/dist/context/base/ExecutionStep.esm.js.map +1 -0
- package/dist/context/base/index.esm.js +7 -0
- package/dist/context/base/index.esm.js.map +1 -0
- package/dist/context/package.json +2 -2
- package/dist/context/types/index.esm.js +5 -0
- package/dist/context/types/index.esm.js.map +1 -0
- package/dist/context/types/request-context.esm.js +10 -0
- package/dist/context/types/request-context.esm.js.map +1 -0
- package/dist/crypto/package.json +1 -1
- package/dist/data-processor/DataProcessorRegistrar.d.ts +1 -1
- package/dist/data-processor/DataProcessorRegistrar.esm.js +1 -1
- package/dist/data-processor/DataProcessorRegistrar.js +1 -1
- package/dist/data-processor/errors/index.esm.js +57 -0
- package/dist/data-processor/errors/index.esm.js.map +1 -0
- package/dist/data-processor/executor.d.ts +3 -3
- package/dist/data-processor/executor.esm.js +1 -1
- package/dist/data-processor/executor.js +1 -1
- package/dist/data-processor/package.json +4 -4
- package/dist/data-processor-abp/package.json +3 -3
- package/dist/data-processor-abp/post.d.ts +1 -1
- package/dist/data-processor-abp/post.esm.js +1 -1
- package/dist/data-processor-abp/post.js +1 -1
- package/dist/data-processor-abp/pre.d.ts +1 -1
- package/dist/data-processor-abp/pre.esm.js +1 -1
- package/dist/data-processor-abp/pre.js +1 -1
- package/dist/data-processor-abp/register.esm.js +1 -1
- package/dist/data-processor-abp/register.js +1 -1
- package/dist/data-processor-spring/package.json +3 -3
- package/dist/data-processor-spring/post.d.ts +1 -1
- package/dist/data-processor-spring/post.esm.js +1 -1
- package/dist/data-processor-spring/post.js +1 -1
- package/dist/data-processor-spring/pre.d.ts +1 -1
- package/dist/data-processor-spring/pre.esm.js +1 -1
- package/dist/data-processor-spring/pre.js +1 -1
- package/dist/data-processor-spring/register.esm.js +1 -1
- package/dist/data-processor-spring/register.js +1 -1
- package/dist/entity/abilities/SchemaAbility.d.ts +1 -1
- package/dist/entity/abilities/SchemaAbility.esm.js +85 -0
- package/dist/entity/abilities/SchemaAbility.esm.js.map +1 -0
- package/dist/entity/abilities/SchemaAbility.js +1 -1
- package/dist/entity/abilities/core/CacheAbility.d.ts +1 -1
- package/dist/entity/abilities/core/CacheAbility.esm.js +77 -0
- package/dist/entity/abilities/core/CacheAbility.esm.js.map +1 -0
- package/dist/entity/abilities/core/CacheAbility.js +1 -1
- package/dist/entity/abilities/core/DirtyAbility.d.ts +1 -1
- package/dist/entity/abilities/core/DirtyAbility.esm.js +58 -0
- package/dist/entity/abilities/core/DirtyAbility.esm.js.map +1 -0
- package/dist/entity/abilities/core/SchemaProxyAbility.d.ts +1 -1
- package/dist/entity/abilities/core/SchemaProxyAbility.esm.js +99 -0
- package/dist/entity/abilities/core/SchemaProxyAbility.esm.js.map +1 -0
- package/dist/entity/abilities/core/index.esm.js +4 -0
- package/dist/entity/abilities/core/index.esm.js.map +1 -0
- package/dist/entity/abilities/index.esm.js +8 -0
- package/dist/entity/abilities/index.esm.js.map +1 -0
- package/dist/entity/abilities/local/FlatLocalDeleteAbility.d.ts +1 -1
- package/dist/entity/abilities/local/FlatLocalDeleteAbility.esm.js +27 -0
- package/dist/entity/abilities/local/FlatLocalDeleteAbility.esm.js.map +1 -0
- package/dist/entity/abilities/local/FlatLocalMutationAbility.d.ts +1 -1
- package/dist/entity/abilities/local/FlatLocalMutationAbility.esm.js +53 -0
- package/dist/entity/abilities/local/FlatLocalMutationAbility.esm.js.map +1 -0
- package/dist/entity/abilities/local/FlatLocalStateAbility.d.ts +1 -1
- package/dist/entity/abilities/local/FlatLocalStateAbility.esm.js +489 -0
- package/dist/entity/abilities/local/FlatLocalStateAbility.esm.js.map +1 -0
- package/dist/entity/abilities/local/FlatLocalStateAbility.js +1 -1
- package/dist/entity/abilities/local/LocalGetAbility.d.ts +1 -1
- package/dist/entity/abilities/local/LocalGetAbility.esm.js +23 -0
- package/dist/entity/abilities/local/LocalGetAbility.esm.js.map +1 -0
- package/dist/entity/abilities/local/LocalListAbility.d.ts +1 -1
- package/dist/entity/abilities/local/LocalListAbility.esm.js +29 -0
- package/dist/entity/abilities/local/LocalListAbility.esm.js.map +1 -0
- package/dist/entity/abilities/local/index.esm.js +6 -0
- package/dist/entity/abilities/local/index.esm.js.map +1 -0
- package/dist/entity/abilities/mutation/LocalMutationAbility.d.ts +1 -1
- package/dist/entity/abilities/mutation/LocalMutationAbility.esm.js +164 -0
- package/dist/entity/abilities/mutation/LocalMutationAbility.esm.js.map +1 -0
- package/dist/entity/abilities/mutation/index.esm.js +2 -0
- package/dist/entity/abilities/mutation/index.esm.js.map +1 -0
- package/dist/entity/abilities/remote/FlatRemoteGetAllAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/FlatRemoteGetAllAbility.esm.js +20 -0
- package/dist/entity/abilities/remote/FlatRemoteGetAllAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/FlatRemoteListAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/FlatRemoteListAbility.esm.js +47 -0
- package/dist/entity/abilities/remote/FlatRemoteListAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/FlatRemoteQueryAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/FlatRemoteQueryAbility.esm.js +70 -0
- package/dist/entity/abilities/remote/FlatRemoteQueryAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/FlatRemoteQueryAbility.js +1 -1
- package/dist/entity/abilities/remote/FlatRemoteStateAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/FlatRemoteStateAbility.esm.js +78 -0
- package/dist/entity/abilities/remote/FlatRemoteStateAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/RemoteCreateAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/RemoteCreateAbility.esm.js +33 -0
- package/dist/entity/abilities/remote/RemoteCreateAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/RemoteCreateAbility.js +1 -1
- package/dist/entity/abilities/remote/RemoteDeleteAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/RemoteDeleteAbility.esm.js +34 -0
- package/dist/entity/abilities/remote/RemoteDeleteAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/RemoteDeleteAbility.js +1 -1
- package/dist/entity/abilities/remote/RemoteGetAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/RemoteGetAbility.esm.js +23 -0
- package/dist/entity/abilities/remote/RemoteGetAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/RemoteToggleAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/RemoteToggleAbility.esm.js +40 -0
- package/dist/entity/abilities/remote/RemoteToggleAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/RemoteUpdateAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/RemoteUpdateAbility.esm.js +34 -0
- package/dist/entity/abilities/remote/RemoteUpdateAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/RemoteUpdateAbility.js +1 -1
- package/dist/entity/abilities/remote/TreeManagerAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/TreeManagerAbility.esm.js +69 -0
- package/dist/entity/abilities/remote/TreeManagerAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/TreeRemoteStateAbility.d.ts +1 -1
- package/dist/entity/abilities/remote/TreeRemoteStateAbility.esm.js +33 -0
- package/dist/entity/abilities/remote/TreeRemoteStateAbility.esm.js.map +1 -0
- package/dist/entity/abilities/remote/index.esm.js +12 -0
- package/dist/entity/abilities/remote/index.esm.js.map +1 -0
- package/dist/entity/abilities/search/SearchAbility.d.ts +1 -1
- package/dist/entity/abilities/search/SearchAbility.esm.js +67 -0
- package/dist/entity/abilities/search/SearchAbility.esm.js.map +1 -0
- package/dist/entity/abilities/search/index.esm.js +2 -0
- package/dist/entity/abilities/search/index.esm.js.map +1 -0
- package/dist/entity/abilities/tree/TreeLifecycleAbility.d.ts +1 -1
- package/dist/entity/abilities/tree/TreeLifecycleAbility.esm.js +85 -0
- package/dist/entity/abilities/tree/TreeLifecycleAbility.esm.js.map +1 -0
- package/dist/entity/abilities/tree/TreePathAbility.d.ts +1 -1
- package/dist/entity/abilities/tree/TreePathAbility.esm.js +76 -0
- package/dist/entity/abilities/tree/TreePathAbility.esm.js.map +1 -0
- package/dist/entity/abilities/tree/TreeSearchAbility.d.ts +1 -1
- package/dist/entity/abilities/tree/TreeSearchAbility.esm.js +46 -0
- package/dist/entity/abilities/tree/TreeSearchAbility.esm.js.map +1 -0
- package/dist/entity/abilities/tree/TreeViewAbility.d.ts +1 -1
- package/dist/entity/abilities/tree/TreeViewAbility.esm.js +48 -0
- package/dist/entity/abilities/tree/TreeViewAbility.esm.js.map +1 -0
- package/dist/entity/abilities/tree/index.esm.js +5 -0
- package/dist/entity/abilities/tree/index.esm.js.map +1 -0
- package/dist/entity/manager/BaseEntityManager.d.ts +4 -4
- package/dist/entity/manager/BaseEntityManager.esm.js +138 -0
- package/dist/entity/manager/BaseEntityManager.esm.js.map +1 -0
- package/dist/entity/manager/CoreEntityManager.d.ts +7 -7
- package/dist/entity/manager/CoreEntityManager.esm.js +147 -0
- package/dist/entity/manager/CoreEntityManager.esm.js.map +1 -0
- package/dist/entity/manager/CoreEntityManager.js +11 -11
- package/dist/entity/manager/index.esm.js +4 -0
- package/dist/entity/manager/index.esm.js.map +1 -0
- package/dist/entity/manager/managers.d.ts +3 -3
- package/dist/entity/manager/managers.esm.js +209 -0
- package/dist/entity/manager/managers.esm.js.map +1 -0
- package/dist/entity/manager/managers.js +23 -23
- package/dist/entity/package.json +11 -11
- package/dist/entity/types/index.d.ts +11 -11
- package/dist/entity/types/index.esm.js +29 -0
- package/dist/entity/types/index.esm.js.map +1 -0
- package/dist/entity/types/index.js +2 -2
- package/dist/error/package.json +1 -1
- package/dist/event-dom/adapters/createEventAdapter.esm.js +28 -0
- package/dist/event-dom/adapters/createEventAdapter.esm.js.map +1 -0
- package/dist/event-dom/adapters/dom/DomEventAdapter.esm.js +241 -0
- package/dist/event-dom/adapters/dom/DomEventAdapter.esm.js.map +1 -0
- package/dist/event-dom/adapters/dom/DomEventAdapter.js +3 -3
- package/dist/event-dom/adapters/dom/index.esm.js +2 -0
- package/dist/event-dom/adapters/dom/index.esm.js.map +1 -0
- package/dist/event-dom/adapters/index.esm.js +6 -0
- package/dist/event-dom/adapters/index.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/ContextMenuProcessor.esm.js +70 -0
- package/dist/event-dom/adapters/processors/ContextMenuProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/DoubleTapProcessor.esm.js +85 -0
- package/dist/event-dom/adapters/processors/DoubleTapProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/DragProcessor.esm.js +127 -0
- package/dist/event-dom/adapters/processors/DragProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/GestureProcessor.d.ts +1 -1
- package/dist/event-dom/adapters/processors/GestureProcessor.esm.js +164 -0
- package/dist/event-dom/adapters/processors/GestureProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/GestureProcessor.js +4 -4
- package/dist/event-dom/adapters/processors/HoverProcessor.esm.js +39 -0
- package/dist/event-dom/adapters/processors/HoverProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/LongPressProcessor.esm.js +96 -0
- package/dist/event-dom/adapters/processors/LongPressProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/LongPressProcessor.js +1 -1
- package/dist/event-dom/adapters/processors/SubmitProcessor.esm.js +35 -0
- package/dist/event-dom/adapters/processors/SubmitProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/SwipeProcessor.esm.js +72 -0
- package/dist/event-dom/adapters/processors/SwipeProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/TapProcessor.esm.js +60 -0
- package/dist/event-dom/adapters/processors/TapProcessor.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/factory.esm.js +58 -0
- package/dist/event-dom/adapters/processors/factory.esm.js.map +1 -0
- package/dist/event-dom/adapters/processors/factory.js +2 -2
- package/dist/event-dom/adapters/processors/index.esm.js +22 -0
- package/dist/event-dom/adapters/processors/index.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/base.esm.js +73 -0
- package/dist/event-dom/adapters/semantic-map/base.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/gesture.esm.js +95 -0
- package/dist/event-dom/adapters/semantic-map/gesture.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/index.esm.js +8 -0
- package/dist/event-dom/adapters/semantic-map/index.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/keyboard.esm.js +20 -0
- package/dist/event-dom/adapters/semantic-map/keyboard.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/mouse.esm.js +35 -0
- package/dist/event-dom/adapters/semantic-map/mouse.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/pointer.esm.js +38 -0
- package/dist/event-dom/adapters/semantic-map/pointer.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/resolve.esm.js +49 -0
- package/dist/event-dom/adapters/semantic-map/resolve.esm.js.map +1 -0
- package/dist/event-dom/adapters/semantic-map/resolve.js +1 -1
- package/dist/event-dom/adapters/semantic-map/touch.esm.js +26 -0
- package/dist/event-dom/adapters/semantic-map/touch.esm.js.map +1 -0
- package/dist/event-dom/adapters/utils/index.esm.js +2 -0
- package/dist/event-dom/adapters/utils/index.esm.js.map +1 -0
- package/dist/event-dom/adapters/utils/validation.esm.js +67 -0
- package/dist/event-dom/adapters/utils/validation.esm.js.map +1 -0
- package/dist/event-dom/adapters/utils/validation.js +1 -1
- package/dist/event-dom/package.json +7 -7
- package/dist/event-dom/types/adapters/base.esm.js +2 -0
- package/dist/event-dom/types/adapters/base.esm.js.map +1 -0
- package/dist/event-dom/types/adapters/index.esm.js +4 -0
- package/dist/event-dom/types/adapters/index.esm.js.map +1 -0
- package/dist/event-dom/types/adapters/map.esm.js +5 -0
- package/dist/event-dom/types/adapters/map.esm.js.map +1 -0
- package/dist/event-dom/types/adapters/processors.esm.js +10 -0
- package/dist/event-dom/types/adapters/processors.esm.js.map +1 -0
- package/dist/event-dom/types/index.esm.js +10 -0
- package/dist/event-dom/types/index.esm.js.map +1 -0
- package/dist/events/package.json +3 -3
- package/dist/events/types/bus.esm.js +2 -0
- package/dist/events/types/bus.esm.js.map +1 -0
- package/dist/events/types/core.esm.js +2 -0
- package/dist/events/types/core.esm.js.map +1 -0
- package/dist/events/types/index.esm.js +9 -0
- package/dist/events/types/index.esm.js.map +1 -0
- package/dist/events/types/scope.esm.js +2 -0
- package/dist/events/types/scope.esm.js.map +1 -0
- package/dist/http/actions/align/DownloadInterceptor.esm.js +27 -0
- package/dist/http/actions/align/DownloadInterceptor.esm.js.map +1 -0
- package/dist/http/actions/align/index.esm.js +2 -0
- package/dist/http/actions/align/index.esm.js.map +1 -0
- package/dist/http/actions/exchange/FetchTransport.esm.js +56 -0
- package/dist/http/actions/exchange/FetchTransport.esm.js.map +1 -0
- package/dist/http/actions/exchange/XhrTransport.esm.js +82 -0
- package/dist/http/actions/exchange/XhrTransport.esm.js.map +1 -0
- package/dist/http/actions/exchange/index.esm.js +3 -0
- package/dist/http/actions/exchange/index.esm.js.map +1 -0
- package/dist/http/actions/prepare/CommonParamsEnricher.esm.js +29 -0
- package/dist/http/actions/prepare/CommonParamsEnricher.esm.js.map +1 -0
- package/dist/http/actions/prepare/TokenInjector.esm.js +34 -0
- package/dist/http/actions/prepare/TokenInjector.esm.js.map +1 -0
- package/dist/http/actions/prepare/UrlBuilder.esm.js +38 -0
- package/dist/http/actions/prepare/UrlBuilder.esm.js.map +1 -0
- package/dist/http/actions/prepare/index.esm.js +4 -0
- package/dist/http/actions/prepare/index.esm.js.map +1 -0
- package/dist/http/actions/process/DataParser.esm.js +39 -0
- package/dist/http/actions/process/DataParser.esm.js.map +1 -0
- package/dist/http/actions/process/ResponseAnalyzer.esm.js +40 -0
- package/dist/http/actions/process/ResponseAnalyzer.esm.js.map +1 -0
- package/dist/http/actions/process/index.esm.js +3 -0
- package/dist/http/actions/process/index.esm.js.map +1 -0
- package/dist/http/actions/register.esm.js +89 -0
- package/dist/http/actions/register.esm.js.map +1 -0
- package/dist/http/package.json +5 -5
- package/dist/http/types/http-context.esm.js +7 -0
- package/dist/http/types/http-context.esm.js.map +1 -0
- package/dist/http/types/http.esm.js +2 -0
- package/dist/http/types/http.esm.js.map +1 -0
- package/dist/http/types/index.esm.js +5 -0
- package/dist/http/types/index.esm.js.map +1 -0
- package/dist/i18n/package.json +1 -1
- package/dist/i18n/types/index.esm.js +5 -0
- package/dist/i18n/types/index.esm.js.map +1 -0
- package/dist/logger/package.json +1 -1
- package/dist/logger/sinks/console.esm.js +37 -0
- package/dist/logger/sinks/console.esm.js.map +1 -0
- package/dist/mime/package.json +2 -2
- package/dist/oauth2/OAuth2Manager.esm.js +1 -1
- package/dist/oauth2/OAuth2Manager.js +1 -1
- package/dist/oauth2/TokenRefreshHandler.d.ts +1 -1
- package/dist/oauth2/TokenRefreshHandler.esm.js +1 -1
- package/dist/oauth2/TokenRefreshHandler.js +1 -1
- package/dist/oauth2/package.json +5 -5
- package/dist/oauth2/register.esm.js +1 -1
- package/dist/oauth2/register.js +1 -1
- package/dist/pattern/package.json +2 -2
- package/dist/pipeline/executor.esm.js +1 -1
- package/dist/pipeline/executor.js +1 -1
- package/dist/pipeline/package.json +3 -3
- package/dist/pipeline/types.d.ts +1 -1
- package/dist/registry/package.json +2 -2
- package/dist/registry/registrars/DomainRegistrar.esm.js +116 -0
- package/dist/registry/registrars/DomainRegistrar.esm.js.map +1 -0
- package/dist/registry/registrars/HtmlTemplateRegistrar.esm.js +56 -0
- package/dist/registry/registrars/HtmlTemplateRegistrar.esm.js.map +1 -0
- package/dist/registry/registrars/RegistrarBase.esm.js +88 -0
- package/dist/registry/registrars/RegistrarBase.esm.js.map +1 -0
- package/dist/registry/registrars/SystemRegistrar.esm.js +101 -0
- package/dist/registry/registrars/SystemRegistrar.esm.js.map +1 -0
- package/dist/registry/registrars/errors.esm.js +122 -0
- package/dist/registry/registrars/errors.esm.js.map +1 -0
- package/dist/registry/registrars/index.esm.js +6 -0
- package/dist/registry/registrars/index.esm.js.map +1 -0
- package/dist/runtime/package.json +1 -1
- package/dist/schema/package.json +2 -2
- package/dist/schema/types/index.esm.js +8 -0
- package/dist/schema/types/index.esm.js.map +1 -0
- package/dist/schema/types/rule.esm.js +32 -0
- package/dist/schema/types/rule.esm.js.map +1 -0
- package/dist/schema/types/schema.esm.js +2 -0
- package/dist/schema/types/schema.esm.js.map +1 -0
- package/dist/system-abilities/interfaces/index.d.ts +1 -1
- package/dist/system-abilities/interfaces/index.esm.js +7 -0
- package/dist/system-abilities/interfaces/index.esm.js.map +1 -0
- package/dist/system-abilities/package.json +5 -5
- package/dist/system-abilities/system/DomEventsAbility.d.ts +1 -1
- package/dist/system-abilities/system/DomEventsAbility.esm.js +17 -0
- package/dist/system-abilities/system/DomEventsAbility.esm.js.map +1 -0
- package/dist/system-abilities/system/DomEventsAbility.js +1 -1
- package/dist/system-abilities/system/DomainAbility.d.ts +1 -1
- package/dist/system-abilities/system/DomainAbility.esm.js +30 -0
- package/dist/system-abilities/system/DomainAbility.esm.js.map +1 -0
- package/dist/system-abilities/system/DomainAbility.js +1 -1
- package/dist/system-abilities/system/EventAbility.d.ts +1 -1
- package/dist/system-abilities/system/EventAbility.esm.js +42 -0
- package/dist/system-abilities/system/EventAbility.esm.js.map +1 -0
- package/dist/system-abilities/system/EventAbility.js +1 -1
- package/dist/system-abilities/system/SystemAbility.d.ts +1 -1
- package/dist/system-abilities/system/SystemAbility.esm.js +22 -0
- package/dist/system-abilities/system/SystemAbility.esm.js.map +1 -0
- package/dist/system-abilities/system/SystemAbility.js +1 -1
- package/dist/system-abilities/system/index.esm.js +5 -0
- package/dist/system-abilities/system/index.esm.js.map +1 -0
- package/dist/system-abilities/types/abilities.esm.js +8 -0
- package/dist/system-abilities/types/abilities.esm.js.map +1 -0
- package/dist/system-abilities/types/index.esm.js +2 -0
- package/dist/system-abilities/types/index.esm.js.map +1 -0
- package/dist/task/errors/WorkerError.esm.js +21 -0
- package/dist/task/errors/WorkerError.esm.js.map +1 -0
- package/dist/task/errors/WorkerInitializationError.esm.js +33 -0
- package/dist/task/errors/WorkerInitializationError.esm.js.map +1 -0
- package/dist/task/errors/index.esm.js +8 -0
- package/dist/task/errors/index.esm.js.map +1 -0
- package/dist/task/hash-task/chunk/BrowserFileChunkProvider.esm.js +56 -0
- package/dist/task/hash-task/chunk/BrowserFileChunkProvider.esm.js.map +1 -0
- package/dist/task/hash-task/chunk/FileChunkProvider.esm.js +85 -0
- package/dist/task/hash-task/chunk/FileChunkProvider.esm.js.map +1 -0
- package/dist/task/hash-task/chunk/StreamChunkProvider.esm.js +55 -0
- package/dist/task/hash-task/chunk/StreamChunkProvider.esm.js.map +1 -0
- package/dist/task/hash-task/chunk/index.esm.js +4 -0
- package/dist/task/hash-task/chunk/index.esm.js.map +1 -0
- package/dist/task/hash-task/errors/ResourceNotAcquiredError.esm.js +21 -0
- package/dist/task/hash-task/errors/ResourceNotAcquiredError.esm.js.map +1 -0
- package/dist/task/hash-task/errors/ResourceUnavailableError.esm.js +21 -0
- package/dist/task/hash-task/errors/ResourceUnavailableError.esm.js.map +1 -0
- package/dist/task/hash-task/errors/TaskStateError.esm.js +22 -0
- package/dist/task/hash-task/errors/TaskStateError.esm.js.map +1 -0
- package/dist/task/hash-task/errors/index.esm.js +4 -0
- package/dist/task/hash-task/errors/index.esm.js.map +1 -0
- package/dist/task/hash-task/factory.esm.js +50 -0
- package/dist/task/hash-task/factory.esm.js.map +1 -0
- package/dist/task/hash-task/factory.js +1 -1
- package/dist/task/hash-task/hash/HashTask.d.ts +1 -1
- package/dist/task/hash-task/hash/HashTask.esm.js +148 -0
- package/dist/task/hash-task/hash/HashTask.esm.js.map +1 -0
- package/dist/task/hash-task/hash/HashTaskHealthMonitor.esm.js +129 -0
- package/dist/task/hash-task/hash/HashTaskHealthMonitor.esm.js.map +1 -0
- package/dist/task/hash-task/hash/HashTaskProgress.esm.js +58 -0
- package/dist/task/hash-task/hash/HashTaskProgress.esm.js.map +1 -0
- package/dist/task/hash-task/hash/HashTaskResources.esm.js +158 -0
- package/dist/task/hash-task/hash/HashTaskResources.esm.js.map +1 -0
- package/dist/task/hash-task/hash/HashTaskRunner.esm.js +234 -0
- package/dist/task/hash-task/hash/HashTaskRunner.esm.js.map +1 -0
- package/dist/task/hash-task/hash/HashTaskState.esm.js +203 -0
- package/dist/task/hash-task/hash/HashTaskState.esm.js.map +1 -0
- package/dist/task/hash-task/hash/index.esm.js +13 -0
- package/dist/task/hash-task/hash/index.esm.js.map +1 -0
- package/dist/task/hash-task/index.esm.js +13 -0
- package/dist/task/hash-task/index.esm.js.map +1 -0
- package/dist/task/hash-task/types/algorithm.esm.js +2 -0
- package/dist/task/hash-task/types/algorithm.esm.js.map +1 -0
- package/dist/task/hash-task/types/chunk.esm.js +2 -0
- package/dist/task/hash-task/types/chunk.esm.js.map +1 -0
- package/dist/task/hash-task/types/index.esm.js +5 -0
- package/dist/task/hash-task/types/index.esm.js.map +1 -0
- package/dist/task/hash-task/types/task.esm.js +2 -0
- package/dist/task/hash-task/types/task.esm.js.map +1 -0
- package/dist/task/hash-task/types/worker.esm.js +2 -0
- package/dist/task/hash-task/types/worker.esm.js.map +1 -0
- package/dist/task/hash-task/worker/BrowserWorkerHandle.esm.js +71 -0
- package/dist/task/hash-task/worker/BrowserWorkerHandle.esm.js.map +1 -0
- package/dist/task/hash-task/worker/BrowserWorkerPool.esm.js +24 -0
- package/dist/task/hash-task/worker/BrowserWorkerPool.esm.js.map +1 -0
- package/dist/task/hash-task/worker/DefaultWorkerHandle.esm.js +93 -0
- package/dist/task/hash-task/worker/DefaultWorkerHandle.esm.js.map +1 -0
- package/dist/task/hash-task/worker/DefaultWorkerPool.esm.js +96 -0
- package/dist/task/hash-task/worker/DefaultWorkerPool.esm.js.map +1 -0
- package/dist/task/hash-task/worker/HashWorker.esm.js +99 -0
- package/dist/task/hash-task/worker/HashWorker.esm.js.map +1 -0
- package/dist/task/hash-task/worker/HashWorkerProtocol.esm.js +2 -0
- package/dist/task/hash-task/worker/HashWorkerProtocol.esm.js.map +1 -0
- package/dist/task/hash-task/worker/WorkerHandle.esm.js +2 -0
- package/dist/task/hash-task/worker/WorkerHandle.esm.js.map +1 -0
- package/dist/task/hash-task/worker/WorkerPool.esm.js +2 -0
- package/dist/task/hash-task/worker/WorkerPool.esm.js.map +1 -0
- package/dist/task/hash-task/worker/WorkerScriptBuilder.esm.js +70 -0
- package/dist/task/hash-task/worker/WorkerScriptBuilder.esm.js.map +1 -0
- package/dist/task/hash-task/worker/index.esm.js +23 -0
- package/dist/task/hash-task/worker/index.esm.js.map +1 -0
- package/dist/task/package.json +5 -5
- package/dist/task/task/TaskQueue.esm.js +176 -0
- package/dist/task/task/TaskQueue.esm.js.map +1 -0
- package/dist/task/task/index.esm.js +8 -0
- package/dist/task/task/index.esm.js.map +1 -0
- package/dist/task/task/types.esm.js +2 -0
- package/dist/task/task/types.esm.js.map +1 -0
- package/dist/task/worker/SimpleWorkerManager.esm.js +57 -0
- package/dist/task/worker/SimpleWorkerManager.esm.js.map +1 -0
- package/dist/task/worker/WorkerManagerBase.esm.js +87 -0
- package/dist/task/worker/WorkerManagerBase.esm.js.map +1 -0
- package/dist/task/worker/index.esm.js +9 -0
- package/dist/task/worker/index.esm.js.map +1 -0
- package/dist/task/worker/types.esm.js +2 -0
- package/dist/task/worker/types.esm.js.map +1 -0
- package/dist/types/package.json +1 -1
- package/dist/utils/array/base/duplicates.esm.js +36 -0
- package/dist/utils/array/base/duplicates.esm.js.map +1 -0
- package/dist/utils/array/base/index.esm.js +3 -0
- package/dist/utils/array/base/index.esm.js.map +1 -0
- package/dist/utils/array/base/transform.esm.js +40 -0
- package/dist/utils/array/base/transform.esm.js.map +1 -0
- package/dist/utils/array/collection/chunk.esm.js +19 -0
- package/dist/utils/array/collection/chunk.esm.js.map +1 -0
- package/dist/utils/array/collection/flatten.esm.js +31 -0
- package/dist/utils/array/collection/flatten.esm.js.map +1 -0
- package/dist/utils/array/collection/groupBy.esm.js +34 -0
- package/dist/utils/array/collection/groupBy.esm.js.map +1 -0
- package/dist/utils/array/collection/index.esm.js +4 -0
- package/dist/utils/array/collection/index.esm.js.map +1 -0
- package/dist/utils/array/index.esm.js +7 -0
- package/dist/utils/array/index.esm.js.map +1 -0
- package/dist/utils/array/random/index.esm.js +3 -0
- package/dist/utils/array/random/index.esm.js.map +1 -0
- package/dist/utils/array/random/sample.esm.js +29 -0
- package/dist/utils/array/random/sample.esm.js.map +1 -0
- package/dist/utils/array/random/shuffle.esm.js +19 -0
- package/dist/utils/array/random/shuffle.esm.js.map +1 -0
- package/dist/utils/array/search/find.esm.js +26 -0
- package/dist/utils/array/search/find.esm.js.map +1 -0
- package/dist/utils/array/search/includes.esm.js +21 -0
- package/dist/utils/array/search/includes.esm.js.map +1 -0
- package/dist/utils/array/search/index.esm.js +3 -0
- package/dist/utils/array/search/index.esm.js.map +1 -0
- package/dist/utils/array/set/difference.esm.js +106 -0
- package/dist/utils/array/set/difference.esm.js.map +1 -0
- package/dist/utils/array/set/index.esm.js +4 -0
- package/dist/utils/array/set/index.esm.js.map +1 -0
- package/dist/utils/array/set/intersection.esm.js +31 -0
- package/dist/utils/array/set/intersection.esm.js.map +1 -0
- package/dist/utils/array/set/union.esm.js +35 -0
- package/dist/utils/array/set/union.esm.js.map +1 -0
- package/dist/utils/array/sort/index.esm.js +3 -0
- package/dist/utils/array/sort/index.esm.js.map +1 -0
- package/dist/utils/array/sort/sort.esm.js +84 -0
- package/dist/utils/array/sort/sort.esm.js.map +1 -0
- package/dist/utils/array/sort/tree.esm.js +67 -0
- package/dist/utils/array/sort/tree.esm.js.map +1 -0
- package/dist/utils/color/generateColorShades.esm.js +23 -0
- package/dist/utils/color/generateColorShades.esm.js.map +1 -0
- package/dist/utils/color/hexToHsl.esm.js +43 -0
- package/dist/utils/color/hexToHsl.esm.js.map +1 -0
- package/dist/utils/color/hexToRgb.esm.js +22 -0
- package/dist/utils/color/hexToRgb.esm.js.map +1 -0
- package/dist/utils/color/hslToHex.esm.js +23 -0
- package/dist/utils/color/hslToHex.esm.js.map +1 -0
- package/dist/utils/color/hslToRgb.esm.js +39 -0
- package/dist/utils/color/hslToRgb.esm.js.map +1 -0
- package/dist/utils/color/index.esm.js +8 -0
- package/dist/utils/color/index.esm.js.map +1 -0
- package/dist/utils/color/rgbToHex.esm.js +15 -0
- package/dist/utils/color/rgbToHex.esm.js.map +1 -0
- package/dist/utils/color/rgbToHsl.esm.js +62 -0
- package/dist/utils/color/rgbToHsl.esm.js.map +1 -0
- package/dist/utils/cookie/get.esm.js +11 -0
- package/dist/utils/cookie/get.esm.js.map +1 -0
- package/dist/utils/cookie/getAll.esm.js +19 -0
- package/dist/utils/cookie/getAll.esm.js.map +1 -0
- package/dist/utils/cookie/getBoolean.esm.js +17 -0
- package/dist/utils/cookie/getBoolean.esm.js.map +1 -0
- package/dist/utils/cookie/getNumber.esm.js +17 -0
- package/dist/utils/cookie/getNumber.esm.js.map +1 -0
- package/dist/utils/cookie/has.esm.js +13 -0
- package/dist/utils/cookie/has.esm.js.map +1 -0
- package/dist/utils/cookie/index.esm.js +9 -0
- package/dist/utils/cookie/index.esm.js.map +1 -0
- package/dist/utils/cookie/remove.esm.js +22 -0
- package/dist/utils/cookie/remove.esm.js.map +1 -0
- package/dist/utils/cookie/set.esm.js +54 -0
- package/dist/utils/cookie/set.esm.js.map +1 -0
- package/dist/utils/cookie/setJson.esm.js +17 -0
- package/dist/utils/cookie/setJson.esm.js.map +1 -0
- package/dist/utils/date/calculation/days.esm.js +70 -0
- package/dist/utils/date/calculation/days.esm.js.map +1 -0
- package/dist/utils/date/calculation/index.esm.js +9 -0
- package/dist/utils/date/calculation/index.esm.js.map +1 -0
- package/dist/utils/date/calculation/months.esm.js +42 -0
- package/dist/utils/date/calculation/months.esm.js.map +1 -0
- package/dist/utils/date/calculation/quarters.esm.js +10 -0
- package/dist/utils/date/calculation/quarters.esm.js.map +1 -0
- package/dist/utils/date/calculation/years.esm.js +52 -0
- package/dist/utils/date/calculation/years.esm.js.map +1 -0
- package/dist/utils/date/calendar.esm.js +95 -0
- package/dist/utils/date/calendar.esm.js.map +1 -0
- package/dist/utils/date/format.esm.js +171 -0
- package/dist/utils/date/format.esm.js.map +1 -0
- package/dist/utils/date/index.esm.js +9 -0
- package/dist/utils/date/index.esm.js.map +1 -0
- package/dist/utils/date/utils.esm.js +113 -0
- package/dist/utils/date/utils.esm.js.map +1 -0
- package/dist/utils/geometry/align.esm.js +95 -0
- package/dist/utils/geometry/align.esm.js.map +1 -0
- package/dist/utils/geometry/clamp.esm.js +26 -0
- package/dist/utils/geometry/clamp.esm.js.map +1 -0
- package/dist/utils/geometry/index.esm.js +9 -0
- package/dist/utils/geometry/index.esm.js.map +1 -0
- package/dist/utils/geometry/point.esm.js +50 -0
- package/dist/utils/geometry/point.esm.js.map +1 -0
- package/dist/utils/geometry/rect.esm.js +21 -0
- package/dist/utils/geometry/rect.esm.js.map +1 -0
- package/dist/utils/geometry/snap.esm.js +28 -0
- package/dist/utils/geometry/snap.esm.js.map +1 -0
- package/dist/utils/geometry/transform/apply.esm.js +36 -0
- package/dist/utils/geometry/transform/apply.esm.js.map +1 -0
- package/dist/utils/geometry/transform/index.esm.js +6 -0
- package/dist/utils/geometry/transform/index.esm.js.map +1 -0
- package/dist/utils/geometry/transform/matrix.esm.js +24 -0
- package/dist/utils/geometry/transform/matrix.esm.js.map +1 -0
- package/dist/utils/geometry/transform/rotate.esm.js +8 -0
- package/dist/utils/geometry/transform/rotate.esm.js.map +1 -0
- package/dist/utils/geometry/transform/scale.esm.js +6 -0
- package/dist/utils/geometry/transform/scale.esm.js.map +1 -0
- package/dist/utils/geometry/transform/translate.esm.js +4 -0
- package/dist/utils/geometry/transform/translate.esm.js.map +1 -0
- package/dist/utils/geometry/types.esm.js +2 -0
- package/dist/utils/geometry/types.esm.js.map +1 -0
- package/dist/utils/geometry/vector.esm.js +28 -0
- package/dist/utils/geometry/vector.esm.js.map +1 -0
- package/dist/utils/number/base.esm.js +25 -0
- package/dist/utils/number/base.esm.js.map +1 -0
- package/dist/utils/number/format.esm.js +87 -0
- package/dist/utils/number/format.esm.js.map +1 -0
- package/dist/utils/number/index.esm.js +3 -0
- package/dist/utils/number/index.esm.js.map +1 -0
- package/dist/utils/object/base.esm.js +18 -0
- package/dist/utils/object/base.esm.js.map +1 -0
- package/dist/utils/object/clone.esm.js +81 -0
- package/dist/utils/object/clone.esm.js.map +1 -0
- package/dist/utils/object/index.esm.js +5 -0
- package/dist/utils/object/index.esm.js.map +1 -0
- package/dist/utils/object/iterate.esm.js +31 -0
- package/dist/utils/object/iterate.esm.js.map +1 -0
- package/dist/utils/object/properties.esm.js +133 -0
- package/dist/utils/object/properties.esm.js.map +1 -0
- package/dist/utils/package.json +1 -1
- package/dist/utils/string/base.esm.js +61 -0
- package/dist/utils/string/base.esm.js.map +1 -0
- package/dist/utils/string/css.esm.js +35 -0
- package/dist/utils/string/css.esm.js.map +1 -0
- package/dist/utils/string/format.esm.js +94 -0
- package/dist/utils/string/format.esm.js.map +1 -0
- package/dist/utils/string/id.esm.js +40 -0
- package/dist/utils/string/id.esm.js.map +1 -0
- package/dist/utils/string/index.esm.js +12 -0
- package/dist/utils/string/index.esm.js.map +1 -0
- package/dist/utils/string/plural.esm.js +68 -0
- package/dist/utils/string/plural.esm.js.map +1 -0
- package/dist/utils/time/after.esm.js +35 -0
- package/dist/utils/time/after.esm.js.map +1 -0
- package/dist/utils/time/delay.esm.js +12 -0
- package/dist/utils/time/delay.esm.js.map +1 -0
- package/dist/utils/time/index.esm.js +9 -0
- package/dist/utils/time/index.esm.js.map +1 -0
- package/dist/utils/time/repeat.esm.js +34 -0
- package/dist/utils/time/repeat.esm.js.map +1 -0
- package/dist/utils/time/types.esm.js +2 -0
- package/dist/utils/time/types.esm.js.map +1 -0
- package/dist/utils/units/angle.esm.js +17 -0
- package/dist/utils/units/angle.esm.js.map +1 -0
- package/dist/utils/units/format.esm.js +41 -0
- package/dist/utils/units/format.esm.js.map +1 -0
- package/dist/utils/units/index.esm.js +9 -0
- package/dist/utils/units/index.esm.js.map +1 -0
- package/dist/utils/units/length.esm.js +54 -0
- package/dist/utils/units/length.esm.js.map +1 -0
- package/dist/utils/units/parse.esm.js +16 -0
- package/dist/utils/units/parse.esm.js.map +1 -0
- package/dist/utils/units/percent.esm.js +19 -0
- package/dist/utils/units/percent.esm.js.map +1 -0
- package/dist/utils/units/resolve.esm.js +49 -0
- package/dist/utils/units/resolve.esm.js.map +1 -0
- package/dist/utils/units/time.esm.js +17 -0
- package/dist/utils/units/time.esm.js.map +1 -0
- package/dist/utils/units/types.esm.js +2 -0
- package/dist/utils/units/types.esm.js.map +1 -0
- package/dist/validation/core/ValidatorRegistrar.esm.js +78 -0
- package/dist/validation/core/ValidatorRegistrar.esm.js.map +1 -0
- package/dist/validation/core/executor.d.ts +2 -2
- package/dist/validation/core/executor.esm.js +87 -0
- package/dist/validation/core/executor.esm.js.map +1 -0
- package/dist/validation/core/executor.js +1 -1
- package/dist/validation/core/index.esm.js +4 -0
- package/dist/validation/core/index.esm.js.map +1 -0
- package/dist/validation/core/validate.esm.js +61 -0
- package/dist/validation/core/validate.esm.js.map +1 -0
- package/dist/validation/engine/index.esm.js +2 -0
- package/dist/validation/engine/index.esm.js.map +1 -0
- package/dist/validation/engine/validate.esm.js +48 -0
- package/dist/validation/engine/validate.esm.js.map +1 -0
- package/dist/validation/errors/DuplicateValidatorError.d.ts +1 -1
- package/dist/validation/errors/DuplicateValidatorError.esm.js +30 -0
- package/dist/validation/errors/DuplicateValidatorError.esm.js.map +1 -0
- package/dist/validation/errors/DuplicateValidatorError.js +1 -1
- package/dist/validation/errors/ValidationError.d.ts +1 -1
- package/dist/validation/errors/ValidationError.esm.js +64 -0
- package/dist/validation/errors/ValidationError.esm.js.map +1 -0
- package/dist/validation/errors/ValidationError.js +1 -1
- package/dist/validation/errors/ValidationTypeNotDefinedError.d.ts +1 -1
- package/dist/validation/errors/ValidationTypeNotDefinedError.esm.js +26 -0
- package/dist/validation/errors/ValidationTypeNotDefinedError.esm.js.map +1 -0
- package/dist/validation/errors/ValidationTypeNotDefinedError.js +1 -1
- package/dist/validation/errors/ValidatorNotFoundError.d.ts +1 -1
- package/dist/validation/errors/ValidatorNotFoundError.esm.js +31 -0
- package/dist/validation/errors/ValidatorNotFoundError.esm.js.map +1 -0
- package/dist/validation/errors/ValidatorNotFoundError.js +1 -1
- package/dist/validation/errors/builder.esm.js +306 -0
- package/dist/validation/errors/builder.esm.js.map +1 -0
- package/dist/validation/errors/codes.esm.js +28 -0
- package/dist/validation/errors/codes.esm.js.map +1 -0
- package/dist/validation/errors/index.esm.js +7 -0
- package/dist/validation/errors/index.esm.js.map +1 -0
- package/dist/validation/package.json +4 -4
- package/dist/validation/processors/array/children.esm.js +36 -0
- package/dist/validation/processors/array/children.esm.js.map +1 -0
- package/dist/validation/processors/array/entries.esm.js +58 -0
- package/dist/validation/processors/array/entries.esm.js.map +1 -0
- package/dist/validation/processors/array/excludes.esm.js +36 -0
- package/dist/validation/processors/array/excludes.esm.js.map +1 -0
- package/dist/validation/processors/array/includes.esm.js +36 -0
- package/dist/validation/processors/array/includes.esm.js.map +1 -0
- package/dist/validation/processors/array/index.esm.js +2 -0
- package/dist/validation/processors/array/index.esm.js.map +1 -0
- package/dist/validation/processors/array/length.esm.js +23 -0
- package/dist/validation/processors/array/length.esm.js.map +1 -0
- package/dist/validation/processors/array/type.esm.js +11 -0
- package/dist/validation/processors/array/type.esm.js.map +1 -0
- package/dist/validation/processors/array/unique.esm.js +22 -0
- package/dist/validation/processors/array/unique.esm.js.map +1 -0
- package/dist/validation/processors/array/uniqueBy.esm.js +42 -0
- package/dist/validation/processors/array/uniqueBy.esm.js.map +1 -0
- package/dist/validation/processors/boolean/entries.esm.js +10 -0
- package/dist/validation/processors/boolean/entries.esm.js.map +1 -0
- package/dist/validation/processors/boolean/index.esm.js +2 -0
- package/dist/validation/processors/boolean/index.esm.js.map +1 -0
- package/dist/validation/processors/boolean/type.esm.js +12 -0
- package/dist/validation/processors/boolean/type.esm.js.map +1 -0
- package/dist/validation/processors/common/context.esm.js +22 -0
- package/dist/validation/processors/common/context.esm.js.map +1 -0
- package/dist/validation/processors/common/entries.esm.js +42 -0
- package/dist/validation/processors/common/entries.esm.js.map +1 -0
- package/dist/validation/processors/common/index.esm.js +2 -0
- package/dist/validation/processors/common/index.esm.js.map +1 -0
- package/dist/validation/processors/common/presence.esm.js +26 -0
- package/dist/validation/processors/common/presence.esm.js.map +1 -0
- package/dist/validation/processors/common/rule-align.esm.js +28 -0
- package/dist/validation/processors/common/rule-align.esm.js.map +1 -0
- package/dist/validation/processors/common/transform.esm.js +20 -0
- package/dist/validation/processors/common/transform.esm.js.map +1 -0
- package/dist/validation/processors/common/trim.esm.js +19 -0
- package/dist/validation/processors/common/trim.esm.js.map +1 -0
- package/dist/validation/processors/compare/compare.esm.js +34 -0
- package/dist/validation/processors/compare/compare.esm.js.map +1 -0
- package/dist/validation/processors/compare/entries.esm.js +10 -0
- package/dist/validation/processors/compare/entries.esm.js.map +1 -0
- package/dist/validation/processors/compare/index.esm.js +2 -0
- package/dist/validation/processors/compare/index.esm.js.map +1 -0
- package/dist/validation/processors/date/entries.esm.js +42 -0
- package/dist/validation/processors/date/entries.esm.js.map +1 -0
- package/dist/validation/processors/date/excludes.esm.js +20 -0
- package/dist/validation/processors/date/excludes.esm.js.map +1 -0
- package/dist/validation/processors/date/includes.esm.js +20 -0
- package/dist/validation/processors/date/includes.esm.js.map +1 -0
- package/dist/validation/processors/date/index.esm.js +2 -0
- package/dist/validation/processors/date/index.esm.js.map +1 -0
- package/dist/validation/processors/date/is.esm.js +63 -0
- package/dist/validation/processors/date/is.esm.js.map +1 -0
- package/dist/validation/processors/date/type.esm.js +14 -0
- package/dist/validation/processors/date/type.esm.js.map +1 -0
- package/dist/validation/processors/date/weekend.esm.js +22 -0
- package/dist/validation/processors/date/weekend.esm.js.map +1 -0
- package/dist/validation/processors/file/entries.esm.js +10 -0
- package/dist/validation/processors/file/entries.esm.js.map +1 -0
- package/dist/validation/processors/file/file.esm.js +69 -0
- package/dist/validation/processors/file/file.esm.js.map +1 -0
- package/dist/validation/processors/file/index.esm.js +2 -0
- package/dist/validation/processors/file/index.esm.js.map +1 -0
- package/dist/validation/processors/format/entries.esm.js +11 -0
- package/dist/validation/processors/format/entries.esm.js.map +1 -0
- package/dist/validation/processors/format/format.esm.js +30 -0
- package/dist/validation/processors/format/format.esm.js.map +1 -0
- package/dist/validation/processors/format/index.esm.js +2 -0
- package/dist/validation/processors/format/index.esm.js.map +1 -0
- package/dist/validation/processors/index.esm.js +12 -0
- package/dist/validation/processors/index.esm.js.map +1 -0
- package/dist/validation/processors/number/entries.esm.js +47 -0
- package/dist/validation/processors/number/entries.esm.js.map +1 -0
- package/dist/validation/processors/number/excludes.esm.js +18 -0
- package/dist/validation/processors/number/excludes.esm.js.map +1 -0
- package/dist/validation/processors/number/includes.esm.js +18 -0
- package/dist/validation/processors/number/includes.esm.js.map +1 -0
- package/dist/validation/processors/number/index.esm.js +2 -0
- package/dist/validation/processors/number/index.esm.js.map +1 -0
- package/dist/validation/processors/number/is.esm.js +29 -0
- package/dist/validation/processors/number/is.esm.js.map +1 -0
- package/dist/validation/processors/number/range.esm.js +14 -0
- package/dist/validation/processors/number/range.esm.js.map +1 -0
- package/dist/validation/processors/number/type.esm.js +21 -0
- package/dist/validation/processors/number/type.esm.js.map +1 -0
- package/dist/validation/processors/object/entries.esm.js +29 -0
- package/dist/validation/processors/object/entries.esm.js.map +1 -0
- package/dist/validation/processors/object/index.esm.js +2 -0
- package/dist/validation/processors/object/index.esm.js.map +1 -0
- package/dist/validation/processors/object/properties.esm.js +40 -0
- package/dist/validation/processors/object/properties.esm.js.map +1 -0
- package/dist/validation/processors/object/required-fields.esm.js +27 -0
- package/dist/validation/processors/object/required-fields.esm.js.map +1 -0
- package/dist/validation/processors/object/type.esm.js +15 -0
- package/dist/validation/processors/object/type.esm.js.map +1 -0
- package/dist/validation/processors/password/entries.d.ts +2 -2
- package/dist/validation/processors/password/entries.esm.js +10 -0
- package/dist/validation/processors/password/entries.esm.js.map +1 -0
- package/dist/validation/processors/password/entries.js +1 -1
- package/dist/validation/processors/password/index.esm.js +2 -0
- package/dist/validation/processors/password/index.esm.js.map +1 -0
- package/dist/validation/processors/password/password.esm.js +21 -0
- package/dist/validation/processors/password/password.esm.js.map +1 -0
- package/dist/validation/processors/split/entries.esm.js +11 -0
- package/dist/validation/processors/split/entries.esm.js.map +1 -0
- package/dist/validation/processors/split/index.esm.js +2 -0
- package/dist/validation/processors/split/index.esm.js.map +1 -0
- package/dist/validation/processors/split/split.esm.js +40 -0
- package/dist/validation/processors/split/split.esm.js.map +1 -0
- package/dist/validation/processors/string/entries.esm.js +38 -0
- package/dist/validation/processors/string/entries.esm.js.map +1 -0
- package/dist/validation/processors/string/excludes.esm.js +18 -0
- package/dist/validation/processors/string/excludes.esm.js.map +1 -0
- package/dist/validation/processors/string/includes.esm.js +18 -0
- package/dist/validation/processors/string/includes.esm.js.map +1 -0
- package/dist/validation/processors/string/index.esm.js +2 -0
- package/dist/validation/processors/string/index.esm.js.map +1 -0
- package/dist/validation/processors/string/length.esm.js +18 -0
- package/dist/validation/processors/string/length.esm.js.map +1 -0
- package/dist/validation/processors/string/type.esm.js +12 -0
- package/dist/validation/processors/string/type.esm.js.map +1 -0
- package/dist/validation/types/base.esm.js +29 -0
- package/dist/validation/types/base.esm.js.map +1 -0
- package/dist/validation/types/context.esm.js +2 -0
- package/dist/validation/types/context.esm.js.map +1 -0
- package/dist/validation/types/index.esm.js +13 -0
- package/dist/validation/types/index.esm.js.map +1 -0
- package/dist/validation/types/processor.esm.js +23 -0
- package/dist/validation/types/processor.esm.js.map +1 -0
- package/dist/validation/types/validate.esm.js +2 -0
- package/dist/validation/types/validate.esm.js.map +1 -0
- package/dist/validation/utils/compare.esm.js +144 -0
- package/dist/validation/utils/compare.esm.js.map +1 -0
- package/dist/validation/utils/index.esm.js +3 -0
- package/dist/validation/utils/index.esm.js.map +1 -0
- package/dist/validation/utils/pattern.esm.js +15 -0
- package/dist/validation/utils/pattern.esm.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashTask.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HashTaskHealthMonitor类
|
|
3
|
+
*
|
|
4
|
+
* 该类只负责监控与判断:
|
|
5
|
+
* - 是否长时间无进展
|
|
6
|
+
* - Worker 是否假活着
|
|
7
|
+
* - 内存是否未释放
|
|
8
|
+
* - 是否触发 fail-fast
|
|
9
|
+
*
|
|
10
|
+
* 明确不负责:
|
|
11
|
+
* - 不直接取消任务
|
|
12
|
+
* - 不直接重试
|
|
13
|
+
* - 不处理UI
|
|
14
|
+
* - 不做日志聚合
|
|
15
|
+
*
|
|
16
|
+
* 它只发出"健康事件"。
|
|
17
|
+
*
|
|
18
|
+
* 设计原则:
|
|
19
|
+
* - 只负责监控和判断
|
|
20
|
+
* - 不直接干预任务执行
|
|
21
|
+
* - 通过事件机制通知外部
|
|
22
|
+
*/
|
|
23
|
+
export class HashTaskHealthMonitor {
|
|
24
|
+
/**
|
|
25
|
+
* 构造函数
|
|
26
|
+
*
|
|
27
|
+
* @param state 任务状态管理器
|
|
28
|
+
* @param progress 任务进度管理器
|
|
29
|
+
* @param resources 任务资源管理器
|
|
30
|
+
* @param options 健康监控选项
|
|
31
|
+
*/
|
|
32
|
+
constructor(state, progress, resources, options = {}) {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
this.state = state;
|
|
35
|
+
this.progress = progress;
|
|
36
|
+
this.resources = resources;
|
|
37
|
+
this.listeners = new Set();
|
|
38
|
+
this.lastProgressBytes = 0;
|
|
39
|
+
this.lastProgressTime = Date.now();
|
|
40
|
+
this.stallThresholdMs = (_a = options.stallThresholdMs) !== null && _a !== void 0 ? _a : 10000;
|
|
41
|
+
this.intervalMs = (_b = options.intervalMs) !== null && _b !== void 0 ? _b : 1000;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 开始健康监控
|
|
45
|
+
*
|
|
46
|
+
* 启动定时器,定期检查任务健康状态
|
|
47
|
+
*
|
|
48
|
+
* 检查包括:
|
|
49
|
+
* - 任务进度是否卡死
|
|
50
|
+
* - Worker是否无响应
|
|
51
|
+
* - 资源是否泄漏
|
|
52
|
+
*/
|
|
53
|
+
start() {
|
|
54
|
+
if (this.timer)
|
|
55
|
+
return;
|
|
56
|
+
this.timer = setInterval(() => this.check(), this.intervalMs);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 停止健康监控
|
|
60
|
+
*
|
|
61
|
+
* 清除定时器,停止健康检查
|
|
62
|
+
*/
|
|
63
|
+
stop() {
|
|
64
|
+
if (this.timer) {
|
|
65
|
+
clearInterval(this.timer);
|
|
66
|
+
this.timer = undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 添加健康事件监听器
|
|
71
|
+
*
|
|
72
|
+
* @param listener 健康事件监听器
|
|
73
|
+
* @returns 用于移除监听器的函数
|
|
74
|
+
*/
|
|
75
|
+
onEvent(listener) {
|
|
76
|
+
this.listeners.add(listener);
|
|
77
|
+
return () => this.listeners.delete(listener);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 触发健康事件
|
|
81
|
+
*
|
|
82
|
+
* @param event 健康事件
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
emit(event) {
|
|
86
|
+
this.listeners.forEach(fn => fn(event));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 执行健康检查
|
|
90
|
+
*
|
|
91
|
+
* 检查任务进度是否卡死、资源是否泄漏等情况
|
|
92
|
+
*
|
|
93
|
+
* 检查内容包括:
|
|
94
|
+
* 1. 进度卡死检测:检查任务是否在stallThresholdMs时间内无进展
|
|
95
|
+
* 2. 资源泄漏检测:检查任务结束后资源是否被正确释放
|
|
96
|
+
*
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
check() {
|
|
100
|
+
const now = Date.now();
|
|
101
|
+
const stateValue = this.state.value;
|
|
102
|
+
const progressSnap = this.progress.snapshot();
|
|
103
|
+
const resourceSnap = this.resources.snapshot();
|
|
104
|
+
// ===== 1. 检测进度卡死 =====
|
|
105
|
+
if (stateValue === 'running') {
|
|
106
|
+
if (progressSnap.processedBytes !== this.lastProgressBytes) {
|
|
107
|
+
this.lastProgressBytes = progressSnap.processedBytes;
|
|
108
|
+
this.lastProgressTime = now;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
const stalledFor = now - this.lastProgressTime;
|
|
112
|
+
if (stalledFor > this.stallThresholdMs) {
|
|
113
|
+
this.emit({ type: 'stalled', durationMs: stalledFor });
|
|
114
|
+
if (resourceSnap.hasWorker) {
|
|
115
|
+
this.emit({ type: 'worker_unresponsive' });
|
|
116
|
+
}
|
|
117
|
+
// 防止重复刷事件
|
|
118
|
+
this.lastProgressTime = now;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// ===== 2. 检测资源泄漏 =====
|
|
123
|
+
if ((stateValue === 'completed' || stateValue === 'failed' || stateValue === 'cancelled') &&
|
|
124
|
+
resourceSnap.hasWorker) {
|
|
125
|
+
this.emit({ type: 'resource_leak' });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=HashTaskHealthMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashTaskHealthMonitor.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskHealthMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 哈希任务进度管理类
|
|
3
|
+
*
|
|
4
|
+
* 负责跟踪和管理哈希任务的执行进度
|
|
5
|
+
*
|
|
6
|
+
* 设计原则:
|
|
7
|
+
* - 仅负责进度跟踪和快照生成
|
|
8
|
+
* - 不关心数据块的来源
|
|
9
|
+
* - 不关心哈希算法的实现
|
|
10
|
+
* - 不管理Worker或任务状态
|
|
11
|
+
*/
|
|
12
|
+
export class HashTaskProgress {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.processedBytes = 0;
|
|
15
|
+
this.processedChunks = 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 初始化进度(可选总量)
|
|
19
|
+
*
|
|
20
|
+
* @param totalBytes 总字节数,可选参数
|
|
21
|
+
*/
|
|
22
|
+
init(totalBytes) {
|
|
23
|
+
this.totalBytes = totalBytes;
|
|
24
|
+
this.processedBytes = 0;
|
|
25
|
+
this.processedChunks = 0;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 处理数据块,更新进度
|
|
29
|
+
*
|
|
30
|
+
* 该方法会更新已处理的块数和字节数
|
|
31
|
+
*
|
|
32
|
+
* @param chunk 要处理的数据块,包含字节数信息
|
|
33
|
+
*/
|
|
34
|
+
onChunk(chunk) {
|
|
35
|
+
this.processedChunks += 1;
|
|
36
|
+
this.processedBytes += chunk.data.byteLength;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 生成只读快照
|
|
40
|
+
*
|
|
41
|
+
* 计算当前进度百分比并返回进度快照
|
|
42
|
+
*
|
|
43
|
+
* @returns 任务进度快照
|
|
44
|
+
*/
|
|
45
|
+
snapshot() {
|
|
46
|
+
// ✅ 符合原则:在生成快照时计算百分比(0~1)
|
|
47
|
+
const progress = this.totalBytes !== undefined && this.totalBytes > 0
|
|
48
|
+
? Math.min(this.processedBytes / this.totalBytes, 1)
|
|
49
|
+
: undefined;
|
|
50
|
+
return {
|
|
51
|
+
progress,
|
|
52
|
+
processedBytes: this.processedBytes,
|
|
53
|
+
totalBytes: this.totalBytes,
|
|
54
|
+
processedChunks: this.processedChunks,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=HashTaskProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashTaskProgress.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskProgress.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAA7B;QACY,mBAAc,GAAG,CAAC,CAAC;QACnB,oBAAe,GAAG,CAAC,CAAC;IA+ChC,CAAC;IA5CG;;;;OAIG;IACH,IAAI,CAAC,UAAmB;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,KAAuC;QAC3C,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACJ,0BAA0B;QAC1B,MAAM,QAAQ,GACV,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,SAAS,CAAC;QAEpB,OAAO;YACH,QAAQ;YACR,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;SACxC,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { ResourceUnavailableError } from '../errors';
|
|
2
|
+
import { ResourceNotAcquiredError } from '../errors/ResourceNotAcquiredError';
|
|
3
|
+
/**
|
|
4
|
+
* 哈希任务资源管理类
|
|
5
|
+
*
|
|
6
|
+
* 负责管理哈希任务所需的资源,包括内存和Worker。
|
|
7
|
+
* 这是一个资源管理器,用于在执行哈希任务时获取和释放必要的计算资源。
|
|
8
|
+
* 设计原则是单一职责,只负责资源的申请和释放,不涉及具体的哈希计算逻辑。
|
|
9
|
+
*
|
|
10
|
+
* 设计原则:
|
|
11
|
+
* - 仅负责资源的申请与释放
|
|
12
|
+
* - 不涉及具体哈希计算逻辑
|
|
13
|
+
* - 保证资源操作的原子性
|
|
14
|
+
* - 提供资源状态快照
|
|
15
|
+
*/
|
|
16
|
+
export class HashTaskResources {
|
|
17
|
+
/**
|
|
18
|
+
* 构造函数
|
|
19
|
+
*
|
|
20
|
+
* @param memoryManager 内存管理器,用于申请和释放内存资源
|
|
21
|
+
* @param workerPool Worker池,用于获取和归还Worker线程
|
|
22
|
+
*/
|
|
23
|
+
constructor(memoryManager, workerPool) {
|
|
24
|
+
this.memoryManager = memoryManager;
|
|
25
|
+
this.workerPool = workerPool;
|
|
26
|
+
this.acquired = false; // 标记资源是否已成功获取
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 核心:申请计算所需的资源(内存 + 线程)
|
|
30
|
+
*
|
|
31
|
+
* 此方法用于为哈希任务申请必要的计算资源。如果资源已经获取,则直接返回。
|
|
32
|
+
* 方法具有原子性,要么成功获取所有资源,要么在失败时释放已获取的资源。
|
|
33
|
+
*
|
|
34
|
+
* @param scriptSource 经过 Builder 转换后的算法源码字符串,将被注入到Worker中
|
|
35
|
+
* @param memoryBytes 需要锁定的内存预算,以字节为单位
|
|
36
|
+
* @returns 当资源成功获取后解析的Promise
|
|
37
|
+
* @throws 当资源申请失败时,会抛出相应的错误,并确保已申请的资源被释放
|
|
38
|
+
*/
|
|
39
|
+
async acquire(scriptSource, memoryBytes) {
|
|
40
|
+
if (this.acquired)
|
|
41
|
+
return; // 防止重复获取资源
|
|
42
|
+
try {
|
|
43
|
+
// 按顺序获取内存和Worker资源
|
|
44
|
+
await this.acquireMemory(memoryBytes);
|
|
45
|
+
await this.acquireWorker(scriptSource);
|
|
46
|
+
this.acquired = true; // 标记资源已获取
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
// 如果获取过程中出现错误,释放已获取的资源
|
|
50
|
+
await this.release();
|
|
51
|
+
throw err; // 重新抛出原始错误
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 专用方法:获取内存资源
|
|
56
|
+
*
|
|
57
|
+
* 尝试从内存管理器获取指定数量的字节,如果失败则抛出内存资源不可用错误
|
|
58
|
+
*
|
|
59
|
+
* @param memoryBytes 需要获取的内存字节数
|
|
60
|
+
* @throws ResourceUnavailableError 如果内存不足或获取失败
|
|
61
|
+
*/
|
|
62
|
+
async acquireMemory(memoryBytes) {
|
|
63
|
+
try {
|
|
64
|
+
this.memoryTicket = await this.memoryManager.acquire(memoryBytes);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
throw new ResourceUnavailableError('memory', {
|
|
68
|
+
requestedBytes: memoryBytes,
|
|
69
|
+
originalError: err instanceof Error ? err.message : err,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 专用方法:获取Worker资源
|
|
75
|
+
*
|
|
76
|
+
* 尝试从Worker池获取一个Worker实例,如果失败则抛出Worker资源不可用错误
|
|
77
|
+
*
|
|
78
|
+
* @param scriptSource 要注入到Worker中的脚本源码
|
|
79
|
+
* @throws ResourceUnavailableError 如果Worker池已满或获取失败
|
|
80
|
+
*/
|
|
81
|
+
async acquireWorker(scriptSource) {
|
|
82
|
+
try {
|
|
83
|
+
this.worker = await this.workerPool.acquire(scriptSource);
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
throw new ResourceUnavailableError('worker', {
|
|
87
|
+
originalError: err instanceof Error ? err.message : err,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 释放所有资源(幂等)
|
|
93
|
+
*
|
|
94
|
+
* 释放之前通过acquire方法获取的所有资源。此方法是幂等的,
|
|
95
|
+
* 即可以安全地多次调用而不会产生副作用。
|
|
96
|
+
* 无论资源是否已经被释放,或者从未被获取,调用此方法都是安全的。
|
|
97
|
+
*
|
|
98
|
+
* @returns 当资源成功释放后解析的Promise
|
|
99
|
+
*/
|
|
100
|
+
async release() {
|
|
101
|
+
// 释放Worker资源(如果已获取)
|
|
102
|
+
if (this.worker) {
|
|
103
|
+
try {
|
|
104
|
+
this.workerPool.release(this.worker);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
// 即使释放worker失败,也要继续释放其他资源
|
|
108
|
+
console.error('Failed to release worker:', error);
|
|
109
|
+
}
|
|
110
|
+
this.worker = undefined;
|
|
111
|
+
}
|
|
112
|
+
// 释放内存资源(如果已获取)
|
|
113
|
+
if (this.memoryTicket) {
|
|
114
|
+
try {
|
|
115
|
+
this.memoryTicket.release();
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
// 即使释放内存失败,也要继续执行
|
|
119
|
+
console.error('Failed to release memory ticket:', error);
|
|
120
|
+
}
|
|
121
|
+
this.memoryTicket = undefined;
|
|
122
|
+
}
|
|
123
|
+
// 重置获取状态
|
|
124
|
+
this.acquired = false;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 访问 worker(只允许 Runner 用)
|
|
128
|
+
*
|
|
129
|
+
* 获取当前持有的Worker句柄,供Runner使用来执行实际的哈希计算。
|
|
130
|
+
* 如果尚未获取Worker或Worker已被释放,则抛出错误。
|
|
131
|
+
*
|
|
132
|
+
* @returns Worker句柄,可用于向Worker发送消息和接收结果
|
|
133
|
+
* @throws 如果Worker尚未获取则抛出错误,确保使用者意识到资源未就绪
|
|
134
|
+
*/
|
|
135
|
+
getWorker() {
|
|
136
|
+
if (!this.worker) {
|
|
137
|
+
throw new ResourceNotAcquiredError();
|
|
138
|
+
}
|
|
139
|
+
return this.worker;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 当前资源快照(给 health / debug)
|
|
143
|
+
*
|
|
144
|
+
* 获取当前资源使用情况的快照,主要用于健康检查和调试目的。
|
|
145
|
+
* 返回一个不可变的对象,包含当前内存使用量和Worker状态。
|
|
146
|
+
*
|
|
147
|
+
* @returns 资源快照对象,包含内存字节数(如果有)和Worker存在状态
|
|
148
|
+
*/
|
|
149
|
+
snapshot() {
|
|
150
|
+
var _a;
|
|
151
|
+
return {
|
|
152
|
+
// ✅ 修正:如果有内存票据,返回具体的字节数
|
|
153
|
+
memoryBytes: (_a = this.memoryTicket) === null || _a === void 0 ? void 0 : _a.bytes,
|
|
154
|
+
hasWorker: !!this.worker, // 确保返回布尔值
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=HashTaskResources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashTaskResources.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskResources.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AA8B9E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,iBAAiB;IAK1B;;;;;OAKG;IACH,YACqB,aAA4B,EAC5B,UAAsB;QADtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,eAAU,GAAV,UAAU,CAAY;QAVnC,aAAQ,GAAG,KAAK,CAAC,CAAC,cAAc;IAWrC,CAAC;IAEJ;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,YAAoB,EAAE,WAAmB;QACnD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,WAAW;QAEtC,IAAI,CAAC;YACD,mBAAmB;YACnB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,UAAU;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,uBAAuB;YACvB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,CAAC,WAAW;QAC1B,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC3C,IAAI,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE;gBACzC,cAAc,EAAE,WAAW;gBAC3B,aAAa,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aAC1D,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,aAAa,CAAC,YAAoB;QAC5C,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE;gBACzC,aAAa,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aAC1D,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO;QACT,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,0BAA0B;gBAC1B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,kBAAkB;gBAClB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAClC,CAAC;QAED,SAAS;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ;;QACJ,OAAO;YACH,wBAAwB;YACxB,WAAW,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK;YACrC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU;SACvC,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { Logger } from '../../../logger/index.esm.js';
|
|
2
|
+
import { WorkerScriptBuilder } from '../worker';
|
|
3
|
+
import { HashTaskHealthMonitor } from './HashTaskHealthMonitor';
|
|
4
|
+
/**
|
|
5
|
+
* HashTaskRunner类
|
|
6
|
+
*
|
|
7
|
+
* 该类只负责流程控制:
|
|
8
|
+
* - 驱动任务生命周期
|
|
9
|
+
* - 串联 State / Progress / Resources
|
|
10
|
+
* - 把「计算」委托给 worker
|
|
11
|
+
* - 处理中断(pause / cancel)
|
|
12
|
+
*
|
|
13
|
+
* 明确不负责:
|
|
14
|
+
* - 不分块(ChunkProvider 的事)
|
|
15
|
+
* - 不实现 hash 算法
|
|
16
|
+
* - 不处理内存细节
|
|
17
|
+
* - 不做健康监控
|
|
18
|
+
* - 不做任务调度
|
|
19
|
+
*/
|
|
20
|
+
export class HashTaskRunner {
|
|
21
|
+
/**
|
|
22
|
+
* 构造函数
|
|
23
|
+
*
|
|
24
|
+
* @param state 任务状态管理器
|
|
25
|
+
* @param progress 任务进度管理器
|
|
26
|
+
* @param resources 任务资源管理器
|
|
27
|
+
* @param options 哈希任务选项
|
|
28
|
+
*/
|
|
29
|
+
constructor(state, progress, resources, options) {
|
|
30
|
+
this.state = state;
|
|
31
|
+
this.progress = progress;
|
|
32
|
+
this.resources = resources;
|
|
33
|
+
this.options = options;
|
|
34
|
+
this.builder = new WorkerScriptBuilder();
|
|
35
|
+
this.logger = Logger.for('HashTaskRunner');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 获取ChunkProvider的辅助属性,让代码更易读
|
|
39
|
+
*/
|
|
40
|
+
get chunkProvider() {
|
|
41
|
+
return this.options.chunkProvider;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 执行哈希任务
|
|
45
|
+
*
|
|
46
|
+
* 该方法负责:
|
|
47
|
+
* 1. 构建Worker脚本
|
|
48
|
+
* 2. 计算所需内存
|
|
49
|
+
* 3. 获取资源(内存和Worker)
|
|
50
|
+
* 4. 启动健康监控
|
|
51
|
+
* 5. 执行哈希计算
|
|
52
|
+
* 6. 最终释放资源
|
|
53
|
+
*
|
|
54
|
+
* @returns Promise<ArrayBuffer> 包含哈希结果的Promise
|
|
55
|
+
*/
|
|
56
|
+
async run() {
|
|
57
|
+
this.logger.debug(`Starting hash task with algorithm: ${this.options.algorithm}`);
|
|
58
|
+
const scriptSource = this.builder.build(this.options.algorithm);
|
|
59
|
+
// 使用新定义的辅助属性计算内存
|
|
60
|
+
const memoryRequired = this.calculateRequiredMemory();
|
|
61
|
+
this.logger.debug(`Acquiring resources: memory=${(memoryRequired / 1024 / 1024).toFixed(2)}MB`);
|
|
62
|
+
await this.resources.acquire(scriptSource, memoryRequired);
|
|
63
|
+
const monitor = new HashTaskHealthMonitor(this.state, this.progress, this.resources);
|
|
64
|
+
monitor.start();
|
|
65
|
+
try {
|
|
66
|
+
// 注意:此时 State 的迁移需要符合你上传的 HashTaskState.ts 逻辑
|
|
67
|
+
if (this.state.canStart()) {
|
|
68
|
+
this.state.start();
|
|
69
|
+
}
|
|
70
|
+
return await this.executeHashing();
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
// 如果 state 有 fail 方法,在这里调用
|
|
74
|
+
// this.state.fail(err);
|
|
75
|
+
this.logger.error('Task failed:', err);
|
|
76
|
+
throw err;
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
this.logger.debug('Releasing resources and stopping monitor.');
|
|
80
|
+
monitor.stop();
|
|
81
|
+
await this.resources.release();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 暂停任务:通过状态机实现
|
|
86
|
+
*
|
|
87
|
+
* 检查当前状态是否允许暂停,如果允许则更新状态为暂停
|
|
88
|
+
*/
|
|
89
|
+
pause() {
|
|
90
|
+
if (this.state.canPause()) {
|
|
91
|
+
this.state.pause();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 恢复任务:通过状态机实现
|
|
96
|
+
*
|
|
97
|
+
* 检查当前状态是否允许恢复,如果允许则更新状态为运行中
|
|
98
|
+
*/
|
|
99
|
+
resume() {
|
|
100
|
+
if (this.state.canResume()) {
|
|
101
|
+
this.state.resume();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* 取消任务:直接调用状态机的 cancel
|
|
106
|
+
* 状态变更为 'cancelled' 后,executeHashing 循环中的 isCancelled() 会检测到并抛出异常
|
|
107
|
+
*
|
|
108
|
+
* 检查当前状态是否允许取消,如果允许则更新状态为已取消
|
|
109
|
+
*/
|
|
110
|
+
cancel() {
|
|
111
|
+
if (this.state.canCancel()) {
|
|
112
|
+
this.state.cancel();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 等待任务恢复(如果处于暂停状态)
|
|
117
|
+
*
|
|
118
|
+
* 当任务处于暂停状态时,持续等待直到恢复运行或被取消
|
|
119
|
+
*
|
|
120
|
+
* @private
|
|
121
|
+
*/
|
|
122
|
+
async waitIfPaused() {
|
|
123
|
+
// ✅ 统一使用 state 判定,不再需要私有变量
|
|
124
|
+
while (this.state.value === 'paused' && !this.state.isCancelled()) {
|
|
125
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* 运行单个数据块的哈希计算
|
|
130
|
+
*
|
|
131
|
+
* 该方法向Worker发送数据块进行哈希计算,并等待处理结果
|
|
132
|
+
*
|
|
133
|
+
* @param worker Worker句柄
|
|
134
|
+
* @param chunk 要处理的数据块
|
|
135
|
+
* @returns Promise<void> 表示处理完成的Promise
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
async runChunk(worker, chunk) {
|
|
139
|
+
return new Promise((resolve, reject) => {
|
|
140
|
+
let unsubscribe;
|
|
141
|
+
// 1. 定义处理器
|
|
142
|
+
const handler = (msg) => {
|
|
143
|
+
// 只响应当前 chunk 的确认消息
|
|
144
|
+
if (msg.type === 'ack' && msg.chunkId === chunk.id) {
|
|
145
|
+
if (unsubscribe)
|
|
146
|
+
unsubscribe(); // ✨ 执行清理!
|
|
147
|
+
resolve();
|
|
148
|
+
}
|
|
149
|
+
else if (msg.type === 'error') {
|
|
150
|
+
if (unsubscribe)
|
|
151
|
+
unsubscribe(); // ✨ 出错也要清理!
|
|
152
|
+
reject(new Error(msg.message));
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
// 2. 订阅消息
|
|
156
|
+
unsubscribe = worker.onMessage(handler);
|
|
157
|
+
// 3. 发送数据
|
|
158
|
+
worker.post({ type: 'update', chunkId: chunk.id, data: chunk.data }, [chunk.data] // 零拷贝转移
|
|
159
|
+
);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* 完成哈希计算并获取最终结果
|
|
164
|
+
*
|
|
165
|
+
* 该方法向Worker发送完成信号并等待最终的哈希结果
|
|
166
|
+
*
|
|
167
|
+
* @param worker Worker句柄
|
|
168
|
+
* @returns Promise<ArrayBuffer> 包含最终哈希结果的Promise
|
|
169
|
+
* @private
|
|
170
|
+
*/
|
|
171
|
+
async finalize(worker) {
|
|
172
|
+
return new Promise((resolve, reject) => {
|
|
173
|
+
let unsubscribe;
|
|
174
|
+
const onMessage = (msg) => {
|
|
175
|
+
if (msg.type === 'digest') {
|
|
176
|
+
if (unsubscribe)
|
|
177
|
+
unsubscribe(); // ✨ 清理
|
|
178
|
+
resolve(msg.result);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
unsubscribe = worker.onMessage(onMessage);
|
|
182
|
+
worker.post({ type: 'final' });
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* 计算所需内存大小
|
|
187
|
+
*
|
|
188
|
+
* 根据数据块大小计算所需的内存,预留额外空间用于处理
|
|
189
|
+
*
|
|
190
|
+
* @returns 所需的内存大小(以字节为单位)
|
|
191
|
+
* @private
|
|
192
|
+
*/
|
|
193
|
+
calculateRequiredMemory() {
|
|
194
|
+
// 所有的 Provider 现在都有这个方法了
|
|
195
|
+
const chunkSize = this.chunkProvider.getChunkSize();
|
|
196
|
+
// 预留 2 个分片 + 1MB 冗余
|
|
197
|
+
return chunkSize * 2 + 1024 * 1024;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* 执行哈希计算的主要逻辑
|
|
201
|
+
*
|
|
202
|
+
* 主循环:获取数据块 -> 检查暂停/取消 -> 执行哈希 -> 更新进度 -> 继续下一块
|
|
203
|
+
*
|
|
204
|
+
* @returns Promise<ArrayBuffer> 包含最终哈希结果的Promise
|
|
205
|
+
* @private
|
|
206
|
+
*/
|
|
207
|
+
async executeHashing() {
|
|
208
|
+
const worker = this.resources.getWorker();
|
|
209
|
+
const provider = this.chunkProvider;
|
|
210
|
+
while (provider.hasNext()) {
|
|
211
|
+
// 1. 检查暂停
|
|
212
|
+
await this.waitIfPaused();
|
|
213
|
+
// 2. 检查取消
|
|
214
|
+
if (this.state.isCancelled()) {
|
|
215
|
+
throw new Error('Task cancelled');
|
|
216
|
+
}
|
|
217
|
+
const chunk = await provider.next();
|
|
218
|
+
if (!chunk)
|
|
219
|
+
break;
|
|
220
|
+
// 3. 执行哈希
|
|
221
|
+
await this.runChunk(worker, chunk);
|
|
222
|
+
// 4. 更新进度
|
|
223
|
+
this.progress.onChunk(chunk);
|
|
224
|
+
}
|
|
225
|
+
const result = await this.finalize(worker);
|
|
226
|
+
// ✨ 完成后同步状态机
|
|
227
|
+
if (this.state.canPause()) {
|
|
228
|
+
// 此时状态通常是 running
|
|
229
|
+
this.state.complete();
|
|
230
|
+
}
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=HashTaskRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashTaskRunner.js","sourceRoot":"","sources":["../../../../../src/task/hash-task/hash/HashTaskRunner.ts"],"names":[],"mappings":"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"}
|