alepha 0.13.0 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/README.md +1 -1
  2. package/dist/api-files/index.d.ts +28 -91
  3. package/dist/api-files/index.js +10 -755
  4. package/dist/api-files/index.js.map +1 -1
  5. package/dist/api-jobs/index.d.ts +67 -67
  6. package/dist/api-jobs/index.js +13 -13
  7. package/dist/api-jobs/index.js.map +1 -1
  8. package/dist/api-notifications/index.d.ts +129 -146
  9. package/dist/api-notifications/index.js +17 -39
  10. package/dist/api-notifications/index.js.map +1 -1
  11. package/dist/api-parameters/index.d.ts +21 -22
  12. package/dist/api-parameters/index.js +22 -22
  13. package/dist/api-parameters/index.js.map +1 -1
  14. package/dist/api-users/index.d.ts +224 -2001
  15. package/dist/api-users/index.js +914 -4787
  16. package/dist/api-users/index.js.map +1 -1
  17. package/dist/api-verifications/index.d.ts +96 -96
  18. package/dist/batch/index.d.ts +13 -13
  19. package/dist/batch/index.js +8 -8
  20. package/dist/batch/index.js.map +1 -1
  21. package/dist/bucket/index.d.ts +14 -14
  22. package/dist/bucket/index.js +12 -12
  23. package/dist/bucket/index.js.map +1 -1
  24. package/dist/cache/index.d.ts +11 -11
  25. package/dist/cache/index.js +9 -9
  26. package/dist/cache/index.js.map +1 -1
  27. package/dist/cli/{dist-Sz2EXvQX.cjs → dist-Dl9Vl7Ur.js} +17 -13
  28. package/dist/cli/{dist-BBPjuQ56.js.map → dist-Dl9Vl7Ur.js.map} +1 -1
  29. package/dist/cli/index.d.ts +31 -37
  30. package/dist/cli/index.js +152 -83
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/command/index.d.ts +19 -19
  33. package/dist/command/index.js +25 -25
  34. package/dist/command/index.js.map +1 -1
  35. package/dist/core/index.browser.js +218 -218
  36. package/dist/core/index.browser.js.map +1 -1
  37. package/dist/core/index.d.ts +232 -232
  38. package/dist/core/index.js +218 -218
  39. package/dist/core/index.js.map +1 -1
  40. package/dist/core/{index.cjs → index.native.js} +304 -455
  41. package/dist/core/index.native.js.map +1 -0
  42. package/dist/datetime/index.d.ts +9 -9
  43. package/dist/datetime/index.js +7 -7
  44. package/dist/datetime/index.js.map +1 -1
  45. package/dist/email/index.d.ts +16 -16
  46. package/dist/email/index.js +80 -82
  47. package/dist/email/index.js.map +1 -1
  48. package/dist/file/index.js +1 -1
  49. package/dist/file/index.js.map +1 -1
  50. package/dist/lock/index.d.ts +9 -9
  51. package/dist/lock/index.js +8 -8
  52. package/dist/lock/index.js.map +1 -1
  53. package/dist/lock-redis/index.js +3 -66
  54. package/dist/lock-redis/index.js.map +1 -1
  55. package/dist/logger/index.d.ts +5 -5
  56. package/dist/logger/index.js +8 -8
  57. package/dist/logger/index.js.map +1 -1
  58. package/dist/orm/index.browser.js +114 -114
  59. package/dist/orm/index.browser.js.map +1 -1
  60. package/dist/orm/index.d.ts +219 -219
  61. package/dist/orm/index.js +46 -46
  62. package/dist/orm/index.js.map +1 -1
  63. package/dist/queue/index.d.ts +25 -25
  64. package/dist/queue/index.js +20 -20
  65. package/dist/queue/index.js.map +1 -1
  66. package/dist/queue-redis/index.d.ts +2 -2
  67. package/dist/redis/index.d.ts +10 -10
  68. package/dist/retry/index.d.ts +20 -20
  69. package/dist/retry/index.js +9 -9
  70. package/dist/retry/index.js.map +1 -1
  71. package/dist/scheduler/index.d.ts +12 -12
  72. package/dist/scheduler/index.js +9 -9
  73. package/dist/scheduler/index.js.map +1 -1
  74. package/dist/security/index.d.ts +53 -53
  75. package/dist/security/index.js +32 -32
  76. package/dist/security/index.js.map +1 -1
  77. package/dist/server/index.browser.js +1 -1
  78. package/dist/server/index.browser.js.map +1 -1
  79. package/dist/server/index.d.ts +101 -101
  80. package/dist/server/index.js +17 -17
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server-auth/index.browser.js +4 -982
  83. package/dist/server-auth/index.browser.js.map +1 -1
  84. package/dist/server-auth/index.d.ts +204 -785
  85. package/dist/server-auth/index.js +47 -1239
  86. package/dist/server-auth/index.js.map +1 -1
  87. package/dist/server-cache/index.d.ts +10 -10
  88. package/dist/server-cache/index.js +2 -2
  89. package/dist/server-cache/index.js.map +1 -1
  90. package/dist/server-compress/index.d.ts +4 -4
  91. package/dist/server-compress/index.js +1 -1
  92. package/dist/server-compress/index.js.map +1 -1
  93. package/dist/server-cookies/index.browser.js +8 -8
  94. package/dist/server-cookies/index.browser.js.map +1 -1
  95. package/dist/server-cookies/index.d.ts +17 -17
  96. package/dist/server-cookies/index.js +10 -10
  97. package/dist/server-cookies/index.js.map +1 -1
  98. package/dist/server-cors/index.d.ts +17 -17
  99. package/dist/server-cors/index.js +9 -9
  100. package/dist/server-cors/index.js.map +1 -1
  101. package/dist/server-health/index.d.ts +2 -2
  102. package/dist/server-helmet/index.d.ts +1 -1
  103. package/dist/server-links/index.browser.js +12 -12
  104. package/dist/server-links/index.browser.js.map +1 -1
  105. package/dist/server-links/index.d.ts +59 -251
  106. package/dist/server-links/index.js +23 -502
  107. package/dist/server-links/index.js.map +1 -1
  108. package/dist/server-metrics/index.d.ts +4 -4
  109. package/dist/server-metrics/index.js +170 -174
  110. package/dist/server-metrics/index.js.map +1 -1
  111. package/dist/server-multipart/index.d.ts +2 -2
  112. package/dist/server-proxy/index.d.ts +12 -12
  113. package/dist/server-proxy/index.js +10 -10
  114. package/dist/server-proxy/index.js.map +1 -1
  115. package/dist/server-rate-limit/index.d.ts +22 -22
  116. package/dist/server-rate-limit/index.js +12 -12
  117. package/dist/server-rate-limit/index.js.map +1 -1
  118. package/dist/server-security/index.d.ts +24 -24
  119. package/dist/server-security/index.js +15 -15
  120. package/dist/server-security/index.js.map +1 -1
  121. package/dist/server-static/index.d.ts +14 -14
  122. package/dist/server-static/index.js +8 -8
  123. package/dist/server-static/index.js.map +1 -1
  124. package/dist/server-swagger/index.d.ts +25 -184
  125. package/dist/server-swagger/index.js +21 -724
  126. package/dist/server-swagger/index.js.map +1 -1
  127. package/dist/sms/index.d.ts +14 -14
  128. package/dist/sms/index.js +9 -9
  129. package/dist/sms/index.js.map +1 -1
  130. package/dist/thread/index.d.ts +11 -11
  131. package/dist/thread/index.js +17 -17
  132. package/dist/thread/index.js.map +1 -1
  133. package/dist/topic/index.d.ts +26 -26
  134. package/dist/topic/index.js +16 -16
  135. package/dist/topic/index.js.map +1 -1
  136. package/dist/topic-redis/index.d.ts +1 -1
  137. package/dist/vite/index.d.ts +3 -3
  138. package/dist/vite/index.js +12 -13
  139. package/dist/vite/index.js.map +1 -1
  140. package/dist/websocket/index.browser.js +11 -11
  141. package/dist/websocket/index.browser.js.map +1 -1
  142. package/dist/websocket/index.d.ts +51 -51
  143. package/dist/websocket/index.js +13 -13
  144. package/dist/websocket/index.js.map +1 -1
  145. package/package.json +62 -52
  146. package/src/api-files/services/FileService.ts +5 -7
  147. package/src/api-jobs/index.ts +1 -1
  148. package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
  149. package/src/api-jobs/providers/JobProvider.ts +9 -9
  150. package/src/api-jobs/services/JobService.ts +5 -5
  151. package/src/api-notifications/index.ts +5 -15
  152. package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
  153. package/src/api-notifications/services/NotificationSenderService.ts +3 -3
  154. package/src/api-parameters/index.ts +1 -1
  155. package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
  156. package/src/api-users/index.ts +1 -1
  157. package/src/api-users/{descriptors → primitives}/$userRealm.ts +8 -8
  158. package/src/api-users/providers/UserRealmProvider.ts +1 -1
  159. package/src/batch/index.ts +3 -3
  160. package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
  161. package/src/bucket/index.ts +8 -8
  162. package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
  163. package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
  164. package/src/cache/index.ts +4 -4
  165. package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
  166. package/src/cli/apps/AlephaPackageBuilderCli.ts +30 -3
  167. package/src/cli/assets/appRouterTs.ts +9 -0
  168. package/src/cli/assets/indexHtml.ts +2 -1
  169. package/src/cli/assets/mainBrowserTs.ts +10 -0
  170. package/src/cli/commands/CoreCommands.ts +6 -5
  171. package/src/cli/commands/DrizzleCommands.ts +69 -61
  172. package/src/cli/commands/VerifyCommands.ts +2 -2
  173. package/src/cli/commands/ViteCommands.ts +6 -1
  174. package/src/cli/services/ProjectUtils.ts +78 -41
  175. package/src/command/index.ts +5 -5
  176. package/src/command/{descriptors → primitives}/$command.ts +9 -12
  177. package/src/command/providers/CliProvider.ts +10 -10
  178. package/src/core/Alepha.ts +30 -33
  179. package/src/core/constants/KIND.ts +1 -1
  180. package/src/core/constants/OPTIONS.ts +1 -1
  181. package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
  182. package/src/core/helpers/ref.ts +1 -1
  183. package/src/core/index.shared.ts +8 -8
  184. package/src/core/{descriptors → primitives}/$context.ts +5 -5
  185. package/src/core/{descriptors → primitives}/$hook.ts +4 -4
  186. package/src/core/{descriptors → primitives}/$inject.ts +2 -2
  187. package/src/core/{descriptors → primitives}/$module.ts +9 -9
  188. package/src/core/{descriptors → primitives}/$use.ts +2 -2
  189. package/src/core/providers/CodecManager.ts +1 -1
  190. package/src/core/providers/JsonSchemaCodec.ts +1 -1
  191. package/src/core/providers/StateManager.ts +2 -2
  192. package/src/datetime/index.ts +3 -3
  193. package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
  194. package/src/email/index.ts +4 -4
  195. package/src/email/{descriptors → primitives}/$email.ts +8 -8
  196. package/src/file/index.ts +1 -1
  197. package/src/lock/index.ts +3 -3
  198. package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
  199. package/src/logger/index.ts +8 -8
  200. package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
  201. package/src/logger/services/Logger.ts +1 -1
  202. package/src/orm/constants/PG_SYMBOLS.ts +2 -2
  203. package/src/orm/index.browser.ts +2 -2
  204. package/src/orm/index.ts +8 -8
  205. package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
  206. package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
  207. package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
  208. package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
  209. package/src/orm/providers/DrizzleKitProvider.ts +1 -1
  210. package/src/orm/providers/PostgresTypeProvider.ts +3 -3
  211. package/src/orm/providers/RepositoryProvider.ts +4 -4
  212. package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
  213. package/src/orm/services/ModelBuilder.ts +9 -9
  214. package/src/orm/services/PgRelationManager.ts +2 -2
  215. package/src/orm/services/PostgresModelBuilder.ts +5 -5
  216. package/src/orm/services/Repository.ts +7 -7
  217. package/src/orm/services/SqliteModelBuilder.ts +5 -5
  218. package/src/queue/index.ts +7 -7
  219. package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
  220. package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
  221. package/src/queue/providers/WorkerProvider.ts +7 -7
  222. package/src/retry/index.ts +3 -3
  223. package/src/retry/{descriptors → primitives}/$retry.ts +19 -17
  224. package/src/scheduler/index.ts +3 -3
  225. package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
  226. package/src/scheduler/providers/CronProvider.ts +1 -1
  227. package/src/security/index.ts +9 -9
  228. package/src/security/{descriptors → primitives}/$permission.ts +7 -7
  229. package/src/security/{descriptors → primitives}/$realm.ts +6 -12
  230. package/src/security/{descriptors → primitives}/$role.ts +12 -12
  231. package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
  232. package/src/server/index.browser.ts +1 -1
  233. package/src/server/index.ts +14 -14
  234. package/src/server/{descriptors → primitives}/$action.ts +13 -13
  235. package/src/server/{descriptors → primitives}/$route.ts +9 -9
  236. package/src/server/providers/NodeHttpServerProvider.ts +2 -2
  237. package/src/server/services/HttpClient.ts +1 -1
  238. package/src/server-auth/index.browser.ts +1 -1
  239. package/src/server-auth/index.ts +6 -6
  240. package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
  241. package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
  242. package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
  243. package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
  244. package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
  245. package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
  246. package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
  247. package/src/server-cookies/index.browser.ts +2 -2
  248. package/src/server-cookies/index.ts +5 -5
  249. package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
  250. package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
  251. package/src/server-cookies/providers/ServerCookiesProvider.ts +4 -4
  252. package/src/server-cookies/services/CookieParser.ts +1 -1
  253. package/src/server-cors/index.ts +3 -3
  254. package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
  255. package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
  256. package/src/server-links/index.browser.ts +5 -5
  257. package/src/server-links/index.ts +9 -9
  258. package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
  259. package/src/server-links/providers/LinkProvider.ts +7 -7
  260. package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
  261. package/src/server-links/providers/ServerLinksProvider.ts +3 -3
  262. package/src/server-proxy/index.ts +3 -3
  263. package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
  264. package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
  265. package/src/server-rate-limit/index.ts +6 -6
  266. package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
  267. package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
  268. package/src/server-security/index.ts +3 -3
  269. package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
  270. package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
  271. package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
  272. package/src/server-static/index.ts +3 -3
  273. package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
  274. package/src/server-static/providers/ServerStaticProvider.ts +6 -6
  275. package/src/server-swagger/index.ts +5 -5
  276. package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
  277. package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
  278. package/src/sms/index.ts +4 -4
  279. package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
  280. package/src/thread/index.ts +3 -3
  281. package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
  282. package/src/thread/providers/ThreadProvider.ts +7 -9
  283. package/src/topic/index.ts +5 -5
  284. package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
  285. package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
  286. package/src/topic/providers/TopicProvider.ts +4 -4
  287. package/src/vite/helpers/boot.ts +3 -3
  288. package/src/vite/tasks/copyAssets.ts +1 -1
  289. package/src/vite/tasks/generateSitemap.ts +3 -3
  290. package/src/vite/tasks/prerenderPages.ts +2 -2
  291. package/src/vite/tasks/runAlepha.ts +2 -2
  292. package/src/websocket/index.browser.ts +3 -3
  293. package/src/websocket/index.shared.ts +2 -2
  294. package/src/websocket/index.ts +4 -4
  295. package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
  296. package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
  297. package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
  298. package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
  299. package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
  300. package/src/websocket/services/WebSocketClient.ts +5 -5
  301. package/dist/api-files/index.cjs +0 -1293
  302. package/dist/api-files/index.cjs.map +0 -1
  303. package/dist/api-files/index.d.cts +0 -829
  304. package/dist/api-jobs/index.cjs +0 -274
  305. package/dist/api-jobs/index.cjs.map +0 -1
  306. package/dist/api-jobs/index.d.cts +0 -654
  307. package/dist/api-notifications/index.cjs +0 -380
  308. package/dist/api-notifications/index.cjs.map +0 -1
  309. package/dist/api-notifications/index.d.cts +0 -289
  310. package/dist/api-parameters/index.cjs +0 -66
  311. package/dist/api-parameters/index.cjs.map +0 -1
  312. package/dist/api-parameters/index.d.cts +0 -84
  313. package/dist/api-users/index.cjs +0 -6009
  314. package/dist/api-users/index.cjs.map +0 -1
  315. package/dist/api-users/index.d.cts +0 -4740
  316. package/dist/api-verifications/index.cjs +0 -407
  317. package/dist/api-verifications/index.cjs.map +0 -1
  318. package/dist/api-verifications/index.d.cts +0 -207
  319. package/dist/batch/index.cjs +0 -408
  320. package/dist/batch/index.cjs.map +0 -1
  321. package/dist/batch/index.d.cts +0 -330
  322. package/dist/bin/index.cjs +0 -17
  323. package/dist/bin/index.cjs.map +0 -1
  324. package/dist/bin/index.d.cts +0 -1
  325. package/dist/bucket/index.cjs +0 -303
  326. package/dist/bucket/index.cjs.map +0 -1
  327. package/dist/bucket/index.d.cts +0 -355
  328. package/dist/cache/index.cjs +0 -241
  329. package/dist/cache/index.cjs.map +0 -1
  330. package/dist/cache/index.d.cts +0 -202
  331. package/dist/cache-redis/index.cjs +0 -84
  332. package/dist/cache-redis/index.cjs.map +0 -1
  333. package/dist/cache-redis/index.d.cts +0 -40
  334. package/dist/cli/chunk-DSlc6foC.cjs +0 -43
  335. package/dist/cli/dist-BBPjuQ56.js +0 -2778
  336. package/dist/cli/dist-Sz2EXvQX.cjs.map +0 -1
  337. package/dist/cli/index.cjs +0 -1241
  338. package/dist/cli/index.cjs.map +0 -1
  339. package/dist/cli/index.d.cts +0 -422
  340. package/dist/command/index.cjs +0 -693
  341. package/dist/command/index.cjs.map +0 -1
  342. package/dist/command/index.d.cts +0 -340
  343. package/dist/core/index.cjs.map +0 -1
  344. package/dist/core/index.d.cts +0 -1927
  345. package/dist/datetime/index.cjs +0 -318
  346. package/dist/datetime/index.cjs.map +0 -1
  347. package/dist/datetime/index.d.cts +0 -145
  348. package/dist/email/index.cjs +0 -10874
  349. package/dist/email/index.cjs.map +0 -1
  350. package/dist/email/index.d.cts +0 -186
  351. package/dist/fake/index.cjs +0 -34641
  352. package/dist/fake/index.cjs.map +0 -1
  353. package/dist/fake/index.d.cts +0 -74
  354. package/dist/file/index.cjs +0 -1212
  355. package/dist/file/index.cjs.map +0 -1
  356. package/dist/file/index.d.cts +0 -698
  357. package/dist/lock/index.cjs +0 -226
  358. package/dist/lock/index.cjs.map +0 -1
  359. package/dist/lock/index.d.cts +0 -361
  360. package/dist/lock-redis/index.cjs +0 -113
  361. package/dist/lock-redis/index.cjs.map +0 -1
  362. package/dist/lock-redis/index.d.cts +0 -24
  363. package/dist/logger/index.cjs +0 -521
  364. package/dist/logger/index.cjs.map +0 -1
  365. package/dist/logger/index.d.cts +0 -281
  366. package/dist/orm/index.cjs +0 -2986
  367. package/dist/orm/index.cjs.map +0 -1
  368. package/dist/orm/index.d.cts +0 -2213
  369. package/dist/queue/index.cjs +0 -1044
  370. package/dist/queue/index.cjs.map +0 -1
  371. package/dist/queue/index.d.cts +0 -1265
  372. package/dist/queue-redis/index.cjs +0 -873
  373. package/dist/queue-redis/index.cjs.map +0 -1
  374. package/dist/queue-redis/index.d.cts +0 -82
  375. package/dist/redis/index.cjs +0 -153
  376. package/dist/redis/index.cjs.map +0 -1
  377. package/dist/redis/index.d.cts +0 -82
  378. package/dist/retry/index.cjs +0 -146
  379. package/dist/retry/index.cjs.map +0 -1
  380. package/dist/retry/index.d.cts +0 -172
  381. package/dist/router/index.cjs +0 -111
  382. package/dist/router/index.cjs.map +0 -1
  383. package/dist/router/index.d.cts +0 -46
  384. package/dist/scheduler/index.cjs +0 -576
  385. package/dist/scheduler/index.cjs.map +0 -1
  386. package/dist/scheduler/index.d.cts +0 -145
  387. package/dist/security/index.cjs +0 -2402
  388. package/dist/security/index.cjs.map +0 -1
  389. package/dist/security/index.d.cts +0 -598
  390. package/dist/server/index.cjs +0 -1680
  391. package/dist/server/index.cjs.map +0 -1
  392. package/dist/server/index.d.cts +0 -810
  393. package/dist/server-auth/index.cjs +0 -3146
  394. package/dist/server-auth/index.cjs.map +0 -1
  395. package/dist/server-auth/index.d.cts +0 -1164
  396. package/dist/server-cache/index.cjs +0 -252
  397. package/dist/server-cache/index.cjs.map +0 -1
  398. package/dist/server-cache/index.d.cts +0 -164
  399. package/dist/server-compress/index.cjs +0 -141
  400. package/dist/server-compress/index.cjs.map +0 -1
  401. package/dist/server-compress/index.d.cts +0 -38
  402. package/dist/server-cookies/index.cjs +0 -234
  403. package/dist/server-cookies/index.cjs.map +0 -1
  404. package/dist/server-cookies/index.d.cts +0 -144
  405. package/dist/server-cors/index.cjs +0 -201
  406. package/dist/server-cors/index.cjs.map +0 -1
  407. package/dist/server-cors/index.d.cts +0 -140
  408. package/dist/server-health/index.cjs +0 -62
  409. package/dist/server-health/index.cjs.map +0 -1
  410. package/dist/server-health/index.d.cts +0 -58
  411. package/dist/server-helmet/index.cjs +0 -131
  412. package/dist/server-helmet/index.cjs.map +0 -1
  413. package/dist/server-helmet/index.d.cts +0 -97
  414. package/dist/server-links/index.cjs +0 -992
  415. package/dist/server-links/index.cjs.map +0 -1
  416. package/dist/server-links/index.d.cts +0 -513
  417. package/dist/server-metrics/index.cjs +0 -4535
  418. package/dist/server-metrics/index.cjs.map +0 -1
  419. package/dist/server-metrics/index.d.cts +0 -35
  420. package/dist/server-multipart/index.cjs +0 -237
  421. package/dist/server-multipart/index.cjs.map +0 -1
  422. package/dist/server-multipart/index.d.cts +0 -50
  423. package/dist/server-proxy/index.cjs +0 -186
  424. package/dist/server-proxy/index.cjs.map +0 -1
  425. package/dist/server-proxy/index.d.cts +0 -234
  426. package/dist/server-rate-limit/index.cjs +0 -241
  427. package/dist/server-rate-limit/index.cjs.map +0 -1
  428. package/dist/server-rate-limit/index.d.cts +0 -183
  429. package/dist/server-security/index.cjs +0 -316
  430. package/dist/server-security/index.cjs.map +0 -1
  431. package/dist/server-security/index.d.cts +0 -173
  432. package/dist/server-static/index.cjs +0 -170
  433. package/dist/server-static/index.cjs.map +0 -1
  434. package/dist/server-static/index.d.cts +0 -121
  435. package/dist/server-swagger/index.cjs +0 -1021
  436. package/dist/server-swagger/index.cjs.map +0 -1
  437. package/dist/server-swagger/index.d.cts +0 -382
  438. package/dist/sms/index.cjs +0 -221
  439. package/dist/sms/index.cjs.map +0 -1
  440. package/dist/sms/index.d.cts +0 -130
  441. package/dist/thread/index.cjs +0 -350
  442. package/dist/thread/index.cjs.map +0 -1
  443. package/dist/thread/index.d.cts +0 -260
  444. package/dist/topic/index.cjs +0 -282
  445. package/dist/topic/index.cjs.map +0 -1
  446. package/dist/topic/index.d.cts +0 -523
  447. package/dist/topic-redis/index.cjs +0 -71
  448. package/dist/topic-redis/index.cjs.map +0 -1
  449. package/dist/topic-redis/index.d.cts +0 -42
  450. package/dist/vite/index.cjs +0 -1077
  451. package/dist/vite/index.cjs.map +0 -1
  452. package/dist/vite/index.d.cts +0 -542
  453. package/dist/websocket/index.cjs +0 -1117
  454. package/dist/websocket/index.cjs.map +0 -1
  455. package/dist/websocket/index.d.cts +0 -861
  456. package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
  457. package/src/api-notifications/providers/SmsProvider.ts +0 -8
  458. /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
  459. /package/src/core/{descriptors → primitives}/$env.ts +0 -0
  460. /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
  461. /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
