@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 @@
1
+ {"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../../src/helpers/is.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,CAElD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAE3E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKtE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAEzD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAOlE;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,SAAS,CAEnE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAO3C;AAED,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;CAiBP,CAAA;AAED,eAAe,EAAE,CAAA"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Returns true if value is a string.
3
+ * @example isString('hi') // true
4
+ */
5
+ export function isString(v) {
6
+ return typeof v === 'string';
7
+ }
8
+ /**
9
+ * Returns true if value is a finite number (excludes NaN).
10
+ * @example isNumber(42) // true; isNumber(NaN) // false
11
+ */
12
+ export function isNumber(v) {
13
+ return typeof v === 'number' && !Number.isNaN(v);
14
+ }
15
+ /**
16
+ * Returns true if value is a boolean.
17
+ * @example isBoolean(true) // true
18
+ */
19
+ export function isBoolean(v) {
20
+ return typeof v === 'boolean';
21
+ }
22
+ /**
23
+ * Returns true if value is a callable function.
24
+ * @example isFunction(() => {}) // true
25
+ */
26
+ export function isFunction(v) {
27
+ return typeof v === 'function';
28
+ }
29
+ /**
30
+ * Returns true if value is a non-null object.
31
+ * @example isObject({}) // true; isObject(null) // false
32
+ */
33
+ export function isObject(v) {
34
+ return v !== null && typeof v === 'object';
35
+ }
36
+ /**
37
+ * Returns true if value is a plain object (non-null, non-array, prototype is Object or null).
38
+ * @example isPlainObject({ a: 1 }) // true; isPlainObject([]) // false
39
+ */
40
+ export function isPlainObject(v) {
41
+ if (v === null || typeof v !== 'object')
42
+ return false;
43
+ if (Array.isArray(v))
44
+ return false;
45
+ const proto = Object.getPrototypeOf(v);
46
+ return proto === null || proto === Object.prototype;
47
+ }
48
+ /**
49
+ * Returns true if value is an array.
50
+ * @example isArray([1, 2]) // true
51
+ */
52
+ export function isArray(v) {
53
+ return Array.isArray(v);
54
+ }
55
+ /**
56
+ * Returns true if value has a thenable interface (is a Promise or promise-like).
57
+ * @example isPromise(Promise.resolve()) // true
58
+ */
59
+ export function isPromise(v) {
60
+ return (v !== null &&
61
+ typeof v === 'object' &&
62
+ 'then' in v &&
63
+ typeof v.then === 'function');
64
+ }
65
+ /**
66
+ * Returns true if value is null.
67
+ * @example isNull(null) // true
68
+ */
69
+ export function isNull(v) {
70
+ return v === null;
71
+ }
72
+ /**
73
+ * Returns true if value is undefined.
74
+ * @example isUndefined(undefined) // true
75
+ */
76
+ export function isUndefined(v) {
77
+ return v === undefined;
78
+ }
79
+ /**
80
+ * Returns true if value is null or undefined.
81
+ * @example isNullOrUndefined(null) // true; isNullOrUndefined(undefined) // true
82
+ */
83
+ export function isNullOrUndefined(v) {
84
+ return v === null || v === undefined;
85
+ }
86
+ /**
87
+ * Returns true if value is a Node.js Buffer.
88
+ * @example isBuffer(Buffer.from('hi')) // true
89
+ */
90
+ export function isBuffer(v) {
91
+ return Buffer.isBuffer(v);
92
+ }
93
+ /**
94
+ * Returns true if value is a Date object.
95
+ * @example isDate(new Date()) // true
96
+ */
97
+ export function isDate(v) {
98
+ return v instanceof Date;
99
+ }
100
+ /**
101
+ * Returns true if value is a RegExp.
102
+ * @example isRegExp(/foo/) // true
103
+ */
104
+ export function isRegExp(v) {
105
+ return v instanceof RegExp;
106
+ }
107
+ /**
108
+ * Returns true if value is an Error instance.
109
+ * @example isError(new Error()) // true
110
+ */
111
+ export function isError(v) {
112
+ return v instanceof Error;
113
+ }
114
+ /**
115
+ * Returns true for null, undefined, empty string, empty array, empty plain object,
116
+ * empty Map, or empty Set.
117
+ * @example isEmpty('') // true; isEmpty([]) // true; isEmpty({}) // true
118
+ */
119
+ export function isEmpty(v) {
120
+ if (v === null || v === undefined)
121
+ return true;
122
+ if (typeof v === 'string')
123
+ return v.length === 0;
124
+ if (Array.isArray(v))
125
+ return v.length === 0;
126
+ if (v instanceof Map || v instanceof Set)
127
+ return v.size === 0;
128
+ if (isPlainObject(v))
129
+ return Object.keys(v).length === 0;
130
+ return false;
131
+ }
132
+ const is = {
133
+ isString,
134
+ isNumber,
135
+ isBoolean,
136
+ isFunction,
137
+ isObject,
138
+ isPlainObject,
139
+ isArray,
140
+ isPromise,
141
+ isNull,
142
+ isUndefined,
143
+ isNullOrUndefined,
144
+ isBuffer,
145
+ isDate,
146
+ isRegExp,
147
+ isError,
148
+ isEmpty,
149
+ };
150
+ export default is;
151
+ //# sourceMappingURL=is.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/helpers/is.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Shared NAPI binary loader. Every `.node` file distributed with
3
+ * `@c9up/ream` uses the same platform-suffix convention and lookup
4
+ * strategy — extracting this helper avoids drift between the three
5
+ * call sites (HyperServer, Scheduler, and future NAPI consumers) and
6
+ * matches the codex review's "stop duplicating native loaders"
7
+ * guidance.
8
+ */
9
+ /** Platform triple suffix (matches napi-rs naming). */
10
+ export declare const NAPI_PLATFORM_MAP: Record<string, string>;
11
+ export interface LoadNapiOptions {
12
+ /**
13
+ * Base filename of the `.node` binary (without the platform suffix
14
+ * or `.node` extension). E.g. `"index"` for HyperServer,
15
+ * `"scheduler"` for the Ream scheduler.
16
+ */
17
+ binaryName: string;
18
+ /**
19
+ * Caller's `import.meta.url` — used to compute the candidate paths
20
+ * relative to the caller's module location.
21
+ */
22
+ callerMetaUrl: string;
23
+ /**
24
+ * Error-code prefix used to build `<PREFIX>_NAPI_NOT_FOUND`,
25
+ * `<PREFIX>_NAPI_LOAD_FAILED`, and `<PREFIX>_UNSUPPORTED_PLATFORM`
26
+ * codes when loading fails. E.g. `"SCHEDULER"`.
27
+ */
28
+ errorCodePrefix: string;
29
+ /** Hint appended to the "not found" error (typically a build command). */
30
+ notFoundHint?: string;
31
+ }
32
+ /**
33
+ * Resolve and `require` a Ream NAPI binary, returning the native
34
+ * module export. Throws a typed `ReamError` on any failure.
35
+ *
36
+ * Search order (first hit wins):
37
+ * 1. `<caller>/../../<binaryName>.<suffix>.node`
38
+ * 2. `<caller>/../<binaryName>.<suffix>.node`
39
+ * 3. `<caller>/<binaryName>.<suffix>.node`
40
+ *
41
+ * The three-level fallback matches the layout where the compiled
42
+ * `.node` sits either at the package root, a subdirectory, or next to
43
+ * the calling module.
44
+ */
45
+ export declare function loadNapi<T>(options: LoadNapiOptions): T;
46
+ //# sourceMappingURL=napi-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"napi-loader.d.ts","sourceRoot":"","sources":["../../src/helpers/napi-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMpD,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,CAAC,CA8CvD"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Shared NAPI binary loader. Every `.node` file distributed with
3
+ * `@c9up/ream` uses the same platform-suffix convention and lookup
4
+ * strategy — extracting this helper avoids drift between the three
5
+ * call sites (HyperServer, Scheduler, and future NAPI consumers) and
6
+ * matches the codex review's "stop duplicating native loaders"
7
+ * guidance.
8
+ */
9
+ import { createRequire } from 'node:module';
10
+ import { dirname, join } from 'node:path';
11
+ import { arch, platform } from 'node:process';
12
+ import { fileURLToPath } from 'node:url';
13
+ import { ReamError } from '../errors/ReamError.js';
14
+ /** Platform triple suffix (matches napi-rs naming). */
15
+ export const NAPI_PLATFORM_MAP = {
16
+ 'linux-x64': 'linux-x64-gnu',
17
+ 'linux-arm64': 'linux-arm64-gnu',
18
+ 'darwin-x64': 'darwin-x64',
19
+ 'darwin-arm64': 'darwin-arm64',
20
+ 'win32-x64': 'win32-x64-msvc',
21
+ };
22
+ /**
23
+ * Resolve and `require` a Ream NAPI binary, returning the native
24
+ * module export. Throws a typed `ReamError` on any failure.
25
+ *
26
+ * Search order (first hit wins):
27
+ * 1. `<caller>/../../<binaryName>.<suffix>.node`
28
+ * 2. `<caller>/../<binaryName>.<suffix>.node`
29
+ * 3. `<caller>/<binaryName>.<suffix>.node`
30
+ *
31
+ * The three-level fallback matches the layout where the compiled
32
+ * `.node` sits either at the package root, a subdirectory, or next to
33
+ * the calling module.
34
+ */
35
+ export function loadNapi(options) {
36
+ const { binaryName, callerMetaUrl, errorCodePrefix } = options;
37
+ const suffix = NAPI_PLATFORM_MAP[`${platform}-${arch}`];
38
+ if (!suffix) {
39
+ throw new ReamError(`${errorCodePrefix}_UNSUPPORTED_PLATFORM`, `Unsupported platform: ${platform}-${arch}`);
40
+ }
41
+ const req = createRequire(callerMetaUrl);
42
+ const dir = dirname(fileURLToPath(callerMetaUrl));
43
+ const candidates = [
44
+ join(dir, '..', '..', `${binaryName}.${suffix}.node`),
45
+ join(dir, '..', `${binaryName}.${suffix}.node`),
46
+ join(dir, `${binaryName}.${suffix}.node`),
47
+ ];
48
+ for (const path of candidates) {
49
+ try {
50
+ return req(path);
51
+ }
52
+ catch (e) {
53
+ const code = e?.code;
54
+ if (code === 'MODULE_NOT_FOUND')
55
+ continue;
56
+ // Any other error (SyntaxError, ABI mismatch, permissions,
57
+ // corrupt binary) means the file exists but cannot load. Surface
58
+ // the real cause rather than a generic "not found".
59
+ throw new ReamError(`${errorCodePrefix}_NAPI_LOAD_FAILED`, `${binaryName} NAPI binary exists at '${path}' but failed to load: ${e.message}`, {
60
+ hint: 'Check that the binary was built for the current platform and Node ABI. Rebuild with `pnpm --filter @c9up/ream build:rust`.',
61
+ });
62
+ }
63
+ }
64
+ throw new ReamError(`${errorCodePrefix}_NAPI_NOT_FOUND`, `${binaryName} NAPI binary not found. Expected ${binaryName}.${suffix}.node`, {
65
+ hint: options.notFoundHint ??
66
+ "Run 'pnpm --filter @c9up/ream build:rust' to build the native module.",
67
+ });
68
+ }
69
+ //# sourceMappingURL=napi-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"napi-loader.js","sourceRoot":"","sources":["../../src/helpers/napi-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,WAAW,EAAE,eAAe;IAC5B,aAAa,EAAE,iBAAiB;IAChC,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE,gBAAgB;CAC9B,CAAA;AAwBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAI,OAAwB;IAClD,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;IAC9D,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAA;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,SAAS,CACjB,GAAG,eAAe,uBAAuB,EACzC,yBAAyB,QAAQ,IAAI,IAAI,EAAE,CAC5C,CAAA;IACH,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,UAAU,IAAI,MAAM,OAAO,CAAC;QACrD,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,UAAU,IAAI,MAAM,OAAO,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,MAAM,OAAO,CAAC;KAC1C,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,IAAI,CAAM,CAAA;QACvB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,GAAI,CAAuC,EAAE,IAAI,CAAA;YAC3D,IAAI,IAAI,KAAK,kBAAkB;gBAAE,SAAQ;YACzC,2DAA2D;YAC3D,iEAAiE;YACjE,oDAAoD;YACpD,MAAM,IAAI,SAAS,CACjB,GAAG,eAAe,mBAAmB,EACrC,GAAG,UAAU,2BAA2B,IAAI,yBAA0B,CAAW,CAAC,OAAO,EAAE,EAC3F;gBACE,IAAI,EAAE,4HAA4H;aACnI,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,GAAG,eAAe,iBAAiB,EACnC,GAAG,UAAU,oCAAoC,UAAU,IAAI,MAAM,OAAO,EAC5E;QACE,IAAI,EACF,OAAO,CAAC,YAAY;YACpB,uEAAuE;KAC1E,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Timing-safe comparison of two strings or buffers. Prevents timing attacks.
3
+ *
4
+ * @example
5
+ * safeEqual('secret', 'secret') // true
6
+ * safeEqual('secret', 'wrong') // false
7
+ */
8
+ export declare function safeEqual(a: string | Buffer, b: string | Buffer): boolean;
9
+ //# sourceMappingURL=safeEqual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeEqual.d.ts","sourceRoot":"","sources":["../../src/helpers/safeEqual.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAKzE"}
@@ -0,0 +1,16 @@
1
+ import { timingSafeEqual } from 'node:crypto';
2
+ /**
3
+ * Timing-safe comparison of two strings or buffers. Prevents timing attacks.
4
+ *
5
+ * @example
6
+ * safeEqual('secret', 'secret') // true
7
+ * safeEqual('secret', 'wrong') // false
8
+ */
9
+ export function safeEqual(a, b) {
10
+ const bufA = typeof a === 'string' ? Buffer.from(a) : a;
11
+ const bufB = typeof b === 'string' ? Buffer.from(b) : b;
12
+ if (bufA.length !== bufB.length)
13
+ return false;
14
+ return timingSafeEqual(bufA, bufB);
15
+ }
16
+ //# sourceMappingURL=safeEqual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeEqual.js","sourceRoot":"","sources":["../../src/helpers/safeEqual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,CAAkB,EAAE,CAAkB;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAC7C,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Converts a string to camelCase.
3
+ * @example camelCase('user_name') // 'userName'
4
+ */
5
+ export declare function camelCase(s: string): string;
6
+ /**
7
+ * Converts a string to snake_case.
8
+ * @example snakeCase('userName') // 'user_name'
9
+ */
10
+ export declare function snakeCase(s: string): string;
11
+ /**
12
+ * Converts a string to PascalCase.
13
+ * @example pascalCase('user team') // 'UserTeam'
14
+ */
15
+ export declare function pascalCase(s: string): string;
16
+ /**
17
+ * Converts a string to dash-case (kebab-case). Optionally capitalizes each segment.
18
+ * @example dashCase('helloWorld') // 'hello-world'
19
+ * @example dashCase('helloWorld', { capitalize: true }) // 'Hello-World'
20
+ */
21
+ export declare function dashCase(s: string, options?: {
22
+ capitalize?: boolean;
23
+ }): string;
24
+ /**
25
+ * Converts a string to Title Case.
26
+ * @example titleCase('hello world') // 'Hello World'
27
+ */
28
+ export declare function titleCase(s: string): string;
29
+ /**
30
+ * Converts a snake_case/camelCase string to a human-readable form.
31
+ * @example humanize('user_name') // 'User name'
32
+ */
33
+ export declare function humanize(s: string): string;
34
+ /**
35
+ * Truncates a string to maxLength characters.
36
+ * @example truncate('Hello world', 8) // 'Hello wo...'
37
+ */
38
+ export declare function truncate(text: string, maxLength: number, options?: {
39
+ completeWords?: boolean;
40
+ suffix?: string;
41
+ }): string;
42
+ /**
43
+ * Strips HTML tags then truncates. See `truncate` for options.
44
+ * @example excerpt('<p>Hello world</p>', 8) // 'Hello wo...'
45
+ */
46
+ export declare function excerpt(text: string, maxLength: number, options?: {
47
+ completeWords?: boolean;
48
+ suffix?: string;
49
+ }): string;
50
+ /**
51
+ * Escapes HTML special characters. Optionally encodes non-ASCII characters as numeric entities.
52
+ * @example escapeHTML('<b>hi</b>') // '&lt;b&gt;hi&lt;/b&gt;'
53
+ */
54
+ export declare function escapeHTML(text: string, options?: {
55
+ encodeSymbols?: boolean;
56
+ }): string;
57
+ /**
58
+ * Encodes only non-ASCII characters as &#xHEX; numeric entities.
59
+ * @example encodeSymbols('héllo') // 'h&#xE9;llo'
60
+ */
61
+ export declare function encodeSymbols(text: string): string;
62
+ /**
63
+ * Returns true if the string is empty or contains only whitespace.
64
+ * @example isEmpty(' ') // true
65
+ */
66
+ export declare function isEmpty(value: string): boolean;
67
+ /**
68
+ * Trims a string and collapses internal whitespace sequences to a single space.
69
+ * @example condenseWhitespace(' hello world ') // 'hello world'
70
+ */
71
+ export declare function condenseWhitespace(s: string): string;
72
+ /**
73
+ * Converts a string to a URL-friendly slug.
74
+ * @example slug('Hello World!') // 'hello-world'
75
+ */
76
+ export declare function slug(text: string, options?: {
77
+ replacement?: string;
78
+ lower?: boolean;
79
+ strict?: boolean;
80
+ }): string;
81
+ /**
82
+ * Returns the plural form of an English word.
83
+ * @example plural('person') // 'people'; plural('box') // 'boxes'
84
+ */
85
+ export declare function plural(word: string): string;
86
+ /**
87
+ * Returns the singular form of an English word.
88
+ * @example singular('people') // 'person'; singular('boxes') // 'box'
89
+ */
90
+ export declare function singular(word: string): string;
91
+ /**
92
+ * Returns true if the word appears to be plural.
93
+ * @example isPlural('dogs') // true
94
+ */
95
+ export declare function isPlural(word: string): boolean;
96
+ /**
97
+ * Returns true if the word appears to be singular.
98
+ * @example isSingular('dog') // true
99
+ */
100
+ export declare function isSingular(word: string): boolean;
101
+ /**
102
+ * Returns a base64url random string of exactly `length` characters.
103
+ * @example random(16) // e.g. 'Xk3mN9pQ2vR7tZ1w'
104
+ */
105
+ export declare function random(length: number): string;
106
+ /**
107
+ * Alias for `random`. Generates a base64url random string of `size` characters.
108
+ * @example generateRandom(16) // e.g. 'Xk3mN9pQ2vR7tZ1w'
109
+ */
110
+ export declare function generateRandom(size: number): string;
111
+ /**
112
+ * Returns the ordinal representation of a number.
113
+ * @example ordinal(1) // '1st'; ordinal(11) // '11th'; ordinal(22) // '22nd'
114
+ */
115
+ export declare function ordinal(n: number): string;
116
+ /**
117
+ * Formats an hrtime tuple to a human-readable string.
118
+ * @example prettyHrTime([0, 1234567]) // '1.235 ms'
119
+ * @example prettyHrTime([2, 500000000]) // '2.500 s'
120
+ */
121
+ export declare function prettyHrTime(time: [number, number]): string;
122
+ /**
123
+ * Converts Windows backslash paths to Unix forward slashes.
124
+ * @example toUnixSlash('C:\\foo\\bar') // 'C:/foo/bar'
125
+ */
126
+ export declare function toUnixSlash(p: string): string;
127
+ /**
128
+ * Interpolates `{{ key.path }}` placeholders in a template string using `data`.
129
+ * Escape with backslash: `\{{` outputs literal `{{`. Missing keys produce empty string.
130
+ *
131
+ * @example
132
+ * interpolate('Hello {{ user.name }}!', { user: { name: 'Alice' } }) // 'Hello Alice!'
133
+ */
134
+ export declare function interpolate(template: string, data: Record<string, unknown>): string;
135
+ declare const string: {
136
+ camelCase: typeof camelCase;
137
+ snakeCase: typeof snakeCase;
138
+ pascalCase: typeof pascalCase;
139
+ dashCase: typeof dashCase;
140
+ titleCase: typeof titleCase;
141
+ humanize: typeof humanize;
142
+ truncate: typeof truncate;
143
+ excerpt: typeof excerpt;
144
+ escapeHTML: typeof escapeHTML;
145
+ encodeSymbols: typeof encodeSymbols;
146
+ isEmpty: typeof isEmpty;
147
+ condenseWhitespace: typeof condenseWhitespace;
148
+ slug: typeof slug;
149
+ plural: typeof plural;
150
+ singular: typeof singular;
151
+ isPlural: typeof isPlural;
152
+ isSingular: typeof isSingular;
153
+ random: typeof random;
154
+ generateRandom: typeof generateRandom;
155
+ ordinal: typeof ordinal;
156
+ prettyHrTime: typeof prettyHrTime;
157
+ toUnixSlash: typeof toUnixSlash;
158
+ interpolate: typeof interpolate;
159
+ };
160
+ export default string;
161
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/helpers/string.ts"],"names":[],"mappings":"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"}