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
@@ -1594,6 +1594,378 @@ var RoutePrimitive = class extends PipelinePrimitive {
1594
1594
  };
1595
1595
  $route[KIND] = RoutePrimitive;
1596
1596
 
1597
+ //#endregion
1598
+ //#region ../../src/server/core/primitives/$sse.ts
1599
+ /**
1600
+ * Async iterable stream of SSE events.
1601
+ *
1602
+ * Supports push-based event delivery via `push()`, error propagation
1603
+ * via `fail()`, and clean termination via `end()`.
1604
+ */
1605
+ var SseStream = class {
1606
+ queue = [];
1607
+ error = null;
1608
+ done = false;
1609
+ resolve = null;
1610
+ listeners = [];
1611
+ /**
1612
+ * Push a new event into the stream.
1613
+ */
1614
+ push(data) {
1615
+ if (this.done) return;
1616
+ this.queue.push(data);
1617
+ for (const listener of this.listeners) listener(data);
1618
+ if (this.resolve) {
1619
+ this.resolve();
1620
+ this.resolve = null;
1621
+ }
1622
+ }
1623
+ /**
1624
+ * Signal an error on the stream.
1625
+ */
1626
+ fail(error) {
1627
+ this.error = error;
1628
+ this.done = true;
1629
+ if (this.resolve) {
1630
+ this.resolve();
1631
+ this.resolve = null;
1632
+ }
1633
+ }
1634
+ /**
1635
+ * End the stream gracefully.
1636
+ */
1637
+ end() {
1638
+ this.done = true;
1639
+ if (this.resolve) {
1640
+ this.resolve();
1641
+ this.resolve = null;
1642
+ }
1643
+ }
1644
+ /**
1645
+ * Subscribe to new events as they arrive.
1646
+ */
1647
+ subscribe(listener) {
1648
+ this.listeners.push(listener);
1649
+ return () => {
1650
+ const idx = this.listeners.indexOf(listener);
1651
+ if (idx >= 0) this.listeners.splice(idx, 1);
1652
+ };
1653
+ }
1654
+ async *[Symbol.asyncIterator]() {
1655
+ while (true) {
1656
+ while (this.queue.length > 0) yield this.queue.shift();
1657
+ if (this.error) throw this.error;
1658
+ if (this.done) return;
1659
+ await new Promise((r) => {
1660
+ this.resolve = r;
1661
+ });
1662
+ }
1663
+ }
1664
+ };
1665
+ /**
1666
+ * Response wrapper for SSE fetch requests.
1667
+ *
1668
+ * Wraps a standard `Response` and parses the `text/event-stream` body
1669
+ * into an async iterable of typed events.
1670
+ */
1671
+ var SseFetchResponse = class {
1672
+ response;
1673
+ constructor(response) {
1674
+ this.response = response;
1675
+ }
1676
+ /**
1677
+ * HTTP status code of the response.
1678
+ */
1679
+ get status() {
1680
+ return this.response.status;
1681
+ }
1682
+ /**
1683
+ * HTTP status text of the response.
1684
+ */
1685
+ get statusText() {
1686
+ return this.response.statusText;
1687
+ }
1688
+ /**
1689
+ * Response headers.
1690
+ */
1691
+ get headers() {
1692
+ return this.response.headers;
1693
+ }
1694
+ async *[Symbol.asyncIterator]() {
1695
+ const reader = this.response.body?.getReader();
1696
+ if (!reader) return;
1697
+ const decoder = new TextDecoder();
1698
+ let buffer = "";
1699
+ try {
1700
+ while (true) {
1701
+ const { done, value } = await reader.read();
1702
+ if (done) break;
1703
+ buffer += decoder.decode(value, { stream: true });
1704
+ const lines = buffer.split("\n");
1705
+ buffer = lines.pop() ?? "";
1706
+ for (const line of lines) if (line.startsWith("data: ")) {
1707
+ const data = line.slice(6);
1708
+ try {
1709
+ yield JSON.parse(data);
1710
+ } catch {}
1711
+ }
1712
+ }
1713
+ if (buffer.startsWith("data: ")) {
1714
+ const data = buffer.slice(6);
1715
+ try {
1716
+ yield JSON.parse(data);
1717
+ } catch {}
1718
+ }
1719
+ } finally {
1720
+ reader.releaseLock();
1721
+ }
1722
+ }
1723
+ };
1724
+ /**
1725
+ * Creates a Server-Sent Events (SSE) primitive for streaming typed events to clients.
1726
+ *
1727
+ * SSE endpoints provide a unidirectional stream from server to client over HTTP,
1728
+ * with full type safety for event data. The handler receives `emit()` and `close()`
1729
+ * functions to control the stream.
1730
+ *
1731
+ * **Key Features**
1732
+ * - Full TypeScript inference for event data types
1733
+ * - Automatic schema validation using TypeBox
1734
+ * - Convention-based URL generation with customizable paths
1735
+ * - Direct invocation (`run()`) returns an `SseStream` async iterable
1736
+ * - HTTP requests (`fetch()`) returns an `SseFetchResponse` async iterable
1737
+ * - Built-in `text/event-stream` content-type handling
1738
+ *
1739
+ * **URL Generation**
1740
+ *
1741
+ * All `$sse` paths are automatically prefixed with `/api`.
1742
+ *
1743
+ * ```ts
1744
+ * $sse({ path: "/events" }) // POST /api/events
1745
+ * $sse({ path: "/feed/:id" }) // POST /api/feed/:id
1746
+ * ```
1747
+ *
1748
+ * The HTTP method is always POST.
1749
+ *
1750
+ * @example
1751
+ * ```ts
1752
+ * class NotificationController {
1753
+ * events = $sse({
1754
+ * schema: {
1755
+ * data: t.object({
1756
+ * type: t.text(),
1757
+ * message: t.text(),
1758
+ * }),
1759
+ * },
1760
+ * handler: async ({ emit, close }) => {
1761
+ * emit({ type: "welcome", message: "Connected!" });
1762
+ * // ... stream events ...
1763
+ * close();
1764
+ * },
1765
+ * });
1766
+ * }
1767
+ * ```
1768
+ */
1769
+ const $sse = (options) => {
1770
+ const instance = createPrimitive(SsePrimitive, options);
1771
+ const fn = (config) => {
1772
+ return instance.run(config);
1773
+ };
1774
+ Object.defineProperty(fn, "name", { get() {
1775
+ return instance.options.name || instance.config.propertyKey;
1776
+ } });
1777
+ return Object.setPrototypeOf(fn, instance);
1778
+ };
1779
+ /**
1780
+ * The SSE primitive class extending PipelinePrimitive.
1781
+ *
1782
+ * Registers a POST route that streams `text/event-stream` responses.
1783
+ * Supports direct invocation via `run()` and HTTP via `fetch()`.
1784
+ */
1785
+ var SsePrimitive = class extends PipelinePrimitive {
1786
+ log = $logger();
1787
+ settings = $use(serverApiOptions);
1788
+ serverProvider = $inject(ServerProvider);
1789
+ serverRouterProvider = $inject(ServerRouterProvider);
1790
+ onInit() {
1791
+ if (this.options.disabled) {
1792
+ this.log.debug(`SSE endpoint '${this.name}' is disabled. It won't be available in the API.`);
1793
+ return;
1794
+ }
1795
+ this.serverRouterProvider.createRoute({
1796
+ method: this.method,
1797
+ path: `${this.prefix}${this.path}`,
1798
+ schema: this.requestConfigSchema,
1799
+ handler: (request) => this.httpHandler(request)
1800
+ });
1801
+ }
1802
+ /**
1803
+ * Returns the /api prefix.
1804
+ */
1805
+ get prefix() {
1806
+ return this.settings.prefix;
1807
+ }
1808
+ /**
1809
+ * Returns the name of the SSE endpoint.
1810
+ */
1811
+ get name() {
1812
+ return this.options.name || this.config.propertyKey;
1813
+ }
1814
+ /**
1815
+ * Returns the group of the SSE endpoint.
1816
+ */
1817
+ get group() {
1818
+ return this.options.group || this.config.service.name;
1819
+ }
1820
+ /**
1821
+ * Returns the HTTP method. SSE always uses POST.
1822
+ */
1823
+ get method() {
1824
+ return "POST";
1825
+ }
1826
+ /**
1827
+ * Returns the path of the SSE endpoint.
1828
+ */
1829
+ get path() {
1830
+ if (this.options.path) return this.options.path;
1831
+ let path = `/${this.name}`;
1832
+ if (this.options.schema?.params) for (const [key] of Object.entries(this.options.schema.params.properties)) path += `/:${key}`;
1833
+ return path;
1834
+ }
1835
+ /**
1836
+ * Returns the schema configuration.
1837
+ */
1838
+ get schema() {
1839
+ return this.options.schema;
1840
+ }
1841
+ /**
1842
+ * Constructs a RequestConfigSchema from the SSE config for route registration.
1843
+ */
1844
+ get requestConfigSchema() {
1845
+ if (!this.options.schema) return void 0;
1846
+ return {
1847
+ body: this.options.schema.body,
1848
+ params: this.options.schema.params,
1849
+ query: this.options.schema.query,
1850
+ headers: this.options.schema.headers
1851
+ };
1852
+ }
1853
+ /**
1854
+ * Call the SSE handler directly and return a typed async iterable stream.
1855
+ * There is no HTTP layer involved.
1856
+ */
1857
+ run(config) {
1858
+ if (this.options.disabled) throw new AlephaError(`SSE endpoint '${this.name}' is disabled.`);
1859
+ const stream = new SseStream();
1860
+ const { body, params = {}, query = {}, headers = {} } = config ?? {};
1861
+ const url = new URL(`http://localhost${this.path ?? ""}`);
1862
+ const reply = new ServerReply();
1863
+ const context = {
1864
+ body,
1865
+ params,
1866
+ query,
1867
+ headers,
1868
+ request: {
1869
+ method: this.method,
1870
+ url,
1871
+ body,
1872
+ params,
1873
+ query,
1874
+ headers,
1875
+ reply,
1876
+ metadata: {
1877
+ routePath: `${this.prefix}${this.path}`,
1878
+ routeMethod: this.method
1879
+ }
1880
+ },
1881
+ emit: (data) => stream.push(data),
1882
+ close: () => stream.end()
1883
+ };
1884
+ const handlerFn = this.handler.run.bind(this.handler);
1885
+ Promise.resolve().then(() => handlerFn(context)).then(() => {
1886
+ stream.end();
1887
+ }).catch((error) => {
1888
+ stream.fail(error);
1889
+ });
1890
+ return stream;
1891
+ }
1892
+ /**
1893
+ * Works like `run`, but always fetches (http request) the route.
1894
+ * Returns an `SseFetchResponse` that can be async-iterated for typed events.
1895
+ */
1896
+ async fetch(config) {
1897
+ const host = this.serverProvider.hostname;
1898
+ const url = this.buildFetchUrl(host, config);
1899
+ const { body, headers: configHeaders = {} } = config ?? {};
1900
+ const requestInit = {
1901
+ method: "POST",
1902
+ headers: {
1903
+ accept: "text/event-stream",
1904
+ "content-type": "application/json",
1905
+ ...configHeaders
1906
+ }
1907
+ };
1908
+ if (body !== void 0) requestInit.body = JSON.stringify(body);
1909
+ return new SseFetchResponse(await fetch(url, requestInit));
1910
+ }
1911
+ /**
1912
+ * HTTP handler for the registered route.
1913
+ * Returns a ReadableStream with SSE-formatted events.
1914
+ */
1915
+ httpHandler(request) {
1916
+ const reply = request.reply;
1917
+ reply.setHeader("content-type", "text/event-stream");
1918
+ reply.setHeader("cache-control", "no-cache");
1919
+ reply.setHeader("connection", "keep-alive");
1920
+ const handlerFn = this.handler.run.bind(this.handler);
1921
+ return new ReadableStream({ start: (controller) => {
1922
+ const encoder = new TextEncoder();
1923
+ const context = {
1924
+ body: request.body,
1925
+ params: request.params,
1926
+ query: request.query,
1927
+ headers: request.headers,
1928
+ request,
1929
+ emit: (data) => {
1930
+ try {
1931
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify(data)}\n\n`));
1932
+ } catch {}
1933
+ },
1934
+ close: () => {
1935
+ try {
1936
+ controller.close();
1937
+ } catch {}
1938
+ }
1939
+ };
1940
+ Promise.resolve().then(() => handlerFn(context)).then(() => {
1941
+ try {
1942
+ controller.close();
1943
+ } catch {}
1944
+ }).catch((error) => {
1945
+ try {
1946
+ controller.error(error);
1947
+ } catch {}
1948
+ });
1949
+ } });
1950
+ }
1951
+ /**
1952
+ * Build the fetch URL with path variables and query params.
1953
+ */
1954
+ buildFetchUrl(host, config) {
1955
+ let url = `${host}${this.prefix}${this.path}`;
1956
+ const { params, query } = config ?? {};
1957
+ if (params && typeof params === "object") for (const [key, value] of Object.entries(params)) url = url.replace(`:${key}`, String(value));
1958
+ if (query && typeof query === "object") {
1959
+ const searchParams = new URLSearchParams();
1960
+ for (const [key, value] of Object.entries(query)) if (value !== void 0) searchParams.set(key, String(value));
1961
+ const qs = searchParams.toString();
1962
+ if (qs) url += `?${qs}`;
1963
+ }
1964
+ return url;
1965
+ }
1966
+ };
1967
+ $sse[KIND] = SsePrimitive;
1968
+
1597
1969
  //#endregion
1598
1970
  //#region ../../src/server/core/providers/BunHttpServerProvider.ts
1599
1971
  const envSchema$1 = t.object({
@@ -2606,7 +2978,8 @@ const AlephaServer = $module({
2606
2978
  primitives: [
2607
2979
  $route,
2608
2980
  $action,
2609
- $middleware
2981
+ $middleware,
2982
+ $sse
2610
2983
  ],
2611
2984
  services: [
2612
2985
  ServerProvider,
@@ -2649,5 +3022,5 @@ const AlephaServer = $module({
2649
3022
  });
2650
3023
 
2651
3024
  //#endregion
2652
- export { $action, $circuit, $middleware, $route, ActionPrimitive, AlephaServer, BadRequestError, BunHttpServerProvider, ConflictError, ForbiddenError, HttpClient, HttpError, NodeHttpServerProvider, NotFoundError, RoutePrimitive, ServerCompressProvider, ServerHelmetProvider, ServerLoggerProvider, ServerMiddlewarePrimitive, ServerMultipartProvider, ServerNotReadyProvider, ServerProvider, ServerReply, ServerRouterProvider, ServerTimingProvider, UnauthorizedError, UserAgentParser, ValidationError, compressOptions, errorNameByStatus, errorSchema, helmetOptions, isHttpError, isMultipart, multipartOptions, okSchema, routeMethods, serverApiOptions };
3025
+ export { $action, $circuit, $middleware, $route, $sse, ActionPrimitive, AlephaServer, BadRequestError, BunHttpServerProvider, ConflictError, ForbiddenError, HttpClient, HttpError, NodeHttpServerProvider, NotFoundError, RoutePrimitive, ServerCompressProvider, ServerHelmetProvider, ServerLoggerProvider, ServerMiddlewarePrimitive, ServerMultipartProvider, ServerNotReadyProvider, ServerProvider, ServerReply, ServerRouterProvider, ServerTimingProvider, SseFetchResponse, SsePrimitive, SseStream, UnauthorizedError, UserAgentParser, ValidationError, compressOptions, errorNameByStatus, errorSchema, helmetOptions, isHttpError, isMultipart, multipartOptions, okSchema, routeMethods, serverApiOptions };
2653
3026
  //# sourceMappingURL=index.js.map