@bluelibs/runner 5.1.0 → 5.2.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/README.md +25 -15
- package/dist/browser/index.cjs +851 -478
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +849 -478
- package/dist/browser/index.mjs.map +1 -1
- package/dist/edge/index.cjs +851 -478
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +849 -478
- package/dist/edge/index.mjs.map +1 -1
- package/dist/node/node.cjs +1305 -583
- package/dist/node/node.cjs.map +1 -1
- package/dist/node/node.mjs +1299 -583
- package/dist/node/node.mjs.map +1 -1
- package/dist/types/define.d.ts +9 -0
- package/dist/types/definers/builders/asyncContext/fluent-builder.d.ts +6 -0
- package/dist/types/definers/builders/asyncContext/fluent-builder.interface.d.ts +9 -0
- package/dist/types/definers/builders/asyncContext/index.d.ts +10 -0
- package/dist/types/definers/builders/asyncContext/types.d.ts +13 -0
- package/dist/types/definers/builders/asyncContext/utils.d.ts +5 -0
- package/dist/types/definers/builders/asyncContext.d.ts +1 -0
- package/dist/types/definers/builders/core.d.ts +30 -0
- package/dist/types/definers/builders/error/fluent-builder.d.ts +7 -0
- package/dist/types/definers/builders/error/fluent-builder.interface.d.ts +10 -0
- package/dist/types/definers/builders/error/index.d.ts +11 -0
- package/dist/types/definers/builders/error/types.d.ts +14 -0
- package/dist/types/definers/builders/error/utils.d.ts +6 -0
- package/dist/types/definers/builders/error.d.ts +1 -0
- package/dist/types/definers/builders/event/fluent-builder.d.ts +7 -0
- package/dist/types/definers/builders/event/fluent-builder.interface.d.ts +18 -0
- package/dist/types/definers/builders/event/index.d.ts +10 -0
- package/dist/types/definers/builders/event/types.d.ts +8 -0
- package/dist/types/definers/builders/event/utils.d.ts +9 -0
- package/dist/types/definers/builders/event.d.ts +1 -0
- package/dist/types/definers/builders/hook/fluent-builder.d.ts +8 -0
- package/dist/types/definers/builders/hook/fluent-builder.interface.d.ts +27 -0
- package/dist/types/definers/builders/hook/index.d.ts +12 -0
- package/dist/types/definers/builders/hook/types.d.ts +14 -0
- package/dist/types/definers/builders/hook/utils.d.ts +14 -0
- package/dist/types/definers/builders/hook.d.ts +1 -0
- package/dist/types/definers/builders/middleware/index.d.ts +19 -0
- package/dist/types/definers/builders/middleware/resource.d.ts +7 -0
- package/dist/types/definers/builders/middleware/resource.interface.d.ts +18 -0
- package/dist/types/definers/builders/middleware/task.d.ts +7 -0
- package/dist/types/definers/builders/middleware/task.interface.d.ts +18 -0
- package/dist/types/definers/builders/middleware/types.d.ts +13 -0
- package/dist/types/definers/builders/middleware/utils.d.ts +18 -0
- package/dist/types/definers/builders/middleware.d.ts +1 -0
- package/dist/types/definers/builders/override/hook.d.ts +16 -0
- package/dist/types/definers/builders/override/index.d.ts +11 -0
- package/dist/types/definers/builders/override/resource-middleware.d.ts +3 -0
- package/dist/types/definers/builders/override/resource.d.ts +3 -0
- package/dist/types/definers/builders/override/task-middleware.d.ts +3 -0
- package/dist/types/definers/builders/override/task.d.ts +3 -0
- package/dist/types/definers/builders/resource/fluent-builder.d.ts +8 -0
- package/dist/types/definers/builders/resource/fluent-builder.interface.d.ts +42 -0
- package/dist/types/definers/builders/resource/index.d.ts +13 -0
- package/dist/types/definers/builders/resource/types.d.ts +37 -0
- package/dist/types/definers/builders/resource/utils.d.ts +26 -0
- package/dist/types/definers/builders/resource.d.ts +1 -0
- package/dist/types/definers/builders/tag/fluent-builder.d.ts +6 -0
- package/dist/types/definers/builders/tag/fluent-builder.interface.d.ts +8 -0
- package/dist/types/definers/builders/tag/index.d.ts +10 -0
- package/dist/types/definers/builders/tag/types.d.ts +12 -0
- package/dist/types/definers/builders/tag/utils.d.ts +5 -0
- package/dist/types/definers/builders/tag.d.ts +1 -0
- package/dist/types/definers/builders/task/fluent-builder.d.ts +8 -0
- package/dist/types/definers/builders/task/fluent-builder.interface.d.ts +33 -0
- package/dist/types/definers/builders/task/index.d.ts +21 -0
- package/dist/types/definers/builders/task/phantom-builder.d.ts +8 -0
- package/dist/types/definers/builders/task/phantom-builder.interface.d.ts +31 -0
- package/dist/types/definers/builders/task/types.d.ts +34 -0
- package/dist/types/definers/builders/task/utils.d.ts +14 -0
- package/dist/types/definers/builders/task.d.ts +1 -0
- package/dist/types/definers/builders/task.phantom.d.ts +1 -0
- package/dist/types/definers/builders/utils.d.ts +4 -0
- package/dist/types/definers/defineAsyncContext.d.ts +15 -0
- package/dist/types/definers/defineError.d.ts +27 -0
- package/dist/types/definers/defineEvent.d.ts +2 -0
- package/dist/types/definers/defineHook.d.ts +6 -0
- package/dist/types/definers/defineOverride.d.ts +12 -0
- package/dist/types/definers/defineResource.d.ts +2 -0
- package/dist/types/definers/defineResourceMiddleware.d.ts +2 -0
- package/dist/types/definers/defineTag.d.ts +12 -0
- package/dist/types/definers/defineTask.d.ts +18 -0
- package/dist/types/definers/defineTaskMiddleware.d.ts +2 -0
- package/dist/types/definers/middlewareConfig.d.ts +1 -0
- package/dist/types/definers/resourceFork.d.ts +13 -0
- package/dist/types/definers/tools.d.ts +53 -0
- package/dist/types/defs.d.ts +33 -0
- package/dist/types/errors.d.ts +75 -0
- package/dist/types/globals/debug.d.ts +10 -0
- package/dist/types/globals/globalEvents.d.ts +8 -0
- package/dist/types/globals/globalMiddleware.d.ts +97 -0
- package/dist/types/globals/globalResources.d.ts +64 -0
- package/dist/types/globals/globalTags.d.ts +12 -0
- package/dist/types/globals/middleware/cache.middleware.d.ts +36 -0
- package/dist/types/globals/middleware/circuitBreaker.middleware.d.ts +56 -0
- package/dist/types/globals/middleware/concurrency.middleware.d.ts +47 -0
- package/dist/types/globals/middleware/fallback.middleware.d.ts +23 -0
- package/dist/types/globals/middleware/rateLimit.middleware.d.ts +47 -0
- package/dist/types/globals/middleware/requireContext.middleware.d.ts +5 -0
- package/dist/types/globals/middleware/retry.middleware.d.ts +31 -0
- package/dist/types/globals/middleware/temporal.middleware.d.ts +48 -0
- package/dist/types/globals/middleware/timeout.middleware.d.ts +24 -0
- package/dist/types/globals/middleware/tunnel.middleware.d.ts +3 -0
- package/dist/types/globals/resources/debug/debug.resource.d.ts +7 -0
- package/dist/types/globals/resources/debug/debug.tag.d.ts +2 -0
- package/dist/types/globals/resources/debug/debugConfig.resource.d.ts +22 -0
- package/dist/types/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
- package/dist/types/globals/resources/debug/globalEvent.hook.d.ts +27 -0
- package/dist/types/globals/resources/debug/hook.hook.d.ts +30 -0
- package/dist/types/globals/resources/debug/index.d.ts +6 -0
- package/dist/types/globals/resources/debug/middleware.hook.d.ts +30 -0
- package/dist/types/globals/resources/debug/types.d.ts +25 -0
- package/dist/types/globals/resources/debug/utils.d.ts +2 -0
- package/dist/types/globals/resources/httpClientFactory.resource.d.ts +28 -0
- package/dist/types/globals/resources/queue.resource.d.ts +10 -0
- package/dist/types/globals/resources/tunnel/error-utils.d.ts +1 -0
- package/dist/types/globals/resources/tunnel/plan.d.ts +19 -0
- package/dist/types/globals/resources/tunnel/protocol.d.ts +48 -0
- package/dist/types/globals/resources/tunnel/tunnel.policy.tag.d.ts +26 -0
- package/dist/types/globals/resources/tunnel/tunnel.tag.d.ts +2 -0
- package/dist/types/globals/resources/tunnel/types.d.ts +48 -0
- package/dist/types/globals/tunnels/index.d.ts +23 -0
- package/dist/types/globals/types.d.ts +15 -0
- package/dist/types/http-client.d.ts +26 -0
- package/dist/types/http-fetch-tunnel.resource.d.ts +11 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/models/DependencyProcessor.d.ts +46 -0
- package/dist/types/models/EventManager.d.ts +115 -0
- package/dist/types/models/ExecutionJournal.d.ts +35 -0
- package/dist/types/models/LogPrinter.d.ts +56 -0
- package/dist/types/models/Logger.d.ts +85 -0
- package/dist/types/models/MiddlewareManager.d.ts +73 -0
- package/dist/types/models/OverrideManager.d.ts +13 -0
- package/dist/types/models/Queue.d.ts +40 -0
- package/dist/types/models/ResourceInitializer.d.ts +20 -0
- package/dist/types/models/RunResult.d.ts +41 -0
- package/dist/types/models/Semaphore.d.ts +80 -0
- package/dist/types/models/Store.d.ts +76 -0
- package/dist/types/models/StoreRegistry.d.ts +49 -0
- package/dist/types/models/StoreValidator.d.ts +8 -0
- package/dist/types/models/TaskRunner.d.ts +28 -0
- package/dist/types/models/UnhandledError.d.ts +11 -0
- package/dist/types/models/event/CycleContext.d.ts +9 -0
- package/dist/types/models/event/EmissionExecutor.d.ts +11 -0
- package/dist/types/models/event/InterceptorPipeline.d.ts +5 -0
- package/dist/types/models/event/ListenerRegistry.d.ts +31 -0
- package/dist/types/models/event/types.d.ts +50 -0
- package/dist/types/models/index.d.ts +13 -0
- package/dist/types/models/middleware/InterceptorRegistry.d.ts +56 -0
- package/dist/types/models/middleware/MiddlewareResolver.d.ts +31 -0
- package/dist/types/models/middleware/ResourceMiddlewareComposer.d.ts +34 -0
- package/dist/types/models/middleware/TaskMiddlewareComposer.d.ts +44 -0
- package/dist/types/models/middleware/ValidationHelper.d.ts +20 -0
- package/dist/types/models/middleware/index.d.ts +6 -0
- package/dist/types/models/middleware/types.d.ts +10 -0
- package/dist/types/models/utils/findCircularDependencies.d.ts +16 -0
- package/dist/types/models/utils/safeStringify.d.ts +3 -0
- package/dist/types/node/durable/bus/MemoryEventBus.d.ts +7 -0
- package/dist/types/node/durable/bus/NoopEventBus.d.ts +6 -0
- package/dist/types/node/durable/bus/RedisEventBus.d.ts +30 -0
- package/dist/types/node/durable/core/CronParser.d.ts +15 -0
- package/dist/types/node/durable/core/DurableContext.d.ts +64 -0
- package/dist/types/node/durable/core/DurableOperator.d.ts +47 -0
- package/dist/types/node/durable/core/DurableResource.d.ts +80 -0
- package/dist/types/node/durable/core/DurableService.d.ts +73 -0
- package/dist/types/node/durable/core/DurableWorker.d.ts +19 -0
- package/dist/types/node/durable/core/StepBuilder.d.ts +23 -0
- package/dist/types/node/durable/core/audit.d.ts +152 -0
- package/dist/types/node/durable/core/createRunnerDurableRuntime.d.ts +18 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.audit.d.ts +14 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.determinism.d.ts +13 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.emit.d.ts +16 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.sleep.d.ts +16 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.steps.d.ts +25 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.switch.d.ts +22 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.waitForSignal.d.ts +23 -0
- package/dist/types/node/durable/core/flowShape.d.ts +50 -0
- package/dist/types/node/durable/core/ids.d.ts +11 -0
- package/dist/types/node/durable/core/index.d.ts +11 -0
- package/dist/types/node/durable/core/interfaces/bus.d.ts +13 -0
- package/dist/types/node/durable/core/interfaces/context.d.ts +105 -0
- package/dist/types/node/durable/core/interfaces/queue.d.ts +17 -0
- package/dist/types/node/durable/core/interfaces/service.d.ts +146 -0
- package/dist/types/node/durable/core/interfaces/store.d.ts +66 -0
- package/dist/types/node/durable/core/managers/AuditLogger.d.ts +29 -0
- package/dist/types/node/durable/core/managers/ExecutionManager.d.ts +48 -0
- package/dist/types/node/durable/core/managers/PollingManager.d.ts +48 -0
- package/dist/types/node/durable/core/managers/ScheduleManager.d.ts +33 -0
- package/dist/types/node/durable/core/managers/SignalHandler.d.ts +25 -0
- package/dist/types/node/durable/core/managers/TaskRegistry.d.ts +16 -0
- package/dist/types/node/durable/core/managers/WaitManager.d.ts +26 -0
- package/dist/types/node/durable/core/managers/index.d.ts +7 -0
- package/dist/types/node/durable/core/resource.d.ts +14 -0
- package/dist/types/node/durable/core/types.d.ts +84 -0
- package/dist/types/node/durable/core/utils.d.ts +28 -0
- package/dist/types/node/durable/dashboard/server.d.ts +20 -0
- package/dist/types/node/durable/emitters/runnerAuditEmitter.d.ts +6 -0
- package/dist/types/node/durable/events.d.ts +76 -0
- package/dist/types/node/durable/index.d.ts +34 -0
- package/dist/types/node/durable/optionalDeps/amqplib.d.ts +1 -0
- package/dist/types/node/durable/optionalDeps/ioredis.d.ts +1 -0
- package/dist/types/node/durable/queue/MemoryQueue.d.ts +12 -0
- package/dist/types/node/durable/queue/RabbitMQQueue.d.ts +30 -0
- package/dist/types/node/durable/resources/isolation.d.ts +15 -0
- package/dist/types/node/durable/resources/memoryDurableResource.d.ts +21 -0
- package/dist/types/node/durable/resources/redisDurableResource.d.ts +35 -0
- package/dist/types/node/durable/store/MemoryStore.d.ts +56 -0
- package/dist/types/node/durable/store/RedisStore.d.ts +89 -0
- package/dist/types/node/durable/test-utils.d.ts +29 -0
- package/dist/types/node/exposure/allowList.d.ts +3 -0
- package/dist/types/node/exposure/authenticator.d.ts +16 -0
- package/dist/types/node/exposure/cors.d.ts +4 -0
- package/dist/types/node/exposure/createNodeExposure.d.ts +2 -0
- package/dist/types/node/exposure/exposureServer.d.ts +18 -0
- package/dist/types/node/exposure/handlers/contextWrapper.d.ts +18 -0
- package/dist/types/node/exposure/handlers/errorHandlers.d.ts +23 -0
- package/dist/types/node/exposure/handlers/eventHandler.d.ts +20 -0
- package/dist/types/node/exposure/handlers/taskHandler.d.ts +24 -0
- package/dist/types/node/exposure/httpResponse.d.ts +10 -0
- package/dist/types/node/exposure/index.d.ts +3 -0
- package/dist/types/node/exposure/logging.d.ts +4 -0
- package/dist/types/node/exposure/multipart.d.ts +36 -0
- package/dist/types/node/exposure/requestBody.d.ts +11 -0
- package/dist/types/node/exposure/requestContext.d.ts +17 -0
- package/dist/types/node/exposure/requestHandlers.d.ts +29 -0
- package/dist/types/node/exposure/resource.d.ts +12 -0
- package/dist/types/node/exposure/resourceTypes.d.ts +73 -0
- package/dist/types/node/exposure/router.d.ts +17 -0
- package/dist/types/node/exposure/serverLifecycle.d.ts +13 -0
- package/dist/types/node/exposure/types.d.ts +45 -0
- package/dist/types/node/exposure/utils.d.ts +17 -0
- package/dist/types/node/files/createNodeFile.d.ts +9 -0
- package/dist/types/node/files/index.d.ts +4 -0
- package/dist/types/node/files/inputFile.model.d.ts +22 -0
- package/dist/types/node/files/inputFile.utils.d.ts +14 -0
- package/dist/types/node/http/http-mixed-client.d.ts +45 -0
- package/dist/types/node/http/http-mixed-client.factory.resource.d.ts +17 -0
- package/dist/types/node/http/http-smart-client.factory.resource.d.ts +16 -0
- package/dist/types/node/http/http-smart-client.model.d.ts +27 -0
- package/dist/types/node/http/index.d.ts +4 -0
- package/dist/types/node/index.d.ts +1 -0
- package/dist/types/node/node.d.ts +193 -0
- package/dist/types/node/platform/createFile.d.ts +9 -0
- package/dist/types/node/tunnel/allowlist.d.ts +7 -0
- package/dist/types/node/tunnel/index.d.ts +2 -0
- package/dist/types/node/upload/manifest.d.ts +23 -0
- package/dist/types/platform/adapters/browser.d.ts +14 -0
- package/dist/types/platform/adapters/edge.d.ts +5 -0
- package/dist/types/platform/adapters/node-als.d.ts +1 -0
- package/dist/types/platform/adapters/node.d.ts +15 -0
- package/dist/types/platform/adapters/universal-generic.d.ts +14 -0
- package/dist/types/platform/adapters/universal.d.ts +18 -0
- package/dist/types/platform/createFile.d.ts +10 -0
- package/dist/types/platform/createWebFile.d.ts +11 -0
- package/dist/types/platform/factory.d.ts +2 -0
- package/dist/types/platform/index.d.ts +27 -0
- package/dist/types/platform/types.d.ts +31 -0
- package/dist/types/processHooks.d.ts +2 -0
- package/dist/types/public-types.d.ts +13 -0
- package/dist/types/public.d.ts +210 -0
- package/dist/types/run.d.ts +14 -0
- package/dist/types/serializer/Serializer.d.ts +84 -0
- package/dist/types/serializer/binary-builtins.d.ts +5 -0
- package/dist/types/serializer/builtins.d.ts +47 -0
- package/dist/types/serializer/deserializer.d.ts +27 -0
- package/dist/types/serializer/error-url-builtins.d.ts +13 -0
- package/dist/types/serializer/graph-serializer.d.ts +27 -0
- package/dist/types/serializer/index.d.ts +6 -0
- package/dist/types/serializer/option-normalizers.d.ts +2 -0
- package/dist/types/serializer/regexp-validator.d.ts +34 -0
- package/dist/types/serializer/serialize-utils.d.ts +15 -0
- package/dist/types/serializer/special-values.d.ts +20 -0
- package/dist/types/serializer/tree-serializer.d.ts +20 -0
- package/dist/types/serializer/type-registry.d.ts +58 -0
- package/dist/types/serializer/types.d.ts +126 -0
- package/dist/types/serializer/validation.d.ts +34 -0
- package/dist/types/testing.d.ts +19 -0
- package/dist/types/tools/detectRunnerMode.d.ts +9 -0
- package/dist/types/tools/getCallerFile.d.ts +1 -0
- package/dist/types/tools/throws.d.ts +7 -0
- package/dist/types/tunnels/buildUniversalManifest.d.ts +24 -0
- package/dist/types/types/asyncContext.d.ts +41 -0
- package/dist/types/types/contracts.d.ts +62 -0
- package/dist/types/types/error.d.ts +39 -0
- package/dist/types/types/event.d.ts +79 -0
- package/dist/types/types/executionJournal.d.ts +29 -0
- package/dist/types/types/hook.d.ts +23 -0
- package/dist/types/types/inputFile.d.ts +34 -0
- package/dist/types/types/meta.d.ts +22 -0
- package/dist/types/types/resource.d.ts +133 -0
- package/dist/types/types/resourceMiddleware.d.ts +48 -0
- package/dist/types/types/runner.d.ts +68 -0
- package/dist/types/types/storeTypes.d.ts +46 -0
- package/dist/types/types/symbols.d.ts +34 -0
- package/dist/types/types/tag.d.ts +45 -0
- package/dist/types/types/task.d.ts +76 -0
- package/dist/types/types/taskMiddleware.d.ts +55 -0
- package/dist/types/types/utilities.d.ts +125 -0
- package/dist/universal/index.cjs +851 -476
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +849 -476
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +15 -14
- package/readmes/AI.md +30 -9
- package/dist/browser/index.d.mts +0 -2919
- package/dist/browser/index.d.ts +0 -2919
- package/dist/edge/index.d.mts +0 -2919
- package/dist/edge/index.d.ts +0 -2919
- package/dist/node/node.d.mts +0 -4622
- package/dist/node/node.d.ts +0 -4622
- package/dist/universal/index.d.mts +0 -2919
- package/dist/universal/index.d.ts +0 -2919
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const hookInterceptorResource: import("../../..").IResource<void, Promise<void>, {
|
|
2
|
+
logger: import("../../..").IResource<void, Promise<import("../../..").Logger>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
3
|
+
debugConfig: import("../../..").IResource<import("./types").DebugFriendlyConfig, Promise<{
|
|
4
|
+
logResourceConfig: boolean;
|
|
5
|
+
logResourceValue: boolean;
|
|
6
|
+
logResourceBeforeRun: boolean;
|
|
7
|
+
logResourceAfterRun: boolean;
|
|
8
|
+
logTaskBeforeRun: boolean;
|
|
9
|
+
logTaskInput: boolean;
|
|
10
|
+
logTaskOutput: boolean;
|
|
11
|
+
logTaskAfterRun: boolean;
|
|
12
|
+
logMiddlewareBeforeRun: boolean;
|
|
13
|
+
logMiddlewareAfterRun: boolean;
|
|
14
|
+
logEventEmissionOnRun: boolean;
|
|
15
|
+
logEventEmissionInput: boolean;
|
|
16
|
+
logHookTriggered: boolean;
|
|
17
|
+
logHookCompleted: boolean;
|
|
18
|
+
}>, {}, any, {
|
|
19
|
+
title: string;
|
|
20
|
+
description: string;
|
|
21
|
+
}, import("../../..").ITag<{
|
|
22
|
+
metadata?: Record<string, any>;
|
|
23
|
+
}, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
24
|
+
eventManager: import("../../..").IResource<void, Promise<import("../../..").EventManager>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
25
|
+
}, any, {
|
|
26
|
+
title: string;
|
|
27
|
+
description: string;
|
|
28
|
+
}, import("../../..").ITag<{
|
|
29
|
+
metadata?: Record<string, any>;
|
|
30
|
+
}, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const middlewareInterceptorResource: import("../../..").IResource<void, Promise<void>, {
|
|
2
|
+
logger: import("../../..").IResource<void, Promise<import("../../..").Logger>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
3
|
+
debugConfig: import("../../..").IResource<import("./types").DebugFriendlyConfig, Promise<{
|
|
4
|
+
logResourceConfig: boolean;
|
|
5
|
+
logResourceValue: boolean;
|
|
6
|
+
logResourceBeforeRun: boolean;
|
|
7
|
+
logResourceAfterRun: boolean;
|
|
8
|
+
logTaskBeforeRun: boolean;
|
|
9
|
+
logTaskInput: boolean;
|
|
10
|
+
logTaskOutput: boolean;
|
|
11
|
+
logTaskAfterRun: boolean;
|
|
12
|
+
logMiddlewareBeforeRun: boolean;
|
|
13
|
+
logMiddlewareAfterRun: boolean;
|
|
14
|
+
logEventEmissionOnRun: boolean;
|
|
15
|
+
logEventEmissionInput: boolean;
|
|
16
|
+
logHookTriggered: boolean;
|
|
17
|
+
logHookCompleted: boolean;
|
|
18
|
+
}>, {}, any, {
|
|
19
|
+
title: string;
|
|
20
|
+
description: string;
|
|
21
|
+
}, import("../../..").ITag<{
|
|
22
|
+
metadata?: Record<string, any>;
|
|
23
|
+
}, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
24
|
+
middlewareManager: import("../../..").IResource<void, Promise<import("../../..").MiddlewareManager>, {}, any, any, import("../../..").TagType[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
25
|
+
}, any, {
|
|
26
|
+
title: string;
|
|
27
|
+
description: string;
|
|
28
|
+
}, import("../../..").ITag<{
|
|
29
|
+
metadata?: Record<string, any>;
|
|
30
|
+
}, void, void>[], import("../../..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ITaggable } from "../../../defs";
|
|
2
|
+
export type DebugConfig = {
|
|
3
|
+
logResourceConfig: boolean;
|
|
4
|
+
logResourceValue: boolean;
|
|
5
|
+
logResourceBeforeRun: boolean;
|
|
6
|
+
logResourceAfterRun: boolean;
|
|
7
|
+
logTaskBeforeRun: boolean;
|
|
8
|
+
logTaskInput: boolean;
|
|
9
|
+
logTaskOutput: boolean;
|
|
10
|
+
logTaskAfterRun: boolean;
|
|
11
|
+
logMiddlewareBeforeRun: boolean;
|
|
12
|
+
logMiddlewareAfterRun: boolean;
|
|
13
|
+
logEventEmissionOnRun: boolean;
|
|
14
|
+
logEventEmissionInput: boolean;
|
|
15
|
+
logHookTriggered: boolean;
|
|
16
|
+
logHookCompleted: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const allFalse: DebugConfig;
|
|
19
|
+
export declare const levelNormal: DebugConfig;
|
|
20
|
+
export declare const levelVerbose: DebugConfig;
|
|
21
|
+
/**
|
|
22
|
+
* If you choose to specify your own config, all values will be set to false by default and extended by your config.
|
|
23
|
+
*/
|
|
24
|
+
export type DebugFriendlyConfig = "normal" | "verbose" | Partial<DebugConfig>;
|
|
25
|
+
export declare const getConfig: (config: DebugFriendlyConfig, taggable?: ITaggable) => DebugConfig;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type HttpClient } from "../../http-client";
|
|
2
|
+
import type { HttpClientConfig } from "../../http-client";
|
|
3
|
+
/**
|
|
4
|
+
* Factory for creating HTTP clients with automatic injection of:
|
|
5
|
+
* - serializer
|
|
6
|
+
* - error registry (from Store)
|
|
7
|
+
* - async contexts (from Store)
|
|
8
|
+
*
|
|
9
|
+
* Note: Node streaming clients are exposed via the Node entry only
|
|
10
|
+
* (see createHttpSmartClient/createHttpMixedClient in `@bluelibs/runner/node`).
|
|
11
|
+
* Keeping this universal factory browser-safe avoids dynamic imports.
|
|
12
|
+
*/
|
|
13
|
+
export interface HttpClientFactoryConfig {
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
auth?: HttpClientConfig["auth"];
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
fetchImpl?: typeof fetch;
|
|
18
|
+
onRequest?: HttpClientConfig["onRequest"];
|
|
19
|
+
}
|
|
20
|
+
export type HttpClientFactory = (config: HttpClientFactoryConfig) => HttpClient;
|
|
21
|
+
export declare const httpClientFactory: import("../..").IResource<void, Promise<HttpClientFactory>, {
|
|
22
|
+
serializer: import("../..").IResource<void, Promise<import("./tunnel/types").Serializer>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
23
|
+
store: import("../..").IResource<void, Promise<import("../..").Store>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
24
|
+
}, any, {
|
|
25
|
+
title: string;
|
|
26
|
+
description: string;
|
|
27
|
+
}, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
28
|
+
export type { HttpClient };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Queue } from "../../models/Queue";
|
|
2
|
+
export declare const queueResource: import("../..").IResource<void, Promise<{
|
|
3
|
+
map: Map<string, Queue>;
|
|
4
|
+
run: <T>(id: string, task: (signal: AbortSignal) => Promise<T>) => Promise<T>;
|
|
5
|
+
}>, {}, {
|
|
6
|
+
map: Map<string, Queue>;
|
|
7
|
+
}, {
|
|
8
|
+
title: string;
|
|
9
|
+
description: string;
|
|
10
|
+
}, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function normalizeError(input: unknown): Error;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ITaskMiddleware } from "../../../defs";
|
|
2
|
+
export type ValidationSide = "client" | "server" | "both";
|
|
3
|
+
export interface ExecutionPlan {
|
|
4
|
+
clientMiddleware: string[];
|
|
5
|
+
serverMiddleware: string[];
|
|
6
|
+
validation: ValidationSide;
|
|
7
|
+
}
|
|
8
|
+
export interface PlanMeta {
|
|
9
|
+
plan?: ExecutionPlan;
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
traceId?: string;
|
|
12
|
+
context?: unknown;
|
|
13
|
+
}
|
|
14
|
+
export declare function computeExecutionPlanFromWhitelist(whitelist: {
|
|
15
|
+
client?: Array<string | ITaskMiddleware<any, any, any, any>>;
|
|
16
|
+
server?: Array<string | ITaskMiddleware<any, any, any, any>>;
|
|
17
|
+
}, opts?: {
|
|
18
|
+
defaultValidation?: ValidationSide;
|
|
19
|
+
}): ExecutionPlan;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ITask, IEventEmission } from "../../../defs";
|
|
2
|
+
export interface ProtocolErrorShape {
|
|
3
|
+
code: string;
|
|
4
|
+
message: string;
|
|
5
|
+
details?: unknown;
|
|
6
|
+
id?: string;
|
|
7
|
+
data?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface ProtocolEnvelope<T = unknown> {
|
|
10
|
+
ok: boolean;
|
|
11
|
+
result?: T;
|
|
12
|
+
error?: ProtocolErrorShape;
|
|
13
|
+
meta?: {
|
|
14
|
+
protocolVersion?: string;
|
|
15
|
+
traceId?: string;
|
|
16
|
+
taskVersion?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface TaskRequest {
|
|
20
|
+
id: string;
|
|
21
|
+
input?: unknown;
|
|
22
|
+
plan?: unknown;
|
|
23
|
+
context?: Record<string, unknown>;
|
|
24
|
+
traceId?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface EventRequest {
|
|
27
|
+
id: string;
|
|
28
|
+
payload?: unknown;
|
|
29
|
+
returnPayload?: boolean;
|
|
30
|
+
context?: Record<string, unknown>;
|
|
31
|
+
traceId?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare class TunnelError extends Error {
|
|
34
|
+
readonly code: string;
|
|
35
|
+
readonly details?: unknown;
|
|
36
|
+
readonly id?: string;
|
|
37
|
+
readonly data?: unknown;
|
|
38
|
+
constructor(code: string, message: string, details?: unknown, extras?: {
|
|
39
|
+
id?: string;
|
|
40
|
+
data?: unknown;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export declare function toTunnelError(input: unknown, fallbackMessage?: string): TunnelError;
|
|
44
|
+
export declare function assertOkEnvelope<T>(envelope: ProtocolEnvelope<T> | undefined, opts?: {
|
|
45
|
+
fallbackMessage?: string;
|
|
46
|
+
}): T;
|
|
47
|
+
export declare function runViaTunnel(runner: (task: ITask<any, any, any, any, any, any>, input?: unknown) => Promise<unknown>, task: ITask<any, any, any, any, any, any>, input?: unknown): Promise<unknown>;
|
|
48
|
+
export declare function emitViaTunnel(runner: (emission: IEventEmission<any>) => Promise<unknown>, emission: IEventEmission<any>): Promise<void>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ITaskMiddleware } from "../../../defs";
|
|
2
|
+
export type TunnelPolicySide = "client" | "server";
|
|
3
|
+
export type TunnelMiddlewareId = string | ITaskMiddleware<any, any, any, any>;
|
|
4
|
+
export interface TunnelTaskMiddlewareSidePolicy {
|
|
5
|
+
/**
|
|
6
|
+
* Middleware ids/definitions allowed to run on this side when the task is tunneled.
|
|
7
|
+
* If omitted, defaults to allowing none (caller-side middleware is skipped by default).
|
|
8
|
+
*/
|
|
9
|
+
middlewareAllowList?: TunnelMiddlewareId[];
|
|
10
|
+
}
|
|
11
|
+
export type TunnelTaskMiddlewarePolicySideConfig = TunnelTaskMiddlewareSidePolicy | TunnelMiddlewareId[];
|
|
12
|
+
export interface TunnelTaskMiddlewarePolicyConfig {
|
|
13
|
+
/**
|
|
14
|
+
* Preferred configuration shape: explicit per-side allowlist.
|
|
15
|
+
*/
|
|
16
|
+
client?: TunnelTaskMiddlewarePolicySideConfig;
|
|
17
|
+
server?: TunnelTaskMiddlewarePolicySideConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Backwards-compatible configuration shape (previous): grouped allowlists.
|
|
20
|
+
*/
|
|
21
|
+
middlewareAllowList?: {
|
|
22
|
+
client?: TunnelMiddlewareId[];
|
|
23
|
+
server?: TunnelMiddlewareId[];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export declare const tunnelPolicyTag: import("../../..").ITag<TunnelTaskMiddlewarePolicyConfig, void, void>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ITask, IEvent, IEventEmission } from "../../../defs";
|
|
2
|
+
import type { IAsyncContext } from "../../../types/asyncContext";
|
|
3
|
+
import type { IErrorHelper } from "../../../types/error";
|
|
4
|
+
import type { SerializerLike } from "../../../serializer";
|
|
5
|
+
export type { SerializerLike as Serializer } from "../../../serializer";
|
|
6
|
+
export type TunnelMode = "client" | "server" | "both" | "none";
|
|
7
|
+
export type TunnelTaskSelector = Array<string | ITask<any, any, any, any, any, any>> | ((task: ITask<any, any, any, any, any, any>) => boolean);
|
|
8
|
+
export type TunnelEventSelector = Array<string | IEvent<any>> | ((event: IEvent<any>) => boolean);
|
|
9
|
+
export type EventDeliveryMode = "mirror" | "remote-only" | "local-only" | "remote-first";
|
|
10
|
+
export interface TunnelTagConfig {
|
|
11
|
+
}
|
|
12
|
+
export type TunnelTaskRunner = (task: ITask<any, any, any, any, any, any>, input?: any) => Promise<any>;
|
|
13
|
+
export interface TunnelRunner {
|
|
14
|
+
transport?: "http" | string;
|
|
15
|
+
mode?: TunnelMode;
|
|
16
|
+
tasks?: TunnelTaskSelector;
|
|
17
|
+
events?: TunnelEventSelector;
|
|
18
|
+
eventDeliveryMode?: EventDeliveryMode;
|
|
19
|
+
run?: TunnelTaskRunner;
|
|
20
|
+
emit?: (event: IEventEmission<any>) => Promise<any>;
|
|
21
|
+
}
|
|
22
|
+
export interface ExposureFetchAuthConfig {
|
|
23
|
+
header?: string;
|
|
24
|
+
token: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ExposureFetchConfig {
|
|
27
|
+
baseUrl: string;
|
|
28
|
+
auth?: ExposureFetchAuthConfig;
|
|
29
|
+
timeoutMs?: number;
|
|
30
|
+
fetchImpl?: typeof fetch;
|
|
31
|
+
serializer: SerializerLike;
|
|
32
|
+
onRequest?: (ctx: {
|
|
33
|
+
url: string;
|
|
34
|
+
headers: Record<string, string>;
|
|
35
|
+
}) => void | Promise<void>;
|
|
36
|
+
contexts?: Array<IAsyncContext<unknown>>;
|
|
37
|
+
errorRegistry?: Map<string, IErrorHelper<any>>;
|
|
38
|
+
}
|
|
39
|
+
export interface ExposureFetchClient {
|
|
40
|
+
task<I = unknown, O = unknown>(id: string, input?: I): Promise<O>;
|
|
41
|
+
event<P = unknown>(id: string, payload?: P): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Emits an event and returns the final payload as seen by the remote Runner.
|
|
44
|
+
* Requires server support; older servers will respond with `{ ok: true }`
|
|
45
|
+
* without `result`, in which case clients should throw.
|
|
46
|
+
*/
|
|
47
|
+
eventWithResult?<P = unknown>(id: string, payload?: P): Promise<P>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SerializerLike } from "../../serializer";
|
|
2
|
+
import type { ExposureFetchClient } from "../../http-fetch-tunnel.resource";
|
|
3
|
+
export interface HttpClientAuthConfig {
|
|
4
|
+
header?: string;
|
|
5
|
+
token: string;
|
|
6
|
+
}
|
|
7
|
+
export interface HttpCreateClientConfig {
|
|
8
|
+
url: string;
|
|
9
|
+
auth?: HttpClientAuthConfig;
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
fetchImpl?: typeof fetch;
|
|
12
|
+
serializer: SerializerLike;
|
|
13
|
+
onRequest?: (ctx: {
|
|
14
|
+
url: string;
|
|
15
|
+
headers: Record<string, string>;
|
|
16
|
+
}) => void | Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare const tunnels: Readonly<{
|
|
19
|
+
http: Readonly<{
|
|
20
|
+
createClient(cfg: HttpCreateClientConfig): ExposureFetchClient;
|
|
21
|
+
}>;
|
|
22
|
+
}>;
|
|
23
|
+
export type { ExposureFetchClient };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./resources/debug/types";
|
|
2
|
+
export * from "./resources/tunnel/types";
|
|
3
|
+
export * from "./debug";
|
|
4
|
+
export type { CacheResourceConfig } from "./middleware/cache.middleware";
|
|
5
|
+
export type { CircuitBreakerMiddlewareConfig, CircuitBreakerStatus, CircuitBreakerState, } from "./middleware/circuitBreaker.middleware";
|
|
6
|
+
export type { ConcurrencyMiddlewareConfig, ConcurrencyState, } from "./middleware/concurrency.middleware";
|
|
7
|
+
export type { FallbackMiddlewareConfig } from "./middleware/fallback.middleware";
|
|
8
|
+
export type { RateLimitMiddlewareConfig, RateLimitState, } from "./middleware/rateLimit.middleware";
|
|
9
|
+
export type { RequireContextMiddlewareConfig } from "./middleware/requireContext.middleware";
|
|
10
|
+
export type { RetryMiddlewareConfig } from "./middleware/retry.middleware";
|
|
11
|
+
export type { DebounceState, TemporalMiddlewareConfig, ThrottleState, } from "./middleware/temporal.middleware";
|
|
12
|
+
export type { TimeoutMiddlewareConfig } from "./middleware/timeout.middleware";
|
|
13
|
+
export type { TunnelMiddlewareId, TunnelTaskMiddlewareSidePolicy, TunnelTaskMiddlewarePolicyConfig, TunnelTaskMiddlewarePolicySideConfig, } from "./resources/tunnel/tunnel.policy.tag";
|
|
14
|
+
export type { HttpClientFactoryConfig, HttpClientFactory, } from "./resources/httpClientFactory.resource";
|
|
15
|
+
export type { HttpClientAuthConfig, HttpCreateClientConfig } from "./tunnels";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SerializerLike } from "./serializer";
|
|
2
|
+
import type { IAsyncContext } from "./types/asyncContext";
|
|
3
|
+
import type { IErrorHelper } from "./types/error";
|
|
4
|
+
export interface HttpClientAuth {
|
|
5
|
+
header?: string;
|
|
6
|
+
token: string;
|
|
7
|
+
}
|
|
8
|
+
export interface HttpClientConfig {
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
auth?: HttpClientAuth;
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
fetchImpl?: typeof fetch;
|
|
13
|
+
serializer: SerializerLike;
|
|
14
|
+
onRequest?: (ctx: {
|
|
15
|
+
url: string;
|
|
16
|
+
headers: Record<string, string>;
|
|
17
|
+
}) => void | Promise<void>;
|
|
18
|
+
contexts?: Array<IAsyncContext<unknown>>;
|
|
19
|
+
errorRegistry?: Map<string, IErrorHelper<any>>;
|
|
20
|
+
}
|
|
21
|
+
export interface HttpClient {
|
|
22
|
+
task<I = unknown, O = unknown>(id: string, input?: I): Promise<O>;
|
|
23
|
+
event<P = unknown>(id: string, payload?: P): Promise<void>;
|
|
24
|
+
eventWithResult?<P = unknown>(id: string, payload?: P): Promise<P>;
|
|
25
|
+
}
|
|
26
|
+
export declare function createHttpClient(cfg: HttpClientConfig): HttpClient;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExposureFetchConfig, ExposureFetchClient } from "./globals/resources/tunnel/types";
|
|
2
|
+
export { normalizeError } from "./globals/resources/tunnel/error-utils";
|
|
3
|
+
export type { ExposureFetchAuthConfig, ExposureFetchConfig, ExposureFetchClient, } from "./globals/resources/tunnel/types";
|
|
4
|
+
/**
|
|
5
|
+
* This functions communicates with the exposure server over HTTP.
|
|
6
|
+
* It uses the @readmes/TUNNEL_HTTP_POLICY.md strategy.
|
|
7
|
+
*
|
|
8
|
+
* @param cfg
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function createExposureFetch(cfg: ExposureFetchConfig): ExposureFetchClient;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* # BlueLibs Runner
|
|
5
|
+
*
|
|
6
|
+
* A TypeScript-first dependency injection framework that combines functional programming
|
|
7
|
+
* with enterprise features. No decorators, no magic - just explicit, testable code.
|
|
8
|
+
*
|
|
9
|
+
* ## Quick Start
|
|
10
|
+
*
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { r, run } from "@bluelibs/runner";
|
|
13
|
+
*
|
|
14
|
+
* // Define a task (a function with superpowers)
|
|
15
|
+
* const greet = r.task("greet")
|
|
16
|
+
* .run(async (name: string) => `Hello, ${name}!`)
|
|
17
|
+
* .build();
|
|
18
|
+
*
|
|
19
|
+
* // Create and run your app
|
|
20
|
+
* const app = r.resource("app").register([greet]).build();
|
|
21
|
+
* const { runTask } = await run(app);
|
|
22
|
+
*
|
|
23
|
+
* console.log(await runTask(greet, "World")); // "Hello, World!"
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* ## Core Concepts
|
|
27
|
+
*
|
|
28
|
+
* - **Tasks**: Functions with dependency injection, middleware, and validation
|
|
29
|
+
* - **Resources**: Singleton services with lifecycle management (init/dispose)
|
|
30
|
+
* - **Events**: Type-safe messages for decoupled communication
|
|
31
|
+
* - **Hooks**: Lightweight event handlers
|
|
32
|
+
* - **Middleware**: Cross-cutting concerns (auth, logging, caching)
|
|
33
|
+
*
|
|
34
|
+
* ## Learn More
|
|
35
|
+
*
|
|
36
|
+
* - [Documentation](https://github.com/bluelibs/runner/blob/main/README.md)
|
|
37
|
+
* - [Examples](https://github.com/bluelibs/runner/tree/main/examples)
|
|
38
|
+
* - [API Reference](https://bluelibs.github.io/runner/)
|
|
39
|
+
*
|
|
40
|
+
* @module @bluelibs/runner
|
|
41
|
+
*/
|
|
42
|
+
export * from "./public";
|
|
43
|
+
export type * from "./defs";
|
|
44
|
+
export type * from "./public-types";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DependencyMapType, DependencyValuesType, ITask, IResource, IEvent, TaskCallOptions } from "../defs";
|
|
2
|
+
import { Store } from "./Store";
|
|
3
|
+
import { ResourceStoreElementType } from "../types/storeTypes";
|
|
4
|
+
import { EventManager } from "./EventManager";
|
|
5
|
+
import { ResourceInitializer } from "./ResourceInitializer";
|
|
6
|
+
import { TaskRunner } from "./TaskRunner";
|
|
7
|
+
import { Logger } from "./Logger";
|
|
8
|
+
/**
|
|
9
|
+
* Resolves and caches computed dependencies for store items (resources, tasks, middleware, hooks).
|
|
10
|
+
*/
|
|
11
|
+
export declare class DependencyProcessor {
|
|
12
|
+
protected readonly store: Store;
|
|
13
|
+
protected readonly eventManager: EventManager;
|
|
14
|
+
protected readonly taskRunner: TaskRunner;
|
|
15
|
+
protected readonly resourceInitializer: ResourceInitializer;
|
|
16
|
+
protected readonly logger: Logger;
|
|
17
|
+
constructor(store: Store, eventManager: EventManager, taskRunner: TaskRunner, logger: Logger);
|
|
18
|
+
/**
|
|
19
|
+
* Computes and caches dependencies for all registered store items.
|
|
20
|
+
*/
|
|
21
|
+
computeAllDependencies(): Promise<void>;
|
|
22
|
+
private computeTaskDependencies;
|
|
23
|
+
initializeUninitializedResources(): Promise<void>;
|
|
24
|
+
private rethrowResourceInitError;
|
|
25
|
+
/**
|
|
26
|
+
* Computes and caches dependencies for a resource (if not already computed).
|
|
27
|
+
*/
|
|
28
|
+
protected processResourceDependencies<TD extends DependencyMapType>(resource: ResourceStoreElementType<any, any, TD>): Promise<void>;
|
|
29
|
+
private wrapResourceDependencies;
|
|
30
|
+
private makeTaskWithIntercept;
|
|
31
|
+
initializeRoot(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Attaches listeners for all hooks. Must run before emitting events.
|
|
34
|
+
*/
|
|
35
|
+
attachListeners(): void;
|
|
36
|
+
extractDependencies<T extends DependencyMapType>(map: T, source: string): Promise<DependencyValuesType<T>>;
|
|
37
|
+
extractDependency(object: any, source: string): Promise<any>;
|
|
38
|
+
/**
|
|
39
|
+
* Converts the event into a running functions with real inputs
|
|
40
|
+
* @param object
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
extractEventDependency(object: IEvent<any>, source: string): (input: any) => Promise<void>;
|
|
44
|
+
extractTaskDependency(object: ITask<any, any, {}>): Promise<(input: unknown, options?: TaskCallOptions) => Promise<any>>;
|
|
45
|
+
extractResourceDependency(object: IResource<any, any, any>): Promise<any>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { DependencyValuesType, EventHandlerType, IEvent, IEventEmission } from "../defs";
|
|
2
|
+
import { IHook } from "../types/hook";
|
|
3
|
+
import { EventEmissionInterceptor, HookExecutionInterceptor, IEventHandlerOptions } from "./event/types";
|
|
4
|
+
/**
|
|
5
|
+
* EventManager handles event emission, listener registration, and event processing.
|
|
6
|
+
* It supports both specific event listeners and global listeners that handle all events.
|
|
7
|
+
* Listeners are processed in order based on their priority.
|
|
8
|
+
*/
|
|
9
|
+
export declare class EventManager {
|
|
10
|
+
#private;
|
|
11
|
+
private listeners;
|
|
12
|
+
private globalListeners;
|
|
13
|
+
private cachedMergedListeners;
|
|
14
|
+
private emissionInterceptors;
|
|
15
|
+
private hookInterceptors;
|
|
16
|
+
private readonly registry;
|
|
17
|
+
private readonly cycleContext;
|
|
18
|
+
private readonly runtimeEventCycleDetection;
|
|
19
|
+
constructor(options?: {
|
|
20
|
+
runtimeEventCycleDetection?: boolean;
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Gets the current lock status of the EventManager
|
|
24
|
+
*/
|
|
25
|
+
get isLocked(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Locks the EventManager, preventing any further modifications to listeners
|
|
28
|
+
*/
|
|
29
|
+
lock(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Emits an event to all registered listeners for that event type.
|
|
32
|
+
* Listeners are processed in order of priority and can stop event propagation.
|
|
33
|
+
*
|
|
34
|
+
* @param eventDefinition - The event definition to emit
|
|
35
|
+
* @param data - The event payload data
|
|
36
|
+
* @param source - The source identifier of the event emitter
|
|
37
|
+
*/
|
|
38
|
+
emit<TInput>(eventDefinition: IEvent<TInput>, data: TInput, source: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Emits an event and returns the final payload.
|
|
41
|
+
* The payload is taken from the deepest emission object that reached either:
|
|
42
|
+
* - the base listener executor, or
|
|
43
|
+
* - an interceptor that short-circuited the emission.
|
|
44
|
+
*
|
|
45
|
+
* This enables tunnel transports to return the final payload after local and/or remote delivery.
|
|
46
|
+
*/
|
|
47
|
+
emitWithResult<TInput>(eventDefinition: IEvent<TInput>, data: TInput, source: string): Promise<TInput>;
|
|
48
|
+
private emitAndReturnEmission;
|
|
49
|
+
/**
|
|
50
|
+
* Registers an event listener for specific event(s).
|
|
51
|
+
* Listeners are ordered by priority and executed in ascending order.
|
|
52
|
+
*
|
|
53
|
+
* @param event - The event definition(s) to listen for
|
|
54
|
+
* @param handler - The callback function to handle the event
|
|
55
|
+
* @param options - Configuration options for the listener
|
|
56
|
+
*/
|
|
57
|
+
addListener<T>(event: IEvent<T> | Array<IEvent<T>>, handler: EventHandlerType<T>, options?: IEventHandlerOptions<T>): void;
|
|
58
|
+
/**
|
|
59
|
+
* Registers a global event listener that handles all events.
|
|
60
|
+
* Global listeners are mixed with specific listeners and ordered by priority.
|
|
61
|
+
*
|
|
62
|
+
* @param handler - The callback function to handle events
|
|
63
|
+
* @param options - Configuration options for the listener
|
|
64
|
+
*/
|
|
65
|
+
addGlobalListener(handler: EventHandlerType, options?: IEventHandlerOptions): void;
|
|
66
|
+
/**
|
|
67
|
+
* Checks if there are any listeners registered for the given event
|
|
68
|
+
*
|
|
69
|
+
* @param eventDefinition - The event definition to check
|
|
70
|
+
* @returns true if listeners exist, false otherwise
|
|
71
|
+
*/
|
|
72
|
+
hasListeners<T>(eventDefinition: IEvent<T>): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Adds an interceptor for all event emissions
|
|
75
|
+
* Interceptors are executed in the order they are added, with the ability to
|
|
76
|
+
* modify, log, or prevent event emissions
|
|
77
|
+
*
|
|
78
|
+
* @param interceptor - The interceptor function to add
|
|
79
|
+
*/
|
|
80
|
+
intercept(interceptor: EventEmissionInterceptor): void;
|
|
81
|
+
/**
|
|
82
|
+
* Adds an interceptor for hook execution
|
|
83
|
+
* Interceptors are executed in the order they are added, with the ability to
|
|
84
|
+
* modify, log, or prevent hook execution
|
|
85
|
+
*
|
|
86
|
+
* @param interceptor - The interceptor function to add
|
|
87
|
+
*/
|
|
88
|
+
interceptHook(interceptor: HookExecutionInterceptor): void;
|
|
89
|
+
/**
|
|
90
|
+
* Executes a hook with all registered hook interceptors applied
|
|
91
|
+
* This method should be used by TaskRunner when executing hooks
|
|
92
|
+
*
|
|
93
|
+
* @param hook - The hook to execute
|
|
94
|
+
* @param event - The event that triggered the hook
|
|
95
|
+
* @param computedDependencies - The computed dependencies for the hook
|
|
96
|
+
* @returns Promise resolving to the hook execution result
|
|
97
|
+
*/
|
|
98
|
+
executeHookWithInterceptors(hook: IHook<any, any>, event: IEventEmission<any>, computedDependencies: DependencyValuesType<any>): Promise<any>;
|
|
99
|
+
/**
|
|
100
|
+
* Throws an error if the EventManager is locked
|
|
101
|
+
*/
|
|
102
|
+
private checkLock;
|
|
103
|
+
private assertPropagationMethodsUnchanged;
|
|
104
|
+
/**
|
|
105
|
+
* Disposes the EventManager, releasing all listeners and interceptors.
|
|
106
|
+
*/
|
|
107
|
+
dispose(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Retrieves cached merged listeners for an event, or creates them if not cached.
|
|
110
|
+
* Kept for backward compatibility (tests spy on this).
|
|
111
|
+
*/
|
|
112
|
+
private getCachedMergedListeners;
|
|
113
|
+
}
|
|
114
|
+
export type { IEventHandlerOptions };
|
|
115
|
+
export type { EventEmissionInterceptor, HookExecutionInterceptor };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ExecutionJournal, JournalKey, JournalSetOptions } from "../types/executionJournal";
|
|
2
|
+
/**
|
|
3
|
+
* Implementation of ExecutionJournal.
|
|
4
|
+
* Created per task execution and passed through the middleware chain.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ExecutionJournalImpl implements ExecutionJournal {
|
|
7
|
+
private readonly store;
|
|
8
|
+
/**
|
|
9
|
+
* Store a value in the journal.
|
|
10
|
+
* Throws an error if the key already exists unless { override: true } is passed.
|
|
11
|
+
*/
|
|
12
|
+
set<T>(key: JournalKey<T>, value: T, options?: JournalSetOptions): void;
|
|
13
|
+
get<T>(key: JournalKey<T>): T | undefined;
|
|
14
|
+
has<T>(key: JournalKey<T>): boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a typed journal key for use with ExecutionJournal.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const abortController = journal.createKey<AbortController>("timeout.abortController");
|
|
22
|
+
* journal.set(abortController, new AbortController());
|
|
23
|
+
* const ctrl = journal.get(abortController); // AbortController | undefined
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare function createKey<T>(id: string): JournalKey<T>;
|
|
27
|
+
export declare const journal: {
|
|
28
|
+
createKey: typeof createKey;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new empty ExecutionJournal.
|
|
31
|
+
* Useful when you need to pass a specific journal instance to `runTask` or nested calls.
|
|
32
|
+
*/
|
|
33
|
+
create: () => ExecutionJournal;
|
|
34
|
+
};
|
|
35
|
+
export {};
|