@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,76 @@
1
+ import type { IEvent } from "../../defs";
2
+ import { DurableAuditEntryKind, type DurableAuditEntry } from "./core/audit";
3
+ export declare const durableEvents: {
4
+ readonly audit: {
5
+ readonly appended: IEvent<{
6
+ entry: DurableAuditEntry;
7
+ }>;
8
+ };
9
+ readonly execution: {
10
+ readonly statusChanged: IEvent<import(".").DurableAuditEntryBase & {
11
+ kind: typeof DurableAuditEntryKind.ExecutionStatusChanged;
12
+ from: import(".").ExecutionStatus | null;
13
+ to: import(".").ExecutionStatus;
14
+ reason?: string;
15
+ }>;
16
+ };
17
+ readonly step: {
18
+ readonly completed: IEvent<import(".").DurableAuditEntryBase & {
19
+ kind: typeof DurableAuditEntryKind.StepCompleted;
20
+ stepId: string;
21
+ durationMs: number;
22
+ isInternal: boolean;
23
+ }>;
24
+ };
25
+ readonly sleep: {
26
+ readonly scheduled: IEvent<import(".").DurableAuditEntryBase & {
27
+ kind: typeof DurableAuditEntryKind.SleepScheduled;
28
+ stepId: string;
29
+ timerId: string;
30
+ durationMs: number;
31
+ fireAt: Date;
32
+ }>;
33
+ readonly completed: IEvent<import(".").DurableAuditEntryBase & {
34
+ kind: typeof DurableAuditEntryKind.SleepCompleted;
35
+ stepId: string;
36
+ timerId: string;
37
+ }>;
38
+ };
39
+ readonly signal: {
40
+ readonly waiting: IEvent<import(".").DurableAuditEntryBase & {
41
+ kind: typeof DurableAuditEntryKind.SignalWaiting;
42
+ stepId: string;
43
+ signalId: string;
44
+ timeoutMs?: number;
45
+ timeoutAtMs?: number;
46
+ timerId?: string;
47
+ reason?: "initial" | "timeout_armed";
48
+ }>;
49
+ readonly delivered: IEvent<import(".").DurableAuditEntryBase & {
50
+ kind: typeof DurableAuditEntryKind.SignalDelivered;
51
+ stepId: string;
52
+ signalId: string;
53
+ }>;
54
+ readonly timedOut: IEvent<import(".").DurableAuditEntryBase & {
55
+ kind: typeof DurableAuditEntryKind.SignalTimedOut;
56
+ stepId: string;
57
+ signalId: string;
58
+ timerId: string;
59
+ }>;
60
+ };
61
+ readonly emit: {
62
+ readonly published: IEvent<import(".").DurableAuditEntryBase & {
63
+ kind: typeof DurableAuditEntryKind.EmitPublished;
64
+ stepId: string;
65
+ eventId: string;
66
+ }>;
67
+ };
68
+ readonly note: {
69
+ readonly created: IEvent<import(".").DurableAuditEntryBase & {
70
+ kind: typeof DurableAuditEntryKind.Note;
71
+ message: string;
72
+ meta?: Record<string, unknown>;
73
+ }>;
74
+ };
75
+ };
76
+ export declare const durableEventsArray: IEvent<any>[];
@@ -0,0 +1,34 @@
1
+ export * from "./core/types";
2
+ export * from "./core/ids";
3
+ export * from "./core/audit";
4
+ export * from "./core/interfaces/service";
5
+ export * from "./core/interfaces/store";
6
+ export * from "./core/interfaces/context";
7
+ export * from "./core/interfaces/bus";
8
+ export * from "./core/DurableResource";
9
+ export { durableEvents, durableEventsArray } from "./events";
10
+ export { createDurableRunnerAuditEmitter } from "./emitters/runnerAuditEmitter";
11
+ export { DurableService, initDurableService, disposeDurableService, DurableExecutionError, } from "./core/DurableService";
12
+ export { durableResource } from "./core/resource";
13
+ export type { DurableResourceRuntimeConfig } from "./core/resource";
14
+ export { createRunnerDurableRuntime } from "./core/createRunnerDurableRuntime";
15
+ export type { RunnerDurableDeps, RunnerDurableRuntimeConfig, } from "./core/createRunnerDurableRuntime";
16
+ export { DurableContext } from "./core/DurableContext";
17
+ export { StepBuilder } from "./core/StepBuilder";
18
+ export { DurableOperator } from "./core/DurableOperator";
19
+ export { DurableWorker, initDurableWorker } from "./core/DurableWorker";
20
+ export type { DurableFlowShape, FlowNode, FlowStepNode, FlowSleepNode, FlowSignalNode, FlowEmitNode, FlowSwitchNode, FlowNoteNode, } from "./core/flowShape";
21
+ export { createDashboardMiddleware } from "./dashboard/server";
22
+ export { MemoryStore } from "./store/MemoryStore";
23
+ export { RedisStore } from "./store/RedisStore";
24
+ export { MemoryQueue } from "./queue/MemoryQueue";
25
+ export { RabbitMQQueue } from "./queue/RabbitMQQueue";
26
+ export { MemoryEventBus } from "./bus/MemoryEventBus";
27
+ export { NoopEventBus } from "./bus/NoopEventBus";
28
+ export { RedisEventBus } from "./bus/RedisEventBus";
29
+ export { createDurableTestSetup, waitUntil } from "./test-utils";
30
+ export type { DurableTestSetup, DurableTestSetupOptions } from "./test-utils";
31
+ export { memoryDurableResource } from "./resources/memoryDurableResource";
32
+ export type { MemoryDurableResourceConfig } from "./resources/memoryDurableResource";
33
+ export { redisDurableResource } from "./resources/redisDurableResource";
34
+ export type { RedisDurableResourceConfig } from "./resources/redisDurableResource";
@@ -0,0 +1 @@
1
+ export declare function connectAmqplib(url: string): Promise<unknown>;
@@ -0,0 +1 @@
1
+ export declare function createIORedisClient(url?: string): unknown;
@@ -0,0 +1,12 @@
1
+ import type { IDurableQueue, MessageHandler, QueueMessage } from "../core/interfaces/queue";
2
+ export declare class MemoryQueue implements IDurableQueue {
3
+ private queue;
4
+ private handler;
5
+ private isProcessing;
6
+ private readonly inFlight;
7
+ enqueue<T>(message: Omit<QueueMessage<T>, "id" | "createdAt" | "attempts">): Promise<string>;
8
+ consume<T>(handler: MessageHandler<T>): Promise<void>;
9
+ ack(_messageId: string): Promise<void>;
10
+ nack(_messageId: string, _requeue?: boolean): Promise<void>;
11
+ private processNext;
12
+ }
@@ -0,0 +1,30 @@
1
+ import type { IDurableQueue, MessageHandler, QueueMessage } from "../core/interfaces/queue";
2
+ export interface RabbitMQQueueConfig {
3
+ url?: string;
4
+ queueName?: string;
5
+ queue?: {
6
+ name?: string;
7
+ quorum?: boolean;
8
+ deadLetter?: string;
9
+ messageTtl?: number;
10
+ };
11
+ prefetch?: number;
12
+ }
13
+ export declare class RabbitMQQueue implements IDurableQueue {
14
+ private connection;
15
+ private channel;
16
+ private url;
17
+ private queueName;
18
+ private prefetch;
19
+ private readonly isQuorum;
20
+ private readonly deadLetterQueue?;
21
+ private readonly messageTtl?;
22
+ private messageMap;
23
+ constructor(config: RabbitMQQueueConfig);
24
+ init(): Promise<void>;
25
+ enqueue<T>(message: Omit<QueueMessage<T>, "id" | "createdAt" | "attempts">): Promise<string>;
26
+ consume<T>(handler: MessageHandler<T>): Promise<void>;
27
+ ack(messageId: string): Promise<void>;
28
+ nack(messageId: string, requeue?: boolean): Promise<void>;
29
+ dispose(): Promise<void>;
30
+ }
@@ -0,0 +1,15 @@
1
+ export interface DurableIsolation {
2
+ namespace: string;
3
+ encodedNamespace: string;
4
+ storePrefix: string;
5
+ busPrefix: string;
6
+ queueName: string;
7
+ deadLetterQueueName: string;
8
+ }
9
+ export declare function deriveDurableIsolation(params: {
10
+ namespace: string;
11
+ storePrefix?: string;
12
+ busPrefix?: string;
13
+ queueName?: string;
14
+ deadLetterQueueName?: string;
15
+ }): DurableIsolation;
@@ -0,0 +1,21 @@
1
+ import type { RunnerDurableRuntimeConfig } from "../core/createRunnerDurableRuntime";
2
+ import type { DurableResource } from "../core/DurableResource";
3
+ export type MemoryDurableResourceConfig = Omit<RunnerDurableRuntimeConfig, "store" | "queue" | "eventBus"> & {
4
+ /**
5
+ * Isolation namespace (used for defaults and docs).
6
+ * Defaults to the resource id (ie. the value passed to `.fork(id)`).
7
+ */
8
+ namespace?: string;
9
+ queue?: {
10
+ enabled?: boolean;
11
+ };
12
+ };
13
+ interface MemoryDurableResourceContext {
14
+ runtimeConfig: RunnerDurableRuntimeConfig | null;
15
+ }
16
+ export declare const memoryDurableResource: import("../..").IResource<MemoryDurableResourceConfig, Promise<DurableResource>, {
17
+ taskRunner: import("../..").IResource<void, Promise<import("../..").TaskRunner>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
18
+ eventManager: import("../..").IResource<void, Promise<import("../..").EventManager>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
19
+ runnerStore: import("../..").IResource<void, Promise<import("../..").Store>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
20
+ }, MemoryDurableResourceContext, import("../..").IResourceMeta, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
21
+ export {};
@@ -0,0 +1,35 @@
1
+ import type { RunnerDurableRuntimeConfig } from "../core/createRunnerDurableRuntime";
2
+ import type { DurableResource } from "../core/DurableResource";
3
+ export type RedisDurableResourceConfig = Omit<RunnerDurableRuntimeConfig, "store" | "queue" | "eventBus"> & {
4
+ /**
5
+ * Isolation namespace (used for key prefixes and queue names).
6
+ * Defaults to the resource id (ie. the value passed to `.fork(id)`).
7
+ */
8
+ namespace?: string;
9
+ redis: {
10
+ url: string;
11
+ };
12
+ store?: {
13
+ prefix?: string;
14
+ };
15
+ eventBus?: {
16
+ prefix?: string;
17
+ };
18
+ queue?: {
19
+ url: string;
20
+ name?: string;
21
+ deadLetter?: string;
22
+ quorum?: boolean;
23
+ messageTtl?: number;
24
+ prefetch?: number;
25
+ };
26
+ };
27
+ interface RedisDurableResourceContext {
28
+ runtimeConfig: RunnerDurableRuntimeConfig | null;
29
+ }
30
+ export declare const redisDurableResource: import("../..").IResource<RedisDurableResourceConfig, Promise<DurableResource>, {
31
+ taskRunner: import("../..").IResource<void, Promise<import("../..").TaskRunner>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
32
+ eventManager: import("../..").IResource<void, Promise<import("../..").EventManager>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
33
+ runnerStore: import("../..").IResource<void, Promise<import("../..").Store>, {}, any, any, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
34
+ }, RedisDurableResourceContext, import("../..").IResourceMeta, import("../..").TagType[], import("../..").ResourceMiddlewareAttachmentType[]>;
35
+ export {};
@@ -0,0 +1,56 @@
1
+ import { type Execution, type Schedule, type StepResult, type Timer } from "../core/types";
2
+ import type { IDurableStore, ListExecutionsOptions } from "../core/interfaces/store";
3
+ import type { DurableAuditEntry } from "../core/audit";
4
+ export declare class MemoryStore implements IDurableStore {
5
+ private executions;
6
+ private executionIdByIdempotencyKey;
7
+ private stepResults;
8
+ private auditEntries;
9
+ private timers;
10
+ private schedules;
11
+ private locks;
12
+ private getIdempotencyMapKey;
13
+ getExecutionIdByIdempotencyKey(params: {
14
+ taskId: string;
15
+ idempotencyKey: string;
16
+ }): Promise<string | null>;
17
+ setExecutionIdByIdempotencyKey(params: {
18
+ taskId: string;
19
+ idempotencyKey: string;
20
+ executionId: string;
21
+ }): Promise<boolean>;
22
+ saveExecution(execution: Execution): Promise<void>;
23
+ getExecution(id: string): Promise<Execution | null>;
24
+ updateExecution(id: string, updates: Partial<Execution>): Promise<void>;
25
+ listIncompleteExecutions(): Promise<Execution[]>;
26
+ listStuckExecutions(): Promise<Execution[]>;
27
+ listExecutions(options?: ListExecutionsOptions): Promise<Execution[]>;
28
+ listStepResults(executionId: string): Promise<StepResult[]>;
29
+ appendAuditEntry(entry: DurableAuditEntry): Promise<void>;
30
+ listAuditEntries(executionId: string, options?: {
31
+ limit?: number;
32
+ offset?: number;
33
+ }): Promise<DurableAuditEntry[]>;
34
+ retryRollback(executionId: string): Promise<void>;
35
+ skipStep(executionId: string, stepId: string): Promise<void>;
36
+ forceFail(executionId: string, error: {
37
+ message: string;
38
+ stack?: string;
39
+ }): Promise<void>;
40
+ editStepResult(executionId: string, stepId: string, newResult: unknown): Promise<void>;
41
+ getStepResult(executionId: string, stepId: string): Promise<StepResult | null>;
42
+ saveStepResult(result: StepResult): Promise<void>;
43
+ createTimer(timer: Timer): Promise<void>;
44
+ getReadyTimers(now?: Date): Promise<Timer[]>;
45
+ markTimerFired(timerId: string): Promise<void>;
46
+ deleteTimer(timerId: string): Promise<void>;
47
+ claimTimer(timerId: string, workerId: string, ttlMs: number): Promise<boolean>;
48
+ createSchedule(schedule: Schedule): Promise<void>;
49
+ getSchedule(id: string): Promise<Schedule | null>;
50
+ updateSchedule(id: string, updates: Partial<Schedule>): Promise<void>;
51
+ deleteSchedule(id: string): Promise<void>;
52
+ listSchedules(): Promise<Schedule[]>;
53
+ listActiveSchedules(): Promise<Schedule[]>;
54
+ acquireLock(resource: string, ttlMs: number): Promise<string | null>;
55
+ releaseLock(resource: string, lockId: string): Promise<void>;
56
+ }
@@ -0,0 +1,89 @@
1
+ import { type Execution, type Schedule, type StepResult, type Timer } from "../core/types";
2
+ import type { IDurableStore, ListExecutionsOptions } from "../core/interfaces/store";
3
+ import { type DurableAuditEntry } from "../core/audit";
4
+ export interface RedisPipeline {
5
+ get(key: string): RedisPipeline;
6
+ hget(hash: string, key: string): RedisPipeline;
7
+ exec(): Promise<Array<[unknown, unknown]> | null>;
8
+ }
9
+ export interface RedisClient {
10
+ set(...args: unknown[]): Promise<unknown>;
11
+ get(...args: unknown[]): Promise<unknown>;
12
+ scan(...args: unknown[]): Promise<unknown>;
13
+ sscan(...args: unknown[]): Promise<unknown>;
14
+ sadd(...args: unknown[]): Promise<unknown>;
15
+ srem(...args: unknown[]): Promise<unknown>;
16
+ keys?(...args: unknown[]): Promise<unknown>;
17
+ pipeline(): RedisPipeline;
18
+ hset(...args: unknown[]): Promise<unknown>;
19
+ hget(...args: unknown[]): Promise<unknown>;
20
+ hdel(...args: unknown[]): Promise<unknown>;
21
+ hgetall(...args: unknown[]): Promise<unknown>;
22
+ zadd(...args: unknown[]): Promise<unknown>;
23
+ zrangebyscore(...args: unknown[]): Promise<unknown>;
24
+ zrem(...args: unknown[]): Promise<unknown>;
25
+ eval(...args: unknown[]): Promise<unknown>;
26
+ quit(...args: unknown[]): Promise<unknown>;
27
+ }
28
+ export interface RedisStoreConfig {
29
+ prefix?: string;
30
+ redis?: RedisClient | string;
31
+ }
32
+ export declare class RedisStore implements IDurableStore {
33
+ private redis;
34
+ private prefix;
35
+ constructor(config: RedisStoreConfig);
36
+ private k;
37
+ private encodeKeyPart;
38
+ getExecutionIdByIdempotencyKey(params: {
39
+ taskId: string;
40
+ idempotencyKey: string;
41
+ }): Promise<string | null>;
42
+ setExecutionIdByIdempotencyKey(params: {
43
+ taskId: string;
44
+ idempotencyKey: string;
45
+ executionId: string;
46
+ }): Promise<boolean>;
47
+ private parseRedisString;
48
+ private parseScanResponse;
49
+ private scanKeys;
50
+ private scanSetMembers;
51
+ private activeExecutionsKey;
52
+ private isActiveExecutionStatus;
53
+ private updateActiveExecutionMembership;
54
+ saveExecution(execution: Execution): Promise<void>;
55
+ getExecution(id: string): Promise<Execution | null>;
56
+ updateExecution(id: string, updates: Partial<Execution>): Promise<void>;
57
+ listIncompleteExecutions(): Promise<Execution[]>;
58
+ listStuckExecutions(): Promise<Execution[]>;
59
+ retryRollback(executionId: string): Promise<void>;
60
+ skipStep(executionId: string, stepId: string): Promise<void>;
61
+ forceFail(executionId: string, error: {
62
+ message: string;
63
+ stack?: string;
64
+ }): Promise<void>;
65
+ editStepResult(executionId: string, stepId: string, newResult: unknown): Promise<void>;
66
+ listExecutions(options?: ListExecutionsOptions): Promise<Execution[]>;
67
+ listStepResults(executionId: string): Promise<StepResult[]>;
68
+ appendAuditEntry(entry: DurableAuditEntry): Promise<void>;
69
+ listAuditEntries(executionId: string, options?: {
70
+ limit?: number;
71
+ offset?: number;
72
+ }): Promise<DurableAuditEntry[]>;
73
+ getStepResult(executionId: string, stepId: string): Promise<StepResult | null>;
74
+ saveStepResult(result: StepResult): Promise<void>;
75
+ createTimer(timer: Timer): Promise<void>;
76
+ getReadyTimers(now?: Date): Promise<Timer[]>;
77
+ markTimerFired(timerId: string): Promise<void>;
78
+ deleteTimer(timerId: string): Promise<void>;
79
+ claimTimer(timerId: string, workerId: string, ttlMs: number): Promise<boolean>;
80
+ createSchedule(schedule: Schedule): Promise<void>;
81
+ getSchedule(id: string): Promise<Schedule | null>;
82
+ updateSchedule(id: string, updates: Partial<Schedule>): Promise<void>;
83
+ deleteSchedule(id: string): Promise<void>;
84
+ listSchedules(): Promise<Schedule[]>;
85
+ listActiveSchedules(): Promise<Schedule[]>;
86
+ acquireLock(resource: string, ttlMs: number): Promise<string | null>;
87
+ releaseLock(resource: string, lockId: string): Promise<void>;
88
+ dispose(): Promise<void>;
89
+ }
@@ -0,0 +1,29 @@
1
+ import type { DurableResourceRuntimeConfig } from "./core/resource";
2
+ import { durableResource } from "./core/resource";
3
+ import { MemoryEventBus } from "./bus/MemoryEventBus";
4
+ import { MemoryQueue } from "./queue/MemoryQueue";
5
+ import { MemoryStore } from "./store/MemoryStore";
6
+ type DurableResource = ReturnType<typeof durableResource.fork>;
7
+ type DurableResourceRegistration = ReturnType<DurableResource["with"]>;
8
+ export interface DurableTestSetup {
9
+ durable: DurableResource;
10
+ durableRegistration: DurableResourceRegistration;
11
+ store: MemoryStore;
12
+ eventBus: MemoryEventBus;
13
+ queue?: MemoryQueue;
14
+ }
15
+ export interface DurableTestSetupOptions {
16
+ durableId?: string;
17
+ store?: MemoryStore;
18
+ eventBus?: MemoryEventBus;
19
+ queue?: MemoryQueue;
20
+ worker?: boolean;
21
+ pollingIntervalMs?: number;
22
+ durableConfig?: Partial<DurableResourceRuntimeConfig>;
23
+ }
24
+ export declare function createDurableTestSetup(options?: DurableTestSetupOptions): DurableTestSetup;
25
+ export declare function waitUntil(predicate: () => boolean | Promise<boolean>, options: {
26
+ timeoutMs: number;
27
+ intervalMs: number;
28
+ }): Promise<void>;
29
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { Store } from "../../models/Store";
2
+ import type { AllowListGuard } from "./types";
3
+ export declare function createAllowListGuard(store: Store, allowOpen?: boolean): AllowListGuard;
@@ -0,0 +1,16 @@
1
+ import type { Authenticator, AuthValidatorInput, AuthValidatorResult } from "./types";
2
+ import type { ITask } from "../../defs";
3
+ import type { TaskRunner } from "../../models/TaskRunner";
4
+ export interface NodeExposureHttpAuthConfig {
5
+ header?: string;
6
+ token?: string | string[];
7
+ /**
8
+ * When true, allows unauthenticated access if no token or validators are configured.
9
+ * Defaults to false (secure by default - requires explicit auth configuration).
10
+ *
11
+ * WARNING: Setting this to true without proper network isolation exposes
12
+ * all tasks and events to unauthenticated access.
13
+ */
14
+ allowAnonymous?: boolean;
15
+ }
16
+ export declare function createAuthenticator(authCfg: NodeExposureHttpAuthConfig | undefined, taskRunner: TaskRunner, validatorTasks: ITask<AuthValidatorInput, Promise<AuthValidatorResult>, any>[]): Authenticator;
@@ -0,0 +1,4 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ import type { NodeExposureHttpCorsConfig } from "./resourceTypes";
3
+ export declare function applyCorsActual(req: IncomingMessage, res: ServerResponse, cfg: NodeExposureHttpCorsConfig | undefined): void;
4
+ export declare function handleCorsPreflight(req: IncomingMessage, res: ServerResponse, cfg: NodeExposureHttpCorsConfig | undefined): boolean;
@@ -0,0 +1,2 @@
1
+ import type { NodeExposureConfig, NodeExposureDeps, NodeExposureHandlers } from "./resourceTypes";
2
+ export declare function createNodeExposure(cfg: NodeExposureConfig | undefined, deps: NodeExposureDeps): Promise<NodeExposureHandlers>;
@@ -0,0 +1,18 @@
1
+ import * as http from "http";
2
+ import type { RequestHandler } from "./types";
3
+ import type { NodeExposureDeps, NodeExposureHttpConfig } from "./resourceTypes";
4
+ interface ExposureServerOptions {
5
+ httpConfig?: NodeExposureHttpConfig;
6
+ handler: RequestHandler;
7
+ logger: NodeExposureDeps["logger"];
8
+ basePath: string;
9
+ }
10
+ interface ExposureServerControls {
11
+ server: http.Server | null;
12
+ createRequestListener(): http.RequestListener;
13
+ createServer(): http.Server;
14
+ attachTo(server: http.Server): () => void;
15
+ close(): Promise<void>;
16
+ }
17
+ export declare function createExposureServer(options: ExposureServerOptions): Promise<ExposureServerControls>;
18
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ import type { NodeExposureDeps } from "../resourceTypes";
3
+ import type { SerializerLike } from "../../../serializer";
4
+ export interface ExposureContextDeps {
5
+ store: NodeExposureDeps["store"];
6
+ router: {
7
+ basePath: string;
8
+ };
9
+ serializer: SerializerLike;
10
+ }
11
+ /**
12
+ * Builds a composed provider: first user async contexts (if any), then exposure context
13
+ */
14
+ export declare const withExposureContext: <T>(req: IncomingMessage, res: ServerResponse, controller: AbortController, deps: ExposureContextDeps, fn: () => Promise<T>) => Promise<T>;
15
+ /**
16
+ * Builds user async contexts (if any), without exposure context (for events)
17
+ */
18
+ export declare const withUserContexts: <T>(req: IncomingMessage, deps: Pick<ExposureContextDeps, "store" | "serializer">, fn: () => Promise<T>) => Promise<T>;
@@ -0,0 +1,23 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ import type { SerializerLike } from "../../../serializer";
3
+ import type { Logger } from "../../../models/Logger";
4
+ import type { Store } from "../../../models/Store";
5
+ import type { NodeExposureHttpCorsConfig } from "../resourceTypes";
6
+ import type { JsonResponse } from "../types";
7
+ export declare enum ExposureErrorLogKey {
8
+ TaskError = "exposure.task.error",
9
+ EventError = "exposure.event.error"
10
+ }
11
+ /** Sanitizes 500 errors if they are not application-defined */
12
+ export declare const sanitizeErrorResponse: (response: unknown) => JsonResponse;
13
+ export interface HandleRequestErrorOptions {
14
+ error: unknown;
15
+ req: IncomingMessage;
16
+ res: ServerResponse;
17
+ store: Store;
18
+ logger: Logger;
19
+ cors?: NodeExposureHttpCorsConfig;
20
+ serializer: SerializerLike;
21
+ logKey: ExposureErrorLogKey;
22
+ }
23
+ export declare const handleRequestError: (options: HandleRequestErrorOptions) => void;
@@ -0,0 +1,20 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ import type { SerializerLike } from "../../../serializer";
3
+ import type { Authenticator, AllowListGuard } from "../types";
4
+ import type { NodeExposureDeps, NodeExposureHttpCorsConfig } from "../resourceTypes";
5
+ interface EventHandlerDeps {
6
+ store: NodeExposureDeps["store"];
7
+ eventManager: NodeExposureDeps["eventManager"];
8
+ logger: NodeExposureDeps["logger"];
9
+ authenticator: Authenticator;
10
+ allowList: AllowListGuard;
11
+ cors?: NodeExposureHttpCorsConfig;
12
+ serializer: SerializerLike;
13
+ limits?: {
14
+ json?: {
15
+ maxSize?: number;
16
+ };
17
+ };
18
+ }
19
+ export declare const createEventHandler: (deps: EventHandlerDeps) => (req: IncomingMessage, res: ServerResponse, eventId: string) => Promise<void>;
20
+ export {};
@@ -0,0 +1,24 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ import type { SerializerLike } from "../../../serializer";
3
+ import type { Authenticator, AllowListGuard } from "../types";
4
+ import type { NodeExposureDeps, NodeExposureHttpCorsConfig } from "../resourceTypes";
5
+ interface TaskHandlerDeps {
6
+ store: NodeExposureDeps["store"];
7
+ taskRunner: NodeExposureDeps["taskRunner"];
8
+ logger: NodeExposureDeps["logger"];
9
+ authenticator: Authenticator;
10
+ allowList: AllowListGuard;
11
+ router: {
12
+ basePath: string;
13
+ };
14
+ cors?: NodeExposureHttpCorsConfig;
15
+ serializer: SerializerLike;
16
+ limits?: {
17
+ json?: {
18
+ maxSize?: number;
19
+ };
20
+ multipart?: any;
21
+ };
22
+ }
23
+ export declare const createTaskHandler: (deps: TaskHandlerDeps) => (req: IncomingMessage, res: ServerResponse, taskId: string) => Promise<void>;
24
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { ServerResponse } from "http";
2
+ import type { SerializerLike } from "../../serializer";
3
+ import type { JsonResponse, StreamingResponse } from "./types";
4
+ export declare const JSON_CONTENT_TYPE = "application/json; charset=utf-8";
5
+ export declare const NOT_FOUND_RESPONSE: JsonResponse;
6
+ export declare const METHOD_NOT_ALLOWED_RESPONSE: JsonResponse;
7
+ export declare function jsonOkResponse(data?: Record<string, unknown>): JsonResponse;
8
+ export declare function jsonErrorResponse(status: number, message: string, code?: string, extra?: Record<string, unknown>): JsonResponse;
9
+ export declare function respondJson(res: ServerResponse, response: JsonResponse, serializer?: SerializerLike): void;
10
+ export declare function respondStream(res: ServerResponse, value: StreamingResponse | NodeJS.ReadableStream): void;
@@ -0,0 +1,3 @@
1
+ export { nodeExposure } from "./resource";
2
+ export type { NodeExposureHttpAuthConfig } from "./authenticator";
3
+ export type * from "./resourceTypes";
@@ -0,0 +1,4 @@
1
+ import type { Logger } from "../../models/Logger";
2
+ export declare function safeLogError(logger: Logger, message: string, data: Record<string, unknown>): void;
3
+ export declare function safeLogInfo(logger: Logger, message: string, data: Record<string, unknown>): void;
4
+ export declare function errorMessage(error: unknown): string;
@@ -0,0 +1,36 @@
1
+ import type { IncomingHttpHeaders } from "http";
2
+ import type { SerializerLike } from "../../serializer";
3
+ import type { JsonResponse } from "./types";
4
+ interface MultipartFinalizeOk {
5
+ ok: true;
6
+ }
7
+ interface MultipartFinalizeError {
8
+ ok: false;
9
+ response: JsonResponse;
10
+ }
11
+ export type MultipartFinalizeResult = MultipartFinalizeOk | MultipartFinalizeError;
12
+ interface MultipartSuccess {
13
+ ok: true;
14
+ value: unknown;
15
+ finalize: Promise<MultipartFinalizeResult>;
16
+ }
17
+ type MultipartResult = MultipartSuccess | {
18
+ ok: false;
19
+ response: JsonResponse;
20
+ };
21
+ export interface MultipartRequest extends NodeJS.ReadableStream {
22
+ headers: IncomingHttpHeaders;
23
+ method?: string;
24
+ }
25
+ export interface MultipartLimits {
26
+ fieldNameSize?: number;
27
+ fieldSize?: number;
28
+ fields?: number;
29
+ fileSize?: number;
30
+ files?: number;
31
+ parts?: number;
32
+ headerPairs?: number;
33
+ }
34
+ export declare function parseMultipartInput(req: MultipartRequest, signal: AbortSignal | undefined, serializer: SerializerLike, limits?: MultipartLimits): Promise<MultipartResult>;
35
+ export declare function isMultipart(contentType: string): boolean;
36
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { IncomingMessage } from "http";
2
+ import type { SerializerLike } from "../../serializer";
3
+ import type { JsonResponse } from "./types";
4
+ export declare function readRequestBody(req: IncomingMessage, signal?: AbortSignal, maxSize?: number): Promise<Buffer>;
5
+ export declare function readJsonBody<T>(req: IncomingMessage, signal: AbortSignal | undefined, serializer: SerializerLike, maxSize?: number): Promise<{
6
+ ok: true;
7
+ value: T | undefined;
8
+ } | {
9
+ ok: false;
10
+ response: JsonResponse;
11
+ }>;
@@ -0,0 +1,17 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ export interface ExposureRequestContextValue {
3
+ req: IncomingMessage;
4
+ res: ServerResponse;
5
+ url: URL;
6
+ basePath: string;
7
+ headers: IncomingMessage["headers"];
8
+ method?: string;
9
+ signal: AbortSignal;
10
+ }
11
+ export declare const ExposureRequestContext: import("..").IAsyncContext<ExposureRequestContextValue>;
12
+ export declare function useExposureContext(): ExposureRequestContextValue;
13
+ /**
14
+ * Checks if the exposure request context is currently available without throwing an error.
15
+ * Useful for conditional logic in tasks that may or may not be exposed.
16
+ */
17
+ export declare function hasExposureContext(): boolean;