@@ -1,46 +1,13 @@
1
- //#region rolldown:runtime
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
- key = keys[i];
12
- if (!__hasOwnProp.call(to, key) && key !== except) {
13
- __defProp(to, key, {
14
- get: ((k) => from[k]).bind(null, key),
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- }
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
- value: mod,
24
- enumerable: true
25
- }) : target, mod));
26
-
27
- //#endregion
28
- let node_async_hooks = require("node:async_hooks");
29
- let node_cluster = require("node:cluster");
30
- node_cluster = __toESM(node_cluster);
31
- let node_os = require("node:os");
32
- let typebox_compile = require("typebox/compile");
33
- let typebox = require("typebox");
34
- typebox = __toESM(typebox);
35
- let typebox_format = require("typebox/format");
36
- typebox_format = __toESM(typebox_format);
37
- let typebox_system = require("typebox/system");
38
- let typebox_value = require("typebox/value");
39
- typebox_value = __toESM(typebox_value);
1
+ import { Compile } from "typebox/compile";
2
+ import * as TypeBox from "typebox";
3
+ import { Type } from "typebox";
4
+ import TypeBoxFormat from "typebox/format";
5
+ import { Locale } from "typebox/system";
6
+ import * as TypeBoxValue from "typebox/value";
40
7
 
