@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,429 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ // ---------------------------------------------------------------------------
3
+ // Internal helpers
4
+ // ---------------------------------------------------------------------------
5
+ /**
6
+ * Split an arbitrary-cased string into lowercase words.
7
+ * Handles camelCase, PascalCase, snake_case, kebab-case, and space-separated.
8
+ */
9
+ function splitWords(s) {
10
+ return (s
11
+ // Insert space before uppercase letters that follow lowercase letters or digits
12
+ .replace(/([a-z\d])([A-Z])/g, '$1 $2')
13
+ // Insert space before uppercase letters followed by lowercase (handles "XMLParser" -> "XML Parser")
14
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
15
+ // Replace non-alphanumeric separators with space
16
+ .replace(/[\s\-_]+/g, ' ')
17
+ .trim()
18
+ .toLowerCase()
19
+ .split(' ')
20
+ .filter((w) => w.length > 0));
21
+ }
22
+ // ---------------------------------------------------------------------------
23
+ // Case conversion
24
+ // ---------------------------------------------------------------------------
25
+ /**
26
+ * Converts a string to camelCase.
27
+ * @example camelCase('user_name') // 'userName'
28
+ */
29
+ export function camelCase(s) {
30
+ const words = splitWords(s);
31
+ return words.map((w, i) => (i === 0 ? w : w.charAt(0).toUpperCase() + w.slice(1))).join('');
32
+ }
33
+ /**
34
+ * Converts a string to snake_case.
35
+ * @example snakeCase('userName') // 'user_name'
36
+ */
37
+ export function snakeCase(s) {
38
+ return splitWords(s).join('_');
39
+ }
40
+ /**
41
+ * Converts a string to PascalCase.
42
+ * @example pascalCase('user team') // 'UserTeam'
43
+ */
44
+ export function pascalCase(s) {
45
+ return splitWords(s)
46
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
47
+ .join('');
48
+ }
49
+ /**
50
+ * Converts a string to dash-case (kebab-case). Optionally capitalizes each segment.
51
+ * @example dashCase('helloWorld') // 'hello-world'
52
+ * @example dashCase('helloWorld', { capitalize: true }) // 'Hello-World'
53
+ */
54
+ export function dashCase(s, options) {
55
+ const words = splitWords(s);
56
+ const segments = options?.capitalize
57
+ ? words.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
58
+ : words;
59
+ return segments.join('-');
60
+ }
61
+ /**
62
+ * Converts a string to Title Case.
63
+ * @example titleCase('hello world') // 'Hello World'
64
+ */
65
+ export function titleCase(s) {
66
+ return splitWords(s)
67
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
68
+ .join(' ');
69
+ }
70
+ /**
71
+ * Converts a snake_case/camelCase string to a human-readable form.
72
+ * @example humanize('user_name') // 'User name'
73
+ */
74
+ export function humanize(s) {
75
+ const words = splitWords(s);
76
+ if (words.length === 0)
77
+ return '';
78
+ return [words[0]?.charAt(0).toUpperCase() + words[0]?.slice(1), ...words.slice(1)].join(' ');
79
+ }
80
+ // ---------------------------------------------------------------------------
81
+ // Truncation / excerpt
82
+ // ---------------------------------------------------------------------------
83
+ /**
84
+ * Truncates a string to maxLength characters.
85
+ * @example truncate('Hello world', 8) // 'Hello wo...'
86
+ */
87
+ export function truncate(text, maxLength, options) {
88
+ const suffix = options?.suffix !== undefined ? options.suffix : '...';
89
+ if (text.length <= maxLength)
90
+ return text;
91
+ const limit = maxLength - suffix.length;
92
+ if (limit <= 0)
93
+ return suffix.slice(0, maxLength);
94
+ if (options?.completeWords) {
95
+ const truncated = text.slice(0, limit);
96
+ const lastSpace = truncated.lastIndexOf(' ');
97
+ return (lastSpace > 0 ? truncated.slice(0, lastSpace) : truncated) + suffix;
98
+ }
99
+ return text.slice(0, limit) + suffix;
100
+ }
101
+ /**
102
+ * Strips HTML tags then truncates. See `truncate` for options.
103
+ * @example excerpt('<p>Hello world</p>', 8) // 'Hello wo...'
104
+ */
105
+ export function excerpt(text, maxLength, options) {
106
+ const stripped = text.replace(/<[^>]*>/g, '');
107
+ return truncate(stripped, maxLength, options);
108
+ }
109
+ // ---------------------------------------------------------------------------
110
+ // HTML / escaping
111
+ // ---------------------------------------------------------------------------
112
+ const HTML_ESCAPE_MAP = {
113
+ '&': '&amp;',
114
+ '<': '&lt;',
115
+ '>': '&gt;',
116
+ '"': '&quot;',
117
+ "'": '&#39;',
118
+ '`': '&#96;',
119
+ };
120
+ /**
121
+ * Escapes HTML special characters. Optionally encodes non-ASCII characters as numeric entities.
122
+ * @example escapeHTML('<b>hi</b>') // '&lt;b&gt;hi&lt;/b&gt;'
123
+ */
124
+ export function escapeHTML(text, options) {
125
+ let result = text.replace(/[&<>"'`]/g, (ch) => HTML_ESCAPE_MAP[ch] ?? ch);
126
+ if (options?.encodeSymbols) {
127
+ result = result.replace(/[\u0080-\uFFFF]/g, (ch) => {
128
+ const code = ch.codePointAt(0);
129
+ return code !== undefined ? `&#x${code.toString(16).toUpperCase()};` : ch;
130
+ });
131
+ }
132
+ return result;
133
+ }
134
+ /**
135
+ * Encodes only non-ASCII characters as &#xHEX; numeric entities.
136
+ * @example encodeSymbols('héllo') // 'h&#xE9;llo'
137
+ */
138
+ export function encodeSymbols(text) {
139
+ return text.replace(/[\u0080-\uFFFF]/g, (ch) => {
140
+ const code = ch.codePointAt(0);
141
+ return code !== undefined ? `&#x${code.toString(16).toUpperCase()};` : ch;
142
+ });
143
+ }
144
+ // ---------------------------------------------------------------------------
145
+ // Whitespace / checks
146
+ // ---------------------------------------------------------------------------
147
+ /**
148
+ * Returns true if the string is empty or contains only whitespace.
149
+ * @example isEmpty(' ') // true
150
+ */
151
+ export function isEmpty(value) {
152
+ return value.trim().length === 0;
153
+ }
154
+ /**
155
+ * Trims a string and collapses internal whitespace sequences to a single space.
156
+ * @example condenseWhitespace(' hello world ') // 'hello world'
157
+ */
158
+ export function condenseWhitespace(s) {
159
+ return s.trim().replace(/\s+/g, ' ');
160
+ }
161
+ // ---------------------------------------------------------------------------
162
+ // Slugs
163
+ // ---------------------------------------------------------------------------
164
+ /**
165
+ * Converts a string to a URL-friendly slug.
166
+ * @example slug('Hello World!') // 'hello-world'
167
+ */
168
+ export function slug(text, options) {
169
+ const replacement = options?.replacement !== undefined ? options.replacement : '-';
170
+ const lower = options?.lower !== false;
171
+ const strict = options?.strict === true;
172
+ let result = lower ? text.toLowerCase() : text;
173
+ if (strict) {
174
+ result = result.replace(/[^a-zA-Z0-9\s]/g, '');
175
+ }
176
+ else {
177
+ result = result.replace(/[^\w\s-]/g, '');
178
+ }
179
+ result = result
180
+ .replace(/[\s_]+/g, replacement)
181
+ .replace(new RegExp(`${escapeForRegex(replacement)}+`, 'g'), replacement)
182
+ .replace(new RegExp(`^${escapeForRegex(replacement)}|${escapeForRegex(replacement)}$`, 'g'), '');
183
+ return result;
184
+ }
185
+ function escapeForRegex(s) {
186
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
187
+ }
188
+ // ---------------------------------------------------------------------------
189
+ // Pluralization
190
+ // ---------------------------------------------------------------------------
191
+ const IRREGULAR_PLURAL = {
192
+ person: 'people',
193
+ child: 'children',
194
+ foot: 'feet',
195
+ mouse: 'mice',
196
+ man: 'men',
197
+ woman: 'women',
198
+ tooth: 'teeth',
199
+ goose: 'geese',
200
+ ox: 'oxen',
201
+ leaf: 'leaves',
202
+ half: 'halves',
203
+ knife: 'knives',
204
+ life: 'lives',
205
+ wife: 'wives',
206
+ wolf: 'wolves',
207
+ loaf: 'loaves',
208
+ potato: 'potatoes',
209
+ tomato: 'tomatoes',
210
+ cactus: 'cacti',
211
+ focus: 'foci',
212
+ fungus: 'fungi',
213
+ nucleus: 'nuclei',
214
+ syllabus: 'syllabi',
215
+ analysis: 'analyses',
216
+ diagnosis: 'diagnoses',
217
+ oasis: 'oases',
218
+ thesis: 'theses',
219
+ crisis: 'crises',
220
+ phenomenon: 'phenomena',
221
+ criterion: 'criteria',
222
+ datum: 'data',
223
+ };
224
+ const IRREGULAR_SINGULAR = Object.fromEntries(Object.entries(IRREGULAR_PLURAL).map(([s, p]) => [p, s]));
225
+ const UNCOUNTABLE = new Set([
226
+ 'sheep',
227
+ 'fish',
228
+ 'deer',
229
+ 'series',
230
+ 'species',
231
+ 'money',
232
+ 'rice',
233
+ 'information',
234
+ 'equipment',
235
+ 'aircraft',
236
+ 'police',
237
+ ]);
238
+ /**
239
+ * Returns the plural form of an English word.
240
+ * @example plural('person') // 'people'; plural('box') // 'boxes'
241
+ */
242
+ export function plural(word) {
243
+ const lower = word.toLowerCase();
244
+ if (UNCOUNTABLE.has(lower))
245
+ return word;
246
+ const irregular = IRREGULAR_PLURAL[lower];
247
+ if (irregular)
248
+ return irregular;
249
+ if (/(?:s|x|z|ch|sh)$/i.test(word))
250
+ return `${word}es`;
251
+ if (/[^aeiou]y$/i.test(word))
252
+ return `${word.slice(0, -1)}ies`;
253
+ if (/f$/i.test(word))
254
+ return `${word.slice(0, -1)}ves`;
255
+ if (/fe$/i.test(word))
256
+ return `${word.slice(0, -2)}ves`;
257
+ return `${word}s`;
258
+ }
259
+ /**
260
+ * Returns the singular form of an English word.
261
+ * @example singular('people') // 'person'; singular('boxes') // 'box'
262
+ */
263
+ export function singular(word) {
264
+ const lower = word.toLowerCase();
265
+ if (UNCOUNTABLE.has(lower))
266
+ return word;
267
+ const irregular = IRREGULAR_SINGULAR[lower];
268
+ if (irregular)
269
+ return irregular;
270
+ if (/ves$/i.test(word)) {
271
+ const base = word.slice(0, -3);
272
+ if (/[lw]$/i.test(base))
273
+ return `${base}f`;
274
+ return `${base}fe`;
275
+ }
276
+ if (/ies$/i.test(word))
277
+ return `${word.slice(0, -3)}y`;
278
+ if (/(?:s|x|z|ch|sh)es$/i.test(word))
279
+ return word.slice(0, -2);
280
+ if (/s$/i.test(word) && !/ss$/i.test(word))
281
+ return word.slice(0, -1);
282
+ return word;
283
+ }
284
+ /**
285
+ * Returns true if the word appears to be plural.
286
+ * @example isPlural('dogs') // true
287
+ */
288
+ export function isPlural(word) {
289
+ const lower = word.toLowerCase();
290
+ if (UNCOUNTABLE.has(lower))
291
+ return true;
292
+ return lower !== singular(lower);
293
+ }
294
+ /**
295
+ * Returns true if the word appears to be singular.
296
+ * @example isSingular('dog') // true
297
+ */
298
+ export function isSingular(word) {
299
+ const lower = word.toLowerCase();
300
+ if (UNCOUNTABLE.has(lower))
301
+ return true;
302
+ return singular(lower) === lower;
303
+ }
304
+ // ---------------------------------------------------------------------------
305
+ // Random / numeric
306
+ // ---------------------------------------------------------------------------
307
+ /**
308
+ * Returns a base64url random string of exactly `length` characters.
309
+ * @example random(16) // e.g. 'Xk3mN9pQ2vR7tZ1w'
310
+ */
311
+ export function random(length) {
312
+ const bytesNeeded = Math.ceil((length * 3) / 4) + 4;
313
+ return randomBytes(bytesNeeded).toString('base64url').slice(0, length);
314
+ }
315
+ /**
316
+ * Alias for `random`. Generates a base64url random string of `size` characters.
317
+ * @example generateRandom(16) // e.g. 'Xk3mN9pQ2vR7tZ1w'
318
+ */
319
+ export function generateRandom(size) {
320
+ return random(size);
321
+ }
322
+ /**
323
+ * Returns the ordinal representation of a number.
324
+ * @example ordinal(1) // '1st'; ordinal(11) // '11th'; ordinal(22) // '22nd'
325
+ */
326
+ export function ordinal(n) {
327
+ const abs = Math.abs(n);
328
+ const mod100 = abs % 100;
329
+ const mod10 = abs % 10;
330
+ if (mod100 >= 11 && mod100 <= 13)
331
+ return `${n}th`;
332
+ if (mod10 === 1)
333
+ return `${n}st`;
334
+ if (mod10 === 2)
335
+ return `${n}nd`;
336
+ if (mod10 === 3)
337
+ return `${n}rd`;
338
+ return `${n}th`;
339
+ }
340
+ // ---------------------------------------------------------------------------
341
+ // Time / path
342
+ // ---------------------------------------------------------------------------
343
+ /**
344
+ * Formats an hrtime tuple to a human-readable string.
345
+ * @example prettyHrTime([0, 1234567]) // '1.235 ms'
346
+ * @example prettyHrTime([2, 500000000]) // '2.500 s'
347
+ */
348
+ export function prettyHrTime(time) {
349
+ const [seconds, nanoseconds] = time;
350
+ const totalNs = seconds * 1e9 + nanoseconds;
351
+ const totalMs = totalNs / 1e6;
352
+ const totalS = totalNs / 1e9;
353
+ if (totalNs < 1e6) {
354
+ return `${(totalNs / 1e3).toFixed(3)} μs`;
355
+ }
356
+ if (totalMs < 1000) {
357
+ return `${totalMs.toFixed(3)} ms`;
358
+ }
359
+ if (totalS < 60) {
360
+ return `${totalS.toFixed(3)} s`;
361
+ }
362
+ const mins = Math.floor(totalS / 60);
363
+ const secs = totalS - mins * 60;
364
+ return `${mins}m ${secs.toFixed(0)}s`;
365
+ }
366
+ /**
367
+ * Converts Windows backslash paths to Unix forward slashes.
368
+ * @example toUnixSlash('C:\\foo\\bar') // 'C:/foo/bar'
369
+ */
370
+ export function toUnixSlash(p) {
371
+ return p.replace(/\\/g, '/');
372
+ }
373
+ // ---------------------------------------------------------------------------
374
+ // Templating
375
+ // ---------------------------------------------------------------------------
376
+ /**
377
+ * Interpolates `{{ key.path }}` placeholders in a template string using `data`.
378
+ * Escape with backslash: `\{{` outputs literal `{{`. Missing keys produce empty string.
379
+ *
380
+ * @example
381
+ * interpolate('Hello {{ user.name }}!', { user: { name: 'Alice' } }) // 'Hello Alice!'
382
+ */
383
+ export function interpolate(template, data) {
384
+ return template.replace(/\\(\{\{[\s\S]*?\}\})|(\{\{\s*([\w.]+)\s*\}\})/g, (match, escaped, _full, path) => {
385
+ if (escaped !== undefined)
386
+ return escaped;
387
+ if (path === undefined)
388
+ return match;
389
+ const keys = path.split('.');
390
+ let current = data;
391
+ for (const key of keys) {
392
+ if (current === null || current === undefined || typeof current !== 'object') {
393
+ return '';
394
+ }
395
+ current = current[key];
396
+ }
397
+ return current !== null && current !== undefined ? String(current) : '';
398
+ });
399
+ }
400
+ // ---------------------------------------------------------------------------
401
+ // Default export
402
+ // ---------------------------------------------------------------------------
403
+ const string = {
404
+ camelCase,
405
+ snakeCase,
406
+ pascalCase,
407
+ dashCase,
408
+ titleCase,
409
+ humanize,
410
+ truncate,
411
+ excerpt,
412
+ escapeHTML,
413
+ encodeSymbols,
414
+ isEmpty,
415
+ condenseWhitespace,
416
+ slug,
417
+ plural,
418
+ singular,
419
+ isPlural,
420
+ isSingular,
421
+ random,
422
+ generateRandom,
423
+ ordinal,
424
+ prettyHrTime,
425
+ toUnixSlash,
426
+ interpolate,
427
+ };
428
+ export default string;
429
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/helpers/string.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * TypeScript type helpers — utility types for the Ream framework.
3
+ * Pattern aligned with @adonisjs/core/helpers/types.
4
+ */
5
+ /** Infer route parameters from a route pattern string. */
6
+ export type InferRouteParams<T extends string> = T extends `${string}:${infer Param}/${infer Rest}` ? {
7
+ [K in Param | keyof InferRouteParams<`/${Rest}`>]: string;
8
+ } : T extends `${string}:${infer Param}` ? {
9
+ [K in Param]: string;
10
+ } : Record<string, never>;
11
+ /** Accept a single value or an array. */
12
+ export type OneOrMore<T> = T | T[];
13
+ /** Create a nominal/opaque type from a base type. */
14
+ export type Opaque<Base, Tag extends string> = Base & {
15
+ readonly __tag: Tag;
16
+ };
17
+ /** Unwrap an opaque type back to its base. */
18
+ export type UnwrapOpaque<T> = T extends Opaque<infer Base, string> ? Base : T;
19
+ /** Accept sync or async values. */
20
+ export type AsyncOrSync<T> = T | Promise<T>;
21
+ /** Constructor type. */
22
+ export type Constructor<T = unknown, Args extends unknown[] = unknown[]> = new (...args: Args) => T;
23
+ /** Abstract constructor type. */
24
+ export type AbstractConstructor<T = unknown> = abstract new (...args: unknown[]) => T;
25
+ /** Extract only function property keys from a type, optionally excluding inherited ones. */
26
+ export type ExtractFunctions<T, Ignore extends keyof T = never> = {
27
+ [K in Exclude<keyof T, Ignore>]: T[K] extends (...args: unknown[]) => unknown ? K : never;
28
+ }[Exclude<keyof T, Ignore>];
29
+ /** Prettify a type intersection for better IDE display. */
30
+ export type Prettify<T> = {
31
+ [K in keyof T]: T[K];
32
+ } & {};
33
+ /** Extract keys whose value type may be undefined. */
34
+ export type ExtractUndefined<T> = {
35
+ [K in keyof T]-?: undefined extends T[K] ? K : never;
36
+ }[keyof T];
37
+ /** Extract keys whose value type cannot be undefined. */
38
+ export type ExtractDefined<T> = {
39
+ [K in keyof T]-?: undefined extends T[K] ? never : K;
40
+ }[keyof T];
41
+ /** Lazy module import — `() => import('module')` returning a default export. */
42
+ export type LazyImport<T> = () => Promise<{
43
+ default: T;
44
+ }>;
45
+ /** Unwrap the default export from a LazyImport type. */
46
+ export type UnWrapLazyImport<T> = T extends LazyImport<infer U> ? U : T;
47
+ /** Unwrap a Promise type to its resolved value. */
48
+ export type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
49
+ /** Make specific keys optional. */
50
+ export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
51
+ /** Make specific keys required. */
52
+ export type MakeRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
53
+ /** Make specific keys nullable. */
54
+ export type MakeNullable<T, K extends keyof T> = Omit<T, K> & {
55
+ [P in K]: T[P] | null;
56
+ };
57
+ /** Recursively make all properties optional. */
58
+ export type DeepPartial<T> = T extends object ? {
59
+ [K in keyof T]?: DeepPartial<T[K]>;
60
+ } : T;
61
+ /** Recursively make all properties required. */
62
+ export type DeepRequired<T> = T extends object ? {
63
+ [K in keyof T]-?: DeepRequired<T[K]>;
64
+ } : T;
65
+ /** Recursively make all properties readonly. */
66
+ export type DeepReadonly<T> = T extends object ? {
67
+ readonly [K in keyof T]: DeepReadonly<T[K]>;
68
+ } : T;
69
+ /** An object with no properties (different from `{}` which accepts anything). */
70
+ export type EmptyObject = Record<string, never>;
71
+ /** Extract keys whose value matches a given type. */
72
+ export type ExtractKeysOfType<T, V> = {
73
+ [K in keyof T]: T[K] extends V ? K : never;
74
+ }[keyof T];
75
+ /** All-of: every member of the union must satisfy. */
76
+ export type AllOf<T extends readonly unknown[]> = T extends readonly [infer Head, ...infer Tail] ? Head & AllOf<Tail> : unknown;
77
+ /** None-of: a value that does not match any of the given types. */
78
+ export type NoneOf<T, Excluded> = T extends Excluded ? never : T;
79
+ /** Type guard signature: `(value: unknown) => value is T`. */
80
+ export type TypeGuard<T> = (value: unknown) => value is T;
81
+ /** Brand a primitive with a tag for nominal typing (alias for Opaque, AdonisJS naming). */
82
+ export type Brand<Base, Tag extends string> = Opaque<Base, Tag>;
83
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/helpers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TypeScript type helpers — utility types for the Ream framework.
3
+ * Pattern aligned with @adonisjs/core/helpers/types.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/helpers/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Exception system — AdonisJS-compatible exception handling.
3
+ *
4
+ * - Exception: base class with self-handling support
5
+ * - ExceptionHandler: global exception handler with content negotiation
6
+ * - Built-in E_* exceptions
7
+ */
8
+ import type { HttpContext } from './HttpContext.js';
9
+ /**
10
+ * Base exception class. Extend this to create self-handling exceptions.
11
+ *
12
+ * Usage:
13
+ * throw new Exception('Something went wrong', { status: 400, code: 'E_BAD_REQUEST' })
14
+ *
15
+ * Self-handled exception:
16
+ * class PaymentFailed extends Exception {
17
+ * static status = 402
18
+ * static code = 'E_PAYMENT_FAILED'
19
+ * async handle(error: this, ctx: HttpContext) {
20
+ * ctx.response.status(402).json({ error: 'Payment failed' })
21
+ * }
22
+ * async report(error: this, ctx: HttpContext) {
23
+ * logger.error('Payment failed', { userId: ctx.auth.user?.id })
24
+ * }
25
+ * }
26
+ */
27
+ export declare class Exception extends Error {
28
+ static status: number;
29
+ static code: string;
30
+ status: number;
31
+ code: string;
32
+ constructor(message: string, options?: {
33
+ status?: number;
34
+ code?: string;
35
+ });
36
+ /** Override to self-handle the exception (convert to HTTP response). */
37
+ handle?(error: this, ctx: HttpContext): Promise<void> | void;
38
+ /** Override to report the exception (logging, monitoring). Never send HTTP from here. */
39
+ report?(error: this, ctx: HttpContext): Promise<void> | void;
40
+ }
41
+ export declare class E_ROUTE_NOT_FOUND extends Exception {
42
+ static status: number;
43
+ static code: string;
44
+ constructor(method: string, path: string);
45
+ }
46
+ export declare class E_UNAUTHORIZED extends Exception {
47
+ static status: number;
48
+ static code: string;
49
+ constructor(message?: string);
50
+ handle(_error: this, ctx: HttpContext): void;
51
+ }
52
+ export declare class E_FORBIDDEN extends Exception {
53
+ static status: number;
54
+ static code: string;
55
+ required?: string[];
56
+ constructor(message?: string, required?: string[]);
57
+ handle(_error: this, ctx: HttpContext): void;
58
+ }
59
+ export declare class E_VALIDATION_ERROR extends Exception {
60
+ static status: number;
61
+ static code: string;
62
+ errors: unknown[];
63
+ constructor(errors: unknown[]);
64
+ handle(_error: this, ctx: HttpContext): void;
65
+ }
66
+ export declare class E_ROW_NOT_FOUND extends Exception {
67
+ static status: number;
68
+ static code: string;
69
+ constructor(model?: string);
70
+ handle(_error: this, ctx: HttpContext): void;
71
+ }
72
+ export declare class E_HTTP_EXCEPTION extends Exception {
73
+ constructor(message: string, status: number);
74
+ }
75
+ /**
76
+ * Global exception handler — catches all unhandled exceptions and converts
77
+ * them to HTTP responses.
78
+ *
79
+ * Extend this in your app:
80
+ * export default class Handler extends ExceptionHandler {
81
+ * protected debug = app.inDev
82
+ * protected ignoreStatuses = [400, 401, 404, 422]
83
+ * }
84
+ *
85
+ * Flow:
86
+ * 1. If exception has handle() → self-handled (bypass global)
87
+ * 2. Else → this.handle() → content negotiation (JSON or HTML)
88
+ * 3. Then → this.report() → logging/monitoring
89
+ */
90
+ export declare class ExceptionHandler {
91
+ #private;
92
+ protected debug: boolean;
93
+ protected ignoreStatuses: number[];
94
+ protected ignoreCodes: string[];
95
+ constructor(debug?: boolean);
96
+ /** Convert an exception to an HTTP response. */
97
+ handle(error: unknown, ctx: HttpContext): Promise<void>;
98
+ /** Log/report an exception. Override for custom monitoring. */
99
+ report(error: unknown, ctx: HttpContext): Promise<void>;
100
+ /** Provide additional context for error reports. Override for custom data. */
101
+ protected context(ctx: HttpContext): Record<string, unknown>;
102
+ }
103
+ //# sourceMappingURL=Exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Exception.d.ts","sourceRoot":"","sources":["../../src/http/Exception.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,MAAM,CAAC,MAAM,SAAM;IACnB,MAAM,CAAC,IAAI,SAAc;IAEzB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;gBAEA,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IASzE,wEAAwE;IACxE,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE5D,yFAAyF;IACzF,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAC7D;AAID,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,OAAgB,MAAM,SAAM;IAC5B,OAAgB,IAAI,SAAsB;gBAE9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAGzC;AAED,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAgB,MAAM,SAAM;IAC5B,OAAgB,IAAI,SAAmB;gBAE3B,OAAO,SAA4B;IAItC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;CAGtD;AAED,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAgB,MAAM,SAAM;IAC5B,OAAgB,IAAI,SAAgB;IAEpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;gBAEP,OAAO,SAA6B,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE;IAK5D,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;CAStD;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,OAAgB,MAAM,SAAM;IAC5B,OAAgB,IAAI,SAAuB;IAE3C,MAAM,EAAE,OAAO,EAAE,CAAA;gBAEL,MAAM,EAAE,OAAO,EAAE;IAKpB,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;CAGtD;AAED,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAgB,MAAM,SAAM;IAC5B,OAAgB,IAAI,SAAoB;gBAE5B,KAAK,CAAC,EAAE,MAAM;IAOjB,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;CAGtD;AAED,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG5C;AAID;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAgB;;IAC3B,SAAS,CAAC,KAAK,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,CAAuB;IACzD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAK;gBAExB,KAAK,UAAQ;IAIzB,gDAAgD;IAC1C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C7D,+DAA+D;IACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7D,8EAA8E;IAC9E,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQ7D"}