@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,9 @@
1
+ export { defineTask } from "./definers/defineTask";
2
+ export { defineHook } from "./definers/defineHook";
3
+ export { defineResource } from "./definers/defineResource";
4
+ export { defineEvent } from "./definers/defineEvent";
5
+ export { defineTaskMiddleware } from "./definers/defineTaskMiddleware";
6
+ export { defineResourceMiddleware } from "./definers/defineResourceMiddleware";
7
+ export { defineOverride } from "./definers/defineOverride";
8
+ export { defineTag } from "./definers/defineTag";
9
+ export { isTask, isPhantomTask, isResource, isResourceWithConfig, isEvent, isHook, isTaskMiddleware, isResourceMiddleware, isTag, isOptional, isError, isAsyncContext, } from "./definers/tools";
@@ -0,0 +1,6 @@
1
+ import type { AsyncContextFluentBuilder } from "./fluent-builder.interface";
2
+ import type { BuilderState } from "./types";
3
+ /**
4
+ * Creates an AsyncContextFluentBuilder from the given state.
5
+ */
6
+ export declare function makeAsyncContextBuilder<T>(state: BuilderState<T>): AsyncContextFluentBuilder<T>;
@@ -0,0 +1,9 @@
1
+ import type { IAsyncContext, IAsyncContextMeta, IValidationSchema } from "../../../defs";
2
+ export interface AsyncContextFluentBuilder<T = unknown> {
3
+ id: string;
4
+ serialize(fn: (data: T) => string): AsyncContextFluentBuilder<T>;
5
+ parse(fn: (raw: string) => T): AsyncContextFluentBuilder<T>;
6
+ configSchema(schema: IValidationSchema<T>): AsyncContextFluentBuilder<T>;
7
+ meta<TNewMeta extends IAsyncContextMeta>(m: TNewMeta): AsyncContextFluentBuilder<T>;
8
+ build(): IAsyncContext<T>;
9
+ }
@@ -0,0 +1,10 @@
1
+ import type { AsyncContextFluentBuilder } from "./fluent-builder.interface";
2
+ export * from "./fluent-builder.interface";
3
+ export * from "./fluent-builder";
4
+ export * from "./types";
5
+ export * from "./utils";
6
+ /**
7
+ * Entry point for creating an async context builder.
8
+ */
9
+ export declare function asyncContextBuilder<T = unknown>(id: string): AsyncContextFluentBuilder<T>;
10
+ export declare const asyncContext: typeof asyncContextBuilder;
@@ -0,0 +1,13 @@
1
+ import type { IAsyncContextMeta, IValidationSchema } from "../../../defs";
2
+ /**
3
+ * Internal state for the AsyncContextFluentBuilder.
4
+ * Kept immutable and frozen.
5
+ */
6
+ export type BuilderState<T> = Readonly<{
7
+ id: string;
8
+ filePath: string;
9
+ serialize?: (data: T) => string;
10
+ parse?: (raw: string) => T;
11
+ configSchema?: IValidationSchema<T>;
12
+ meta?: IAsyncContextMeta;
13
+ }>;
@@ -0,0 +1,5 @@
1
+ import type { BuilderState } from "./types";
2
+ /**
3
+ * Clones and patches the builder state immutably.
4
+ */
5
+ export declare function clone<T>(s: BuilderState<T>, patch: Partial<BuilderState<T>>): BuilderState<T>;
@@ -0,0 +1 @@
1
+ export * from "./asyncContext/index";
@@ -0,0 +1,30 @@
1
+ import type { DependencyMapType, IEventDefinition, IResourceDefinition, ITaskDefinition, IHookDefinition, ITaskMiddlewareDefinition, IResourceMiddlewareDefinition, TagType, ResourceMiddlewareAttachmentType, TaskMiddlewareAttachmentType } from "../../defs";
2
+ import type { IResourceMeta, ITaskMeta } from "../../defs";
3
+ export type Immutable<T> = {
4
+ readonly [K in keyof T]: Immutable<T[K]>;
5
+ };
6
+ export type ReadonlyDeep<T> = Immutable<T>;
7
+ export interface ResourceBuilder<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TContext = any, TMeta extends IResourceMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[] = ResourceMiddlewareAttachmentType[]> {
8
+ id: string;
9
+ definition: ReadonlyDeep<IResourceDefinition<TConfig, TValue, TDeps, TContext, any, any, TMeta, TTags, TMiddleware>>;
10
+ }
11
+ export interface TaskBuilder<TInput = undefined, TOutput extends Promise<any> = any, TDeps extends DependencyMapType = {}, TMeta extends ITaskMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends TaskMiddlewareAttachmentType[] = TaskMiddlewareAttachmentType[]> {
12
+ id: string;
13
+ definition: ReadonlyDeep<ITaskDefinition<TInput, TOutput, TDeps, TMeta, TTags, TMiddleware>>;
14
+ }
15
+ export interface EventBuilder<TPayload = void> {
16
+ id: string;
17
+ definition: ReadonlyDeep<IEventDefinition<TPayload>>;
18
+ }
19
+ export interface HookBuilder<TDeps extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] = any, TMeta extends ITaskMeta = any> {
20
+ id: string;
21
+ definition: ReadonlyDeep<IHookDefinition<TDeps, TOn, TMeta>>;
22
+ }
23
+ export interface TaskMiddlewareBuilder<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any> {
24
+ id: string;
25
+ definition: ReadonlyDeep<ITaskMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>>;
26
+ }
27
+ export interface ResourceMiddlewareBuilder<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any> {
28
+ id: string;
29
+ definition: ReadonlyDeep<IResourceMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>>;
30
+ }
@@ -0,0 +1,7 @@
1
+ import type { DefaultErrorType } from "../../../defs";
2
+ import type { ErrorFluentBuilder } from "./fluent-builder.interface";
3
+ import type { BuilderState } from "./types";
4
+ /**
5
+ * Creates an ErrorFluentBuilder from the given state.
6
+ */
7
+ export declare function makeErrorBuilder<TData extends DefaultErrorType>(state: BuilderState<TData>): ErrorFluentBuilder<TData>;
@@ -0,0 +1,10 @@
1
+ import type { DefaultErrorType, IErrorMeta, IValidationSchema, IErrorHelper } from "../../../defs";
2
+ export interface ErrorFluentBuilder<TData extends DefaultErrorType = DefaultErrorType> {
3
+ id: string;
4
+ serialize(fn: (data: TData) => string): ErrorFluentBuilder<TData>;
5
+ parse(fn: (raw: string) => TData): ErrorFluentBuilder<TData>;
6
+ dataSchema(schema: IValidationSchema<TData>): ErrorFluentBuilder<TData>;
7
+ build(): IErrorHelper<TData>;
8
+ format(fn: (data: TData) => string): ErrorFluentBuilder<TData>;
9
+ meta<TNewMeta extends IErrorMeta>(m: TNewMeta): ErrorFluentBuilder<TData>;
10
+ }
@@ -0,0 +1,11 @@
1
+ import type { DefaultErrorType } from "../../../defs";
2
+ import type { ErrorFluentBuilder } from "./fluent-builder.interface";
3
+ export * from "./fluent-builder.interface";
4
+ export * from "./fluent-builder";
5
+ export * from "./types";
6
+ export * from "./utils";
7
+ /**
8
+ * Entry point for creating an error builder.
9
+ */
10
+ export declare function errorBuilder<TData extends DefaultErrorType = DefaultErrorType>(id: string): ErrorFluentBuilder<TData>;
11
+ export declare const error: typeof errorBuilder;
@@ -0,0 +1,14 @@
1
+ import type { DefaultErrorType, IErrorMeta, IValidationSchema } from "../../../defs";
2
+ /**
3
+ * Internal state for the ErrorFluentBuilder.
4
+ * Kept immutable and frozen.
5
+ */
6
+ export type BuilderState<TData extends DefaultErrorType> = Readonly<{
7
+ id: string;
8
+ filePath: string;
9
+ format?: (data: TData) => string;
10
+ serialize?: (data: TData) => string;
11
+ parse?: (raw: string) => TData;
12
+ dataSchema?: IValidationSchema<TData>;
13
+ meta?: IErrorMeta;
14
+ }>;
@@ -0,0 +1,6 @@
1
+ import type { DefaultErrorType } from "../../../defs";
2
+ import type { BuilderState } from "./types";
3
+ /**
4
+ * Clones and patches the builder state immutably.
5
+ */
6
+ export declare function clone<TData extends DefaultErrorType>(s: BuilderState<TData>, patch: Partial<BuilderState<TData>>): BuilderState<TData>;
@@ -0,0 +1 @@
1
+ export * from "./error/index";
@@ -0,0 +1,7 @@
1
+ import type { EventFluentBuilder } from "./fluent-builder.interface";
2
+ import type { BuilderState } from "./types";
3
+ /**
4
+ * Creates an EventFluentBuilder from the given state.
5
+ * Each builder method returns a new builder with updated state.
6
+ */
7
+ export declare function makeEventBuilder<TPayload>(state: BuilderState<TPayload>): EventFluentBuilder<TPayload>;
@@ -0,0 +1,18 @@
1
+ import type { IEvent, IEventMeta, IValidationSchema, TagType } from "../../../defs";
2
+ export interface EventFluentBuilder<TPayload = void> {
3
+ id: string;
4
+ payloadSchema<TNew>(schema: IValidationSchema<TNew>): EventFluentBuilder<TNew>;
5
+ tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
6
+ override?: boolean;
7
+ }): EventFluentBuilder<TPayload>;
8
+ meta<TNewMeta extends IEventMeta>(m: TNewMeta): EventFluentBuilder<TPayload>;
9
+ /**
10
+ * Enable parallel execution for this event's listeners.
11
+ * When enabled, listeners with the same `order` run concurrently within a batch.
12
+ * Batches execute sequentially in ascending order priority.
13
+ *
14
+ * @param enabled - Whether to enable parallel execution (default: true)
15
+ */
16
+ parallel(enabled?: boolean): EventFluentBuilder<TPayload>;
17
+ build(): IEvent<TPayload>;
18
+ }
@@ -0,0 +1,10 @@
1
+ import type { EventFluentBuilder } from "./fluent-builder.interface";
2
+ export * from "./fluent-builder.interface";
3
+ export * from "./fluent-builder";
4
+ export * from "./types";
5
+ export * from "./utils";
6
+ /**
7
+ * Entry point for creating an event builder.
8
+ */
9
+ export declare function eventBuilder<TPayload = void>(id: string): EventFluentBuilder<TPayload>;
10
+ export declare const event: typeof eventBuilder;
@@ -0,0 +1,8 @@
1
+ import type { IEventDefinition } from "../../../defs";
2
+ /**
3
+ * Internal state for the EventFluentBuilder.
4
+ * Kept immutable and frozen.
5
+ */
6
+ export type BuilderState<TPayload> = Readonly<Required<Pick<IEventDefinition<TPayload>, "id" | "meta" | "tags">> & Pick<IEventDefinition<TPayload>, "parallel" | "payloadSchema"> & {
7
+ filePath: string;
8
+ }>;
@@ -0,0 +1,9 @@
1
+ import type { BuilderState } from "./types";
2
+ /**
3
+ * Clones and patches the builder state immutably.
4
+ */
5
+ export declare function clone<TPayload>(s: BuilderState<TPayload>, patch: Partial<BuilderState<TPayload>>): BuilderState<TPayload>;
6
+ /**
7
+ * Generic array merge with override support.
8
+ */
9
+ export declare function mergeArray<T>(existing: ReadonlyArray<T> | undefined, addition: ReadonlyArray<T>, override: boolean): T[];
@@ -0,0 +1 @@
1
+ export * from "./event/index";
@@ -0,0 +1,8 @@
1
+ import type { DependencyMapType, IEventDefinition, ITaskMeta } from "../../../defs";
2
+ import type { HookFluentBuilder } from "./fluent-builder.interface";
3
+ import type { BuilderState } from "./types";
4
+ /**
5
+ * Creates a HookFluentBuilder from the given state.
6
+ * Each builder method returns a new builder with updated state.
7
+ */
8
+ export declare function makeHookBuilder<TDeps extends DependencyMapType, TOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] | undefined, TMeta extends ITaskMeta>(state: BuilderState<TDeps, TOn, TMeta>): HookFluentBuilder<TDeps, TOn, TMeta>;
@@ -0,0 +1,27 @@
1
+ import type { DependencyMapType, IEventDefinition, IHook, IHookDefinition, ITaskMeta, TagType } from "../../../defs";
2
+ /** Valid event targets for hook's .on() method */
3
+ export type ValidOnTarget = "*" | IEventDefinition<any> | readonly IEventDefinition<any>[];
4
+ /** Resolved TOn when valid, or `any` when undefined (build will throw at runtime) */
5
+ export type ResolvedOn<TOn> = TOn extends ValidOnTarget ? TOn : any;
6
+ export interface HookFluentBuilder<TDeps extends DependencyMapType = {}, TOn extends ValidOnTarget | undefined = undefined, TMeta extends ITaskMeta = ITaskMeta> {
7
+ id: string;
8
+ on<TNewOn extends ValidOnTarget>(on: TNewOn): HookFluentBuilder<TDeps, TNewOn, TMeta>;
9
+ order(order: number): HookFluentBuilder<TDeps, TOn, TMeta>;
10
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options?: {
11
+ override?: false;
12
+ }): HookFluentBuilder<TDeps & TNewDeps, TOn, TMeta>;
13
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options: {
14
+ override: true;
15
+ }): HookFluentBuilder<TNewDeps, TOn, TMeta>;
16
+ tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
17
+ override?: boolean;
18
+ }): HookFluentBuilder<TDeps, TOn, TMeta>;
19
+ meta<TNewMeta extends ITaskMeta>(m: TNewMeta): HookFluentBuilder<TDeps, TOn, TNewMeta>;
20
+ /** Set the hook's run handler. Required before build(). */
21
+ run(fn: IHookDefinition<TDeps, ResolvedOn<TOn>, TMeta>["run"]): HookFluentBuilder<TDeps, TOn, TMeta>;
22
+ /**
23
+ * Build the hook definition. Requires .on() and .run() to be called first.
24
+ * @throws {Error} if on or run are not set
25
+ */
26
+ build(): IHook<TDeps, ResolvedOn<TOn>, TMeta>;
27
+ }
@@ -0,0 +1,12 @@
1
+ import type { ITaskMeta } from "../../../defs";
2
+ import type { HookFluentBuilder } from "./fluent-builder.interface";
3
+ export * from "./fluent-builder.interface";
4
+ export * from "./fluent-builder";
5
+ export * from "./types";
6
+ export * from "./utils";
7
+ /**
8
+ * Entry point for creating a hook builder.
9
+ * Requires calling .on() and .run() before .build().
10
+ */
11
+ export declare function hookBuilder(id: string): HookFluentBuilder<{}, undefined, ITaskMeta>;
12
+ export declare const hook: typeof hookBuilder;
@@ -0,0 +1,14 @@
1
+ import type { DependencyMapType, IEventDefinition, IHookDefinition, ITaskMeta } from "../../../defs";
2
+ /**
3
+ * Internal state for the HookFluentBuilder.
4
+ * Kept immutable and frozen.
5
+ * Note: `on` and `run` can be undefined during building,
6
+ * but are validated as required in build().
7
+ */
8
+ export type BuilderState<TDeps extends DependencyMapType, TOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] | undefined, TMeta extends ITaskMeta> = Readonly<Omit<Required<Pick<IHookDefinition<TDeps, NonNullable<TOn>, TMeta>, "id" | "dependencies" | "order" | "meta" | "tags">>, never> & {
9
+ filePath: string;
10
+ /** Event(s) to listen to. Required before build(). */
11
+ on: TOn;
12
+ /** Hook handler function. Required before build(). */
13
+ run: IHookDefinition<TDeps, NonNullable<TOn>, TMeta>["run"] | undefined;
14
+ }>;
@@ -0,0 +1,14 @@
1
+ import type { DependencyMapType, IEventDefinition, ITaskMeta } from "../../../defs";
2
+ import type { BuilderState } from "./types";
3
+ /**
4
+ * Clones and patches the builder state immutably.
5
+ */
6
+ export declare function clone<TDeps extends DependencyMapType, TOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] | undefined, TMeta extends ITaskMeta, TNextDeps extends DependencyMapType = TDeps, TNextOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] | undefined = TOn, TNextMeta extends ITaskMeta = TMeta>(s: BuilderState<TDeps, TOn, TMeta>, patch: Partial<BuilderState<TNextDeps, TNextOn, TNextMeta>>): BuilderState<TNextDeps, TNextOn, TNextMeta>;
7
+ /**
8
+ * Generic array merge with override support.
9
+ */
10
+ export declare function mergeArray<T>(existing: ReadonlyArray<T> | undefined, addition: ReadonlyArray<T>, override: boolean): T[];
11
+ /**
12
+ * Merges dependencies handling all combinations of objects and functions.
13
+ */
14
+ export declare function mergeDependencies<TExisting extends DependencyMapType, TNew extends DependencyMapType>(existing: TExisting | (() => TExisting) | undefined, addition: TNew | (() => TNew), override: boolean): (TExisting & TNew) | (() => TExisting & TNew);
@@ -0,0 +1 @@
1
+ export * from "./hook/index";
@@ -0,0 +1,19 @@
1
+ import type { DependencyMapType } from "../../../defs";
2
+ import type { TaskMiddlewareFluentBuilder } from "./task.interface";
3
+ import type { ResourceMiddlewareFluentBuilder } from "./resource.interface";
4
+ export * from "./task.interface";
5
+ export * from "./resource.interface";
6
+ export * from "./task";
7
+ export * from "./resource";
8
+ export * from "./types";
9
+ export * from "./utils";
10
+ /**
11
+ * Entry point for creating a task middleware builder.
12
+ */
13
+ export declare function taskMiddlewareBuilder<C = void, In = void, Out = void, D extends DependencyMapType = {}>(id: string): TaskMiddlewareFluentBuilder<C, In, Out, D>;
14
+ /**
15
+ * Entry point for creating a resource middleware builder.
16
+ */
17
+ export declare function resourceMiddlewareBuilder<C = void, In = void, Out = void, D extends DependencyMapType = {}>(id: string): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
18
+ export declare const taskMiddleware: typeof taskMiddlewareBuilder;
19
+ export declare const resourceMiddleware: typeof resourceMiddlewareBuilder;
@@ -0,0 +1,7 @@
1
+ import type { DependencyMapType } from "../../../defs";
2
+ import type { ResourceMiddlewareFluentBuilder } from "./resource.interface";
3
+ import type { ResMwState } from "./types";
4
+ /**
5
+ * Creates a ResourceMiddlewareFluentBuilder from the given state.
6
+ */
7
+ export declare function makeResourceMiddlewareBuilder<C, In, Out, D extends DependencyMapType>(state: ResMwState<C, In, Out, D>): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
@@ -0,0 +1,18 @@
1
+ import type { DependencyMapType, IResource, IResourceMiddleware, IResourceMiddlewareDefinition, IValidationSchema, IMiddlewareMeta, TagType } from "../../../defs";
2
+ export interface ResourceMiddlewareFluentBuilder<C = any, In = void, Out = void, D extends DependencyMapType = {}> {
3
+ id: string;
4
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options?: {
5
+ override?: false;
6
+ }): ResourceMiddlewareFluentBuilder<C, In, Out, D & TNewDeps>;
7
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options: {
8
+ override: true;
9
+ }): ResourceMiddlewareFluentBuilder<C, In, Out, TNewDeps>;
10
+ configSchema<TNew>(schema: IValidationSchema<TNew>): ResourceMiddlewareFluentBuilder<TNew, In, Out, D>;
11
+ run(fn: IResourceMiddlewareDefinition<C, In, Out, D>["run"]): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
12
+ meta<TNewMeta extends IMiddlewareMeta>(m: TNewMeta): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
13
+ tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
14
+ override?: boolean;
15
+ }): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
16
+ everywhere(flag: boolean | ((resource: IResource<any, any, any, any, any>) => boolean)): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
17
+ build(): IResourceMiddleware<C, In, Out, D>;
18
+ }
@@ -0,0 +1,7 @@
1
+ import type { DependencyMapType } from "../../../defs";
2
+ import type { TaskMiddlewareFluentBuilder } from "./task.interface";
3
+ import type { TaskMwState } from "./types";
4
+ /**
5
+ * Creates a TaskMiddlewareFluentBuilder from the given state.
6
+ */
7
+ export declare function makeTaskMiddlewareBuilder<C, In, Out, D extends DependencyMapType>(state: TaskMwState<C, In, Out, D>): TaskMiddlewareFluentBuilder<C, In, Out, D>;
@@ -0,0 +1,18 @@
1
+ import type { DependencyMapType, ITask, ITaskMiddleware, ITaskMiddlewareDefinition, IValidationSchema, IMiddlewareMeta, TagType } from "../../../defs";
2
+ export interface TaskMiddlewareFluentBuilder<C = any, In = void, Out = void, D extends DependencyMapType = {}> {
3
+ id: string;
4
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options?: {
5
+ override?: false;
6
+ }): TaskMiddlewareFluentBuilder<C, In, Out, D & TNewDeps>;
7
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options: {
8
+ override: true;
9
+ }): TaskMiddlewareFluentBuilder<C, In, Out, TNewDeps>;
10
+ configSchema<TNew>(schema: IValidationSchema<TNew>): TaskMiddlewareFluentBuilder<TNew, In, Out, D>;
11
+ run(fn: ITaskMiddlewareDefinition<C, In, Out, D>["run"]): TaskMiddlewareFluentBuilder<C, In, Out, D>;
12
+ meta<TNewMeta extends IMiddlewareMeta>(m: TNewMeta): TaskMiddlewareFluentBuilder<C, In, Out, D>;
13
+ tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
14
+ override?: boolean;
15
+ }): TaskMiddlewareFluentBuilder<C, In, Out, D>;
16
+ everywhere(flag: boolean | ((task: ITask<any, any, any, any>) => boolean)): TaskMiddlewareFluentBuilder<C, In, Out, D>;
17
+ build(): ITaskMiddleware<C, In, Out, D>;
18
+ }
@@ -0,0 +1,13 @@
1
+ import type { DependencyMapType, ITaskMiddlewareDefinition, IResourceMiddlewareDefinition } from "../../../defs";
2
+ /**
3
+ * Internal state for the TaskMiddlewareFluentBuilder.
4
+ */
5
+ export type TaskMwState<C, In, Out, D extends DependencyMapType> = Readonly<Required<Pick<ITaskMiddlewareDefinition<C, In, Out, D>, "id" | "dependencies" | "configSchema" | "run" | "meta" | "tags" | "everywhere">> & {
6
+ filePath: string;
7
+ }>;
8
+ /**
9
+ * Internal state for the ResourceMiddlewareFluentBuilder.
10
+ */
11
+ export type ResMwState<C, In, Out, D extends DependencyMapType> = Readonly<Required<Pick<IResourceMiddlewareDefinition<C, In, Out, D>, "id" | "dependencies" | "configSchema" | "run" | "meta" | "tags" | "everywhere">> & {
12
+ filePath: string;
13
+ }>;
@@ -0,0 +1,18 @@
1
+ import type { DependencyMapType } from "../../../defs";
2
+ import type { TaskMwState, ResMwState } from "./types";
3
+ /**
4
+ * Clones and patches the Task middleware state immutably.
5
+ */
6
+ export declare function cloneTask<C, In, Out, D extends DependencyMapType>(s: TaskMwState<C, In, Out, D>, patch: Partial<TaskMwState<C, In, Out, D>>): TaskMwState<C, In, Out, D>;
7
+ /**
8
+ * Clones and patches the Resource middleware state immutably.
9
+ */
10
+ export declare function cloneRes<C, In, Out, D extends DependencyMapType>(s: ResMwState<C, In, Out, D>, patch: Partial<ResMwState<C, In, Out, D>>): ResMwState<C, In, Out, D>;
11
+ /**
12
+ * Generic array merge with override support.
13
+ */
14
+ export declare function mergeArray<T>(existing: ReadonlyArray<T> | undefined, addition: ReadonlyArray<T>, override: boolean): T[];
15
+ /**
16
+ * Merges dependencies handling all combinations of objects and functions.
17
+ */
18
+ export declare function mergeDependencies<C, TExisting extends DependencyMapType, TNew extends DependencyMapType>(existing: TExisting | ((config: C) => TExisting) | undefined, addition: TNew | ((config: C) => TNew), override: boolean): (TExisting & TNew) | ((config: C) => TExisting & TNew);
@@ -0,0 +1 @@
1
+ export * from "./middleware/index";
@@ -0,0 +1,16 @@
1
+ import type { DependencyMapType, IEventDefinition, IHook, IHookDefinition, ITaskMeta, TagType } from "../../../defs";
2
+ export type HookOn = "*" | IEventDefinition<any> | readonly IEventDefinition<any>[];
3
+ export interface HookOverrideBuilder<TDeps extends DependencyMapType, TOn extends HookOn, TMeta extends ITaskMeta> {
4
+ id: string;
5
+ order(order: number): HookOverrideBuilder<TDeps, TOn, TMeta>;
6
+ dependencies<TNewDeps extends DependencyMapType, TIsOverride extends boolean = false>(deps: TNewDeps | (() => TNewDeps), options?: {
7
+ override?: TIsOverride;
8
+ }): HookOverrideBuilder<TIsOverride extends true ? TNewDeps : TDeps & TNewDeps, TOn, TMeta>;
9
+ tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
10
+ override?: boolean;
11
+ }): HookOverrideBuilder<TDeps, TOn, TMeta>;
12
+ meta<TNewMeta extends ITaskMeta>(m: TNewMeta): HookOverrideBuilder<TDeps, TOn, TNewMeta>;
13
+ run(fn: IHookDefinition<TDeps, TOn, TMeta>["run"]): HookOverrideBuilder<TDeps, TOn, TMeta>;
14
+ build(): IHook<TDeps, TOn, TMeta>;
15
+ }
16
+ export declare function hookOverrideBuilder<TDeps extends DependencyMapType, TOn extends HookOn, TMeta extends ITaskMeta>(base: IHook<TDeps, TOn, TMeta>): HookOverrideBuilder<TDeps, TOn, TMeta>;
@@ -0,0 +1,11 @@
1
+ import type { DependencyMapType, IHook, IResource, IResourceMeta, IResourceMiddleware, ITask, ITaskMeta, ITaskMiddleware, ResourceMiddlewareAttachmentType, TagType, TaskMiddlewareAttachmentType } from "../../../defs";
2
+ import type { ResourceFluentBuilder } from "../resource/fluent-builder.interface";
3
+ import type { TaskFluentBuilder } from "../task/fluent-builder.interface";
4
+ import type { ResourceMiddlewareFluentBuilder } from "../middleware/resource.interface";
5
+ import type { TaskMiddlewareFluentBuilder } from "../middleware/task.interface";
6
+ import type { HookOn, HookOverrideBuilder } from "./hook";
7
+ export declare function override<TInput, TOutput extends Promise<any>, TDeps extends DependencyMapType, TMeta extends ITaskMeta, TTags extends TagType[], TMiddleware extends TaskMiddlewareAttachmentType[]>(base: ITask<TInput, TOutput, TDeps, TMeta, TTags, TMiddleware>): TaskFluentBuilder<TInput, TOutput, TDeps, TMeta, TTags, TMiddleware>;
8
+ export declare function override<TConfig, TValue extends Promise<any>, TDeps extends DependencyMapType, TContext, TMeta extends IResourceMeta, TTags extends TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[]>(base: IResource<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
9
+ export declare function override<TDeps extends DependencyMapType, TOn extends HookOn, TMeta extends ITaskMeta>(base: IHook<TDeps, TOn, TMeta>): HookOverrideBuilder<TDeps, TOn, TMeta>;
10
+ export declare function override<C, In, Out, D extends DependencyMapType>(base: ITaskMiddleware<C, In, Out, D>): TaskMiddlewareFluentBuilder<C, In, Out, D>;
11
+ export declare function override<C, In, Out, D extends DependencyMapType>(base: IResourceMiddleware<C, In, Out, D>): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
@@ -0,0 +1,3 @@
1
+ import type { DependencyMapType, IResourceMiddleware } from "../../../defs";
2
+ import type { ResourceMiddlewareFluentBuilder } from "../middleware/resource.interface";
3
+ export declare function resourceMiddlewareOverrideBuilder<C, In, Out, D extends DependencyMapType>(base: IResourceMiddleware<C, In, Out, D>): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
@@ -0,0 +1,3 @@
1
+ import type { DependencyMapType, IResource, IResourceMeta, ResourceMiddlewareAttachmentType, TagType } from "../../../defs";
2
+ import type { ResourceFluentBuilder } from "../resource/fluent-builder.interface";
3
+ export declare function resourceOverrideBuilder<TConfig, TValue extends Promise<any>, TDeps extends DependencyMapType, TContext, TMeta extends IResourceMeta, TTags extends TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[]>(base: IResource<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
@@ -0,0 +1,3 @@
1
+ import type { DependencyMapType, ITaskMiddleware } from "../../../defs";
2
+ import type { TaskMiddlewareFluentBuilder } from "../middleware/task.interface";
3
+ export declare function taskMiddlewareOverrideBuilder<C, In, Out, D extends DependencyMapType>(base: ITaskMiddleware<C, In, Out, D>): TaskMiddlewareFluentBuilder<C, In, Out, D>;
@@ -0,0 +1,3 @@
1
+ import type { DependencyMapType, ITask, ITaskMeta, TagType, TaskMiddlewareAttachmentType } from "../../../defs";
2
+ import type { TaskFluentBuilder } from "../task/fluent-builder.interface";
3
+ export declare function taskOverrideBuilder<TInput, TOutput extends Promise<any>, TDeps extends DependencyMapType, TMeta extends ITaskMeta, TTags extends TagType[], TMiddleware extends TaskMiddlewareAttachmentType[]>(base: ITask<TInput, TOutput, TDeps, TMeta, TTags, TMiddleware>): TaskFluentBuilder<TInput, TOutput, TDeps, TMeta, TTags, TMiddleware>;
@@ -0,0 +1,8 @@
1
+ import type { DependencyMapType, IResourceMeta, ResourceMiddlewareAttachmentType, TagType } from "../../../defs";
2
+ import type { ResourceFluentBuilder } from "./fluent-builder.interface";
3
+ import type { BuilderState } from "./types";
4
+ /**
5
+ * Creates a ResourceFluentBuilder from the given state.
6
+ * Each builder method returns a new builder with updated state.
7
+ */
8
+ export declare function makeResourceBuilder<TConfig, TValue extends Promise<any>, TDeps extends DependencyMapType, TContext, TMeta extends IResourceMeta, TTags extends TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[]>(state: BuilderState<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
@@ -0,0 +1,42 @@
1
+ import type { DependencyMapType, IResource, IResourceDefinition, IResourceMeta, IValidationSchema, OverridableElements, RegisterableItems, ResourceInitFn, ResourceMiddlewareAttachmentType, TagType } from "../../../defs";
2
+ import type { ThrowsList } from "../../../types/error";
3
+ import type { ResolveConfig } from "./types";
4
+ /**
5
+ * Fluent builder interface for constructing resources.
6
+ * Each method returns a new builder with updated type parameters.
7
+ */
8
+ export interface ResourceFluentBuilder<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TContext = any, TMeta extends IResourceMeta = IResourceMeta, TTags extends TagType[] = TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[] = ResourceMiddlewareAttachmentType[]> {
9
+ id: string;
10
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: TConfig) => TNewDeps), options?: {
11
+ override?: false;
12
+ }): ResourceFluentBuilder<TConfig, TValue, TDeps & TNewDeps, TContext, TMeta, TTags, TMiddleware>;
13
+ dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: TConfig) => TNewDeps), options: {
14
+ override: true;
15
+ }): ResourceFluentBuilder<TConfig, TValue, TNewDeps, TContext, TMeta, TTags, TMiddleware>;
16
+ register(items: RegisterableItems | Array<RegisterableItems> | ((config: TConfig) => RegisterableItems | Array<RegisterableItems>), options?: {
17
+ override?: boolean;
18
+ }): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
19
+ middleware<TNewMw extends ResourceMiddlewareAttachmentType[]>(mw: TNewMw, options?: {
20
+ override?: boolean;
21
+ }): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TNewMw>;
22
+ tags<TNewTags extends TagType[]>(tags: TNewTags, options?: {
23
+ override?: false;
24
+ }): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, [
25
+ ...TTags,
26
+ ...TNewTags
27
+ ], TMiddleware>;
28
+ tags<TNewTags extends TagType[]>(tags: TNewTags, options: {
29
+ override: true;
30
+ }): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TNewTags, TMiddleware>;
31
+ context<TNewCtx>(factory: () => TNewCtx): ResourceFluentBuilder<TConfig, TValue, TDeps, TNewCtx, TMeta, TTags, TMiddleware>;
32
+ configSchema<TNewConfig>(schema: IValidationSchema<TNewConfig>): ResourceFluentBuilder<TNewConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
33
+ resultSchema<TResolved>(schema: IValidationSchema<TResolved>): ResourceFluentBuilder<TConfig, Promise<TResolved>, TDeps, TContext, TMeta, TTags, TMiddleware>;
34
+ init<TNewConfig = TConfig, TNewValue extends Promise<any> = TValue>(fn: ResourceInitFn<ResolveConfig<TConfig, TNewConfig>, TNewValue, TDeps, TContext, TMeta, TTags, TMiddleware>): ResourceFluentBuilder<ResolveConfig<TConfig, TNewConfig>, TNewValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
35
+ dispose(fn: NonNullable<IResourceDefinition<TConfig, TValue, TDeps, TContext, any, any, TMeta, TTags, TMiddleware>["dispose"]>): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
36
+ meta<TNewMeta extends IResourceMeta>(m: TNewMeta): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TNewMeta, TTags, TMiddleware>;
37
+ throws(list: ThrowsList): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
38
+ overrides(o: Array<OverridableElements>, options?: {
39
+ override?: boolean;
40
+ }): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
41
+ build(): IResource<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
42
+ }
@@ -0,0 +1,13 @@
1
+ import type { IResourceMeta, ResourceMiddlewareAttachmentType, TagType } from "../../../defs";
2
+ import type { ResourceFluentBuilder } from "./fluent-builder.interface";
3
+ export type { ResourceFluentBuilder } from "./fluent-builder.interface";
4
+ export * from "./types";
5
+ /**
6
+ * Creates a new resource builder with the given id.
7
+ * Overload allows callers to seed the config type at the entry point for convenience.
8
+ */
9
+ export declare function resourceBuilder<TConfig = void>(id: string): ResourceFluentBuilder<TConfig, Promise<any>, {}, any, IResourceMeta, TagType[], ResourceMiddlewareAttachmentType[]>;
10
+ /**
11
+ * Alias for resourceBuilder - common shorthand.
12
+ */
13
+ export declare const resource: typeof resourceBuilder;
@@ -0,0 +1,37 @@
1
+ import type { DependencyMapType, IResourceDefinition, IResourceMeta, IValidationSchema, RegisterableItems, ResourceInitFn, ResourceMiddlewareAttachmentType, TagType } from "../../../defs";
2
+ import type { ThrowsList } from "../../../types/error";
3
+ /**
4
+ * Internal builder state - immutable snapshot of all builder configuration.
5
+ */
6
+ export type BuilderState<TConfig, TValue extends Promise<any>, TDeps extends DependencyMapType, TContext, TMeta extends IResourceMeta, TTags extends TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[]> = Readonly<{
7
+ id: string;
8
+ filePath: string;
9
+ dependencies?: TDeps | ((config: TConfig) => TDeps);
10
+ register?: Array<RegisterableItems> | ((config: TConfig) => Array<RegisterableItems>);
11
+ middleware?: TMiddleware;
12
+ tags?: TTags;
13
+ context?: () => TContext;
14
+ init?: ResourceInitFn<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
15
+ dispose?: NonNullable<IResourceDefinition<TConfig, TValue, TDeps, TContext, any, any, TMeta, TTags, TMiddleware>["dispose"]>;
16
+ configSchema?: IValidationSchema<any>;
17
+ resultSchema?: IValidationSchema<any>;
18
+ meta?: TMeta;
19
+ overrides?: Array<any>;
20
+ throws?: ThrowsList;
21
+ }>;
22
+ /**
23
+ * Helper type to determine if config should be replaced.
24
+ */
25
+ export type ShouldReplaceConfig<T> = [T] extends [void] ? true : [T] extends [undefined] ? true : false;
26
+ /**
27
+ * Resolves the config type - uses proposed if existing is void/undefined.
28
+ */
29
+ export type ResolveConfig<TExisting, TProposed> = ShouldReplaceConfig<TExisting> extends true ? TProposed : TExisting;
30
+ /**
31
+ * Input types accepted by the register() method.
32
+ */
33
+ export type RegisterInput<TConfig> = RegisterableItems | Array<RegisterableItems> | ((config: TConfig) => RegisterableItems | Array<RegisterableItems>);
34
+ /**
35
+ * Internal state representation for register.
36
+ */
37
+ export type RegisterState<TConfig> = Array<RegisterableItems> | ((config: TConfig) => Array<RegisterableItems>) | undefined;