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
@@ -10,7 +10,7 @@ import * as TypeBoxValue from "typebox/value";
10
10
 
11
11
  //#region src/core/constants/KIND.ts
12
12
  /**
13
- * Used for identifying descriptors.
13
+ * Used for identifying primitives.
14
14
  *
15
15
  * @internal
16
16
  */
@@ -28,7 +28,7 @@ const MODULE = Symbol.for("Alepha.Module");
28
28
  //#endregion
29
29
  //#region src/core/constants/OPTIONS.ts
30
30
  /**
31
- * Used for descriptors options.
31
+ * Used for primitives options.
32
32
  *
33
33
  * @internal
34
34
  */
@@ -43,98 +43,6 @@ var AlephaError = class extends Error {
43
43
  name = "AlephaError";
44
44
  };
45
45
 
46
- //#endregion
47
- //#region src/core/descriptors/$module.ts
48
- /**
49
- * Wrap Services and Descriptors into a Module.
50
- *
51
- * - A module is just a Service with some extra {@link Module}.
52
- * - You must attach a `name` to it.
53
- * - Name must follow the pattern: `project.module.submodule`. (e.g. `myapp.users.auth`).
54
- *
55
- * @example
56
- * ```ts
57
- * import { $module } from "alepha";
58
- * import { MyService } from "./MyService.ts";
59
- *
60
- * // export MyService, so it can be used everywhere (optional)
61
- * export * from "./MyService.ts";
62
- *
63
- * export default $module({
64
- * name: "my.project.module",
65
- * // MyService will have a module context "my.project.module"
66
- * services: [MyService],
67
- * });
68
- * ```
69
- *
70
- * ### Why Modules?
71
- *
72
- * #### Logging
73
- *
74
- * By default, AlephaLogger will log the module name in the logs.
75
- * This helps to identify where the logs are coming from.
76
- *
77
- * You can also set different log levels for different modules.
78
- * It means you can set 'some.very.specific.module' to 'debug' and keep the rest of the application to 'info'.
79
- *
80
- * #### Modulith
81
- *
82
- * Force to structure your application in modules, even if it's a single deployable unit.
83
- * It helps to keep a clean architecture and avoid monolithic applications.
84
- *
85
- * A strict mode flag will probably come to enforce module boundaries.
86
- * -> Throwing errors when a service from another module is injected.
87
- * But it's not implemented yet.
88
- *
89
- * ### When not to use Modules?
90
- *
91
- * Small applications does not need modules. It's better to keep it simple.
92
- * Modules are more useful when the application grows and needs to be structured.
93
- * If we speak with number of `$actions`, a module should be used when you have more than 30 actions in a single module.
94
- * Meaning that if you have 100 actions, you should have at least 3 modules.
95
- */
96
- const $module = (options) => {
97
- const { services = [], descriptors = [], name } = options;
98
- if (!name || !Module.NAME_REGEX.test(name)) throw new AlephaError(`Invalid module name '${name}'. It should be in the format of 'project.module.submodule'`);
99
- const $ = class extends Module {
100
- options = options;
101
- register(alepha) {
102
- if (typeof options.register === "function") {
103
- options.register(alepha);
104
- return;
105
- }
106
- for (const service of services) alepha.inject(service, { parent: this.constructor });
107
- }
108
- };
109
- Object.defineProperty($, "name", {
110
- value: name,
111
- writable: false
112
- });
113
- for (const service of services) if (!Module.is(service)) service[MODULE] = $;
114
- for (const factory of descriptors) if (typeof factory[KIND] === "function") factory[KIND][MODULE] = $;
115
- return $;
116
- };
117
- /**
118
- * Base class for all modules.
119
- */
120
- var Module = class Module {
121
- static NAME_REGEX = /^[a-z]+(\.[a-z][a-z0-9-]*)*$/;
122
- /**
123
- * Check if a Service is a Module.
124
- */
125
- static is(ctor) {
126
- return ctor.prototype instanceof Module;
127
- }
128
- /**
129
- * Get the Module of a Service.
130
- *
131
- * Returns undefined if the Service is not part of a Module.
132
- */
133
- static of(ctor) {
134
- return ctor[MODULE];
135
- }
136
- };
137
-
138
46
  //#endregion
139
47
  //#region src/core/errors/CircularDependencyError.ts
