@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,29 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ import type { SerializerLike } from "../../serializer";
3
+ import type { Authenticator, AllowListGuard, RequestHandler } from "./types";
4
+ import type { ExposureRouter } from "./router";
5
+ import type { NodeExposureDeps, NodeExposureHttpCorsConfig } from "./resourceTypes";
6
+ export interface RequestProcessingDeps {
7
+ store: NodeExposureDeps["store"];
8
+ taskRunner: NodeExposureDeps["taskRunner"];
9
+ eventManager: NodeExposureDeps["eventManager"];
10
+ logger: NodeExposureDeps["logger"];
11
+ authenticator: Authenticator;
12
+ allowList: AllowListGuard;
13
+ router: ExposureRouter;
14
+ cors?: NodeExposureHttpCorsConfig;
15
+ serializer: SerializerLike;
16
+ limits?: {
17
+ json?: {
18
+ maxSize?: number;
19
+ };
20
+ multipart?: any;
21
+ };
22
+ }
23
+ export interface NodeExposureRequestHandlers {
24
+ handleTask: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
25
+ handleEvent: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
26
+ handleDiscovery: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
27
+ handleRequest: RequestHandler;
28
+ }
29
+ export declare function createRequestHandlers(deps: RequestProcessingDeps): NodeExposureRequestHandlers;
@@ -0,0 +1,12 @@
1
+ import type { NodeExposureConfig } from "./resourceTypes";
2
+ export type { NodeExposureHttpAuthConfig } from "./authenticator";
3
+ export declare const nodeExposure: import("..").IResource<NodeExposureConfig, Promise<import("./resourceTypes").NodeExposureHandlers>, {
4
+ store: import("..").IResource<void, Promise<import("..").Store>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
5
+ taskRunner: import("..").IResource<void, Promise<import("..").TaskRunner>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
6
+ eventManager: import("..").IResource<void, Promise<import("..").EventManager>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
7
+ logger: import("..").IResource<void, Promise<import("..").Logger>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
8
+ serializer: import("..").IResource<void, Promise<import("..").SerializerLike>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
9
+ }, any, {
10
+ title: string;
11
+ description: string;
12
+ }, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,73 @@
1
+ import type * as http from "http";
2
+ import type { IncomingMessage, ServerResponse } from "http";
3
+ import { globalResources } from "../../globals/globalResources";
4
+ import type { ResourceDependencyValuesType } from "../../defs";
5
+ import type { NodeExposureHttpAuthConfig } from "./authenticator";
6
+ import type { MultipartLimits } from "./multipart";
7
+ export interface JsonLimits {
8
+ maxSize?: number;
9
+ }
10
+ export type NodeExposureDependencyMap = {
11
+ store: typeof globalResources.store;
12
+ taskRunner: typeof globalResources.taskRunner;
13
+ eventManager: typeof globalResources.eventManager;
14
+ logger: typeof globalResources.logger;
15
+ serializer: typeof globalResources.serializer;
16
+ };
17
+ export type NodeExposureDeps = ResourceDependencyValuesType<NodeExposureDependencyMap>;
18
+ export interface NodeExposureHttpConfig {
19
+ basePath?: string;
20
+ server?: http.Server;
21
+ listen?: {
22
+ port: number;
23
+ host?: string;
24
+ };
25
+ auth?: NodeExposureHttpAuthConfig;
26
+ cors?: NodeExposureHttpCorsConfig;
27
+ limits?: {
28
+ json?: JsonLimits;
29
+ multipart?: MultipartLimits;
30
+ };
31
+ /**
32
+ * Opt out of fail-closed exposure (not recommended).
33
+ * When true and no server-mode tunnel is registered, exposure is open.
34
+ */
35
+ dangerouslyAllowOpenExposure?: boolean;
36
+ }
37
+ export interface NodeExposureConfig {
38
+ http?: NodeExposureHttpConfig;
39
+ }
40
+ export interface NodeExposureHandlers {
41
+ handleRequest: (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
42
+ handleTask: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
43
+ handleEvent: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
44
+ handleDiscovery: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
45
+ createRequestListener: () => http.RequestListener;
46
+ createServer: () => http.Server;
47
+ attachTo: (server: http.Server) => () => void;
48
+ server?: http.Server | null;
49
+ basePath: string;
50
+ close: () => Promise<void>;
51
+ }
52
+ export interface NodeExposureHttpCorsConfig {
53
+ /**
54
+ * Allowed origin(s). When omitted, defaults to "*".
55
+ * - string: exact origin value to send
56
+ * - string[]: allow-list; request origin must match an item
57
+ * - RegExp: allow when test(origin) is true
58
+ * - function: returns the origin to send or null to disallow
59
+ */
60
+ origin?: string | string[] | RegExp | ((origin: string | undefined) => string | null | undefined);
61
+ /** Which methods are allowed on preflight; defaults to ["POST", "OPTIONS"]. */
62
+ methods?: string[];
63
+ /** Access-Control-Allow-Headers value. If omitted, echoes Access-Control-Request-Headers. */
64
+ allowedHeaders?: string[];
65
+ /** Expose response headers for actual requests. */
66
+ exposedHeaders?: string[];
67
+ /** Whether to include Access-Control-Allow-Credentials: true. */
68
+ credentials?: boolean;
69
+ /** Max age in seconds for preflight caching. */
70
+ maxAge?: number;
71
+ /** Whether to append Vary: Origin when a specific origin is returned. Default true. */
72
+ varyOrigin?: boolean;
73
+ }
@@ -0,0 +1,17 @@
1
+ import type { IncomingMessage } from "http";
2
+ import type { JsonResponse, RequestKind, RequestTarget } from "./types";
3
+ export interface ExposureRouter {
4
+ basePath: string;
5
+ isUnderBase(pathname: string): boolean;
6
+ extract(pathname: string): RequestTarget | null;
7
+ }
8
+ export declare function resolveBasePath(basePath?: string): string;
9
+ export declare function createRouter(basePath: string): ExposureRouter;
10
+ export declare function resolveTargetFromRequest(req: IncomingMessage, router: ExposureRouter, expected: RequestKind): {
11
+ ok: true;
12
+ id: string;
13
+ } | {
14
+ ok: false;
15
+ response: JsonResponse;
16
+ };
17
+ export declare function requestUrl(req: IncomingMessage): URL;
@@ -0,0 +1,13 @@
1
+ import * as http from "http";
2
+ import type { RequestHandler } from "./types";
3
+ import type { Logger } from "../../models/Logger";
4
+ export declare function makeRequestListener(options: {
5
+ handler: RequestHandler;
6
+ respondOnMiss: boolean;
7
+ logger: Logger;
8
+ }): http.RequestListener;
9
+ export declare function startHttpServer(server: http.Server, listen: {
10
+ port: number;
11
+ host?: string;
12
+ }): Promise<void>;
13
+ export declare function stopHttpServer(server: http.Server): Promise<void>;
@@ -0,0 +1,45 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ export type RequestKind = "task" | "event" | "discovery";
3
+ export interface RequestTarget {
4
+ kind: RequestKind;
5
+ id: string;
6
+ }
7
+ export type JsonBody = {
8
+ ok: boolean;
9
+ [key: string]: unknown;
10
+ };
11
+ export interface JsonResponse {
12
+ status: number;
13
+ body: JsonBody;
14
+ }
15
+ export type RequestHandler = (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
16
+ export type Authenticator = (req: IncomingMessage) => Promise<{
17
+ ok: true;
18
+ } | {
19
+ ok: false;
20
+ response: JsonResponse;
21
+ }>;
22
+ /** Input provided to auth validator tasks */
23
+ export interface AuthValidatorInput {
24
+ headers: Record<string, string | string[] | undefined>;
25
+ method: string;
26
+ url: string;
27
+ path: string;
28
+ }
29
+ /** Result returned by auth validator tasks */
30
+ export type AuthValidatorResult = {
31
+ ok: true;
32
+ } | {
33
+ ok: false;
34
+ message?: string;
35
+ };
36
+ export interface AllowListGuard {
37
+ ensureTask(id: string): JsonResponse | null;
38
+ ensureEvent(id: string): JsonResponse | null;
39
+ }
40
+ export interface StreamingResponse {
41
+ stream: NodeJS.ReadableStream;
42
+ status?: number;
43
+ contentType?: string;
44
+ headers?: Record<string, string>;
45
+ }
@@ -0,0 +1,17 @@
1
+ import type { IncomingHttpHeaders, IncomingMessage, ServerResponse } from "http";
2
+ /**
3
+ * Extract a normalized Content-Type header value from request headers.
4
+ * Returns an empty string if not present. If multiple values are present,
5
+ * the first one is used.
6
+ */
7
+ export declare function getContentType(headers: IncomingHttpHeaders): string;
8
+ /**
9
+ * Attach an event listener to a Node-style emitter that may expose either
10
+ * `once` or `on`. Returns true if attached, false otherwise.
11
+ */
12
+ export declare function attachRequestListener(target: unknown, event: string, handler: (...args: unknown[]) => void): boolean;
13
+ /**
14
+ * Wires an AbortController to abort when the client disconnects.
15
+ * Attaches to `req` aborted and `res` close events using robust listener attachment.
16
+ */
17
+ export declare function createAbortControllerForRequest(req: IncomingMessage, res: ServerResponse): AbortController;
@@ -0,0 +1,9 @@
1
+ import type { Readable } from "stream";
2
+ import type { InputFileMeta, RunnerFileSentinel } from "../../types/inputFile";
3
+ export interface NodeFileSource {
4
+ stream?: Readable;
5
+ buffer?: Buffer;
6
+ }
7
+ export declare function createNodeFile(meta: InputFileMeta, source: NodeFileSource, id?: string): RunnerFileSentinel & {
8
+ _node: NodeFileSource;
9
+ };
@@ -0,0 +1,4 @@
1
+ export { createNodeFile } from "./createNodeFile";
2
+ export { NodeInputFile, toPassThrough } from "./inputFile.model";
3
+ export type { NodeReadable } from "./inputFile.model";
4
+ export { readInputFileToBuffer, writeInputFileToPath } from "./inputFile.utils";
@@ -0,0 +1,22 @@
1
+ import type { InputFile } from "../../types/inputFile";
2
+ import { Readable } from "stream";
3
+ export type NodeReadable = Readable;
4
+ export declare class NodeInputFile implements InputFile<NodeReadable> {
5
+ name: string;
6
+ type?: string | undefined;
7
+ size?: number | undefined;
8
+ lastModified?: number | undefined;
9
+ extra?: Record<string, unknown> | undefined;
10
+ private _stream;
11
+ private _consumed;
12
+ constructor(meta: Omit<InputFile<NodeReadable>, "resolve" | "stream" | "toTempFile">, stream: NodeReadable);
13
+ resolve(): Promise<{
14
+ stream: NodeReadable;
15
+ }>;
16
+ stream(): NodeReadable;
17
+ toTempFile(dir?: string): Promise<{
18
+ path: string;
19
+ bytesWritten: number;
20
+ }>;
21
+ }
22
+ export declare function toPassThrough(stream: NodeReadable): NodeReadable;
@@ -0,0 +1,14 @@
1
+ import type { InputFile } from "../../types/inputFile";
2
+ import type { Readable } from "stream";
3
+ /**
4
+ * Read an InputFile's contents fully into memory as a Buffer.
5
+ * Note: InputFile streams are single-use; this will consume it.
6
+ */
7
+ export declare function readInputFileToBuffer(file: InputFile<Readable>): Promise<Buffer>;
8
+ /**
9
+ * Write an InputFile's contents to a specific path, returning bytesWritten.
10
+ * Note: InputFile streams are single-use; this will consume it.
11
+ */
12
+ export declare function writeInputFileToPath(file: InputFile<Readable>, targetPath: string): Promise<{
13
+ bytesWritten: number;
14
+ }>;
@@ -0,0 +1,45 @@
1
+ import type { Readable } from "stream";
2
+ import type { SerializerLike } from "../../serializer";
3
+ import type { IAsyncContext } from "../../types/asyncContext";
4
+ import type { IErrorHelper } from "../../types/error";
5
+ export interface MixedHttpClientAuthConfig {
6
+ header?: string;
7
+ token: string;
8
+ }
9
+ export interface MixedHttpClientConfig {
10
+ baseUrl: string;
11
+ auth?: MixedHttpClientAuthConfig;
12
+ timeoutMs?: number;
13
+ fetchImpl?: typeof fetch;
14
+ /**
15
+ * Forces the Smart client path even for plain JSON inputs.
16
+ *
17
+ * Use this when a task may return a stream even when its input is not a stream
18
+ * and does not include Node File sentinels (ex: download endpoints).
19
+ *
20
+ * - `true`: always use Smart for tasks
21
+ * - predicate: use Smart for selected task ids/inputs
22
+ */
23
+ forceSmart?: boolean | ((ctx: {
24
+ id: string;
25
+ input: unknown;
26
+ }) => boolean | Promise<boolean>);
27
+ serializer: SerializerLike;
28
+ onRequest?: (ctx: {
29
+ url: string;
30
+ headers: Record<string, string>;
31
+ }) => void | Promise<void>;
32
+ contexts?: Array<IAsyncContext<unknown>>;
33
+ errorRegistry?: Map<string, IErrorHelper<any>>;
34
+ }
35
+ export interface MixedHttpClient {
36
+ task<I = unknown, O = unknown>(id: string, input?: I): Promise<O | Readable | ReadableStream<Uint8Array>>;
37
+ event<P = unknown>(id: string, payload?: P): Promise<void>;
38
+ eventWithResult?<P = unknown>(id: string, payload?: P): Promise<P>;
39
+ }
40
+ /**
41
+ * Unified Node client that mixes JSON fetch for standard calls and
42
+ * Smart client for streaming/multipart. Keeps transport details out of app code.
43
+ */
44
+ export declare function createHttpMixedClient(cfg: MixedHttpClientConfig): MixedHttpClient;
45
+ export type { Readable };
@@ -0,0 +1,17 @@
1
+ import type { MixedHttpClient } from "./http-mixed-client";
2
+ export interface HttpMixedClientFactoryConfig {
3
+ baseUrl: string;
4
+ auth?: {
5
+ header?: string;
6
+ token: string;
7
+ };
8
+ timeoutMs?: number;
9
+ fetchImpl?: typeof fetch;
10
+ onRequest?: (ctx: {
11
+ url: string;
12
+ headers: Record<string, string>;
13
+ }) => void | Promise<void>;
14
+ }
15
+ export type HttpMixedClientFactory = (config: HttpMixedClientFactoryConfig) => MixedHttpClient;
16
+ export declare const httpMixedClientFactory: import("..").IResource<void, Promise<HttpMixedClientFactory>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
17
+ export type { MixedHttpClient };
@@ -0,0 +1,16 @@
1
+ import type { HttpSmartClient } from "./http-smart-client.model";
2
+ export interface HttpSmartClientFactoryConfig {
3
+ baseUrl: string;
4
+ auth?: {
5
+ header?: string;
6
+ token: string;
7
+ };
8
+ timeoutMs?: number;
9
+ onRequest?: (ctx: {
10
+ url: string;
11
+ headers: Record<string, string>;
12
+ }) => void | Promise<void>;
13
+ }
14
+ export type HttpSmartClientFactory = (config: HttpSmartClientFactoryConfig) => HttpSmartClient;
15
+ export declare const httpSmartClientFactory: import("..").IResource<void, Promise<HttpSmartClientFactory>, {}, any, any, import("..").TagType[], import("..").ResourceMiddlewareAttachmentType[]>;
16
+ export type { HttpSmartClient };
@@ -0,0 +1,27 @@
1
+ import { Readable } from "stream";
2
+ import type { SerializerLike } from "../../serializer";
3
+ import type { IAsyncContext } from "../../types/asyncContext";
4
+ import type { IErrorHelper } from "../../types/error";
5
+ export interface HttpSmartClientAuthConfig {
6
+ header?: string;
7
+ token: string;
8
+ }
9
+ export interface HttpSmartClientConfig {
10
+ baseUrl: string;
11
+ auth?: HttpSmartClientAuthConfig;
12
+ timeoutMs?: number;
13
+ serializer: SerializerLike;
14
+ onRequest?: (ctx: {
15
+ url: string;
16
+ headers: Record<string, string>;
17
+ }) => void | Promise<void>;
18
+ contexts?: Array<IAsyncContext<unknown>>;
19
+ errorRegistry?: Map<string, IErrorHelper<any>>;
20
+ }
21
+ export interface HttpSmartClient {
22
+ task<I = unknown, O = unknown>(id: string, input?: I): Promise<O | Readable>;
23
+ event<P = unknown>(id: string, payload?: P): Promise<void>;
24
+ eventWithResult?<P = unknown>(id: string, payload?: P): Promise<P>;
25
+ }
26
+ export declare function createHttpSmartClient(cfg: HttpSmartClientConfig): HttpSmartClient;
27
+ export type { Readable };
@@ -0,0 +1,4 @@
1
+ export { createHttpSmartClient, type HttpSmartClient, type HttpSmartClientAuthConfig, type HttpSmartClientConfig, type Readable, } from "./http-smart-client.model";
2
+ export { createHttpMixedClient, type MixedHttpClient, type MixedHttpClientAuthConfig, type MixedHttpClientConfig, } from "./http-mixed-client";
3
+ export { httpSmartClientFactory, type HttpSmartClientFactory, type HttpSmartClientFactoryConfig, } from "./http-smart-client.factory.resource";
4
+ export { httpMixedClientFactory, type HttpMixedClientFactory, type HttpMixedClientFactoryConfig, } from "./http-mixed-client.factory.resource";
@@ -0,0 +1 @@
1
+ export * from "./node";
@@ -0,0 +1,193 @@
1
+ export * from "../index";
2
+ import type { RunResult } from "../models/RunResult";
3
+ import type { SerializerLike } from "../serializer";
4
+ export { nodeExposure } from "./exposure";
5
+ export { hasExposureContext, useExposureContext, } from "./exposure/requestContext";
6
+ export type * from "./exposure/resourceTypes";
7
+ export { createNodeFile, NodeInputFile } from "./files";
8
+ export type { NodeReadable } from "./files";
9
+ export { readInputFileToBuffer, writeInputFileToPath } from "./files";
10
+ export { createHttpSmartClient, createHttpMixedClient } from "./http";
11
+ export type { HttpSmartClient, HttpSmartClientAuthConfig, HttpSmartClientConfig, MixedHttpClient, MixedHttpClientAuthConfig, MixedHttpClientConfig, Readable, } from "./http";
12
+ export * from "./durable";
13
+ export declare const globals: {
14
+ resources: {
15
+ httpSmartClientFactory: import("./node").IResource<void, Promise<import("./http").HttpSmartClientFactory>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
16
+ httpMixedClientFactory: import("./node").IResource<void, Promise<import("./http").HttpMixedClientFactory>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
17
+ store: import("./node").IResource<void, Promise<import("./node").Store>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
18
+ middlewareManager: import("./node").IResource<void, Promise<import("./node").MiddlewareManager>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
19
+ eventManager: import("./node").IResource<void, Promise<import("./node").EventManager>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
20
+ taskRunner: import("./node").IResource<void, Promise<import("./node").TaskRunner>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
21
+ logger: import("./node").IResource<void, Promise<import("./node").Logger>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
22
+ serializer: import("./node").IResource<void, Promise<SerializerLike>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
23
+ cache: import("./node").IResource<import("./node").CacheResourceConfig, Promise<{
24
+ map: Map<string, import("./node").ICacheInstance>;
25
+ cacheFactoryTask: import("./node").TaskDependencyWithIntercept<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./node").ICacheInstance>>;
26
+ defaultOptions: any;
27
+ }>, {
28
+ cacheFactoryTask: import("./node").ITask<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./node").ICacheInstance>, any, any, import("./node").TagType[], import("./node").TaskMiddlewareAttachmentType[]>;
29
+ }, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
30
+ queue: import("./node").IResource<void, Promise<{
31
+ map: Map<string, import("./node").Queue>;
32
+ run: <T>(id: string, task: (signal: AbortSignal) => Promise<T>) => Promise<T>;
33
+ }>, {}, {
34
+ map: Map<string, import("./node").Queue>;
35
+ }, {
36
+ title: string;
37
+ description: string;
38
+ }, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
39
+ httpClientFactory: import("./node").IResource<void, Promise<import("./node").HttpClientFactory>, {
40
+ serializer: import("./node").IResource<void, Promise<SerializerLike>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
41
+ store: import("./node").IResource<void, Promise<import("./node").Store>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
42
+ }, any, {
43
+ title: string;
44
+ description: string;
45
+ }, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
46
+ rateLimit: import("./node").IResource<void, Promise<{
47
+ states: WeakMap<import("./node").RateLimitMiddlewareConfig, import("./node").RateLimitState>;
48
+ }>, {}, any, any, import("./node").ITag<{
49
+ metadata?: Record<string, any>;
50
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
51
+ circuitBreaker: import("./node").IResource<void, Promise<{
52
+ statusMap: Map<string, import("./node").CircuitBreakerStatus>;
53
+ }>, {}, any, any, import("./node").ITag<{
54
+ metadata?: Record<string, any>;
55
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
56
+ temporal: import("./node").IResource<void, Promise<{
57
+ debounceStates: WeakMap<import("./node").TemporalMiddlewareConfig, import("./node").DebounceState>;
58
+ throttleStates: WeakMap<import("./node").TemporalMiddlewareConfig, import("./node").ThrottleState>;
59
+ }>, {}, any, any, import("./node").ITag<{
60
+ metadata?: Record<string, any>;
61
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
62
+ concurrency: import("./node").IResource<void, Promise<{
63
+ semaphoresByConfig: WeakMap<import("./node").ConcurrencyMiddlewareConfig, import("./node").Semaphore>;
64
+ semaphoresByKey: Map<string, {
65
+ semaphore: import("./node").Semaphore;
66
+ limit: number;
67
+ }>;
68
+ }>, {}, any, any, import("./node").ITag<{
69
+ metadata?: Record<string, any>;
70
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
71
+ };
72
+ events: {
73
+ readonly ready: import("./node").IEvent<void>;
74
+ };
75
+ middleware: {
76
+ requireContext: import("./node").ITaskMiddleware<import("./node").RequireContextMiddlewareConfig, void, void, any>;
77
+ task: {
78
+ requireContext: import("./node").ITaskMiddleware<import("./node").RequireContextMiddlewareConfig, void, void, any>;
79
+ cache: import("./node").ITaskMiddleware<any, void, void, {
80
+ cache: import("./node").IResource<import("./node").CacheResourceConfig, Promise<{
81
+ map: Map<string, import("./node").ICacheInstance>;
82
+ cacheFactoryTask: import("./node").TaskDependencyWithIntercept<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./node").ICacheInstance>>;
83
+ defaultOptions: any;
84
+ }>, {
85
+ cacheFactoryTask: import("./node").ITask<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./node").ICacheInstance>, any, any, import("./node").TagType[], import("./node").TaskMiddlewareAttachmentType[]>;
86
+ }, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
87
+ }> & {
88
+ journalKeys: {
89
+ readonly hit: import("./node").JournalKey<boolean>;
90
+ };
91
+ };
92
+ concurrency: import("./node").ITaskMiddleware<import("./node").ConcurrencyMiddlewareConfig, void, void, {
93
+ state: import("./node").IResource<void, Promise<{
94
+ semaphoresByConfig: WeakMap<import("./node").ConcurrencyMiddlewareConfig, import("./node").Semaphore>;
95
+ semaphoresByKey: Map<string, {
96
+ semaphore: import("./node").Semaphore;
97
+ limit: number;
98
+ }>;
99
+ }>, {}, any, any, import("./node").ITag<{
100
+ metadata?: Record<string, any>;
101
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
102
+ }>;
103
+ debounce: import("./node").ITaskMiddleware<import("./node").TemporalMiddlewareConfig, void, void, {
104
+ state: import("./node").IResource<void, Promise<{
105
+ debounceStates: WeakMap<import("./node").TemporalMiddlewareConfig, import("./node").DebounceState>;
106
+ throttleStates: WeakMap<import("./node").TemporalMiddlewareConfig, import("./node").ThrottleState>;
107
+ }>, {}, any, any, import("./node").ITag<{
108
+ metadata?: Record<string, any>;
109
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
110
+ }>;
111
+ throttle: import("./node").ITaskMiddleware<import("./node").TemporalMiddlewareConfig, void, void, {
112
+ state: import("./node").IResource<void, Promise<{
113
+ debounceStates: WeakMap<import("./node").TemporalMiddlewareConfig, import("./node").DebounceState>;
114
+ throttleStates: WeakMap<import("./node").TemporalMiddlewareConfig, import("./node").ThrottleState>;
115
+ }>, {}, any, any, import("./node").ITag<{
116
+ metadata?: Record<string, any>;
117
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
118
+ }>;
119
+ fallback: import("./node").ITaskMiddleware<import("./node").FallbackMiddlewareConfig, void, void, {
120
+ taskRunner: import("./node").IResource<void, Promise<import("./node").TaskRunner>, {}, any, any, import("./node").TagType[], import("./node").ResourceMiddlewareAttachmentType[]>;
121
+ }> & {
122
+ journalKeys: {
123
+ readonly active: import("./node").JournalKey<boolean>;
124
+ readonly error: import("./node").JournalKey<Error>;
125
+ };
126
+ };
127
+ rateLimit: import("./node").ITaskMiddleware<import("./node").RateLimitMiddlewareConfig, void, void, {
128
+ state: import("./node").IResource<void, Promise<{
129
+ states: WeakMap<import("./node").RateLimitMiddlewareConfig, import("./node").RateLimitState>;
130
+ }>, {}, any, any, import("./node").ITag<{
131
+ metadata?: Record<string, any>;
132
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
133
+ }> & {
134
+ journalKeys: {
135
+ readonly remaining: import("./node").JournalKey<number>;
136
+ readonly resetTime: import("./node").JournalKey<number>;
137
+ readonly limit: import("./node").JournalKey<number>;
138
+ };
139
+ };
140
+ retry: import("./node").ITaskMiddleware<import("./node").RetryMiddlewareConfig, void, void, any> & {
141
+ journalKeys: {
142
+ readonly attempt: import("./node").JournalKey<number>;
143
+ readonly lastError: import("./node").JournalKey<Error>;
144
+ };
145
+ };
146
+ timeout: import("./node").ITaskMiddleware<import("./node").TimeoutMiddlewareConfig, void, void, any> & {
147
+ journalKeys: {
148
+ readonly abortController: import("./node").JournalKey<AbortController>;
149
+ };
150
+ };
151
+ circuitBreaker: import("./node").ITaskMiddleware<import("./node").CircuitBreakerMiddlewareConfig, void, void, {
152
+ state: import("./node").IResource<void, Promise<{
153
+ statusMap: Map<string, import("./node").CircuitBreakerStatus>;
154
+ }>, {}, any, any, import("./node").ITag<{
155
+ metadata?: Record<string, any>;
156
+ }, void, void>[], import("./node").ResourceMiddlewareAttachmentType[]>;
157
+ }> & {
158
+ journalKeys: {
159
+ readonly state: import("./node").JournalKey<import("./node").CircuitBreakerState>;
160
+ readonly failures: import("./node").JournalKey<number>;
161
+ };
162
+ };
163
+ };
164
+ resource: {
165
+ retry: import("./node").IResourceMiddleware<import("./node").RetryMiddlewareConfig, void, void, any>;
166
+ timeout: import("./node").IResourceMiddleware<import("./node").TimeoutMiddlewareConfig, void, void, any>;
167
+ };
168
+ };
169
+ tags: {
170
+ system: import("./node").ITag<{
171
+ metadata?: Record<string, any>;
172
+ }, void, void>;
173
+ excludeFromGlobalHooks: import("./node").ITag<{
174
+ metadata?: Record<string, any>;
175
+ }, void, void>;
176
+ debug: import("./node").ITag<import("./node").DebugFriendlyConfig, void, void>;
177
+ tunnel: import("./node").ITag<void, void, import("./node").TunnelRunner>;
178
+ tunnelPolicy: import("./node").ITag<import("./node").TunnelTaskMiddlewarePolicyConfig, void, void>;
179
+ authValidator: import("./node").ITag<void, void, void>;
180
+ };
181
+ tunnels: Readonly<{
182
+ http: Readonly<{
183
+ createClient(cfg: import("./node").HttpCreateClientConfig): import("./node").ExposureFetchClient;
184
+ }>;
185
+ }>;
186
+ debug: {
187
+ levels: {
188
+ normal: import("./node").DebugConfig;
189
+ verbose: import("./node").DebugConfig;
190
+ };
191
+ };
192
+ };
193
+ export declare function run(root: any, config?: any): Promise<RunResult<any>>;
@@ -0,0 +1,9 @@
1
+ import type { Readable } from "stream";
2
+ import type { InputFileMeta, RunnerFileSentinel } from "../../types/inputFile";
3
+ export interface NodeFileSource {
4
+ stream?: Readable;
5
+ buffer?: Buffer;
6
+ }
7
+ export declare function createFile(meta: InputFileMeta, source: NodeFileSource, id?: string): RunnerFileSentinel & {
8
+ _node: NodeFileSource;
9
+ };
@@ -0,0 +1,7 @@
1
+ import type { Store } from "../../models/Store";
2
+ export interface TunnelAllowList {
3
+ enabled: boolean;
4
+ taskIds: Set<string>;
5
+ eventIds: Set<string>;
6
+ }
7
+ export declare function computeAllowList(store: Store): TunnelAllowList;
@@ -0,0 +1,2 @@
1
+ export { computeAllowList } from "./allowlist";
2
+ export type { TunnelAllowList } from "./allowlist";
@@ -0,0 +1,23 @@
1
+ import type { Readable } from "stream";
2
+ import type { InputFileMeta } from "../../types/inputFile";
3
+ export interface NodeFileSource {
4
+ id: string;
5
+ meta: InputFileMeta;
6
+ source: {
7
+ type: "buffer";
8
+ buffer: Buffer;
9
+ } | {
10
+ type: "stream";
11
+ stream: Readable;
12
+ };
13
+ }
14
+ export interface BuiltManifest<T = any> {
15
+ input: T;
16
+ files: NodeFileSource[];
17
+ }
18
+ export type AnyObj = Record<string, unknown>;
19
+ /**
20
+ * Walk an input object and collect File sentinels having local Node sources.
21
+ * It returns a shallow-cloned structure where any internal _node fields are removed.
22
+ */
23
+ export declare function buildNodeManifest<T>(input: T): BuiltManifest<T>;