alepha 0.13.7 → 0.14.0

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 (512) hide show
  1. package/README.md +5 -2
  2. package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
  3. package/assets/swagger-ui/swagger-ui-standalone-preset.js +1 -1
  4. package/assets/swagger-ui/swagger-ui.css +1 -1
  5. package/dist/{api-audits → api/audits}/index.browser.js +4 -4
  6. package/dist/api/audits/index.browser.js.map +1 -0
  7. package/dist/{api-audits → api/audits}/index.d.ts +10 -9
  8. package/dist/api/audits/index.d.ts.map +1 -0
  9. package/dist/{api-audits → api/audits}/index.js +8 -8
  10. package/dist/api/audits/index.js.map +1 -0
  11. package/dist/{api-files → api/files}/index.browser.js +5 -5
  12. package/dist/api/files/index.browser.js.map +1 -0
  13. package/dist/{api-files → api/files}/index.d.ts +18 -10
  14. package/dist/api/files/index.d.ts.map +1 -0
  15. package/dist/{api-files → api/files}/index.js +10 -10
  16. package/dist/api/files/index.js.map +1 -0
  17. package/dist/{api-jobs → api/jobs}/index.browser.js +5 -5
  18. package/dist/api/jobs/index.browser.js.map +1 -0
  19. package/dist/{api-jobs → api/jobs}/index.d.ts +168 -167
  20. package/dist/api/jobs/index.d.ts.map +1 -0
  21. package/dist/{api-jobs → api/jobs}/index.js +9 -9
  22. package/dist/api/jobs/index.js.map +1 -0
  23. package/dist/{api-notifications → api/notifications}/index.browser.js +11 -11
  24. package/dist/api/notifications/index.browser.js.map +1 -0
  25. package/dist/api/notifications/index.d.ts +327 -0
  26. package/dist/api/notifications/index.d.ts.map +1 -0
  27. package/dist/{api-notifications → api/notifications}/index.js +11 -11
  28. package/dist/api/notifications/index.js.map +1 -0
  29. package/dist/{api-parameters → api/parameters}/index.browser.js +2 -2
  30. package/dist/api/parameters/index.browser.js.map +1 -0
  31. package/dist/{api-parameters → api/parameters}/index.d.ts +11 -11
  32. package/dist/api/parameters/index.d.ts.map +1 -0
  33. package/dist/{api-parameters → api/parameters}/index.js +7 -7
  34. package/dist/api/parameters/index.js.map +1 -0
  35. package/dist/{api-users → api/users}/index.browser.js +6 -6
  36. package/dist/api/users/index.browser.js.map +1 -0
  37. package/dist/{api-users → api/users}/index.d.ts +836 -836
  38. package/dist/api/users/index.d.ts.map +1 -0
  39. package/dist/{api-users → api/users}/index.js +99 -766
  40. package/dist/api/users/index.js.map +1 -0
  41. package/dist/{api-verifications → api/verifications}/index.browser.js +5 -5
  42. package/dist/api/verifications/index.browser.js.map +1 -0
  43. package/dist/api/verifications/index.d.ts +248 -0
  44. package/dist/api/verifications/index.d.ts.map +1 -0
  45. package/dist/{api-verifications → api/verifications}/index.js +11 -11
  46. package/dist/api/verifications/index.js.map +1 -0
  47. package/dist/batch/index.d.ts.map +1 -0
  48. package/dist/bucket/index.d.ts.map +1 -0
  49. package/dist/cache/{index.d.ts → core/index.d.ts} +4 -4
  50. package/dist/cache/core/index.d.ts.map +1 -0
  51. package/dist/cache/{index.js → core/index.js} +5 -5
  52. package/dist/cache/core/index.js.map +1 -0
  53. package/dist/{cache-redis → cache/redis}/index.d.ts +2 -2
  54. package/dist/cache/redis/index.d.ts.map +1 -0
  55. package/dist/{cache-redis → cache/redis}/index.js +2 -2
  56. package/dist/cache/redis/index.js.map +1 -0
  57. package/dist/cli/index.d.ts +78 -58
  58. package/dist/cli/index.d.ts.map +1 -0
  59. package/dist/cli/index.js +454 -154
  60. package/dist/cli/index.js.map +1 -1
  61. package/dist/command/index.d.ts +15 -5
  62. package/dist/command/index.d.ts.map +1 -0
  63. package/dist/command/index.js +45 -6
  64. package/dist/command/index.js.map +1 -1
  65. package/dist/core/index.browser.js +1334 -1318
  66. package/dist/core/index.browser.js.map +1 -1
  67. package/dist/core/index.d.ts +75 -71
  68. package/dist/core/index.d.ts.map +1 -0
  69. package/dist/core/index.js +1337 -1321
  70. package/dist/core/index.js.map +1 -1
  71. package/dist/core/index.native.js +1337 -1321
  72. package/dist/core/index.native.js.map +1 -1
  73. package/dist/datetime/index.d.ts.map +1 -0
  74. package/dist/email/index.d.ts.map +1 -0
  75. package/dist/fake/index.d.ts.map +1 -0
  76. package/dist/file/index.d.ts.map +1 -0
  77. package/dist/lock/{index.d.ts → core/index.d.ts} +5 -5
  78. package/dist/lock/core/index.d.ts.map +1 -0
  79. package/dist/lock/{index.js → core/index.js} +5 -5
  80. package/dist/lock/core/index.js.map +1 -0
  81. package/dist/{lock-redis → lock/redis}/index.d.ts +2 -2
  82. package/dist/lock/redis/index.d.ts.map +1 -0
  83. package/dist/{lock-redis → lock/redis}/index.js +2 -2
  84. package/dist/lock/redis/index.js.map +1 -0
  85. package/dist/logger/index.d.ts +1 -0
  86. package/dist/logger/index.d.ts.map +1 -0
  87. package/dist/mcp/index.d.ts +820 -0
  88. package/dist/mcp/index.d.ts.map +1 -0
  89. package/dist/mcp/index.js +978 -0
  90. package/dist/mcp/index.js.map +1 -0
  91. package/dist/orm/index.d.ts +180 -107
  92. package/dist/orm/index.d.ts.map +1 -0
  93. package/dist/orm/index.js +260 -174
  94. package/dist/orm/index.js.map +1 -1
  95. package/dist/queue/core/index.d.ts +548 -0
  96. package/dist/queue/core/index.d.ts.map +1 -0
  97. package/dist/queue/core/index.js +391 -0
  98. package/dist/queue/core/index.js.map +1 -0
  99. package/dist/queue/redis/index.d.ts +28 -0
  100. package/dist/queue/redis/index.d.ts.map +1 -0
  101. package/dist/queue/redis/index.js +43 -0
  102. package/dist/queue/redis/index.js.map +1 -0
  103. package/dist/redis/index.d.ts.map +1 -0
  104. package/dist/retry/index.d.ts.map +1 -0
  105. package/dist/router/index.d.ts.map +1 -0
  106. package/dist/scheduler/index.d.ts +1 -1
  107. package/dist/scheduler/index.d.ts.map +1 -0
  108. package/dist/scheduler/index.js +1 -393
  109. package/dist/scheduler/index.js.map +1 -1
  110. package/dist/security/index.d.ts +1 -1
  111. package/dist/security/index.d.ts.map +1 -0
  112. package/dist/security/index.js +2 -1413
  113. package/dist/security/index.js.map +1 -1
  114. package/dist/{server-auth → server/auth}/index.browser.js +6 -6
  115. package/dist/server/auth/index.browser.js.map +1 -0
  116. package/dist/{server-auth → server/auth}/index.d.ts +167 -167
  117. package/dist/server/auth/index.d.ts.map +1 -0
  118. package/dist/server/auth/index.js +742 -0
  119. package/dist/server/auth/index.js.map +1 -0
  120. package/dist/{server-cache → server/cache}/index.d.ts +2 -2
  121. package/dist/server/cache/index.d.ts.map +1 -0
  122. package/dist/{server-cache → server/cache}/index.js +2 -2
  123. package/dist/server/cache/index.js.map +1 -0
  124. package/dist/{server-compress → server/compress}/index.d.ts +2 -2
  125. package/dist/server/compress/index.d.ts.map +1 -0
  126. package/dist/{server-compress → server/compress}/index.js +2 -2
  127. package/dist/server/compress/index.js.map +1 -0
  128. package/dist/{server-cookies → server/cookies}/index.browser.js +3 -3
  129. package/dist/server/cookies/index.browser.js.map +1 -0
  130. package/dist/{server-cookies → server/cookies}/index.d.ts +4 -4
  131. package/dist/server/cookies/index.d.ts.map +1 -0
  132. package/dist/{server-cookies → server/cookies}/index.js +4 -4
  133. package/dist/server/cookies/index.js.map +1 -0
  134. package/dist/server/{index.browser.js → core/index.browser.js} +14 -14
  135. package/dist/server/core/index.browser.js.map +1 -0
  136. package/dist/server/{index.d.ts → core/index.d.ts} +36 -36
  137. package/dist/server/core/index.d.ts.map +1 -0
  138. package/dist/server/{index.js → core/index.js} +27 -27
  139. package/dist/server/core/index.js.map +1 -0
  140. package/dist/{server-cors → server/cors}/index.d.ts +3 -3
  141. package/dist/server/cors/index.d.ts.map +1 -0
  142. package/dist/{server-cors → server/cors}/index.js +3 -3
  143. package/dist/server/cors/index.js.map +1 -0
  144. package/dist/{server-health → server/health}/index.d.ts +3 -3
  145. package/dist/server/health/index.d.ts.map +1 -0
  146. package/dist/{server-health → server/health}/index.js +3 -3
  147. package/dist/server/health/index.js.map +1 -0
  148. package/dist/{server-helmet → server/helmet}/index.d.ts +2 -2
  149. package/dist/server/helmet/index.d.ts.map +1 -0
  150. package/dist/{server-helmet → server/helmet}/index.js +2 -2
  151. package/dist/server/helmet/index.js.map +1 -0
  152. package/dist/{server-links → server/links}/index.browser.js +5 -5
  153. package/dist/server/links/index.browser.js.map +1 -0
  154. package/dist/{server-links → server/links}/index.d.ts +40 -40
  155. package/dist/server/links/index.d.ts.map +1 -0
  156. package/dist/{server-links → server/links}/index.js +7 -7
  157. package/dist/server/links/index.js.map +1 -0
  158. package/dist/{server-metrics → server/metrics}/index.d.ts +2 -2
  159. package/dist/server/metrics/index.d.ts.map +1 -0
  160. package/dist/server/metrics/index.js +74 -0
  161. package/dist/server/metrics/index.js.map +1 -0
  162. package/dist/{server-multipart → server/multipart}/index.d.ts +2 -2
  163. package/dist/server/multipart/index.d.ts.map +1 -0
  164. package/dist/{server-multipart → server/multipart}/index.js +2 -2
  165. package/dist/server/multipart/index.js.map +1 -0
  166. package/dist/{server-proxy → server/proxy}/index.d.ts +3 -3
  167. package/dist/server/proxy/index.d.ts.map +1 -0
  168. package/dist/{server-proxy → server/proxy}/index.js +3 -3
  169. package/dist/server/proxy/index.js.map +1 -0
  170. package/dist/{server-rate-limit → server/rate-limit}/index.d.ts +4 -4
  171. package/dist/server/rate-limit/index.d.ts.map +1 -0
  172. package/dist/{server-rate-limit → server/rate-limit}/index.js +4 -4
  173. package/dist/server/rate-limit/index.js.map +1 -0
  174. package/dist/{server-security → server/security}/index.browser.js +1 -1
  175. package/dist/server/security/index.browser.js.map +1 -0
  176. package/dist/{server-security → server/security}/index.d.ts +4 -4
  177. package/dist/server/security/index.d.ts.map +1 -0
  178. package/dist/{server-security → server/security}/index.js +4 -4
  179. package/dist/server/security/index.js.map +1 -0
  180. package/dist/{server-static → server/static}/index.d.ts +3 -3
  181. package/dist/server/static/index.d.ts.map +1 -0
  182. package/dist/{server-static → server/static}/index.js +3 -3
  183. package/dist/server/static/index.js.map +1 -0
  184. package/dist/{server-swagger → server/swagger}/index.d.ts +3 -3
  185. package/dist/server/swagger/index.d.ts.map +1 -0
  186. package/dist/{server-swagger → server/swagger}/index.js +4 -4
  187. package/dist/server/swagger/index.js.map +1 -0
  188. package/dist/sms/index.d.ts.map +1 -0
  189. package/dist/thread/index.d.ts.map +1 -0
  190. package/dist/topic/{index.d.ts → core/index.d.ts} +6 -6
  191. package/dist/topic/core/index.d.ts.map +1 -0
  192. package/dist/topic/{index.js → core/index.js} +6 -6
  193. package/dist/topic/core/index.js.map +1 -0
  194. package/dist/{topic-redis → topic/redis}/index.d.ts +2 -2
  195. package/dist/topic/redis/index.d.ts.map +1 -0
  196. package/dist/{topic-redis → topic/redis}/index.js +2 -2
  197. package/dist/topic/redis/index.js.map +1 -0
  198. package/dist/vite/index.d.ts +21 -2
  199. package/dist/vite/index.d.ts.map +1 -0
  200. package/dist/vite/index.js +48 -19
  201. package/dist/vite/index.js.map +1 -1
  202. package/dist/websocket/index.d.ts.map +1 -0
  203. package/package.json +162 -158
  204. package/src/{api-files → api/files}/index.ts +1 -0
  205. package/src/{api-parameters → api/parameters}/index.ts +1 -1
  206. package/src/{api-users → api/users}/primitives/$userRealm.ts +1 -1
  207. package/src/{api-users → api/users}/providers/UserRealmProvider.ts +6 -7
  208. package/src/{api-verifications → api/verifications}/index.ts +2 -0
  209. package/src/cli/apps/AlephaCli.ts +2 -0
  210. package/src/cli/apps/AlephaPackageBuilderCli.ts +83 -54
  211. package/src/cli/assets/appRouterTs.ts +1 -1
  212. package/src/cli/assets/biomeJson.ts +1 -1
  213. package/src/cli/assets/indexHtml.ts +1 -1
  214. package/src/cli/assets/mainBrowserTs.ts +1 -1
  215. package/src/cli/assets/mainTs.ts +9 -10
  216. package/src/cli/assets/viteConfigTs.ts +1 -1
  217. package/src/cli/commands/ChangelogCommands.ts +389 -0
  218. package/src/cli/commands/CoreCommands.ts +10 -6
  219. package/src/cli/commands/DrizzleCommands.ts +204 -4
  220. package/src/cli/commands/VerifyCommands.ts +4 -1
  221. package/src/cli/commands/ViteCommands.ts +46 -25
  222. package/src/cli/services/AlephaCliUtils.ts +52 -164
  223. package/src/command/providers/CliProvider.ts +76 -5
  224. package/src/core/providers/SchemaValidator.ts +24 -2
  225. package/src/mcp/errors/McpError.ts +72 -0
  226. package/src/mcp/helpers/jsonrpc.ts +163 -0
  227. package/src/mcp/index.ts +132 -0
  228. package/src/mcp/interfaces/McpTypes.ts +248 -0
  229. package/src/mcp/primitives/$prompt.ts +188 -0
  230. package/src/mcp/primitives/$resource.ts +171 -0
  231. package/src/mcp/primitives/$tool.ts +285 -0
  232. package/src/mcp/providers/McpServerProvider.ts +382 -0
  233. package/src/mcp/transports/SseMcpTransport.ts +172 -0
  234. package/src/mcp/transports/StdioMcpTransport.ts +126 -0
  235. package/src/orm/index.ts +12 -0
  236. package/src/orm/providers/drivers/CloudflareD1Provider.ts +164 -0
  237. package/src/orm/providers/drivers/NodeSqliteProvider.ts +3 -1
  238. package/src/queue/{index.ts → core/index.ts} +2 -3
  239. package/src/queue/{primitives → core/primitives}/$queue.ts +17 -162
  240. package/src/queue/core/providers/MemoryQueueProvider.ts +19 -0
  241. package/src/queue/core/providers/QueueProvider.ts +23 -0
  242. package/src/queue/core/providers/WorkerProvider.ts +244 -0
  243. package/src/queue/redis/providers/RedisQueueProvider.ts +31 -0
  244. package/src/server/{index.ts → core/index.ts} +1 -0
  245. package/src/{server-rate-limit → server/rate-limit}/index.ts +1 -1
  246. package/src/{server-swagger → server/swagger}/providers/ServerSwaggerProvider.ts +1 -0
  247. package/src/vite/plugins/viteAlephaBuild.ts +8 -2
  248. package/src/vite/plugins/viteAlephaDev.ts +6 -2
  249. package/src/vite/tasks/buildServer.ts +1 -1
  250. package/src/vite/tasks/copyAssets.ts +32 -8
  251. package/src/vite/tasks/generateCloudflare.ts +43 -15
  252. package/src/vite/tasks/runAlepha.ts +1 -0
  253. package/dist/api-audits/index.browser.js.map +0 -1
  254. package/dist/api-audits/index.js.map +0 -1
  255. package/dist/api-files/index.browser.js.map +0 -1
  256. package/dist/api-files/index.js.map +0 -1
  257. package/dist/api-jobs/index.browser.js.map +0 -1
  258. package/dist/api-jobs/index.js.map +0 -1
  259. package/dist/api-notifications/index.browser.js.map +0 -1
  260. package/dist/api-notifications/index.d.ts +0 -327
  261. package/dist/api-notifications/index.js.map +0 -1
  262. package/dist/api-parameters/index.browser.js.map +0 -1
  263. package/dist/api-parameters/index.js.map +0 -1
  264. package/dist/api-users/index.browser.js.map +0 -1
  265. package/dist/api-users/index.js.map +0 -1
  266. package/dist/api-verifications/index.browser.js.map +0 -1
  267. package/dist/api-verifications/index.d.ts +0 -229
  268. package/dist/api-verifications/index.js.map +0 -1
  269. package/dist/cache/index.js.map +0 -1
  270. package/dist/cache-redis/index.js.map +0 -1
  271. package/dist/lock/index.js.map +0 -1
  272. package/dist/lock-redis/index.js.map +0 -1
  273. package/dist/queue/index.d.ts +0 -1265
  274. package/dist/queue/index.js +0 -1037
  275. package/dist/queue/index.js.map +0 -1
  276. package/dist/queue-redis/index.d.ts +0 -82
  277. package/dist/queue-redis/index.js +0 -872
  278. package/dist/queue-redis/index.js.map +0 -1
  279. package/dist/server/index.browser.js.map +0 -1
  280. package/dist/server/index.js.map +0 -1
  281. package/dist/server-auth/index.browser.js.map +0 -1
  282. package/dist/server-auth/index.js +0 -1973
  283. package/dist/server-auth/index.js.map +0 -1
  284. package/dist/server-cache/index.js.map +0 -1
  285. package/dist/server-compress/index.js.map +0 -1
  286. package/dist/server-cookies/index.browser.js.map +0 -1
  287. package/dist/server-cookies/index.js.map +0 -1
  288. package/dist/server-cors/index.js.map +0 -1
  289. package/dist/server-health/index.js.map +0 -1
  290. package/dist/server-helmet/index.js.map +0 -1
  291. package/dist/server-links/index.browser.js.map +0 -1
  292. package/dist/server-links/index.js.map +0 -1
  293. package/dist/server-metrics/index.js +0 -4532
  294. package/dist/server-metrics/index.js.map +0 -1
  295. package/dist/server-multipart/index.js.map +0 -1
  296. package/dist/server-proxy/index.js.map +0 -1
  297. package/dist/server-rate-limit/index.js.map +0 -1
  298. package/dist/server-security/index.browser.js.map +0 -1
  299. package/dist/server-security/index.js.map +0 -1
  300. package/dist/server-static/index.js.map +0 -1
  301. package/dist/server-swagger/index.js.map +0 -1
  302. package/dist/topic/index.js.map +0 -1
  303. package/dist/topic-redis/index.js.map +0 -1
  304. package/src/queue/interfaces/QueueJob.ts +0 -459
  305. package/src/queue/providers/MemoryQueueProvider.ts +0 -850
  306. package/src/queue/providers/QueueProvider.ts +0 -319
  307. package/src/queue/providers/WorkerProvider.ts +0 -344
  308. package/src/queue-redis/providers/RedisQueueProvider.ts +0 -1209
  309. /package/src/{api-audits → api/audits}/controllers/AuditController.ts +0 -0
  310. /package/src/{api-audits → api/audits}/entities/audits.ts +0 -0
  311. /package/src/{api-audits → api/audits}/index.browser.ts +0 -0
  312. /package/src/{api-audits → api/audits}/index.ts +0 -0
  313. /package/src/{api-audits → api/audits}/primitives/$audit.ts +0 -0
  314. /package/src/{api-audits → api/audits}/schemas/auditQuerySchema.ts +0 -0
  315. /package/src/{api-audits → api/audits}/schemas/auditResourceSchema.ts +0 -0
  316. /package/src/{api-audits → api/audits}/schemas/createAuditSchema.ts +0 -0
  317. /package/src/{api-audits → api/audits}/services/AuditService.ts +0 -0
  318. /package/src/{api-files → api/files}/controllers/FileController.ts +0 -0
  319. /package/src/{api-files → api/files}/controllers/StorageStatsController.ts +0 -0
  320. /package/src/{api-files → api/files}/entities/files.ts +0 -0
  321. /package/src/{api-files → api/files}/index.browser.ts +0 -0
  322. /package/src/{api-files → api/files}/jobs/FileJobs.ts +0 -0
  323. /package/src/{api-files → api/files}/schemas/fileQuerySchema.ts +0 -0
  324. /package/src/{api-files → api/files}/schemas/fileResourceSchema.ts +0 -0
  325. /package/src/{api-files → api/files}/schemas/storageStatsSchema.ts +0 -0
  326. /package/src/{api-files → api/files}/services/FileService.ts +0 -0
  327. /package/src/{api-jobs → api/jobs}/controllers/JobController.ts +0 -0
  328. /package/src/{api-jobs → api/jobs}/entities/jobExecutions.ts +0 -0
  329. /package/src/{api-jobs → api/jobs}/index.browser.ts +0 -0
  330. /package/src/{api-jobs → api/jobs}/index.ts +0 -0
  331. /package/src/{api-jobs → api/jobs}/primitives/$job.ts +0 -0
  332. /package/src/{api-jobs → api/jobs}/providers/JobProvider.ts +0 -0
  333. /package/src/{api-jobs → api/jobs}/schemas/jobExecutionQuerySchema.ts +0 -0
  334. /package/src/{api-jobs → api/jobs}/schemas/jobExecutionResourceSchema.ts +0 -0
  335. /package/src/{api-jobs → api/jobs}/schemas/triggerJobSchema.ts +0 -0
  336. /package/src/{api-jobs → api/jobs}/services/JobService.ts +0 -0
  337. /package/src/{api-notifications → api/notifications}/controllers/NotificationController.ts +0 -0
  338. /package/src/{api-notifications → api/notifications}/entities/notifications.ts +0 -0
  339. /package/src/{api-notifications → api/notifications}/index.browser.ts +0 -0
  340. /package/src/{api-notifications → api/notifications}/index.ts +0 -0
  341. /package/src/{api-notifications → api/notifications}/jobs/NotificationJobs.ts +0 -0
  342. /package/src/{api-notifications → api/notifications}/primitives/$notification.ts +0 -0
  343. /package/src/{api-notifications → api/notifications}/queues/NotificationQueues.ts +0 -0
  344. /package/src/{api-notifications → api/notifications}/schemas/notificationContactPreferencesSchema.ts +0 -0
  345. /package/src/{api-notifications → api/notifications}/schemas/notificationContactSchema.ts +0 -0
  346. /package/src/{api-notifications → api/notifications}/schemas/notificationCreateSchema.ts +0 -0
  347. /package/src/{api-notifications → api/notifications}/schemas/notificationQuerySchema.ts +0 -0
  348. /package/src/{api-notifications → api/notifications}/services/NotificationSenderService.ts +0 -0
  349. /package/src/{api-notifications → api/notifications}/services/NotificationService.ts +0 -0
  350. /package/src/{api-parameters → api/parameters}/controllers/ConfigController.ts +0 -0
  351. /package/src/{api-parameters → api/parameters}/entities/parameters.ts +0 -0
  352. /package/src/{api-parameters → api/parameters}/index.browser.ts +0 -0
  353. /package/src/{api-parameters → api/parameters}/primitives/$config.ts +0 -0
  354. /package/src/{api-parameters → api/parameters}/schedulers/ConfigActivationScheduler.ts +0 -0
  355. /package/src/{api-parameters → api/parameters}/services/ConfigStore.ts +0 -0
  356. /package/src/{api-users → api/users}/atoms/realmAuthSettingsAtom.ts +0 -0
  357. /package/src/{api-users → api/users}/controllers/IdentityController.ts +0 -0
  358. /package/src/{api-users → api/users}/controllers/SessionController.ts +0 -0
  359. /package/src/{api-users → api/users}/controllers/UserController.ts +0 -0
  360. /package/src/{api-users → api/users}/controllers/UserRealmController.ts +0 -0
  361. /package/src/{api-users → api/users}/entities/identities.ts +0 -0
  362. /package/src/{api-users → api/users}/entities/sessions.ts +0 -0
  363. /package/src/{api-users → api/users}/entities/users.ts +0 -0
  364. /package/src/{api-users → api/users}/index.browser.ts +0 -0
  365. /package/src/{api-users → api/users}/index.ts +0 -0
  366. /package/src/{api-users → api/users}/notifications/UserNotifications.ts +0 -0
  367. /package/src/{api-users → api/users}/schemas/completePasswordResetRequestSchema.ts +0 -0
  368. /package/src/{api-users → api/users}/schemas/completeRegistrationRequestSchema.ts +0 -0
  369. /package/src/{api-users → api/users}/schemas/createUserSchema.ts +0 -0
  370. /package/src/{api-users → api/users}/schemas/identityQuerySchema.ts +0 -0
  371. /package/src/{api-users → api/users}/schemas/identityResourceSchema.ts +0 -0
  372. /package/src/{api-users → api/users}/schemas/loginSchema.ts +0 -0
  373. /package/src/{api-users → api/users}/schemas/passwordResetIntentResponseSchema.ts +0 -0
  374. /package/src/{api-users → api/users}/schemas/registerQuerySchema.ts +0 -0
  375. /package/src/{api-users → api/users}/schemas/registerRequestSchema.ts +0 -0
  376. /package/src/{api-users → api/users}/schemas/registerResponseSchema.ts +0 -0
  377. /package/src/{api-users → api/users}/schemas/registerSchema.ts +0 -0
  378. /package/src/{api-users → api/users}/schemas/registrationIntentResponseSchema.ts +0 -0
  379. /package/src/{api-users → api/users}/schemas/resetPasswordSchema.ts +0 -0
  380. /package/src/{api-users → api/users}/schemas/sessionQuerySchema.ts +0 -0
  381. /package/src/{api-users → api/users}/schemas/sessionResourceSchema.ts +0 -0
  382. /package/src/{api-users → api/users}/schemas/updateUserSchema.ts +0 -0
  383. /package/src/{api-users → api/users}/schemas/userQuerySchema.ts +0 -0
  384. /package/src/{api-users → api/users}/schemas/userRealmConfigSchema.ts +0 -0
  385. /package/src/{api-users → api/users}/schemas/userResourceSchema.ts +0 -0
  386. /package/src/{api-users → api/users}/services/CredentialService.ts +0 -0
  387. /package/src/{api-users → api/users}/services/IdentityService.ts +0 -0
  388. /package/src/{api-users → api/users}/services/RegistrationService.ts +0 -0
  389. /package/src/{api-users → api/users}/services/SessionCrudService.ts +0 -0
  390. /package/src/{api-users → api/users}/services/SessionService.ts +0 -0
  391. /package/src/{api-users → api/users}/services/UserService.ts +0 -0
  392. /package/src/{api-verifications → api/verifications}/controllers/VerificationController.ts +0 -0
  393. /package/src/{api-verifications → api/verifications}/entities/verifications.ts +0 -0
  394. /package/src/{api-verifications → api/verifications}/index.browser.ts +0 -0
  395. /package/src/{api-verifications → api/verifications}/jobs/VerificationJobs.ts +0 -0
  396. /package/src/{api-verifications → api/verifications}/parameters/VerificationParameters.ts +0 -0
  397. /package/src/{api-verifications → api/verifications}/schemas/requestVerificationCodeResponseSchema.ts +0 -0
  398. /package/src/{api-verifications → api/verifications}/schemas/validateVerificationCodeResponseSchema.ts +0 -0
  399. /package/src/{api-verifications → api/verifications}/schemas/verificationSettingsSchema.ts +0 -0
  400. /package/src/{api-verifications → api/verifications}/schemas/verificationTypeEnumSchema.ts +0 -0
  401. /package/src/{api-verifications → api/verifications}/services/VerificationService.ts +0 -0
  402. /package/src/cache/{errors → core/errors}/CacheError.ts +0 -0
  403. /package/src/cache/{index.ts → core/index.ts} +0 -0
  404. /package/src/cache/{primitives → core/primitives}/$cache.ts +0 -0
  405. /package/src/cache/{providers → core/providers}/CacheProvider.ts +0 -0
  406. /package/src/cache/{providers → core/providers}/MemoryCacheProvider.ts +0 -0
  407. /package/src/{cache-redis → cache/redis}/index.ts +0 -0
  408. /package/src/{cache-redis → cache/redis}/providers/RedisCacheProvider.ts +0 -0
  409. /package/src/lock/{index.ts → core/index.ts} +0 -0
  410. /package/src/lock/{primitives → core/primitives}/$lock.ts +0 -0
  411. /package/src/lock/{providers → core/providers}/LockProvider.ts +0 -0
  412. /package/src/lock/{providers → core/providers}/LockTopicProvider.ts +0 -0
  413. /package/src/lock/{providers → core/providers}/MemoryLockProvider.ts +0 -0
  414. /package/src/{lock-redis → lock/redis}/index.ts +0 -0
  415. /package/src/{lock-redis → lock/redis}/providers/RedisLockProvider.ts +0 -0
  416. /package/src/queue/{primitives → core/primitives}/$consumer.ts +0 -0
  417. /package/src/{queue-redis → queue/redis}/index.ts +0 -0
  418. /package/src/{server-auth → server/auth}/constants/routes.ts +0 -0
  419. /package/src/{server-auth → server/auth}/index.browser.ts +0 -0
  420. /package/src/{server-auth → server/auth}/index.shared.ts +0 -0
  421. /package/src/{server-auth → server/auth}/index.ts +0 -0
  422. /package/src/{server-auth → server/auth}/primitives/$auth.ts +0 -0
  423. /package/src/{server-auth → server/auth}/primitives/$authApple.ts +0 -0
  424. /package/src/{server-auth → server/auth}/primitives/$authCredentials.ts +0 -0
  425. /package/src/{server-auth → server/auth}/primitives/$authGithub.ts +0 -0
  426. /package/src/{server-auth → server/auth}/primitives/$authGoogle.ts +0 -0
  427. /package/src/{server-auth → server/auth}/providers/ServerAuthProvider.ts +0 -0
  428. /package/src/{server-auth → server/auth}/schemas/authenticationProviderSchema.ts +0 -0
  429. /package/src/{server-auth → server/auth}/schemas/tokenResponseSchema.ts +0 -0
  430. /package/src/{server-auth → server/auth}/schemas/tokensSchema.ts +0 -0
  431. /package/src/{server-auth → server/auth}/schemas/userinfoResponseSchema.ts +0 -0
  432. /package/src/{server-cache → server/cache}/index.ts +0 -0
  433. /package/src/{server-cache → server/cache}/providers/ServerCacheProvider.ts +0 -0
  434. /package/src/{server-compress → server/compress}/index.ts +0 -0
  435. /package/src/{server-compress → server/compress}/providers/ServerCompressProvider.ts +0 -0
  436. /package/src/{server-cookies → server/cookies}/index.browser.ts +0 -0
  437. /package/src/{server-cookies → server/cookies}/index.ts +0 -0
  438. /package/src/{server-cookies → server/cookies}/primitives/$cookie.browser.ts +0 -0
  439. /package/src/{server-cookies → server/cookies}/primitives/$cookie.ts +0 -0
  440. /package/src/{server-cookies → server/cookies}/providers/ServerCookiesProvider.ts +0 -0
  441. /package/src/{server-cookies → server/cookies}/services/CookieParser.ts +0 -0
  442. /package/src/server/{constants → core/constants}/routeMethods.ts +0 -0
  443. /package/src/server/{errors → core/errors}/BadRequestError.ts +0 -0
  444. /package/src/server/{errors → core/errors}/ConflictError.ts +0 -0
  445. /package/src/server/{errors → core/errors}/ForbiddenError.ts +0 -0
  446. /package/src/server/{errors → core/errors}/HttpError.ts +0 -0
  447. /package/src/server/{errors → core/errors}/NotFoundError.ts +0 -0
  448. /package/src/server/{errors → core/errors}/UnauthorizedError.ts +0 -0
  449. /package/src/server/{errors → core/errors}/ValidationError.ts +0 -0
  450. /package/src/server/{helpers → core/helpers}/ServerReply.ts +0 -0
  451. /package/src/server/{helpers → core/helpers}/isMultipart.ts +0 -0
  452. /package/src/server/{index.browser.ts → core/index.browser.ts} +0 -0
  453. /package/src/server/{index.shared.ts → core/index.shared.ts} +0 -0
  454. /package/src/server/{interfaces → core/interfaces}/ServerRequest.ts +0 -0
  455. /package/src/server/{primitives → core/primitives}/$action.ts +0 -0
  456. /package/src/server/{primitives → core/primitives}/$route.ts +0 -0
  457. /package/src/server/{providers → core/providers}/BunHttpServerProvider.ts +0 -0
  458. /package/src/server/{providers → core/providers}/NodeHttpServerProvider.ts +0 -0
  459. /package/src/server/{providers → core/providers}/ServerBodyParserProvider.ts +0 -0
  460. /package/src/server/{providers → core/providers}/ServerLoggerProvider.ts +0 -0
  461. /package/src/server/{providers → core/providers}/ServerNotReadyProvider.ts +0 -0
  462. /package/src/server/{providers → core/providers}/ServerProvider.ts +0 -0
  463. /package/src/server/{providers → core/providers}/ServerRouterProvider.ts +0 -0
  464. /package/src/server/{providers → core/providers}/ServerTimingProvider.ts +0 -0
  465. /package/src/server/{schemas → core/schemas}/errorSchema.ts +0 -0
  466. /package/src/server/{schemas → core/schemas}/okSchema.ts +0 -0
  467. /package/src/server/{services → core/services}/HttpClient.ts +0 -0
  468. /package/src/server/{services → core/services}/ServerRequestParser.ts +0 -0
  469. /package/src/server/{services → core/services}/UserAgentParser.ts +0 -0
  470. /package/src/{server-cors → server/cors}/index.ts +0 -0
  471. /package/src/{server-cors → server/cors}/primitives/$cors.ts +0 -0
  472. /package/src/{server-cors → server/cors}/providers/ServerCorsProvider.ts +0 -0
  473. /package/src/{server-health → server/health}/index.ts +0 -0
  474. /package/src/{server-health → server/health}/providers/ServerHealthProvider.ts +0 -0
  475. /package/src/{server-health → server/health}/schemas/healthSchema.ts +0 -0
  476. /package/src/{server-helmet → server/helmet}/index.ts +0 -0
  477. /package/src/{server-helmet → server/helmet}/providers/ServerHelmetProvider.ts +0 -0
  478. /package/src/{server-links → server/links}/index.browser.ts +0 -0
  479. /package/src/{server-links → server/links}/index.ts +0 -0
  480. /package/src/{server-links → server/links}/primitives/$client.ts +0 -0
  481. /package/src/{server-links → server/links}/primitives/$remote.ts +0 -0
  482. /package/src/{server-links → server/links}/providers/LinkProvider.ts +0 -0
  483. /package/src/{server-links → server/links}/providers/RemotePrimitiveProvider.ts +0 -0
  484. /package/src/{server-links → server/links}/providers/ServerLinksProvider.ts +0 -0
  485. /package/src/{server-links → server/links}/schemas/apiLinksResponseSchema.ts +0 -0
  486. /package/src/{server-metrics → server/metrics}/index.ts +0 -0
  487. /package/src/{server-metrics → server/metrics}/providers/ServerMetricsProvider.ts +0 -0
  488. /package/src/{server-multipart → server/multipart}/index.ts +0 -0
  489. /package/src/{server-multipart → server/multipart}/providers/ServerMultipartProvider.ts +0 -0
  490. /package/src/{server-proxy → server/proxy}/index.ts +0 -0
  491. /package/src/{server-proxy → server/proxy}/primitives/$proxy.ts +0 -0
  492. /package/src/{server-proxy → server/proxy}/providers/ServerProxyProvider.ts +0 -0
  493. /package/src/{server-rate-limit → server/rate-limit}/primitives/$rateLimit.ts +0 -0
  494. /package/src/{server-rate-limit → server/rate-limit}/providers/ServerRateLimitProvider.ts +0 -0
  495. /package/src/{server-security → server/security}/index.browser.ts +0 -0
  496. /package/src/{server-security → server/security}/index.ts +0 -0
  497. /package/src/{server-security → server/security}/primitives/$basicAuth.ts +0 -0
  498. /package/src/{server-security → server/security}/providers/ServerBasicAuthProvider.ts +0 -0
  499. /package/src/{server-security → server/security}/providers/ServerSecurityProvider.ts +0 -0
  500. /package/src/{server-static → server/static}/index.ts +0 -0
  501. /package/src/{server-static → server/static}/primitives/$serve.ts +0 -0
  502. /package/src/{server-static → server/static}/providers/ServerStaticProvider.ts +0 -0
  503. /package/src/{server-swagger → server/swagger}/index.ts +0 -0
  504. /package/src/{server-swagger → server/swagger}/primitives/$swagger.ts +0 -0
  505. /package/src/topic/{errors → core/errors}/TopicTimeoutError.ts +0 -0
  506. /package/src/topic/{index.ts → core/index.ts} +0 -0
  507. /package/src/topic/{primitives → core/primitives}/$subscriber.ts +0 -0
  508. /package/src/topic/{primitives → core/primitives}/$topic.ts +0 -0
  509. /package/src/topic/{providers → core/providers}/MemoryTopicProvider.ts +0 -0
  510. /package/src/topic/{providers → core/providers}/TopicProvider.ts +0 -0
  511. /package/src/{topic-redis → topic/redis}/index.ts +0 -0
  512. /package/src/{topic-redis → topic/redis}/providers/RedisTopicProvider.ts +0 -0