41
8
  //#region src/core/constants/KIND.ts
42
9
  /**
43
- * Used for identifying descriptors.
10
+ * Used for identifying primitives.
44
11
  *
45
12
  * @internal
46
13
  */
@@ -58,7 +25,7 @@ const MODULE = Symbol.for("Alepha.Module");
58
25
  //#endregion
59
26
  //#region src/core/constants/OPTIONS.ts
60
27
  /**
61
- * Used for descriptors options.
28
+ * Used for primitives options.
62
29
  *
63
30
  * @internal
64
31
  */
@@ -73,98 +40,6 @@ var AlephaError = class extends Error {
73
40
  name = "AlephaError";
74
41
  };
75
42
 
76
- //#endregion
77
- //#region src/core/descriptors/$module.ts
78
- /**
79
- * Wrap Services and Descriptors into a Module.
80
- *
81
- * - A module is just a Service with some extra {@link Module}.
82
- * - You must attach a `name` to it.
83
- * - Name must follow the pattern: `project.module.submodule`. (e.g. `myapp.users.auth`).
84
- *
85
- * @example
86
- * ```ts
87
- * import { $module } from "alepha";
88
- * import { MyService } from "./MyService.ts";
89
- *
90
- * // export MyService, so it can be used everywhere (optional)
91
- * export * from "./MyService.ts";
92
- *
93
- * export default $module({
94
- * name: "my.project.module",
95
- * // MyService will have a module context "my.project.module"
96
- * services: [MyService],
97
- * });
98
- * ```
99
- *
100
- * ### Why Modules?
101
- *
102
- * #### Logging
103
- *
104
- * By default, AlephaLogger will log the module name in the logs.
105
- * This helps to identify where the logs are coming from.
106
- *
107
- * You can also set different log levels for different modules.
108
- * It means you can set 'some.very.specific.module' to 'debug' and keep the rest of the application to 'info'.
109
- *
110
- * #### Modulith
111
- *
112
- * Force to structure your application in modules, even if it's a single deployable unit.
113
- * It helps to keep a clean architecture and avoid monolithic applications.
114
- *
115
- * A strict mode flag will probably come to enforce module boundaries.
116
- * -> Throwing errors when a service from another module is injected.
117
- * But it's not implemented yet.
118
- *
119
- * ### When not to use Modules?
120
- *
121
- * Small applications does not need modules. It's better to keep it simple.
122
- * Modules are more useful when the application grows and needs to be structured.
123
- * If we speak with number of `$actions`, a module should be used when you have more than 30 actions in a single module.
124
- * Meaning that if you have 100 actions, you should have at least 3 modules.
125
- */
126
- const $module = (options) => {
127
- const { services = [], descriptors = [], name } = options;
128
- if (!name || !Module.NAME_REGEX.test(name)) throw new AlephaError(`Invalid module name '${name}'. It should be in the format of 'project.module.submodule'`);
129
- const $ = class extends Module {
130
- options = options;
131
- register(alepha) {
132
- if (typeof options.register === "function") {
133
- options.register(alepha);
134
- return;
135
- }
136
- for (const service of services) alepha.inject(service, { parent: this.constructor });
137
- }
138
- };
139
- Object.defineProperty($, "name", {
140
- value: name,
141
- writable: false
142
- });
143
- for (const service of services) if (!Module.is(service)) service[MODULE] = $;
144
- for (const factory of descriptors) if (typeof factory[KIND] === "function") factory[KIND][MODULE] = $;
145
- return $;
146
- };
147
- /**
148
- * Base class for all modules.
149
- */
150
- var Module = class Module {
151
- static NAME_REGEX = /^[a-z]+(\.[a-z][a-z0-9-]*)*$/;
152
- /**
153
- * Check if a Service is a Module.
154
- */
155
- static is(ctor) {
156
- return ctor.prototype instanceof Module;
157
- }
158
- /**
159
- * Get the Module of a Service.
160
- *
161
- * Returns undefined if the Service is not part of a Module.
162
- */
163
- static of(ctor) {
164
- return ctor[MODULE];
165
- }
166
- };
167
-
168
43
  //#endregion