140
48
  var CircularDependencyError = class extends AlephaError {
@@ -183,7 +91,7 @@ const __alephaRef = {};
183
91
  /**
184
92
  * Note:
185
93
  *
186
- * This file is used to share context between $descriptors and the Alepha core during the injection phase.
94
+ * This file is used to share context between $primitives and the Alepha core during the injection phase.
187
95
  *
188
96
  * There is no side effect as long as Alepha is not used concurrently in multiple contexts (which is not the case).
189
97
  *
@@ -222,11 +130,11 @@ const __alephaRef = {};
222
130
  */
223
131
 
224
132
  //#endregion
225
- //#region src/core/descriptors/$context.ts
133
+ //#region src/core/primitives/$context.ts
226
134
  /**
227
135
  * Get Alepha instance and current service from the current context.
228
136
  *
229
- * It can only be used inside $descriptor functions.
137
+ * It can only be used inside $primitive functions.
230
138
  *
231
139
  * ```ts
232
140
  * import { $context } from "alepha";
@@ -235,7 +143,7 @@ const __alephaRef = {};
235
143
  * const { alepha, service, module } = $context();
236
144
  *
237
145
  * // alepha - alepha instance
238
- * // service - class which is creating this descriptor, this is NOT the instance but the service definition
146
+ * // service - class which is creating this primitive, this is NOT the instance but the service definition
239
147
  * // module - module definition, if any
240
148
  *
241
149
  * return {};
@@ -260,8 +168,8 @@ const $context = () => {
260
168
  };
261
169
 
262
170
  //#endregion
263
- //#region src/core/helpers/descriptor.ts
264
- var Descriptor = class {
171
+ //#region src/core/helpers/primitive.ts
172
+ var Primitive = class {
265
173
  alepha;
266
174
  options;
267
175
  config;
@@ -275,14 +183,14 @@ var Descriptor = class {
275
183
  };
276
184
  }
277
185
  /**
278
- * Called automatically by Alepha after the descriptor is created.
186
+ * Called automatically by Alepha after the primitive is created.
279
187
  */
280
188
  onInit() {}
281
189
  };
