@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.
Files changed (314) hide show
  1. package/README.md +25 -15
  2. package/dist/browser/index.cjs +851 -478
  3. package/dist/browser/index.cjs.map +1 -1
  4. package/dist/browser/index.mjs +849 -478
  5. package/dist/browser/index.mjs.map +1 -1
  6. package/dist/edge/index.cjs +851 -478
  7. package/dist/edge/index.cjs.map +1 -1
  8. package/dist/edge/index.mjs +849 -478
  9. package/dist/edge/index.mjs.map +1 -1
  10. package/dist/node/node.cjs +1305 -583
  11. package/dist/node/node.cjs.map +1 -1
  12. package/dist/node/node.mjs +1299 -583
  13. package/dist/node/node.mjs.map +1 -1
  14. package/dist/types/define.d.ts +9 -0
  15. package/dist/types/definers/builders/asyncContext/fluent-builder.d.ts +6 -0
  16. package/dist/types/definers/builders/asyncContext/fluent-builder.interface.d.ts +9 -0
  17. package/dist/types/definers/builders/asyncContext/index.d.ts +10 -0
  18. package/dist/types/definers/builders/asyncContext/types.d.ts +13 -0
  19. package/dist/types/definers/builders/asyncContext/utils.d.ts +5 -0
  20. package/dist/types/definers/builders/asyncContext.d.ts +1 -0
  21. package/dist/types/definers/builders/core.d.ts +30 -0
  22. package/dist/types/definers/builders/error/fluent-builder.d.ts +7 -0
  23. package/dist/types/definers/builders/error/fluent-builder.interface.d.ts +10 -0
  24. package/dist/types/definers/builders/error/index.d.ts +11 -0
  25. package/dist/types/definers/builders/error/types.d.ts +14 -0
  26. package/dist/types/definers/builders/error/utils.d.ts +6 -0
  27. package/dist/types/definers/builders/error.d.ts +1 -0
  28. package/dist/types/definers/builders/event/fluent-builder.d.ts +7 -0
  29. package/dist/types/definers/builders/event/fluent-builder.interface.d.ts +18 -0
  30. package/dist/types/definers/builders/event/index.d.ts +10 -0
  31. package/dist/types/definers/builders/event/types.d.ts +8 -0
  32. package/dist/types/definers/builders/event/utils.d.ts +9 -0
  33. package/dist/types/definers/builders/event.d.ts +1 -0
  34. package/dist/types/definers/builders/hook/fluent-builder.d.ts +8 -0
  35. package/dist/types/definers/builders/hook/fluent-builder.interface.d.ts +27 -0
  36. package/dist/types/definers/builders/hook/index.d.ts +12 -0
  37. package/dist/types/definers/builders/hook/types.d.ts +14 -0
  38. package/dist/types/definers/builders/hook/utils.d.ts +14 -0
  39. package/dist/types/definers/builders/hook.d.ts +1 -0
  40. package/dist/types/definers/builders/middleware/index.d.ts +19 -0
  41. package/dist/types/definers/builders/middleware/resource.d.ts +7 -0
  42. package/dist/types/definers/builders/middleware/resource.interface.d.ts +18 -0
  43. package/dist/types/definers/builders/middleware/task.d.ts +7 -0
  44. package/dist/types/definers/builders/middleware/task.interface.d.ts +18 -0
  45. package/dist/types/definers/builders/middleware/types.d.ts +13 -0
  46. package/dist/types/definers/builders/middleware/utils.d.ts +18 -0
  47. package/dist/types/definers/builders/middleware.d.ts +1 -0
  48. package/dist/types/definers/builders/override/hook.d.ts +16 -0
  49. package/dist/types/definers/builders/override/index.d.ts +11 -0
  50. package/dist/types/definers/builders/override/resource-middleware.d.ts +3 -0
  51. package/dist/types/definers/builders/override/resource.d.ts +3 -0
  52. package/dist/types/definers/builders/override/task-middleware.d.ts +3 -0
  53. package/dist/types/definers/builders/override/task.d.ts +3 -0
  54. package/dist/types/definers/builders/resource/fluent-builder.d.ts +8 -0
  55. package/dist/types/definers/builders/resource/fluent-builder.interface.d.ts +42 -0
  56. package/dist/types/definers/builders/resource/index.d.ts +13 -0
  57. package/dist/types/definers/builders/resource/types.d.ts +37 -0
  58. package/dist/types/definers/builders/resource/utils.d.ts +26 -0
  59. package/dist/types/definers/builders/resource.d.ts +1 -0
  60. package/dist/types/definers/builders/tag/fluent-builder.d.ts +6 -0
  61. package/dist/types/definers/builders/tag/fluent-builder.interface.d.ts +8 -0
  62. package/dist/types/definers/builders/tag/index.d.ts +10 -0
  63. package/dist/types/definers/builders/tag/types.d.ts +12 -0
  64. package/dist/types/definers/builders/tag/utils.d.ts +5 -0
  65. package/dist/types/definers/builders/tag.d.ts +1 -0
  66. package/dist/types/definers/builders/task/fluent-builder.d.ts +8 -0
  67. package/dist/types/definers/builders/task/fluent-builder.interface.d.ts +33 -0
  68. package/dist/types/definers/builders/task/index.d.ts +21 -0
  69. package/dist/types/definers/builders/task/phantom-builder.d.ts +8 -0
  70. package/dist/types/definers/builders/task/phantom-builder.interface.d.ts +31 -0
  71. package/dist/types/definers/builders/task/types.d.ts +34 -0
  72. package/dist/types/definers/builders/task/utils.d.ts +14 -0
  73. package/dist/types/definers/builders/task.d.ts +1 -0
  74. package/dist/types/definers/builders/task.phantom.d.ts +1 -0
  75. package/dist/types/definers/builders/utils.d.ts +4 -0
  76. package/dist/types/definers/defineAsyncContext.d.ts +15 -0
  77. package/dist/types/definers/defineError.d.ts +27 -0
  78. package/dist/types/definers/defineEvent.d.ts +2 -0
  79. package/dist/types/definers/defineHook.d.ts +6 -0
  80. package/dist/types/definers/defineOverride.d.ts +12 -0
  81. package/dist/types/definers/defineResource.d.ts +2 -0
  82. package/dist/types/definers/defineResourceMiddleware.d.ts +2 -0
  83. package/dist/types/definers/defineTag.d.ts +12 -0
  84. package/dist/types/definers/defineTask.d.ts +18 -0
  85. package/dist/types/definers/defineTaskMiddleware.d.ts +2 -0
  86. package/dist/types/definers/middlewareConfig.d.ts +1 -0
  87. package/dist/types/definers/resourceFork.d.ts +13 -0
  88. package/dist/types/definers/tools.d.ts +53 -0
  89. package/dist/types/defs.d.ts +33 -0
  90. package/dist/types/errors.d.ts +75 -0
  91. package/dist/types/globals/debug.d.ts +10 -0
  92. package/dist/types/globals/globalEvents.d.ts +8 -0
  93. package/dist/types/globals/globalMiddleware.d.ts +97 -0
  94. package/dist/types/globals/globalResources.d.ts +64 -0
  95. package/dist/types/globals/globalTags.d.ts +12 -0
  96. package/dist/types/globals/middleware/cache.middleware.d.ts +36 -0
  97. package/dist/types/globals/middleware/circuitBreaker.middleware.d.ts +56 -0
  98. package/dist/types/globals/middleware/concurrency.middleware.d.ts +47 -0
  99. package/dist/types/globals/middleware/fallback.middleware.d.ts +23 -0
  100. package/dist/types/globals/middleware/rateLimit.middleware.d.ts +47 -0
  101. package/dist/types/globals/middleware/requireContext.middleware.d.ts +5 -0
  102. package/dist/types/globals/middleware/retry.middleware.d.ts +31 -0
  103. package/dist/types/globals/middleware/temporal.middleware.d.ts +48 -0
  104. package/dist/types/globals/middleware/timeout.middleware.d.ts +24 -0
  105. package/dist/types/globals/middleware/tunnel.middleware.d.ts +3 -0
  106. package/dist/types/globals/resources/debug/debug.resource.d.ts +7 -0
  107. package/dist/types/globals/resources/debug/debug.tag.d.ts +2 -0
  108. package/dist/types/globals/resources/debug/debugConfig.resource.d.ts +22 -0
  109. package/dist/types/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
  110. package/dist/types/globals/resources/debug/globalEvent.hook.d.ts +27 -0
  111. package/dist/types/globals/resources/debug/hook.hook.d.ts +30 -0
  112. package/dist/types/globals/resources/debug/index.d.ts +6 -0
  113. package/dist/types/globals/resources/debug/middleware.hook.d.ts +30 -0
  114. package/dist/types/globals/resources/debug/types.d.ts +25 -0
  115. package/dist/types/globals/resources/debug/utils.d.ts +2 -0
  116. package/dist/types/globals/resources/httpClientFactory.resource.d.ts +28 -0
  117. package/dist/types/globals/resources/queue.resource.d.ts +10 -0
  118. package/dist/types/globals/resources/tunnel/error-utils.d.ts +1 -0
  119. package/dist/types/globals/resources/tunnel/plan.d.ts +19 -0
  120. package/dist/types/globals/resources/tunnel/protocol.d.ts +48 -0
  121. package/dist/types/globals/resources/tunnel/tunnel.policy.tag.d.ts +26 -0
  122. package/dist/types/globals/resources/tunnel/tunnel.tag.d.ts +2 -0
  123. package/dist/types/globals/resources/tunnel/types.d.ts +48 -0
  124. package/dist/types/globals/tunnels/index.d.ts +23 -0
  125. package/dist/types/globals/types.d.ts +15 -0
  126. package/dist/types/http-client.d.ts +26 -0
  127. package/dist/types/http-fetch-tunnel.resource.d.ts +11 -0
  128. package/dist/types/index.d.ts +44 -0
  129. package/dist/types/models/DependencyProcessor.d.ts +46 -0
  130. package/dist/types/models/EventManager.d.ts +115 -0
  131. package/dist/types/models/ExecutionJournal.d.ts +35 -0
  132. package/dist/types/models/LogPrinter.d.ts +56 -0
  133. package/dist/types/models/Logger.d.ts +85 -0
  134. package/dist/types/models/MiddlewareManager.d.ts +73 -0
  135. package/dist/types/models/OverrideManager.d.ts +13 -0
  136. package/dist/types/models/Queue.d.ts +40 -0
  137. package/dist/types/models/ResourceInitializer.d.ts +20 -0
  138. package/dist/types/models/RunResult.d.ts +41 -0
  139. package/dist/types/models/Semaphore.d.ts +80 -0
  140. package/dist/types/models/Store.d.ts +76 -0
  141. package/dist/types/models/StoreRegistry.d.ts +49 -0
  142. package/dist/types/models/StoreValidator.d.ts +8 -0
  143. package/dist/types/models/TaskRunner.d.ts +28 -0
  144. package/dist/types/models/UnhandledError.d.ts +11 -0
  145. package/dist/types/models/event/CycleContext.d.ts +9 -0
  146. package/dist/types/models/event/EmissionExecutor.d.ts +11 -0
  147. package/dist/types/models/event/InterceptorPipeline.d.ts +5 -0
  148. package/dist/types/models/event/ListenerRegistry.d.ts +31 -0
  149. package/dist/types/models/event/types.d.ts +50 -0
  150. package/dist/types/models/index.d.ts +13 -0
  151. package/dist/types/models/middleware/InterceptorRegistry.d.ts +56 -0
  152. package/dist/types/models/middleware/MiddlewareResolver.d.ts +31 -0
  153. package/dist/types/models/middleware/ResourceMiddlewareComposer.d.ts +34 -0
  154. package/dist/types/models/middleware/TaskMiddlewareComposer.d.ts +44 -0
  155. package/dist/types/models/middleware/ValidationHelper.d.ts +20 -0
  156. package/dist/types/models/middleware/index.d.ts +6 -0
  157. package/dist/types/models/middleware/types.d.ts +10 -0
  158. package/dist/types/models/utils/findCircularDependencies.d.ts +16 -0
  159. package/dist/types/models/utils/safeStringify.d.ts +3 -0
  160. package/dist/types/node/durable/bus/MemoryEventBus.d.ts +7 -0
  161. package/dist/types/node/durable/bus/NoopEventBus.d.ts +6 -0
  162. package/dist/types/node/durable/bus/RedisEventBus.d.ts +30 -0
  163. package/dist/types/node/durable/core/CronParser.d.ts +15 -0
  164. package/dist/types/node/durable/core/DurableContext.d.ts +64 -0
  165. package/dist/types/node/durable/core/DurableOperator.d.ts +47 -0
  166. package/dist/types/node/durable/core/DurableResource.d.ts +80 -0
  167. package/dist/types/node/durable/core/DurableService.d.ts +73 -0
  168. package/dist/types/node/durable/core/DurableWorker.d.ts +19 -0
  169. package/dist/types/node/durable/core/StepBuilder.d.ts +23 -0
  170. package/dist/types/node/durable/core/audit.d.ts +152 -0
  171. package/dist/types/node/durable/core/createRunnerDurableRuntime.d.ts +18 -0
  172. package/dist/types/node/durable/core/durable-context/DurableContext.audit.d.ts +14 -0
  173. package/dist/types/node/durable/core/durable-context/DurableContext.determinism.d.ts +13 -0
  174. package/dist/types/node/durable/core/durable-context/DurableContext.emit.d.ts +16 -0
  175. package/dist/types/node/durable/core/durable-context/DurableContext.sleep.d.ts +16 -0
  176. package/dist/types/node/durable/core/durable-context/DurableContext.steps.d.ts +25 -0
  177. package/dist/types/node/durable/core/durable-context/DurableContext.switch.d.ts +22 -0
  178. package/dist/types/node/durable/core/durable-context/DurableContext.waitForSignal.d.ts +23 -0
  179. package/dist/types/node/durable/core/flowShape.d.ts +50 -0
  180. package/dist/types/node/durable/core/ids.d.ts +11 -0
  181. package/dist/types/node/durable/core/index.d.ts +11 -0
  182. package/dist/types/node/durable/core/interfaces/bus.d.ts +13 -0
  183. package/dist/types/node/durable/core/interfaces/context.d.ts +105 -0
  184. package/dist/types/node/durable/core/interfaces/queue.d.ts +17 -0
  185. package/dist/types/node/durable/core/interfaces/service.d.ts +146 -0
  186. package/dist/types/node/durable/core/interfaces/store.d.ts +66 -0
  187. package/dist/types/node/durable/core/managers/AuditLogger.d.ts +29 -0
  188. package/dist/types/node/durable/core/managers/ExecutionManager.d.ts +48 -0
  189. package/dist/types/node/durable/core/managers/PollingManager.d.ts +48 -0
  190. package/dist/types/node/durable/core/managers/ScheduleManager.d.ts +33 -0
  191. package/dist/types/node/durable/core/managers/SignalHandler.d.ts +25 -0
  192. package/dist/types/node/durable/core/managers/TaskRegistry.d.ts +16 -0
  193. package/dist/types/node/durable/core/managers/WaitManager.d.ts +26 -0
  194. package/dist/types/node/durable/core/managers/index.d.ts +7 -0
  195. package/dist/types/node/durable/core/resource.d.ts +14 -0
  196. package/dist/types/node/durable/core/types.d.ts +84 -0
  197. package/dist/types/node/durable/core/utils.d.ts +28 -0
  198. package/dist/types/node/durable/dashboard/server.d.ts +20 -0
  199. package/dist/types/node/durable/emitters/runnerAuditEmitter.d.ts +6 -0
  200. package/dist/types/node/durable/events.d.ts +76 -0
  201. package/dist/types/node/durable/index.d.ts +34 -0
  202. package/dist/types/node/durable/optionalDeps/amqplib.d.ts +1 -0
  203. package/dist/types/node/durable/optionalDeps/ioredis.d.ts +1 -0
  204. package/dist/types/node/durable/queue/MemoryQueue.d.ts +12 -0
  205. package/dist/types/node/durable/queue/RabbitMQQueue.d.ts +30 -0
  206. package/dist/types/node/durable/resources/isolation.d.ts +15 -0
  207. package/dist/types/node/durable/resources/memoryDurableResource.d.ts +21 -0
  208. package/dist/types/node/durable/resources/redisDurableResource.d.ts +35 -0
  209. package/dist/types/node/durable/store/MemoryStore.d.ts +56 -0
  210. package/dist/types/node/durable/store/RedisStore.d.ts +89 -0
  211. package/dist/types/node/durable/test-utils.d.ts +29 -0
  212. package/dist/types/node/exposure/allowList.d.ts +3 -0
  213. package/dist/types/node/exposure/authenticator.d.ts +16 -0
  214. package/dist/types/node/exposure/cors.d.ts +4 -0
  215. package/dist/types/node/exposure/createNodeExposure.d.ts +2 -0
  216. package/dist/types/node/exposure/exposureServer.d.ts +18 -0
  217. package/dist/types/node/exposure/handlers/contextWrapper.d.ts +18 -0
  218. package/dist/types/node/exposure/handlers/errorHandlers.d.ts +23 -0
  219. package/dist/types/node/exposure/handlers/eventHandler.d.ts +20 -0
  220. package/dist/types/node/exposure/handlers/taskHandler.d.ts +24 -0
  221. package/dist/types/node/exposure/httpResponse.d.ts +10 -0
  222. package/dist/types/node/exposure/index.d.ts +3 -0
  223. package/dist/types/node/exposure/logging.d.ts +4 -0
  224. package/dist/types/node/exposure/multipart.d.ts +36 -0
  225. package/dist/types/node/exposure/requestBody.d.ts +11 -0
  226. package/dist/types/node/exposure/requestContext.d.ts +17 -0
  227. package/dist/types/node/exposure/requestHandlers.d.ts +29 -0
  228. package/dist/types/node/exposure/resource.d.ts +12 -0
  229. package/dist/types/node/exposure/resourceTypes.d.ts +73 -0
  230. package/dist/types/node/exposure/router.d.ts +17 -0
  231. package/dist/types/node/exposure/serverLifecycle.d.ts +13 -0
  232. package/dist/types/node/exposure/types.d.ts +45 -0
  233. package/dist/types/node/exposure/utils.d.ts +17 -0
  234. package/dist/types/node/files/createNodeFile.d.ts +9 -0
  235. package/dist/types/node/files/index.d.ts +4 -0
  236. package/dist/types/node/files/inputFile.model.d.ts +22 -0
  237. package/dist/types/node/files/inputFile.utils.d.ts +14 -0
  238. package/dist/types/node/http/http-mixed-client.d.ts +45 -0
  239. package/dist/types/node/http/http-mixed-client.factory.resource.d.ts +17 -0
  240. package/dist/types/node/http/http-smart-client.factory.resource.d.ts +16 -0
  241. package/dist/types/node/http/http-smart-client.model.d.ts +27 -0
  242. package/dist/types/node/http/index.d.ts +4 -0
  243. package/dist/types/node/index.d.ts +1 -0
  244. package/dist/types/node/node.d.ts +193 -0
  245. package/dist/types/node/platform/createFile.d.ts +9 -0
  246. package/dist/types/node/tunnel/allowlist.d.ts +7 -0
  247. package/dist/types/node/tunnel/index.d.ts +2 -0
  248. package/dist/types/node/upload/manifest.d.ts +23 -0
  249. package/dist/types/platform/adapters/browser.d.ts +14 -0
  250. package/dist/types/platform/adapters/edge.d.ts +5 -0
  251. package/dist/types/platform/adapters/node-als.d.ts +1 -0
  252. package/dist/types/platform/adapters/node.d.ts +15 -0
  253. package/dist/types/platform/adapters/universal-generic.d.ts +14 -0
  254. package/dist/types/platform/adapters/universal.d.ts +18 -0
  255. package/dist/types/platform/createFile.d.ts +10 -0
  256. package/dist/types/platform/createWebFile.d.ts +11 -0
  257. package/dist/types/platform/factory.d.ts +2 -0
  258. package/dist/types/platform/index.d.ts +27 -0
  259. package/dist/types/platform/types.d.ts +31 -0
  260. package/dist/types/processHooks.d.ts +2 -0
  261. package/dist/types/public-types.d.ts +13 -0
  262. package/dist/types/public.d.ts +210 -0
  263. package/dist/types/run.d.ts +14 -0
  264. package/dist/types/serializer/Serializer.d.ts +84 -0
  265. package/dist/types/serializer/binary-builtins.d.ts +5 -0
  266. package/dist/types/serializer/builtins.d.ts +47 -0
  267. package/dist/types/serializer/deserializer.d.ts +27 -0
  268. package/dist/types/serializer/error-url-builtins.d.ts +13 -0
  269. package/dist/types/serializer/graph-serializer.d.ts +27 -0
  270. package/dist/types/serializer/index.d.ts +6 -0
  271. package/dist/types/serializer/option-normalizers.d.ts +2 -0
  272. package/dist/types/serializer/regexp-validator.d.ts +34 -0
  273. package/dist/types/serializer/serialize-utils.d.ts +15 -0
  274. package/dist/types/serializer/special-values.d.ts +20 -0
  275. package/dist/types/serializer/tree-serializer.d.ts +20 -0
  276. package/dist/types/serializer/type-registry.d.ts +58 -0
  277. package/dist/types/serializer/types.d.ts +126 -0
  278. package/dist/types/serializer/validation.d.ts +34 -0
  279. package/dist/types/testing.d.ts +19 -0
  280. package/dist/types/tools/detectRunnerMode.d.ts +9 -0
  281. package/dist/types/tools/getCallerFile.d.ts +1 -0
  282. package/dist/types/tools/throws.d.ts +7 -0
  283. package/dist/types/tunnels/buildUniversalManifest.d.ts +24 -0
  284. package/dist/types/types/asyncContext.d.ts +41 -0
  285. package/dist/types/types/contracts.d.ts +62 -0
  286. package/dist/types/types/error.d.ts +39 -0
  287. package/dist/types/types/event.d.ts +79 -0
  288. package/dist/types/types/executionJournal.d.ts +29 -0
  289. package/dist/types/types/hook.d.ts +23 -0
  290. package/dist/types/types/inputFile.d.ts +34 -0
  291. package/dist/types/types/meta.d.ts +22 -0
  292. package/dist/types/types/resource.d.ts +133 -0
  293. package/dist/types/types/resourceMiddleware.d.ts +48 -0
  294. package/dist/types/types/runner.d.ts +68 -0
  295. package/dist/types/types/storeTypes.d.ts +46 -0
  296. package/dist/types/types/symbols.d.ts +34 -0
  297. package/dist/types/types/tag.d.ts +45 -0
  298. package/dist/types/types/task.d.ts +76 -0
  299. package/dist/types/types/taskMiddleware.d.ts +55 -0
  300. package/dist/types/types/utilities.d.ts +125 -0
  301. package/dist/universal/index.cjs +851 -476
  302. package/dist/universal/index.cjs.map +1 -1
  303. package/dist/universal/index.mjs +849 -476
  304. package/dist/universal/index.mjs.map +1 -1
  305. package/package.json +15 -14
  306. package/readmes/AI.md +30 -9
  307. package/dist/browser/index.d.mts +0 -2919
  308. package/dist/browser/index.d.ts +0 -2919
  309. package/dist/edge/index.d.mts +0 -2919
  310. package/dist/edge/index.d.ts +0 -2919
  311. package/dist/node/node.d.mts +0 -4622
  312. package/dist/node/node.d.ts +0 -4622
  313. package/dist/universal/index.d.mts +0 -2919
  314. 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,6 @@
1
+ export * from "./debug.resource";
2
+ export * from "./debugConfig.resource";
3
+ export * from "./types";
4
+ export * from "./globalEvent.hook";
5
+ export * from "./executionTracker.middleware";
6
+ export * from "./debug.tag";
@@ -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,2 @@
1
+ import { ITaggable } from "../../../defs";
2
+ export declare const hasSystemTag: (definition: ITaggable) => boolean;
@@ -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,2 @@
1
+ import type { TunnelRunner } from "./types";
2
+ export declare const tunnelTag: import("../../..").ITag<void, void, TunnelRunner>;
@@ -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 {};