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
@@ -57,15 +57,13 @@ export class CoreCommands {
57
57
  // }),
58
58
  // choose package manager
59
59
  yarn: t.optional(t.boolean({ description: "Use Yarn package manager" })),
60
+ pnpm: t.optional(t.boolean({ description: "Use pnpm package manager" })),
60
61
  // choose which dependencies to add
61
- api: t.optional(
62
- t.boolean({ description: "Include Alepha Server dependencies" }),
63
- ),
64
62
  react: t.optional(
65
63
  t.boolean({ description: "Include Alepha React dependencies" }),
66
64
  ),
67
- orm: t.optional(
68
- t.boolean({ description: "Include Alepha ORM dependencies" }),
65
+ admin: t.optional(
66
+ t.boolean({ description: "Include Alepha admin panel dependencies" }),
69
67
  ),
70
68
  }),
71
69
  handler: async ({ run, flags, root }) => {
@@ -75,6 +73,8 @@ export class CoreCommands {
75
73
  await this.utils.ensureConfig(root, {
76
74
  tsconfigJson: true,
77
75
  packageJson: flags,
76
+ biomeJson: true,
77
+ viteConfigTs: true,
78
78
  indexHtml: !!flags.react,
79
79
  });
80
80
  },
@@ -86,6 +86,7 @@ export class CoreCommands {
86
86
 
87
87
  if (flags.yarn || guessedPm === "yarn") {
88
88
  await this.utils.ensureYarn(root);
89
+ await run("yarn set version stable");
89
90
  await run("yarn install", {
90
91
  alias: "Installing dependencies with Yarn",
91
92
  });
@@ -1,9 +1,9 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import { createRequire } from "node:module";
3
2
  import { join } from "node:path";
4
3
  import { $inject, AlephaError, t } from "alepha";
5
4
  import { $command } from "alepha/command";
6
5
  import { $logger } from "alepha/logger";
6
+ import type { DrizzleKitProvider, RepositoryProvider } from "alepha/orm";
7
7
  import { ProcessRunner } from "../services/ProcessRunner.ts";
8
8
  import { ProjectUtils } from "../services/ProjectUtils.ts";
9
9
 
@@ -25,7 +25,7 @@ export class DrizzleCommands {
25
25
  * Check if database migrations are up to date.
26
26
  */
27
27
  check = $command({
28
- name: "db:migrate:check",
28
+ name: "db:check-migrations",
29
29
  description: "Check if database migration files are up to date",
30
30
  args: t.optional(
31
31
  t.text({
@@ -34,81 +34,89 @@ export class DrizzleCommands {
34
34
  }),
35
35
  ),
36
36
  flags: drizzleCommandFlags,
37
- handler: async ({ args, flags, root }) => {
37
+ handler: async ({ args, root }) => {
38
38
  const rootDir = root;
39
39
  this.log.debug(`Using project root: ${rootDir}`);
40
+
40
41
  const { alepha } = await this.utils.loadAlephaFromServerEntryFile(
41
42
  rootDir,
42
43
  args,
43
44
  );
44
45
 
45
- const models: any[] = [];
46
- const repositories = alepha.descriptors("repository") as any[];
47
- const kit = createRequire(import.meta.url)("drizzle-kit/api");
48
- const migrationDir = join(rootDir, "migrations");
46
+ const repositoryProvider =
47
+ alepha.inject<RepositoryProvider>("RepositoryProvider");
48
+ const drizzleKitProvider =
49
+ alepha.inject<DrizzleKitProvider>("DrizzleKitProvider");
50
+ const accepted = new Set<string>([]);
49
51
 
50
- const journalFile = await readFile(
51
- `${migrationDir}/meta/_journal.json`,
52
- "utf-8",
53
- ).catch(() => null);
54
-
55
- if (!journalFile) {
56
- this.log.info(`No migration journal found.`);
57
- return;
58
- }
52
+ for (const primitive of repositoryProvider.getRepositories()) {
53
+ const provider = primitive.provider;
54
+ const providerName = provider.name;
55
+ if (accepted.has(providerName)) {
56
+ continue;
57
+ }
59
58
 
60
- const journal = JSON.parse(journalFile);
59
+ accepted.add(providerName);
61
60
 
62
- const lastMigration = journal.entries[journal.entries.length - 1];
61
+ const migrationDir = join(rootDir, "migrations", providerName);
63
62
 
64
- const lastSnapshot = JSON.parse(
65
- await readFile(
66
- `${migrationDir}/meta/${String(lastMigration.idx).padStart(4, "0")}_snapshot.json`,
63
+ const journalFile = await readFile(
64
+ `${migrationDir}/meta/_journal.json`,
67
65
  "utf-8",
68
- ),
69
- );
66
+ ).catch(() => null);
70
67
 
71
- for (const repository of repositories) {
72
- if (!models.includes(repository.table)) {
73
- models.push(repository.table);
68
+ if (!journalFile) {
69
+ this.log.info(`No migration journal found.`);
70
+ return;
74
71
  }
75
- }
76
72
 
77
- const now = kit.generateDrizzleJson(models, lastSnapshot.id);
73
+ const journal = JSON.parse(journalFile);
74
+ const lastMigration = journal.entries[journal.entries.length - 1];
75
+ const lastSnapshot = JSON.parse(
76
+ await readFile(
77
+ `${migrationDir}/meta/${String(lastMigration.idx).padStart(4, "0")}_snapshot.json`,
78
+ "utf-8",
79
+ ),
80
+ );
78
81
 
79
- const migrationStatements = await new Promise<Array<any>>((resolve) => {
80
- (async () => {
81
- const timer = setTimeout(() => {
82
- resolve([{ message: "Migration generation timed out." }]);
83
- }, 5000);
84
- const statements = await kit.generateMigration(lastSnapshot, now);
85
- clearTimeout(timer);
86
- resolve(statements);
87
- })();
88
- });
82
+ const models = drizzleKitProvider.getModels(provider);
83
+ const kit = drizzleKitProvider.importDrizzleKit();
84
+ const now = kit.generateDrizzleJson(models, lastSnapshot.id);
89
85
 
90
- if (migrationStatements.length === 0) {
91
- this.log.info("No changes detected.");
92
- return;
93
- }
86
+ const migrationStatements = await new Promise<Array<any>>((resolve) => {
87
+ (async () => {
88
+ const timer = setTimeout(() => {
89
+ resolve([{ message: "Migration generation timed out." }]);
90
+ }, 5000);
91
+ const statements = await kit.generateMigration(lastSnapshot, now);
92
+ clearTimeout(timer);
93
+ resolve(statements);
94
+ })();
95
+ });
94
96
 
95
- this.log.info("");
96
- this.log.info("Detected migration statements:");
97
- this.log.info("");
98
- for (const stmt of migrationStatements) {
99
- this.log.info(stmt);
100
- }
101
- this.log.info("");
97
+ if (migrationStatements.length === 0) {
98
+ this.log.info("No changes detected.");
99
+ return;
100
+ }
102
101
 
103
- this.log.info(
104
- `At least ${migrationStatements.length} change(s) detected.`,
105
- );
106
- this.log.info(
107
- "Please, run 'alepha db:generate' to update the migration files.",
108
- );
109
- this.log.info("");
102
+ this.log.info("");
103
+ this.log.info("Detected migration statements:");
104
+ this.log.info("");
105
+ for (const stmt of migrationStatements) {
106
+ this.log.info(stmt);
107
+ }
108
+ this.log.info("");
110
109
 
111
- throw new AlephaError("Database migrations are not up to date.");
110
+ this.log.info(
111
+ `At least ${migrationStatements.length} change(s) detected.`,
112
+ );
113
+ this.log.info(
114
+ "Please, run 'alepha db:generate' to update the migration files.",
115
+ );
116
+ this.log.info("");
117
+
118
+ throw new AlephaError("Database migrations are not up to date.");
119
+ }
112
120
  },
113
121
  });
114
122
 
@@ -116,7 +124,7 @@ export class DrizzleCommands {
116
124
  * Generate database migration files
117
125
  *
118
126
  * - Loads the Alepha instance from the specified entry file.
119
- * - Retrieves all repository descriptors to gather database models.
127
+ * - Retrieves all repository primitives to gather database models.
120
128
  * - Creates temporary entity definitions based on the current database schema.
121
129
  * - Writes these definitions to a temporary schema file. (node_modules/.db/entities.ts)
122
130
  * - Invokes Drizzle Kit's CLI to generate migration files based on the current schema.
@@ -159,7 +167,7 @@ export class DrizzleCommands {
159
167
  * Push database schema changes directly to the database
160
168
  *
161
169
  * - Loads the Alepha instance from the specified entry file.
162
- * - Retrieves all repository descriptors to gather database models.
170
+ * - Retrieves all repository primitives to gather database models.
163
171
  * - Creates temporary entity definitions and Drizzle config.
164
172
  * - Invokes Drizzle Kit's push command to apply schema changes directly.
165
173
  */
@@ -190,7 +198,7 @@ export class DrizzleCommands {
190
198
  * Apply pending database migrations
191
199
  *
192
200
  * - Loads the Alepha instance from the specified entry file.
193
- * - Retrieves all repository descriptors to gather database models.
201
+ * - Retrieves all repository primitives to gather database models.
194
202
  * - Creates temporary entity definitions and Drizzle config.
195
203
  * - Invokes Drizzle Kit's migrate command to apply pending migrations.
196
204
  */
@@ -221,7 +229,7 @@ export class DrizzleCommands {
221
229
  * Launch Drizzle Studio database browser
222
230
  *
223
231
  * - Loads the Alepha instance from the specified entry file.
224
- * - Retrieves all repository descriptors to gather database models.
232
+ * - Retrieves all repository primitives to gather database models.
225
233
  * - Creates temporary entity definitions and Drizzle config.
226
234
  * - Invokes Drizzle Kit's studio command to launch the web-based database browser.
227
235
  */
@@ -35,8 +35,8 @@ export class VerifyCommands {
35
35
  await run("alepha test");
36
36
  }
37
37
 
38
- if (await this.utils.hasDir(root, "migrations")) {
39
- await run("alepha db:migrate:check");
38
+ if (await this.utils.exists(root, "migrations")) {
39
+ await run("alepha db:check-migrations");
40
40
  }
41
41
 
42
42
  await run("alepha build");
@@ -68,7 +68,12 @@ export class ViteCommands {
68
68
  await access(join(root, "index.html"));
69
69
  } catch {
70
70
  this.log.trace("No index.html found, running entry file with tsx");
71
- await this.runner.exec(`tsx watch ${entry}`);
71
+ let cmd = "tsx --watch";
72
+ if (await this.utils.exists(root, ".env")) {
73
+ cmd += ` --env-file=./.env`;
74
+ }
75
+ cmd += ` ${entry}`;
76
+ await this.runner.exec(cmd);
72
77
  return;
73
78
  }
74
79
 
@@ -3,11 +3,13 @@ import { join } from "node:path";
3
3
  import { $inject, Alepha, AlephaError } from "alepha";
4
4
  import { FileSystemProvider } from "alepha/file";
5
5
  import { $logger } from "alepha/logger";
6
- import type { RepositoryProvider } from "alepha/orm";
6
+ import type { DrizzleKitProvider, RepositoryProvider } from "alepha/orm";
7
7
  import { boot } from "alepha/vite";
8
8
  import { tsImport } from "tsx/esm/api";
9
+ import { appRouterTs } from "../assets/appRouterTs.ts";
9
10
  import { biomeJson } from "../assets/biomeJson.ts";
10
11
  import { indexHtml } from "../assets/indexHtml.ts";
12
+ import { mainBrowserTs } from "../assets/mainBrowserTs.ts";
11
13
  import { tsconfigJson } from "../assets/tsconfigJson.ts";
12
14
  import { viteConfigTs } from "../assets/viteConfigTs.ts";
13
15
  import { version } from "../version.ts";
@@ -40,18 +42,16 @@ export class ProjectUtils {
40
42
  * @param root - The root directory of the project
41
43
  */
42
44
  public async ensureYarn(root: string): Promise<void> {
43
- const yarnrcPath = join(root, ".yarnrc.yml");
44
- try {
45
- await access(yarnrcPath);
46
- } catch {
47
- await writeFile(yarnrcPath, "nodeLinker: node-modules");
48
- }
45
+ await this.ensureFileExists(
46
+ root,
47
+ ".yarnrc.yml",
48
+ "nodeLinker: node-modules",
49
+ false,
50
+ );
49
51
 
50
52
  // remove lock files from other package managers
51
- const npmLockPath = join(root, "package-lock.json");
52
- const pnpmLockPath = join(root, "pnpm-lock.yaml");
53
- await this.fs.rm(npmLockPath, { force: true });
54
- await this.fs.rm(pnpmLockPath, { force: true });
53
+ await this.fs.rm(join(root, "package-lock.json"), { force: true });
54
+ await this.fs.rm(join(root, "pnpm-lock.yaml"), { force: true });
55
55
  }
56
56
 
57
57
  /**
@@ -74,8 +74,13 @@ export class ProjectUtils {
74
74
 
75
75
  if (modes.react) {
76
76
  dependencies["@alepha/react"] = `^${version}`;
77
- dependencies.react = "19.1.0";
78
- devDependencies["@types/react"] = "19.1.0";
77
+ dependencies.react = "^19.2.0";
78
+ dependencies["react-dom"] = "^19.2.0";
79
+ devDependencies["@types/react"] = "^19.2.0";
80
+ }
81
+
82
+ if (modes.admin) {
83
+ dependencies["@alepha/ui"] = `^${version}`;
79
84
  }
80
85
 
81
86
  return {
@@ -85,6 +90,7 @@ export class ProjectUtils {
85
90
  scripts: {
86
91
  dev: "alepha dev",
87
92
  build: "alepha build",
93
+ verify: "alepha verify",
88
94
  },
89
95
  };
90
96
  }
@@ -353,22 +359,6 @@ export class ProjectUtils {
353
359
  );
354
360
  }
355
361
 
356
- /**
357
- * Get DrizzleKitProvider from an Alepha instance.
358
- *
359
- * Searches the Alepha registry for the DrizzleKitProvider instance.
360
- *
361
- * @param alepha - The Alepha instance to search
362
- * @returns The DrizzleKitProvider instance
363
- */
364
- public getKitFromAlepha(alepha: Alepha): any {
365
- // biome-ignore lint/complexity/useLiteralKeys: private key
366
- return alepha["registry"]
367
- .values()
368
- .find((it: any) => it.instance.constructor.name === "DrizzleKitProvider")
369
- ?.instance;
370
- }
371
-
372
362
  /**
373
363
  * Generate JavaScript code for Drizzle entities export.
374
364
  *
@@ -439,6 +429,16 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
439
429
  },
440
430
  };
441
431
 
432
+ if (options.dialect === "sqlite") {
433
+ let url = options.providerUrl;
434
+ url = url.replace("sqlite://", "").replace("file://", "");
435
+ url = join(options.rootDir, url);
436
+
437
+ config.dbCredentials = {
438
+ url,
439
+ };
440
+ }
441
+
442
442
  if (options.providerName === "pglite") {
443
443
  config.driver = "pglite";
444
444
  }
@@ -452,6 +452,24 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
452
452
  );
453
453
  }
454
454
 
455
+ public async loadEnvFile(root: string): Promise<void> {
456
+ const envPath = join(root, ".env");
457
+ try {
458
+ const envContent = await readFile(envPath, "utf8");
459
+ const lines = envContent.split("\n");
460
+ for (const line of lines) {
461
+ const [key, ...rest] = line.split("=");
462
+ if (key) {
463
+ const value = rest.join("=");
464
+ process.env[key.trim()] = value.trim();
465
+ }
466
+ }
467
+ this.log.debug(`Loaded environment variables from ${envPath}`);
468
+ } catch {
469
+ this.log.debug(`No .env file found at ${envPath}, skipping load.`);
470
+ }
471
+ }
472
+
455
473
  /**
456
474
  * Run a drizzle-kit command for all database providers in an Alepha instance.
457
475
  *
@@ -469,6 +487,9 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
469
487
  logMessage: (providerName: string, dialect: string) => string;
470
488
  }): Promise<void> {
471
489
  const rootDir = options.root;
490
+
491
+ await this.loadEnvFile(rootDir);
492
+
472
493
  this.log.debug(`Using project root: ${rootDir}`);
473
494
 
474
495
  const { alepha, entry } = await this.loadAlephaFromServerEntryFile(
@@ -476,13 +497,14 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
476
497
  options.args,
477
498
  );
478
499
 
479
- const kit = this.getKitFromAlepha(alepha);
500
+ const drizzleKitProvider =
501
+ alepha.inject<DrizzleKitProvider>("DrizzleKitProvider");
480
502
  const repositoryProvider =
481
503
  alepha.inject<RepositoryProvider>("RepositoryProvider");
482
504
  const accepted = new Set<string>([]);
483
505
 
484
- for (const descriptor of repositoryProvider.getRepositories()) {
485
- const provider = descriptor.provider;
506
+ for (const primitive of repositoryProvider.getRepositories()) {
507
+ const provider = primitive.provider;
486
508
  const providerName = provider.name;
487
509
  const dialect = provider.dialect;
488
510
 
@@ -503,7 +525,7 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
503
525
  this.log.info(options.logMessage(providerName, dialect));
504
526
 
505
527
  const drizzleConfigJsPath = await this.prepareDrizzleConfig({
506
- kit,
528
+ kit: drizzleKitProvider,
507
529
  provider,
508
530
  providerName,
509
531
  providerUrl: provider.url,
@@ -536,14 +558,30 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
536
558
  return;
537
559
  }
538
560
 
539
- const entry = await boot.getServerEntry(root).catch(() => null);
540
- await this.fs.writeFile(
541
- join(root, "index.html"),
542
- indexHtml(entry ? entry.replace(root, "") : undefined),
543
- );
561
+ const serverEntry = "src/main.server.ts";
562
+ const browserEntry = "src/main.browser.ts";
563
+ const appRouter = "src/AppRouter.ts";
564
+
565
+ await this.fs.writeFile(join(root, "index.html"), indexHtml(browserEntry));
566
+
567
+ try {
568
+ await this.fs.mkdir(join(root, "src"), { recursive: true });
569
+ } catch {}
570
+
571
+ if (!(await this.fs.exists(join(root, browserEntry)))) {
572
+ await this.fs.writeFile(join(root, browserEntry), mainBrowserTs());
573
+ }
574
+
575
+ if (!(await this.fs.exists(join(root, serverEntry)))) {
576
+ await this.fs.writeFile(join(root, serverEntry), mainBrowserTs());
577
+ }
578
+
579
+ if (!(await this.fs.exists(join(root, appRouter)))) {
580
+ await this.fs.writeFile(join(root, appRouter), appRouterTs());
581
+ }
544
582
  }
545
583
 
546
- public async hasDir(root: string, dirName: string): Promise<boolean> {
584
+ public async exists(root: string, dirName: string): Promise<boolean> {
547
585
  return this.fs.exists(join(root, dirName));
548
586
  }
549
587
 
@@ -559,6 +597,5 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
559
597
 
560
598
  export interface DependencyModes {
561
599
  react?: boolean;
562
- // testing?: boolean;
563
- // ui?: boolean;
600
+ admin?: boolean;
564
601
  }
@@ -1,33 +1,33 @@
1
1
  import { $module } from "alepha";
2
- import { $command } from "./descriptors/$command.ts";
3
2
  import { Asker } from "./helpers/Asker.ts";
4
3
  import { PrettyPrint } from "./helpers/PrettyPrint.ts";
5
4
  import { Runner } from "./helpers/Runner.ts";
5
+ import { $command } from "./primitives/$command.ts";
6
6
  import { CliProvider } from "./providers/CliProvider.ts";
7
7
 
8
8
  // ---------------------------------------------------------------------------------------------------------------------
9
9
 
10
- export * from "./descriptors/$command.ts";
11
10
  export * from "./errors/CommandError.ts";
12
11
  export * from "./helpers/Asker.ts";
13
12
  export * from "./helpers/PrettyPrint.ts";
14
13
  export * from "./helpers/Runner.ts";
14
+ export * from "./primitives/$command.ts";
15
15
  export * from "./providers/CliProvider.ts";
16
16
 
17
17
  // ---------------------------------------------------------------------------------------------------------------------
18
18
 
19
19
  /**
20
20
  * This module provides a powerful way to build command-line interfaces
21
- * directly within your Alepha application, using declarative descriptors.
21
+ * directly within your Alepha application, using declarative primitives.
22
22
  *
23
- * It allows you to define commands using the `$command` descriptor.
23
+ * It allows you to define commands using the `$command` primitive.
24
24
  *
25
25
  * @see {@link $command}
26
26
  * @module alepha.command
27
27
  */
28
28
  export const AlephaCommand = $module({
29
29
  name: "alepha.command",
30
- descriptors: [$command],
30
+ primitives: [$command],
31
31
  services: [CliProvider, Runner, Asker, PrettyPrint],
32
32
  });
33
33
 
@@ -2,9 +2,9 @@ import type * as fs from "node:fs/promises";
2
2
  import type { glob } from "node:fs/promises";
3
3
  import {
4
4
  type Async,
5
- createDescriptor,
6
- Descriptor,
5
+ createPrimitive,
7
6
  KIND,
7
+ Primitive,
8
8
  type Static,
9
9
  type TObject,
10
10
  type TSchema,
@@ -16,19 +16,16 @@ import type { RunnerMethod } from "../helpers/Runner.ts";
16
16
  /**
17
17
  * Declares a CLI command.
18
18
  *
19
- * This descriptor allows you to define a command, its flags, and its handler
19
+ * This primitive allows you to define a command, its flags, and its handler
20
20
  * within your Alepha application structure.
21
21
  */
22
22
  export const $command = <T extends TObject, A extends TSchema>(
23
- options: CommandDescriptorOptions<T, A>,
24
- ) => createDescriptor(CommandDescriptor<T, A>, options);
23
+ options: CommandPrimitiveOptions<T, A>,
24
+ ) => createPrimitive(CommandPrimitive<T, A>, options);
25
25
 
26
26
  // ---------------------------------------------------------------------------------------------------------------------
27
27
 
28
- export interface CommandDescriptorOptions<
29
- T extends TObject,
30
- A extends TSchema,
31
- > {
28
+ export interface CommandPrimitiveOptions<T extends TObject, A extends TSchema> {
32
29
  /**
33
30
  * The handler function to execute when the command is matched.
34
31
  */
@@ -89,10 +86,10 @@ export interface CommandDescriptorOptions<
89
86
 
90
87
  // ---------------------------------------------------------------------------------------------------------------------
91
88
 
92
- export class CommandDescriptor<
89
+ export class CommandPrimitive<
93
90
  T extends TObject = TObject,
94
91
  A extends TSchema = TSchema,
95
- > extends Descriptor<CommandDescriptorOptions<T, A>> {
92
+ > extends Primitive<CommandPrimitiveOptions<T, A>> {
96
93
  public readonly flags = this.options.flags ?? t.object({});
97
94
  public readonly aliases = this.options.aliases ?? [];
98
95
 
@@ -104,7 +101,7 @@ export class CommandDescriptor<
104
101
  }
105
102
  }
106
103
 
107
- $command[KIND] = CommandDescriptor;
104
+ $command[KIND] = CommandPrimitive;
108
105
 
109
106
  // ---------------------------------------------------------------------------------------------------------------------
110
107
 
@@ -14,14 +14,14 @@ import {
14
14
  t,
15
15
  } from "alepha";
16
16
  import { $logger } from "alepha/logger";
17
- import {
18
- $command,
19
- type CommandDescriptor,
20
- type CommandHandlerArgs,
21
- } from "../descriptors/$command.ts";
22
17
  import { CommandError } from "../errors/CommandError.ts";
23
18
  import { Asker } from "../helpers/Asker.ts";
24
19
  import { Runner } from "../helpers/Runner.ts";
20
+ import {
21
+ $command,
22
+ type CommandHandlerArgs,
23
+ type CommandPrimitive,
24
+ } from "../primitives/$command.ts";
25
25
 
26
26
  // ---------------------------------------------------------------------------------------------------------------------
27
27
 
@@ -176,11 +176,11 @@ export class CliProvider {
176
176
  },
177
177
  });
178
178
 
179
- public get commands(): CommandDescriptor<any>[] {
180
- return this.alepha.descriptors($command);
179
+ public get commands(): CommandPrimitive<any>[] {
180
+ return this.alepha.primitives($command);
181
181
  }
182
182
 
183
- protected findCommand(name: string): CommandDescriptor<TObject> | undefined {
183
+ protected findCommand(name: string): CommandPrimitive<TObject> | undefined {
184
184
  return this.commands.find(
185
185
  (command) => command.name === name || command.aliases.includes(name),
186
186
  );
@@ -408,7 +408,7 @@ export class CliProvider {
408
408
  return "";
409
409
  }
410
410
 
411
- public printHelp(command?: CommandDescriptor<any>): void {
411
+ public printHelp(command?: CommandPrimitive<any>): void {
412
412
  const cliName = this.name || "cli";
413
413
  this.log.info(""); // Newline
414
414
 
@@ -485,7 +485,7 @@ export class CliProvider {
485
485
  this.log.info(""); // Newline
486
486
  }
487
487
 
488
- private getMaxCmdLength(commands: CommandDescriptor[]): number {
488
+ private getMaxCmdLength(commands: CommandPrimitive[]): number {
489
489
  return Math.max(
490
490
  ...commands.map((c) => {
491
491
  const cmdStr = [c.name, ...c.aliases].join(", ");