@@ -13,6 +13,12 @@ const drizzleCommandFlags = t.object({
13
13
  "Database provider name to target (e.g., 'postgres', 'sqlite')",
14
14
  }),
15
15
  ),
16
+ mode: t.optional(
17
+ t.text({
18
+ description:
19
+ "Environment variable file(s) to load (e.g., 'production' to load .env.production) https://vite.dev/guide/env-and-mode",
20
+ }),
21
+ ),
16
22
  });
17
23
 
18
24
  export class DrizzleCommands {
@@ -149,12 +155,14 @@ export class DrizzleCommands {
149
155
  const commandFlags = flags.custom
150
156
  ? `--custom=${flags.custom}`
151
157
  : undefined;
152
- await this.utils.runDrizzleKitCommand({
158
+
159
+ await this.runDrizzleKitCommand({
153
160
  root,
154
161
  args,
155
162
  command: "generate",
156
163
  commandFlags,
157
164
  provider: flags.provider,
165
+ env: flags.mode,
158
166
  logMessage: (providerName, dialect) =>
159
167
  `Generate '${providerName}' migrations (${dialect}) ...`,
160
168
  });
@@ -181,11 +189,12 @@ export class DrizzleCommands {
181
189
  ),
182
190
  flags: drizzleCommandFlags,
183
191
  handler: async ({ root, args, flags }) => {
184
- await this.utils.runDrizzleKitCommand({
192
+ await this.runDrizzleKitCommand({
185
193
  root,
186
194
  args,
187
195
  command: "push",
188
196
  provider: flags.provider,
197
+ env: flags.mode,
189
198
  logMessage: (providerName, dialect) =>
190
199
  `Push '${providerName}' schema (${dialect}) ...`,
191
200
  });
@@ -212,11 +221,12 @@ export class DrizzleCommands {
212
221
  ),
213
222
  flags: drizzleCommandFlags,
214
223
  handler: async ({ root, args, flags }) => {
215
- await this.utils.runDrizzleKitCommand({
224
+ await this.runDrizzleKitCommand({
216
225
  root,
217
226
  args,
218
227
  command: "migrate",
219
228
  provider: flags.provider,
229
+ env: flags.mode,
220
230
  logMessage: (providerName, dialect) =>
221
231
  `Migrate '${providerName}' database (${dialect}) ...`,
222
232
  });
@@ -243,17 +253,207 @@ export class DrizzleCommands {
243
253
  ),
244
254
  flags: drizzleCommandFlags,
245
255
  handler: async ({ root, args, flags }) => {
246
- await this.utils.runDrizzleKitCommand({
256
+ await this.runDrizzleKitCommand({
247
257
  root,
248
258
  args,
249
259
  command: "studio",
250
260
  provider: flags.provider,
261
+ env: flags.mode,
251
262
  logMessage: (providerName, dialect) =>
252
263
  `Launch Studio for '${providerName}' (${dialect}) ...`,
253
264
  });
254
265
  },
255
266
  });
256
267
 
268
+ /**
269
+ * Run a drizzle-kit command for all database providers in an Alepha instance.
270
+ *
271
+ * Iterates through all repository providers, prepares Drizzle config for each,
272
+ * and executes the specified drizzle-kit command.
273
+ *
274
+ * @param options - Configuration including command to run, flags, and logging
275
+ */
276
+ public async runDrizzleKitCommand(options: {
277
+ root: string;
278
+ args?: string;
279
+ command: string;
280
+ commandFlags?: string;
281
+ provider?: string;
282
+ logMessage: (providerName: string, dialect: string) => string;
283
+ env?: string;
284
+ }): Promise<void> {
285
+ const rootDir = options.root;
286
+
287
+ const envFiles = [".env"];
288
+ if (options.env) {
289
+ envFiles.push(`.env.${options.env}`);
290
+ }
291
+
292
+ await this.utils.loadEnvFile(rootDir, envFiles);
293
+
294
+ this.log.debug(`Using project root: ${rootDir}`);
295
+
296
+ const { alepha, entry } = await this.utils.loadAlephaFromServerEntryFile(
297
+ rootDir,
298
+ options.args,
299
+ );
300
+
301
+ const drizzleKitProvider =
302
+ alepha.inject<DrizzleKitProvider>("DrizzleKitProvider");
303
+ const repositoryProvider =
304
+ alepha.inject<RepositoryProvider>("RepositoryProvider");
305
+ const accepted = new Set<string>([]);
306
+
307
+ for (const primitive of repositoryProvider.getRepositories()) {
308
+ const provider = primitive.provider;
309
+ const providerName = provider.name;
310
+ const dialect = provider.dialect;
311
+
312
+ if (accepted.has(providerName)) {
313
+ continue;
314
+ }
315
+ accepted.add(providerName);
316
+
317
+ // Skip if provider filter is set and doesn't match
318
+ if (options.provider && options.provider !== providerName) {
319
+ this.log.debug(
320
+ `Skipping provider '${providerName}' (filter: ${options.provider})`,
321
+ );
322
+ continue;
323
+ }
324
+
325
+ this.log.info("");
326
+ this.log.info(options.logMessage(providerName, dialect));
327
+
328
+ const drizzleConfigJsPath = await this.prepareDrizzleConfig({
329
+ kit: drizzleKitProvider,
330
+ provider,
331
+ providerName,
332
+ providerUrl: provider.url,
333
+ dialect,
334
+ entry,
335
+ rootDir,
336
+ });
337
+
338
+ const flags = options.commandFlags ? ` ${options.commandFlags}` : "";
339
+ await this.utils.exec(
340
+ `drizzle-kit ${options.command} --config=${drizzleConfigJsPath}${flags}`,
341
+ {
342
+ env: {
343
+ NODE_OPTIONS: "--import tsx",
344
+ },
345
+ },
346
+ );
347
+ }
348
+ }
349
+
350
+ /**
351
+ * Prepare Drizzle configuration files for a database provider.
352
+ *
353
+ * Creates temporary entities.js and drizzle.config.js files needed
354
+ * for Drizzle Kit commands to run properly.
355
+ *
356
+ * @param options - Configuration options including kit, provider info, and paths
357
+ * @returns Path to the generated drizzle.config.js file
358
+ */
359
+ public async prepareDrizzleConfig(options: {
360
+ kit: any;
361
+ provider: any;
362
+ providerName: string;
363
+ providerUrl: string;
364
+ dialect: string;
365
+ entry: string;
366
+ rootDir: string;
367
+ }): Promise<string> {
368
+ const models = Object.keys(options.kit.getModels(options.provider));
369
+ const entitiesJs = this.utils.generateEntitiesJs(
370
+ options.entry,
371
+ options.providerName,
372
+ models,
373
+ );
374
+
375
+ const entitiesJsPath = await this.utils.writeConfigFile(
376
+ "entities.js",
377
+ entitiesJs,
378
+ options.rootDir,
379
+ );
380
+
381
+ const config: Record<string, any> = {
382
+ schema: entitiesJsPath,
383
+ out: `./migrations/${options.providerName}`,
384
+ dialect: options.dialect,
385
+ dbCredentials: {
386
+ url: options.providerUrl,
387
+ },
388
+ };
389
+
390
+ if (options.providerName === "d1") {
391
+ config.driver = "d1-http";
392
+ }
393
+
394
+ if (options.providerName === "pglite") {
395
+ config.driver = "pglite";
396
+ }
397
+
398
+ if (options.dialect === "sqlite") {
399
+ if (options.providerName === "d1") {
400
+ const token = process.env.CLOUDFLARE_API_TOKEN;
401
+ if (!token) {
402
+ throw new AlephaError(
403
+ "CLOUDFLARE_API_TOKEN environment variable is not set. https://orm.drizzle.team/docs/guides/d1-http-with-drizzle-kit",
404
+ );
405
+ }
406
+
407
+ const accountId = process.env.CLOUDFLARE_ACCOUNT_ID;
408
+ if (!accountId) {
409
+ throw new AlephaError(
410
+ "CLOUDFLARE_ACCOUNT_ID environment variable is not set. https://orm.drizzle.team/docs/guides/d1-http-with-drizzle-kit",
411
+ );
412
+ }
413
+
414
+ const url = options.providerUrl;
415
+ if (!url.startsWith("cloudflare-d1://")) {
416
+ throw new AlephaError(
417
+ "D1 provider URL must start with 'cloudflare-d1://'.",
418
+ );
419
+ }
420
+
421
+ const [, databaseId] = url
422
+ .replace("cloudflare-d1://", "")
423
+ .replace("cloudflare-d1:", "")
424
+ .split(":");
425
+
426
+ if (!databaseId) {
427
+ throw new AlephaError(
428
+ "Database ID is missing in the D1 provider URL. Cloudflare D1 URL format: cloudflare-d1://<database_name>:<database_id>",
429
+ );
430
+ }
431
+
432
+ config.dbCredentials = {
433
+ accountId,
434
+ databaseId,
435
+ token,
436
+ };
437
+ } else {
438
+ let url = options.providerUrl;
439
+ url = url.replace("sqlite://", "").replace("file://", "");
440
+ url = join(options.rootDir, url);
441
+
442
+ config.dbCredentials = {
443
+ url,
444
+ };
445
+ }
446
+ }
447
+
448
+ const drizzleConfigJs = `export default ${JSON.stringify(config, null, 2)}`;
449
+
450
+ return await this.utils.writeConfigFile(
451
+ "drizzle.config.js",
452
+ drizzleConfigJs,
453
+ options.rootDir,
454
+ );
455
+ }
456
+
257
457
  // /**
258
458
  // * Drop database schema (development only)
259
459
  // *
@@ -37,7 +37,10 @@ export class VerifyCommands {
37
37
  await run("alepha db:check-migrations");
38
38
  }
39
39
 
40
- await run("alepha build");
40
+ const isExpo = await this.utils.hasExpo(root);
41
+ if (!isExpo) {
42
+ await run("alepha build");
43
+ }
41
44
  await run("alepha clean");
42
45
  },
43
46
  });
@@ -1,4 +1,5 @@
1
1
  import { access, readFile, unlink, writeFile } from "node:fs/promises";
2
+ import { createRequire } from "node:module";
2
3
  import { join } from "node:path";
3
4
  import { $env, $inject, OPTIONS, t } from "alepha";
4
5
  import { $command } from "alepha/command";
@@ -13,8 +14,8 @@ import {
13
14
  generateSitemap,
14
15
  generateVercel,
15
16
  prerenderPages,
16
- type ViteAlephaBuildOptions,
17
17
  } from "alepha/vite";
18
+ import type * as Vite from "vite";
18
19
  import { AlephaCliUtils } from "../services/AlephaCliUtils.ts";
19
20
 
20
21
  export class ViteCommands {
@@ -29,6 +30,7 @@ export class ViteCommands {
29
30
 
30
31
  public readonly run = $command({
31
32
  name: "run",
33
+ hide: true,
32
34
  description: "Run a TypeScript file directly",
33
35
  flags: t.object({
34
36
  watch: t.optional(
@@ -54,11 +56,18 @@ export class ViteCommands {
54
56
  description: "Run the project in development mode",
55
57
  args: t.optional(t.text({ title: "path", description: "Filepath to run" })),
56
58
  handler: async ({ args, root }) => {
59
+ const expo = await this.utils.hasExpo(root);
60
+
57
61
  await this.utils.ensureConfig(root, {
58
- viteConfigTs: true,
62
+ viteConfigTs: !expo,
59
63
  tsconfigJson: true,
60
64
  });
61
65
 
66
+ if (expo) {
67
+ await this.utils.exec(`expo start`);
68
+ return;
69
+ }
70
+
62
71
  const entry = await boot.getServerEntry(root, args);
63
72
  this.log.trace("Entry file found", { entry });
64
73
 
@@ -122,6 +131,13 @@ export class ViteCommands {
122
131
  handler: async ({ flags, args, run, root }) => {
123
132
  // Tell viteAlephaBuild plugin to skip - CLI handles all tasks
124
133
  process.env.ALEPHA_BUILD_MODE = "cli";
134
+ process.env.NODE_ENV = "production";
135
+
136
+ if (await this.utils.hasExpo(root)) {
137
+ // will coming soon
138
+ // 1. ensure "expo prebuild" is run
139
+ return;
140
+ }
125
141
 
126
142
  await this.utils.ensureConfig(root, {
127
143
  viteConfigTs: true,
@@ -142,11 +158,14 @@ export class ViteCommands {
142
158
  alias: "clean dist",
143
159
  });
144
160
 
145
- const viteConfig = await import(join(root, "vite.config.ts"));
146
- const viteAlephaBuildOptions: ViteAlephaBuildOptions =
147
- viteConfig?.default?.plugins.find((it: any) => !!it[OPTIONS])?.[
148
- OPTIONS
149
- ] ?? {};
161
+ const vite: typeof Vite = createRequire(import.meta.url)("vite");
162
+ const config = await vite.resolveConfig({}, "build", "production");
163
+ const alephaPlugin: any = config.plugins.find(
164
+ (it) => it.name === "alepha:build",
165
+ );
166
+ const viteAlephaBuildOptions = alephaPlugin?.[OPTIONS] || {};
167
+
168
+ await this.utils.loadEnvFile(root, [".env", ".env.production"]);
150
169
 
151
170
  const stats = flags.stats ?? viteAlephaBuildOptions.stats ?? false;
152
171
  const hasServer = viteAlephaBuildOptions.serverEntry !== false;
@@ -159,6 +178,12 @@ export class ViteCommands {
159
178
  // No index.html
160
179
  }
161
180
 
181
+ // Extract client options
182
+ const clientOptions =
183
+ typeof viteAlephaBuildOptions.client === "object"
184
+ ? viteAlephaBuildOptions.client
185
+ : {};
186
+
162
187
  // Build client
163
188
  if (hasClient) {
164
189
  await run({
@@ -168,6 +193,7 @@ export class ViteCommands {
168
193
  silent: true,
169
194
  dist: `${distDir}/${clientDir}`,
170
195
  stats,
196
+ precompress: clientOptions.precompress,
171
197
  }),
172
198
  });
173
199
  }
@@ -201,23 +227,16 @@ export class ViteCommands {
201
227
  });
202
228
 
203
229
  // Copy assets
204
- // TODO: only copy if assets are found? Currently will always run
205
- await run({
206
- name: "copy assets",
207
- handler: () =>
208
- copyAssets({
209
- entry: `${distDir}/index.js`,
210
- distDir,
211
- }),
230
+ await copyAssets({
231
+ root,
232
+ entry: `${distDir}/index.js`,
233
+ distDir,
234
+ run,
212
235
  });
213
236
 
214
237
  if (hasClient) {
215
238
  // Generate sitemap
216
- const sitemapBaseUrl =
217
- flags.sitemap ??
218
- (typeof viteAlephaBuildOptions.client === "object"
219
- ? viteAlephaBuildOptions.client.sitemap?.hostname
220
- : undefined);
239
+ const sitemapBaseUrl = flags.sitemap ?? clientOptions.sitemap?.hostname;
221
240
 
222
241
  if (sitemapBaseUrl) {
223
242
  await run({
@@ -235,11 +254,7 @@ export class ViteCommands {
235
254
  }
236
255
 
237
256
  // Pre-render static pages
238
- const shouldPrerender =
239
- flags.prerender ??
240
- (typeof viteAlephaBuildOptions.client === "object"
241
- ? viteAlephaBuildOptions.client.prerender
242
- : false);
257
+ const shouldPrerender = flags.prerender ?? clientOptions.prerender;
243
258
 
244
259
  if (shouldPrerender) {
245
260
  await run({
@@ -248,6 +263,7 @@ export class ViteCommands {
248
263
  await prerenderPages({
249
264
  dist: `${distDir}/${clientDir}`,
250
265
  entry: `${distDir}/index.js`,
266
+ compress: clientOptions.precompress,
251
267
  });
252
268
  },
253
269
  });
@@ -272,11 +288,16 @@ export class ViteCommands {
272
288
  }
273
289
 
274
290
  if (flags.cloudflare || viteAlephaBuildOptions.cloudflare) {
291
+ const config =
292
+ typeof viteAlephaBuildOptions.cloudflare === "boolean"
293
+ ? {}
294
+ : viteAlephaBuildOptions.cloudflare;
275
295
  await run({
276
296
  name: "add Cloudflare config",
277
297
  handler: () =>
278
298
  generateCloudflare({
279
299
  distDir,
300
+ config,
280
301
  }),
281
302
  });
282
303
  }