@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,14 @@
1
+ import type { IAsyncLocalStorage, IPlatformAdapter, PlatformId } from "../types";
2
+ export declare class BrowserPlatformAdapter implements IPlatformAdapter {
3
+ readonly id: PlatformId;
4
+ init(): Promise<void>;
5
+ onUncaughtException(handler: (error: Error) => void): () => void | undefined;
6
+ onUnhandledRejection(handler: (reason: unknown) => void): () => void | undefined;
7
+ onShutdownSignal(handler: () => void): () => void;
8
+ exit(): void;
9
+ getEnv(key: string): string | undefined;
10
+ hasAsyncLocalStorage(): boolean;
11
+ createAsyncLocalStorage<T>(): IAsyncLocalStorage<T>;
12
+ setTimeout: typeof setTimeout;
13
+ clearTimeout: typeof clearTimeout;
14
+ }
@@ -0,0 +1,5 @@
1
+ import { BrowserPlatformAdapter } from "./browser";
2
+ export declare class EdgePlatformAdapter extends BrowserPlatformAdapter {
3
+ readonly id: "edge";
4
+ onShutdownSignal(_handler: () => void): () => void;
5
+ }
@@ -0,0 +1 @@
1
+ export declare function loadAsyncLocalStorageClass(): Promise<typeof import("async_hooks").AsyncLocalStorage>;
@@ -0,0 +1,15 @@
1
+ import type { IAsyncLocalStorage, IPlatformAdapter } from "../types";
2
+ export declare class NodePlatformAdapter implements IPlatformAdapter {
3
+ readonly id: "node";
4
+ private alsClass;
5
+ init(): Promise<void>;
6
+ onUncaughtException(handler: (error: Error) => void): () => NodeJS.Process;
7
+ onUnhandledRejection(handler: (reason: unknown) => void): () => NodeJS.Process;
8
+ onShutdownSignal(handler: () => void): () => void;
9
+ exit(code: number): void;
10
+ getEnv(key: string): string | undefined;
11
+ hasAsyncLocalStorage(): boolean;
12
+ createAsyncLocalStorage<T>(): IAsyncLocalStorage<T>;
13
+ setTimeout: typeof setTimeout;
14
+ clearTimeout: typeof clearTimeout;
15
+ }
@@ -0,0 +1,14 @@
1
+ import type { IAsyncLocalStorage, IPlatformAdapter } from "../types";
2
+ export declare class GenericUniversalPlatformAdapter implements IPlatformAdapter {
3
+ readonly id: "universal";
4
+ init(): Promise<void>;
5
+ onUncaughtException(handler: (error: any) => void): () => any;
6
+ onUnhandledRejection(handler: (reason: any) => void): () => any;
7
+ onShutdownSignal(handler: () => void): () => void;
8
+ exit(): void;
9
+ getEnv(key: string): string | undefined;
10
+ hasAsyncLocalStorage(): boolean;
11
+ createAsyncLocalStorage<T>(): IAsyncLocalStorage<T>;
12
+ setTimeout: typeof setTimeout;
13
+ clearTimeout: typeof clearTimeout;
14
+ }
@@ -0,0 +1,18 @@
1
+ import type { IPlatformAdapter, PlatformId } from "../types";
2
+ export declare function detectEnvironment(): PlatformId;
3
+ export declare class UniversalPlatformAdapter implements IPlatformAdapter {
4
+ readonly id: PlatformId;
5
+ private inner;
6
+ init(): Promise<void>;
7
+ private ensureInner;
8
+ private get;
9
+ onUncaughtException(handler: (error: Error) => void): () => void;
10
+ onUnhandledRejection(handler: (reason: unknown) => void): () => void;
11
+ onShutdownSignal(handler: () => void): () => void;
12
+ exit(code: number): void;
13
+ getEnv(key: string): string | undefined;
14
+ hasAsyncLocalStorage(): boolean;
15
+ createAsyncLocalStorage<T>(): import("..").IAsyncLocalStorage<T>;
16
+ setTimeout: typeof setTimeout;
17
+ clearTimeout: typeof clearTimeout;
18
+ }
@@ -0,0 +1,10 @@
1
+ import type { InputFileMeta, RunnerFileSentinel } from "../types/inputFile";
2
+ /**
3
+ * Universal/browser `createFile` helper. For Node, import from `@bluelibs/runner/node`.
4
+ */
5
+ export declare function createFile(meta: InputFileMeta, blob: Blob, id?: string): RunnerFileSentinel & {
6
+ _web: {
7
+ blob: Blob;
8
+ };
9
+ };
10
+ export type { RunnerFileSentinel };
@@ -0,0 +1,11 @@
1
+ import type { InputFileMeta, RunnerFileSentinel } from "../types/inputFile";
2
+ /**
3
+ * Browser/edge-friendly File sentinel creator.
4
+ * Produces the public File sentinel shape with a browser sidecar `_web`.
5
+ * The sidecar will be stripped out by the universal manifest walker before upload.
6
+ */
7
+ export declare function createWebFile(meta: InputFileMeta, blob: Blob, id?: string): RunnerFileSentinel & {
8
+ _web: {
9
+ blob: Blob;
10
+ };
11
+ };
@@ -0,0 +1,2 @@
1
+ import type { IPlatformAdapter } from "./types";
2
+ export declare function createPlatformAdapter(): IPlatformAdapter;
@@ -0,0 +1,27 @@
1
+ import type { IPlatformAdapter, IAsyncLocalStorage, PlatformId, PlatformSetTimeout, PlatformClearTimeout } from "./types";
2
+ import { detectEnvironment } from "./adapters/universal";
3
+ export { detectEnvironment };
4
+ export declare function getPlatform(): IPlatformAdapter;
5
+ export declare function setPlatform(adapter: IPlatformAdapter): void;
6
+ export declare function resetPlatform(): void;
7
+ export declare function getDetectedEnvironment(): PlatformId;
8
+ export declare function isNode(): boolean;
9
+ export declare function isBrowser(): boolean;
10
+ export declare function isUniversal(): boolean;
11
+ export type { IPlatformAdapter, IAsyncLocalStorage, PlatformId, PlatformSetTimeout, PlatformClearTimeout, } from "./types";
12
+ export declare class PlatformAdapter implements IPlatformAdapter {
13
+ private inner;
14
+ readonly env: PlatformId;
15
+ readonly id: PlatformId;
16
+ readonly setTimeout: PlatformSetTimeout;
17
+ readonly clearTimeout: PlatformClearTimeout;
18
+ constructor(env?: PlatformId);
19
+ init(): Promise<void>;
20
+ onUncaughtException(handler: (error: any) => void): () => void;
21
+ onUnhandledRejection(handler: (reason: any) => void): () => void;
22
+ onShutdownSignal(handler: () => void): () => void;
23
+ exit(code: number): void;
24
+ getEnv(key: string): string | undefined;
25
+ hasAsyncLocalStorage(): boolean;
26
+ createAsyncLocalStorage<T>(): IAsyncLocalStorage<T>;
27
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Platform abstraction interface for universal compatibility
3
+ * Inspired by Remix's approach to Web APIs and runtime-agnostic design
4
+ */
5
+ export type PlatformId = "node" | "browser" | "edge" | "universal";
6
+ export type PlatformSetTimeout = (...args: Parameters<typeof globalThis.setTimeout>) => ReturnType<typeof globalThis.setTimeout>;
7
+ export type PlatformClearTimeout = (timeout: ReturnType<PlatformSetTimeout>) => void;
8
+ export interface IPlatformAdapter {
9
+ readonly id: PlatformId;
10
+ onUncaughtException(handler: (error: Error) => void): () => void;
11
+ onUnhandledRejection(handler: (reason: unknown) => void): () => void;
12
+ onShutdownSignal(handler: () => void): () => void;
13
+ exit(code: number): void;
14
+ getEnv(key: string): string | undefined;
15
+ hasAsyncLocalStorage(): boolean;
16
+ createAsyncLocalStorage<T>(): IAsyncLocalStorage<T>;
17
+ setTimeout: PlatformSetTimeout;
18
+ clearTimeout: PlatformClearTimeout;
19
+ init: () => Promise<void>;
20
+ }
21
+ export interface IAsyncLocalStorage<T> {
22
+ getStore(): T | undefined;
23
+ run<R>(store: T, callback: () => R): R;
24
+ }
25
+ /**
26
+ * Utility functions for environment detection
27
+ */
28
+ export declare function isNode(): boolean;
29
+ export declare function isBrowser(): boolean;
30
+ export declare function isWebWorker(): boolean;
31
+ export declare function isUniversal(): boolean;
@@ -0,0 +1,2 @@
1
+ export declare function registerProcessLevelSafetyNets(handler: (error: unknown, source: "uncaughtException" | "unhandledRejection") => void | Promise<void>): () => void;
2
+ export declare function registerShutdownHook(disposeOnce: () => Promise<void>): () => void;
@@ -0,0 +1,13 @@
1
+ export type { IPlatformAdapter, IAsyncLocalStorage, PlatformId, PlatformSetTimeout, PlatformClearTimeout, } from "./platform";
2
+ export type { TestFacade } from "./testing";
3
+ export type { TaskBuilderWithPhantom, PhantomTaskFluentBuilder, TaskFluentBuilder, ResolveInput, ShouldReplaceInput, } from "./definers/builders/task";
4
+ export type { AsyncContextFluentBuilder } from "./definers/builders/asyncContext";
5
+ export type { ErrorFluentBuilder } from "./definers/builders/error";
6
+ export type { EventFluentBuilder } from "./definers/builders/event";
7
+ export type { HookFluentBuilder, ValidOnTarget, ResolvedOn, } from "./definers/builders/hook";
8
+ export type { ResourceFluentBuilder, ResolveConfig, ShouldReplaceConfig, } from "./definers/builders/resource";
9
+ export type { TaskMiddlewareFluentBuilder, ResourceMiddlewareFluentBuilder, } from "./definers/builders/middleware";
10
+ export type { TagFluentBuilder } from "./definers/builders/tag";
11
+ export type { HookOverrideBuilder, HookOn, } from "./definers/builders/override/hook";
12
+ export type { TypeDefinition, SerializerOptions, JsonPrimitive, ObjectReference, SerializedTypeRecord, SerializerLike, SerializedNode, SerializedValue, SerializationContext, DeserializationContext, } from "./serializer";
13
+ export type { ExecutionJournal, JournalKey, JournalSetOptions, } from "./types/executionJournal";
@@ -0,0 +1,210 @@
1
+ import { defineTask, defineResource, defineEvent, defineTaskMiddleware, defineResourceMiddleware, defineTag, defineOverride, defineHook } from "./define";
2
+ import { defineAsyncContext, createContext as oldCreateContext } from "./definers/defineAsyncContext";
3
+ import { run } from "./run";
4
+ import { createTestResource } from "./testing";
5
+ import { override as overrideBuilder } from "./definers/builders/override";
6
+ declare const globals: {
7
+ events: {
8
+ readonly ready: import("./defs").IEvent<void>;
9
+ };
10
+ resources: {
11
+ readonly store: import("./defs").IResource<void, Promise<import("./models").Store>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
12
+ readonly middlewareManager: import("./defs").IResource<void, Promise<import("./models").MiddlewareManager>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
13
+ readonly eventManager: import("./defs").IResource<void, Promise<import("./models").EventManager>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
14
+ readonly taskRunner: import("./defs").IResource<void, Promise<import("./models").TaskRunner>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
15
+ readonly logger: import("./defs").IResource<void, Promise<import("./models").Logger>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
16
+ readonly serializer: import("./defs").IResource<void, Promise<import("./serializer").SerializerLike>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
17
+ readonly cache: import("./defs").IResource<import("./public").CacheResourceConfig, Promise<{
18
+ map: Map<string, import("./defs").ICacheInstance>;
19
+ cacheFactoryTask: import("./defs").TaskDependencyWithIntercept<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./defs").ICacheInstance>>;
20
+ defaultOptions: any;
21
+ }>, {
22
+ cacheFactoryTask: import("./defs").ITask<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./defs").ICacheInstance>, any, any, import("./defs").TagType[], import("./defs").TaskMiddlewareAttachmentType[]>;
23
+ }, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
24
+ readonly queue: import("./defs").IResource<void, Promise<{
25
+ map: Map<string, import("./models").Queue>;
26
+ run: <T>(id: string, task: (signal: AbortSignal) => Promise<T>) => Promise<T>;
27
+ }>, {}, {
28
+ map: Map<string, import("./models").Queue>;
29
+ }, {
30
+ title: string;
31
+ description: string;
32
+ }, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
33
+ readonly httpClientFactory: import("./defs").IResource<void, Promise<import("./public").HttpClientFactory>, {
34
+ serializer: import("./defs").IResource<void, Promise<import("./serializer").SerializerLike>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
35
+ store: import("./defs").IResource<void, Promise<import("./models").Store>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
36
+ }, any, {
37
+ title: string;
38
+ description: string;
39
+ }, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
40
+ readonly rateLimit: import("./defs").IResource<void, Promise<{
41
+ states: WeakMap<import("./public").RateLimitMiddlewareConfig, import("./public").RateLimitState>;
42
+ }>, {}, any, any, import("./defs").ITag<{
43
+ metadata?: Record<string, any>;
44
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
45
+ readonly circuitBreaker: import("./defs").IResource<void, Promise<{
46
+ statusMap: Map<string, import("./public").CircuitBreakerStatus>;
47
+ }>, {}, any, any, import("./defs").ITag<{
48
+ metadata?: Record<string, any>;
49
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
50
+ readonly temporal: import("./defs").IResource<void, Promise<{
51
+ debounceStates: WeakMap<import("./public").TemporalMiddlewareConfig, import("./public").DebounceState>;
52
+ throttleStates: WeakMap<import("./public").TemporalMiddlewareConfig, import("./public").ThrottleState>;
53
+ }>, {}, any, any, import("./defs").ITag<{
54
+ metadata?: Record<string, any>;
55
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
56
+ readonly concurrency: import("./defs").IResource<void, Promise<{
57
+ semaphoresByConfig: WeakMap<import("./public").ConcurrencyMiddlewareConfig, import("./models").Semaphore>;
58
+ semaphoresByKey: Map<string, {
59
+ semaphore: import("./models").Semaphore;
60
+ limit: number;
61
+ }>;
62
+ }>, {}, any, any, import("./defs").ITag<{
63
+ metadata?: Record<string, any>;
64
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
65
+ };
66
+ middleware: {
67
+ requireContext: import("./defs").ITaskMiddleware<import("./public").RequireContextMiddlewareConfig, void, void, any>;
68
+ task: {
69
+ requireContext: import("./defs").ITaskMiddleware<import("./public").RequireContextMiddlewareConfig, void, void, any>;
70
+ cache: import("./defs").ITaskMiddleware<any, void, void, {
71
+ cache: import("./defs").IResource<import("./public").CacheResourceConfig, Promise<{
72
+ map: Map<string, import("./defs").ICacheInstance>;
73
+ cacheFactoryTask: import("./defs").TaskDependencyWithIntercept<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./defs").ICacheInstance>>;
74
+ defaultOptions: any;
75
+ }>, {
76
+ cacheFactoryTask: import("./defs").ITask<import("lru-cache").LRUCache.Options<any, any, any>, Promise<import("./defs").ICacheInstance>, any, any, import("./defs").TagType[], import("./defs").TaskMiddlewareAttachmentType[]>;
77
+ }, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
78
+ }> & {
79
+ journalKeys: {
80
+ readonly hit: import("./public-types").JournalKey<boolean>;
81
+ };
82
+ };
83
+ concurrency: import("./defs").ITaskMiddleware<import("./public").ConcurrencyMiddlewareConfig, void, void, {
84
+ state: import("./defs").IResource<void, Promise<{
85
+ semaphoresByConfig: WeakMap<import("./public").ConcurrencyMiddlewareConfig, import("./models").Semaphore>;
86
+ semaphoresByKey: Map<string, {
87
+ semaphore: import("./models").Semaphore;
88
+ limit: number;
89
+ }>;
90
+ }>, {}, any, any, import("./defs").ITag<{
91
+ metadata?: Record<string, any>;
92
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
93
+ }>;
94
+ debounce: import("./defs").ITaskMiddleware<import("./public").TemporalMiddlewareConfig, void, void, {
95
+ state: import("./defs").IResource<void, Promise<{
96
+ debounceStates: WeakMap<import("./public").TemporalMiddlewareConfig, import("./public").DebounceState>;
97
+ throttleStates: WeakMap<import("./public").TemporalMiddlewareConfig, import("./public").ThrottleState>;
98
+ }>, {}, any, any, import("./defs").ITag<{
99
+ metadata?: Record<string, any>;
100
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
101
+ }>;
102
+ throttle: import("./defs").ITaskMiddleware<import("./public").TemporalMiddlewareConfig, void, void, {
103
+ state: import("./defs").IResource<void, Promise<{
104
+ debounceStates: WeakMap<import("./public").TemporalMiddlewareConfig, import("./public").DebounceState>;
105
+ throttleStates: WeakMap<import("./public").TemporalMiddlewareConfig, import("./public").ThrottleState>;
106
+ }>, {}, any, any, import("./defs").ITag<{
107
+ metadata?: Record<string, any>;
108
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
109
+ }>;
110
+ fallback: import("./defs").ITaskMiddleware<import("./public").FallbackMiddlewareConfig, void, void, {
111
+ taskRunner: import("./defs").IResource<void, Promise<import("./models").TaskRunner>, {}, any, any, import("./defs").TagType[], import("./defs").ResourceMiddlewareAttachmentType[]>;
112
+ }> & {
113
+ journalKeys: {
114
+ readonly active: import("./public-types").JournalKey<boolean>;
115
+ readonly error: import("./public-types").JournalKey<Error>;
116
+ };
117
+ };
118
+ rateLimit: import("./defs").ITaskMiddleware<import("./public").RateLimitMiddlewareConfig, void, void, {
119
+ state: import("./defs").IResource<void, Promise<{
120
+ states: WeakMap<import("./public").RateLimitMiddlewareConfig, import("./public").RateLimitState>;
121
+ }>, {}, any, any, import("./defs").ITag<{
122
+ metadata?: Record<string, any>;
123
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
124
+ }> & {
125
+ journalKeys: {
126
+ readonly remaining: import("./public-types").JournalKey<number>;
127
+ readonly resetTime: import("./public-types").JournalKey<number>;
128
+ readonly limit: import("./public-types").JournalKey<number>;
129
+ };
130
+ };
131
+ retry: import("./defs").ITaskMiddleware<import("./public").RetryMiddlewareConfig, void, void, any> & {
132
+ journalKeys: {
133
+ readonly attempt: import("./public-types").JournalKey<number>;
134
+ readonly lastError: import("./public-types").JournalKey<Error>;
135
+ };
136
+ };
137
+ timeout: import("./defs").ITaskMiddleware<import("./public").TimeoutMiddlewareConfig, void, void, any> & {
138
+ journalKeys: {
139
+ readonly abortController: import("./public-types").JournalKey<AbortController>;
140
+ };
141
+ };
142
+ circuitBreaker: import("./defs").ITaskMiddleware<import("./public").CircuitBreakerMiddlewareConfig, void, void, {
143
+ state: import("./defs").IResource<void, Promise<{
144
+ statusMap: Map<string, import("./public").CircuitBreakerStatus>;
145
+ }>, {}, any, any, import("./defs").ITag<{
146
+ metadata?: Record<string, any>;
147
+ }, void, void>[], import("./defs").ResourceMiddlewareAttachmentType[]>;
148
+ }> & {
149
+ journalKeys: {
150
+ readonly state: import("./public-types").JournalKey<import("./public").CircuitBreakerState>;
151
+ readonly failures: import("./public-types").JournalKey<number>;
152
+ };
153
+ };
154
+ };
155
+ resource: {
156
+ retry: import("./defs").IResourceMiddleware<import("./public").RetryMiddlewareConfig, void, void, any>;
157
+ timeout: import("./defs").IResourceMiddleware<import("./public").TimeoutMiddlewareConfig, void, void, any>;
158
+ };
159
+ };
160
+ tags: {
161
+ system: import("./defs").ITag<{
162
+ metadata?: Record<string, any>;
163
+ }, void, void>;
164
+ excludeFromGlobalHooks: import("./defs").ITag<{
165
+ metadata?: Record<string, any>;
166
+ }, void, void>;
167
+ debug: import("./defs").ITag<import("./public").DebugFriendlyConfig, void, void>;
168
+ tunnel: import("./defs").ITag<void, void, import("./public").TunnelRunner>;
169
+ tunnelPolicy: import("./defs").ITag<import("./public").TunnelTaskMiddlewarePolicyConfig, void, void>;
170
+ authValidator: import("./defs").ITag<void, void, void>;
171
+ };
172
+ tunnels: Readonly<{
173
+ http: Readonly<{
174
+ createClient(cfg: import("./public").HttpCreateClientConfig): import("./http-fetch-tunnel.resource").ExposureFetchClient;
175
+ }>;
176
+ }>;
177
+ debug: {
178
+ levels: {
179
+ normal: import("./public").DebugConfig;
180
+ verbose: import("./public").DebugConfig;
181
+ };
182
+ };
183
+ };
184
+ export { globals };
185
+ export { defineTask as task, defineResource as resource, defineEvent as event, defineTaskMiddleware as taskMiddleware, defineResourceMiddleware as resourceMiddleware, defineAsyncContext as asyncContext, defineTag as tag, defineOverride as override, defineHook as hook, run, createTestResource, };
186
+ declare const createContext: typeof oldCreateContext;
187
+ export { createContext };
188
+ export declare const r: Readonly<{
189
+ resource: typeof import("./definers/builders/resource").resourceBuilder;
190
+ task: import("./public-types").TaskBuilderWithPhantom;
191
+ event: typeof import("./definers/builders/event").eventBuilder;
192
+ hook: typeof import("./definers/builders/hook").hookBuilder;
193
+ tag: typeof import("./definers/builders/tag").tagBuilder;
194
+ override: typeof overrideBuilder;
195
+ asyncContext: typeof import("./definers/builders/asyncContext").asyncContextBuilder;
196
+ error: typeof import("./definers/builders/error").errorBuilder;
197
+ middleware: Readonly<{
198
+ task: typeof import("./definers/builders/middleware").taskMiddlewareBuilder;
199
+ resource: typeof import("./definers/builders/middleware").resourceMiddlewareBuilder;
200
+ }>;
201
+ }>;
202
+ export * as definitions from "./defs";
203
+ export * from "./models";
204
+ export * from "./globals/types";
205
+ export * as Errors from "./errors";
206
+ export { PlatformAdapter, setPlatform } from "./platform";
207
+ export * from "./http-client";
208
+ export * from "./http-fetch-tunnel.resource";
209
+ export { Serializer, SymbolPolicy, SymbolPolicyErrorMessage, } from "./serializer";
210
+ export { journal } from "./models/ExecutionJournal";
@@ -0,0 +1,14 @@
1
+ import { IResource, IResourceWithConfig } from "./defs";
2
+ import { RunResult } from "./models/RunResult";
3
+ import { RunOptions } from "./types/runner";
4
+ /**
5
+ * This is the central function that kicks off you runner. You can run as many resources as you want in a single process, they will run in complete isolation.
6
+ *
7
+ * @param resourceOrResourceWithConfig - The resource or resource with config to run.
8
+ * @param options - The options for the run.
9
+ * @returns A promise that resolves to the result of the run.
10
+ */
11
+ export declare function run<C, V extends Promise<any>>(resourceOrResourceWithConfig: IResourceWithConfig<C, V> | IResource<void, V, any, any> | IResource<{
12
+ [K in any]?: any;
13
+ }, V, any, any>, // For optional config
14
+ options?: RunOptions): Promise<RunResult<V extends Promise<infer U> ? U : V>>;
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Graph-aware serializer/deserializer with circular reference
3
+ * handling and pluggable type support.
4
+ *
5
+ * Internal protocol reference: `readmes/SERIALIZER_PROTOCOL.md`.
6
+ */
7
+ import type { TypeDefinition, SerializationContext, SerializerOptions, DeserializationContext, SerializedValue, SerializedNode } from "./types";
8
+ export declare class Serializer {
9
+ /** Type registry for managing custom types */
10
+ private readonly typeRegistry;
11
+ private readonly runtimeOptions;
12
+ /** JSON indentation width when pretty printing is enabled */
13
+ private readonly indent;
14
+ /** Maximum recursion depth allowed */
15
+ private readonly maxDepth;
16
+ /** Maximum allowed RegExp pattern length during deserialization */
17
+ private readonly maxRegExpPatternLength;
18
+ /** Allow RegExp patterns that fail the safety heuristic */
19
+ private readonly allowUnsafeRegExp;
20
+ /** Disallowed keys that can lead to prototype pollution */
21
+ private readonly unsafeKeys;
22
+ constructor(options?: SerializerOptions);
23
+ /**
24
+ * Alias of `serialize()` to match the historical tunnel serializer surface.
25
+ */
26
+ stringify<T>(value: T): string;
27
+ /**
28
+ * Alias of `deserialize()` to match the historical tunnel serializer surface.
29
+ */
30
+ parse<T = unknown>(payload: string): T;
31
+ /**
32
+ * Serialize an arbitrary value into a JSON string.
33
+ */
34
+ serialize<T>(value: T, context?: SerializationContext): string;
35
+ /**
36
+ * Deserialize a JSON string back to its original value.
37
+ */
38
+ deserialize<T = unknown>(payload: string): T;
39
+ /**
40
+ * Register a custom type for serialization/deserialization.
41
+ */
42
+ addType<TInstance, TSerialized>(typeDef: TypeDefinition<TInstance, TSerialized>): void;
43
+ addType<TJson = unknown, TInstance = unknown>(name: string, factory: (json: TJson) => TInstance): void;
44
+ /**
45
+ * @internal - Exposed for testing RegExp safety validation
46
+ */
47
+ readonly isRegExpPatternSafe: (pattern: string) => boolean;
48
+ /**
49
+ * @internal - Exposed for testing quantifier detection
50
+ */
51
+ readonly isQuantifierAt: (pattern: string, index: number) => boolean;
52
+ /**
53
+ * @internal - Exposed for testing quantifier character detection
54
+ */
55
+ readonly isQuantifierChar: (char: string, pattern: string, index: number) => boolean;
56
+ /**
57
+ * @internal - Exposed for testing bounded quantifier detection
58
+ */
59
+ readonly isBoundedQuantifier: (pattern: string, index: number) => boolean;
60
+ /**
61
+ * @internal - Exposed for test compatibility
62
+ */
63
+ toNodeRecord(nodes: Record<string, SerializedNode>): Record<string, SerializedNode>;
64
+ /**
65
+ * @internal - Exposed for test compatibility
66
+ */
67
+ deserializeValue(value: SerializedValue, context: DeserializationContext, depth?: number): unknown;
68
+ /**
69
+ * @internal - Exposed for test compatibility
70
+ */
71
+ resolveReference(id: string, context: DeserializationContext, depth?: number): unknown;
72
+ /**
73
+ * @internal - Exposed for test compatibility
74
+ */
75
+ mergePlaceholder(placeholder: unknown, result: unknown): unknown;
76
+ /**
77
+ * @internal - Exposed for test compatibility
78
+ */
79
+ isSerializedTypeRecord(value: unknown): value is {
80
+ __type: string;
81
+ value: unknown;
82
+ };
83
+ private jsonStringify;
84
+ }
@@ -0,0 +1,5 @@
1
+ import type { TypeDefinition } from "./types";
2
+ export declare const ArrayBufferType: TypeDefinition<ArrayBuffer, readonly number[]>;
3
+ export declare const DataViewType: TypeDefinition<DataView, readonly number[]>;
4
+ export declare const BufferType: TypeDefinition<Uint8Array, readonly number[]>;
5
+ export declare const binaryBuiltInTypes: Array<TypeDefinition<unknown, unknown>>;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Built-in type definitions for common JavaScript objects
3
+ */
4
+ import type { TypeDefinition } from "./types";
5
+ import { BigIntPayload, NonFiniteNumberTag } from "./special-values";
6
+ export declare enum SymbolPayloadKind {
7
+ For = "For",
8
+ WellKnown = "WellKnown"
9
+ }
10
+ declare const WELL_KNOWN_SYMBOL_KEYS: readonly ["asyncIterator", "hasInstance", "isConcatSpreadable", "iterator", "match", "matchAll", "observable", "replace", "search", "species", "split", "toPrimitive", "toStringTag", "unscopables"];
11
+ type WellKnownSymbolKey = (typeof WELL_KNOWN_SYMBOL_KEYS)[number];
12
+ export type SerializedSymbolPayload = {
13
+ kind: SymbolPayloadKind.For;
14
+ key: string;
15
+ } | {
16
+ kind: SymbolPayloadKind.WellKnown;
17
+ key: WellKnownSymbolKey;
18
+ };
19
+ export declare const assertSymbolPayload: (payload: unknown) => SerializedSymbolPayload;
20
+ /**
21
+ * Built-in type handler for Date objects
22
+ */
23
+ export declare const DateType: TypeDefinition<Date, string>;
24
+ /**
25
+ * Built-in type handler for RegExp objects
26
+ */
27
+ export declare const RegExpType: TypeDefinition<RegExp, {
28
+ pattern: string;
29
+ flags: string;
30
+ }>;
31
+ /**
32
+ * Built-in type handler for Map objects
33
+ */
34
+ export declare const MapType: TypeDefinition<Map<unknown, unknown>, Array<[unknown, unknown]>>;
35
+ /**
36
+ * Built-in type handler for Set objects
37
+ */
38
+ export declare const SetType: TypeDefinition<Set<unknown>, unknown[]>;
39
+ export declare const UndefinedType: TypeDefinition<undefined, null>;
40
+ export declare const NonFiniteNumberType: TypeDefinition<number, NonFiniteNumberTag>;
41
+ export declare const BigIntType: TypeDefinition<bigint, BigIntPayload>;
42
+ export declare const SymbolType: TypeDefinition<symbol, SerializedSymbolPayload>;
43
+ /**
44
+ * Array of all built-in type definitions
45
+ */
46
+ export declare const builtInTypes: Array<TypeDefinition<unknown, unknown>>;
47
+ export {};
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Deserialization logic for graph and legacy payloads.
3
+ * Extracted from Serializer.ts as a standalone module.
4
+ */
5
+ import type { SerializedValue, DeserializationContext } from "./types";
6
+ import type { TypeRegistry } from "./type-registry";
7
+ export interface DeserializerOptions {
8
+ maxDepth: number;
9
+ unsafeKeys: ReadonlySet<string>;
10
+ typeRegistry: TypeRegistry;
11
+ }
12
+ /**
13
+ * Deserialize a value from its serialized representation.
14
+ */
15
+ export declare const deserializeValue: (value: SerializedValue, context: DeserializationContext, depth: number, options: DeserializerOptions) => unknown;
16
+ /**
17
+ * Resolve a reference ID to its deserialized value.
18
+ */
19
+ export declare const resolveReference: (id: string, context: DeserializationContext, depth: number, options: DeserializerOptions) => unknown;
20
+ /**
21
+ * Merge a placeholder with the final result for identity preservation.
22
+ */
23
+ export declare const mergePlaceholder: (placeholder: unknown, result: unknown, unsafeKeys: ReadonlySet<string>) => unknown;
24
+ /**
25
+ * Deserialize legacy tree-format payloads (pre-graph format).
26
+ */
27
+ export declare const deserializeLegacy: (value: unknown, depth: number, options: DeserializerOptions) => unknown;
@@ -0,0 +1,13 @@
1
+ import type { TypeDefinition } from "./types";
2
+ interface SerializedErrorPayload {
3
+ name: string;
4
+ message: string;
5
+ stack?: string;
6
+ cause?: unknown;
7
+ customFields: Record<string, unknown>;
8
+ }
9
+ export declare const ErrorType: TypeDefinition<Error, SerializedErrorPayload>;
10
+ export declare const URLType: TypeDefinition<URL, string>;
11
+ export declare const URLSearchParamsType: TypeDefinition<URLSearchParams, string>;
12
+ export declare const errorAndUrlBuiltInTypes: Array<TypeDefinition<unknown, unknown>>;
13
+ export {};
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Graph-mode serialization with circular reference handling.
3
+ * Extracted from Serializer.ts as a standalone module.
4
+ */
5
+ import type { SerializedValue, SerializationContext, SerializedNode } from "./types";
6
+ import type { TypeRegistry } from "./type-registry";
7
+ export interface SerializeState {
8
+ serializingValueTypes: WeakSet<object>;
9
+ excludedTypeIds: string[];
10
+ }
11
+ export interface GraphSerializerOptions {
12
+ maxDepth: number;
13
+ unsafeKeys: ReadonlySet<string>;
14
+ typeRegistry: TypeRegistry;
15
+ }
16
+ /**
17
+ * Create a unique object ID for the serialization context.
18
+ */
19
+ export declare const createObjectId: (context: SerializationContext) => string;
20
+ /**
21
+ * Store a node in the serialization context.
22
+ */
23
+ export declare const storeNode: (context: SerializationContext, id: string, node: SerializedNode) => void;
24
+ /**
25
+ * Serialize a value in graph mode with reference tracking.
26
+ */
27
+ export declare const serializeValue: (value: unknown, context: SerializationContext, state: SerializeState, depth: number, options: GraphSerializerOptions) => SerializedValue;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Main export module for the Serializer
3
+ */
4
+ export type { JsonPrimitive, ObjectReference, SerializedTypeRecord, SerializerOptions, TypeDefinition, SerializedNode, SerializedValue, SerializationContext, DeserializationContext, SerializedGraph, SerializerLike, } from "./types";
5
+ export { SymbolPolicy, SymbolPolicyErrorMessage } from "./types";
6
+ export { Serializer } from "./Serializer";
@@ -0,0 +1,2 @@
1
+ export declare const normalizeMaxDepth: (value: number | undefined, fallback: number) => number;
2
+ export declare const normalizeMaxRegExpPatternLength: (value: number | undefined, fallback: number) => number;