alepha 0.18.2 → 0.18.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 (397) hide show
  1. package/assets/devtools-ui/200.html +2 -2
  2. package/assets/devtools-ui/200.html.br +0 -0
  3. package/assets/devtools-ui/404.html +2 -2
  4. package/assets/devtools-ui/404.html.br +0 -0
  5. package/assets/devtools-ui/{asset.BfSBZ5Dd.css → asset.hG_f8HuK.css} +1 -1
  6. package/assets/devtools-ui/asset.hG_f8HuK.css.br +0 -0
  7. package/assets/devtools-ui/chunk.B3au4Lhg.js +1 -0
  8. package/assets/devtools-ui/chunk.B3au4Lhg.js.br +0 -0
  9. package/assets/devtools-ui/chunk.BLOrlnMB.js +1 -0
  10. package/assets/devtools-ui/chunk.BLOrlnMB.js.br +0 -0
  11. package/assets/devtools-ui/chunk.BLR01ljW.js +1 -0
  12. package/assets/devtools-ui/chunk.BLR01ljW.js.br +0 -0
  13. package/assets/devtools-ui/chunk.BTXaIUlA.js +1 -0
  14. package/assets/devtools-ui/chunk.BTXaIUlA.js.br +0 -0
  15. package/assets/devtools-ui/{chunk.lJL-lgnW.js → chunk.BhJaxmm8.js} +1 -1
  16. package/assets/devtools-ui/chunk.BhJaxmm8.js.br +0 -0
  17. package/assets/devtools-ui/chunk.BtoNxFuL.js +1 -0
  18. package/assets/devtools-ui/chunk.BtoNxFuL.js.br +0 -0
  19. package/assets/devtools-ui/chunk.C8YUV2Wd.js +1 -0
  20. package/assets/devtools-ui/chunk.C8YUV2Wd.js.br +0 -0
  21. package/assets/devtools-ui/{chunk.M6wyKO_3.js → chunk.CBbIgDzE.js} +2 -2
  22. package/assets/devtools-ui/chunk.CBbIgDzE.js.br +0 -0
  23. package/assets/devtools-ui/chunk.CFqIniwA.js +1 -0
  24. package/assets/devtools-ui/chunk.CFqIniwA.js.br +0 -0
  25. package/assets/devtools-ui/chunk.CLFF7f7-.js +1 -0
  26. package/assets/devtools-ui/chunk.CLFF7f7-.js.br +0 -0
  27. package/assets/devtools-ui/chunk.CRsBbA10.js +1 -0
  28. package/assets/devtools-ui/chunk.CRsBbA10.js.br +0 -0
  29. package/assets/devtools-ui/{chunk.DbEH1oOB.js → chunk.CZPo6v95.js} +1 -1
  30. package/assets/devtools-ui/chunk.CZPo6v95.js.br +0 -0
  31. package/assets/devtools-ui/chunk.D0fWgNos.js +1 -0
  32. package/assets/devtools-ui/chunk.D0fWgNos.js.br +1 -0
  33. package/assets/devtools-ui/chunk.D7-0ziQ6.js +1 -0
  34. package/assets/devtools-ui/chunk.D7-0ziQ6.js.br +0 -0
  35. package/assets/devtools-ui/chunk.DAewe0vm.js +1 -0
  36. package/assets/devtools-ui/chunk.DAewe0vm.js.br +0 -0
  37. package/assets/devtools-ui/chunk.DJRQEYqK.js +1 -0
  38. package/assets/devtools-ui/chunk.DJRQEYqK.js.br +0 -0
  39. package/assets/devtools-ui/{chunk.CZl6J9DF.js → chunk.DMAxv14p.js} +1 -1
  40. package/assets/devtools-ui/chunk.DMAxv14p.js.br +0 -0
  41. package/assets/devtools-ui/{chunk.BT2IiBkZ.js → chunk.DMImnNjU.js} +1 -1
  42. package/assets/devtools-ui/chunk.DMImnNjU.js.br +0 -0
  43. package/assets/devtools-ui/chunk.DeeQsidk.js +9 -0
  44. package/assets/devtools-ui/chunk.DeeQsidk.js.br +0 -0
  45. package/assets/devtools-ui/chunk.DqEwn9Vj.js +7 -0
  46. package/assets/devtools-ui/chunk.DqEwn9Vj.js.br +0 -0
  47. package/assets/devtools-ui/chunk.Dt8OsQey.js +1 -0
  48. package/assets/devtools-ui/chunk.Dt8OsQey.js.br +0 -0
  49. package/assets/devtools-ui/{chunk.B9pX3zit.js → chunk.Dtp8oa_f.js} +1 -1
  50. package/assets/devtools-ui/chunk.Dtp8oa_f.js.br +0 -0
  51. package/assets/devtools-ui/chunk.Dx3JzAYM.js +1 -0
  52. package/assets/devtools-ui/chunk.Dx3JzAYM.js.br +0 -0
  53. package/assets/devtools-ui/chunk.GCOj1-5E.js +1 -0
  54. package/assets/devtools-ui/chunk.GCOj1-5E.js.br +0 -0
  55. package/assets/devtools-ui/chunk.IC1LD8BH.js +1 -0
  56. package/assets/devtools-ui/chunk.IC1LD8BH.js.br +0 -0
  57. package/assets/devtools-ui/chunk.IwuB_TqW.js +1 -0
  58. package/assets/devtools-ui/chunk.IwuB_TqW.js.br +0 -0
  59. package/assets/devtools-ui/chunk.Qqapj2zq.js +1 -0
  60. package/assets/devtools-ui/chunk.Qqapj2zq.js.br +0 -0
  61. package/assets/devtools-ui/{chunk.C79YouPp.js → chunk.TKKKndOy.js} +1 -1
  62. package/assets/devtools-ui/chunk.TKKKndOy.js.br +0 -0
  63. package/assets/devtools-ui/chunk.YHTVhFQT.js +1 -0
  64. package/assets/devtools-ui/chunk.YHTVhFQT.js.br +0 -0
  65. package/assets/devtools-ui/chunk.fnod6uEi.js +1 -0
  66. package/assets/devtools-ui/chunk.fnod6uEi.js.br +0 -0
  67. package/assets/devtools-ui/chunk.mOCRmXjo.js +1 -0
  68. package/assets/devtools-ui/chunk.mOCRmXjo.js.br +0 -0
  69. package/assets/devtools-ui/chunk.qZTNEAK0.js +1 -0
  70. package/assets/devtools-ui/chunk.qZTNEAK0.js.br +0 -0
  71. package/assets/devtools-ui/chunk.rc9m0y4-.js +1 -0
  72. package/assets/devtools-ui/chunk.rc9m0y4-.js.br +0 -0
  73. package/assets/devtools-ui/entry.Cxc5QLCU.js +80 -0
  74. package/assets/devtools-ui/entry.Cxc5QLCU.js.br +0 -0
  75. package/assets/devtools-ui/index.html +2 -2
  76. package/assets/devtools-ui/index.html.br +0 -0
  77. package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
  78. package/assets/swagger-ui/swagger-ui.css +1 -1
  79. package/dist/api/audits/index.d.ts +61 -5
  80. package/dist/api/audits/index.d.ts.map +1 -1
  81. package/dist/api/files/index.d.ts +61 -5
  82. package/dist/api/files/index.d.ts.map +1 -1
  83. package/dist/api/jobs/index.d.ts +61 -5
  84. package/dist/api/jobs/index.d.ts.map +1 -1
  85. package/dist/api/jobs/index.js +4 -2
  86. package/dist/api/jobs/index.js.map +1 -1
  87. package/dist/api/keys/index.d.ts +5 -5
  88. package/dist/api/notifications/index.browser.js +44 -1
  89. package/dist/api/notifications/index.browser.js.map +1 -1
  90. package/dist/api/notifications/index.d.ts +187 -2
  91. package/dist/api/notifications/index.d.ts.map +1 -1
  92. package/dist/api/notifications/index.js +143 -8
  93. package/dist/api/notifications/index.js.map +1 -1
  94. package/dist/api/parameters/index.d.ts +61 -5
  95. package/dist/api/parameters/index.d.ts.map +1 -1
  96. package/dist/api/users/index.d.ts +330 -93
  97. package/dist/api/users/index.d.ts.map +1 -1
  98. package/dist/api/users/index.js +27 -36
  99. package/dist/api/users/index.js.map +1 -1
  100. package/dist/cli/config/index.d.ts +46 -0
  101. package/dist/cli/config/index.d.ts.map +1 -0
  102. package/dist/cli/config/index.js +20 -0
  103. package/dist/cli/config/index.js.map +1 -0
  104. package/dist/cli/core/index.d.ts +69 -66
  105. package/dist/cli/core/index.d.ts.map +1 -1
  106. package/dist/cli/core/index.js +329 -196
  107. package/dist/cli/core/index.js.map +1 -1
  108. package/dist/cli/platform/index.d.ts +302 -63
  109. package/dist/cli/platform/index.d.ts.map +1 -1
  110. package/dist/cli/platform/index.js +455 -25
  111. package/dist/cli/platform/index.js.map +1 -1
  112. package/dist/core/index.browser.js +125 -87
  113. package/dist/core/index.browser.js.map +1 -1
  114. package/dist/core/index.d.ts +62 -53
  115. package/dist/core/index.d.ts.map +1 -1
  116. package/dist/core/index.js +125 -87
  117. package/dist/core/index.js.map +1 -1
  118. package/dist/core/index.native.js +125 -87
  119. package/dist/core/index.native.js.map +1 -1
  120. package/dist/core/index.workerd.js +125 -87
  121. package/dist/core/index.workerd.js.map +1 -1
  122. package/dist/crypto/index.d.ts +18 -1
  123. package/dist/crypto/index.d.ts.map +1 -1
  124. package/dist/crypto/index.js +29 -3
  125. package/dist/crypto/index.js.map +1 -1
  126. package/dist/devtools/index.js +3 -12
  127. package/dist/devtools/index.js.map +1 -1
  128. package/dist/logger/index.d.ts +10 -1
  129. package/dist/logger/index.d.ts.map +1 -1
  130. package/dist/logger/index.js +19 -9
  131. package/dist/logger/index.js.map +1 -1
  132. package/dist/orm/core/index.browser.js +57 -1
  133. package/dist/orm/core/index.browser.js.map +1 -1
  134. package/dist/orm/core/index.bun.js +378 -19
  135. package/dist/orm/core/index.bun.js.map +1 -1
  136. package/dist/orm/core/index.d.ts +328 -9
  137. package/dist/orm/core/index.d.ts.map +1 -1
  138. package/dist/orm/core/index.js +384 -21
  139. package/dist/orm/core/index.js.map +1 -1
  140. package/dist/orm/postgres/index.bun.js +49 -17
  141. package/dist/orm/postgres/index.bun.js.map +1 -1
  142. package/dist/orm/postgres/index.d.ts +47 -21
  143. package/dist/orm/postgres/index.d.ts.map +1 -1
  144. package/dist/orm/postgres/index.js +52 -17
  145. package/dist/orm/postgres/index.js.map +1 -1
  146. package/dist/react/core/index.d.ts +1 -1
  147. package/dist/react/core/index.d.ts.map +1 -1
  148. package/dist/react/core/index.js +6 -1
  149. package/dist/react/core/index.js.map +1 -1
  150. package/dist/react/form/index.d.ts +28 -18
  151. package/dist/react/form/index.d.ts.map +1 -1
  152. package/dist/react/form/index.js +92 -56
  153. package/dist/react/form/index.js.map +1 -1
  154. package/dist/react/router/index.browser.js +448 -116
  155. package/dist/react/router/index.browser.js.map +1 -1
  156. package/dist/react/router/index.d.ts +102 -40
  157. package/dist/react/router/index.d.ts.map +1 -1
  158. package/dist/react/router/index.js +453 -92
  159. package/dist/react/router/index.js.map +1 -1
  160. package/dist/security/index.d.ts +3 -11
  161. package/dist/security/index.d.ts.map +1 -1
  162. package/dist/security/index.js +6 -11
  163. package/dist/security/index.js.map +1 -1
  164. package/dist/server/auth/index.d.ts +22 -24
  165. package/dist/server/auth/index.d.ts.map +1 -1
  166. package/dist/server/auth/index.js +102 -82
  167. package/dist/server/auth/index.js.map +1 -1
  168. package/dist/server/cookies/index.d.ts +7 -4
  169. package/dist/server/cookies/index.d.ts.map +1 -1
  170. package/dist/server/cookies/index.js +13 -12
  171. package/dist/server/cookies/index.js.map +1 -1
  172. package/dist/server/core/index.d.ts +288 -4
  173. package/dist/server/core/index.d.ts.map +1 -1
  174. package/dist/server/core/index.js +375 -2
  175. package/dist/server/core/index.js.map +1 -1
  176. package/dist/server/links/index.browser.js +10 -71
  177. package/dist/server/links/index.browser.js.map +1 -1
  178. package/dist/server/links/index.d.ts +32 -49
  179. package/dist/server/links/index.d.ts.map +1 -1
  180. package/dist/server/links/index.js +73 -100
  181. package/dist/server/links/index.js.map +1 -1
  182. package/dist/system/index.browser.js +221 -2
  183. package/dist/system/index.browser.js.map +1 -1
  184. package/dist/system/index.d.ts +63 -1
  185. package/dist/system/index.d.ts.map +1 -1
  186. package/dist/system/index.js +221 -1
  187. package/dist/system/index.js.map +1 -1
  188. package/dist/system/index.workerd.js +224 -4
  189. package/dist/system/index.workerd.js.map +1 -1
  190. package/package.json +10 -5
  191. package/src/api/jobs/providers/JobProvider.ts +6 -3
  192. package/src/api/notifications/controllers/AdminNotificationController.ts +83 -0
  193. package/src/api/notifications/index.browser.ts +3 -0
  194. package/src/api/notifications/index.ts +14 -2
  195. package/src/api/notifications/jobs/NotificationJobs.ts +11 -2
  196. package/src/api/notifications/schemas/notificationDetailResourceSchema.ts +20 -0
  197. package/src/api/notifications/schemas/notificationQuerySchema.ts +19 -0
  198. package/src/api/notifications/schemas/notificationResourceSchema.ts +18 -0
  199. package/src/api/notifications/services/NotificationSenderService.ts +15 -2
  200. package/src/api/users/atoms/realmAuthSettingsAtom.ts +28 -32
  201. package/src/api/users/buckets/UserBuckets.ts +1 -1
  202. package/src/api/users/jobs/UserJobs.ts +1 -1
  203. package/src/api/users/primitives/$realm.ts +8 -49
  204. package/src/api/users/providers/RealmProvider.ts +2 -3
  205. package/src/api/users/services/RegistrationService.spec.ts +7 -7
  206. package/src/api/users/services/RegistrationService.ts +3 -3
  207. package/src/api/users/services/SessionService.spec.ts +4 -4
  208. package/src/api/users/services/SessionService.ts +3 -3
  209. package/src/cli/{core → config}/defineConfig.ts +14 -20
  210. package/src/cli/config/index.ts +1 -0
  211. package/src/cli/core/commands/db.ts +65 -1
  212. package/src/cli/core/commands/dev.ts +1 -0
  213. package/src/cli/core/commands/init.ts +2 -192
  214. package/src/cli/core/index.ts +34 -11
  215. package/src/cli/core/providers/ViteDevServerProvider.ts +52 -13
  216. package/src/cli/core/services/PackageManagerUtils.ts +43 -21
  217. package/src/cli/core/services/ProjectScaffolder.ts +214 -2
  218. package/src/cli/core/services/ViteUtils.ts +57 -0
  219. package/src/cli/core/tasks/BuildClientTask.ts +7 -2
  220. package/src/cli/core/tasks/BuildCloudflareTask.ts +4 -12
  221. package/src/cli/core/tasks/BuildServerTask.ts +2 -0
  222. package/src/cli/core/tasks/BuildVercelTask.ts +165 -168
  223. package/src/cli/core/templates/alephaConfigTs.ts +1 -1
  224. package/src/cli/core/templates/apiAppSecurityTs.ts +5 -8
  225. package/src/cli/core/templates/tsconfigJson.ts +6 -1
  226. package/src/cli/platform/adapters/CloudflareAdapter.spec.ts +1 -1
  227. package/src/cli/platform/adapters/CloudflareAdapter.ts +30 -29
  228. package/src/cli/platform/atoms/platformOptions.ts +21 -0
  229. package/src/cli/platform/commands/SecretsCommand.spec.ts +298 -0
  230. package/src/cli/platform/commands/SecretsCommand.ts +283 -0
  231. package/src/cli/platform/commands/platform.ts +12 -0
  232. package/src/cli/platform/index.ts +14 -28
  233. package/src/cli/platform/providers/GitHubSecretStore.spec.ts +153 -0
  234. package/src/cli/platform/providers/GitHubSecretStore.ts +112 -0
  235. package/src/cli/platform/providers/MemorySecretStore.ts +114 -0
  236. package/src/cli/platform/providers/SecretStoreProvider.ts +39 -0
  237. package/src/cli/platform/schemas/cloudflare.ts +2 -0
  238. package/src/cli/platform/services/CloudflareApi.ts +5 -2
  239. package/src/cli/platform/services/DockerComposeGenerator.spec.ts +115 -0
  240. package/src/cli/platform/services/DockerComposeGenerator.ts +46 -1
  241. package/src/cli/platform/services/SecretFilterService.spec.ts +111 -0
  242. package/src/cli/platform/services/SecretFilterService.ts +54 -0
  243. package/src/core/Alepha.ts +94 -25
  244. package/src/core/__tests__/Alepha-parseEnv.spec.ts +20 -0
  245. package/src/core/primitives/$memoize.ts +38 -26
  246. package/src/core/providers/AlsProvider.ts +2 -0
  247. package/src/core/providers/EventManager.ts +4 -0
  248. package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +1 -4
  249. package/src/core/providers/KeylessJsonSchemaCodec.ts +19 -125
  250. package/src/core/providers/SchemaValidator.spec.ts +36 -0
  251. package/src/core/providers/SchemaValidator.ts +9 -0
  252. package/src/crypto/index.ts +6 -1
  253. package/src/crypto/providers/SecretProvider.ts +36 -0
  254. package/src/devtools/providers/DevToolsProvider.ts +3 -12
  255. package/src/logger/index.ts +33 -6
  256. package/src/logger/providers/PrettyFormatterProvider.ts +5 -3
  257. package/src/orm/__tests__/orm-next-tests.ts +492 -0
  258. package/src/orm/__tests__/orm-next.spec.ts +140 -0
  259. package/src/orm/core/constants/PG_SYMBOLS.ts +17 -0
  260. package/src/orm/core/index.bun.ts +3 -6
  261. package/src/orm/core/index.shared-server.ts +2 -0
  262. package/src/orm/core/index.shared.ts +2 -0
  263. package/src/orm/core/index.ts +5 -7
  264. package/src/orm/core/interfaces/AggregateQuery.ts +103 -0
  265. package/src/orm/core/interfaces/PgQueryWhere.ts +7 -0
  266. package/src/orm/core/primitives/$entity.ts +8 -0
  267. package/src/orm/core/primitives/$repository.ts +6 -3
  268. package/src/orm/core/primitives/$view.ts +88 -0
  269. package/src/orm/core/providers/DbCacheProvider.ts +66 -0
  270. package/src/orm/core/providers/DrizzleKitProvider.ts +42 -0
  271. package/src/orm/core/providers/drivers/BunSqliteProvider.ts +2 -3
  272. package/src/orm/core/providers/drivers/CloudflareD1Provider.ts +12 -0
  273. package/src/orm/core/providers/drivers/DatabaseProvider.ts +39 -0
  274. package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +2 -3
  275. package/src/orm/core/schemas/databaseEnvSchema.ts +31 -0
  276. package/src/orm/core/schemas/insertSchema.ts +13 -3
  277. package/src/orm/core/schemas/updateSchema.ts +14 -3
  278. package/src/orm/core/services/ModelBuilder.ts +26 -14
  279. package/src/orm/core/services/QueryManager.ts +13 -0
  280. package/src/orm/core/services/Repository.ts +307 -5
  281. package/src/orm/core/services/SqliteModelBuilder.ts +38 -0
  282. package/src/orm/postgres/index.bun.ts +4 -7
  283. package/src/orm/postgres/index.ts +4 -7
  284. package/src/orm/postgres/providers/BunPostgresProvider.ts +12 -2
  285. package/src/orm/postgres/providers/NodePostgresProvider.ts +7 -0
  286. package/src/orm/postgres/providers/PglitePostgresProvider.ts +10 -17
  287. package/src/orm/postgres/providers/PostgresProvider.ts +7 -36
  288. package/src/orm/postgres/schemas/postgresEnvSchema.ts +32 -0
  289. package/src/orm/postgres/services/PostgresModelBuilder.ts +40 -0
  290. package/src/react/core/components/ErrorBoundary.tsx +5 -2
  291. package/src/react/form/hooks/useFieldValue.ts +34 -0
  292. package/src/react/form/hooks/useForm.browser.spec.tsx +94 -9
  293. package/src/react/form/hooks/useForm.ts +14 -2
  294. package/src/react/form/hooks/useFormState.ts +10 -10
  295. package/src/react/form/hooks/useFormValues.ts +29 -0
  296. package/src/react/form/index.ts +3 -1
  297. package/src/react/form/services/FormModel.ts +53 -122
  298. package/src/react/router/components/ErrorViewer.tsx +333 -34
  299. package/src/react/router/components/NestedView.tsx +10 -3
  300. package/src/react/router/primitives/$page.browser.spec.tsx +34 -0
  301. package/src/react/router/primitives/$page.spec.tsx +20 -0
  302. package/src/react/router/primitives/$page.ts +24 -0
  303. package/src/react/router/providers/ReactBrowserRouterProvider.ts +14 -2
  304. package/src/react/router/providers/ReactPageProvider.ts +156 -73
  305. package/src/react/router/providers/ReactServerProvider.ts +40 -2
  306. package/src/react/router/providers/ReactServerTemplateProvider.ts +13 -1
  307. package/src/security/providers/SecurityProvider.ts +5 -27
  308. package/src/server/auth/primitives/$auth.ts +52 -19
  309. package/src/server/auth/providers/ServerAuthProvider.ts +145 -139
  310. package/src/server/cookies/providers/ServerCookiesProvider.ts +12 -24
  311. package/src/server/core/index.ts +3 -1
  312. package/src/server/core/primitives/$sse.spec.ts +315 -0
  313. package/src/server/core/primitives/$sse.ts +715 -0
  314. package/src/server/links/index.browser.ts +1 -3
  315. package/src/server/links/index.ts +0 -3
  316. package/src/server/links/providers/LinkProvider.spec.ts +12 -21
  317. package/src/server/links/providers/LinkProvider.ts +20 -52
  318. package/src/server/links/providers/ServerLinksProvider.spec.ts +106 -0
  319. package/src/server/links/providers/ServerLinksProvider.ts +113 -73
  320. package/src/server/links/schemas/apiLinksResponseSchema.ts +4 -21
  321. package/src/server/links/services/BatchCollector.ts +5 -3
  322. package/src/system/index.browser.ts +1 -0
  323. package/src/system/index.ts +3 -0
  324. package/src/system/index.workerd.ts +39 -1
  325. package/src/system/providers/WorkerdFileSystemProvider.ts +365 -0
  326. package/assets/devtools-ui/asset.BfSBZ5Dd.css.br +0 -0
  327. package/assets/devtools-ui/chunk.2NYaoqWt.js +0 -1
  328. package/assets/devtools-ui/chunk.2NYaoqWt.js.br +0 -0
  329. package/assets/devtools-ui/chunk.B052Z_xQ.js +0 -1
  330. package/assets/devtools-ui/chunk.B052Z_xQ.js.br +0 -0
  331. package/assets/devtools-ui/chunk.B4kVY90C.js +0 -1
  332. package/assets/devtools-ui/chunk.B4kVY90C.js.br +0 -0
  333. package/assets/devtools-ui/chunk.B7QJXctB.js +0 -1
  334. package/assets/devtools-ui/chunk.B7QJXctB.js.br +0 -0
  335. package/assets/devtools-ui/chunk.B9pX3zit.js.br +0 -0
  336. package/assets/devtools-ui/chunk.BKF9JxIo.js +0 -1
  337. package/assets/devtools-ui/chunk.BKF9JxIo.js.br +0 -0
  338. package/assets/devtools-ui/chunk.BOHgdTP-.js +0 -1
  339. package/assets/devtools-ui/chunk.BOHgdTP-.js.br +0 -0
  340. package/assets/devtools-ui/chunk.BOVFxkYC.js +0 -1
  341. package/assets/devtools-ui/chunk.BOVFxkYC.js.br +0 -0
  342. package/assets/devtools-ui/chunk.BR842zj5.js +0 -1
  343. package/assets/devtools-ui/chunk.BR842zj5.js.br +0 -0
  344. package/assets/devtools-ui/chunk.BT2IiBkZ.js.br +0 -0
  345. package/assets/devtools-ui/chunk.C79YouPp.js.br +0 -0
  346. package/assets/devtools-ui/chunk.C8mlBrjW.js +0 -9
  347. package/assets/devtools-ui/chunk.C8mlBrjW.js.br +0 -0
  348. package/assets/devtools-ui/chunk.CK0ow3AZ.js +0 -1
  349. package/assets/devtools-ui/chunk.CK0ow3AZ.js.br +0 -0
  350. package/assets/devtools-ui/chunk.CZl6J9DF.js.br +0 -0
  351. package/assets/devtools-ui/chunk.CdNr0YzS.js +0 -1
  352. package/assets/devtools-ui/chunk.CdNr0YzS.js.br +0 -0
  353. package/assets/devtools-ui/chunk.Ce6_6iIF.js +0 -1
  354. package/assets/devtools-ui/chunk.Ce6_6iIF.js.br +0 -0
  355. package/assets/devtools-ui/chunk.CpyDMr6O.js +0 -1
  356. package/assets/devtools-ui/chunk.CpyDMr6O.js.br +0 -0
  357. package/assets/devtools-ui/chunk.CyPmvPnY.js +0 -1
  358. package/assets/devtools-ui/chunk.CyPmvPnY.js.br +0 -0
  359. package/assets/devtools-ui/chunk.DTI_geWu.js +0 -1
  360. package/assets/devtools-ui/chunk.DTI_geWu.js.br +0 -0
  361. package/assets/devtools-ui/chunk.DbEH1oOB.js.br +0 -0
  362. package/assets/devtools-ui/chunk.Ddeqj5gv.js +0 -1
  363. package/assets/devtools-ui/chunk.Ddeqj5gv.js.br +0 -0
  364. package/assets/devtools-ui/chunk.DpRnB4vJ.js +0 -1
  365. package/assets/devtools-ui/chunk.DpRnB4vJ.js.br +0 -0
  366. package/assets/devtools-ui/chunk.DxPGTlsg.js +0 -1
  367. package/assets/devtools-ui/chunk.DxPGTlsg.js.br +0 -0
  368. package/assets/devtools-ui/chunk.G7_MMBJS.js +0 -1
  369. package/assets/devtools-ui/chunk.G7_MMBJS.js.br +0 -0
  370. package/assets/devtools-ui/chunk.M6wyKO_3.js.br +0 -0
  371. package/assets/devtools-ui/chunk.OUxNGmQ6.js +0 -1
  372. package/assets/devtools-ui/chunk.OUxNGmQ6.js.br +0 -0
  373. package/assets/devtools-ui/chunk.T1kle-fF.js +0 -1
  374. package/assets/devtools-ui/chunk.T1kle-fF.js.br +0 -0
  375. package/assets/devtools-ui/chunk.WjpsbQAv.js +0 -1
  376. package/assets/devtools-ui/chunk.WjpsbQAv.js.br +0 -0
  377. package/assets/devtools-ui/chunk.c6YgVx86.js +0 -1
  378. package/assets/devtools-ui/chunk.c6YgVx86.js.br +0 -0
  379. package/assets/devtools-ui/chunk.dwU3E_MU.js +0 -1
  380. package/assets/devtools-ui/chunk.dwU3E_MU.js.br +0 -0
  381. package/assets/devtools-ui/chunk.lJL-lgnW.js.br +0 -0
  382. package/assets/devtools-ui/chunk.lPWRmvA-.js +0 -7
  383. package/assets/devtools-ui/chunk.lPWRmvA-.js.br +0 -0
  384. package/assets/devtools-ui/chunk.p3HJvugM.js +0 -1
  385. package/assets/devtools-ui/chunk.p3HJvugM.js.br +0 -0
  386. package/assets/devtools-ui/chunk.r_Xoa_CI.js +0 -1
  387. package/assets/devtools-ui/chunk.r_Xoa_CI.js.br +0 -0
  388. package/assets/devtools-ui/chunk.sRNuTYXb.js +0 -1
  389. package/assets/devtools-ui/chunk.sRNuTYXb.js.br +0 -0
  390. package/assets/devtools-ui/chunk.tUjcyX5C.js +0 -1
  391. package/assets/devtools-ui/chunk.tUjcyX5C.js.br +0 -0
  392. package/assets/devtools-ui/chunk.thjBxvCA.js +0 -1
  393. package/assets/devtools-ui/chunk.thjBxvCA.js.br +0 -0
  394. package/assets/devtools-ui/entry.GYhBVRpC.js +0 -78
  395. package/assets/devtools-ui/entry.GYhBVRpC.js.br +0 -0
  396. package/src/server/links/services/DefinitionsPool.spec.ts +0 -86
  397. package/src/server/links/services/DefinitionsPool.ts +0 -43