169
44
  //#region src/core/errors/CircularDependencyError.ts
170
45
  var CircularDependencyError = class extends AlephaError {
@@ -213,7 +88,7 @@ const __alephaRef = {};
213
88
  /**
214
89
  * Note:
215
90
  *
216
- * This file is used to share context between $descriptors and the Alepha core during the injection phase.
91
+ * This file is used to share context between $primitives and the Alepha core during the injection phase.
217
92
  *
218
93
  * There is no side effect as long as Alepha is not used concurrently in multiple contexts (which is not the case).
219
94
  *
@@ -252,11 +127,11 @@ const __alephaRef = {};
252
127
  */
253
128
 
254
129
  //#endregion
255
- //#region src/core/descriptors/$context.ts
130
+ //#region src/core/primitives/$context.ts
256
131
  /**
257
132
  * Get Alepha instance and current service from the current context.
258
133
  *
259
- * It can only be used inside $descriptor functions.
134
+ * It can only be used inside $primitive functions.
260
135
  *
261
136
  * ```ts
262
137
  * import { $context } from "alepha";
@@ -265,7 +140,7 @@ const __alephaRef = {};
265
140
  * const { alepha, service, module } = $context();
266
141
  *
267
142
  * // alepha - alepha instance
268
- * // service - class which is creating this descriptor, this is NOT the instance but the service definition
143
+ * // service - class which is creating this primitive, this is NOT the instance but the service definition
269
144
  * // module - module definition, if any
270
145
  *
271
146
  * return {};
@@ -290,8 +165,8 @@ const $context = () => {
290
165
  };
291
166
 
292
167
  //#endregion
293
- //#region src/core/helpers/descriptor.ts
294
- var Descriptor = class {
168
+ //#region src/core/helpers/primitive.ts
169
+ var Primitive = class {
295
170
  alepha;
296
171
  options;
297
172
  config;
@@ -305,14 +180,14 @@ var Descriptor = class {
305
180
  };
306
181
  }
307
182
  /**
308
- * Called automatically by Alepha after the descriptor is created.
183
+ * Called automatically by Alepha after the primitive is created.
309
184
  */
310
185
  onInit() {}
311
186
  };
