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
@@ -78,39 +78,61 @@ export class PackageManagerUtils {
78
78
  /**
79
79
  * Detect workspace context when inside a monorepo package.
80
80
  *
81
- * Checks if we're inside a workspace package (e.g., packages/my-pkg or apps/my-app)
82
- * by looking 2 levels up for workspace indicators like lockfiles and config files.
81
+ * Checks if we're inside a workspace package by walking up to 3 levels
82
+ * for workspace indicators like lockfiles and config files.
83
+ * This covers both standard layouts (packages/my-pkg) and deeper nesting
84
+ * (packages/scope/my-pkg).
83
85
  *
84
86
  * @param root - The current package directory
85
87
  * @returns Workspace context with root path, PM, and config presence
86
88
  */
87
89
  public async getWorkspaceContext(root: string): Promise<WorkspaceContext> {
88
- // Workspace root is 2 levels up (e.g., packages/my-pkg → ..)
89
- const workspaceRoot = this.fs.join(root, "..", "..");
90
+ const noContext: WorkspaceContext = {
91
+ isPackage: false,
92
+ workspaceRoot: null,
93
+ packageManager: null,
94
+ config: { biomeJson: false, editorconfig: false, tsconfigJson: false },
95
+ };
96
+
97
+ // Walk up 2–3 levels (covers packages/pkg and packages/scope/pkg)
98
+ for (let depth = 2; depth <= 3; depth++) {
99
+ const segments = Array.from({ length: depth }, () => "..");
100
+ const candidate = this.fs.join(root, ...segments);
101
+
102
+ // Don't check above filesystem root
103
+ if (candidate === root) break;
104
+
105
+ const result = await this.checkWorkspaceRoot(candidate);
106
+ if (result) return result;
107
+ }
90
108
 
91
- // Check for lockfiles to detect PM
109
+ return noContext;
110
+ }
111
+
112
+ protected async checkWorkspaceRoot(
113
+ candidate: string,
114
+ ): Promise<WorkspaceContext | null> {
92
115
  const [hasYarnLock, hasPnpmLock, hasNpmLock, hasBunLock] =
93
116
  await Promise.all([
94
- this.fs.exists(this.fs.join(workspaceRoot, "yarn.lock")),
95
- this.fs.exists(this.fs.join(workspaceRoot, "pnpm-lock.yaml")),
96
- this.fs.exists(this.fs.join(workspaceRoot, "package-lock.json")),
97
- this.fs.exists(this.fs.join(workspaceRoot, "bun.lock")),
117
+ this.fs.exists(this.fs.join(candidate, "yarn.lock")),
118
+ this.fs.exists(this.fs.join(candidate, "pnpm-lock.yaml")),
119
+ this.fs.exists(this.fs.join(candidate, "package-lock.json")),
120
+ this.fs.exists(this.fs.join(candidate, "bun.lock")),
98
121
  ]);
99
122
 
100
- // Check for config files
101
- const [hasBiome, hasEditorConfig, hasTsConfig, hasWorkspacePackageJson] =
123
+ const hasLockfile = hasYarnLock || hasPnpmLock || hasNpmLock || hasBunLock;
124
+ if (!hasLockfile) return null;
125
+
126
+ const [hasBiome, hasEditorConfig, hasTsConfig, hasPackageJson] =
102
127
  await Promise.all([
103
- this.fs.exists(this.fs.join(workspaceRoot, "biome.json")),
104
- this.fs.exists(this.fs.join(workspaceRoot, ".editorconfig")),
105
- this.fs.exists(this.fs.join(workspaceRoot, "tsconfig.json")),
106
- this.fs.exists(this.fs.join(workspaceRoot, "package.json")),
128
+ this.fs.exists(this.fs.join(candidate, "biome.json")),
129
+ this.fs.exists(this.fs.join(candidate, ".editorconfig")),
130
+ this.fs.exists(this.fs.join(candidate, "tsconfig.json")),
131
+ this.fs.exists(this.fs.join(candidate, "package.json")),
107
132
  ]);
108
133
 
109
- // Determine if this looks like a workspace root
110
- const hasLockfile = hasYarnLock || hasPnpmLock || hasNpmLock || hasBunLock;
111
- const isPackage = hasLockfile && hasWorkspacePackageJson;
134
+ if (!hasPackageJson) return null;
112
135
 
113
- // Detect package manager from lockfile
114
136
  let packageManager: "yarn" | "pnpm" | "npm" | "bun" | null = null;
115
137
  if (hasYarnLock) packageManager = "yarn";
116
138
  else if (hasPnpmLock) packageManager = "pnpm";
@@ -118,8 +140,8 @@ export class PackageManagerUtils {
118
140
  else if (hasNpmLock) packageManager = "npm";
119
141
 
120
142
  return {
121
- isPackage,
122
- workspaceRoot: isPackage ? workspaceRoot : null,
143
+ isPackage: true,
144
+ workspaceRoot: candidate,
123
145
  packageManager,
124
146
  config: {
125
147
  biomeJson: hasBiome,
@@ -1,7 +1,8 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { basename, dirname } from "node:path";
3
- import { $inject } from "alepha";
4
- import { $logger } from "alepha/logger";
3
+ import { $inject, AlephaError } from "alepha";
4
+ import type { RunnerMethod } from "alepha/command";
5
+ import { $logger, ConsoleColorProvider } from "alepha/logger";
5
6
  import { FileSystemProvider } from "alepha/system";
6
7
  import { cliAssets } from "../assets.ts";
7
8
  import { type AgentMdType, agentMd } from "../templates/agentMd.ts";
@@ -39,6 +40,7 @@ import {
39
40
  */
40
41
  export class ProjectScaffolder {
41
42
  protected readonly log = $logger();
43
+ protected readonly colors = $inject(ConsoleColorProvider);
42
44
  protected readonly fs = $inject(FileSystemProvider);
43
45
  protected readonly pm = $inject(PackageManagerUtils);
44
46
  protected readonly utils = $inject(AlephaCliUtils);
@@ -385,6 +387,216 @@ export class ProjectScaffolder {
385
387
  }
386
388
  }
387
389
 
390
+ // ===========================================
391
+ // Full Init Orchestration
392
+ // ===========================================
393
+
394
+ /**
395
+ * Full project init — scaffolds files, installs deps, sets up PM and git.
396
+ */
397
+ async init({
398
+ run,
399
+ root,
400
+ flags,
401
+ args,
402
+ }: {
403
+ run: RunnerMethod;
404
+ root: string;
405
+ flags: {
406
+ pm?: "yarn" | "npm" | "pnpm" | "bun";
407
+ api?: boolean;
408
+ react?: boolean;
409
+ ui?: boolean;
410
+ auth?: boolean;
411
+ admin?: boolean;
412
+ tailwind?: boolean;
413
+ test?: boolean;
414
+ force?: boolean;
415
+ };
416
+ args?: string;
417
+ }) {
418
+ if (args) {
419
+ root = this.fs.join(root, args);
420
+ await this.fs.mkdir(root, { force: true });
421
+ }
422
+
423
+ // Flag cascading: --admin → --auth → --ui → --react, --api
424
+ if (flags.admin) {
425
+ flags.auth = true;
426
+ }
427
+ if (flags.auth) {
428
+ flags.api = true;
429
+ flags.ui = true;
430
+ }
431
+ if (flags.ui) {
432
+ flags.react = true;
433
+ }
434
+ if (flags.tailwind) {
435
+ flags.react = true;
436
+ }
437
+
438
+ // When codegen flags are set, target directory must be empty (unless --force)
439
+ const hasCodegenFlags =
440
+ flags.admin ||
441
+ flags.auth ||
442
+ flags.api ||
443
+ flags.ui ||
444
+ flags.react ||
445
+ flags.tailwind;
446
+ if (hasCodegenFlags && !flags.force) {
447
+ const files = await this.fs.ls(root);
448
+ // Allow a directory that only has package.json (common for monorepo packages)
449
+ const meaningful = files.filter((f) => f !== "package.json");
450
+ if (meaningful.length > 0) {
451
+ throw new AlephaError(
452
+ `Target directory is not empty (${root}). Use --force to overwrite existing files.`,
453
+ );
454
+ }
455
+ }
456
+
457
+ // Detect workspace context (are we inside packages/ or apps/ of a monorepo?)
458
+ const workspace = await this.pm.getWorkspaceContext(root);
459
+
460
+ // Detect agent type: claude CLI → CLAUDE.md, else → AGENTS.md
461
+ let agentType: "claude" | "agents" | false = false;
462
+ if (!workspace.isPackage) {
463
+ const hasClaudeCli = await this.utils.isInstalledAsync("claude");
464
+ agentType = hasClaudeCli ? "claude" : "agents";
465
+ }
466
+
467
+ const isExpo = await this.pm.hasExpo(root);
468
+
469
+ // Get git email for admin auto-promotion (if auth enabled)
470
+ const adminEmail = flags.auth ? await this.utils.getGitEmail() : undefined;
471
+
472
+ const force = !!flags.force;
473
+
474
+ await run({
475
+ name: "ensuring configuration files",
476
+ handler: async () => {
477
+ await this.ensureConfig(root, {
478
+ force,
479
+ packageJson: { ...flags, isPackage: workspace.isPackage },
480
+ // Skip workspace-level configs if they exist at workspace root
481
+ tsconfigJson: !workspace.config.tsconfigJson,
482
+ biomeJson: !workspace.config.biomeJson,
483
+ editorconfig: !workspace.config.editorconfig,
484
+ agentMd: agentType ? { type: agentType } : false,
485
+ });
486
+
487
+ // Create alepha.config.ts with documented options
488
+ await this.ensureAlephaConfig(root, { force });
489
+
490
+ // Create project structure based on flags
491
+ await this.ensureMainServerTs(root, {
492
+ api: !!flags.api,
493
+ react: !!flags.react && !isExpo,
494
+ force,
495
+ });
496
+ if (flags.api) {
497
+ await this.ensureApiProject(root, {
498
+ auth: !!flags.auth,
499
+ adminEmail,
500
+ force,
501
+ });
502
+ }
503
+ if (flags.react && !isExpo) {
504
+ await this.ensureWebProject(root, {
505
+ api: !!flags.api,
506
+ ui: !!flags.ui,
507
+ auth: !!flags.auth,
508
+ admin: !!flags.admin,
509
+ tailwind: !!flags.tailwind,
510
+ force,
511
+ });
512
+ }
513
+ },
514
+ });
515
+
516
+ // Use workspace PM if detected, otherwise detect from current root
517
+ const pmName = await this.pm.getPackageManager(
518
+ workspace.workspaceRoot ?? root,
519
+ flags.pm ?? workspace.packageManager ?? undefined,
520
+ );
521
+
522
+ // Only setup PM files if not in a workspace package
523
+ if (!workspace.isPackage) {
524
+ if (pmName === "yarn") {
525
+ await this.pm.ensureYarn(root);
526
+ await run("yarn set version stable", { root });
527
+ } else if (pmName === "bun") {
528
+ await this.pm.ensureBun(root);
529
+ } else if (pmName === "pnpm") {
530
+ await this.pm.ensurePnpm(root);
531
+ } else {
532
+ await this.pm.ensureNpm(root);
533
+ }
534
+ }
535
+
536
+ // Run install from workspace root if in a package, otherwise from current root
537
+ const installRoot = workspace.workspaceRoot ?? root;
538
+ await run(`${pmName} install`, {
539
+ alias: `installing dependencies with ${pmName}`,
540
+ root: installRoot,
541
+ });
542
+
543
+ // Create test directory if --test flag is set (vitest is in package.json)
544
+ if (flags.test) {
545
+ await this.ensureTestDir(root);
546
+ }
547
+
548
+ await run(`${pmName} run lint`, {
549
+ alias: "running linter",
550
+ root: installRoot,
551
+ });
552
+
553
+ // Initialize git repository if not in a workspace package
554
+ if (!workspace.isPackage) {
555
+ const gitInitialized = await this.ensureGitRepo(root, {
556
+ force,
557
+ });
558
+ if (gitInitialized) {
559
+ await run("git add .", {
560
+ alias: "staging generated files",
561
+ root,
562
+ });
563
+ }
564
+ }
565
+
566
+ // Don't show success message if no path arg, e.g. just "alepha init" to re-configure current dir
567
+ if (!args) {
568
+ return;
569
+ }
570
+
571
+ // We must end the run context in order to log success message
572
+ run.end();
573
+
574
+ // Success message
575
+ const projectName = args || ".";
576
+ const pmRun = pmName === "npm" ? "npm run" : pmName;
577
+ const c = this.colors;
578
+
579
+ this.log.info("");
580
+ this.log.info(` ${c.set("GREEN", "✓")} Project ready!`);
581
+ this.log.info("");
582
+ this.log.info(
583
+ ` ${c.set("GREY_DARK", "$")} cd ${c.set("CYAN", projectName)}`,
584
+ );
585
+ this.log.info(
586
+ ` ${c.set("GREY_DARK", "$")} ${c.set("CYAN", `${pmRun} dev`)}`,
587
+ );
588
+
589
+ if (adminEmail) {
590
+ this.log.info("");
591
+ this.log.info(` Admin email: ${c.set("GREEN", adminEmail)}`);
592
+ this.log.info(
593
+ ` ${c.set("GREY_DARK", "(from git config, change in src/api/AppSecurity.ts)")}`,
594
+ );
595
+ }
596
+
597
+ this.log.info("");
598
+ }
599
+
388
600
  // ===========================================
389
601
  // Helpers
390
602
  // ===========================================
@@ -1,5 +1,6 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { existsSync, mkdirSync, writeFileSync } from "node:fs";
3
+ import { readFile } from "node:fs/promises";
3
4
  import { createRequire } from "node:module";
4
5
  import { dirname, join, relative, resolve } from "node:path";
5
6
  import { $hook, $inject, type Alepha, AlephaError } from "alepha";
@@ -171,6 +172,60 @@ export class ViteUtils {
171
172
  return logger;
172
173
  }
173
174
 
175
+ // ---------------------------------------------------------------------------------------------------------------
176
+ // TSConfig paths plugin
177
+ // ---------------------------------------------------------------------------------------------------------------
178
+
179
+ /**
180
+ * Vite plugin that reads tsconfig.json `compilerOptions.paths` and converts
181
+ * them to Vite `resolve.alias` entries. Enables `@/*` → `src/*` style imports
182
+ * with zero config beyond tsconfig.json.
183
+ */
184
+ public createTsconfigPathsPlugin(): Plugin {
185
+ return {
186
+ name: "alepha-tsconfig-paths",
187
+ async config(config) {
188
+ const root = config.root || process.cwd();
189
+ const tsconfigPath = join(root, "tsconfig.json");
190
+
191
+ let content: string;
192
+ try {
193
+ content = await readFile(tsconfigPath, "utf-8");
194
+ } catch {
195
+ return;
196
+ }
197
+
198
+ // Strip JSONC comments before parsing
199
+ const clean = content
200
+ .replace(/\/\/.*$/gm, "")
201
+ .replace(/\/\*[\s\S]*?\*\//g, "");
202
+
203
+ let tsconfig: any;
204
+ try {
205
+ tsconfig = JSON.parse(clean);
206
+ } catch {
207
+ return;
208
+ }
209
+
210
+ const paths = tsconfig?.compilerOptions?.paths;
211
+ if (!paths || typeof paths !== "object") return;
212
+
213
+ const alias: Record<string, string> = {};
214
+ for (const [pattern, targets] of Object.entries(paths)) {
215
+ if (!Array.isArray(targets) || targets.length === 0) continue;
216
+ const target = targets[0] as string;
217
+ const aliasKey = pattern.replace(/\*$/, "");
218
+ const aliasPath = target.replace(/\*$/, "").replace(/^\.\//, "");
219
+ const resolved = resolve(root, aliasPath);
220
+ alias[aliasKey] = aliasKey.endsWith("/") ? `${resolved}/` : resolved;
221
+ }
222
+
223
+ if (Object.keys(alias).length === 0) return;
224
+ return { resolve: { alias } };
225
+ },
226
+ };
227
+ }
228
+
174
229
  // ---------------------------------------------------------------------------------------------------------------
175
230
  // SSR preload plugin
176
231
  // ---------------------------------------------------------------------------------------------------------------
@@ -355,6 +410,7 @@ ${style ? `<link rel="stylesheet" href="/${style}" />` : ""}
355
410
  process.env.NODE_ENV = opts.mode;
356
411
  process.env.ALEPHA_CLI_IMPORT = "true"; // signal Alepha App about CLI import, run(alepha) won't start server
357
412
  process.env.LOG_LEVEL ??= "warn"; // reduce log noise
413
+ process.env.APP_SECRET ??= "123456"; // avoid warning about missing secret, not used in CLI context
358
414
 
359
415
  /**
360
416
  * 01/26 Vite 7
@@ -366,6 +422,7 @@ ${style ? `<link rel="stylesheet" href="/${style}" />` : ""}
366
422
  server: { middlewareMode: true },
367
423
  appType: "custom",
368
424
  logLevel: "silent",
425
+ plugins: [this.createTsconfigPathsPlugin()],
369
426
  } satisfies InlineConfig);
370
427
 
371
428
  await this.viteDevServer.ssrLoadModule(opts.entry.server);
@@ -31,7 +31,10 @@ export class BuildClientTask extends BuildTask {
31
31
  // Write index.html template for Vite to consume
32
32
  const template = this.viteUtils.generateIndexHtml(ctx.entry);
33
33
  await this.fs.mkdir(this.fs.join(ctx.root, "node_modules/.alepha"));
34
- const indexHtmlPath = this.fs.join(ctx.root, "node_modules/.alepha/index.html");
34
+ const indexHtmlPath = this.fs.join(
35
+ ctx.root,
36
+ "node_modules/.alepha/index.html",
37
+ );
35
38
  await this.fs.writeFile(indexHtmlPath, template);
36
39
 
37
40
  try {
@@ -61,6 +64,7 @@ export class BuildClientTask extends BuildTask {
61
64
  const viteReact = await this.viteUtils.importViteReact();
62
65
  if (viteReact) plugins.push(viteReact());
63
66
 
67
+ plugins.push(this.viteUtils.createTsconfigPathsPlugin());
64
68
  plugins.push(this.viteUtils.createSsrPreloadPlugin());
65
69
 
66
70
  if (opts.stats) {
@@ -92,6 +96,7 @@ export class BuildClientTask extends BuildTask {
92
96
  entryFileNames: "entry.[hash].js",
93
97
  chunkFileNames: "chunk.[hash].js",
94
98
  assetFileNames: "asset.[hash][extname]",
99
+ experimentalMinChunkSize: 5_000,
95
100
  },
96
101
  },
97
102
  },
@@ -120,7 +125,7 @@ export class BuildClientTask extends BuildTask {
120
125
  await this.fs.cp(
121
126
  "dist/public/node_modules/.alepha/index.html",
122
127
  "dist/public/index.html",
123
- )
128
+ );
124
129
  await this.fs.rm("dist/public/node_modules", { recursive: true });
125
130
  }
126
131
  }
@@ -1,9 +1,9 @@
1
1
  import { basename } from "node:path";
2
2
  import { $inject } from "alepha";
3
3
  import { KV_DEFAULT_BINDING } from "alepha/cache";
4
- import { FileSystemProvider } from "alepha/system";
5
4
  import { QUEUE_DEFAULT_BINDING } from "alepha/queue";
6
5
  import type { CronProvider, WorkerdCronProvider } from "alepha/scheduler";
6
+ import { FileSystemProvider } from "alepha/system";
7
7
  import { ViteUtils } from "../services/ViteUtils.ts";
8
8
  import { BuildTask, type BuildTaskContext } from "./BuildTask.ts";
9
9
 
@@ -102,19 +102,14 @@ export class BuildCloudflareTask extends BuildTask {
102
102
  ];
103
103
  }
104
104
 
105
- protected enhanceCron(
106
- ctx: BuildTaskContext,
107
- wrangler: WranglerConfig,
108
- ): void {
105
+ protected enhanceCron(ctx: BuildTaskContext, wrangler: WranglerConfig): void {
109
106
  if (ctx.alepha.primitives("scheduler").length === 0) {
110
107
  return;
111
108
  }
112
109
 
113
110
  let cronProvider: CronProvider | undefined;
114
111
  try {
115
- cronProvider = ctx.alepha.inject(
116
- "CronProvider",
117
- ) as WorkerdCronProvider;
112
+ cronProvider = ctx.alepha.inject("CronProvider") as WorkerdCronProvider;
118
113
  } catch {}
119
114
 
120
115
  const crons = cronProvider?.getCronJobs();
@@ -144,10 +139,7 @@ export class BuildCloudflareTask extends BuildTask {
144
139
  return;
145
140
  }
146
141
 
147
- const [dbName, id] = url
148
- .replace("d1://", "")
149
- .replace("d1:", "")
150
- .split(":");
142
+ const [dbName, id] = url.replace("d1://", "").replace("d1:", "").split(":");
151
143
  const binding = BuildCloudflareTask.D1_BINDING;
152
144
  wrangler.d1_databases = wrangler.d1_databases || [];
153
145
  wrangler.d1_databases.push({
@@ -81,6 +81,7 @@ export class BuildServerTask extends BuildTask {
81
81
  plugins.push(viteReact());
82
82
  }
83
83
 
84
+ plugins.push(this.viteUtils.createTsconfigPathsPlugin());
84
85
  plugins.push(this.viteUtils.createSsrPreloadPlugin());
85
86
 
86
87
  if (opts.stats) {
@@ -125,6 +126,7 @@ export class BuildServerTask extends BuildTask {
125
126
  chunkFileNames: "[hash].js",
126
127
  assetFileNames: "[hash][extname]",
127
128
  format: "esm",
129
+ experimentalMinChunkSize: 10_000,
128
130
  },
129
131
  },
130
132
  },