282
- const createDescriptor = (descriptor, options) => {
190
+ const createPrimitive = (primitive, options) => {
283
191
  const { alepha, service } = $context();
284
- if (MODULE in descriptor && descriptor[MODULE]) alepha.with(descriptor[MODULE]);
285
- return alepha.inject(descriptor, {
192
+ if (MODULE in primitive && primitive[MODULE]) alepha.with(primitive[MODULE]);
193
+ return alepha.inject(primitive, {
286
194
  lifetime: "transient",
287
195
  args: [{
288
196
  options,
@@ -300,6 +208,98 @@ function isClass(func) {
300
208
  return !!descriptor && !descriptor.writable;
301
209
  }
302
210
 
211
+ //#endregion
212
+ //#region src/core/primitives/$module.ts
213
+ /**
214
+ * Wrap Services and Primitives into a Module.
215
+ *
216
+ * - A module is just a Service with some extra {@link Module}.
217
+ * - You must attach a `name` to it.
218
+ * - Name must follow the pattern: `project.module.submodule`. (e.g. `myapp.users.auth`).
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * import { $module } from "alepha";
223
+ * import { MyService } from "./MyService.ts";
224
+ *
225
+ * // export MyService, so it can be used everywhere (optional)
226
+ * export * from "./MyService.ts";
227
+ *
228
+ * export default $module({
229
+ * name: "my.project.module",
230
+ * // MyService will have a module context "my.project.module"
231
+ * services: [MyService],
232
+ * });
233
+ * ```
234
+ *
235
+ * ### Why Modules?
236
+ *
237
+ * #### Logging
238
+ *
239
+ * By default, AlephaLogger will log the module name in the logs.
240
+ * This helps to identify where the logs are coming from.
241
+ *
242
+ * You can also set different log levels for different modules.
243
+ * It means you can set 'some.very.specific.module' to 'debug' and keep the rest of the application to 'info'.
244
+ *
245
+ * #### Modulith
246
+ *
247
+ * Force to structure your application in modules, even if it's a single deployable unit.
248
+ * It helps to keep a clean architecture and avoid monolithic applications.
249
+ *
250
+ * A strict mode flag will probably come to enforce module boundaries.
251
+ * -> Throwing errors when a service from another module is injected.
252
+ * But it's not implemented yet.
253
+ *
254
+ * ### When not to use Modules?
255
+ *
256
+ * Small applications does not need modules. It's better to keep it simple.
257
+ * Modules are more useful when the application grows and needs to be structured.
258
+ * If we speak with number of `$actions`, a module should be used when you have more than 30 actions in a single module.
259
+ * Meaning that if you have 100 actions, you should have at least 3 modules.
260
+ */
261
+ const $module = (options) => {
262
+ const { services = [], primitives = [], name } = options;
263
+ if (!name || !Module.NAME_REGEX.test(name)) throw new AlephaError(`Invalid module name '${name}'. It should be in the format of 'project.module.submodule'`);
264
+ const $ = class extends Module {
265
+ options = options;
266
+ register(alepha) {
267
+ if (typeof options.register === "function") {
268
+ options.register(alepha);
269
+ return;
270
+ }
271
+ for (const service of services) alepha.inject(service, { parent: this.constructor });
272
+ }
273
+ };
274
+ Object.defineProperty($, "name", {
275
+ value: name,
276
+ writable: false
277
+ });
278
+ for (const service of services) if (!Module.is(service)) service[MODULE] = $;
279
+ for (const factory of primitives) if (typeof factory[KIND] === "function") factory[KIND][MODULE] = $;
280
+ return $;
281
+ };
282
+ /**
283
+ * Base class for all modules.
284
+ */
285
+ var Module = class Module {
286
+ static NAME_REGEX = /^[a-z]+(\.[a-z][a-z0-9-]*)*$/;
287
+ /**
288
+ * Check if a Service is a Module.
289
+ */
290
+ static is(ctor) {
291
+ return ctor.prototype instanceof Module;
292
+ }
293
+ /**
294
+ * Get the Module of a Service.
295
+ *
296
+ * Returns undefined if the Service is not part of a Module.
297
+ */
298
+ static of(ctor) {
299
+ return ctor[MODULE];
300
+ }
301
+ };
302
+
303
303
  //#endregion
304
304
  //#region src/core/providers/AlsProvider.ts
305
305
  var AlsProvider = class AlsProvider {
@@ -333,7 +333,7 @@ var AlsProvider = class AlsProvider {
333
333
  };
334
334
 
335
335
  //#endregion
336
- //#region src/core/descriptors/$inject.ts
336
+ //#region src/core/primitives/$inject.ts
337
337
  /**
338
338
  * Get the instance of the specified type from the context.
339
339
  *
@@ -352,7 +352,7 @@ const $inject = (type, opts = {}) => {
352
352
  ...opts
353
353
  });
354
354
  };
355
- var InjectDescriptor = class extends Descriptor {};
355
+ var InjectPrimitive = class extends Primitive {};
356
356
 
357
357
  //#endregion
358
358
  //#region src/core/providers/Json.ts
@@ -620,7 +620,7 @@ var EventManager = class {
620
620
  };
621
621
 
622
622
  //#endregion
623
- //#region src/core/descriptors/$atom.ts
623
+ //#region src/core/primitives/$atom.ts
624
624
  /**
625
625
  * Define an atom for state management.
626
626
  *
@@ -823,7 +823,7 @@ var StateManager = class {
823
823
  * // You can access the environment variables using alepha.env
824
824
  * console.log(alepha.env.MY_VAR); // "value"
825
825
  *
826
- * // But you should use $env() descriptor to get typed values from the environment.
826
+ * // But you should use $env() primitive to get typed values from the environment.
827
827
  * class App {
828
828
  * env = $env(
829
829
  * t.object({
@@ -836,7 +836,7 @@ var StateManager = class {
836
836
  * ### Modules
837
837
  *
838
838
  * Modules are a way to group services together.
839
- * You can register a module using the `$module` descriptor.
839
+ * You can register a module using the `$module` primitive.
840
840
  *
841
841
  * ```ts
842
842
  * import { $module } from "alepha";
@@ -854,7 +854,7 @@ var StateManager = class {
854
854
  * ### Hooks
855
855
  *
856
856
  * Hooks are a way to run async functions from all registered providers/services.
857
- * You can register a hook using the `$hook` descriptor.
857
+ * You can register a hook using the `$hook` primitive.
858
858
  *
859
859
  * ```ts
860
860
  * import { $hook } from "alepha";
@@ -915,7 +915,7 @@ var Alepha = class Alepha {
915
915
  try {
916
916
  onTestFinished?.(() => alepha.stop());
917
917
  } catch (_error) {}
918
- alepha.state.set("alepha.test.beforeAll", beforeAll).set("alepha.test.afterAll", afterAll).set("alepha.test.afterEach", afterEach).set("alepha.test.onTestFinished", onTestFinished);
918
+ alepha.store.set("alepha.test.beforeAll", beforeAll).set("alepha.test.afterAll", afterAll).set("alepha.test.afterEach", afterEach).set("alepha.test.onTestFinished", onTestFinished);
919
919
  }
920
920
  return alepha;
921
921
  }
@@ -969,9 +969,9 @@ var Alepha = class Alepha {
969
969
  */
970
970
  substitutions = /* @__PURE__ */ new Map();
971
971
  /**
972
- * Registry of descriptors.
972
+ * Registry of primitives.
973
973
  */
974
- descriptorRegistry = /* @__PURE__ */ new Map();
974
+ primitiveRegistry = /* @__PURE__ */ new Map();
975
975
  /**
976
976
  * List of all services + how they are provided.
977
977
  */
@@ -995,7 +995,7 @@ var Alepha = class Alepha {
995
995
  /**
996
996
  * State manager to store arbitrary values.
997
997
  */
998
- get state() {
998
+ get store() {
999
999
  this.events;
1000
1000
  return this.inject(StateManager, { args: [this.init] });
1001
1001
  }
@@ -1011,13 +1011,13 @@ var Alepha = class Alepha {
1011
1011
  * Get logger instance.
1012
1012
  */
1013
1013
  get log() {
1014
- return this.state.get("alepha.logger");
1014
+ return this.store.get("alepha.logger");
1015
1015
  }
1016
1016
  /**
1017
1017
  * The environment variables for the App.
1018
1018
  */
1019
1019
  get env() {
1020
- return this.state.get("env") ?? {};
1020
+ return this.store.get("env") ?? {};
1021
1021
  }
1022
1022
  constructor(init = {}) {
1023
1023
  this.init = init;
@@ -1106,7 +1106,7 @@ var Alepha = class Alepha {
1106
1106
  * Starts the App.
1107
1107
  *
1108
1108
  * - Lock any further changes to the container.
1109
- * - Run "configure" hook for all services. Descriptors will be processed.
1109
+ * - Run "configure" hook for all services. Primitives will be processed.
1110
1110
  * - Run "start" hook for all services. Providers will connect/listen/...
1111
1111
  * - Run "ready" hook for all services. This is the point where the App is ready to serve requests.
1112
1112
  *
@@ -1126,10 +1126,10 @@ var Alepha = class Alepha {
1126
1126
  const now = Date.now();
1127
1127
  this.log?.info("Starting App...");
1128
1128
  for (const [key] of this.substitutions.entries()) this.inject(key);
1129
- const target = this.state.get("alepha.target");
1129
+ const target = this.store.get("alepha.target");
1130
1130
  if (target) {
1131
1131
  this.registry = /* @__PURE__ */ new Map();
1132
- this.descriptorRegistry = /* @__PURE__ */ new Map();
1132
+ this.primitiveRegistry = /* @__PURE__ */ new Map();
1133
1133
  this.with(target);
1134
1134
  }
1135
1135
  this.locked = true;
@@ -1323,19 +1323,19 @@ var Alepha = class Alepha {
1323
1323
  return list;
1324
1324
  }
1325
1325
  /**
1326
- * Get all descriptors of the specified type.
1326
+ * Get all primitives of the specified type.
1327
1327
  */
1328
- descriptors(factory) {
1328
+ primitives(factory) {
1329
1329
  if (typeof factory === "string") {
1330
1330
  const key1 = factory.toLowerCase().replace("$", "");
1331
- const key2 = `${key1}descriptor`;
1332
- for (const [key, value] of this.descriptorRegistry.entries()) {
1331
+ const key2 = `${key1}primitive`;
1332
+ for (const [key, value] of this.primitiveRegistry.entries()) {
1333
1333
  const name = key.name.toLowerCase();
1334
1334
  if (name === key1 || name === key2) return value;
1335
1335
  }
1336
1336
  return [];
1337
1337
  }
1338
- return this.descriptorRegistry.get(factory[KIND]) ?? [];
1338
+ return this.primitiveRegistry.get(factory[KIND]) ?? [];
1339
1339
  }
1340
1340
  new(service, args = []) {
1341
1341
  this.pendingInstantiations.push(service);
@@ -1344,10 +1344,10 @@ var Alepha = class Alepha {
1344
1344
  const instance = isClass(service) ? new service(...args) : service(...args) ?? {};
1345
1345
  const obj = instance;
1346
1346
  for (const [key, value] of Object.entries(obj)) {
1347
- if (value instanceof Descriptor) this.processDescriptor(value, key);
1347
+ if (value instanceof Primitive) this.processPrimitive(value, key);
1348
1348
  if (typeof value === "object" && value !== null && typeof value[OPTIONS] === "object" && "getter" in value[OPTIONS]) {
1349
1349
  const getter = value[OPTIONS].getter;
1350
- Object.defineProperty(obj, key, { get: () => this.state.get(getter) });
1350
+ Object.defineProperty(obj, key, { get: () => this.store.get(getter) });
1351
1351
  }
1352
1352
  }
1353
1353
  this.pendingInstantiations.pop();
@@ -1355,15 +1355,95 @@ var Alepha = class Alepha {
1355
1355
  __alephaRef.service = this.pendingInstantiations[this.pendingInstantiations.length - 1];
1356
1356
  return instance;
1357
1357
  }
1358
- processDescriptor(value, propertyKey = "") {
1358
+ processPrimitive(value, propertyKey = "") {
1359
1359
  value.config.propertyKey = propertyKey;
1360
1360
  value.onInit();
1361
1361
  const kind = value.constructor;
1362
- const list = this.descriptorRegistry.get(kind) ?? [];
1363
- this.descriptorRegistry.set(kind, [...list, value]);
1362
+ const list = this.primitiveRegistry.get(kind) ?? [];
1363
+ this.primitiveRegistry.set(kind, [...list, value]);
1364
1364
  }
1365
1365
  };
1366
1366
 
1367
+ //#endregion
1368
+ //#region src/core/errors/AppNotStartedError.ts
1369
+ var AppNotStartedError = class extends AlephaError {
1370
+ name = "AppNotStartedError";
1371
+ constructor() {
1372
+ super("App not started. Please start the app before.");
1373
+ }
1374
+ };
1375
+
1376
+ //#endregion
1377
+ //#region src/core/helpers/createPagination.ts
1378
+ /**
1379
+ * Create a pagination object from an array of entities.
1380
+ *
1381
+ * This is a pure function that works with any data source (databases, APIs, caches, arrays, etc.).
1382
+ * It handles the core pagination logic including:
1383
+ * - Slicing the content to the requested page size
1384
+ * - Calculating pagination metadata (offset, page number, etc.)
1385
+ * - Determining navigation state (isFirst, isLast)
1386
+ * - Including sort metadata when provided
1387
+ *
1388
+ * @param entities - The entities to paginate (should include one extra item to detect if there's a next page)
1389
+ * @param limit - The limit of the pagination (page size)
1390
+ * @param offset - The offset of the pagination (starting position)
1391
+ * @param sort - Optional sort metadata to include in response
1392
+ * @returns A complete Page object with content and metadata
1393
+ *
1394
+ * @example Basic pagination
1395
+ * ```ts
1396
+ * const users = await fetchUsers({ limit: 11, offset: 0 }); // Fetch limit + 1
1397
+ * const page = createPagination(users, 10, 0);
1398
+ * // page.content has max 10 items
1399
+ * // page.page.isLast tells us if there are more pages
1400
+ * ```
1401
+ *
1402
+ * @example With sorting
1403
+ * ```ts
1404
+ * const page = createPagination(
1405
+ * entities,
1406
+ * 10,
1407
+ * 0,
1408
+ * [{ column: "name", direction: "asc" }]
1409
+ * );
1410
+ * ```
1411
+ *
1412
+ * @example In a custom service
1413
+ * ```ts
1414
+ * class MyService {
1415
+ * async listItems(page: number, size: number) {
1416
+ * const items = await this.fetchItems({ limit: size + 1, offset: page * size });
1417
+ * return createPagination(items, size, page * size);
1418
+ * }
1419
+ * }
1420
+ * ```
1421
+ */
1422
+ function createPagination(entities, limit = 10, offset = 0, sort) {
1423
+ const content = entities.slice(0, limit);
1424
+ const hasNext = entities.length === limit + 1;
1425
+ const pageNumber = Math.floor(offset / limit);
1426
+ return {
1427
+ content,
1428
+ page: {
1429
+ number: pageNumber,
1430
+ size: limit,
1431
+ offset,
1432
+ numberOfElements: content.length,
1433
+ isEmpty: content.length === 0,
1434
+ isFirst: pageNumber === 0,
1435
+ isLast: !hasNext,
1436
+ ...sort && sort.length > 0 ? { sort: {
1437
+ sorted: true,
1438
+ fields: sort.map((s) => ({
1439
+ field: s.column,
1440
+ direction: s.direction
1441
+ }))
1442
+ } } : {}
1443
+ }
1444
+ };
1445
+ }
1446
+
1367
1447
  //#endregion
1368
1448
  //#region src/core/helpers/FileLike.ts
1369
1449
  const isTypeFile = (value) => {
@@ -1819,7 +1899,7 @@ var TypeProvider = class TypeProvider {
1819
1899
  const t = new TypeProvider();
1820
1900
 
1821
1901
  //#endregion
1822
- //#region src/core/descriptors/$env.ts
1902
+ //#region src/core/primitives/$env.ts
1823
1903
  /**
1824
1904
  * Get typed values from environment variables.
1825
1905
  *
@@ -1853,7 +1933,7 @@ const $env = (type) => {
1853
1933
  };
1854
1934
 
1855
1935
  //#endregion
1856
- //#region src/core/descriptors/$hook.ts
1936
+ //#region src/core/primitives/$hook.ts
1857
1937
  /**
1858
1938
  * Registers a new hook.
1859
1939
  *
@@ -1893,8 +1973,8 @@ const $env = (type) => {
1893
1973
  * ```
1894
1974
  *
1895
1975
  */
1896
- const $hook = (options) => createDescriptor(HookDescriptor, options);
1897
- var HookDescriptor = class extends Descriptor {
1976
+ const $hook = (options) => createPrimitive(HookPrimitive, options);
1977
+ var HookPrimitive = class extends Primitive {
1898
1978
  called = 0;
1899
1979
  onInit() {
1900
1980
  this.alepha.events.on(this.options.on, {
@@ -1907,10 +1987,10 @@ var HookDescriptor = class extends Descriptor {
1907
1987
  });
1908
1988
  }
1909
1989
  };
1910
- $hook[KIND] = HookDescriptor;
1990
+ $hook[KIND] = HookPrimitive;
1911
1991
 
1912
1992
  //#endregion
1913
- //#region src/core/descriptors/$use.ts
1993
+ //#region src/core/primitives/$use.ts
1914
1994
  /**
1915
1995
  * Subscribes to an atom's state and returns its current value for use in components.
1916
1996
  *
@@ -1935,94 +2015,14 @@ $hook[KIND] = HookDescriptor;
1935
2015
  */
1936
2016
  const $use = (atom) => {
1937
2017
  const { alepha } = $context();
1938
- alepha.state.register(atom);
1939
- const init = alepha.state.get(atom.key);
2018
+ alepha.store.register(atom);
2019
+ const init = alepha.store.get(atom.key);
1940
2020
  return {
1941
2021
  [OPTIONS]: { getter: atom.key },
1942
2022
  ...init
1943
2023
  };
1944
2024
  };
1945
2025
 
1946
- //#endregion
1947
- //#region src/core/errors/AppNotStartedError.ts
1948
- var AppNotStartedError = class extends AlephaError {
1949
- name = "AppNotStartedError";
1950
- constructor() {
1951
- super("App not started. Please start the app before.");
1952
- }
1953
- };
1954
-
1955
- //#endregion
1956
- //#region src/core/helpers/createPagination.ts
1957
- /**
1958
- * Create a pagination object from an array of entities.
1959
- *
1960
- * This is a pure function that works with any data source (databases, APIs, caches, arrays, etc.).
1961
- * It handles the core pagination logic including:
1962
- * - Slicing the content to the requested page size
1963
- * - Calculating pagination metadata (offset, page number, etc.)
1964
- * - Determining navigation state (isFirst, isLast)
1965
- * - Including sort metadata when provided
1966
- *
1967
- * @param entities - The entities to paginate (should include one extra item to detect if there's a next page)
1968
- * @param limit - The limit of the pagination (page size)
1969
- * @param offset - The offset of the pagination (starting position)
1970
- * @param sort - Optional sort metadata to include in response
1971
- * @returns A complete Page object with content and metadata
1972
- *
1973
- * @example Basic pagination
1974
- * ```ts
1975
- * const users = await fetchUsers({ limit: 11, offset: 0 }); // Fetch limit + 1
1976
- * const page = createPagination(users, 10, 0);
1977
- * // page.content has max 10 items
1978
- * // page.page.isLast tells us if there are more pages
1979
- * ```
1980
- *
1981
- * @example With sorting
1982
- * ```ts
1983
- * const page = createPagination(
1984
- * entities,
1985
- * 10,
1986
- * 0,
1987
- * [{ column: "name", direction: "asc" }]
1988
- * );
1989
- * ```
1990
- *
1991
- * @example In a custom service
1992
- * ```ts
1993
- * class MyService {
1994
- * async listItems(page: number, size: number) {
1995
- * const items = await this.fetchItems({ limit: size + 1, offset: page * size });
1996
- * return createPagination(items, size, page * size);
1997
- * }
1998
- * }
1999
- * ```
2000
- */
2001
- function createPagination(entities, limit = 10, offset = 0, sort) {
2002
- const content = entities.slice(0, limit);
2003
- const hasNext = entities.length === limit + 1;
2004
- const pageNumber = Math.floor(offset / limit);
2005
- return {
2006
- content,
2007
- page: {
2008
- number: pageNumber,
2009
- size: limit,
2010
- offset,
2011
- numberOfElements: content.length,
2012
- isEmpty: content.length === 0,
2013
- isFirst: pageNumber === 0,
2014
- isLast: !hasNext,
2015
- ...sort && sort.length > 0 ? { sort: {
2016
- sorted: true,
2017
- fields: sort.map((s) => ({
2018
- field: s.column,
2019
- direction: s.direction
2020
- }))
2021
- } } : {}
2022
- }
2023
- };
2024
- }
2025
-
2026
2026
  //#endregion
2027
2027
  //#region src/core/schemas/pageQuerySchema.ts
2028
2028
  const pageQuerySchema = t.object({
@@ -2172,5 +2172,5 @@ const withCluster = (entry, opts) => {
2172
2172
  };
2173
2173
 
2174
2174
  //#endregion
2175
- export { $atom, $context, $env, $hook, $inject, $module, $use, Alepha, AlephaError, AlsProvider, AppNotStartedError, Atom, CircularDependencyError, CodecManager, ContainerLockedError, Descriptor, EventManager, HookDescriptor, InjectDescriptor, JsonSchemaCodec, KIND, Module, OPTIONS, SchemaCodec, StateManager, TooLateSubstitutionError, TypeBox, TypeBoxError, TypeBoxFormat, TypeBoxValue, TypeGuard, TypeProvider, createDescriptor, createPagination, isClass, isDate, isDateTime, isDuration, isEmail, isFileLike, isTime, isTypeFile, isURL, isUUID, pageMetadataSchema, pageQuerySchema, pageSchema, run, t };
2175
+ export { $atom, $context, $env, $hook, $inject, $module, $use, Alepha, AlephaError, AlsProvider, AppNotStartedError, Atom, CircularDependencyError, CodecManager, ContainerLockedError, EventManager, HookPrimitive, InjectPrimitive, JsonSchemaCodec, KIND, Module, OPTIONS, Primitive, SchemaCodec, StateManager, TooLateSubstitutionError, TypeBox, TypeBoxError, TypeBoxFormat, TypeBoxValue, TypeGuard, TypeProvider, createPagination, createPrimitive, isClass, isDate, isDateTime, isDuration, isEmail, isFileLike, isTime, isTypeFile, isURL, isUUID, pageMetadataSchema, pageQuerySchema, pageSchema, run, t };
2176
2176
  //# sourceMappingURL=index.js.map