312
- const createDescriptor = (descriptor, options) => {
187
+ const createPrimitive = (primitive, options) => {
313
188
  const { alepha, service } = $context();
314
- if (MODULE in descriptor && descriptor[MODULE]) alepha.with(descriptor[MODULE]);
315
- return alepha.inject(descriptor, {
189
+ if (MODULE in primitive && primitive[MODULE]) alepha.with(primitive[MODULE]);
190
+ return alepha.inject(primitive, {
316
191
  lifetime: "transient",
317
192
  args: [{
318
193
  options,
@@ -330,6 +205,98 @@ function isClass(func) {
330
205
  return !!descriptor && !descriptor.writable;
331
206
  }
332
207
 
208
+ //#endregion
209
+ //#region src/core/primitives/$module.ts
210
+ /**
211
+ * Wrap Services and Primitives into a Module.
212
+ *
213
+ * - A module is just a Service with some extra {@link Module}.
214
+ * - You must attach a `name` to it.
215
+ * - Name must follow the pattern: `project.module.submodule`. (e.g. `myapp.users.auth`).
216
+ *
217
+ * @example
218
+ * ```ts
219
+ * import { $module } from "alepha";
220
+ * import { MyService } from "./MyService.ts";
221
+ *
222
+ * // export MyService, so it can be used everywhere (optional)
223
+ * export * from "./MyService.ts";
224
+ *
225
+ * export default $module({
226
+ * name: "my.project.module",
227
+ * // MyService will have a module context "my.project.module"
228
+ * services: [MyService],
229
+ * });
230
+ * ```
231
+ *
232
+ * ### Why Modules?
233
+ *
234
+ * #### Logging
235
+ *
236
+ * By default, AlephaLogger will log the module name in the logs.
237
+ * This helps to identify where the logs are coming from.
238
+ *
239
+ * You can also set different log levels for different modules.
240
+ * It means you can set 'some.very.specific.module' to 'debug' and keep the rest of the application to 'info'.
241
+ *
242
+ * #### Modulith
243
+ *
244
+ * Force to structure your application in modules, even if it's a single deployable unit.
245
+ * It helps to keep a clean architecture and avoid monolithic applications.
246
+ *
247
+ * A strict mode flag will probably come to enforce module boundaries.
248
+ * -> Throwing errors when a service from another module is injected.
249
+ * But it's not implemented yet.
250
+ *
251
+ * ### When not to use Modules?
252
+ *
253
+ * Small applications does not need modules. It's better to keep it simple.
254
+ * Modules are more useful when the application grows and needs to be structured.
255
+ * If we speak with number of `$actions`, a module should be used when you have more than 30 actions in a single module.
256
+ * Meaning that if you have 100 actions, you should have at least 3 modules.
257
+ */
258
+ const $module = (options) => {
259
+ const { services = [], primitives = [], name } = options;
260
+ if (!name || !Module.NAME_REGEX.test(name)) throw new AlephaError(`Invalid module name '${name}'. It should be in the format of 'project.module.submodule'`);
261
+ const $ = class extends Module {
262
+ options = options;
263
+ register(alepha) {
264
+ if (typeof options.register === "function") {
265
+ options.register(alepha);
266
+ return;
267
+ }
268
+ for (const service of services) alepha.inject(service, { parent: this.constructor });
269
+ }
270
+ };
271
+ Object.defineProperty($, "name", {
272
+ value: name,
273
+ writable: false
274
+ });
275
+ for (const service of services) if (!Module.is(service)) service[MODULE] = $;
276
+ for (const factory of primitives) if (typeof factory[KIND] === "function") factory[KIND][MODULE] = $;
277
+ return $;
278
+ };
279
+ /**
280
+ * Base class for all modules.
281
+ */
282
+ var Module = class Module {
283
+ static NAME_REGEX = /^[a-z]+(\.[a-z][a-z0-9-]*)*$/;
284
+ /**
285
+ * Check if a Service is a Module.
286
+ */
287
+ static is(ctor) {
288
+ return ctor.prototype instanceof Module;
289
+ }
290
+ /**
291
+ * Get the Module of a Service.
292
+ *
293
+ * Returns undefined if the Service is not part of a Module.
294
+ */
295
+ static of(ctor) {
296
+ return ctor[MODULE];
297
+ }
298
+ };
299
+
333
300
  //#endregion
334
301
  //#region src/core/providers/AlsProvider.ts
335
302
  var AlsProvider = class AlsProvider {
@@ -363,7 +330,7 @@ var AlsProvider = class AlsProvider {
363
330
  };
364
331
 
365
332
  //#endregion
366
- //#region src/core/descriptors/$inject.ts
333
+ //#region src/core/primitives/$inject.ts
367
334
  /**
368
335
  * Get the instance of the specified type from the context.
369
336
  *
@@ -382,7 +349,7 @@ const $inject = (type, opts = {}) => {
382
349
  ...opts
383
350
  });
384
351
  };
385
- var InjectDescriptor = class extends Descriptor {};
352
+ var InjectPrimitive = class extends Primitive {};
386
353
 
387
354
  //#endregion
388
355
  //#region src/core/providers/Json.ts
@@ -475,7 +442,7 @@ var SchemaValidator = class {
475
442
  }
476
443
  getValidator(schema) {
477
444
  if (this.cache.has(schema)) return this.cache.get(schema);
478
- const validator = (0, typebox_compile.Compile)(schema);
445
+ const validator = Compile(schema);
479
446
  this.cache.set(schema, validator);
480
447
  return validator;
481
448
  }
@@ -650,7 +617,7 @@ var EventManager = class {
650
617
  };
651
618
 
652
619
  //#endregion
653
- //#region src/core/descriptors/$atom.ts
620
+ //#region src/core/primitives/$atom.ts
654
621
  /**
655
622
  * Define an atom for state management.
656
623
  *
@@ -853,7 +820,7 @@ var StateManager = class {
853
820
  * // You can access the environment variables using alepha.env
854
821
  * console.log(alepha.env.MY_VAR); // "value"
855
822
  *
856
- * // But you should use $env() descriptor to get typed values from the environment.
823
+ * // But you should use $env() primitive to get typed values from the environment.
857
824
  * class App {
858
825
  * env = $env(
859
826
  * t.object({
@@ -866,7 +833,7 @@ var StateManager = class {
866
833
  * ### Modules
867
834
  *
868
835
  * Modules are a way to group services together.
869
- * You can register a module using the `$module` descriptor.
836
+ * You can register a module using the `$module` primitive.
870
837
  *
871
838
  * ```ts
872
839
  * import { $module } from "alepha";
@@ -884,7 +851,7 @@ var StateManager = class {
884
851
  * ### Hooks
885
852
  *
886
853
  * Hooks are a way to run async functions from all registered providers/services.
887
- * You can register a hook using the `$hook` descriptor.
854
+ * You can register a hook using the `$hook` primitive.
888
855
  *
889
856
  * ```ts
890
857
  * import { $hook } from "alepha";
@@ -945,7 +912,7 @@ var Alepha = class Alepha {
945
912
  try {
946
913
  onTestFinished?.(() => alepha.stop());
947
914
  } catch (_error) {}
948
- alepha.state.set("alepha.test.beforeAll", beforeAll).set("alepha.test.afterAll", afterAll).set("alepha.test.afterEach", afterEach).set("alepha.test.onTestFinished", onTestFinished);
915
+ alepha.store.set("alepha.test.beforeAll", beforeAll).set("alepha.test.afterAll", afterAll).set("alepha.test.afterEach", afterEach).set("alepha.test.onTestFinished", onTestFinished);
949
916
  }
950
917
  return alepha;
951
918
  }
@@ -999,9 +966,9 @@ var Alepha = class Alepha {
999
966
  */
1000
967
  substitutions = /* @__PURE__ */ new Map();
1001
968
  /**
1002
- * Registry of descriptors.
969
+ * Registry of primitives.
1003
970
  */
1004
- descriptorRegistry = /* @__PURE__ */ new Map();
971
+ primitiveRegistry = /* @__PURE__ */ new Map();
1005
972
  /**
1006
973
  * List of all services + how they are provided.
1007
974
  */
@@ -1025,7 +992,7 @@ var Alepha = class Alepha {
1025
992
  /**
1026
993
  * State manager to store arbitrary values.
1027
994
  */
1028
- get state() {
995
+ get store() {
1029
996
  this.events;
1030
997
  return this.inject(StateManager, { args: [this.init] });
1031
998
  }
@@ -1041,13 +1008,13 @@ var Alepha = class Alepha {
1041
1008
  * Get logger instance.
1042
1009
  */
1043
1010
  get log() {
1044
- return this.state.get("alepha.logger");
1011
+ return this.store.get("alepha.logger");
1045
1012
  }
1046
1013
  /**
1047
1014
  * The environment variables for the App.
1048
1015
  */
1049
1016
  get env() {
1050
- return this.state.get("env") ?? {};
1017
+ return this.store.get("env") ?? {};
1051
1018
  }
1052
1019
  constructor(init = {}) {
1053
1020
  this.init = init;
@@ -1136,7 +1103,7 @@ var Alepha = class Alepha {
1136
1103
  * Starts the App.
1137
1104
  *
1138
1105
  * - Lock any further changes to the container.
1139
- * - Run "configure" hook for all services. Descriptors will be processed.
1106
+ * - Run "configure" hook for all services. Primitives will be processed.
1140
1107
  * - Run "start" hook for all services. Providers will connect/listen/...
1141
1108
  * - Run "ready" hook for all services. This is the point where the App is ready to serve requests.
1142
1109
  *
@@ -1156,10 +1123,10 @@ var Alepha = class Alepha {
1156
1123
  const now = Date.now();
1157
1124
  this.log?.info("Starting App...");
1158
1125
  for (const [key] of this.substitutions.entries()) this.inject(key);
1159
- const target = this.state.get("alepha.target");
1126
+ const target = this.store.get("alepha.target");
1160
1127
  if (target) {
1161
1128
  this.registry = /* @__PURE__ */ new Map();
1162
- this.descriptorRegistry = /* @__PURE__ */ new Map();
1129
+ this.primitiveRegistry = /* @__PURE__ */ new Map();
1163
1130
  this.with(target);
1164
1131
  }
1165
1132
  this.locked = true;
@@ -1294,8 +1261,8 @@ var Alepha = class Alepha {
1294
1261
  }
1295
1262
  if (this.started) throw new ContainerLockedError(`Container is locked. No more services can be added. ${parent?.name} -> ${service.name}`);
1296
1263
  }
1297
- const module$1 = service[MODULE];
1298
- if (module$1 && typeof module$1 === "function") this.with(module$1);
1264
+ const module = service[MODULE];
1265
+ if (module && typeof module === "function") this.with(module);
1299
1266
  if (this.has(service, { registry }) && !transient) return this.inject(service, {
1300
1267
  parent,
1301
1268
  lifetime
@@ -1342,8 +1309,8 @@ var Alepha = class Alepha {
1342
1309
  graph[provide.name] = { from: parents.filter((it) => !!it).map((it) => it.name) };
1343
1310
  const aliases = this.substitutions.entries().filter((it) => it[1].use === provide).map((it) => it[0].name).toArray();
1344
1311
  if (aliases.length) graph[provide.name].as = aliases;
1345
- const module$1 = Module.of(provide);
1346
- if (module$1) graph[provide.name].module = module$1.name;
1312
+ const module = Module.of(provide);
1313
+ if (module) graph[provide.name].module = module.name;
1347
1314
  }
1348
1315
  return graph;
1349
1316
  }
@@ -1353,19 +1320,19 @@ var Alepha = class Alepha {
1353
1320
  return list;
1354
1321
  }
1355
1322
  /**
1356
- * Get all descriptors of the specified type.
1323
+ * Get all primitives of the specified type.
1357
1324
  */
1358
- descriptors(factory) {
1325
+ primitives(factory) {
1359
1326
  if (typeof factory === "string") {
1360
1327
  const key1 = factory.toLowerCase().replace("$", "");
1361
- const key2 = `${key1}descriptor`;
1362
- for (const [key, value] of this.descriptorRegistry.entries()) {
1328
+ const key2 = `${key1}primitive`;
1329
+ for (const [key, value] of this.primitiveRegistry.entries()) {
1363
1330
  const name = key.name.toLowerCase();
1364
1331
  if (name === key1 || name === key2) return value;
1365
1332
  }
1366
1333
  return [];
1367
1334
  }
1368
- return this.descriptorRegistry.get(factory[KIND]) ?? [];
1335
+ return this.primitiveRegistry.get(factory[KIND]) ?? [];
1369
1336
  }
1370
1337
  new(service, args = []) {
1371
1338
  this.pendingInstantiations.push(service);
@@ -1374,10 +1341,10 @@ var Alepha = class Alepha {
1374
1341
  const instance = isClass(service) ? new service(...args) : service(...args) ?? {};
1375
1342
  const obj = instance;
1376
1343
  for (const [key, value] of Object.entries(obj)) {
1377
- if (value instanceof Descriptor) this.processDescriptor(value, key);
1344
+ if (value instanceof Primitive) this.processPrimitive(value, key);
1378
1345
  if (typeof value === "object" && value !== null && typeof value[OPTIONS] === "object" && "getter" in value[OPTIONS]) {
1379
1346
  const getter = value[OPTIONS].getter;
1380
- Object.defineProperty(obj, key, { get: () => this.state.get(getter) });
1347
+ Object.defineProperty(obj, key, { get: () => this.store.get(getter) });
1381
1348
  }
1382
1349
  }
1383
1350
  this.pendingInstantiations.pop();
@@ -1385,15 +1352,95 @@ var Alepha = class Alepha {
1385
1352
  __alephaRef.service = this.pendingInstantiations[this.pendingInstantiations.length - 1];
1386
1353
  return instance;
1387
1354
  }
1388
- processDescriptor(value, propertyKey = "") {
1355
+ processPrimitive(value, propertyKey = "") {
1389
1356
  value.config.propertyKey = propertyKey;
1390
1357
  value.onInit();
1391
1358
  const kind = value.constructor;
1392
- const list = this.descriptorRegistry.get(kind) ?? [];
1393
- this.descriptorRegistry.set(kind, [...list, value]);
1359
+ const list = this.primitiveRegistry.get(kind) ?? [];
1360
+ this.primitiveRegistry.set(kind, [...list, value]);
1394
1361
  }
1395
1362
  };
1396
1363
 
1364
+ //#endregion
1365
+ //#region src/core/errors/AppNotStartedError.ts
1366
+ var AppNotStartedError = class extends AlephaError {
1367
+ name = "AppNotStartedError";
1368
+ constructor() {
1369
+ super("App not started. Please start the app before.");
1370
+ }
1371
+ };
1372
+
1373
+ //#endregion
1374
+ //#region src/core/helpers/createPagination.ts
1375
+ /**
1376
+ * Create a pagination object from an array of entities.
1377
+ *
1378
+ * This is a pure function that works with any data source (databases, APIs, caches, arrays, etc.).
1379
+ * It handles the core pagination logic including:
1380
+ * - Slicing the content to the requested page size
1381
+ * - Calculating pagination metadata (offset, page number, etc.)
1382
+ * - Determining navigation state (isFirst, isLast)
1383
+ * - Including sort metadata when provided
1384
+ *
1385
+ * @param entities - The entities to paginate (should include one extra item to detect if there's a next page)
1386
+ * @param limit - The limit of the pagination (page size)
1387
+ * @param offset - The offset of the pagination (starting position)
1388
+ * @param sort - Optional sort metadata to include in response
1389
+ * @returns A complete Page object with content and metadata
1390
+ *
1391
+ * @example Basic pagination
1392
+ * ```ts
1393
+ * const users = await fetchUsers({ limit: 11, offset: 0 }); // Fetch limit + 1
1394
+ * const page = createPagination(users, 10, 0);
1395
+ * // page.content has max 10 items
1396
+ * // page.page.isLast tells us if there are more pages
1397
+ * ```
1398
+ *
1399
+ * @example With sorting
1400
+ * ```ts
1401
+ * const page = createPagination(
1402
+ * entities,
1403
+ * 10,
1404
+ * 0,
1405
+ * [{ column: "name", direction: "asc" }]
1406
+ * );
1407
+ * ```
1408
+ *
1409
+ * @example In a custom service
1410
+ * ```ts
1411
+ * class MyService {
1412
+ * async listItems(page: number, size: number) {
1413
+ * const items = await this.fetchItems({ limit: size + 1, offset: page * size });
1414
+ * return createPagination(items, size, page * size);
1415
+ * }
1416
+ * }
1417
+ * ```
1418
+ */
1419
+ function createPagination(entities, limit = 10, offset = 0, sort) {
1420
+ const content = entities.slice(0, limit);
1421
+ const hasNext = entities.length === limit + 1;
1422
+ const pageNumber = Math.floor(offset / limit);
1423
+ return {
1424
+ content,
1425
+ page: {
1426
+ number: pageNumber,
1427
+ size: limit,
1428
+ offset,
1429
+ numberOfElements: content.length,
1430
+ isEmpty: content.length === 0,
1431
+ isFirst: pageNumber === 0,
1432
+ isLast: !hasNext,
1433
+ ...sort && sort.length > 0 ? { sort: {
1434
+ sorted: true,
1435
+ fields: sort.map((s) => ({
1436
+ field: s.column,
1437
+ direction: s.direction
1438
+ }))
1439
+ } } : {}
1440
+ }
1441
+ };
1442
+ }
1443
+
1397
1444
  //#endregion
1398
1445
  //#region src/core/helpers/FileLike.ts
1399
1446
  const isTypeFile = (value) => {
@@ -1405,33 +1452,33 @@ const isFileLike = (value) => {
1405
1452
 
1406
1453
  //#endregion
1407
1454
  //#region src/core/providers/TypeProvider.ts
1408
- const isUUID = typebox_format.default.IsUuid;
1409
- const isEmail = typebox_format.default.IsEmail;
1410
- const isURL = typebox_format.default.IsUrl;
1411
- const isDateTime = typebox_format.default.IsDateTime;
1412
- const isDate = typebox_format.default.IsDate;
1413
- const isTime = typebox_format.default.IsTime;
1414
- const isDuration = typebox_format.default.IsDuration;
1455
+ const isUUID = TypeBoxFormat.IsUuid;
1456
+ const isEmail = TypeBoxFormat.IsEmail;
1457
+ const isURL = TypeBoxFormat.IsUrl;
1458
+ const isDateTime = TypeBoxFormat.IsDateTime;
1459
+ const isDate = TypeBoxFormat.IsDate;
1460
+ const isTime = TypeBoxFormat.IsTime;
1461
+ const isDuration = TypeBoxFormat.IsDuration;
1415
1462
  var TypeGuard = class {
1416
- isBigInt = (value) => typebox.IsString(value) && "format" in value && value.format === "bigint";
1417
- isUUID = (value) => typebox.IsString(value) && "format" in value && value.format === "uuid";
1418
- isObject = typebox.IsObject;
1419
- isNumber = typebox.IsNumber;
1420
- isString = typebox.IsString;
1421
- isBoolean = typebox.IsBoolean;
1422
- isAny = typebox.IsAny;
1423
- isArray = typebox.IsArray;
1424
- isOptional = typebox.IsOptional;
1425
- isUnion = typebox.IsUnion;
1426
- isInteger = typebox.IsInteger;
1427
- isNull = typebox.IsNull;
1428
- isUndefined = typebox.IsUndefined;
1429
- isUnsafe = typebox.IsUnsafe;
1430
- isRecord = typebox.IsRecord;
1431
- isTuple = typebox.IsTuple;
1432
- isVoid = typebox.IsVoid;
1433
- isLiteral = typebox.IsLiteral;
1434
- isSchema = typebox.IsSchema;
1463
+ isBigInt = (value) => TypeBox.IsString(value) && "format" in value && value.format === "bigint";
1464
+ isUUID = (value) => TypeBox.IsString(value) && "format" in value && value.format === "uuid";
1465
+ isObject = TypeBox.IsObject;
1466
+ isNumber = TypeBox.IsNumber;
1467
+ isString = TypeBox.IsString;
1468
+ isBoolean = TypeBox.IsBoolean;
1469
+ isAny = TypeBox.IsAny;
1470
+ isArray = TypeBox.IsArray;
1471
+ isOptional = TypeBox.IsOptional;
1472
+ isUnion = TypeBox.IsUnion;
1473
+ isInteger = TypeBox.IsInteger;
1474
+ isNull = TypeBox.IsNull;
1475
+ isUndefined = TypeBox.IsUndefined;
1476
+ isUnsafe = TypeBox.IsUnsafe;
1477
+ isRecord = TypeBox.IsRecord;
1478
+ isTuple = TypeBox.IsTuple;
1479
+ isVoid = TypeBox.IsVoid;
1480
+ isLiteral = TypeBox.IsLiteral;
1481
+ isSchema = TypeBox.IsSchema;
1435
1482
  isFile = isTypeFile;
1436
1483
  isDateTime = (schema) => {
1437
1484
  return t.schema.isString(schema) && schema.format === "date-time";
@@ -1447,23 +1494,23 @@ var TypeGuard = class {
1447
1494
  };
1448
1495
  };
1449
1496
  var TypeProvider = class TypeProvider {
1450
- static format = typebox_format.default;
1497
+ static format = TypeBoxFormat;
1451
1498
  static {
1452
- typebox_format.default.Set("bigint", (value) => TypeProvider.isValidBigInt(value));
1499
+ TypeBoxFormat.Set("bigint", (value) => TypeProvider.isValidBigInt(value));
1453
1500
  }
1454
1501
  static translateError(error, locale) {
1455
1502
  if (!locale) return error.cause.message;
1456
- for (const [key, value] of Object.entries(typebox_system.Locale)) {
1503
+ for (const [key, value] of Object.entries(Locale)) {
1457
1504
  if (key === "Set" || key === "Get" || key === "Reset") continue;
1458
1505
  if (key === locale || key.startsWith(`${locale}_`)) return value(error.cause);
1459
1506
  }
1460
1507
  return error.cause.message;
1461
1508
  }
1462
1509
  static setLocale(locale) {
1463
- for (const [key, value] of Object.entries(typebox_system.Locale)) {
1510
+ for (const [key, value] of Object.entries(Locale)) {
1464
1511
  if (key === "Set" || key === "Get" || key === "Reset") continue;
1465
1512
  if (key === locale || key.startsWith(`${locale}_`)) {
1466
- typebox_system.Locale.Set(value);
1513
+ Locale.Set(value);
1467
1514
  return;
1468
1515
  }
1469
1516
  }
@@ -1523,16 +1570,16 @@ var TypeProvider = class TypeProvider {
1523
1570
  * It can be overridden in the array options.
1524
1571
  */
1525
1572
  static DEFAULT_ARRAY_MAX_ITEMS = 1e3;
1526
- raw = typebox.Type;
1527
- any = typebox.Type.Any;
1528
- void = typebox.Type.Void;
1529
- undefined = typebox.Type.Undefined;
1530
- record = typebox.Type.Record;
1531
- union = typebox.Type.Union;
1532
- tuple = typebox.Type.Tuple;
1533
- null = typebox.Type.Null;
1534
- const = typebox.Type.Literal;
1535
- options = typebox.Type.Options;
1573
+ raw = Type;
1574
+ any = Type.Any;
1575
+ void = Type.Void;
1576
+ undefined = Type.Undefined;
1577
+ record = Type.Record;
1578
+ union = Type.Union;
1579
+ tuple = Type.Tuple;
1580
+ null = Type.Null;
1581
+ const = Type.Literal;
1582
+ options = Type.Options;
1536
1583
  /**
1537
1584
  * Type guards to check the type of schema.
1538
1585
  * This is not a runtime type check, but a compile-time type guard.
@@ -1546,25 +1593,25 @@ var TypeProvider = class TypeProvider {
1546
1593
  */
1547
1594
  schema = new TypeGuard();
1548
1595
  extend(schema, properties, options) {
1549
- return typebox.Type.Interface(Array.isArray(schema) ? schema : [schema], properties, {
1596
+ return Type.Interface(Array.isArray(schema) ? schema : [schema], properties, {
1550
1597
  additionalProperties: false,
1551
1598
  ...options
1552
1599
  });
1553
1600
  }
1554
1601
  pick(schema, keys, options) {
1555
- return typebox.Type.Pick(schema, keys, {
1602
+ return Type.Pick(schema, keys, {
1556
1603
  additionalProperties: false,
1557
1604
  ...options
1558
1605
  });
1559
1606
  }
1560
1607
  omit(schema, keys, options) {
1561
- return typebox.Type.Omit(schema, keys, {
1608
+ return Type.Omit(schema, keys, {
1562
1609
  additionalProperties: false,
1563
1610
  ...options
1564
1611
  });
1565
1612
  }
1566
1613
  partial(schema, options) {
1567
- return typebox.Type.Partial(schema, {
1614
+ return Type.Partial(schema, {
1568
1615
  additionalProperties: false,
1569
1616
  ...options
1570
1617
  });
@@ -1582,7 +1629,7 @@ var TypeProvider = class TypeProvider {
1582
1629
  * ```
1583
1630
  */
1584
1631
  object(properties, options) {
1585
- return typebox.Type.Object(properties, {
1632
+ return Type.Object(properties, {
1586
1633
  additionalProperties: false,
1587
1634
  ...options
1588
1635
  });
@@ -1594,7 +1641,7 @@ var TypeProvider = class TypeProvider {
1594
1641
  * @see TypeProvider.DEFAULT_ARRAY_MAX_ITEMS
1595
1642
  */
1596
1643
  array(schema, options) {
1597
- return typebox.Type.Array(schema, {
1644
+ return Type.Array(schema, {
1598
1645
  maxItems: TypeProvider.DEFAULT_ARRAY_MAX_ITEMS,
1599
1646
  ...options
1600
1647
  });
@@ -1606,7 +1653,7 @@ var TypeProvider = class TypeProvider {
1606
1653
  * If you need a string with specific format (e.g. email, uuid), consider using the corresponding method (e.g. `t.email()`, `t.uuid()`).
1607
1654
  */
1608
1655
  string(options = {}) {
1609
- return typebox.Type.String({ ...options });
1656
+ return Type.String({ ...options });
1610
1657
  }
1611
1658
  /**
1612
1659
  * Create a schema for a string with length limits.
@@ -1617,7 +1664,7 @@ var TypeProvider = class TypeProvider {
1617
1664
  text(options = {}) {
1618
1665
  const { size, ...rest } = options;
1619
1666
  const maxLength = size === "short" ? TypeProvider.DEFAULT_SHORT_STRING_MAX_LENGTH : size === "long" ? TypeProvider.DEFAULT_LONG_STRING_MAX_LENGTH : size === "rich" ? TypeProvider.DEFAULT_RICH_STRING_MAX_LENGTH : TypeProvider.DEFAULT_STRING_MAX_LENGTH;
1620
- return typebox.Type.String({
1667
+ return Type.String({
1621
1668
  maxLength,
1622
1669
  "~options": {
1623
1670
  trim: options.trim ?? true,
@@ -1637,22 +1684,22 @@ var TypeProvider = class TypeProvider {
1637
1684
  * Create a schema for a boolean.
1638
1685
  */
1639
1686
  boolean(options) {
1640
- return typebox.Type.Boolean({ ...options });
1687
+ return Type.Boolean({ ...options });
1641
1688
  }
1642
1689
  /**
1643
1690
  * Create a schema for a number.
1644
1691
  */
1645
1692
  number(options) {
1646
- return typebox.Type.Number({ ...options });
1693
+ return Type.Number({ ...options });
1647
1694
  }
1648
1695
  /**
1649
1696
  * Create a schema for an integer.
1650
1697
  */
1651
1698
  integer(options) {
1652
- return typebox.Type.Integer({ ...options });
1699
+ return Type.Integer({ ...options });
1653
1700
  }
1654
1701
  int32(options) {
1655
- return typebox.Type.Integer({
1702
+ return Type.Integer({
1656
1703
  minimum: -2147483647,
1657
1704
  maximum: 2147483647,
1658
1705
  ...options
@@ -1666,7 +1713,7 @@ var TypeProvider = class TypeProvider {
1666
1713
  * Use `t.bigint()` for true int64 values represented as strings.
1667
1714
  */
1668
1715
  int64(options) {
1669
- return typebox.Type.Number({
1716
+ return Type.Number({
1670
1717
  format: "int64",
1671
1718
  multipleOf: 1,
1672
1719
  minimum: -9007199254740991,
@@ -1678,23 +1725,23 @@ var TypeProvider = class TypeProvider {
1678
1725
  * Make a schema optional.
1679
1726
  */
1680
1727
  optional(schema) {
1681
- return typebox.Type.Optional(schema);
1728
+ return Type.Optional(schema);
1682
1729
  }
1683
1730
  /**
1684
1731
  * Make a schema nullable.
1685
1732
  */
1686
1733
  nullable(schema, options) {
1687
- return typebox.Type.Union([typebox.Type.Null(), schema], options);
1734
+ return Type.Union([Type.Null(), schema], options);
1688
1735
  }
1689
1736
  /**
1690
1737
  * Create a schema that maps all properties of an object schema to nullable.
1691
1738
  */
1692
- nullify = (schema, options) => typebox.Type.Mapped(typebox.Type.Identifier("K"), typebox.Type.KeyOf(schema), typebox.Type.Ref("K"), typebox.Type.Union([typebox.Type.Index(schema, typebox.Type.Ref("K")), typebox.Type.Null()]), options);
1739
+ nullify = (schema, options) => Type.Mapped(Type.Identifier("K"), Type.KeyOf(schema), Type.Ref("K"), Type.Union([Type.Index(schema, Type.Ref("K")), Type.Null()]), options);
1693
1740
  /**
1694
1741
  * Create a schema for a string enum.
1695
1742
  */
1696
1743
  enum(values, options) {
1697
- return typebox.Type.Unsafe(t.text({
1744
+ return Type.Unsafe(t.text({
1698
1745
  enum: values,
1699
1746
  pattern: values.map((v) => `^${v}$`).join("|"),
1700
1747
  ...options
@@ -1745,7 +1792,7 @@ var TypeProvider = class TypeProvider {
1745
1792
  * Implementation of file-like objects is handled by "alepha/file" package.
1746
1793
  */
1747
1794
  file(options) {
1748
- return typebox.Type.Unsafe(typebox.Type.Any({
1795
+ return Type.Unsafe(Type.Any({
1749
1796
  [OPTIONS]: options,
1750
1797
  format: "binary"
1751
1798
  }));
@@ -1754,7 +1801,7 @@ var TypeProvider = class TypeProvider {
1754
1801
  * @experimental
1755
1802
  */
1756
1803
  stream() {
1757
- return typebox.Type.Unsafe(typebox.Type.Any({
1804
+ return Type.Unsafe(Type.Any({
1758
1805
  format: "stream",
1759
1806
  type: "string"
1760
1807
  }));
@@ -1849,7 +1896,7 @@ var TypeProvider = class TypeProvider {
1849
1896
  const t = new TypeProvider();
1850
1897
 
1851
1898
  //#endregion
1852
- //#region src/core/descriptors/$env.ts
1899
+ //#region src/core/primitives/$env.ts
1853
1900
  /**
1854
1901
  * Get typed values from environment variables.
1855
1902
  *
@@ -1883,7 +1930,7 @@ const $env = (type) => {
1883
1930
  };
1884
1931
 
1885
1932
  //#endregion
1886
- //#region src/core/descriptors/$hook.ts
1933
+ //#region src/core/primitives/$hook.ts
1887
1934
  /**
1888
1935
  * Registers a new hook.
1889
1936
  *
@@ -1923,8 +1970,8 @@ const $env = (type) => {
1923
1970
  * ```
1924
1971
  *
1925
1972
  */
1926
- const $hook = (options) => createDescriptor(HookDescriptor, options);
1927
- var HookDescriptor = class extends Descriptor {
1973
+ const $hook = (options) => createPrimitive(HookPrimitive, options);
1974
+ var HookPrimitive = class extends Primitive {
1928
1975
  called = 0;
1929
1976
  onInit() {
1930
1977
  this.alepha.events.on(this.options.on, {
@@ -1937,10 +1984,10 @@ var HookDescriptor = class extends Descriptor {
1937
1984
  });
1938
1985
  }
1939
1986
  };
1940
- $hook[KIND] = HookDescriptor;
1987
+ $hook[KIND] = HookPrimitive;
1941
1988
 
1942
1989
  //#endregion
1943
- //#region src/core/descriptors/$use.ts
1990
+ //#region src/core/primitives/$use.ts
1944
1991
  /**
1945
1992
  * Subscribes to an atom's state and returns its current value for use in components.
1946
1993
  *
@@ -1965,94 +2012,14 @@ $hook[KIND] = HookDescriptor;
1965
2012
  */
1966
2013
  const $use = (atom) => {
1967
2014
  const { alepha } = $context();
1968
- alepha.state.register(atom);
1969
- const init = alepha.state.get(atom.key);
2015
+ alepha.store.register(atom);
2016
+ const init = alepha.store.get(atom.key);
1970
2017
  return {
1971
2018
  [OPTIONS]: { getter: atom.key },
1972
2019
  ...init
1973
2020
  };
1974
2021
  };
1975
2022
 
1976
- //#endregion
1977
- //#region src/core/errors/AppNotStartedError.ts
1978
- var AppNotStartedError = class extends AlephaError {
1979
- name = "AppNotStartedError";
1980
- constructor() {
1981
- super("App not started. Please start the app before.");
1982
- }
1983
- };
1984
-
1985
- //#endregion
1986
- //#region src/core/helpers/createPagination.ts
1987
- /**
1988
- * Create a pagination object from an array of entities.
1989
- *
1990
- * This is a pure function that works with any data source (databases, APIs, caches, arrays, etc.).
1991
- * It handles the core pagination logic including:
1992
- * - Slicing the content to the requested page size
1993
- * - Calculating pagination metadata (offset, page number, etc.)
1994
- * - Determining navigation state (isFirst, isLast)
1995
- * - Including sort metadata when provided
1996
- *
1997
- * @param entities - The entities to paginate (should include one extra item to detect if there's a next page)
1998
- * @param limit - The limit of the pagination (page size)
1999
- * @param offset - The offset of the pagination (starting position)
2000
- * @param sort - Optional sort metadata to include in response
2001
- * @returns A complete Page object with content and metadata
2002
- *
2003
- * @example Basic pagination
2004
- * ```ts
2005
- * const users = await fetchUsers({ limit: 11, offset: 0 }); // Fetch limit + 1
2006
- * const page = createPagination(users, 10, 0);
2007
- * // page.content has max 10 items
2008
- * // page.page.isLast tells us if there are more pages
2009
- * ```
2010
- *
2011
- * @example With sorting
2012
- * ```ts
2013
- * const page = createPagination(
2014
- * entities,
2015
- * 10,
2016
- * 0,
2017
- * [{ column: "name", direction: "asc" }]
2018
- * );
2019
- * ```
2020
- *
2021
- * @example In a custom service
2022
- * ```ts
2023
- * class MyService {
2024
- * async listItems(page: number, size: number) {
2025
- * const items = await this.fetchItems({ limit: size + 1, offset: page * size });
2026
- * return createPagination(items, size, page * size);
2027
- * }
2028
- * }
2029
- * ```
2030
- */
2031
- function createPagination(entities, limit = 10, offset = 0, sort) {
2032
- const content = entities.slice(0, limit);
2033
- const hasNext = entities.length === limit + 1;
2034
- const pageNumber = Math.floor(offset / limit);
2035
- return {
2036
- content,
2037
- page: {
2038
- number: pageNumber,
2039
- size: limit,
2040
- offset,
2041
- numberOfElements: content.length,
2042
- isEmpty: content.length === 0,
2043
- isFirst: pageNumber === 0,
2044
- isLast: !hasNext,
2045
- ...sort && sort.length > 0 ? { sort: {
2046
- sorted: true,
2047
- fields: sort.map((s) => ({
2048
- field: s.column,
2049
- direction: s.direction
2050
- }))
2051
- } } : {}
2052
- }
2053
- };
2054
- }
2055
-
2056
2023
  //#endregion
2057
2024
  //#region src/core/schemas/pageQuerySchema.ts
2058
2025
  const pageQuerySchema = t.object({
@@ -2119,146 +2086,28 @@ const pageSchema = (objectSchema, options) => t.object({
2119
2086
  TypeProvider.prototype.page = (itemSchema) => pageSchema(itemSchema);
2120
2087
 
2121
2088
  //#endregion
2122
- //#region src/core/index.ts
2123
- /**
2124
- * Run Alepha application, trigger start lifecycle.
2125
- *
2126
- * ```ts
2127
- * import { Alepha, run } from "alepha";
2128
- * import { MyService } from "./services/MyService.ts";
2129
- *
2130
- * const alepha = new Alepha({ env: { APP_NAME: "MyAlephaApp" } });
2131
- *
2132
- * alepha.with(MyService);
2133
- *
2134
- * export default run(alepha);
2135
- * ```
2136
- */
2089
+ //#region src/core/index.native.ts
2090
+ if (!Promise.withResolvers) Promise.withResolvers = () => {
2091
+ let resolve;
2092
+ let reject;
2093
+ return {
2094
+ promise: new Promise((res, rej) => {
2095
+ resolve = res;
2096
+ reject = rej;
2097
+ }),
2098
+ resolve,
2099
+ reject
2100
+ };
2101
+ };
2137
2102
  const run = (entry, opts) => {
2138
- const env = typeof process === "object" ? process.env : {};
2139
- const alepha = entry instanceof Alepha ? entry : Alepha.create({ env: {
2140
- ...env,
2141
- ...opts?.env
2142
- } });
2103
+ const alepha = entry instanceof Alepha ? entry : Alepha.create({ env: { ...opts?.env } });
2143
2104
  if (!(entry instanceof Alepha)) {
2144
2105
  const entries = Array.isArray(entry) ? entry : [entry];
2145
2106
  for (const e of entries) alepha.with(e);
2146
2107
  }
2147
- globalThis.__alepha = alepha;
2148
- if (env.ALEPHA_CLI_IMPORT) globalThis.__cli_alepha = alepha;
2149
- if (alepha.isServerless() || alepha.isViteDev() || env.ALEPHA_CLI_IMPORT) return alepha;
2150
- if (opts?.cluster) {
2151
- withCluster(entry, opts);
2152
- return alepha;
2153
- }
2154
- (async () => {
2155
- try {
2156
- await opts?.configure?.(alepha);
2157
- await alepha.start();
2158
- if (opts?.ready) await opts.ready(alepha);
2159
- if (opts?.once) {
2160
- await alepha.stop();
2161
- return alepha;
2162
- }
2163
- if (typeof process === "object") for (const trap of [
2164
- "SIGTERM",
2165
- "SIGINT",
2166
- "SIGUSR2",
2167
- "uncaughtException"
2168
- ]) process.once(trap, async (err) => {
2169
- if (trap === "uncaughtException") alepha.log?.error("Uncaught Exception", err);
2170
- else alepha.log?.info("Received signal", { trap });
2171
- try {
2172
- await alepha.stop();
2173
- console.log(" ");
2174
- process.exit(0);
2175
- } catch (error) {
2176
- alepha.log?.error("Alepha failed to stop", error);
2177
- process.exit(1);
2178
- }
2179
- });
2180
- } catch (error) {
2181
- alepha.log?.error("Alepha failed to start", error);
2182
- if (typeof process === "object") process.exit(1);
2183
- }
2184
- })();
2185
2108
  return alepha;
2186
2109
  };
2187
- AlsProvider.create = () => new node_async_hooks.AsyncLocalStorage();
2188
- /**
2189
- * Run Alepha in cluster mode, forking workers based on the number of CPU cores.
2190
- */
2191
- const withCluster = (entry, opts) => {
2192
- const numCPUs = (0, node_os.cpus)().length;
2193
- if (node_cluster.default.isPrimary) for (let i = 0; i < numCPUs; i++) node_cluster.default.fork();
2194
- else run(entry, {
2195
- ...opts,
2196
- env: {
2197
- ...opts?.env,
2198
- APP_NAME: `${opts?.env?.APP_NAME || "P"}-${node_cluster.default.worker?.id}`
2199
- },
2200
- cluster: false
2201
- });
2202
- };
2203
2110
 
2204
2111
  //#endregion
2205
- exports.$atom = $atom;
2206
- exports.$context = $context;
2207
- exports.$env = $env;
2208
- exports.$hook = $hook;
2209
- exports.$inject = $inject;
2210
- exports.$module = $module;
2211
- exports.$use = $use;
2212
- exports.Alepha = Alepha;
2213
- exports.AlephaError = AlephaError;
2214
- exports.AlsProvider = AlsProvider;
2215
- exports.AppNotStartedError = AppNotStartedError;
2216
- exports.Atom = Atom;
2217
- exports.CircularDependencyError = CircularDependencyError;
2218
- exports.CodecManager = CodecManager;
2219
- exports.ContainerLockedError = ContainerLockedError;
2220
- exports.Descriptor = Descriptor;
2221
- exports.EventManager = EventManager;
2222
- exports.HookDescriptor = HookDescriptor;
2223
- exports.InjectDescriptor = InjectDescriptor;
2224
- exports.JsonSchemaCodec = JsonSchemaCodec;
2225
- exports.KIND = KIND;
2226
- exports.Module = Module;
2227
- exports.OPTIONS = OPTIONS;
2228
- exports.SchemaCodec = SchemaCodec;
2229
- exports.StateManager = StateManager;
2230
- exports.TooLateSubstitutionError = TooLateSubstitutionError;
2231
- Object.defineProperty(exports, 'TypeBox', {
2232
- enumerable: true,
2233
- get: function () {
2234
- return typebox;
2235
- }
2236
- });
2237
- exports.TypeBoxError = TypeBoxError;
2238
- exports.TypeBoxFormat = typebox_format.default;
2239
- Object.defineProperty(exports, 'TypeBoxValue', {
2240
- enumerable: true,
2241
- get: function () {
2242
- return typebox_value;
2243
- }
2244
- });
2245
- exports.TypeGuard = TypeGuard;
2246
- exports.TypeProvider = TypeProvider;
2247
- exports.createDescriptor = createDescriptor;
2248
- exports.createPagination = createPagination;
2249
- exports.isClass = isClass;
2250
- exports.isDate = isDate;
2251
- exports.isDateTime = isDateTime;
2252
- exports.isDuration = isDuration;
2253
- exports.isEmail = isEmail;
2254
- exports.isFileLike = isFileLike;
2255
- exports.isTime = isTime;
2256
- exports.isTypeFile = isTypeFile;
2257
- exports.isURL = isURL;
2258
- exports.isUUID = isUUID;
2259
- exports.pageMetadataSchema = pageMetadataSchema;
2260
- exports.pageQuerySchema = pageQuerySchema;
2261
- exports.pageSchema = pageSchema;
2262
- exports.run = run;
2263
- exports.t = t;
2264
- //# sourceMappingURL=index.cjs.map
2112
+ 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 };
2113
+ //# sourceMappingURL=index.native.js.map