@@ -1,5 +1,6 @@
1
1
  import * as alepha from "alepha";
2
2
  import { Alepha, KIND, Primitive, Static, TSchema } from "alepha";
3
+ import { SecretProvider } from "alepha/crypto";
3
4
  import { DateTimeProvider, DurationLike } from "alepha/datetime";
4
5
  import * as alepha_logger0 from "alepha/logger";
5
6
 
@@ -16,9 +17,7 @@ declare class ServerCookiesProvider {
16
17
  protected readonly log: alepha_logger0.Logger;
17
18
  protected readonly cookieParser: CookieParser;
18
19
  protected readonly dateTimeProvider: DateTimeProvider;
19
- protected readonly env: {
20
- APP_SECRET: string;
21
- };
20
+ protected readonly secretProvider: SecretProvider;
22
21
  protected readonly ALGORITHM = "aes-256-gcm";
23
22
  protected readonly IV_LENGTH = 16;
24
23
  protected readonly AUTH_TAG_LENGTH = 16;
@@ -32,7 +31,11 @@ declare class ServerCookiesProvider {
32
31
  deleteCookie<T extends TSchema>(name: string, contextCookies?: Cookies): void;
33
32
  protected encrypt(text: string): string;
34
33
  protected decrypt(encryptedText: string): string;
35
- secretKey(): string;
34
+ /**
35
+ * Derives a 32-byte key from APP_SECRET via SHA-256.
36
+ * Accepts any string length — no padding or truncation needed.
37
+ */
38
+ protected deriveKey(): Buffer;
36
39
  protected sign(data: string): string;
37
40
  }
38
41
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { $env, $hook, $inject, $module, Alepha, AlephaError, KIND, Primitive, createPrimitive } from "alepha";
1
+ import { $hook, $inject, $module, Alepha, AlephaError, KIND, Primitive, createPrimitive } from "alepha";
2
2
  import { AlephaServer } from "alepha/server";
3
- import { createCipheriv, createDecipheriv, createHmac, randomBytes, timingSafeEqual } from "node:crypto";
3
+ import { createCipheriv, createDecipheriv, createHash, createHmac, randomBytes, timingSafeEqual } from "node:crypto";
4
4
  import { deflateRawSync, inflateRawSync } from "node:zlib";
5
+ import { SecretProvider } from "alepha/crypto";
5
6
  import { DateTimeProvider } from "alepha/datetime";
6
7
  import { $logger } from "alepha/logger";
7
- import { alephaSecurityEnvSchema } from "alepha/security";
8
8
 
9
9
  //#region ../../src/server/cookies/services/CookieParser.ts
10
10
  var CookieParser = class {
@@ -50,7 +50,7 @@ var ServerCookiesProvider = class {
50
50
  log = $logger();
51
51
  cookieParser = $inject(CookieParser);
52
52
  dateTimeProvider = $inject(DateTimeProvider);
53
- env = $env(alephaSecurityEnvSchema);
53
+ secretProvider = $inject(SecretProvider);
54
54
  ALGORITHM = "aes-256-gcm";
55
55
  IV_LENGTH = 16;
56
56
  AUTH_TAG_LENGTH = 16;
@@ -136,7 +136,7 @@ var ServerCookiesProvider = class {
136
136
  }
137
137
  encrypt(text) {
138
138
  const iv = randomBytes(this.IV_LENGTH);
139
- const cipher = createCipheriv(this.ALGORITHM, Buffer.from(this.secretKey()), iv);
139
+ const cipher = createCipheriv(this.ALGORITHM, this.deriveKey(), iv);
140
140
  const encrypted = Buffer.concat([cipher.update(text, "utf8"), cipher.final()]);
141
141
  const authTag = cipher.getAuthTag();
142
142
  return Buffer.concat([
@@ -150,18 +150,19 @@ var ServerCookiesProvider = class {
150
150
  const iv = data.subarray(0, this.IV_LENGTH);
151
151
  const authTag = data.subarray(this.IV_LENGTH, this.IV_LENGTH + this.AUTH_TAG_LENGTH);
152
152
  const encrypted = data.subarray(this.IV_LENGTH + this.AUTH_TAG_LENGTH);
153
- const decipher = createDecipheriv(this.ALGORITHM, Buffer.from(this.secretKey()), iv);
153
+ const decipher = createDecipheriv(this.ALGORITHM, this.deriveKey(), iv);
154
154
  decipher.setAuthTag(authTag);
155
155
  return Buffer.concat([decipher.update(encrypted), decipher.final()]).toString("utf8");
156
156
  }
157
- secretKey() {
158
- let secret = this.env.APP_SECRET;
159
- if (secret.length < 32) secret = secret.padEnd(32, "0");
160
- else if (secret.length > 32) secret = secret.substring(0, 32);
161
- return secret;
157
+ /**
158
+ * Derives a 32-byte key from APP_SECRET via SHA-256.
159
+ * Accepts any string length no padding or truncation needed.
160
+ */
161
+ deriveKey() {
162
+ return createHash("sha256").update(this.secretProvider.secretKey).digest();
162
163
  }
163
164
  sign(data) {
164
- return createHmac("sha256", this.secretKey()).update(data).digest("hex");
165
+ return createHmac("sha256", this.deriveKey()).update(data).digest("hex");
165
166
  }
166
167
  };
167
168
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"sourcesContent":["import type { Cookie } from \"../primitives/$cookie.ts\";\n\nexport class CookieParser {\n public parseRequestCookies(header: string): Record<string, string> {\n const cookies: Record<string, string> = {};\n const parts = header.split(\";\");\n for (const part of parts) {\n const [key, value] = part.split(\"=\");\n if (!key || !value) {\n continue;\n }\n\n cookies[key.trim()] = value.trim();\n }\n\n return cookies;\n }\n\n public serializeResponseCookies(\n cookies: Record<string, Cookie | null>,\n isHttps: boolean,\n ): string[] {\n const headers = [];\n\n for (const [name, cookie] of Object.entries(cookies)) {\n // If the cookie is null, we need to delete it\n if (cookie == null) {\n headers.push(`${name}=; Path=/; Max-Age=0`);\n continue;\n }\n\n if (!cookie.value) {\n continue;\n }\n\n headers.push(this.cookieToString(name, cookie, isHttps));\n }\n\n return headers;\n }\n\n public cookieToString(\n name: string,\n cookie: Cookie,\n isHttps?: boolean,\n ): string {\n const parts: string[] = [];\n\n parts.push(`${name}=${cookie.value}`);\n\n if (cookie.path) {\n parts.push(`Path=${cookie.path}`);\n }\n if (cookie.maxAge) {\n parts.push(`Max-Age=${cookie.maxAge}`);\n }\n if (cookie.secure !== false && isHttps) {\n parts.push(\"Secure\");\n }\n if (cookie.httpOnly) {\n parts.push(\"HttpOnly\");\n }\n if (cookie.sameSite) {\n parts.push(`SameSite=${cookie.sameSite}`);\n }\n if (cookie.domain) {\n parts.push(`Domain=${cookie.domain}`);\n }\n\n return parts.join(\"; \");\n }\n}\n","import {\n createCipheriv,\n createDecipheriv,\n createHmac,\n randomBytes,\n timingSafeEqual,\n} from \"node:crypto\";\nimport { deflateRawSync, inflateRawSync } from \"node:zlib\";\nimport {\n $env,\n $hook,\n $inject,\n Alepha,\n AlephaError,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport { DateTimeProvider } from \"alepha/datetime\";\nimport { $logger } from \"alepha/logger\";\nimport { alephaSecurityEnvSchema } from \"alepha/security\";\nimport type {\n Cookie,\n CookiePrimitiveOptions,\n Cookies,\n} from \"../primitives/$cookie.ts\";\nimport { CookieParser } from \"../services/CookieParser.ts\";\n\nexport class ServerCookiesProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n protected readonly cookieParser = $inject(CookieParser);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly env = $env(alephaSecurityEnvSchema);\n\n // crypto constants\n protected readonly ALGORITHM = \"aes-256-gcm\";\n protected readonly IV_LENGTH = 16; // For GCM\n protected readonly AUTH_TAG_LENGTH = 16;\n protected readonly SIGNATURE_LENGTH = 32; // For SHA256\n\n public readonly onRequest = $hook({\n on: \"server:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onAction = $hook({\n on: \"action:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onSend = $hook({\n on: \"server:onSend\",\n handler: ({ request }) => {\n if (request.cookies && Object.keys(request.cookies.res).length > 0) {\n const setCookieHeaders = this.cookieParser.serializeResponseCookies(\n request.cookies.res,\n request.url.protocol === \"https:\",\n );\n if (setCookieHeaders.length > 0) {\n request.reply.headers[\"set-cookie\"] = setCookieHeaders;\n }\n }\n },\n });\n\n protected getCookiesFromContext(cookies?: Cookies): Cookies {\n const contextCookies = this.alepha.store.get(\n \"alepha.http.request\",\n )?.cookies;\n if (cookies) return cookies;\n if (contextCookies) return contextCookies;\n throw new AlephaError(\n \"Cookie context is not available. This method must be called within a server request cycle.\",\n );\n }\n\n public getCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n contextCookies?: Cookies,\n ): Static<T> | undefined {\n const cookies = this.getCookiesFromContext(contextCookies);\n let rawValue = cookies.req[name];\n\n if (!rawValue) return undefined;\n\n try {\n rawValue = decodeURIComponent(rawValue);\n\n if (options.sign) {\n const signature = rawValue.substring(0, this.SIGNATURE_LENGTH * 2);\n const value = rawValue.substring(this.SIGNATURE_LENGTH * 2);\n const expectedSignature = this.sign(value);\n\n if (\n !timingSafeEqual(\n Buffer.from(signature, \"hex\"),\n Buffer.from(expectedSignature, \"hex\"),\n )\n ) {\n this.log.warn(`Invalid signature for cookie \"${name}\".`);\n return undefined;\n }\n rawValue = value;\n }\n\n if (options.encrypt) {\n rawValue = this.decrypt(rawValue);\n }\n\n if (options.compress) {\n rawValue = inflateRawSync(Buffer.from(rawValue, \"base64\")).toString(\n \"utf8\",\n );\n }\n\n return this.alepha.codec.decode(options.schema, JSON.parse(rawValue));\n } catch (error) {\n this.log.warn(`Failed to parse cookie \"${name}\"`, error);\n // corrupted or invalid cookie, instruct browser to delete it on next response\n this.deleteCookie(name, cookies);\n return undefined;\n }\n }\n\n public setCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n data: Static<T>,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n let value = JSON.stringify(this.alepha.codec.decode(options.schema, data));\n\n if (options.compress) {\n value = deflateRawSync(value).toString(\"base64\");\n }\n\n if (options.encrypt) {\n value = this.encrypt(value);\n }\n\n if (options.sign) {\n value = this.sign(value) + value;\n }\n\n const cookie: Cookie = {\n value: encodeURIComponent(value),\n path: options.path ?? \"/\",\n sameSite: options.sameSite ?? \"lax\",\n secure: options.secure ?? this.alepha.isProduction(),\n httpOnly: options.httpOnly,\n domain: options.domain,\n };\n\n if (options.ttl) {\n cookie.maxAge = this.dateTimeProvider.duration(options.ttl).as(\"seconds\");\n }\n\n cookies.res[name] = cookie;\n }\n\n public deleteCookie<T extends TSchema>(\n name: string,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n cookies.res[name] = null;\n }\n\n // --- Crypto & Parsing ---\n\n protected encrypt(text: string): string {\n const iv = randomBytes(this.IV_LENGTH);\n const cipher = createCipheriv(\n this.ALGORITHM,\n Buffer.from(this.secretKey()),\n iv,\n );\n const encrypted = Buffer.concat([\n cipher.update(text, \"utf8\"),\n cipher.final(),\n ]);\n const authTag = cipher.getAuthTag();\n return Buffer.concat([iv, authTag, encrypted]).toString(\"base64\");\n }\n\n protected decrypt(encryptedText: string): string {\n const data = Buffer.from(encryptedText, \"base64\");\n const iv = data.subarray(0, this.IV_LENGTH);\n const authTag = data.subarray(\n this.IV_LENGTH,\n this.IV_LENGTH + this.AUTH_TAG_LENGTH,\n );\n\n const encrypted = data.subarray(this.IV_LENGTH + this.AUTH_TAG_LENGTH);\n const decipher = createDecipheriv(\n this.ALGORITHM,\n Buffer.from(this.secretKey()),\n iv,\n );\n\n decipher.setAuthTag(authTag);\n\n const decrypted = Buffer.concat([\n decipher.update(encrypted),\n decipher.final(),\n ]);\n\n return decrypted.toString(\"utf8\");\n }\n\n public secretKey(): string {\n let secret = this.env.APP_SECRET;\n if (secret.length < 32) {\n // pad secret to 32 bytes\n secret = secret.padEnd(32, \"0\");\n } else if (secret.length > 32) {\n // truncate secret to 32 bytes\n secret = secret.substring(0, 32);\n }\n return secret;\n }\n\n protected sign(data: string): string {\n return createHmac(\"sha256\", this.secretKey()).update(data).digest(\"hex\");\n }\n}\n","import {\n $inject,\n createPrimitive,\n KIND,\n Primitive,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport type { DurationLike } from \"alepha/datetime\";\nimport { ServerCookiesProvider } from \"../providers/ServerCookiesProvider.ts\";\n\n/**\n * Declares a type-safe, configurable HTTP cookie.\n * This primitive provides methods to get, set, and delete the cookie\n * within the server request/response cycle.\n */\nexport const $cookie = <T extends TSchema>(\n options: CookiePrimitiveOptions<T>,\n extendedOptions?: Omit<CookiePrimitiveOptions<T>, \"schema\">,\n): AbstractCookiePrimitive<T> => {\n if (extendedOptions) {\n options = {\n key: options.key,\n schema: options.schema,\n ...extendedOptions,\n };\n }\n return createPrimitive(CookiePrimitive<T>, options);\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CookiePrimitiveOptions<T extends TSchema> {\n /**\n * The schema for the cookie's value, used for validation and type safety.\n */\n schema: T;\n\n /**\n * The name of the cookie.\n */\n name?: string;\n\n /**\n * The cookie's path. Defaults to \"/\".\n */\n path?: string;\n\n /**\n * Time-to-live for the cookie. Maps to `Max-Age`.\n */\n ttl?: DurationLike;\n\n /**\n * If true, the cookie is only sent over HTTPS. Defaults to true in production.\n */\n secure?: boolean;\n\n /**\n * If true, the cookie cannot be accessed by client-side scripts.\n */\n httpOnly?: boolean;\n\n /**\n * SameSite policy for the cookie. Defaults to \"lax\".\n */\n sameSite?: \"strict\" | \"lax\" | \"none\";\n\n /**\n * The domain for the cookie.\n */\n domain?: string;\n\n /**\n * If true, the cookie value will be compressed using zlib.\n */\n compress?: boolean;\n\n /**\n * If true, the cookie value will be encrypted. Requires `COOKIE_SECRET` env var.\n */\n encrypt?: boolean;\n\n /**\n * If true, the cookie will be signed to prevent tampering. Requires `COOKIE_SECRET` env var.\n */\n sign?: boolean;\n\n /**\n * Optional key to link this cookie to an Atom, enabling automatic synchronization between the cookie and the Atom's state.\n */\n key?: string;\n}\n\nexport interface AbstractCookiePrimitive<T extends TSchema> {\n readonly name: string;\n readonly options: CookiePrimitiveOptions<T>;\n set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void;\n get(options?: { cookies?: Cookies }): Static<T> | undefined;\n del(options?: { cookies?: Cookies }): void;\n}\n\nexport class CookiePrimitive<T extends TSchema>\n extends Primitive<CookiePrimitiveOptions<T>>\n implements AbstractCookiePrimitive<T>\n{\n protected readonly serverCookiesProvider = $inject(ServerCookiesProvider);\n\n protected onInit() {\n if (this.options.key) {\n this.alepha.events.on(\"state:mutate\", ({ key, value }) => {\n if (key === this.options.key) {\n this.set(value);\n }\n });\n this.alepha.events.on(\"server:onRequest\", ({ request }) => {\n try {\n const value = this.get(request);\n if (value !== undefined) {\n this.alepha.store.set(this.options.key as any, value, {\n skipEvents: true,\n });\n }\n } catch {}\n });\n }\n }\n\n public get schema(): T {\n return this.options.schema;\n }\n\n public get name(): string {\n return this.options.name ?? `${this.config.propertyKey}`;\n }\n\n /**\n * Sets the cookie with the given value in the current request's response.\n */\n public set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void {\n this.serverCookiesProvider.setCookie(\n this.name,\n {\n ...this.options,\n ttl: options?.ttl ?? this.options.ttl,\n },\n value,\n options?.cookies,\n );\n }\n\n /**\n * Gets the cookie value from the current request. Returns undefined if not found or invalid.\n */\n public get(options?: { cookies?: Cookies }): Static<T> | undefined {\n return this.serverCookiesProvider.getCookie(\n this.name,\n this.options,\n options?.cookies,\n );\n }\n\n /**\n * Deletes the cookie in the current request's response.\n */\n public del(options?: { cookies?: Cookies }): void {\n this.serverCookiesProvider.deleteCookie(this.name, options?.cookies);\n }\n}\n\n$cookie[KIND] = CookiePrimitive;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Cookies {\n req: Record<string, string>;\n res: Record<string, Cookie | null>;\n}\n\nexport interface Cookie {\n value: string;\n path?: string;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: \"strict\" | \"lax\" | \"none\";\n domain?: string;\n}\n","import { $module } from \"alepha\";\nimport { AlephaServer } from \"alepha/server\";\nimport { $cookie, type Cookies } from \"./primitives/$cookie.ts\";\nimport { ServerCookiesProvider } from \"./providers/ServerCookiesProvider.ts\";\nimport { CookieParser } from \"./services/CookieParser.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./primitives/$cookie.ts\";\nexport * from \"./providers/ServerCookiesProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ndeclare module \"alepha/server\" {\n interface ServerRequest {\n cookies: Cookies;\n }\n}\n\n/**\n * Server and browser-safe cookie handling.\n *\n * **Features:**\n * - Cookie management on server and browser\n *\n * @module alepha.server.cookies\n */\nexport const AlephaServerCookies = $module({\n name: \"alepha.server.cookies\",\n primitives: [$cookie],\n services: [AlephaServer, ServerCookiesProvider, CookieParser],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"sourcesContent":["import type { Cookie } from \"../primitives/$cookie.ts\";\n\nexport class CookieParser {\n public parseRequestCookies(header: string): Record<string, string> {\n const cookies: Record<string, string> = {};\n const parts = header.split(\";\");\n for (const part of parts) {\n const [key, value] = part.split(\"=\");\n if (!key || !value) {\n continue;\n }\n\n cookies[key.trim()] = value.trim();\n }\n\n return cookies;\n }\n\n public serializeResponseCookies(\n cookies: Record<string, Cookie | null>,\n isHttps: boolean,\n ): string[] {\n const headers = [];\n\n for (const [name, cookie] of Object.entries(cookies)) {\n // If the cookie is null, we need to delete it\n if (cookie == null) {\n headers.push(`${name}=; Path=/; Max-Age=0`);\n continue;\n }\n\n if (!cookie.value) {\n continue;\n }\n\n headers.push(this.cookieToString(name, cookie, isHttps));\n }\n\n return headers;\n }\n\n public cookieToString(\n name: string,\n cookie: Cookie,\n isHttps?: boolean,\n ): string {\n const parts: string[] = [];\n\n parts.push(`${name}=${cookie.value}`);\n\n if (cookie.path) {\n parts.push(`Path=${cookie.path}`);\n }\n if (cookie.maxAge) {\n parts.push(`Max-Age=${cookie.maxAge}`);\n }\n if (cookie.secure !== false && isHttps) {\n parts.push(\"Secure\");\n }\n if (cookie.httpOnly) {\n parts.push(\"HttpOnly\");\n }\n if (cookie.sameSite) {\n parts.push(`SameSite=${cookie.sameSite}`);\n }\n if (cookie.domain) {\n parts.push(`Domain=${cookie.domain}`);\n }\n\n return parts.join(\"; \");\n }\n}\n","import {\n createCipheriv,\n createDecipheriv,\n createHash,\n createHmac,\n randomBytes,\n timingSafeEqual,\n} from \"node:crypto\";\nimport { deflateRawSync, inflateRawSync } from \"node:zlib\";\nimport {\n $hook,\n $inject,\n Alepha,\n AlephaError,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport { SecretProvider } from \"alepha/crypto\";\nimport { DateTimeProvider } from \"alepha/datetime\";\nimport { $logger } from \"alepha/logger\";\nimport type {\n Cookie,\n CookiePrimitiveOptions,\n Cookies,\n} from \"../primitives/$cookie.ts\";\nimport { CookieParser } from \"../services/CookieParser.ts\";\n\nexport class ServerCookiesProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n protected readonly cookieParser = $inject(CookieParser);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly secretProvider = $inject(SecretProvider);\n\n // crypto constants\n protected readonly ALGORITHM = \"aes-256-gcm\";\n protected readonly IV_LENGTH = 16; // For GCM\n protected readonly AUTH_TAG_LENGTH = 16;\n protected readonly SIGNATURE_LENGTH = 32; // For SHA256\n\n public readonly onRequest = $hook({\n on: \"server:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onAction = $hook({\n on: \"action:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onSend = $hook({\n on: \"server:onSend\",\n handler: ({ request }) => {\n if (request.cookies && Object.keys(request.cookies.res).length > 0) {\n const setCookieHeaders = this.cookieParser.serializeResponseCookies(\n request.cookies.res,\n request.url.protocol === \"https:\",\n );\n if (setCookieHeaders.length > 0) {\n request.reply.headers[\"set-cookie\"] = setCookieHeaders;\n }\n }\n },\n });\n\n protected getCookiesFromContext(cookies?: Cookies): Cookies {\n const contextCookies = this.alepha.store.get(\n \"alepha.http.request\",\n )?.cookies;\n if (cookies) return cookies;\n if (contextCookies) return contextCookies;\n throw new AlephaError(\n \"Cookie context is not available. This method must be called within a server request cycle.\",\n );\n }\n\n public getCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n contextCookies?: Cookies,\n ): Static<T> | undefined {\n const cookies = this.getCookiesFromContext(contextCookies);\n let rawValue = cookies.req[name];\n\n if (!rawValue) return undefined;\n\n try {\n rawValue = decodeURIComponent(rawValue);\n\n if (options.sign) {\n const signature = rawValue.substring(0, this.SIGNATURE_LENGTH * 2);\n const value = rawValue.substring(this.SIGNATURE_LENGTH * 2);\n const expectedSignature = this.sign(value);\n\n if (\n !timingSafeEqual(\n Buffer.from(signature, \"hex\"),\n Buffer.from(expectedSignature, \"hex\"),\n )\n ) {\n this.log.warn(`Invalid signature for cookie \"${name}\".`);\n return undefined;\n }\n rawValue = value;\n }\n\n if (options.encrypt) {\n rawValue = this.decrypt(rawValue);\n }\n\n if (options.compress) {\n rawValue = inflateRawSync(Buffer.from(rawValue, \"base64\")).toString(\n \"utf8\",\n );\n }\n\n return this.alepha.codec.decode(options.schema, JSON.parse(rawValue));\n } catch (error) {\n this.log.warn(`Failed to parse cookie \"${name}\"`, error);\n // corrupted or invalid cookie, instruct browser to delete it on next response\n this.deleteCookie(name, cookies);\n return undefined;\n }\n }\n\n public setCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n data: Static<T>,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n let value = JSON.stringify(this.alepha.codec.decode(options.schema, data));\n\n if (options.compress) {\n value = deflateRawSync(value).toString(\"base64\");\n }\n\n if (options.encrypt) {\n value = this.encrypt(value);\n }\n\n if (options.sign) {\n value = this.sign(value) + value;\n }\n\n const cookie: Cookie = {\n value: encodeURIComponent(value),\n path: options.path ?? \"/\",\n sameSite: options.sameSite ?? \"lax\",\n secure: options.secure ?? this.alepha.isProduction(),\n httpOnly: options.httpOnly,\n domain: options.domain,\n };\n\n if (options.ttl) {\n cookie.maxAge = this.dateTimeProvider.duration(options.ttl).as(\"seconds\");\n }\n\n cookies.res[name] = cookie;\n }\n\n public deleteCookie<T extends TSchema>(\n name: string,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n cookies.res[name] = null;\n }\n\n // --- Crypto & Parsing ---\n\n protected encrypt(text: string): string {\n const iv = randomBytes(this.IV_LENGTH);\n const cipher = createCipheriv(this.ALGORITHM, this.deriveKey(), iv);\n const encrypted = Buffer.concat([\n cipher.update(text, \"utf8\"),\n cipher.final(),\n ]);\n const authTag = cipher.getAuthTag();\n return Buffer.concat([iv, authTag, encrypted]).toString(\"base64\");\n }\n\n protected decrypt(encryptedText: string): string {\n const data = Buffer.from(encryptedText, \"base64\");\n const iv = data.subarray(0, this.IV_LENGTH);\n const authTag = data.subarray(\n this.IV_LENGTH,\n this.IV_LENGTH + this.AUTH_TAG_LENGTH,\n );\n\n const encrypted = data.subarray(this.IV_LENGTH + this.AUTH_TAG_LENGTH);\n const decipher = createDecipheriv(this.ALGORITHM, this.deriveKey(), iv);\n\n decipher.setAuthTag(authTag);\n\n const decrypted = Buffer.concat([\n decipher.update(encrypted),\n decipher.final(),\n ]);\n\n return decrypted.toString(\"utf8\");\n }\n\n /**\n * Derives a 32-byte key from APP_SECRET via SHA-256.\n * Accepts any string length — no padding or truncation needed.\n */\n protected deriveKey(): Buffer {\n return createHash(\"sha256\").update(this.secretProvider.secretKey).digest();\n }\n\n protected sign(data: string): string {\n return createHmac(\"sha256\", this.deriveKey()).update(data).digest(\"hex\");\n }\n}\n","import {\n $inject,\n createPrimitive,\n KIND,\n Primitive,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport type { DurationLike } from \"alepha/datetime\";\nimport { ServerCookiesProvider } from \"../providers/ServerCookiesProvider.ts\";\n\n/**\n * Declares a type-safe, configurable HTTP cookie.\n * This primitive provides methods to get, set, and delete the cookie\n * within the server request/response cycle.\n */\nexport const $cookie = <T extends TSchema>(\n options: CookiePrimitiveOptions<T>,\n extendedOptions?: Omit<CookiePrimitiveOptions<T>, \"schema\">,\n): AbstractCookiePrimitive<T> => {\n if (extendedOptions) {\n options = {\n key: options.key,\n schema: options.schema,\n ...extendedOptions,\n };\n }\n return createPrimitive(CookiePrimitive<T>, options);\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CookiePrimitiveOptions<T extends TSchema> {\n /**\n * The schema for the cookie's value, used for validation and type safety.\n */\n schema: T;\n\n /**\n * The name of the cookie.\n */\n name?: string;\n\n /**\n * The cookie's path. Defaults to \"/\".\n */\n path?: string;\n\n /**\n * Time-to-live for the cookie. Maps to `Max-Age`.\n */\n ttl?: DurationLike;\n\n /**\n * If true, the cookie is only sent over HTTPS. Defaults to true in production.\n */\n secure?: boolean;\n\n /**\n * If true, the cookie cannot be accessed by client-side scripts.\n */\n httpOnly?: boolean;\n\n /**\n * SameSite policy for the cookie. Defaults to \"lax\".\n */\n sameSite?: \"strict\" | \"lax\" | \"none\";\n\n /**\n * The domain for the cookie.\n */\n domain?: string;\n\n /**\n * If true, the cookie value will be compressed using zlib.\n */\n compress?: boolean;\n\n /**\n * If true, the cookie value will be encrypted. Requires `COOKIE_SECRET` env var.\n */\n encrypt?: boolean;\n\n /**\n * If true, the cookie will be signed to prevent tampering. Requires `COOKIE_SECRET` env var.\n */\n sign?: boolean;\n\n /**\n * Optional key to link this cookie to an Atom, enabling automatic synchronization between the cookie and the Atom's state.\n */\n key?: string;\n}\n\nexport interface AbstractCookiePrimitive<T extends TSchema> {\n readonly name: string;\n readonly options: CookiePrimitiveOptions<T>;\n set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void;\n get(options?: { cookies?: Cookies }): Static<T> | undefined;\n del(options?: { cookies?: Cookies }): void;\n}\n\nexport class CookiePrimitive<T extends TSchema>\n extends Primitive<CookiePrimitiveOptions<T>>\n implements AbstractCookiePrimitive<T>\n{\n protected readonly serverCookiesProvider = $inject(ServerCookiesProvider);\n\n protected onInit() {\n if (this.options.key) {\n this.alepha.events.on(\"state:mutate\", ({ key, value }) => {\n if (key === this.options.key) {\n this.set(value);\n }\n });\n this.alepha.events.on(\"server:onRequest\", ({ request }) => {\n try {\n const value = this.get(request);\n if (value !== undefined) {\n this.alepha.store.set(this.options.key as any, value, {\n skipEvents: true,\n });\n }\n } catch {}\n });\n }\n }\n\n public get schema(): T {\n return this.options.schema;\n }\n\n public get name(): string {\n return this.options.name ?? `${this.config.propertyKey}`;\n }\n\n /**\n * Sets the cookie with the given value in the current request's response.\n */\n public set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void {\n this.serverCookiesProvider.setCookie(\n this.name,\n {\n ...this.options,\n ttl: options?.ttl ?? this.options.ttl,\n },\n value,\n options?.cookies,\n );\n }\n\n /**\n * Gets the cookie value from the current request. Returns undefined if not found or invalid.\n */\n public get(options?: { cookies?: Cookies }): Static<T> | undefined {\n return this.serverCookiesProvider.getCookie(\n this.name,\n this.options,\n options?.cookies,\n );\n }\n\n /**\n * Deletes the cookie in the current request's response.\n */\n public del(options?: { cookies?: Cookies }): void {\n this.serverCookiesProvider.deleteCookie(this.name, options?.cookies);\n }\n}\n\n$cookie[KIND] = CookiePrimitive;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Cookies {\n req: Record<string, string>;\n res: Record<string, Cookie | null>;\n}\n\nexport interface Cookie {\n value: string;\n path?: string;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: \"strict\" | \"lax\" | \"none\";\n domain?: string;\n}\n","import { $module } from \"alepha\";\nimport { AlephaServer } from \"alepha/server\";\nimport { $cookie, type Cookies } from \"./primitives/$cookie.ts\";\nimport { ServerCookiesProvider } from \"./providers/ServerCookiesProvider.ts\";\nimport { CookieParser } from \"./services/CookieParser.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./primitives/$cookie.ts\";\nexport * from \"./providers/ServerCookiesProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ndeclare module \"alepha/server\" {\n interface ServerRequest {\n cookies: Cookies;\n }\n}\n\n/**\n * Server and browser-safe cookie handling.\n *\n * **Features:**\n * - Cookie management on server and browser\n *\n * @module alepha.server.cookies\n */\nexport const AlephaServerCookies = $module({\n name: \"alepha.server.cookies\",\n primitives: [$cookie],\n services: [AlephaServer, ServerCookiesProvider, CookieParser],\n});\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Alepha, AlephaError, Async, FileLike, KIND, Middleware, PipelineHandler
3
3
  import * as alepha_logger0 from "alepha/logger";
4
4
  import { Readable, Transform } from "node:stream";
5
5
  import { DateTimeProvider, DurationLike } from "alepha/datetime";
6
- import { ReadableStream } from "node:stream/web";
6
+ import { ReadableStream as ReadableStream$1 } from "node:stream/web";
7
7
  import { Route, RouterProvider } from "alepha/router";
8
8
  import { CryptoProvider } from "alepha/crypto";
9
9
  import * as alepha_cache0 from "alepha/cache";
@@ -225,7 +225,7 @@ type ResponseKind = "json" | "text" | "void" | "file" | "any";
225
225
  type ResponseBodyType = string | Buffer | StreamLike | undefined | null | void;
226
226
  type ServerHandler<TConfig extends RequestConfigSchema = RequestConfigSchema> = (request: ServerRequest<TConfig>) => Async<ServerResponseBody<TConfig>>;
227
227
  interface ServerResponse {
228
- body: string | Buffer | ArrayBuffer | Readable | ReadableStream;
228
+ body: string | Buffer | ArrayBuffer | Readable | ReadableStream$1;
229
229
  headers: Record<string, string>;
230
230
  status: number;
231
231
  }
@@ -948,6 +948,290 @@ declare class RoutePrimitive<TConfig extends RequestConfigSchema> extends Pipeli
948
948
  protected onInit(): void;
949
949
  }
950
950
  //#endregion
951
+ //#region ../../src/server/core/primitives/$sse.d.ts
952
+ /**
953
+ * Schema configuration for an SSE endpoint.
954
+ */
955
+ interface SseConfigSchema {
956
+ /**
957
+ * Request body schema.
958
+ */
959
+ body?: TObject;
960
+ /**
961
+ * Path parameters schema.
962
+ */
963
+ params?: TObject;
964
+ /**
965
+ * Query parameters schema.
966
+ */
967
+ query?: TObject;
968
+ /**
969
+ * Request headers schema.
970
+ */
971
+ headers?: TObject;
972
+ /**
973
+ * Schema for the data payload of each SSE event.
974
+ */
975
+ data?: TSchema;
976
+ }
977
+ /**
978
+ * Context object passed to the SSE handler function.
979
+ */
980
+ interface SseHandlerContext<TConfig extends SseConfigSchema> {
981
+ /**
982
+ * Parsed request body.
983
+ */
984
+ body: TConfig["body"] extends TObject ? Static<TConfig["body"]> : any;
985
+ /**
986
+ * Parsed path parameters.
987
+ */
988
+ params: TConfig["params"] extends TObject ? Static<TConfig["params"]> : Record<string, string>;
989
+ /**
990
+ * Parsed query parameters.
991
+ */
992
+ query: TConfig["query"] extends TObject ? Partial<Static<TConfig["query"]>> : Record<string, any>;
993
+ /**
994
+ * Parsed request headers.
995
+ */
996
+ headers: TConfig["headers"] extends TObject ? Static<TConfig["headers"]> : Record<string, string>;
997
+ /**
998
+ * The underlying server request object.
999
+ */
1000
+ request: ServerRequest;
1001
+ /**
1002
+ * Emit an SSE event to the client.
1003
+ */
1004
+ emit: (data: TConfig["data"] extends TSchema ? Static<TConfig["data"]> : any) => void;
1005
+ /**
1006
+ * Close the SSE stream.
1007
+ */
1008
+ close: () => void;
1009
+ }
1010
+ /**
1011
+ * Handler function type for SSE endpoints.
1012
+ */
1013
+ type SseHandler<TConfig extends SseConfigSchema = SseConfigSchema> = (context: SseHandlerContext<TConfig>) => Async<void>;
1014
+ /**
1015
+ * Options for the $sse primitive.
1016
+ */
1017
+ interface SsePrimitiveOptions<TConfig extends SseConfigSchema> extends PipelinePrimitiveOptions {
1018
+ /**
1019
+ * Name of the SSE endpoint.
1020
+ */
1021
+ name?: string;
1022
+ /**
1023
+ * Group SSE endpoints together.
1024
+ */
1025
+ group?: string;
1026
+ /**
1027
+ * Pathname of the route. If not provided, property key is used.
1028
+ */
1029
+ path?: string;
1030
+ /**
1031
+ * The config schema for the SSE endpoint.
1032
+ */
1033
+ schema?: TConfig;
1034
+ /**
1035
+ * A short description of the endpoint. Used for documentation purposes.
1036
+ */
1037
+ description?: string;
1038
+ /**
1039
+ * Disable the SSE endpoint.
1040
+ */
1041
+ disabled?: boolean;
1042
+ /**
1043
+ * Main SSE handler. Receives context with emit/close functions.
1044
+ */
1045
+ handler: SseHandler<TConfig>;
1046
+ }
1047
+ /**
1048
+ * Async iterable stream of SSE events.
1049
+ *
1050
+ * Supports push-based event delivery via `push()`, error propagation
1051
+ * via `fail()`, and clean termination via `end()`.
1052
+ */
1053
+ declare class SseStream<T> implements AsyncIterable<T> {
1054
+ protected queue: T[];
1055
+ protected error: Error | null;
1056
+ protected done: boolean;
1057
+ protected resolve: (() => void) | null;
1058
+ protected listeners: Array<(data: T) => void>;
1059
+ /**
1060
+ * Push a new event into the stream.
1061
+ */
1062
+ push(data: T): void;
1063
+ /**
1064
+ * Signal an error on the stream.
1065
+ */
1066
+ fail(error: Error): void;
1067
+ /**
1068
+ * End the stream gracefully.
1069
+ */
1070
+ end(): void;
1071
+ /**
1072
+ * Subscribe to new events as they arrive.
1073
+ */
1074
+ subscribe(listener: (data: T) => void): () => void;
1075
+ [Symbol.asyncIterator](): AsyncIterator<T>;
1076
+ }
1077
+ /**
1078
+ * Response wrapper for SSE fetch requests.
1079
+ *
1080
+ * Wraps a standard `Response` and parses the `text/event-stream` body
1081
+ * into an async iterable of typed events.
1082
+ */
1083
+ declare class SseFetchResponse<T> implements AsyncIterable<T> {
1084
+ readonly response: Response;
1085
+ constructor(response: Response);
1086
+ /**
1087
+ * HTTP status code of the response.
1088
+ */
1089
+ get status(): number;
1090
+ /**
1091
+ * HTTP status text of the response.
1092
+ */
1093
+ get statusText(): string;
1094
+ /**
1095
+ * Response headers.
1096
+ */
1097
+ get headers(): Headers;
1098
+ [Symbol.asyncIterator](): AsyncIterator<T>;
1099
+ }
1100
+ /**
1101
+ * Creates a Server-Sent Events (SSE) primitive for streaming typed events to clients.
1102
+ *
1103
+ * SSE endpoints provide a unidirectional stream from server to client over HTTP,
1104
+ * with full type safety for event data. The handler receives `emit()` and `close()`
1105
+ * functions to control the stream.
1106
+ *
1107
+ * **Key Features**
1108
+ * - Full TypeScript inference for event data types
1109
+ * - Automatic schema validation using TypeBox
1110
+ * - Convention-based URL generation with customizable paths
1111
+ * - Direct invocation (`run()`) returns an `SseStream` async iterable
1112
+ * - HTTP requests (`fetch()`) returns an `SseFetchResponse` async iterable
1113
+ * - Built-in `text/event-stream` content-type handling
1114
+ *
1115
+ * **URL Generation**
1116
+ *
1117
+ * All `$sse` paths are automatically prefixed with `/api`.
1118
+ *
1119
+ * ```ts
1120
+ * $sse({ path: "/events" }) // POST /api/events
1121
+ * $sse({ path: "/feed/:id" }) // POST /api/feed/:id
1122
+ * ```
1123
+ *
1124
+ * The HTTP method is always POST.
1125
+ *
1126
+ * @example
1127
+ * ```ts
1128
+ * class NotificationController {
1129
+ * events = $sse({
1130
+ * schema: {
1131
+ * data: t.object({
1132
+ * type: t.text(),
1133
+ * message: t.text(),
1134
+ * }),
1135
+ * },
1136
+ * handler: async ({ emit, close }) => {
1137
+ * emit({ type: "welcome", message: "Connected!" });
1138
+ * // ... stream events ...
1139
+ * close();
1140
+ * },
1141
+ * });
1142
+ * }
1143
+ * ```
1144
+ */
1145
+ declare const $sse: {
1146
+ <TConfig extends SseConfigSchema>(options: SsePrimitiveOptions<TConfig>): SsePrimitiveFn<TConfig>;
1147
+ [KIND]: typeof SsePrimitive;
1148
+ };
1149
+ /**
1150
+ * The SSE primitive class extending PipelinePrimitive.
1151
+ *
1152
+ * Registers a POST route that streams `text/event-stream` responses.
1153
+ * Supports direct invocation via `run()` and HTTP via `fetch()`.
1154
+ */
1155
+ declare class SsePrimitive<TConfig extends SseConfigSchema> extends PipelinePrimitive<SsePrimitiveOptions<TConfig>> {
1156
+ protected readonly log: alepha_logger0.Logger;
1157
+ protected readonly settings: Readonly<{
1158
+ prefix: string;
1159
+ }>;
1160
+ protected readonly serverProvider: ServerProvider;
1161
+ protected readonly serverRouterProvider: ServerRouterProvider;
1162
+ protected onInit(): void;
1163
+ /**
1164
+ * Returns the /api prefix.
1165
+ */
1166
+ get prefix(): string;
1167
+ /**
1168
+ * Returns the name of the SSE endpoint.
1169
+ */
1170
+ get name(): string;
1171
+ /**
1172
+ * Returns the group of the SSE endpoint.
1173
+ */
1174
+ get group(): string;
1175
+ /**
1176
+ * Returns the HTTP method. SSE always uses POST.
1177
+ */
1178
+ get method(): RouteMethod;
1179
+ /**
1180
+ * Returns the path of the SSE endpoint.
1181
+ */
1182
+ get path(): string;
1183
+ /**
1184
+ * Returns the schema configuration.
1185
+ */
1186
+ get schema(): TConfig | undefined;
1187
+ /**
1188
+ * Constructs a RequestConfigSchema from the SSE config for route registration.
1189
+ */
1190
+ protected get requestConfigSchema(): RequestConfigSchema | undefined;
1191
+ /**
1192
+ * Call the SSE handler directly and return a typed async iterable stream.
1193
+ * There is no HTTP layer involved.
1194
+ */
1195
+ run(config?: SseRequestEntry<TConfig>): SseStream<SseEventData<TConfig>>;
1196
+ /**
1197
+ * Works like `run`, but always fetches (http request) the route.
1198
+ * Returns an `SseFetchResponse` that can be async-iterated for typed events.
1199
+ */
1200
+ fetch(config?: SseRequestEntry<TConfig>): Promise<SseFetchResponse<SseEventData<TConfig>>>;
1201
+ /**
1202
+ * HTTP handler for the registered route.
1203
+ * Returns a ReadableStream with SSE-formatted events.
1204
+ */
1205
+ protected httpHandler(request: ServerRequest): ReadableStream;
1206
+ /**
1207
+ * Build the fetch URL with path variables and query params.
1208
+ */
1209
+ protected buildFetchUrl(host: string, config?: SseRequestEntry<TConfig>): string;
1210
+ }
1211
+ /**
1212
+ * Combined callable + SsePrimitive interface.
1213
+ */
1214
+ interface SsePrimitiveFn<TConfig extends SseConfigSchema> extends SsePrimitive<TConfig> {
1215
+ (config?: SseRequestEntry<TConfig>): SseStream<SseEventData<TConfig>>;
1216
+ }
1217
+ /**
1218
+ * Infer the event data type from an SSE config schema.
1219
+ */
1220
+ type SseEventData<TConfig extends SseConfigSchema> = TConfig["data"] extends TSchema ? Static<TConfig["data"]> : any;
1221
+ /**
1222
+ * Request entry type for SSE endpoints (body, params, query, headers).
1223
+ */
1224
+ type SseRequestEntry<TConfig extends SseConfigSchema, T = SseRequestEntryContainer<TConfig>> = { [K in keyof T as T[K] extends undefined ? never : K]: T[K] };
1225
+ /**
1226
+ * Full container type for SSE request entries.
1227
+ */
1228
+ type SseRequestEntryContainer<TConfig extends SseConfigSchema> = {
1229
+ body: TConfig["body"] extends TObject ? Static<TConfig["body"]> : undefined;
1230
+ params: TConfig["params"] extends TObject ? Static<TConfig["params"]> : undefined;
1231
+ headers?: TConfig["headers"] extends TObject ? Static<TConfig["headers"]> : Record<string, string>;
1232
+ query?: TConfig["query"] extends TObject ? Partial<Static<TConfig["query"]>> : Record<string, string>;
1233
+ };
1234
+ //#endregion
951
1235
  //#region ../../src/server/core/providers/BunHttpServerProvider.d.ts
952
1236
  declare const envSchema$1: alepha.TObject<{
953
1237
  SERVER_PORT: alepha.TInteger;
@@ -1054,7 +1338,7 @@ declare class ServerCompressProvider {
1054
1338
  * Create a compressed stream that flushes after each chunk.
1055
1339
  * This is essential for streaming SSR - ensures each chunk is sent immediately.
1056
1340
  */
1057
- protected createFlushingCompressStream(input: ReadableStream, createCompressor: (options?: any) => Transform, encoding: string, params: Record<number, any>): ReadableStream<Uint8Array>;
1341
+ protected createFlushingCompressStream(input: ReadableStream$1, createCompressor: (options?: any) => Transform, encoding: string, params: Record<number, any>): ReadableStream$1<Uint8Array>;
1058
1342
  protected getParams(encoding: keyof typeof ServerCompressProvider.compressors): Record<number, any>;
1059
1343
  protected setHeaders(response: ServerResponse$2, encoding: keyof typeof ServerCompressProvider.compressors): void;
1060
1344
  }
@@ -1275,5 +1559,5 @@ declare module "alepha" {
1275
1559
  */
1276
1560
  declare const AlephaServer: alepha.Service<alepha.Module>;
1277
1561
  //#endregion
1278
- export { $action, $circuit, $middleware, $route, ActionPrimitive, ActionPrimitiveFn, ActionPrimitiveOptions, AlephaServer, BadRequestError, BunHttpServerProvider, CircuitBreakerOptions, ClientRequestEntry, ClientRequestEntryContainer, ClientRequestOptions, ClientRequestResponse, CompressOptions, ConflictError, CspDirectives, CspOptions, ErrorSchema, FetchActionArgs, FetchOptions, FetchResponse, ForbiddenError, HelmetOptions, HstsOptions, HttpAction, HttpClient, HttpClientPendingRequests, HttpError, HttpErrorLike, MultipartOptions, NodeHttpServerProvider, NodeRequestEvent, NotFoundError, Ok, PushMiddlewareOptions, RequestConfigSchema, RequestGeo, RequestInitWithOptions, RequestReferer, ResponseBodyType, ResponseKind, RouteMethod, RoutePrimitive, RoutePrimitiveOptions, ServerActionHandler, ServerActionRequest, ServerApiOptions, ServerCompressProvider, ServerHandler, ServerHelmetProvider, ServerLoggerProvider, ServerMiddlewarePrimitive, ServerMiddlewarePrimitiveOptions, ServerMultipartProvider, ServerNotReadyProvider, ServerProvider, ServerRawRequest, ServerReply, ServerRequest, ServerRequestConfig, ServerRequestConfigEntry, ServerRequestData, ServerResponse, ServerResponseBody, ServerRoute, ServerRouteInput, ServerRouteMatcher, ServerRouteRequestHandler, ServerRouterProvider, ServerTimingProvider, TRequestBody, TResponseBody, UnauthorizedError, UserAgentInfo, UserAgentParser, ValidationError, WebRequestEvent, compressOptions, errorNameByStatus, errorSchema, helmetOptions, isHttpError, isMultipart, multipartOptions, okSchema, routeMethods, serverApiOptions };
1562
+ export { $action, $circuit, $middleware, $route, $sse, ActionPrimitive, ActionPrimitiveFn, ActionPrimitiveOptions, AlephaServer, BadRequestError, BunHttpServerProvider, CircuitBreakerOptions, ClientRequestEntry, ClientRequestEntryContainer, ClientRequestOptions, ClientRequestResponse, CompressOptions, ConflictError, CspDirectives, CspOptions, ErrorSchema, FetchActionArgs, FetchOptions, FetchResponse, ForbiddenError, HelmetOptions, HstsOptions, HttpAction, HttpClient, HttpClientPendingRequests, HttpError, HttpErrorLike, MultipartOptions, NodeHttpServerProvider, NodeRequestEvent, NotFoundError, Ok, PushMiddlewareOptions, RequestConfigSchema, RequestGeo, RequestInitWithOptions, RequestReferer, ResponseBodyType, ResponseKind, RouteMethod, RoutePrimitive, RoutePrimitiveOptions, ServerActionHandler, ServerActionRequest, ServerApiOptions, ServerCompressProvider, ServerHandler, ServerHelmetProvider, ServerLoggerProvider, ServerMiddlewarePrimitive, ServerMiddlewarePrimitiveOptions, ServerMultipartProvider, ServerNotReadyProvider, ServerProvider, ServerRawRequest, ServerReply, ServerRequest, ServerRequestConfig, ServerRequestConfigEntry, ServerRequestData, ServerResponse, ServerResponseBody, ServerRoute, ServerRouteInput, ServerRouteMatcher, ServerRouteRequestHandler, ServerRouterProvider, ServerTimingProvider, SseConfigSchema, SseEventData, SseFetchResponse, SseHandler, SseHandlerContext, SsePrimitive, SsePrimitiveFn, SsePrimitiveOptions, SseRequestEntry, SseRequestEntryContainer, SseStream, TRequestBody, TResponseBody, UnauthorizedError, UserAgentInfo, UserAgentParser, ValidationError, WebRequestEvent, compressOptions, errorNameByStatus, errorSchema, helmetOptions, isHttpError, isMultipart, multipartOptions, okSchema, routeMethods, serverApiOptions };
1279
1563
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/core/schemas/errorSchema.ts","../../../src/server/core/errors/HttpError.ts","../../../src/server/core/constants/routeMethods.ts","../../../src/server/core/helpers/ServerReply.ts","../../../src/server/core/services/UserAgentParser.ts","../../../src/server/core/interfaces/ServerRequest.ts","../../../src/server/core/services/ServerRequestParser.ts","../../../src/server/core/providers/ServerTimingProvider.ts","../../../src/server/core/providers/ServerRouterProvider.ts","../../../src/server/core/providers/ServerProvider.ts","../../../src/server/core/services/HttpClient.ts","../../../src/server/core/primitives/$action.ts","../../../src/server/core/errors/BadRequestError.ts","../../../src/server/core/errors/ConflictError.ts","../../../src/server/core/errors/ForbiddenError.ts","../../../src/server/core/errors/NotFoundError.ts","../../../src/server/core/errors/UnauthorizedError.ts","../../../src/server/core/errors/ValidationError.ts","../../../src/server/core/helpers/isMultipart.ts","../../../src/server/core/schemas/okSchema.ts","../../../src/server/core/primitives/$circuit.ts","../../../src/server/core/primitives/$middleware.ts","../../../src/server/core/primitives/$route.ts","../../../src/server/core/providers/BunHttpServerProvider.ts","../../../src/server/core/providers/NodeHttpServerProvider.ts","../../../src/server/core/providers/ServerCompressProvider.ts","../../../src/server/core/providers/ServerHelmetProvider.ts","../../../src/server/core/providers/ServerLoggerProvider.ts","../../../src/server/core/providers/ServerMultipartProvider.ts","../../../src/server/core/providers/ServerNotReadyProvider.ts","../../../src/server/core/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/core/schemas/errorSchema.ts","../../../src/server/core/errors/HttpError.ts","../../../src/server/core/constants/routeMethods.ts","../../../src/server/core/helpers/ServerReply.ts","../../../src/server/core/services/UserAgentParser.ts","../../../src/server/core/interfaces/ServerRequest.ts","../../../src/server/core/services/ServerRequestParser.ts","../../../src/server/core/providers/ServerTimingProvider.ts","../../../src/server/core/providers/ServerRouterProvider.ts","../../../src/server/core/providers/ServerProvider.ts","../../../src/server/core/services/HttpClient.ts","../../../src/server/core/primitives/$action.ts","../../../src/server/core/errors/BadRequestError.ts","../../../src/server/core/errors/ConflictError.ts","../../../src/server/core/errors/ForbiddenError.ts","../../../src/server/core/errors/NotFoundError.ts","../../../src/server/core/errors/UnauthorizedError.ts","../../../src/server/core/errors/ValidationError.ts","../../../src/server/core/helpers/isMultipart.ts","../../../src/server/core/schemas/okSchema.ts","../../../src/server/core/primitives/$circuit.ts","../../../src/server/core/primitives/$middleware.ts","../../../src/server/core/primitives/$route.ts","../../../src/server/core/primitives/$sse.ts","../../../src/server/core/providers/BunHttpServerProvider.ts","../../../src/server/core/providers/NodeHttpServerProvider.ts","../../../src/server/core/providers/ServerCompressProvider.ts","../../../src/server/core/providers/ServerHelmetProvider.ts","../../../src/server/core/providers/ServerLoggerProvider.ts","../../../src/server/core/providers/ServerMultipartProvider.ts","../../../src/server/core/providers/ServerNotReadyProvider.ts","../../../src/server/core/index.ts"],"mappings":"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"}