alepha 0.13.0 → 0.13.2

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 (461) hide show
  1. package/README.md +1 -1
  2. package/dist/api-files/index.d.ts +28 -91
  3. package/dist/api-files/index.js +10 -755
  4. package/dist/api-files/index.js.map +1 -1
  5. package/dist/api-jobs/index.d.ts +67 -67
  6. package/dist/api-jobs/index.js +13 -13
  7. package/dist/api-jobs/index.js.map +1 -1
  8. package/dist/api-notifications/index.d.ts +129 -146
  9. package/dist/api-notifications/index.js +17 -39
  10. package/dist/api-notifications/index.js.map +1 -1
  11. package/dist/api-parameters/index.d.ts +21 -22
  12. package/dist/api-parameters/index.js +22 -22
  13. package/dist/api-parameters/index.js.map +1 -1
  14. package/dist/api-users/index.d.ts +224 -2001
  15. package/dist/api-users/index.js +914 -4787
  16. package/dist/api-users/index.js.map +1 -1
  17. package/dist/api-verifications/index.d.ts +96 -96
  18. package/dist/batch/index.d.ts +13 -13
  19. package/dist/batch/index.js +8 -8
  20. package/dist/batch/index.js.map +1 -1
  21. package/dist/bucket/index.d.ts +14 -14
  22. package/dist/bucket/index.js +12 -12
  23. package/dist/bucket/index.js.map +1 -1
  24. package/dist/cache/index.d.ts +11 -11
  25. package/dist/cache/index.js +9 -9
  26. package/dist/cache/index.js.map +1 -1
  27. package/dist/cli/{dist-Sz2EXvQX.cjs → dist-Dl9Vl7Ur.js} +17 -13
  28. package/dist/cli/{dist-BBPjuQ56.js.map → dist-Dl9Vl7Ur.js.map} +1 -1
  29. package/dist/cli/index.d.ts +31 -37
  30. package/dist/cli/index.js +152 -83
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/command/index.d.ts +19 -19
  33. package/dist/command/index.js +25 -25
  34. package/dist/command/index.js.map +1 -1
  35. package/dist/core/index.browser.js +218 -218
  36. package/dist/core/index.browser.js.map +1 -1
  37. package/dist/core/index.d.ts +232 -232
  38. package/dist/core/index.js +218 -218
  39. package/dist/core/index.js.map +1 -1
  40. package/dist/core/{index.cjs → index.native.js} +304 -455
  41. package/dist/core/index.native.js.map +1 -0
  42. package/dist/datetime/index.d.ts +9 -9
  43. package/dist/datetime/index.js +7 -7
  44. package/dist/datetime/index.js.map +1 -1
  45. package/dist/email/index.d.ts +16 -16
  46. package/dist/email/index.js +80 -82
  47. package/dist/email/index.js.map +1 -1
  48. package/dist/file/index.js +1 -1
  49. package/dist/file/index.js.map +1 -1
  50. package/dist/lock/index.d.ts +9 -9
  51. package/dist/lock/index.js +8 -8
  52. package/dist/lock/index.js.map +1 -1
  53. package/dist/lock-redis/index.js +3 -66
  54. package/dist/lock-redis/index.js.map +1 -1
  55. package/dist/logger/index.d.ts +5 -5
  56. package/dist/logger/index.js +8 -8
  57. package/dist/logger/index.js.map +1 -1
  58. package/dist/orm/index.browser.js +114 -114
  59. package/dist/orm/index.browser.js.map +1 -1
  60. package/dist/orm/index.d.ts +219 -219
  61. package/dist/orm/index.js +46 -46
  62. package/dist/orm/index.js.map +1 -1
  63. package/dist/queue/index.d.ts +25 -25
  64. package/dist/queue/index.js +20 -20
  65. package/dist/queue/index.js.map +1 -1
  66. package/dist/queue-redis/index.d.ts +2 -2
  67. package/dist/redis/index.d.ts +10 -10
  68. package/dist/retry/index.d.ts +20 -20
  69. package/dist/retry/index.js +9 -9
  70. package/dist/retry/index.js.map +1 -1
  71. package/dist/scheduler/index.d.ts +12 -12
  72. package/dist/scheduler/index.js +9 -9
  73. package/dist/scheduler/index.js.map +1 -1
  74. package/dist/security/index.d.ts +53 -53
  75. package/dist/security/index.js +32 -32
  76. package/dist/security/index.js.map +1 -1
  77. package/dist/server/index.browser.js +1 -1
  78. package/dist/server/index.browser.js.map +1 -1
  79. package/dist/server/index.d.ts +101 -101
  80. package/dist/server/index.js +17 -17
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server-auth/index.browser.js +4 -982
  83. package/dist/server-auth/index.browser.js.map +1 -1
  84. package/dist/server-auth/index.d.ts +204 -785
  85. package/dist/server-auth/index.js +47 -1239
  86. package/dist/server-auth/index.js.map +1 -1
  87. package/dist/server-cache/index.d.ts +10 -10
  88. package/dist/server-cache/index.js +2 -2
  89. package/dist/server-cache/index.js.map +1 -1
  90. package/dist/server-compress/index.d.ts +4 -4
  91. package/dist/server-compress/index.js +1 -1
  92. package/dist/server-compress/index.js.map +1 -1
  93. package/dist/server-cookies/index.browser.js +8 -8
  94. package/dist/server-cookies/index.browser.js.map +1 -1
  95. package/dist/server-cookies/index.d.ts +17 -17
  96. package/dist/server-cookies/index.js +10 -10
  97. package/dist/server-cookies/index.js.map +1 -1
  98. package/dist/server-cors/index.d.ts +17 -17
  99. package/dist/server-cors/index.js +9 -9
  100. package/dist/server-cors/index.js.map +1 -1
  101. package/dist/server-health/index.d.ts +2 -2
  102. package/dist/server-helmet/index.d.ts +1 -1
  103. package/dist/server-links/index.browser.js +12 -12
  104. package/dist/server-links/index.browser.js.map +1 -1
  105. package/dist/server-links/index.d.ts +59 -251
  106. package/dist/server-links/index.js +23 -502
  107. package/dist/server-links/index.js.map +1 -1
  108. package/dist/server-metrics/index.d.ts +4 -4
  109. package/dist/server-metrics/index.js +170 -174
  110. package/dist/server-metrics/index.js.map +1 -1
  111. package/dist/server-multipart/index.d.ts +2 -2
  112. package/dist/server-proxy/index.d.ts +12 -12
  113. package/dist/server-proxy/index.js +10 -10
  114. package/dist/server-proxy/index.js.map +1 -1
  115. package/dist/server-rate-limit/index.d.ts +22 -22
  116. package/dist/server-rate-limit/index.js +12 -12
  117. package/dist/server-rate-limit/index.js.map +1 -1
  118. package/dist/server-security/index.d.ts +24 -24
  119. package/dist/server-security/index.js +15 -15
  120. package/dist/server-security/index.js.map +1 -1
  121. package/dist/server-static/index.d.ts +14 -14
  122. package/dist/server-static/index.js +8 -8
  123. package/dist/server-static/index.js.map +1 -1
  124. package/dist/server-swagger/index.d.ts +25 -184
  125. package/dist/server-swagger/index.js +21 -724
  126. package/dist/server-swagger/index.js.map +1 -1
  127. package/dist/sms/index.d.ts +14 -14
  128. package/dist/sms/index.js +9 -9
  129. package/dist/sms/index.js.map +1 -1
  130. package/dist/thread/index.d.ts +11 -11
  131. package/dist/thread/index.js +17 -17
  132. package/dist/thread/index.js.map +1 -1
  133. package/dist/topic/index.d.ts +26 -26
  134. package/dist/topic/index.js +16 -16
  135. package/dist/topic/index.js.map +1 -1
  136. package/dist/topic-redis/index.d.ts +1 -1
  137. package/dist/vite/index.d.ts +3 -3
  138. package/dist/vite/index.js +12 -13
  139. package/dist/vite/index.js.map +1 -1
  140. package/dist/websocket/index.browser.js +11 -11
  141. package/dist/websocket/index.browser.js.map +1 -1
  142. package/dist/websocket/index.d.ts +51 -51
  143. package/dist/websocket/index.js +13 -13
  144. package/dist/websocket/index.js.map +1 -1
  145. package/package.json +62 -52
  146. package/src/api-files/services/FileService.ts +5 -7
  147. package/src/api-jobs/index.ts +1 -1
  148. package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
  149. package/src/api-jobs/providers/JobProvider.ts +9 -9
  150. package/src/api-jobs/services/JobService.ts +5 -5
  151. package/src/api-notifications/index.ts +5 -15
  152. package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
  153. package/src/api-notifications/services/NotificationSenderService.ts +3 -3
  154. package/src/api-parameters/index.ts +1 -1
  155. package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
  156. package/src/api-users/index.ts +1 -1
  157. package/src/api-users/{descriptors → primitives}/$userRealm.ts +8 -8
  158. package/src/api-users/providers/UserRealmProvider.ts +1 -1
  159. package/src/batch/index.ts +3 -3
  160. package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
  161. package/src/bucket/index.ts +8 -8
  162. package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
  163. package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
  164. package/src/cache/index.ts +4 -4
  165. package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
  166. package/src/cli/apps/AlephaPackageBuilderCli.ts +30 -3
  167. package/src/cli/assets/appRouterTs.ts +9 -0
  168. package/src/cli/assets/indexHtml.ts +2 -1
  169. package/src/cli/assets/mainBrowserTs.ts +10 -0
  170. package/src/cli/commands/CoreCommands.ts +6 -5
  171. package/src/cli/commands/DrizzleCommands.ts +69 -61
  172. package/src/cli/commands/VerifyCommands.ts +2 -2
  173. package/src/cli/commands/ViteCommands.ts +6 -1
  174. package/src/cli/services/ProjectUtils.ts +78 -41
  175. package/src/command/index.ts +5 -5
  176. package/src/command/{descriptors → primitives}/$command.ts +9 -12
  177. package/src/command/providers/CliProvider.ts +10 -10
  178. package/src/core/Alepha.ts +30 -33
  179. package/src/core/constants/KIND.ts +1 -1
  180. package/src/core/constants/OPTIONS.ts +1 -1
  181. package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
  182. package/src/core/helpers/ref.ts +1 -1
  183. package/src/core/index.shared.ts +8 -8
  184. package/src/core/{descriptors → primitives}/$context.ts +5 -5
  185. package/src/core/{descriptors → primitives}/$hook.ts +4 -4
  186. package/src/core/{descriptors → primitives}/$inject.ts +2 -2
  187. package/src/core/{descriptors → primitives}/$module.ts +9 -9
  188. package/src/core/{descriptors → primitives}/$use.ts +2 -2
  189. package/src/core/providers/CodecManager.ts +1 -1
  190. package/src/core/providers/JsonSchemaCodec.ts +1 -1
  191. package/src/core/providers/StateManager.ts +2 -2
  192. package/src/datetime/index.ts +3 -3
  193. package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
  194. package/src/email/index.ts +4 -4
  195. package/src/email/{descriptors → primitives}/$email.ts +8 -8
  196. package/src/file/index.ts +1 -1
  197. package/src/lock/index.ts +3 -3
  198. package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
  199. package/src/logger/index.ts +8 -8
  200. package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
  201. package/src/logger/services/Logger.ts +1 -1
  202. package/src/orm/constants/PG_SYMBOLS.ts +2 -2
  203. package/src/orm/index.browser.ts +2 -2
  204. package/src/orm/index.ts +8 -8
  205. package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
  206. package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
  207. package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
  208. package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
  209. package/src/orm/providers/DrizzleKitProvider.ts +1 -1
  210. package/src/orm/providers/PostgresTypeProvider.ts +3 -3
  211. package/src/orm/providers/RepositoryProvider.ts +4 -4
  212. package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
  213. package/src/orm/services/ModelBuilder.ts +9 -9
  214. package/src/orm/services/PgRelationManager.ts +2 -2
  215. package/src/orm/services/PostgresModelBuilder.ts +5 -5
  216. package/src/orm/services/Repository.ts +7 -7
  217. package/src/orm/services/SqliteModelBuilder.ts +5 -5
  218. package/src/queue/index.ts +7 -7
  219. package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
  220. package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
  221. package/src/queue/providers/WorkerProvider.ts +7 -7
  222. package/src/retry/index.ts +3 -3
  223. package/src/retry/{descriptors → primitives}/$retry.ts +19 -17
  224. package/src/scheduler/index.ts +3 -3
  225. package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
  226. package/src/scheduler/providers/CronProvider.ts +1 -1
  227. package/src/security/index.ts +9 -9
  228. package/src/security/{descriptors → primitives}/$permission.ts +7 -7
  229. package/src/security/{descriptors → primitives}/$realm.ts +6 -12
  230. package/src/security/{descriptors → primitives}/$role.ts +12 -12
  231. package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
  232. package/src/server/index.browser.ts +1 -1
  233. package/src/server/index.ts +14 -14
  234. package/src/server/{descriptors → primitives}/$action.ts +13 -13
  235. package/src/server/{descriptors → primitives}/$route.ts +9 -9
  236. package/src/server/providers/NodeHttpServerProvider.ts +2 -2
  237. package/src/server/services/HttpClient.ts +1 -1
  238. package/src/server-auth/index.browser.ts +1 -1
  239. package/src/server-auth/index.ts +6 -6
  240. package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
  241. package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
  242. package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
  243. package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
  244. package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
  245. package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
  246. package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
  247. package/src/server-cookies/index.browser.ts +2 -2
  248. package/src/server-cookies/index.ts +5 -5
  249. package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
  250. package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
  251. package/src/server-cookies/providers/ServerCookiesProvider.ts +4 -4
  252. package/src/server-cookies/services/CookieParser.ts +1 -1
  253. package/src/server-cors/index.ts +3 -3
  254. package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
  255. package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
  256. package/src/server-links/index.browser.ts +5 -5
  257. package/src/server-links/index.ts +9 -9
  258. package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
  259. package/src/server-links/providers/LinkProvider.ts +7 -7
  260. package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
  261. package/src/server-links/providers/ServerLinksProvider.ts +3 -3
  262. package/src/server-proxy/index.ts +3 -3
  263. package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
  264. package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
  265. package/src/server-rate-limit/index.ts +6 -6
  266. package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
  267. package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
  268. package/src/server-security/index.ts +3 -3
  269. package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
  270. package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
  271. package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
  272. package/src/server-static/index.ts +3 -3
  273. package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
  274. package/src/server-static/providers/ServerStaticProvider.ts +6 -6
  275. package/src/server-swagger/index.ts +5 -5
  276. package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
  277. package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
  278. package/src/sms/index.ts +4 -4
  279. package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
  280. package/src/thread/index.ts +3 -3
  281. package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
  282. package/src/thread/providers/ThreadProvider.ts +7 -9
  283. package/src/topic/index.ts +5 -5
  284. package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
  285. package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
  286. package/src/topic/providers/TopicProvider.ts +4 -4
  287. package/src/vite/helpers/boot.ts +3 -3
  288. package/src/vite/tasks/copyAssets.ts +1 -1
  289. package/src/vite/tasks/generateSitemap.ts +3 -3
  290. package/src/vite/tasks/prerenderPages.ts +2 -2
  291. package/src/vite/tasks/runAlepha.ts +2 -2
  292. package/src/websocket/index.browser.ts +3 -3
  293. package/src/websocket/index.shared.ts +2 -2
  294. package/src/websocket/index.ts +4 -4
  295. package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
  296. package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
  297. package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
  298. package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
  299. package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
  300. package/src/websocket/services/WebSocketClient.ts +5 -5
  301. package/dist/api-files/index.cjs +0 -1293
  302. package/dist/api-files/index.cjs.map +0 -1
  303. package/dist/api-files/index.d.cts +0 -829
  304. package/dist/api-jobs/index.cjs +0 -274
  305. package/dist/api-jobs/index.cjs.map +0 -1
  306. package/dist/api-jobs/index.d.cts +0 -654
  307. package/dist/api-notifications/index.cjs +0 -380
  308. package/dist/api-notifications/index.cjs.map +0 -1
  309. package/dist/api-notifications/index.d.cts +0 -289
  310. package/dist/api-parameters/index.cjs +0 -66
  311. package/dist/api-parameters/index.cjs.map +0 -1
  312. package/dist/api-parameters/index.d.cts +0 -84
  313. package/dist/api-users/index.cjs +0 -6009
  314. package/dist/api-users/index.cjs.map +0 -1
  315. package/dist/api-users/index.d.cts +0 -4740
  316. package/dist/api-verifications/index.cjs +0 -407
  317. package/dist/api-verifications/index.cjs.map +0 -1
  318. package/dist/api-verifications/index.d.cts +0 -207
  319. package/dist/batch/index.cjs +0 -408
  320. package/dist/batch/index.cjs.map +0 -1
  321. package/dist/batch/index.d.cts +0 -330
  322. package/dist/bin/index.cjs +0 -17
  323. package/dist/bin/index.cjs.map +0 -1
  324. package/dist/bin/index.d.cts +0 -1
  325. package/dist/bucket/index.cjs +0 -303
  326. package/dist/bucket/index.cjs.map +0 -1
  327. package/dist/bucket/index.d.cts +0 -355
  328. package/dist/cache/index.cjs +0 -241
  329. package/dist/cache/index.cjs.map +0 -1
  330. package/dist/cache/index.d.cts +0 -202
  331. package/dist/cache-redis/index.cjs +0 -84
  332. package/dist/cache-redis/index.cjs.map +0 -1
  333. package/dist/cache-redis/index.d.cts +0 -40
  334. package/dist/cli/chunk-DSlc6foC.cjs +0 -43
  335. package/dist/cli/dist-BBPjuQ56.js +0 -2778
  336. package/dist/cli/dist-Sz2EXvQX.cjs.map +0 -1
  337. package/dist/cli/index.cjs +0 -1241
  338. package/dist/cli/index.cjs.map +0 -1
  339. package/dist/cli/index.d.cts +0 -422
  340. package/dist/command/index.cjs +0 -693
  341. package/dist/command/index.cjs.map +0 -1
  342. package/dist/command/index.d.cts +0 -340
  343. package/dist/core/index.cjs.map +0 -1
  344. package/dist/core/index.d.cts +0 -1927
  345. package/dist/datetime/index.cjs +0 -318
  346. package/dist/datetime/index.cjs.map +0 -1
  347. package/dist/datetime/index.d.cts +0 -145
  348. package/dist/email/index.cjs +0 -10874
  349. package/dist/email/index.cjs.map +0 -1
  350. package/dist/email/index.d.cts +0 -186
  351. package/dist/fake/index.cjs +0 -34641
  352. package/dist/fake/index.cjs.map +0 -1
  353. package/dist/fake/index.d.cts +0 -74
  354. package/dist/file/index.cjs +0 -1212
  355. package/dist/file/index.cjs.map +0 -1
  356. package/dist/file/index.d.cts +0 -698
  357. package/dist/lock/index.cjs +0 -226
  358. package/dist/lock/index.cjs.map +0 -1
  359. package/dist/lock/index.d.cts +0 -361
  360. package/dist/lock-redis/index.cjs +0 -113
  361. package/dist/lock-redis/index.cjs.map +0 -1
  362. package/dist/lock-redis/index.d.cts +0 -24
  363. package/dist/logger/index.cjs +0 -521
  364. package/dist/logger/index.cjs.map +0 -1
  365. package/dist/logger/index.d.cts +0 -281
  366. package/dist/orm/index.cjs +0 -2986
  367. package/dist/orm/index.cjs.map +0 -1
  368. package/dist/orm/index.d.cts +0 -2213
  369. package/dist/queue/index.cjs +0 -1044
  370. package/dist/queue/index.cjs.map +0 -1
  371. package/dist/queue/index.d.cts +0 -1265
  372. package/dist/queue-redis/index.cjs +0 -873
  373. package/dist/queue-redis/index.cjs.map +0 -1
  374. package/dist/queue-redis/index.d.cts +0 -82
  375. package/dist/redis/index.cjs +0 -153
  376. package/dist/redis/index.cjs.map +0 -1
  377. package/dist/redis/index.d.cts +0 -82
  378. package/dist/retry/index.cjs +0 -146
  379. package/dist/retry/index.cjs.map +0 -1
  380. package/dist/retry/index.d.cts +0 -172
  381. package/dist/router/index.cjs +0 -111
  382. package/dist/router/index.cjs.map +0 -1
  383. package/dist/router/index.d.cts +0 -46
  384. package/dist/scheduler/index.cjs +0 -576
  385. package/dist/scheduler/index.cjs.map +0 -1
  386. package/dist/scheduler/index.d.cts +0 -145
  387. package/dist/security/index.cjs +0 -2402
  388. package/dist/security/index.cjs.map +0 -1
  389. package/dist/security/index.d.cts +0 -598
  390. package/dist/server/index.cjs +0 -1680
  391. package/dist/server/index.cjs.map +0 -1
  392. package/dist/server/index.d.cts +0 -810
  393. package/dist/server-auth/index.cjs +0 -3146
  394. package/dist/server-auth/index.cjs.map +0 -1
  395. package/dist/server-auth/index.d.cts +0 -1164
  396. package/dist/server-cache/index.cjs +0 -252
  397. package/dist/server-cache/index.cjs.map +0 -1
  398. package/dist/server-cache/index.d.cts +0 -164
  399. package/dist/server-compress/index.cjs +0 -141
  400. package/dist/server-compress/index.cjs.map +0 -1
  401. package/dist/server-compress/index.d.cts +0 -38
  402. package/dist/server-cookies/index.cjs +0 -234
  403. package/dist/server-cookies/index.cjs.map +0 -1
  404. package/dist/server-cookies/index.d.cts +0 -144
  405. package/dist/server-cors/index.cjs +0 -201
  406. package/dist/server-cors/index.cjs.map +0 -1
  407. package/dist/server-cors/index.d.cts +0 -140
  408. package/dist/server-health/index.cjs +0 -62
  409. package/dist/server-health/index.cjs.map +0 -1
  410. package/dist/server-health/index.d.cts +0 -58
  411. package/dist/server-helmet/index.cjs +0 -131
  412. package/dist/server-helmet/index.cjs.map +0 -1
  413. package/dist/server-helmet/index.d.cts +0 -97
  414. package/dist/server-links/index.cjs +0 -992
  415. package/dist/server-links/index.cjs.map +0 -1
  416. package/dist/server-links/index.d.cts +0 -513
  417. package/dist/server-metrics/index.cjs +0 -4535
  418. package/dist/server-metrics/index.cjs.map +0 -1
  419. package/dist/server-metrics/index.d.cts +0 -35
  420. package/dist/server-multipart/index.cjs +0 -237
  421. package/dist/server-multipart/index.cjs.map +0 -1
  422. package/dist/server-multipart/index.d.cts +0 -50
  423. package/dist/server-proxy/index.cjs +0 -186
  424. package/dist/server-proxy/index.cjs.map +0 -1
  425. package/dist/server-proxy/index.d.cts +0 -234
  426. package/dist/server-rate-limit/index.cjs +0 -241
  427. package/dist/server-rate-limit/index.cjs.map +0 -1
  428. package/dist/server-rate-limit/index.d.cts +0 -183
  429. package/dist/server-security/index.cjs +0 -316
  430. package/dist/server-security/index.cjs.map +0 -1
  431. package/dist/server-security/index.d.cts +0 -173
  432. package/dist/server-static/index.cjs +0 -170
  433. package/dist/server-static/index.cjs.map +0 -1
  434. package/dist/server-static/index.d.cts +0 -121
  435. package/dist/server-swagger/index.cjs +0 -1021
  436. package/dist/server-swagger/index.cjs.map +0 -1
  437. package/dist/server-swagger/index.d.cts +0 -382
  438. package/dist/sms/index.cjs +0 -221
  439. package/dist/sms/index.cjs.map +0 -1
  440. package/dist/sms/index.d.cts +0 -130
  441. package/dist/thread/index.cjs +0 -350
  442. package/dist/thread/index.cjs.map +0 -1
  443. package/dist/thread/index.d.cts +0 -260
  444. package/dist/topic/index.cjs +0 -282
  445. package/dist/topic/index.cjs.map +0 -1
  446. package/dist/topic/index.d.cts +0 -523
  447. package/dist/topic-redis/index.cjs +0 -71
  448. package/dist/topic-redis/index.cjs.map +0 -1
  449. package/dist/topic-redis/index.d.cts +0 -42
  450. package/dist/vite/index.cjs +0 -1077
  451. package/dist/vite/index.cjs.map +0 -1
  452. package/dist/vite/index.d.cts +0 -542
  453. package/dist/websocket/index.cjs +0 -1117
  454. package/dist/websocket/index.cjs.map +0 -1
  455. package/dist/websocket/index.d.cts +0 -861
  456. package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
  457. package/src/api-notifications/providers/SmsProvider.ts +0 -8
  458. /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
  459. /package/src/core/{descriptors → primitives}/$env.ts +0 -0
  460. /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
  461. /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
