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
@@ -3,12 +3,12 @@ import { DateTimeProvider } from "alepha/datetime";
3
3
  import { EmailProvider } from "alepha/email";
4
4
  import { $logger } from "alepha/logger";
5
5
  import { $repository } from "alepha/orm";
6
- import { $notification } from "../descriptors/$notification.ts";
6
+ import { SmsProvider } from "alepha/sms";
7
7
  import {
8
8
  type NotificationEntity,
9
9
  notifications,
10
10
  } from "../entities/notifications.ts";
11
- import { SmsProvider } from "../providers/SmsProvider.ts";
11
+ import { $notification } from "../primitives/$notification.ts";
12
12
 
13
13
  export class NotificationSenderService {
14
14
  protected readonly alepha = $inject(Alepha);
@@ -161,7 +161,7 @@ export class NotificationSenderService {
161
161
  const variables = notification.variables || {};
162
162
  const contact = notification.contact;
163
163
  const template = this.alepha
164
- .descriptors($notification)
164
+ .primitives($notification)
165
165
  .find((it) => it.name === notification.template);
166
166
 
167
167
  if (!template) {
@@ -2,8 +2,8 @@ import { $module } from "alepha";
2
2
 
3
3
  // ---------------------------------------------------------------------------------------------------------------------
4
4
 
5
- export * from "./descriptors/$config.ts";
6
5
  export * from "./entities/parameters.ts";
6
+ export * from "./primitives/$config.ts";
7
7
 
8
8
  // ---------------------------------------------------------------------------------------------------------------------
9
9
 
@@ -1,13 +1,8 @@
1
- import {
2
- createDescriptor,
3
- Descriptor,
4
- type Static,
5
- type TObject,
6
- } from "alepha";
1
+ import { createPrimitive, Primitive, type Static, type TObject } from "alepha";
7
2
  import type { UserAccount } from "alepha/security";
8
3
 
9
4
  /**
10
- * Creates a configuration parameter descriptor for managing application settings.
5
+ * Creates a configuration parameter primitive for managing application settings.
11
6
  *
12
7
  * Provides type-safe, versioned configuration with schema validation, default values,
13
8
  * and scheduled activation. Useful for feature flags, system parameters, and runtime settings.
@@ -33,15 +28,15 @@ import type { UserAccount } from "alepha/security";
33
28
  * }
34
29
  * ```
35
30
  */
36
- export interface ConfigDescriptorOptions<T extends TObject> {
31
+ export interface ConfigPrimitiveOptions<T extends TObject> {
37
32
  name?: string;
38
33
  description?: string;
39
34
  schema: T;
40
35
  default: Static<T>;
41
36
  }
42
37
 
43
- export class ConfigDescriptor<T extends TObject> extends Descriptor<
44
- ConfigDescriptorOptions<T>
38
+ export class ConfigPrimitive<T extends TObject> extends Primitive<
39
+ ConfigPrimitiveOptions<T>
45
40
  > {
46
41
  public get name() {
47
42
  return this.options.name || this.config.propertyKey;
@@ -78,7 +73,7 @@ export class ConfigDescriptor<T extends TObject> extends Descriptor<
78
73
  }
79
74
 
80
75
  export const $config = <T extends TObject>(
81
- options: ConfigDescriptorOptions<T>,
76
+ options: ConfigPrimitiveOptions<T>,
82
77
  ) => {
83
- return createDescriptor(ConfigDescriptor<T>, options);
78
+ return createPrimitive(ConfigPrimitive<T>, options);
84
79
  };
@@ -21,10 +21,10 @@ export * from "./controllers/IdentityController.ts";
21
21
  export * from "./controllers/SessionController.ts";
22
22
  export * from "./controllers/UserController.ts";
23
23
  export * from "./controllers/UserRealmController.ts";
24
- export * from "./descriptors/$userRealm.ts";
25
24
  export * from "./entities/identities.ts";
26
25
  export * from "./entities/sessions.ts";
27
26
  export * from "./entities/users.ts";
27
+ export * from "./primitives/$userRealm.ts";
28
28
  export * from "./providers/UserRealmProvider.ts";
29
29
  export * from "./schemas/completePasswordResetRequestSchema.ts";
30
30
  export * from "./schemas/completeRegistrationRequestSchema.ts";
@@ -2,15 +2,15 @@ import { $context } from "alepha";
2
2
  import type { Repository } from "alepha/orm";
3
3
  import {
4
4
  $realm,
5
- type RealmDescriptor,
6
- type RealmDescriptorOptions,
5
+ type RealmPrimitive,
6
+ type RealmPrimitiveOptions,
7
7
  SecurityProvider,
8
8
  } from "alepha/security";
9
9
  import {
10
10
  $authCredentials,
11
11
  $authGithub,
12
12
  $authGoogle,
13
- type AuthDescriptor,
13
+ type AuthPrimitive,
14
14
  type Credentials,
15
15
  type LinkAccountOptions,
16
16
  type WithLinkFn,
@@ -23,7 +23,7 @@ import { DEFAULT_USER_REALM_NAME, type users } from "../entities/users.ts";
23
23
  import { UserRealmProvider } from "../providers/UserRealmProvider.ts";
24
24
  import { SessionService } from "../services/SessionService.ts";
25
25
 
26
- export type UserRealmDescriptor = RealmDescriptor & WithLinkFn & WithLoginFn;
26
+ export type UserRealmPrimitive = RealmPrimitive & WithLinkFn & WithLoginFn;
27
27
 
28
28
  /**
29
29
  * Already configured realm for user management.
@@ -41,7 +41,7 @@ export type UserRealmDescriptor = RealmDescriptor & WithLinkFn & WithLoginFn;
41
41
 
42
42
  export const $userRealm = (
43
43
  options: UserRealmOptions = {},
44
- ): UserRealmDescriptor => {
44
+ ): UserRealmPrimitive => {
45
45
  const { alepha } = $context();
46
46
  const sessionService = alepha.inject(SessionService);
47
47
  const securityProvider = alepha.inject(SecurityProvider);
@@ -50,7 +50,7 @@ export const $userRealm = (
50
50
 
51
51
  userRealmProvider.register(name, options);
52
52
 
53
- const realm: UserRealmDescriptor = $realm({
53
+ const realm: UserRealmPrimitive = $realm({
54
54
  ...options.realm,
55
55
  name,
56
56
  secret: options.secret ?? securityProvider.secretKey,
@@ -104,7 +104,7 @@ export const $userRealm = (
104
104
  };
105
105
 
106
106
  if (options.identities) {
107
- const identities: Record<string, AuthDescriptor> = {};
107
+ const identities: Record<string, AuthPrimitive> = {};
108
108
  if (options.identities?.credentials) {
109
109
  identities.credentials = $authCredentials(realm);
110
110
  }
@@ -135,7 +135,7 @@ export interface UserRealmOptions {
135
135
  *
136
136
  * It's already pre-configured for user management with admin and user roles.
137
137
  */
138
- realm?: Partial<RealmDescriptorOptions>;
138
+ realm?: Partial<RealmPrimitiveOptions>;
139
139
 
140
140
  /**
141
141
  * Override entities.
@@ -40,7 +40,7 @@ export class UserRealmProvider {
40
40
  protected readonly onConfigure = $hook({
41
41
  on: "configure",
42
42
  handler: () => {
43
- this.alepha.state.set("alepha.server.security.system.user", {
43
+ this.alepha.store.set("alepha.server.security.system.user", {
44
44
  id: "00000000-0000-0000-0000-000000000000",
45
45
  name: "system",
46
46
  roles: ["admin"], // TODO: use realm config
@@ -1,10 +1,10 @@
1
1
  import { $module } from "alepha";
2
- import { $batch } from "./descriptors/$batch.ts";
2
+ import { $batch } from "./primitives/$batch.ts";
3
3
  import { BatchProvider } from "./providers/BatchProvider.ts";
4
4
 
5
5
  // ---------------------------------------------------------------------------------------------------------------------
6
6
 
7
- export * from "./descriptors/$batch.ts";
7
+ export * from "./primitives/$batch.ts";
8
8
  export * from "./providers/BatchProvider.ts";
9
9
 
10
10
  // ---------------------------------------------------------------------------------------------------------------------
@@ -53,6 +53,6 @@ export * from "./providers/BatchProvider.ts";
53
53
  */
54
54
  export const AlephaBatch = $module({
55
55
  name: "alepha.batch",
56
- descriptors: [$batch],
56
+ primitives: [$batch],
57
57
  services: [BatchProvider],
58
58
  });
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  $hook,
3
3
  $inject,
4
- createDescriptor,
5
- Descriptor,
4
+ createPrimitive,
6
5
  KIND,
6
+ Primitive,
7
7
  type Static,
8
8
  type TSchema,
9
9
  } from "alepha";
10
10
  import type { DurationLike } from "alepha/datetime";
11
- import type { RetryDescriptorOptions } from "alepha/retry";
11
+ import type { RetryPrimitiveOptions } from "alepha/retry";
12
12
  import {
13
13
  type BatchContext,
14
14
  type BatchItemState,
@@ -17,19 +17,16 @@ import {
17
17
  } from "../providers/BatchProvider.ts";
18
18
 
19
19
  /**
20
- * Creates a batch processing descriptor for efficient grouping and processing of multiple operations.
20
+ * Creates a batch processing primitive for efficient grouping and processing of multiple operations.
21
21
  */
22
22
  export const $batch = <TItem extends TSchema, TResponse>(
23
- options: BatchDescriptorOptions<TItem, TResponse>,
24
- ): BatchDescriptor<TItem, TResponse> =>
25
- createDescriptor(BatchDescriptor<TItem, TResponse>, options);
23
+ options: BatchPrimitiveOptions<TItem, TResponse>,
24
+ ): BatchPrimitive<TItem, TResponse> =>
25
+ createPrimitive(BatchPrimitive<TItem, TResponse>, options);
26
26
 
27
27
  // ---------------------------------------------------------------------------------------------------------------------
28
28
 
29
- export interface BatchDescriptorOptions<
30
- TItem extends TSchema,
31
- TResponse = any,
32
- > {
29
+ export interface BatchPrimitiveOptions<TItem extends TSchema, TResponse = any> {
33
30
  /**
34
31
  * TypeBox schema for validating each item added to the batch.
35
32
  */
@@ -69,7 +66,7 @@ export interface BatchDescriptorOptions<
69
66
  /**
70
67
  * Retry configuration for failed batch processing operations.
71
68
  */
72
- retry?: Omit<RetryDescriptorOptions<() => Array<Static<TItem>>>, "handler">;
69
+ retry?: Omit<RetryPrimitiveOptions<() => Array<Static<TItem>>>, "handler">;
73
70
  }
74
71
 
75
72
  // ---------------------------------------------------------------------------------------------------------------------
@@ -78,16 +75,16 @@ export type { BatchItemState, BatchItemStatus };
78
75
 
79
76
  // ---------------------------------------------------------------------------------------------------------------------
80
77
 
81
- export class BatchDescriptor<
78
+ export class BatchPrimitive<
82
79
  TItem extends TSchema,
83
80
  TResponse = any,
84
- > extends Descriptor<BatchDescriptorOptions<TItem, TResponse>> {
81
+ > extends Primitive<BatchPrimitiveOptions<TItem, TResponse>> {
85
82
  protected readonly batchProvider = $inject(BatchProvider);
86
83
  protected readonly context: BatchContext<Static<TItem>, TResponse>;
87
84
 
88
85
  constructor(
89
86
  ...args: ConstructorParameters<
90
- typeof Descriptor<BatchDescriptorOptions<TItem, TResponse>>
87
+ typeof Primitive<BatchPrimitiveOptions<TItem, TResponse>>
91
88
  >
92
89
  ) {
93
90
  super(...args);
@@ -172,4 +169,4 @@ export class BatchDescriptor<
172
169
  });
173
170
  }
174
171
 
175
- $batch[KIND] = BatchDescriptor;
172
+ $batch[KIND] = BatchPrimitive;
@@ -1,17 +1,17 @@
1
1
  import { $module, type FileLike } from "alepha";
2
2
  import {
3
3
  $bucket,
4
- type BucketDescriptor,
5
4
  type BucketFileOptions,
6
- } from "./descriptors/$bucket.ts";
5
+ type BucketPrimitive,
6
+ } from "./primitives/$bucket.ts";
7
7
  import { FileStorageProvider } from "./providers/FileStorageProvider.ts";
8
8
  import { LocalFileStorageProvider } from "./providers/LocalFileStorageProvider.ts";
9
9
  import { MemoryFileStorageProvider } from "./providers/MemoryFileStorageProvider.ts";
10
10
 
11
11
  // ---------------------------------------------------------------------------------------------------------------------
12
12
 
13
- export * from "./descriptors/$bucket.ts";
14
13
  export * from "./errors/FileNotFoundError.ts";
14
+ export * from "./primitives/$bucket.ts";
15
15
  export * from "./providers/FileStorageProvider.ts";
16
16
  export * from "./providers/LocalFileStorageProvider.ts";
17
17
  export * from "./providers/MemoryFileStorageProvider.ts";
@@ -27,7 +27,7 @@ declare module "alepha" {
27
27
  "bucket:file:uploaded": {
28
28
  id: string;
29
29
  file: FileLike;
30
- bucket: BucketDescriptor;
30
+ bucket: BucketPrimitive;
31
31
  options: BucketFileOptions;
32
32
  };
33
33
  /**
@@ -35,7 +35,7 @@ declare module "alepha" {
35
35
  */
36
36
  "bucket:file:deleted": {
37
37
  id: string;
38
- bucket: BucketDescriptor;
38
+ bucket: BucketPrimitive;
39
39
  };
40
40
  }
41
41
  }
@@ -43,9 +43,9 @@ declare module "alepha" {
43
43
  // ---------------------------------------------------------------------------------------------------------------------
44
44
 
45
45
  /**
46
- * Provides file storage capabilities through declarative bucket descriptors with support for multiple storage backends.
46
+ * Provides file storage capabilities through declarative bucket primitives with support for multiple storage backends.
47
47
  *
48
- * The bucket module enables unified file operations across different storage systems using the `$bucket` descriptor
48
+ * The bucket module enables unified file operations across different storage systems using the `$bucket` primitive
49
49
  * on class properties. It abstracts storage provider differences, offering consistent APIs for local filesystem,
50
50
  * cloud storage, or in-memory storage for testing environments.
51
51
  *
@@ -55,7 +55,7 @@ declare module "alepha" {
55
55
  */
56
56
  export const AlephaBucket = $module({
57
57
  name: "alepha.bucket",
58
- descriptors: [$bucket],
58
+ primitives: [$bucket],
59
59
  services: [
60
60
  FileStorageProvider,
61
61
  MemoryFileStorageProvider,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  $inject,
3
- createDescriptor,
4
- Descriptor,
3
+ createPrimitive,
5
4
  type FileLike,
6
5
  KIND,
6
+ Primitive,
7
7
  type Service,
8
8
  } from "alepha";
9
9
  import { FileSystemProvider } from "alepha/file";
@@ -12,7 +12,7 @@ import { FileStorageProvider } from "../providers/FileStorageProvider.ts";
12
12
  import { MemoryFileStorageProvider } from "../providers/MemoryFileStorageProvider.ts";
13
13
 
14
14
  /**
15
- * Creates a bucket descriptor for file storage and management with configurable validation.
15
+ * Creates a bucket primitive for file storage and management with configurable validation.
16
16
  *
17
17
  * Provides a comprehensive file storage system that handles uploads, downloads, validation,
18
18
  * and management across multiple storage backends with MIME type and size limit controls.
@@ -60,10 +60,10 @@ import { MemoryFileStorageProvider } from "../providers/MemoryFileStorageProvide
60
60
  * }
61
61
  * ```
62
62
  */
63
- export const $bucket = (options: BucketDescriptorOptions) =>
64
- createDescriptor(BucketDescriptor, options);
63
+ export const $bucket = (options: BucketPrimitiveOptions) =>
64
+ createPrimitive(BucketPrimitive, options);
65
65
 
66
- export interface BucketDescriptorOptions extends BucketFileOptions {
66
+ export interface BucketPrimitiveOptions extends BucketFileOptions {
67
67
  /**
68
68
  * File storage provider configuration for the bucket.
69
69
  *
@@ -204,7 +204,7 @@ export interface BucketFileOptions {
204
204
 
205
205
  // ---------------------------------------------------------------------------------------------------------------------
206
206
 
207
- export class BucketDescriptor extends Descriptor<BucketDescriptorOptions> {
207
+ export class BucketPrimitive extends Primitive<BucketPrimitiveOptions> {
208
208
  public readonly provider = this.$provider();
209
209
  private readonly fileSystem = $inject(FileSystemProvider);
210
210
 
@@ -302,7 +302,7 @@ export class BucketDescriptor extends Descriptor<BucketDescriptorOptions> {
302
302
  }
303
303
  }
304
304
 
305
- $bucket[KIND] = BucketDescriptor;
305
+ $bucket[KIND] = BucketPrimitive;
306
306
 
307
307
  // ---------------------------------------------------------------------------------------------------------------------
308
308
 
@@ -17,8 +17,8 @@ import {
17
17
  } from "alepha";
18
18
  import { FileDetector, FileSystemProvider } from "alepha/file";
19
19
  import { $logger } from "alepha/logger";
20
- import { $bucket } from "../descriptors/$bucket.ts";
21
20
  import { FileNotFoundError } from "../errors/FileNotFoundError.ts";
21
+ import { $bucket } from "../primitives/$bucket.ts";
22
22
  import type { FileStorageProvider } from "./FileStorageProvider.ts";
23
23
 
24
24
  // ---------------------------------------------------------------------------------------------------------------------
@@ -68,7 +68,7 @@ export class LocalFileStorageProvider implements FileStorageProvider {
68
68
  this.alepha.isTest() &&
69
69
  this.storagePath === localFileStorageOptions.options.default.storagePath
70
70
  ) {
71
- this.alepha.state.set(localFileStorageOptions, {
71
+ this.alepha.store.set(localFileStorageOptions, {
72
72
  storagePath: join(tmpdir(), `alepha-test-${Date.now()}`),
73
73
  });
74
74
  }
@@ -82,7 +82,7 @@ export class LocalFileStorageProvider implements FileStorageProvider {
82
82
  await mkdir(this.storagePath, { recursive: true });
83
83
  } catch {}
84
84
 
85
- for (const bucket of this.alepha.descriptors($bucket)) {
85
+ for (const bucket of this.alepha.primitives($bucket)) {
86
86
  if (bucket.provider !== this) {
87
87
  continue;
88
88
  }
@@ -1,11 +1,11 @@
1
1
  import { $module } from "alepha";
2
- import { $cache } from "./descriptors/$cache.ts";
2
+ import { $cache } from "./primitives/$cache.ts";
3
3
  import { CacheProvider } from "./providers/CacheProvider.ts";
4
4
  import { MemoryCacheProvider } from "./providers/MemoryCacheProvider.ts";
5
5
 
6
6
  // ---------------------------------------------------------------------------------------------------------------------
7
7
 
8
- export * from "./descriptors/$cache.ts";
8
+ export * from "./primitives/$cache.ts";
9
9
  export * from "./providers/CacheProvider.ts";
10
10
  export * from "./providers/MemoryCacheProvider.ts";
11
11
 
@@ -14,7 +14,7 @@ export * from "./providers/MemoryCacheProvider.ts";
14
14
  /**
15
15
  * Provides high-performance caching capabilities for Alepha applications with configurable TTL and multiple storage backends.
16
16
  *
17
- * The cache module enables declarative caching through the `$cache` descriptor, allowing you to cache method results,
17
+ * The cache module enables declarative caching through the `$cache` primitive, allowing you to cache method results,
18
18
  * API responses, or computed values with automatic invalidation and type safety. It supports both in-memory and
19
19
  * persistent storage backends for different performance and durability requirements.
20
20
  *
@@ -24,7 +24,7 @@ export * from "./providers/MemoryCacheProvider.ts";
24
24
  */
25
25
  export const AlephaCache = $module({
26
26
  name: "alepha.cache",
27
- descriptors: [$cache],
27
+ primitives: [$cache],
28
28
  services: [CacheProvider, MemoryCacheProvider],
29
29
  register: (alepha) =>
30
30
  alepha.with({
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  $env,
3
3
  $inject,
4
- createDescriptor,
5
- Descriptor,
4
+ createPrimitive,
6
5
  type InstantiableClass,
7
6
  KIND,
7
+ Primitive,
8
8
  t,
9
9
  } from "alepha";
10
10
  import { DateTimeProvider, type DurationLike } from "alepha/datetime";
@@ -13,7 +13,7 @@ import { CacheProvider } from "../providers/CacheProvider.ts";
13
13
  import { MemoryCacheProvider } from "../providers/MemoryCacheProvider.ts";
14
14
 
15
15
  /**
16
- * Creates a cache descriptor for high-performance data caching with automatic management.
16
+ * Creates a cache primitive for high-performance data caching with automatic management.
17
17
  *
18
18
  * Provides a caching layer that improves application performance by storing frequently accessed
19
19
  * data in memory or external stores like Redis, with support for both function result caching
@@ -61,14 +61,14 @@ import { MemoryCacheProvider } from "../providers/MemoryCacheProvider.ts";
61
61
  * ```
62
62
  */
63
63
  export const $cache = <TReturn = string, TParameter extends any[] = any[]>(
64
- options: CacheDescriptorOptions<TReturn, TParameter> = {},
65
- ): CacheDescriptorFn<TReturn, TParameter> => {
66
- const instance = createDescriptor(
67
- CacheDescriptor<TReturn, TParameter>,
64
+ options: CachePrimitiveOptions<TReturn, TParameter> = {},
65
+ ): CachePrimitiveFn<TReturn, TParameter> => {
66
+ const instance = createPrimitive(
67
+ CachePrimitive<TReturn, TParameter>,
68
68
  options,
69
69
  );
70
70
  const fn = (...args: TParameter): Promise<TReturn> => instance.run(...args);
71
- return Object.setPrototypeOf(fn, instance) as CacheDescriptorFn<
71
+ return Object.setPrototypeOf(fn, instance) as CachePrimitiveFn<
72
72
  TReturn,
73
73
  TParameter
74
74
  >;
@@ -76,7 +76,7 @@ export const $cache = <TReturn = string, TParameter extends any[] = any[]>(
76
76
 
77
77
  // ---------------------------------------------------------------------------------------------------------------------
78
78
 
79
- export interface CacheDescriptorOptions<
79
+ export interface CachePrimitiveOptions<
80
80
  TReturn = any,
81
81
  TParameter extends any[] = any[],
82
82
  > {
@@ -130,10 +130,10 @@ const envSchema = t.object({
130
130
  }),
131
131
  });
132
132
 
133
- export class CacheDescriptor<
133
+ export class CachePrimitive<
134
134
  TReturn = any,
135
135
  TParameter extends any[] = any[],
136
- > extends Descriptor<CacheDescriptorOptions<TReturn, TParameter>> {
136
+ > extends Primitive<CachePrimitiveOptions<TReturn, TParameter>> {
137
137
  protected readonly env = $env(envSchema);
138
138
  protected readonly dateTimeProvider = $inject(DateTimeProvider);
139
139
  protected readonly provider = this.$provider();
@@ -277,14 +277,14 @@ export class CacheDescriptor<
277
277
  }
278
278
  }
279
279
 
280
- export interface CacheDescriptorFn<
280
+ export interface CachePrimitiveFn<
281
281
  TReturn = any,
282
282
  TParameter extends any[] = any[],
283
- > extends CacheDescriptor<TReturn, TParameter> {
283
+ > extends CachePrimitive<TReturn, TParameter> {
284
284
  /**
285
- * Run the cache descriptor with the provided arguments.
285
+ * Run the cache primitive with the provided arguments.
286
286
  */
287
287
  (...args: TParameter): Promise<TReturn>;
288
288
  }
289
289
 
290
- $cache[KIND] = CacheDescriptor;
290
+ $cache[KIND] = CachePrimitive;
@@ -9,6 +9,7 @@ import type { InlineConfig } from "tsdown";
9
9
  interface Module {
10
10
  name: string;
11
11
  dependencies: string[];
12
+ native?: boolean;
12
13
  browser?: boolean;
13
14
  node?: boolean;
14
15
  }
@@ -34,25 +35,35 @@ export class AlephaPackageBuilderCli {
34
35
  });
35
36
 
36
37
  pkgData.exports = {};
38
+
37
39
  for (const item of modules) {
38
40
  const path =
39
41
  item.name === "core" ? "." : `./${item.name.replace("-", "/")}`;
40
42
  pkgData.exports[path] = {};
41
43
  // order is important here for compatibility
42
44
  pkgData.exports[path].types = `./src/${item.name}/index.ts`;
45
+ if (item.native) {
46
+ pkgData.exports[path]["react-native"] =
47
+ `./src/${item.name}/index.native.ts`;
48
+ } else if (item.browser) {
49
+ pkgData.exports[path]["react-native"] =
50
+ `./src/${item.name}/index.browser.ts`;
51
+ }
43
52
  if (item.browser) {
44
53
  pkgData.exports[path].browser = `./src/${item.name}/index.browser.ts`;
45
54
  }
46
55
  pkgData.exports[path].import = `./src/${item.name}/index.ts`;
47
- pkgData.exports[path].require = `./src/${item.name}/index.ts`;
48
56
  }
57
+
49
58
  if (packageName === "alepha") {
50
59
  pkgData.exports["./tsconfig.base"] = "./tsconfig.base.json";
51
60
  pkgData.exports["./package.json"] = "./package.json";
52
61
  }
62
+
53
63
  if (packageName === "@alepha/ui") {
54
64
  pkgData.exports["./styles"] = "./styles.css";
55
65
  }
66
+
56
67
  await this.fs.writeFile("package.json", JSON.stringify(pkgData, null, 2));
57
68
 
58
69
  const tmpDir = join(root, "node_modules/.alepha");
@@ -65,7 +76,10 @@ export class AlephaPackageBuilderCli {
65
76
 
66
77
  const external = [
67
78
  "alepha",
68
- ...modules.map((item) => `alepha/${item.name}`),
79
+ packageName,
80
+ ...modules.map(
81
+ (item) => `${packageName}/${item.name.replace("-", "/")}`,
82
+ ),
69
83
  ];
70
84
 
71
85
  await run.rm(this.dist);
@@ -78,13 +92,24 @@ export class AlephaPackageBuilderCli {
78
92
  entries.push({
79
93
  entry: join(src, "index.ts"),
80
94
  outDir: dest,
81
- format: ["esm", "cjs"],
95
+ format: ["esm"],
82
96
  sourcemap: true,
83
97
  fixedExtension: false,
84
98
  platform: "node", // TODO: node must be enabled only if index.node.ts exists
85
99
  external,
86
100
  });
87
101
 
102
+ if (item.native) {
103
+ entries.push({
104
+ entry: join(src, "index.native.ts"),
105
+ outDir: dest,
106
+ platform: "neutral",
107
+ sourcemap: true,
108
+ dts: false,
109
+ external,
110
+ });
111
+ }
112
+
88
113
  if (item.browser) {
89
114
  entries.push({
90
115
  entry: join(src, "index.browser.ts"),
@@ -239,6 +264,7 @@ export async function analyzeModules(
239
264
 
240
265
  // Check for browser/node entry points
241
266
  const hasBrowser = await fileExists(join(modulePath, "index.browser.ts"));
267
+ const hasNative = await fileExists(join(modulePath, "index.native.ts"));
242
268
  const hasNode = await fileExists(join(modulePath, "index.node.ts"));
243
269
 
244
270
  // Get all .ts/.tsx files in this module
@@ -271,6 +297,7 @@ export async function analyzeModules(
271
297
  dependencies: Array.from(dependencies),
272
298
  };
273
299
 
300
+ if (hasNative) module.native = true;
274
301
  if (hasBrowser) module.browser = true;
275
302
  if (hasNode) module.node = true;
276
303
 
@@ -0,0 +1,9 @@
1
+ export const appRouterTs = () => `
2
+ import { $page } from "@alepha/react";
3
+
4
+ export class AppRouter {
5
+ home = $page({
6
+ component: () => "Hello World",
7
+ });
8
+ }
9
+ `.trim()
@@ -1,5 +1,5 @@
1
1
  export const indexHtml = (
2
- browserEntry: string = "/src/main.tsx",
2
+ browserEntry: string,
3
3
  ) => `
4
4
  <!DOCTYPE html>
5
5
  <html lang="en">
@@ -8,6 +8,7 @@ export const indexHtml = (
8
8
  <title>App</title>
9
9
  </head>
10
10
  <body>
11
+ <div id="root"></div>
11
12
  <script type="module" src="${browserEntry}"></script>
12
13
  </body>
13
14
  </html>
@@ -0,0 +1,10 @@
1
+ export const mainBrowserTs = () => `
2
+ import { Alepha, run } from "alepha";
3
+ import { AppRouter } from "./AppRouter.ts";
4
+
5
+ const alepha = Alepha.create();
6
+
7
+ alepha.with(AppRouter);
8
+
9
+ run(alepha);
10
+ `.trim()