@c9up/ream 0.1.3

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 (451) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -0
  3. package/dist/Application.d.ts +71 -0
  4. package/dist/Application.d.ts.map +1 -0
  5. package/dist/Application.js +151 -0
  6. package/dist/Application.js.map +1 -0
  7. package/dist/Codemods.d.ts +16 -0
  8. package/dist/Codemods.d.ts.map +1 -0
  9. package/dist/Codemods.js +277 -0
  10. package/dist/Codemods.js.map +1 -0
  11. package/dist/ConfigLoader.d.ts +29 -0
  12. package/dist/ConfigLoader.d.ts.map +1 -0
  13. package/dist/ConfigLoader.js +43 -0
  14. package/dist/ConfigLoader.js.map +1 -0
  15. package/dist/ErrorBoundary.d.ts +51 -0
  16. package/dist/ErrorBoundary.d.ts.map +1 -0
  17. package/dist/ErrorBoundary.js +122 -0
  18. package/dist/ErrorBoundary.js.map +1 -0
  19. package/dist/GracefulShutdown.d.ts +28 -0
  20. package/dist/GracefulShutdown.d.ts.map +1 -0
  21. package/dist/GracefulShutdown.js +55 -0
  22. package/dist/GracefulShutdown.js.map +1 -0
  23. package/dist/HealthCheck.d.ts +42 -0
  24. package/dist/HealthCheck.d.ts.map +1 -0
  25. package/dist/HealthCheck.js +65 -0
  26. package/dist/HealthCheck.js.map +1 -0
  27. package/dist/HotReload.d.ts +28 -0
  28. package/dist/HotReload.d.ts.map +1 -0
  29. package/dist/HotReload.js +60 -0
  30. package/dist/HotReload.js.map +1 -0
  31. package/dist/HttpKernel.d.ts +62 -0
  32. package/dist/HttpKernel.d.ts.map +1 -0
  33. package/dist/HttpKernel.js +210 -0
  34. package/dist/HttpKernel.js.map +1 -0
  35. package/dist/Ignitor.d.ts +195 -0
  36. package/dist/Ignitor.d.ts.map +1 -0
  37. package/dist/Ignitor.js +505 -0
  38. package/dist/Ignitor.js.map +1 -0
  39. package/dist/Provider.d.ts +54 -0
  40. package/dist/Provider.d.ts.map +1 -0
  41. package/dist/Provider.js +37 -0
  42. package/dist/Provider.js.map +1 -0
  43. package/dist/bodyparser/BodyParserMiddleware.d.ts +38 -0
  44. package/dist/bodyparser/BodyParserMiddleware.d.ts.map +1 -0
  45. package/dist/bodyparser/BodyParserMiddleware.js +143 -0
  46. package/dist/bodyparser/BodyParserMiddleware.js.map +1 -0
  47. package/dist/bodyparser/MultipartFile.d.ts +77 -0
  48. package/dist/bodyparser/MultipartFile.d.ts.map +1 -0
  49. package/dist/bodyparser/MultipartFile.js +138 -0
  50. package/dist/bodyparser/MultipartFile.js.map +1 -0
  51. package/dist/bodyparser/parseSize.d.ts +6 -0
  52. package/dist/bodyparser/parseSize.d.ts.map +1 -0
  53. package/dist/bodyparser/parseSize.js +21 -0
  54. package/dist/bodyparser/parseSize.js.map +1 -0
  55. package/dist/bootstrap/hyper-server.d.ts +27 -0
  56. package/dist/bootstrap/hyper-server.d.ts.map +1 -0
  57. package/dist/bootstrap/hyper-server.js +63 -0
  58. package/dist/bootstrap/hyper-server.js.map +1 -0
  59. package/dist/console/CommandRunner.d.ts +18 -0
  60. package/dist/console/CommandRunner.d.ts.map +1 -0
  61. package/dist/console/CommandRunner.js +65 -0
  62. package/dist/console/CommandRunner.js.map +1 -0
  63. package/dist/container/Container.d.ts +60 -0
  64. package/dist/container/Container.d.ts.map +1 -0
  65. package/dist/container/Container.js +329 -0
  66. package/dist/container/Container.js.map +1 -0
  67. package/dist/container/types.d.ts +25 -0
  68. package/dist/container/types.d.ts.map +1 -0
  69. package/dist/container/types.js +6 -0
  70. package/dist/container/types.js.map +1 -0
  71. package/dist/decorators/Lazy.d.ts +19 -0
  72. package/dist/decorators/Lazy.d.ts.map +1 -0
  73. package/dist/decorators/Lazy.js +53 -0
  74. package/dist/decorators/Lazy.js.map +1 -0
  75. package/dist/decorators/Service.d.ts +48 -0
  76. package/dist/decorators/Service.d.ts.map +1 -0
  77. package/dist/decorators/Service.js +70 -0
  78. package/dist/decorators/Service.js.map +1 -0
  79. package/dist/errors/FuzzyMatcher.d.ts +41 -0
  80. package/dist/errors/FuzzyMatcher.d.ts.map +1 -0
  81. package/dist/errors/FuzzyMatcher.js +81 -0
  82. package/dist/errors/FuzzyMatcher.js.map +1 -0
  83. package/dist/errors/ModuleErrors.d.ts +41 -0
  84. package/dist/errors/ModuleErrors.d.ts.map +1 -0
  85. package/dist/errors/ModuleErrors.js +65 -0
  86. package/dist/errors/ModuleErrors.js.map +1 -0
  87. package/dist/errors/PipelineStageError.d.ts +31 -0
  88. package/dist/errors/PipelineStageError.d.ts.map +1 -0
  89. package/dist/errors/PipelineStageError.js +77 -0
  90. package/dist/errors/PipelineStageError.js.map +1 -0
  91. package/dist/errors/ReamError.d.ts +50 -0
  92. package/dist/errors/ReamError.d.ts.map +1 -0
  93. package/dist/errors/ReamError.js +108 -0
  94. package/dist/errors/ReamError.js.map +1 -0
  95. package/dist/events/Emitter.d.ts +124 -0
  96. package/dist/events/Emitter.d.ts.map +1 -0
  97. package/dist/events/Emitter.js +271 -0
  98. package/dist/events/Emitter.js.map +1 -0
  99. package/dist/events/EventsProvider.d.ts +28 -0
  100. package/dist/events/EventsProvider.d.ts.map +1 -0
  101. package/dist/events/EventsProvider.js +36 -0
  102. package/dist/events/EventsProvider.js.map +1 -0
  103. package/dist/events/config.d.ts +8 -0
  104. package/dist/events/config.d.ts.map +1 -0
  105. package/dist/events/config.js +4 -0
  106. package/dist/events/config.js.map +1 -0
  107. package/dist/events/configure.d.ts +10 -0
  108. package/dist/events/configure.d.ts.map +1 -0
  109. package/dist/events/configure.js +11 -0
  110. package/dist/events/configure.js.map +1 -0
  111. package/dist/events/helix/helpers.d.ts +62 -0
  112. package/dist/events/helix/helpers.d.ts.map +1 -0
  113. package/dist/events/helix/helpers.js +187 -0
  114. package/dist/events/helix/helpers.js.map +1 -0
  115. package/dist/events/index.d.ts +17 -0
  116. package/dist/events/index.d.ts.map +1 -0
  117. package/dist/events/index.js +15 -0
  118. package/dist/events/index.js.map +1 -0
  119. package/dist/events/native.d.ts +21 -0
  120. package/dist/events/native.d.ts.map +1 -0
  121. package/dist/events/native.js +17 -0
  122. package/dist/events/native.js.map +1 -0
  123. package/dist/events/services/main.d.ts +18 -0
  124. package/dist/events/services/main.d.ts.map +1 -0
  125. package/dist/events/services/main.js +31 -0
  126. package/dist/events/services/main.js.map +1 -0
  127. package/dist/events/testing/FakeBus.d.ts +66 -0
  128. package/dist/events/testing/FakeBus.d.ts.map +1 -0
  129. package/dist/events/testing/FakeBus.js +356 -0
  130. package/dist/events/testing/FakeBus.js.map +1 -0
  131. package/dist/graphql/GraphQLEngine.d.ts +69 -0
  132. package/dist/graphql/GraphQLEngine.d.ts.map +1 -0
  133. package/dist/graphql/GraphQLEngine.js +309 -0
  134. package/dist/graphql/GraphQLEngine.js.map +1 -0
  135. package/dist/graphql/GraphQLProvider.d.ts +32 -0
  136. package/dist/graphql/GraphQLProvider.d.ts.map +1 -0
  137. package/dist/graphql/GraphQLProvider.js +49 -0
  138. package/dist/graphql/GraphQLProvider.js.map +1 -0
  139. package/dist/helpers/base64.d.ts +40 -0
  140. package/dist/helpers/base64.d.ts.map +1 -0
  141. package/dist/helpers/base64.js +70 -0
  142. package/dist/helpers/base64.js.map +1 -0
  143. package/dist/helpers/index.d.ts +7 -0
  144. package/dist/helpers/index.d.ts.map +1 -0
  145. package/dist/helpers/index.js +5 -0
  146. package/dist/helpers/index.js.map +1 -0
  147. package/dist/helpers/is.d.ts +101 -0
  148. package/dist/helpers/is.d.ts.map +1 -0
  149. package/dist/helpers/is.js +151 -0
  150. package/dist/helpers/is.js.map +1 -0
  151. package/dist/helpers/napi-loader.d.ts +46 -0
  152. package/dist/helpers/napi-loader.d.ts.map +1 -0
  153. package/dist/helpers/napi-loader.js +69 -0
  154. package/dist/helpers/napi-loader.js.map +1 -0
  155. package/dist/helpers/safeEqual.d.ts +9 -0
  156. package/dist/helpers/safeEqual.d.ts.map +1 -0
  157. package/dist/helpers/safeEqual.js +16 -0
  158. package/dist/helpers/safeEqual.js.map +1 -0
  159. package/dist/helpers/string.d.ts +161 -0
  160. package/dist/helpers/string.d.ts.map +1 -0
  161. package/dist/helpers/string.js +429 -0
  162. package/dist/helpers/string.js.map +1 -0
  163. package/dist/helpers/types.d.ts +83 -0
  164. package/dist/helpers/types.d.ts.map +1 -0
  165. package/dist/helpers/types.js +6 -0
  166. package/dist/helpers/types.js.map +1 -0
  167. package/dist/http/Exception.d.ts +103 -0
  168. package/dist/http/Exception.d.ts.map +1 -0
  169. package/dist/http/Exception.js +228 -0
  170. package/dist/http/Exception.js.map +1 -0
  171. package/dist/http/HttpContext.d.ts +69 -0
  172. package/dist/http/HttpContext.d.ts.map +1 -0
  173. package/dist/http/HttpContext.js +55 -0
  174. package/dist/http/HttpContext.js.map +1 -0
  175. package/dist/http/RedirectBuilder.d.ts +31 -0
  176. package/dist/http/RedirectBuilder.d.ts.map +1 -0
  177. package/dist/http/RedirectBuilder.js +75 -0
  178. package/dist/http/RedirectBuilder.js.map +1 -0
  179. package/dist/http/Request.d.ts +160 -0
  180. package/dist/http/Request.d.ts.map +1 -0
  181. package/dist/http/Request.js +484 -0
  182. package/dist/http/Request.js.map +1 -0
  183. package/dist/http/Response.d.ts +114 -0
  184. package/dist/http/Response.d.ts.map +1 -0
  185. package/dist/http/Response.js +303 -0
  186. package/dist/http/Response.js.map +1 -0
  187. package/dist/http/SseStream.d.ts +89 -0
  188. package/dist/http/SseStream.d.ts.map +1 -0
  189. package/dist/http/SseStream.js +228 -0
  190. package/dist/http/SseStream.js.map +1 -0
  191. package/dist/http/urlDecode.d.ts +8 -0
  192. package/dist/http/urlDecode.d.ts.map +1 -0
  193. package/dist/http/urlDecode.js +18 -0
  194. package/dist/http/urlDecode.js.map +1 -0
  195. package/dist/index.d.ts +92 -0
  196. package/dist/index.d.ts.map +1 -0
  197. package/dist/index.js +67 -0
  198. package/dist/index.js.map +1 -0
  199. package/dist/middleware/Pipeline.d.ts +36 -0
  200. package/dist/middleware/Pipeline.d.ts.map +1 -0
  201. package/dist/middleware/Pipeline.js +104 -0
  202. package/dist/middleware/Pipeline.js.map +1 -0
  203. package/dist/openapi/OpenApiGenerator.d.ts +58 -0
  204. package/dist/openapi/OpenApiGenerator.d.ts.map +1 -0
  205. package/dist/openapi/OpenApiGenerator.js +192 -0
  206. package/dist/openapi/OpenApiGenerator.js.map +1 -0
  207. package/dist/openapi/OpenApiMiddleware.d.ts +24 -0
  208. package/dist/openapi/OpenApiMiddleware.d.ts.map +1 -0
  209. package/dist/openapi/OpenApiMiddleware.js +78 -0
  210. package/dist/openapi/OpenApiMiddleware.js.map +1 -0
  211. package/dist/openapi/OpenApiProvider.d.ts +36 -0
  212. package/dist/openapi/OpenApiProvider.d.ts.map +1 -0
  213. package/dist/openapi/OpenApiProvider.js +42 -0
  214. package/dist/openapi/OpenApiProvider.js.map +1 -0
  215. package/dist/resources/ApiResource.d.ts +45 -0
  216. package/dist/resources/ApiResource.d.ts.map +1 -0
  217. package/dist/resources/ApiResource.js +58 -0
  218. package/dist/resources/ApiResource.js.map +1 -0
  219. package/dist/router/Router.d.ts +205 -0
  220. package/dist/router/Router.d.ts.map +1 -0
  221. package/dist/router/Router.js +552 -0
  222. package/dist/router/Router.js.map +1 -0
  223. package/dist/rpc/RpcProvider.d.ts +34 -0
  224. package/dist/rpc/RpcProvider.d.ts.map +1 -0
  225. package/dist/rpc/RpcProvider.js +37 -0
  226. package/dist/rpc/RpcProvider.js.map +1 -0
  227. package/dist/rpc/RpcRouter.d.ts +61 -0
  228. package/dist/rpc/RpcRouter.d.ts.map +1 -0
  229. package/dist/rpc/RpcRouter.js +187 -0
  230. package/dist/rpc/RpcRouter.js.map +1 -0
  231. package/dist/scheduler/Schedule.d.ts +53 -0
  232. package/dist/scheduler/Schedule.d.ts.map +1 -0
  233. package/dist/scheduler/Schedule.js +76 -0
  234. package/dist/scheduler/Schedule.js.map +1 -0
  235. package/dist/scheduler/ScheduleProvider.d.ts +56 -0
  236. package/dist/scheduler/ScheduleProvider.d.ts.map +1 -0
  237. package/dist/scheduler/ScheduleProvider.js +145 -0
  238. package/dist/scheduler/ScheduleProvider.js.map +1 -0
  239. package/dist/scheduler/Scheduler.d.ts +209 -0
  240. package/dist/scheduler/Scheduler.d.ts.map +1 -0
  241. package/dist/scheduler/Scheduler.js +432 -0
  242. package/dist/scheduler/Scheduler.js.map +1 -0
  243. package/dist/scheduler/index.d.ts +14 -0
  244. package/dist/scheduler/index.d.ts.map +1 -0
  245. package/dist/scheduler/index.js +6 -0
  246. package/dist/scheduler/index.js.map +1 -0
  247. package/dist/scheduler/locks/LockBackend.d.ts +37 -0
  248. package/dist/scheduler/locks/LockBackend.d.ts.map +1 -0
  249. package/dist/scheduler/locks/LockBackend.js +13 -0
  250. package/dist/scheduler/locks/LockBackend.js.map +1 -0
  251. package/dist/scheduler/locks/MemoryLockBackend.d.ts +39 -0
  252. package/dist/scheduler/locks/MemoryLockBackend.d.ts.map +1 -0
  253. package/dist/scheduler/locks/MemoryLockBackend.js +71 -0
  254. package/dist/scheduler/locks/MemoryLockBackend.js.map +1 -0
  255. package/dist/scheduler/observability/ErrorReporter.d.ts +15 -0
  256. package/dist/scheduler/observability/ErrorReporter.d.ts.map +1 -0
  257. package/dist/scheduler/observability/ErrorReporter.js +13 -0
  258. package/dist/scheduler/observability/ErrorReporter.js.map +1 -0
  259. package/dist/scheduler/observability/ScheduleEvent.d.ts +57 -0
  260. package/dist/scheduler/observability/ScheduleEvent.d.ts.map +1 -0
  261. package/dist/scheduler/observability/ScheduleEvent.js +12 -0
  262. package/dist/scheduler/observability/ScheduleEvent.js.map +1 -0
  263. package/dist/scheduler/observability/ScheduleEventSink.d.ts +20 -0
  264. package/dist/scheduler/observability/ScheduleEventSink.d.ts.map +1 -0
  265. package/dist/scheduler/observability/ScheduleEventSink.js +17 -0
  266. package/dist/scheduler/observability/ScheduleEventSink.js.map +1 -0
  267. package/dist/scheduler/observability/StatsTracker.d.ts +50 -0
  268. package/dist/scheduler/observability/StatsTracker.d.ts.map +1 -0
  269. package/dist/scheduler/observability/StatsTracker.js +96 -0
  270. package/dist/scheduler/observability/StatsTracker.js.map +1 -0
  271. package/dist/security/CookieSigner.d.ts +13 -0
  272. package/dist/security/CookieSigner.d.ts.map +1 -0
  273. package/dist/security/CookieSigner.js +51 -0
  274. package/dist/security/CookieSigner.js.map +1 -0
  275. package/dist/security/SignedUrl.d.ts +17 -0
  276. package/dist/security/SignedUrl.d.ts.map +1 -0
  277. package/dist/security/SignedUrl.js +63 -0
  278. package/dist/security/SignedUrl.js.map +1 -0
  279. package/dist/security/crypto.d.ts +25 -0
  280. package/dist/security/crypto.d.ts.map +1 -0
  281. package/dist/security/crypto.js +82 -0
  282. package/dist/security/crypto.js.map +1 -0
  283. package/dist/server/HyperServer.d.ts +64 -0
  284. package/dist/server/HyperServer.d.ts.map +1 -0
  285. package/dist/server/HyperServer.js +54 -0
  286. package/dist/server/HyperServer.js.map +1 -0
  287. package/dist/server/Server.d.ts +68 -0
  288. package/dist/server/Server.d.ts.map +1 -0
  289. package/dist/server/Server.js +113 -0
  290. package/dist/server/Server.js.map +1 -0
  291. package/dist/services/app.d.ts +14 -0
  292. package/dist/services/app.d.ts.map +1 -0
  293. package/dist/services/app.js +27 -0
  294. package/dist/services/app.js.map +1 -0
  295. package/dist/services/router.d.ts +21 -0
  296. package/dist/services/router.d.ts.map +1 -0
  297. package/dist/services/router.js +36 -0
  298. package/dist/services/router.js.map +1 -0
  299. package/dist/services/server.d.ts +16 -0
  300. package/dist/services/server.d.ts.map +1 -0
  301. package/dist/services/server.js +32 -0
  302. package/dist/services/server.js.map +1 -0
  303. package/dist/session/Session.d.ts +88 -0
  304. package/dist/session/Session.d.ts.map +1 -0
  305. package/dist/session/Session.js +186 -0
  306. package/dist/session/Session.js.map +1 -0
  307. package/dist/session/SessionMiddleware.d.ts +16 -0
  308. package/dist/session/SessionMiddleware.d.ts.map +1 -0
  309. package/dist/session/SessionMiddleware.js +132 -0
  310. package/dist/session/SessionMiddleware.js.map +1 -0
  311. package/dist/session/drivers/CookieDriver.d.ts +17 -0
  312. package/dist/session/drivers/CookieDriver.d.ts.map +1 -0
  313. package/dist/session/drivers/CookieDriver.js +42 -0
  314. package/dist/session/drivers/CookieDriver.js.map +1 -0
  315. package/dist/session/drivers/MemoryDriver.d.ts +9 -0
  316. package/dist/session/drivers/MemoryDriver.d.ts.map +1 -0
  317. package/dist/session/drivers/MemoryDriver.js +24 -0
  318. package/dist/session/drivers/MemoryDriver.js.map +1 -0
  319. package/dist/storage/S3Driver.d.ts +27 -0
  320. package/dist/storage/S3Driver.d.ts.map +1 -0
  321. package/dist/storage/S3Driver.js +135 -0
  322. package/dist/storage/S3Driver.js.map +1 -0
  323. package/dist/storage/StaticMiddleware.d.ts +27 -0
  324. package/dist/storage/StaticMiddleware.d.ts.map +1 -0
  325. package/dist/storage/StaticMiddleware.js +153 -0
  326. package/dist/storage/StaticMiddleware.js.map +1 -0
  327. package/dist/storage/StaticProvider.d.ts +26 -0
  328. package/dist/storage/StaticProvider.d.ts.map +1 -0
  329. package/dist/storage/StaticProvider.js +31 -0
  330. package/dist/storage/StaticProvider.js.map +1 -0
  331. package/dist/storage/StorageManager.d.ts +31 -0
  332. package/dist/storage/StorageManager.d.ts.map +1 -0
  333. package/dist/storage/StorageManager.js +120 -0
  334. package/dist/storage/StorageManager.js.map +1 -0
  335. package/dist/testing/RequestBuilder.d.ts +67 -0
  336. package/dist/testing/RequestBuilder.d.ts.map +1 -0
  337. package/dist/testing/RequestBuilder.js +202 -0
  338. package/dist/testing/RequestBuilder.js.map +1 -0
  339. package/dist/testing/TestClient.d.ts +96 -0
  340. package/dist/testing/TestClient.d.ts.map +1 -0
  341. package/dist/testing/TestClient.js +263 -0
  342. package/dist/testing/TestClient.js.map +1 -0
  343. package/dist/types/helpers.d.ts +47 -0
  344. package/dist/types/helpers.d.ts.map +1 -0
  345. package/dist/types/helpers.js +5 -0
  346. package/dist/types/helpers.js.map +1 -0
  347. package/events.darwin-arm64.node +0 -0
  348. package/events.darwin-x64.node +0 -0
  349. package/events.linux-arm64-gnu.node +0 -0
  350. package/events.linux-x64-gnu.node +0 -0
  351. package/events.win32-x64-msvc.node +0 -0
  352. package/index.darwin-arm64.node +0 -0
  353. package/index.darwin-x64.node +0 -0
  354. package/index.linux-arm64-gnu.node +0 -0
  355. package/index.linux-x64-gnu.node +0 -0
  356. package/index.win32-x64-msvc.node +0 -0
  357. package/package.json +106 -0
  358. package/scheduler.darwin-arm64.node +0 -0
  359. package/scheduler.darwin-x64.node +0 -0
  360. package/scheduler.linux-arm64-gnu.node +0 -0
  361. package/scheduler.linux-x64-gnu.node +0 -0
  362. package/scheduler.win32-x64-msvc.node +0 -0
  363. package/scripts/copy-napi.mjs +113 -0
  364. package/src/Application.ts +177 -0
  365. package/src/Codemods.ts +343 -0
  366. package/src/ConfigLoader.ts +49 -0
  367. package/src/ErrorBoundary.ts +157 -0
  368. package/src/GracefulShutdown.ts +80 -0
  369. package/src/HealthCheck.ts +96 -0
  370. package/src/HotReload.ts +78 -0
  371. package/src/HttpKernel.ts +305 -0
  372. package/src/Ignitor.ts +656 -0
  373. package/src/Provider.ts +74 -0
  374. package/src/bodyparser/BodyParserMiddleware.ts +183 -0
  375. package/src/bodyparser/MultipartFile.ts +181 -0
  376. package/src/bodyparser/parseSize.ts +19 -0
  377. package/src/bootstrap/hyper-server.ts +78 -0
  378. package/src/console/CommandRunner.ts +82 -0
  379. package/src/container/Container.ts +383 -0
  380. package/src/container/types.ts +30 -0
  381. package/src/decorators/Lazy.ts +57 -0
  382. package/src/decorators/Service.ts +85 -0
  383. package/src/errors/FuzzyMatcher.ts +93 -0
  384. package/src/errors/ModuleErrors.ts +73 -0
  385. package/src/errors/PipelineStageError.ts +97 -0
  386. package/src/errors/ReamError.ts +138 -0
  387. package/src/events/Emitter.ts +333 -0
  388. package/src/events/EventsProvider.ts +58 -0
  389. package/src/events/config.ts +10 -0
  390. package/src/events/configure.ts +19 -0
  391. package/src/events/helix/helpers.ts +260 -0
  392. package/src/events/index.ts +22 -0
  393. package/src/events/native.ts +37 -0
  394. package/src/events/services/main.ts +39 -0
  395. package/src/events/testing/FakeBus.ts +420 -0
  396. package/src/graphql/GraphQLEngine.ts +421 -0
  397. package/src/graphql/GraphQLProvider.ts +59 -0
  398. package/src/helpers/base64.ts +72 -0
  399. package/src/helpers/index.ts +6 -0
  400. package/src/helpers/is.ts +162 -0
  401. package/src/helpers/napi-loader.ts +106 -0
  402. package/src/helpers/safeEqual.ts +15 -0
  403. package/src/helpers/string.ts +469 -0
  404. package/src/helpers/types.ts +100 -0
  405. package/src/http/Exception.ts +272 -0
  406. package/src/http/HttpContext.ts +108 -0
  407. package/src/http/RedirectBuilder.ts +89 -0
  408. package/src/http/Request.ts +540 -0
  409. package/src/http/Response.ts +351 -0
  410. package/src/http/SseStream.ts +250 -0
  411. package/src/http/urlDecode.ts +18 -0
  412. package/src/index.ts +263 -0
  413. package/src/middleware/Pipeline.ts +136 -0
  414. package/src/openapi/OpenApiGenerator.ts +254 -0
  415. package/src/openapi/OpenApiMiddleware.ts +101 -0
  416. package/src/openapi/OpenApiProvider.ts +67 -0
  417. package/src/resources/ApiResource.ts +79 -0
  418. package/src/router/Router.ts +733 -0
  419. package/src/rpc/RpcProvider.ts +54 -0
  420. package/src/rpc/RpcRouter.ts +243 -0
  421. package/src/scheduler/Schedule.ts +96 -0
  422. package/src/scheduler/ScheduleProvider.ts +177 -0
  423. package/src/scheduler/Scheduler.ts +601 -0
  424. package/src/scheduler/index.ts +24 -0
  425. package/src/scheduler/locks/LockBackend.ts +38 -0
  426. package/src/scheduler/locks/MemoryLockBackend.ts +85 -0
  427. package/src/scheduler/observability/ErrorReporter.ts +13 -0
  428. package/src/scheduler/observability/ScheduleEvent.ts +61 -0
  429. package/src/scheduler/observability/ScheduleEventSink.ts +21 -0
  430. package/src/scheduler/observability/StatsTracker.ts +134 -0
  431. package/src/security/CookieSigner.ts +54 -0
  432. package/src/security/SignedUrl.ts +71 -0
  433. package/src/security/crypto.ts +98 -0
  434. package/src/server/HyperServer.ts +121 -0
  435. package/src/server/Server.ts +147 -0
  436. package/src/services/app.ts +34 -0
  437. package/src/services/router.ts +44 -0
  438. package/src/services/server.ts +40 -0
  439. package/src/session/Session.ts +231 -0
  440. package/src/session/SessionMiddleware.ts +153 -0
  441. package/src/session/drivers/CookieDriver.ts +48 -0
  442. package/src/session/drivers/MemoryDriver.ts +29 -0
  443. package/src/storage/S3Driver.ts +171 -0
  444. package/src/storage/StaticMiddleware.ts +182 -0
  445. package/src/storage/StaticProvider.ts +40 -0
  446. package/src/storage/StorageManager.ts +142 -0
  447. package/src/testing/RequestBuilder.ts +275 -0
  448. package/src/testing/TestClient.ts +344 -0
  449. package/src/types/helpers.ts +52 -0
  450. package/swcrc.app.json +17 -0
  451. package/tsconfig.app.json +21 -0
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Helix bus testing helpers — collect, fake, assertEmitted, assertNotEmitted,
3
+ * waitForEvent, waitForChain.
4
+ *
5
+ * Public testing API for asserting on events emitted through EventBus.
6
+ *
7
+ * @implements FR64, FR65, FR66, FR67, FR68 (Story 11.1)
8
+ */
9
+ /**
10
+ * Collect events matching a pattern into an array.
11
+ *
12
+ * const { events } = collect(bus, 'order.created')
13
+ * bus.emit('order.created', '{"id":"1"}')
14
+ * // events[0].name === 'order.created'
15
+ */
16
+ export function collect(bus, pattern) {
17
+ const events = [];
18
+ const subId = bus.subscribe(pattern, (eventJson) => {
19
+ try {
20
+ events.push(JSON.parse(eventJson));
21
+ }
22
+ catch {
23
+ events.push({
24
+ _raw: eventJson,
25
+ _parseError: true,
26
+ name: '',
27
+ data: undefined,
28
+ });
29
+ }
30
+ });
31
+ return { events, subId };
32
+ }
33
+ /**
34
+ * Fake (intercept) events matching a pattern.
35
+ *
36
+ * Currently captures events like collect() — true interception that suppresses
37
+ * other subscribers requires bus-level support and is not yet implemented.
38
+ */
39
+ export function fake(bus, pattern) {
40
+ return collect(bus, pattern);
41
+ }
42
+ /**
43
+ * Assert that an event was emitted, optionally matching a partial payload.
44
+ */
45
+ export function assertEmitted(events, name, payload) {
46
+ const matching = events.filter((e) => e.name === name);
47
+ if (matching.length === 0) {
48
+ const emittedNames = [...new Set(events.map((e) => e.name))].join(', ');
49
+ throw new Error(`[HELIX_ASSERT_EMITTED] Expected event '${name}' to be emitted, but it was not.\n` +
50
+ ` Emitted events: ${emittedNames || '(none)'}`);
51
+ }
52
+ if (payload !== undefined && payload !== null) {
53
+ const payloadMatch = matching.find((e) => {
54
+ const data = typeof e.data === 'string' ? safeJson(e.data) : e.data;
55
+ return partialMatch(data, payload);
56
+ });
57
+ if (!payloadMatch) {
58
+ const actualPayloads = matching
59
+ .map((e) => {
60
+ const data = typeof e.data === 'string' ? safeJson(e.data) : e.data;
61
+ return JSON.stringify(data);
62
+ })
63
+ .join('\n ');
64
+ throw new Error(`[HELIX_ASSERT_EMITTED] Event '${name}' was emitted but no payload matched.\n` +
65
+ ` Expected (partial): ${JSON.stringify(payload)}\n` +
66
+ ` Actual payloads:\n ${actualPayloads}`);
67
+ }
68
+ }
69
+ }
70
+ /** Assert that an event was NOT emitted. */
71
+ export function assertNotEmitted(events, name) {
72
+ const matching = events.filter((e) => e.name === name);
73
+ if (matching.length > 0) {
74
+ throw new Error(`[HELIX_ASSERT_NOT_EMITTED] Expected event '${name}' to NOT be emitted, but it was emitted ${matching.length} time(s).`);
75
+ }
76
+ }
77
+ /** Wait for a specific event to appear in the collected events, with timeout. */
78
+ export function waitForEvent(events, name, options = {}) {
79
+ const timeout = options.timeout ?? 5000;
80
+ const interval = options.interval ?? 10;
81
+ const payload = options.payload;
82
+ return new Promise((resolve, reject) => {
83
+ const start = Date.now();
84
+ let settled = false;
85
+ const check = () => {
86
+ if (settled)
87
+ return;
88
+ const match = events.find((e) => {
89
+ if (e.name !== name)
90
+ return false;
91
+ if (payload === undefined)
92
+ return true;
93
+ const data = typeof e.data === 'string' ? safeJson(e.data) : e.data;
94
+ return partialMatch(data, payload);
95
+ });
96
+ if (match) {
97
+ settled = true;
98
+ resolve(match);
99
+ return;
100
+ }
101
+ if (Date.now() - start >= timeout) {
102
+ settled = true;
103
+ const received = events.map((e) => e.name).join(', ');
104
+ reject(new Error(`[HELIX_TIMEOUT] Timed out waiting for event '${name}' after ${timeout}ms.\n` +
105
+ ` Events received so far: ${received || '(none)'}`));
106
+ return;
107
+ }
108
+ setTimeout(check, interval);
109
+ };
110
+ check();
111
+ });
112
+ }
113
+ /**
114
+ * Wait for an entire event chain to complete (tracked via correlationId).
115
+ *
116
+ * @implements FR68
117
+ */
118
+ export function waitForChain(events, correlationId, expectedNames, options = {}) {
119
+ if (!expectedNames || expectedNames.length === 0) {
120
+ return Promise.reject(new Error('[HELIX_CHAIN] expectedNames must be a non-empty array'));
121
+ }
122
+ const timeout = options.timeout ?? 5000;
123
+ const interval = options.interval ?? 10;
124
+ return new Promise((resolve, reject) => {
125
+ const start = Date.now();
126
+ let settled = false;
127
+ const check = () => {
128
+ if (settled)
129
+ return;
130
+ const chainEvents = events.filter((e) => e.correlationId === correlationId);
131
+ const chainNames = chainEvents.map((e) => e.name);
132
+ const allPresent = expectedNames.every((name) => chainNames.includes(name));
133
+ if (allPresent) {
134
+ settled = true;
135
+ resolve(chainEvents);
136
+ return;
137
+ }
138
+ if (Date.now() - start >= timeout) {
139
+ settled = true;
140
+ const completed = expectedNames.filter((n) => chainNames.includes(n));
141
+ const pending = expectedNames.filter((n) => !chainNames.includes(n));
142
+ reject(new Error(`[HELIX_CHAIN_TIMEOUT] Event chain timed out after ${timeout}ms.\n` +
143
+ ` Correlation ID: ${correlationId}\n` +
144
+ ` Completed: ${completed.join(', ') || '(none)'}\n` +
145
+ ` Pending: ${pending.join(', ')}`));
146
+ return;
147
+ }
148
+ setTimeout(check, interval);
149
+ };
150
+ check();
151
+ });
152
+ }
153
+ /**
154
+ * Check if `actual` contains all key-value pairs from `expected` (deep partial match).
155
+ * Arrays are matched element-by-element.
156
+ */
157
+ function partialMatch(actual, expected) {
158
+ if (actual === expected)
159
+ return true;
160
+ if (expected === null || expected === undefined)
161
+ return actual === expected;
162
+ if (typeof expected !== 'object')
163
+ return actual === expected;
164
+ if (typeof actual !== 'object' || actual === null)
165
+ return false;
166
+ if (Array.isArray(expected)) {
167
+ if (!Array.isArray(actual))
168
+ return false;
169
+ return expected.every((item, i) => i < actual.length && partialMatch(actual[i], item));
170
+ }
171
+ for (const key of Object.keys(expected)) {
172
+ if (!(key in actual))
173
+ return false;
174
+ if (!partialMatch(actual[key], expected[key]))
175
+ return false;
176
+ }
177
+ return true;
178
+ }
179
+ function safeJson(value) {
180
+ try {
181
+ return JSON.parse(value);
182
+ }
183
+ catch {
184
+ return value;
185
+ }
186
+ }
187
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/events/helix/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `@c9up/ream/events` — the event bus, part of ream core. A basic
3
+ * in-process emitter works with zero external
4
+ * infrastructure; the Redis store is an opt-in `redis-store` build feature.
5
+ *
6
+ * App-facing surface: `Emitter` (string + class events, wildcard, request/
7
+ * reply), `BaseEvent` (typed event classes), and `EventsProvider` (wires the
8
+ * `events`/`emitter` container tokens). The Rust-backed `EventBus` is the
9
+ * low-level native binding, exposed for advanced use.
10
+ */
11
+ export type { EventsConfig } from './config.js';
12
+ export { defineConfig } from './config.js';
13
+ export { BaseEvent, type ContainerResolver, Emitter, type ListenerClass, } from './Emitter.js';
14
+ export type { EventsAppContext } from './EventsProvider.js';
15
+ export { default as EventsProvider } from './EventsProvider.js';
16
+ export { EventBus } from './native.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,SAAS,EACT,KAAK,iBAAiB,EACtB,OAAO,EACP,KAAK,aAAa,GACnB,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@c9up/ream/events` — the event bus, part of ream core. A basic
3
+ * in-process emitter works with zero external
4
+ * infrastructure; the Redis store is an opt-in `redis-store` build feature.
5
+ *
6
+ * App-facing surface: `Emitter` (string + class events, wildcard, request/
7
+ * reply), `BaseEvent` (typed event classes), and `EventsProvider` (wires the
8
+ * `events`/`emitter` container tokens). The Rust-backed `EventBus` is the
9
+ * low-level native binding, exposed for advanced use.
10
+ */
11
+ export { defineConfig } from './config.js';
12
+ export { BaseEvent, Emitter, } from './Emitter.js';
13
+ export { default as EventsProvider } from './EventsProvider.js';
14
+ export { EventBus } from './native.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,SAAS,EAET,OAAO,GAER,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Native event-bus loader. Resolves the Rust-backed `events.<platform>.node`
3
+ * binary (built from the `ream-events-napi` crate) via the shared
4
+ * `loadNapi` helper and re-exports the `EventBus` class it provides.
5
+ *
6
+ * The bus is part of ream core: a basic in-process
7
+ * emitter works with zero external infrastructure; the Redis store is an
8
+ * opt-in `redis-store` cargo feature for durable/distributed production use.
9
+ */
10
+ /** Rust-backed bus surface (mirrors the napi `#[napi] EventBus` exports). */
11
+ export interface EventBus {
12
+ emit(name: string, data: string): Promise<string>;
13
+ subscribe(pattern: string, callback: (eventJson: string) => void): number;
14
+ unsubscribe(subscriptionId: number): Promise<void>;
15
+ onRequest(name: string, callback: (eventJson: string, reply: (response: string) => void) => void): void;
16
+ request(name: string, data: string, timeoutMs?: number): Promise<string>;
17
+ matchesWildcard(pattern: string, eventName: string): boolean;
18
+ subscriptionCount(): Promise<number>;
19
+ }
20
+ export declare const EventBus: new (requestHandlerTimeoutMs?: number) => EventBus;
21
+ //# sourceMappingURL=native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/events/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACjD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,CAAA;IACzE,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,GACvE,IAAI,CAAA;IACP,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5D,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CACrC;AAYD,eAAO,MAAM,QAAQ,iCATsB,MAAM,KAAK,QASf,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Native event-bus loader. Resolves the Rust-backed `events.<platform>.node`
3
+ * binary (built from the `ream-events-napi` crate) via the shared
4
+ * `loadNapi` helper and re-exports the `EventBus` class it provides.
5
+ *
6
+ * The bus is part of ream core: a basic in-process
7
+ * emitter works with zero external infrastructure; the Redis store is an
8
+ * opt-in `redis-store` cargo feature for durable/distributed production use.
9
+ */
10
+ import { loadNapi } from '../helpers/napi-loader.js';
11
+ const native = loadNapi({
12
+ binaryName: 'events',
13
+ callerMetaUrl: import.meta.url,
14
+ errorCodePrefix: 'EVENTS',
15
+ });
16
+ export const EventBus = native.EventBus;
17
+ //# sourceMappingURL=native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/events/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAoBpD,MAAM,MAAM,GAAG,QAAQ,CAAe;IACpC,UAAU,EAAE,QAAQ;IACpB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;IAC9B,eAAe,EAAE,QAAQ;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Default `Emitter` singleton — mirror of Adonis's
3
+ * `import emitter from '@adonisjs/core/services/emitter'` shape.
4
+ *
5
+ * import emitter from '@c9up/ream/events/services/main'
6
+ *
7
+ * emitter.on(TaskAssigned, (e) => sendEmail(e.assigneeId))
8
+ *
9
+ * Populated by `EventsProvider.boot()`.
10
+ */
11
+ import type { Emitter } from '../Emitter.js';
12
+ /** @internal Bind the singleton (called by EventsProvider). */
13
+ export declare function setEmitter(instance: Emitter): void;
14
+ /** @internal Read the singleton (or `undefined` pre-boot). */
15
+ export declare function getEmitter(): Emitter | undefined;
16
+ declare const emitter: Emitter;
17
+ export default emitter;
18
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/events/services/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAI5C,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAElD;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,IAAI,OAAO,GAAG,SAAS,CAEhD;AAED,QAAA,MAAM,OAAO,EAAE,OAWb,CAAA;AAEF,eAAe,OAAO,CAAA"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Default `Emitter` singleton — mirror of Adonis's
3
+ * `import emitter from '@adonisjs/core/services/emitter'` shape.
4
+ *
5
+ * import emitter from '@c9up/ream/events/services/main'
6
+ *
7
+ * emitter.on(TaskAssigned, (e) => sendEmail(e.assigneeId))
8
+ *
9
+ * Populated by `EventsProvider.boot()`.
10
+ */
11
+ let instance;
12
+ /** @internal Bind the singleton (called by EventsProvider). */
13
+ export function setEmitter(instance) {
14
+ instance = instance;
15
+ }
16
+ /** @internal Read the singleton (or `undefined` pre-boot). */
17
+ export function getEmitter() {
18
+ return instance;
19
+ }
20
+ const emitter = new Proxy({}, {
21
+ get(_target, prop) {
22
+ if (!instance) {
23
+ throw new Error('[ream:events] Emitter singleton accessed before EventsProvider.boot() ran. ' +
24
+ 'Check that `@c9up/ream/events/provider` is listed in your reamrc.ts providers.');
25
+ }
26
+ const value = Reflect.get(instance, prop, instance);
27
+ return typeof value === 'function' ? value.bind(instance) : value;
28
+ },
29
+ });
30
+ export default emitter;
31
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/events/services/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,IAAI,QAA6B,CAAA;AAEjC,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,QAAiB;IAC1C,QAAQ,GAAG,QAAQ,CAAA;AACrB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,OAAO,GAAY,IAAI,KAAK,CAAC,EAAa,EAAE;IAChD,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,6EAA6E;gBAC3E,gFAAgF,CACnF,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACnE,CAAC;CACF,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * In-memory `EventBus` substitute for tests — captures every
3
+ * `emit(name, data)` / `request(name, data)` call and exposes
4
+ * `assertEmitted` / `assertNotEmitted` helpers in the same shape as
5
+ * Rover's `FakeMail`, Bay's `FakeQueue`, Storage's `FakeStorage`,
6
+ * Nova's `FakeNova`, and Relay's `FakeRelay`.
7
+ *
8
+ * Mirrors the public `EventBus` surface (`emit`, `subscribe`,
9
+ * `unsubscribe`, `onRequest`, `request`, `matchesWildcard`,
10
+ * `subscriptionCount`) with pure-TS, NAPI-free semantics. Wildcard
11
+ * matching is ported from `crates/ream-events/src/router.rs` — the
12
+ * Rust router is authoritative; any divergence is a bug here.
13
+ *
14
+ * Reach via `@c9up/ream/events/testing` (NOT the main barrel).
15
+ */
16
+ export interface CapturedEmit {
17
+ kind: 'emit';
18
+ name: string;
19
+ data: string;
20
+ parsedData?: unknown;
21
+ correlationId?: string;
22
+ causationId?: string;
23
+ }
24
+ export interface CapturedRequest {
25
+ kind: 'request';
26
+ name: string;
27
+ data: string;
28
+ parsedData?: unknown;
29
+ }
30
+ export interface FakeBusPredicate {
31
+ name?: string;
32
+ dataMatches?: (data: unknown) => boolean;
33
+ correlationId?: string;
34
+ causationId?: string;
35
+ }
36
+ export type FakeBusPredicateArg = FakeBusPredicate | ((event: CapturedEmit) => boolean);
37
+ /** Request handler may return `void` (sync, fire-and-forget after `reply`)
38
+ * or `PromiseLike<void>` (async — the bus awaits and routes any rejection
39
+ * through `request()`'s reject path). */
40
+ export type FakeBusRequestHandler = (eventJson: string, reply: (response: string) => void) => void | PromiseLike<void>;
41
+ export declare class FakeBus {
42
+ #private;
43
+ emit(name: string, data: string): Promise<string>;
44
+ subscribe(pattern: string, callback: (eventJson: string) => void | PromiseLike<void>): number;
45
+ unsubscribe(subscriptionId: number): Promise<void>;
46
+ onRequest(name: string, callback: FakeBusRequestHandler): void;
47
+ request(name: string, data: string, timeoutMs?: number): Promise<string>;
48
+ matchesWildcard(pattern: string, eventName: string): boolean;
49
+ subscriptionCount(): Promise<number>;
50
+ /**
51
+ * Defensive clone of the captured emits. **Clone is lossy** for
52
+ * non-cloneable values: `structuredClone` is tried first, JSON
53
+ * round-trip is the fallback. BigInt, functions, and other
54
+ * non-stringifiable payloads collapse to `undefined` in the fallback
55
+ * path (with a `[FakeBus] non-cloneable capture` `console.warn`).
56
+ * Internal assertions (`assertEmitted` etc.) read the live capture,
57
+ * not the clone, so this caveat only affects external readers.
58
+ */
59
+ getEmitted(): CapturedEmit[];
60
+ /** See `getEmitted` — same lossy-clone caveat for non-cloneable values. */
61
+ getRequests(): CapturedRequest[];
62
+ reset(): void;
63
+ assertEmitted(name: string, predicate?: FakeBusPredicateArg): void;
64
+ assertNotEmitted(name: string, predicate?: FakeBusPredicateArg): void;
65
+ }
66
+ //# sourceMappingURL=FakeBus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeBus.d.ts","sourceRoot":"","sources":["../../../src/events/testing/FakeBus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACxC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,CAAA;AAUvF;;0CAE0C;AAC1C,MAAM,MAAM,qBAAqB,GAAG,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAC9B,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;AAE7B,qBAAa,OAAO;;IAOlB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CjD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM;IAM7F,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAS9D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAiD9E,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5D,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC;;;;;;;;OAQG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B,2EAA2E;IAC3E,WAAW,IAAI,eAAe,EAAE;IAIhC,KAAK,IAAI,IAAI;IAQb,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAQlE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,IAAI;CAOtE"}