@@ -1,1077 +0,0 @@
1
- //#region rolldown:runtime
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
- key = keys[i];
12
- if (!__hasOwnProp.call(to, key) && key !== except) {
13
- __defProp(to, key, {
14
- get: ((k) => from[k]).bind(null, key),
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- }
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
- value: mod,
24
- enumerable: true
25
- }) : target, mod));
26
-
27
- //#endregion
28
- let vite = require("vite");
29
- let node_fs_promises = require("node:fs/promises");
30
- let node_path = require("node:path");
31
- node_path = __toESM(node_path);
32
- let alepha = require("alepha");
33
- let node_module = require("node:module");
34
- node_module = __toESM(node_module);
35
- let vite_bundle_analyzer = require("vite-bundle-analyzer");
36
- let node_fs = require("node:fs");
37
- let node_util = require("node:util");
38
- let node_zlib = require("node:zlib");
39
- let node_url = require("node:url");
40
-
41
- //#region src/vite/helpers/boot.ts
42
- /**
43
- * Remember:
44
- * At first, functions was inside alepha/vite package, but it's now used in alepha too.
45
- * For avoiding cli -> vite, all code moved here.
46
- */
47
- /**
48
- * Find browser/client entry file path.
49
- */
50
- const getClientEntry = async (root = process.cwd()) => {
51
- const indexPath = (0, node_path.join)(root, "index.html");
52
- try {
53
- return extractFirstModuleScriptSrc(await (0, node_fs_promises.readFile)(indexPath, "utf8")).replace(/\\/g, "/");
54
- } catch {
55
- return;
56
- }
57
- };
58
- /**
59
- * Find server entry file path.
60
- */
61
- const getServerEntry = async (root = process.cwd(), explicitEntry) => {
62
- if (explicitEntry) {
63
- const explicitPath = (0, node_path.join)(root, explicitEntry);
64
- try {
65
- await (0, node_fs_promises.access)(explicitPath);
66
- return explicitPath;
67
- } catch {
68
- throw new alepha.AlephaError(`Explicit server entry file "${explicitEntry}" not found.`);
69
- }
70
- }
71
- for (const entry of [
72
- "src/index.server.ts",
73
- "src/main.server.ts",
74
- "src/server-entry.ts",
75
- "src/index.server.tsx",
76
- "src/main.server.tsx",
77
- "src/server-entry.tsx",
78
- "src/main.ts",
79
- "src/main.tsx"
80
- ]) try {
81
- const path$1 = (0, node_path.join)(root, entry).replace(/\\/g, "/");
82
- await (0, node_fs_promises.access)(path$1);
83
- return path$1;
84
- } catch {}
85
- const clientEntry = await getClientEntry(root);
86
- if (clientEntry) return clientEntry;
87
- throw new alepha.AlephaError(`Could not find a server entry file.`);
88
- };
89
- /**
90
- * Extract first module script src from HTML.
91
- */
92
- function extractFirstModuleScriptSrc(html) {
93
- const scriptRegex = /<script\b[^>]*>[\s\S]*?<\/script>/gi;
94
- let match = scriptRegex.exec(html);
95
- while (match) {
96
- const tag = match[0];
97
- if (/type=["']module["']/i.test(tag)) {
98
- const entry = tag.match(/\bsrc=["']([^"']+)["']/i)?.[1];
99
- if (entry) {
100
- if (entry.startsWith("/")) return entry.substring(1);
101
- return entry;
102
- }
103
- }
104
- match = scriptRegex.exec(html);
105
- }
106
- throw new alepha.AlephaError(`No module script found in the provided HTML.`);
107
- }
108
- const boot = {
109
- getClientEntry,
110
- getServerEntry
111
- };
112
-
113
- //#endregion
114
- //#region src/vite/helpers/createBufferedLogger.ts
115
- /**
116
- * Creates a Vite logger that buffers all messages instead of printing them.
117
- * Useful for silent builds that only show output on failure.
118
- *
119
- * @example
120
- * ```ts
121
- * const logger = createBufferedLogger();
122
- * try {
123
- * await viteBuild({ customLogger: logger, logLevel: 'info' });
124
- * } catch (error) {
125
- * logger.flush(); // Print all buffered logs
126
- * throw error;
127
- * }
128
- * ```
129
- */
130
- function createBufferedLogger() {
131
- const entries = [];
132
- const loggedErrors = /* @__PURE__ */ new WeakSet();
133
- const warnedMessages = /* @__PURE__ */ new Set();
134
- let hasWarned = false;
135
- return {
136
- get hasWarned() {
137
- return hasWarned;
138
- },
139
- info(msg) {
140
- entries.push({
141
- level: "info",
142
- msg,
143
- timestamp: /* @__PURE__ */ new Date()
144
- });
145
- },
146
- warn(msg) {
147
- hasWarned = true;
148
- entries.push({
149
- level: "warn",
150
- msg,
151
- timestamp: /* @__PURE__ */ new Date()
152
- });
153
- },
154
- warnOnce(msg) {
155
- if (warnedMessages.has(msg)) return;
156
- warnedMessages.add(msg);
157
- hasWarned = true;
158
- entries.push({
159
- level: "warn",
160
- msg,
161
- timestamp: /* @__PURE__ */ new Date()
162
- });
163
- },
164
- error(msg, options) {
165
- if (options?.error) loggedErrors.add(options.error);
166
- entries.push({
167
- level: "error",
168
- msg,
169
- timestamp: /* @__PURE__ */ new Date()
170
- });
171
- },
172
- clearScreen() {},
173
- hasErrorLogged(error) {
174
- return loggedErrors.has(error);
175
- },
176
- flush() {
177
- for (const entry of entries) {
178
- const prefix = entry.level === "error" ? "\x1B[31m✖\x1B[0m" : entry.level === "warn" ? "\x1B[33m⚠\x1B[0m" : "\x1B[36mℹ\x1B[0m";
179
- console.log(`${prefix} ${entry.msg}`);
180
- }
181
- },
182
- getEntries() {
183
- return [...entries];
184
- },
185
- clear() {
186
- entries.length = 0;
187
- warnedMessages.clear();
188
- hasWarned = false;
189
- }
190
- };
191
- }
192
-
193
- //#endregion
194
- //#region src/vite/helpers/fileExists.ts
195
- const fileExists = async (path$1) => {
196
- return await (0, node_fs_promises.access)((0, node_path.join)(process.cwd(), path$1)).then(() => true).catch(() => false);
197
- };
198
-
199
- //#endregion
200
- //#region src/vite/helpers/importVite.ts
201
- const importVite = async () => {
202
- try {
203
- return (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href)("rolldown-vite");
204
- } catch (_error) {
205
- try {
206
- return (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href)("vite");
207
- } catch (_error$1) {
208
- throw new Error("Vite is not installed. Please install it with `npm install vite`.");
209
- }
210
- }
211
- };
212
-
213
- //#endregion
214
- //#region src/vite/plugins/viteCompress.ts
215
- const gzipCompress = (0, node_util.promisify)(node_zlib.gzip);
216
- const brotliCompress = (0, node_util.promisify)(node_zlib.brotliCompress);
217
- function viteCompress(options = {}) {
218
- const { disabled = false, filter = /\.(js|mjs|cjs|css|wasm|svg)$/ } = options;
219
- return {
220
- name: "compress",
221
- apply: "build",
222
- async writeBundle(outputOptions, bundle) {
223
- if (disabled) return;
224
- const now = Date.now();
225
- const outputDir = outputOptions.dir || (0, node_path.resolve)(process.cwd(), "dist");
226
- const files = Object.keys(bundle).filter((fileName) => {
227
- if (typeof filter === "function") return filter(fileName);
228
- return filter.test(fileName);
229
- }).map((fileName) => ({
230
- fileName,
231
- filePath: (0, node_path.join)(outputDir, fileName)
232
- }));
233
- const compressionTasks = [];
234
- for (const { filePath } of files) compressionTasks.push(compressFile(options, filePath));
235
- await Promise.all(compressionTasks);
236
- this.info(`Compressed ${files.length} file${files.length > 1 ? "s" : ""} in ${Date.now() - now}ms.`);
237
- }
238
- };
239
- }
240
- async function compressFile(options = {}, filePath) {
241
- const { brotli = true, gzip = true } = options;
242
- const compressionTasks = [];
243
- const fileContentPromise = node_fs.promises.readFile(filePath);
244
- if (gzip) {
245
- const gzipOptions = typeof gzip === "object" ? gzip : { level: 9 };
246
- compressionTasks.push(fileContentPromise.then(async (content) => {
247
- const compressed = await gzipCompress(content, gzipOptions);
248
- await node_fs.promises.writeFile(`${filePath}.gz`, compressed);
249
- }));
250
- }
251
- if (brotli) {
252
- const brotliOptions = typeof brotli === "object" ? brotli : {};
253
- compressionTasks.push(fileContentPromise.then(async (content) => {
254
- const compressed = await brotliCompress(content, brotliOptions);
255
- await node_fs.promises.writeFile(`${filePath}.br`, compressed);
256
- }));
257
- }
258
- await Promise.all(compressionTasks);
259
- }
260
-
261
- //#endregion
262
- //#region src/vite/tasks/buildClient.ts
263
- /**
264
- * Build client-side bundle with Vite.
265
- *
266
- * This task compiles the browser/client code for production,
267
- * including code splitting, minification, and optional compression.
268
- */
269
- async function buildClient(opts) {
270
- const { build: viteBuild, mergeConfig } = await importVite();
271
- const plugins = [];
272
- const compress = opts.precompress ? typeof opts.precompress === "object" ? opts.precompress : {} : void 0;
273
- if (opts.stats) plugins.push((0, vite_bundle_analyzer.analyzer)({ analyzerMode: "static" }));
274
- if (opts.precompress && compress) plugins.push(viteCompress(compress));
275
- const logger = opts.silent ? createBufferedLogger() : void 0;
276
- const viteBuildClientConfig = {
277
- mode: "production",
278
- logLevel: opts.silent ? "silent" : void 0,
279
- define: { "process.env.NODE_ENV": "\"production\"" },
280
- publicDir: "public",
281
- build: {
282
- chunkSizeWarningLimit: 1e3,
283
- outDir: opts.dist,
284
- rollupOptions: { output: {
285
- entryFileNames: "entry.[hash].js",
286
- chunkFileNames: "chunk.[hash].js",
287
- assetFileNames: "asset.[hash][extname]"
288
- } }
289
- },
290
- esbuild: { legalComments: "none" },
291
- customLogger: logger,
292
- plugins
293
- };
294
- try {
295
- await viteBuild(mergeConfig(viteBuildClientConfig, opts.config ?? {}));
296
- } catch (error) {
297
- logger?.flush();
298
- throw error;
299
- }
300
- }
301
-
302
- //#endregion
303
- //#region src/vite/tasks/generateExternals.ts
304
- /**
305
- * Generate minimal package.json with pinned external dependencies.
306
- *
307
- * This task creates a package.json in the dist directory containing
308
- * only the external dependencies needed at runtime, with their versions
309
- * pinned to the currently installed versions.
310
- */
311
- async function generateExternals(opts) {
312
- const require$1 = node_module.default.createRequire(__filename);
313
- const deps = {};
314
- for (const dep of opts.externals) try {
315
- const pkgPath = `${require$1.resolve(dep).split(`node_modules/${dep}`)[0]}node_modules/${dep}/package.json`;
316
- deps[dep] = `^${JSON.parse(await (0, node_fs_promises.readFile)(pkgPath, "utf-8")).version}`;
317
- } catch (_err) {
318
- console.warn(`[generateExternals] Cannot find '${dep}' in node_modules`);
319
- }
320
- const minimalPkg = {
321
- type: "module",
322
- main: "index.js",
323
- dependencies: deps
324
- };
325
- await (0, node_fs_promises.mkdir)(opts.distDir, { recursive: true });
326
- await (0, node_fs_promises.writeFile)((0, node_path.join)(opts.distDir, "package.json"), JSON.stringify(minimalPkg, null, 2), "utf-8");
327
- }
328
-
329
- //#endregion
330
- //#region src/vite/tasks/buildServer.ts
331
- /**
332
- * Build server-side SSR bundle with Vite.
333
- *
334
- * This task compiles the server code for production,
335
- * generates the externals package.json, and creates
336
- * the dist/index.js entry wrapper.
337
- */
338
- async function buildServer(opts) {
339
- const { build: viteBuild, mergeConfig } = await importVite();
340
- const plugins = [];
341
- if (opts.stats) plugins.push((0, vite_bundle_analyzer.analyzer)({ analyzerMode: "static" }));
342
- const logger = opts.silent ? createBufferedLogger() : void 0;
343
- const viteBuildServerConfig = {
344
- mode: "production",
345
- logLevel: opts.silent ? "silent" : void 0,
346
- define: { "process.env.NODE_ENV": "\"production\"" },
347
- publicDir: false,
348
- ssr: { noExternal: true },
349
- build: {
350
- ssr: opts.entry,
351
- outDir: `${opts.distDir}/server`,
352
- minify: true,
353
- chunkSizeWarningLimit: 1e4,
354
- rollupOptions: { output: {
355
- entryFileNames: "[hash].js",
356
- chunkFileNames: "[hash].js",
357
- assetFileNames: "[hash][extname]",
358
- format: "esm"
359
- } }
360
- },
361
- esbuild: {
362
- legalComments: "none",
363
- keepNames: true
364
- },
365
- customLogger: logger,
366
- plugins
367
- };
368
- let result;
369
- try {
370
- result = await viteBuild(mergeConfig(viteBuildServerConfig, opts.config || {}));
371
- } catch (error) {
372
- logger?.flush();
373
- throw error;
374
- }
375
- const externals = result.resolvedConfig?.ssr?.external ?? [];
376
- await generateExternals({
377
- distDir: opts.distDir,
378
- externals
379
- });
380
- const entryFile = extractEntryFromBundle(opts.entry, result);
381
- let template = "";
382
- if (opts.clientDir) template = `process.env.REACT_SERVER_TEMPLATE ??= \`${(await (0, node_fs_promises.readFile)(`${opts.distDir}/${opts.clientDir}/index.html`, "utf-8")).replace(/>\s*</g, "><").trim()}\`;\n`;
383
- await (0, node_fs_promises.writeFile)(`${opts.distDir}/index.js`, `// This file was automatically generated. DO NOT MODIFY.
384
- // Changes to this file will be lost when the code is regenerated.
385
- \nprocess.env.NODE_ENV ??= 'production';
386
- ${template}\nawait import('./server/${entryFile}');`.trim());
387
- return { entryFile };
388
- }
389
- /**
390
- * Extract entry filename from Vite build result.
391
- */
392
- function extractEntryFromBundle(entry, result) {
393
- const entryFilePath = entry.startsWith("/") ? entry : (0, node_path.join)(process.cwd(), entry);
394
- const entryFile = (Array.isArray(result) ? result[0] : result).output.find((it) => "facadeModuleId" in it && it.facadeModuleId === entryFilePath)?.fileName;
395
- if (!entryFile) throw new alepha.AlephaError(`Could not find the entry file "${entryFilePath}" in the build output. Please check your entry file and try again.`);
396
- return entryFile;
397
- }
398
-
399
- //#endregion
400
- //#region src/vite/helpers/importAlepha.ts
401
- /**
402
- * Import Alepha instance from a transpiled server entry file.
403
- */
404
- const importAlepha = async (entry, options) => {
405
- if (global.__cli_alepha) return global.__cli_alepha;
406
- const { loadEnv } = await importVite();
407
- const env = loadEnv("development", process.cwd(), "");
408
- for (const key in env) process.env[key] = env[key];
409
- if (options?.env) for (const key in options.env) process.env[key] = options.env[key];
410
- process.env.ALEPHA_CLI_IMPORT = "true";
411
- process.env.LOG_LEVEL = "error";
412
- process.env.LOG_FORMAT = "pretty";
413
- process.env.NODE_ENV = "production";
414
- const mod = await import((0, node_url.pathToFileURL)((0, node_path.join)(process.cwd(), entry)).href);
415
- if (mod.default) return mod.default;
416
- const alepha$1 = global.__cli_alepha;
417
- if (!alepha$1) throw new alepha.AlephaError("Alepha instance not found. Ensure Alepha is initialized.");
418
- return alepha$1;
419
- };
420
-
421
- //#endregion
422
- //#region src/vite/tasks/copyAssets.ts
423
- /**
424
- * Copy assets from Alepha packages to the build output directory.
425
- *
426
- * This task loads the built Alepha application, reads the
427
- * `alepha.build.assets` state to find packages with assets,
428
- * and copies their `/assets` directories to the build output.
429
- *
430
- * Used by modules like AlephaServerSwagger to distribute UI files.
431
- */
432
- async function copyAssets(opts) {
433
- const root = process.cwd();
434
- const assets = (await importAlepha(opts.entry)).state.get("alepha.build.assets");
435
- if (!assets || assets.length === 0) return;
436
- const require$1 = (0, node_module.createRequire)((0, node_path.join)(root, opts.entry));
437
- const buildAssetsDir = (0, node_path.join)(root, `${opts.distDir}/assets`);
438
- await (0, node_fs_promises.mkdir)(buildAssetsDir).catch(() => null);
439
- for (const pkgName of assets ?? []) await (0, node_fs_promises.cp)((0, node_path.resolve)((0, node_path.dirname)(require$1.resolve(`${pkgName}/package.json`)), "assets"), buildAssetsDir, { recursive: true });
440
- }
441
-
442
- //#endregion
443
- //#region src/vite/tasks/generateCloudflare.ts
444
- const WARNING_COMMENT$1 = "// This file was automatically generated. DO NOT MODIFY.\n// Changes to this file will be lost when the code is regenerated.\n";
445
- /**
446
- * Generate Cloudflare Workers deployment configuration.
447
- *
448
- * This task creates:
449
- * - wrangler.jsonc with worker configuration
450
- * - worker.js entry point for Cloudflare Workers
451
- */
452
- async function generateCloudflare(opts = {}) {
453
- const dist = opts.distDir ?? "dist";
454
- const root = process.cwd();
455
- const parts = root.split("/");
456
- const wrangler = {
457
- name: parts[parts.length - 1],
458
- main: "./worker.js",
459
- compatibility_flags: ["nodejs_compat"],
460
- compatibility_date: "2025-11-17"
461
- };
462
- (0, node_fs.writeFileSync)((0, node_path.join)(root, dist, "wrangler.jsonc"), JSON.stringify(wrangler, null, 2));
463
- const workerCode = `
464
- process.env.ALEPHA_SERVERLESS = "true";
465
-
466
- await import("./index.js");
467
-
468
- export default {
469
- fetch: async (request, env, ctx) => {
470
-
471
- await __alepha.start();
472
- const ev = { req: request, res: undefined };
473
- await __alepha.events.emit("web:request", ev);
474
- return ev.res;
475
- },
476
- };
477
- `.trim();
478
- (0, node_fs.writeFileSync)((0, node_path.join)(root, dist, "worker.js"), `${WARNING_COMMENT$1}\n${workerCode}`.trim());
479
- }
480
-
481
- //#endregion
482
- //#region src/vite/tasks/generateDocker.ts
483
- /**
484
- * Generate Docker deployment configuration.
485
- *
486
- * This task creates:
487
- * - Dockerfile with configurable Node image
488
- * - Copies drizzle migrations if they exist
489
- */
490
- async function generateDocker(opts = {}) {
491
- const distDir = opts.distDir ?? "dist";
492
- const image = opts.image ?? "node:24-alpine";
493
- const command = opts.command ?? "node";
494
- if (await fileExists("drizzle")) await (0, node_fs_promises.cp)("drizzle", `${distDir}/drizzle`, { recursive: true });
495
- const dockerfile = `# This file was automatically generated. DO NOT MODIFY.
496
- # Changes to this file will be lost when the code is regenerated.
497
- FROM ${image}
498
- WORKDIR /app
499
-
500
- COPY . .
501
-
502
- CMD ["${command}", "index.js"]
503
- `;
504
- await (0, node_fs_promises.writeFile)(`${distDir}/Dockerfile`, dockerfile);
505
- }
506
-
507
- //#endregion
508
- //#region src/vite/tasks/generateSitemap.ts
509
- /**
510
- * Generate sitemap.xml from Alepha page descriptors.
511
- *
512
- * This task loads the built Alepha application,
513
- * queries all page descriptors, and generates a sitemap.xml
514
- * containing URLs for all accessible pages.
515
- */
516
- async function generateSitemap(opts) {
517
- const alepha$1 = await importAlepha(opts.entry, { env: opts.template ? { REACT_SERVER_TEMPLATE: opts.template } : {} });
518
- if (!alepha$1.isConfigured()) {
519
- await alepha$1.events.emit("configure", alepha$1);
520
- alepha$1.configured = true;
521
- }
522
- return generateSitemapFromAlepha(alepha$1, opts.baseUrl);
523
- }
524
- function generateSitemapFromAlepha(alepha$1, baseUrl) {
525
- const pages = alepha$1.descriptors("page");
526
- const urls = [];
527
- for (const page of pages) {
528
- const options = page.options;
529
- if (options.children) continue;
530
- if (!options.schema?.params) {
531
- const path$1 = options.path || "";
532
- const url = `${baseUrl.replace(/\/$/, "")}${path$1 === "" ? "/" : path$1}`;
533
- urls.push(url);
534
- } else if (options.static && typeof options.static === "object" && options.static.entries) for (const entry of options.static.entries) {
535
- const path$1 = buildPathFromParams(options.path || "", entry.params || {});
536
- const url = `${baseUrl.replace(/\/$/, "")}${path$1}`;
537
- urls.push(url);
538
- }
539
- }
540
- return buildSitemapXml(urls);
541
- }
542
- function buildPathFromParams(pathPattern, params) {
543
- let path$1 = pathPattern;
544
- for (const [key, value] of Object.entries(params)) path$1 = path$1.replace(`:${key}`, String(value));
545
- return path$1 || "/";
546
- }
547
- function buildSitemapXml(urls) {
548
- const lastMod = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
549
- return `<?xml version="1.0" encoding="UTF-8"?>
550
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
551
- ${urls.map((url) => ` <url>\n <loc>${escapeXml(url)}</loc>\n\t\t<lastmod>${lastMod}</lastmod>\n </url>`).join("\n")}
552
- </urlset>`;
553
- }
554
- function escapeXml(str) {
555
- return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
556
- }
557
-
558
- //#endregion
559
- //#region src/vite/tasks/generateVercel.ts
560
- const WARNING_COMMENT = "// This file was automatically generated. DO NOT MODIFY.\n// Changes to this file will be lost when the code is regenerated.\n";
561
- /**
562
- * Generate Vercel deployment configuration.
563
- *
564
- * This task creates:
565
- * - vercel.json with route rewrites
566
- * - api/index.js entry point for Vercel serverless function
567
- * - .vercel/project.json if VERCEL_PROJECT_ID and VERCEL_ORG_ID are set
568
- */
569
- async function generateVercel(opts = {}) {
570
- const distDir = opts.distDir ?? "dist";
571
- const clientDir = opts.clientDir ?? "public";
572
- const { loadEnv } = await importVite();
573
- const env = loadEnv("production", process.cwd(), "");
574
- if (!(0, node_fs.existsSync)(`${distDir}/api`)) (0, node_fs.mkdirSync)(`${distDir}/api`);
575
- (0, node_fs.writeFileSync)(`${distDir}/api/index.js`, `${WARNING_COMMENT}
576
- import "../index.js";
577
-
578
- export default async function (req, res) {
579
- \tawait __alepha.start();
580
- \t__alepha.events.emit("node:request", { req, res });
581
- }
582
- `);
583
- (0, node_fs.writeFileSync)(`${distDir}/vercel.json`, JSON.stringify({
584
- ...opts?.config?.config,
585
- rewrites: [{
586
- source: "/(.*)",
587
- destination: "/api/index.js"
588
- }],
589
- buildCommand: "",
590
- installCommand: "",
591
- outputDirectory: clientDir
592
- }, null, " "));
593
- const projectId = env.VERCEL_PROJECT_ID ?? opts.config?.projectId;
594
- const projectName = env.VERCEL_PROJECT_NAME ?? opts.config?.projectName;
595
- const orgId = env.VERCEL_ORG_ID ?? opts.config?.orgId;
596
- if (projectId && orgId) {
597
- try {
598
- (0, node_fs.mkdirSync)(`${distDir}/.vercel`, { recursive: true });
599
- } catch (_e) {}
600
- (0, node_fs.writeFileSync)(`${distDir}/.vercel/project.json`, JSON.stringify({
601
- projectId,
602
- projectName,
603
- orgId
604
- }, null, " "));
605
- }
606
- if (!(0, node_fs.existsSync)(`${distDir}/${clientDir}`)) {
607
- (0, node_fs.mkdirSync)(`${distDir}/${clientDir}`, { recursive: true });
608
- (0, node_fs.writeFileSync)(`${distDir}/${clientDir}/.keep`, "");
609
- }
610
- }
611
-
612
- //#endregion
613
- //#region src/vite/tasks/prerenderPages.ts
614
- /**
615
- * Pre-render static pages defined in the Alepha application.
616
- *
617
- * This task loads the built Alepha application, queries all page
618
- * descriptors with `static: true`, and generates static HTML files
619
- * for each page. Supports pages with parameterized routes via
620
- * `static.entries` configuration.
621
- */
622
- async function prerenderPages(opts) {
623
- const alepha$1 = await importAlepha(opts.entry);
624
- if (!alepha$1.isConfigured()) {
625
- await alepha$1.events.emit("configure", alepha$1);
626
- alepha$1.configured = true;
627
- }
628
- return await prerenderFromAlepha(alepha$1, opts.dist, opts.compress);
629
- }
630
- async function prerenderFromAlepha(alepha$1, dist, compress) {
631
- let count = 0;
632
- const pages = alepha$1.descriptors("page");
633
- for (const page of pages) {
634
- const options = page.options;
635
- if (options.children) continue;
636
- if (!options.static) continue;
637
- const config = typeof options.static === "object" ? options.static : {};
638
- if (!options.schema?.params) {
639
- count += 1;
640
- await renderFile(page, {}, dist, compress);
641
- continue;
642
- }
643
- if (config.entries) for (const entry of config.entries) {
644
- count += 1;
645
- await renderFile(page, entry, dist, compress);
646
- }
647
- }
648
- return { count };
649
- }
650
- async function renderFile(page, options, dist, compress) {
651
- const { html, state } = await page.render({
652
- html: true,
653
- ...options
654
- });
655
- const pathname = state.url.pathname;
656
- const filepath = `${dist}${pathname === "/" ? "/index" : pathname}.html`;
657
- await (0, node_fs_promises.mkdir)(filepath.substring(0, filepath.lastIndexOf("/")), { recursive: true });
658
- await (0, node_fs_promises.writeFile)(filepath, html);
659
- if (compress) await compressFile(typeof compress === "object" ? compress : {}, filepath);
660
- }
661
-
662
- //#endregion
663
- //#region src/vite/tasks/runAlepha.ts
664
- /**
665
- * Create an Alepha runner for development.
666
- *
667
- * The runner manages the lifecycle of an Alepha application during
668
- * Vite dev server operation, handling start/stop/restart and HMR.
669
- */
670
- function createAlephaRunner(opts) {
671
- return new AlephaRunner({
672
- root: process.cwd().replace(/\\/g, "/"),
673
- started: false,
674
- log: opts.debug ? (...msg) => console.log(...msg) : () => {},
675
- entry: opts.entry,
676
- onReload: () => {}
677
- });
678
- }
679
- var AlephaRunner = class {
680
- state;
681
- constructor(state) {
682
- this.state = state;
683
- }
684
- /**
685
- * Set resolved Vite config.
686
- */
687
- setConfig(config) {
688
- this.state.config = config;
689
- }
690
- /**
691
- * Check if SSR is enabled for the running app.
692
- */
693
- isSsrEnabled() {
694
- if (!this.state.app) return false;
695
- return this.state.app.state.get("alepha.react.server.ssr") ?? false;
696
- }
697
- /**
698
- * Check if app is started.
699
- */
700
- get isStarted() {
701
- return this.state.started;
702
- }
703
- /**
704
- * Get the running Alepha app instance.
705
- */
706
- get app() {
707
- return this.state.app;
708
- }
709
- /**
710
- * Start the Alepha application.
711
- */
712
- async start(server) {
713
- const { loadEnv } = await importVite();
714
- if (this.state.started) {
715
- await this.restart(server, true);
716
- return;
717
- }
718
- if (!this.state.config) {
719
- this.state.log("[DEBUG] No config - skip starting");
720
- return;
721
- }
722
- this.state.onReload?.();
723
- this.state.log("[DEBUG] Starting Alepha app...");
724
- this.state.started = false;
725
- this.state.app = void 0;
726
- const fileUrl = (0, node_url.pathToFileURL)(`${node_path.default.resolve(this.state.config.root, this.state.entry)}`).href;
727
- const env = loadEnv("development", this.state.config.root, "");
728
- const before = { ...process.env };
729
- for (const key in env) process.env[key] = env[key];
730
- process.env.NODE_ENV ??= "development";
731
- process.env.VITE_ALEPHA_DEV = "true";
732
- process.env.SERVER_HOST ??= typeof server.config.server.host === "string" ? server.config.server.host : "localhost";
733
- process.env.SERVER_PORT ??= String(server.config.server.port || "5173");
734
- try {
735
- const now = Date.now();
736
- await server.ssrLoadModule(fileUrl);
737
- this.state.log(`[DEBUG] Alepha app loaded in ${Date.now() - now}ms`);
738
- await new Promise((r) => setTimeout(r, 10));
739
- this.state.app = globalThis.__alepha;
740
- if (!this.state.app) {
741
- this.state.log("[DEBUG] No app found - skip starting");
742
- return;
743
- }
744
- this.state.app.state.set("alepha.node.server", server.httpServer);
745
- await this.state.app.start();
746
- this.state.started = true;
747
- process.env = { ...before };
748
- this.state.log("[DEBUG] Starting Done!");
749
- } catch (e) {
750
- if (e instanceof Error) {
751
- let it = e;
752
- do {
753
- server.ssrFixStacktrace(it);
754
- it = it.cause;
755
- } while (it instanceof Error);
756
- server.ssrFixStacktrace(e);
757
- if (e.cause instanceof Error) server.ssrFixStacktrace(e.cause);
758
- this.state.app?.log?.error("App failed to start:", e);
759
- this.state.app?.log?.info("Waiting for changes to restart...");
760
- }
761
- this.state.log("[DEBUG] Alepha app start error");
762
- this.state.started = false;
763
- }
764
- }
765
- /**
766
- * Stop the Alepha application.
767
- */
768
- async stop() {
769
- if (this.state.app?.stop && this.state.started) {
770
- this.state.log("[DEBUG] Stopping Alepha app...");
771
- await this.state.app.stop();
772
- this.state.started = false;
773
- this.state.log("[DEBUG] Stopping Done!");
774
- } else this.state.log("[DEBUG] Alepha app not started - skip stop");
775
- }
776
- /**
777
- * Restart the Alepha application.
778
- *
779
- * @returns true if the restart was skipped due to locking
780
- */
781
- async restart(server, invalidate) {
782
- if (this.state.lock) {
783
- this.state.log("[DEBUG] STILL LOCKING");
784
- return true;
785
- }
786
- this.state.log("[DEBUG] LOCK RESTART");
787
- this.state.lock = Promise.withResolvers();
788
- const now = Date.now();
789
- this.state.log("[DEBUG] RESTART");
790
- await this.stop();
791
- this.state.log(`[DEBUG] RESTART (stop) in ${Date.now() - now}ms`);
792
- if (invalidate) server.moduleGraph.invalidateAll();
793
- await this.start(server);
794
- this.state.log(`[DEBUG] RESTART OK in ${Date.now() - now}ms`);
795
- setTimeout(() => {
796
- this.state.log("[DEBUG] UNLOCK RESTART");
797
- this.state.lock?.resolve();
798
- this.state.lock = void 0;
799
- }, 500);
800
- return false;
801
- }
802
- /**
803
- * Send reload event to client.
804
- */
805
- sendReload(server) {
806
- server.ws.send({
807
- type: "custom",
808
- event: "alepha:reload",
809
- data: {}
810
- });
811
- }
812
- };
813
- /**
814
- * Check if a URL path is a Vite internal file.
815
- */
816
- function isViteInternalPath(pathname) {
817
- const [path$1] = pathname.split("?");
818
- if (path$1.startsWith("/@") || path$1.startsWith("/src") || path$1.includes("/node_modules/")) return true;
819
- return false;
820
- }
821
-
822
- //#endregion
823
- //#region src/vite/plugins/viteAlephaBuild.ts
824
- /**
825
- * Alepha build plugin for Vite.
826
- *
827
- * This plugin orchestrates the complete build process:
828
- * 1. Build client (if index.html exists)
829
- * 2. Build server (SSR)
830
- * 3. Copy assets from packages
831
- * 4. Pre-render static pages (if enabled)
832
- * 5. Generate sitemap (if enabled)
833
- * 6. Generate deployment config (Vercel/Cloudflare/Docker)
834
- *
835
- * Build mode can be controlled via ALEPHA_BUILD_MODE env var for CLI integration.
836
- */
837
- async function viteAlephaBuild(options = {}) {
838
- const entry = options.serverEntry ?? await boot.getServerEntry();
839
- const distDir = "dist";
840
- const clientDir = "public";
841
- let rootConfig = {};
842
- return {
843
- name: "alepha-build",
844
- apply: "build",
845
- config(config, ctx) {
846
- if (process.env.ALEPHA_BUILD_MODE === "cli") return;
847
- if (!process.env.VITE_DOUBLE_BUILD_DONE) rootConfig = config;
848
- if (ctx.isSsrBuild || !process.env.VITE_DOUBLE_BUILD_DONE) config.publicDir = false;
849
- else config.publicDir = "public";
850
- },
851
- async buildStart() {
852
- const buildMode = process.env.ALEPHA_BUILD_MODE;
853
- if (buildMode === "cli") return;
854
- if (process.env.VITE_DOUBLE_BUILD_DONE === "true") return;
855
- process.env.VITE_DOUBLE_BUILD_DONE = "true";
856
- const hasClient = options.client !== false && await fileExists("index.html");
857
- const buildClientOptions = typeof options.client === "object" ? options.client : {};
858
- const stats = options.stats ?? process.env.ALEPHA_BUILD_STATS === "true";
859
- if (buildMode === "client") {
860
- if (hasClient) await buildClient({
861
- ...buildClientOptions,
862
- config: rootConfig,
863
- dist: `${distDir}/${clientDir}`,
864
- stats
865
- });
866
- process.exit(0);
867
- }
868
- if (buildMode === "server") {
869
- if (entry) {
870
- let clientBuilt = false;
871
- try {
872
- await (0, node_fs_promises.readFile)(`${distDir}/${clientDir}/index.html`, "utf-8");
873
- clientBuilt = true;
874
- } catch {}
875
- await buildServer({
876
- config: { base: rootConfig.base || "" },
877
- entry,
878
- distDir,
879
- clientDir: clientBuilt ? clientDir : void 0,
880
- stats
881
- });
882
- }
883
- process.exit(0);
884
- }
885
- if (hasClient) await buildClient({
886
- ...buildClientOptions,
887
- config: rootConfig,
888
- dist: `${distDir}/${clientDir}`,
889
- stats
890
- });
891
- let template = "";
892
- if (hasClient) template = await (0, node_fs_promises.readFile)(`${distDir}/${clientDir}/index.html`, "utf-8");
893
- if (entry) {
894
- await buildServer({
895
- config: { base: rootConfig.base || "" },
896
- entry,
897
- distDir,
898
- clientDir: hasClient ? clientDir : void 0,
899
- stats
900
- });
901
- if (hasClient && options.serverEntry !== false) await (0, node_fs_promises.unlink)(`${distDir}/${clientDir}/index.html`);
902
- await copyAssets({
903
- entry: `${distDir}/index.js`,
904
- distDir
905
- });
906
- }
907
- if (buildClientOptions.sitemap && entry) await (0, node_fs_promises.writeFile)(`${distDir}/${clientDir}/sitemap.xml`, await generateSitemap({
908
- entry: `${distDir}/index.js`,
909
- baseUrl: buildClientOptions.sitemap.hostname
910
- }));
911
- if (buildClientOptions.prerender && template) await prerenderPages({
912
- dist: `${distDir}/${clientDir}`,
913
- entry: `${distDir}/index.js`,
914
- compress: buildClientOptions.precompress
915
- });
916
- if (options.vercel) await generateVercel({
917
- distDir,
918
- clientDir,
919
- config: typeof options.vercel === "boolean" ? {} : options.vercel
920
- });
921
- if (options.cloudflare) await generateCloudflare({ distDir });
922
- if (options.docker) await generateDocker({
923
- distDir,
924
- ...typeof options.docker === "boolean" ? {} : options.docker
925
- });
926
- process.exit(0);
927
- }
928
- };
929
- }
930
-
931
- //#endregion
932
- //#region src/vite/plugins/viteAlephaDev.ts
933
- /**
934
- * Plug Alepha into Vite development server.
935
- *
936
- * This plugin manages the Alepha application lifecycle during development,
937
- * handling hot module replacement and request forwarding.
938
- */
939
- async function viteAlephaDev(options = {}) {
940
- let entry = options.serverEntry;
941
- if (!entry) {
942
- entry = await boot.getServerEntry();
943
- if (!entry) return {
944
- name: "alepha-dev",
945
- apply: "serve",
946
- config() {}
947
- };
948
- }
949
- const runner = createAlephaRunner({
950
- entry,
951
- debug: options.debug
952
- });
953
- return {
954
- name: "alepha-dev",
955
- apply: "serve",
956
- configResolved(resolvedConfig) {
957
- runner.setConfig(resolvedConfig);
958
- },
959
- async handleHotUpdate(ctx) {
960
- if (options.debug) console.log("[DEBUG] HMR", ctx.file);
961
- if (ctx.file.includes("/.idea/")) return [];
962
- const isServerOnly = !ctx.modules[0]?._clientModule;
963
- const isBrowserOnly = !ctx.modules[0]?._ssrModule;
964
- const isSsrEnabled = runner.isSsrEnabled();
965
- if (isBrowserOnly) {
966
- if (options.debug) console.log("[DEBUG] HMR - browser only - no reason to reload server");
967
- return;
968
- }
969
- const root = process.cwd().replace(/\\/g, "/");
970
- const invalidate = !ctx.file.startsWith(root);
971
- if (invalidate && options.debug) console.log("[DEBUG] HMR - outside root - invalidate all");
972
- if (!isSsrEnabled && isServerOnly) {
973
- await runner.restart(ctx.server, invalidate);
974
- return [];
975
- }
976
- if (isSsrEnabled && ctx.modules[0]) {
977
- if (await runner.restart(ctx.server, invalidate)) return [];
978
- if (!runner.isStarted) {
979
- if (options.debug) console.log("[DEBUG] HMR - abort due to app not started");
980
- return [];
981
- }
982
- if (isServerOnly && runner.isStarted) {
983
- runner.sendReload(ctx.server);
984
- return [];
985
- }
986
- }
987
- },
988
- async configureServer(server) {
989
- server.middlewares.use((req, res, next) => {
990
- if (runner.isStarted && runner.app && req.url && !isViteInternalPath(req.url)) {
991
- let ended = false;
992
- const writeHead = res.writeHead.bind(res);
993
- res.writeHead = (...args) => {
994
- ended = true;
995
- return writeHead(args[0], args[1], args[2]);
996
- };
997
- return runner.app.events.emit("node:request", {
998
- req,
999
- res
1000
- }).then(() => {
1001
- if (!ended) next();
1002
- });
1003
- }
1004
- next();
1005
- });
1006
- server.config.logger.info = (msg) => {
1007
- runner.app?.log?.info(msg.trim());
1008
- };
1009
- server.config.logger.clearScreen = () => {};
1010
- await runner.start(server);
1011
- },
1012
- async closeBundle() {}
1013
- };
1014
- }
1015
-
1016
- //#endregion
1017
- //#region src/vite/plugins/viteAlepha.ts
1018
- function viteAlepha(options = {}) {
1019
- if (process.env.NODE_ENV === "test") return [];
1020
- const plugins = [];
1021
- if (options.react !== false) try {
1022
- const { default: viteReact } = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href)("@vitejs/plugin-react");
1023
- plugins.push(viteReact());
1024
- } catch (e) {}
1025
- plugins.push(viteAlephaDev(options), viteAlephaBuild(options));
1026
- plugins[alepha.OPTIONS] = options;
1027
- return plugins;
1028
- }
1029
-
1030
- //#endregion
1031
- //#region src/vite/index.ts
1032
- /**
1033
- * Plugin vite for Alepha framework.
1034
- *
1035
- * This module provides Vite plugins and configurations to integrate Alepha applications with Vite's build and development processes.
1036
- *
1037
- * @example
1038
- * ```ts
1039
- * import { defineConfig } from "vite";
1040
- * import { viteAlepha } from "alepha/vite";
1041
- *
1042
- * export default defineConfig({
1043
- * plugins: [viteAlepha()],
1044
- * // other Vite configurations...
1045
- * });
1046
- * ```
1047
- *
1048
- * @module alepha.vite
1049
- */
1050
-
1051
- //#endregion
1052
- exports.AlephaRunner = AlephaRunner;
1053
- exports.boot = boot;
1054
- exports.buildClient = buildClient;
1055
- exports.buildServer = buildServer;
1056
- exports.compressFile = compressFile;
1057
- exports.copyAssets = copyAssets;
1058
- exports.createAlephaRunner = createAlephaRunner;
1059
- exports.createBufferedLogger = createBufferedLogger;
1060
- Object.defineProperty(exports, 'defineConfig', {
1061
- enumerable: true,
1062
- get: function () {
1063
- return vite.defineConfig;
1064
- }
1065
- });
1066
- exports.generateCloudflare = generateCloudflare;
1067
- exports.generateDocker = generateDocker;
1068
- exports.generateExternals = generateExternals;
1069
- exports.generateSitemap = generateSitemap;
1070
- exports.generateVercel = generateVercel;
1071
- exports.isViteInternalPath = isViteInternalPath;
1072
- exports.prerenderPages = prerenderPages;
1073
- exports.viteAlepha = viteAlepha;
1074
- exports.viteAlephaBuild = viteAlephaBuild;
1075
- exports.viteAlephaDev = viteAlephaDev;
1076
- exports.viteCompress = viteCompress;
1077
- //# sourceMappingURL=index.cjs.map