alepha 0.13.1 → 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 (296) 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 +46 -46
  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 +223 -2000
  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/index.d.ts +28 -26
  28. package/dist/cli/index.js +50 -13
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/command/index.d.ts +19 -19
  31. package/dist/command/index.js +25 -25
  32. package/dist/command/index.js.map +1 -1
  33. package/dist/core/index.browser.js +218 -218
  34. package/dist/core/index.browser.js.map +1 -1
  35. package/dist/core/index.d.ts +232 -232
  36. package/dist/core/index.js +218 -218
  37. package/dist/core/index.js.map +1 -1
  38. package/dist/core/index.native.js +2113 -0
  39. package/dist/core/index.native.js.map +1 -0
  40. package/dist/datetime/index.d.ts +9 -9
  41. package/dist/datetime/index.js +7 -7
  42. package/dist/datetime/index.js.map +1 -1
  43. package/dist/email/index.d.ts +16 -16
  44. package/dist/email/index.js +9 -9
  45. package/dist/email/index.js.map +1 -1
  46. package/dist/file/index.js +1 -1
  47. package/dist/file/index.js.map +1 -1
  48. package/dist/lock/index.d.ts +9 -9
  49. package/dist/lock/index.js +8 -8
  50. package/dist/lock/index.js.map +1 -1
  51. package/dist/lock-redis/index.js +3 -66
  52. package/dist/lock-redis/index.js.map +1 -1
  53. package/dist/logger/index.d.ts +5 -5
  54. package/dist/logger/index.js +8 -8
  55. package/dist/logger/index.js.map +1 -1
  56. package/dist/orm/index.browser.js +114 -114
  57. package/dist/orm/index.browser.js.map +1 -1
  58. package/dist/orm/index.d.ts +218 -218
  59. package/dist/orm/index.js +46 -46
  60. package/dist/orm/index.js.map +1 -1
  61. package/dist/queue/index.d.ts +29 -29
  62. package/dist/queue/index.js +20 -20
  63. package/dist/queue/index.js.map +1 -1
  64. package/dist/queue-redis/index.d.ts +2 -2
  65. package/dist/redis/index.d.ts +10 -10
  66. package/dist/retry/index.d.ts +19 -19
  67. package/dist/retry/index.js +7 -7
  68. package/dist/retry/index.js.map +1 -1
  69. package/dist/scheduler/index.d.ts +16 -16
  70. package/dist/scheduler/index.js +9 -9
  71. package/dist/scheduler/index.js.map +1 -1
  72. package/dist/security/index.d.ts +80 -80
  73. package/dist/security/index.js +32 -32
  74. package/dist/security/index.js.map +1 -1
  75. package/dist/server/index.browser.js +1 -1
  76. package/dist/server/index.browser.js.map +1 -1
  77. package/dist/server/index.d.ts +101 -101
  78. package/dist/server/index.js +16 -16
  79. package/dist/server/index.js.map +1 -1
  80. package/dist/server-auth/index.browser.js +4 -982
  81. package/dist/server-auth/index.browser.js.map +1 -1
  82. package/dist/server-auth/index.d.ts +204 -785
  83. package/dist/server-auth/index.js +47 -1239
  84. package/dist/server-auth/index.js.map +1 -1
  85. package/dist/server-cache/index.d.ts +10 -10
  86. package/dist/server-cache/index.js +2 -2
  87. package/dist/server-cache/index.js.map +1 -1
  88. package/dist/server-compress/index.d.ts +4 -4
  89. package/dist/server-compress/index.js +1 -1
  90. package/dist/server-compress/index.js.map +1 -1
  91. package/dist/server-cookies/index.browser.js +8 -8
  92. package/dist/server-cookies/index.browser.js.map +1 -1
  93. package/dist/server-cookies/index.d.ts +17 -17
  94. package/dist/server-cookies/index.js +10 -10
  95. package/dist/server-cookies/index.js.map +1 -1
  96. package/dist/server-cors/index.d.ts +17 -17
  97. package/dist/server-cors/index.js +9 -9
  98. package/dist/server-cors/index.js.map +1 -1
  99. package/dist/server-health/index.d.ts +19 -19
  100. package/dist/server-helmet/index.d.ts +1 -1
  101. package/dist/server-links/index.browser.js +12 -12
  102. package/dist/server-links/index.browser.js.map +1 -1
  103. package/dist/server-links/index.d.ts +59 -251
  104. package/dist/server-links/index.js +23 -502
  105. package/dist/server-links/index.js.map +1 -1
  106. package/dist/server-metrics/index.d.ts +4 -4
  107. package/dist/server-multipart/index.d.ts +2 -2
  108. package/dist/server-proxy/index.d.ts +12 -12
  109. package/dist/server-proxy/index.js +10 -10
  110. package/dist/server-proxy/index.js.map +1 -1
  111. package/dist/server-rate-limit/index.d.ts +22 -22
  112. package/dist/server-rate-limit/index.js +12 -12
  113. package/dist/server-rate-limit/index.js.map +1 -1
  114. package/dist/server-security/index.d.ts +22 -22
  115. package/dist/server-security/index.js +15 -15
  116. package/dist/server-security/index.js.map +1 -1
  117. package/dist/server-static/index.d.ts +14 -14
  118. package/dist/server-static/index.js +8 -8
  119. package/dist/server-static/index.js.map +1 -1
  120. package/dist/server-swagger/index.d.ts +25 -184
  121. package/dist/server-swagger/index.js +21 -724
  122. package/dist/server-swagger/index.js.map +1 -1
  123. package/dist/sms/index.d.ts +14 -14
  124. package/dist/sms/index.js +9 -9
  125. package/dist/sms/index.js.map +1 -1
  126. package/dist/thread/index.d.ts +11 -11
  127. package/dist/thread/index.js +17 -17
  128. package/dist/thread/index.js.map +1 -1
  129. package/dist/topic/index.d.ts +26 -26
  130. package/dist/topic/index.js +16 -16
  131. package/dist/topic/index.js.map +1 -1
  132. package/dist/topic-redis/index.d.ts +1 -1
  133. package/dist/vite/index.d.ts +3 -3
  134. package/dist/vite/index.js +8 -8
  135. package/dist/vite/index.js.map +1 -1
  136. package/dist/websocket/index.browser.js +11 -11
  137. package/dist/websocket/index.browser.js.map +1 -1
  138. package/dist/websocket/index.d.ts +58 -58
  139. package/dist/websocket/index.js +13 -13
  140. package/dist/websocket/index.js.map +1 -1
  141. package/package.json +113 -52
  142. package/src/api-files/services/FileService.ts +5 -7
  143. package/src/api-jobs/index.ts +1 -1
  144. package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
  145. package/src/api-jobs/providers/JobProvider.ts +9 -9
  146. package/src/api-jobs/services/JobService.ts +5 -5
  147. package/src/api-notifications/index.ts +5 -15
  148. package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
  149. package/src/api-notifications/services/NotificationSenderService.ts +3 -3
  150. package/src/api-parameters/index.ts +1 -1
  151. package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
  152. package/src/api-users/index.ts +1 -1
  153. package/src/api-users/{descriptors → primitives}/$userRealm.ts +8 -8
  154. package/src/api-users/providers/UserRealmProvider.ts +1 -1
  155. package/src/batch/index.ts +3 -3
  156. package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
  157. package/src/bucket/index.ts +8 -8
  158. package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
  159. package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
  160. package/src/cache/index.ts +4 -4
  161. package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
  162. package/src/cli/apps/AlephaPackageBuilderCli.ts +24 -2
  163. package/src/cli/commands/DrizzleCommands.ts +6 -6
  164. package/src/cli/commands/VerifyCommands.ts +1 -1
  165. package/src/cli/commands/ViteCommands.ts +6 -1
  166. package/src/cli/services/ProjectUtils.ts +34 -3
  167. package/src/command/index.ts +5 -5
  168. package/src/command/{descriptors → primitives}/$command.ts +9 -12
  169. package/src/command/providers/CliProvider.ts +10 -10
  170. package/src/core/Alepha.ts +30 -33
  171. package/src/core/constants/KIND.ts +1 -1
  172. package/src/core/constants/OPTIONS.ts +1 -1
  173. package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
  174. package/src/core/helpers/ref.ts +1 -1
  175. package/src/core/index.shared.ts +8 -8
  176. package/src/core/{descriptors → primitives}/$context.ts +5 -5
  177. package/src/core/{descriptors → primitives}/$hook.ts +4 -4
  178. package/src/core/{descriptors → primitives}/$inject.ts +2 -2
  179. package/src/core/{descriptors → primitives}/$module.ts +9 -9
  180. package/src/core/{descriptors → primitives}/$use.ts +2 -2
  181. package/src/core/providers/CodecManager.ts +1 -1
  182. package/src/core/providers/JsonSchemaCodec.ts +1 -1
  183. package/src/core/providers/StateManager.ts +2 -2
  184. package/src/datetime/index.ts +3 -3
  185. package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
  186. package/src/email/index.ts +4 -4
  187. package/src/email/{descriptors → primitives}/$email.ts +8 -8
  188. package/src/file/index.ts +1 -1
  189. package/src/lock/index.ts +3 -3
  190. package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
  191. package/src/logger/index.ts +8 -8
  192. package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
  193. package/src/logger/services/Logger.ts +1 -1
  194. package/src/orm/constants/PG_SYMBOLS.ts +2 -2
  195. package/src/orm/index.browser.ts +2 -2
  196. package/src/orm/index.ts +8 -8
  197. package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
  198. package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
  199. package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
  200. package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
  201. package/src/orm/providers/PostgresTypeProvider.ts +3 -3
  202. package/src/orm/providers/RepositoryProvider.ts +4 -4
  203. package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
  204. package/src/orm/services/ModelBuilder.ts +9 -9
  205. package/src/orm/services/PgRelationManager.ts +2 -2
  206. package/src/orm/services/PostgresModelBuilder.ts +5 -5
  207. package/src/orm/services/Repository.ts +7 -7
  208. package/src/orm/services/SqliteModelBuilder.ts +5 -5
  209. package/src/queue/index.ts +7 -7
  210. package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
  211. package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
  212. package/src/queue/providers/WorkerProvider.ts +7 -7
  213. package/src/retry/index.ts +3 -3
  214. package/src/retry/{descriptors → primitives}/$retry.ts +14 -14
  215. package/src/scheduler/index.ts +3 -3
  216. package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
  217. package/src/scheduler/providers/CronProvider.ts +1 -1
  218. package/src/security/index.ts +9 -9
  219. package/src/security/{descriptors → primitives}/$permission.ts +7 -7
  220. package/src/security/{descriptors → primitives}/$realm.ts +6 -12
  221. package/src/security/{descriptors → primitives}/$role.ts +12 -12
  222. package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
  223. package/src/server/index.browser.ts +1 -1
  224. package/src/server/index.ts +14 -14
  225. package/src/server/{descriptors → primitives}/$action.ts +13 -13
  226. package/src/server/{descriptors → primitives}/$route.ts +9 -9
  227. package/src/server/providers/NodeHttpServerProvider.ts +1 -1
  228. package/src/server/services/HttpClient.ts +1 -1
  229. package/src/server-auth/index.browser.ts +1 -1
  230. package/src/server-auth/index.ts +6 -6
  231. package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
  232. package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
  233. package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
  234. package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
  235. package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
  236. package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
  237. package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
  238. package/src/server-cookies/index.browser.ts +2 -2
  239. package/src/server-cookies/index.ts +5 -5
  240. package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
  241. package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
  242. package/src/server-cookies/providers/ServerCookiesProvider.ts +4 -4
  243. package/src/server-cookies/services/CookieParser.ts +1 -1
  244. package/src/server-cors/index.ts +3 -3
  245. package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
  246. package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
  247. package/src/server-links/index.browser.ts +5 -5
  248. package/src/server-links/index.ts +9 -9
  249. package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
  250. package/src/server-links/providers/LinkProvider.ts +7 -7
  251. package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
  252. package/src/server-links/providers/ServerLinksProvider.ts +3 -3
  253. package/src/server-proxy/index.ts +3 -3
  254. package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
  255. package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
  256. package/src/server-rate-limit/index.ts +6 -6
  257. package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
  258. package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
  259. package/src/server-security/index.ts +3 -3
  260. package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
  261. package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
  262. package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
  263. package/src/server-static/index.ts +3 -3
  264. package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
  265. package/src/server-static/providers/ServerStaticProvider.ts +6 -6
  266. package/src/server-swagger/index.ts +5 -5
  267. package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
  268. package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
  269. package/src/sms/index.ts +4 -4
  270. package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
  271. package/src/thread/index.ts +3 -3
  272. package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
  273. package/src/thread/providers/ThreadProvider.ts +7 -9
  274. package/src/topic/index.ts +5 -5
  275. package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
  276. package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
  277. package/src/topic/providers/TopicProvider.ts +4 -4
  278. package/src/vite/tasks/copyAssets.ts +1 -1
  279. package/src/vite/tasks/generateSitemap.ts +3 -3
  280. package/src/vite/tasks/prerenderPages.ts +2 -2
  281. package/src/vite/tasks/runAlepha.ts +2 -2
  282. package/src/websocket/index.browser.ts +3 -3
  283. package/src/websocket/index.shared.ts +2 -2
  284. package/src/websocket/index.ts +4 -4
  285. package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
  286. package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
  287. package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
  288. package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
  289. package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
  290. package/src/websocket/services/WebSocketClient.ts +5 -5
  291. package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
  292. package/src/api-notifications/providers/SmsProvider.ts +0 -8
  293. /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
  294. /package/src/core/{descriptors → primitives}/$env.ts +0 -0
  295. /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
  296. /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
@@ -3,9 +3,9 @@ import {
3
3
  $inject,
4
4
  Alepha,
5
5
  type Async,
6
- createDescriptor,
7
- Descriptor,
6
+ createPrimitive,
8
7
  KIND,
8
+ Primitive,
9
9
  type Static,
10
10
  t,
11
11
  } from "alepha";
@@ -19,17 +19,17 @@ import { $logger } from "alepha/logger";
19
19
  import { CronProvider } from "../providers/CronProvider.ts";
20
20
 
21
21
  /**
22
- * Scheduler descriptor.
22
+ * Scheduler primitive.
23
23
  */
24
24
  export const $scheduler = (
25
- options: SchedulerDescriptorOptions,
26
- ): SchedulerDescriptor => {
27
- return createDescriptor(SchedulerDescriptor, options);
25
+ options: SchedulerPrimitiveOptions,
26
+ ): SchedulerPrimitive => {
27
+ return createPrimitive(SchedulerPrimitive, options);
28
28
  };
29
29
 
30
30
  // ---------------------------------------------------------------------------------------------------------------------
31
31
 
32
- export type SchedulerDescriptorOptions = {
32
+ export type SchedulerPrimitiveOptions = {
33
33
  /**
34
34
  * Function to run on schedule.
35
35
  */
@@ -78,7 +78,7 @@ declare module "alepha" {
78
78
  interface Env extends Partial<Static<typeof envSchema>> {}
79
79
  }
80
80
 
81
- export class SchedulerDescriptor extends Descriptor<SchedulerDescriptorOptions> {
81
+ export class SchedulerPrimitive extends Primitive<SchedulerPrimitiveOptions> {
82
82
  protected readonly log = $logger();
83
83
  protected readonly env = $env(envSchema);
84
84
  protected readonly alepha = $inject(Alepha);
@@ -186,7 +186,7 @@ export class SchedulerDescriptor extends Descriptor<SchedulerDescriptorOptions>
186
186
  });
187
187
  }
188
188
 
189
- $scheduler[KIND] = SchedulerDescriptor;
189
+ $scheduler[KIND] = SchedulerPrimitive;
190
190
 
191
191
  // ---------------------------------------------------------------------------------------------------------------------
192
192
 
@@ -74,7 +74,7 @@ export class CronProvider {
74
74
  /**
75
75
  * Registers a cron job.
76
76
  *
77
- * It's automatically done when using the `$scheduler` descriptor but can also be used manually.
77
+ * It's automatically done when using the `$scheduler` primitive but can also be used manually.
78
78
  */
79
79
  public createCronJob(
80
80
  name: string,
@@ -1,20 +1,20 @@
1
1
  import { $module } from "alepha";
2
- import { $permission } from "./descriptors/$permission.ts";
3
- import { $realm } from "./descriptors/$realm.ts";
4
- import { $role } from "./descriptors/$role.ts";
2
+ import { $permission } from "./primitives/$permission.ts";
3
+ import { $realm } from "./primitives/$realm.ts";
4
+ import { $role } from "./primitives/$role.ts";
5
5
  import { CryptoProvider } from "./providers/CryptoProvider.ts";
6
6
  import { JwtProvider } from "./providers/JwtProvider.ts";
7
7
  import { SecurityProvider } from "./providers/SecurityProvider.ts";
8
8
  import type { UserAccount } from "./schemas/userAccountInfoSchema.ts";
9
9
 
10
- export * from "./descriptors/$permission.ts";
11
- export * from "./descriptors/$realm.ts";
12
- export * from "./descriptors/$role.ts";
13
- export * from "./descriptors/$serviceAccount.ts";
14
10
  export * from "./errors/InvalidCredentialsError.ts";
15
11
  export * from "./errors/InvalidPermissionError.ts";
16
12
  export * from "./errors/SecurityError.ts";
17
13
  export * from "./interfaces/UserAccountToken.ts";
14
+ export * from "./primitives/$permission.ts";
15
+ export * from "./primitives/$realm.ts";
16
+ export * from "./primitives/$role.ts";
17
+ export * from "./primitives/$serviceAccount.ts";
18
18
  export * from "./providers/CryptoProvider.ts";
19
19
  export * from "./providers/JwtProvider.ts";
20
20
  export * from "./providers/SecurityProvider.ts";
@@ -34,7 +34,7 @@ declare module "alepha" {
34
34
  /**
35
35
  * Provides comprehensive authentication and authorization capabilities with JWT tokens, role-based access control, and user management.
36
36
  *
37
- * The security module enables building secure applications using descriptors like `$realm`, `$role`, and `$permission`
37
+ * The security module enables building secure applications using primitives like `$realm`, `$role`, and `$permission`
38
38
  * on class properties. It offers JWT-based authentication, fine-grained permissions, service accounts, and seamless
39
39
  * integration with various authentication providers and user management systems.
40
40
  *
@@ -45,6 +45,6 @@ declare module "alepha" {
45
45
  */
46
46
  export const AlephaSecurity = $module({
47
47
  name: "alepha.security",
48
- descriptors: [$realm, $role, $permission],
48
+ primitives: [$realm, $role, $permission],
49
49
  services: [SecurityProvider, JwtProvider, CryptoProvider],
50
50
  });
@@ -1,4 +1,4 @@
1
- import { $inject, createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { $inject, createPrimitive, KIND, Primitive } from "alepha";
2
2
  import { SecurityProvider } from "../providers/SecurityProvider.ts";
3
3
  import type { UserAccount } from "../schemas/userAccountInfoSchema.ts";
4
4
 
@@ -6,14 +6,14 @@ import type { UserAccount } from "../schemas/userAccountInfoSchema.ts";
6
6
  * Create a new permission.
7
7
  */
8
8
  export const $permission = (
9
- options: PermissionDescriptorOptions = {},
10
- ): PermissionDescriptor => {
11
- return createDescriptor(PermissionDescriptor, options);
9
+ options: PermissionPrimitiveOptions = {},
10
+ ): PermissionPrimitive => {
11
+ return createPrimitive(PermissionPrimitive, options);
12
12
  };
13
13
 
14
14
  // ---------------------------------------------------------------------------------------------------------------------
15
15
 
16
- export interface PermissionDescriptorOptions {
16
+ export interface PermissionPrimitiveOptions {
17
17
  /**
18
18
  * Name of the permission. Use Property name is not provided.
19
19
  */
@@ -32,7 +32,7 @@ export interface PermissionDescriptorOptions {
32
32
 
33
33
  // ---------------------------------------------------------------------------------------------------------------------
34
34
 
35
- export class PermissionDescriptor extends Descriptor<PermissionDescriptorOptions> {
35
+ export class PermissionPrimitive extends Primitive<PermissionPrimitiveOptions> {
36
36
  protected readonly securityProvider = $inject(SecurityProvider);
37
37
 
38
38
  public get name(): string {
@@ -67,4 +67,4 @@ export class PermissionDescriptor extends Descriptor<PermissionDescriptorOptions
67
67
  }
68
68
  }
69
69
 
70
- $permission[KIND] = PermissionDescriptor;
70
+ $permission[KIND] = PermissionPrimitive;
@@ -1,10 +1,4 @@
1
- import {
2
- $inject,
3
- AlephaError,
4
- createDescriptor,
5
- Descriptor,
6
- KIND,
7
- } from "alepha";
1
+ import { $inject, AlephaError, createPrimitive, KIND, Primitive } from "alepha";
8
2
  import {
9
3
  DateTimeProvider,
10
4
  type Duration,
@@ -21,13 +15,13 @@ import type { UserAccount } from "../schemas/userAccountInfoSchema.ts";
21
15
  /**
22
16
  * Create a new realm.
23
17
  */
24
- export const $realm = (options: RealmDescriptorOptions): RealmDescriptor => {
25
- return createDescriptor(RealmDescriptor, options);
18
+ export const $realm = (options: RealmPrimitiveOptions): RealmPrimitive => {
19
+ return createPrimitive(RealmPrimitive, options);
26
20
  };
27
21
 
28
22
  // ---------------------------------------------------------------------------------------------------------------------
29
23
 
30
- export type RealmDescriptorOptions = {
24
+ export type RealmPrimitiveOptions = {
31
25
  /**
32
26
  * Define the realm name.
33
27
  * If not provided, it will use the property key.
@@ -109,7 +103,7 @@ export interface RealmExternal {
109
103
 
110
104
  // ---------------------------------------------------------------------------------------------------------------------
111
105
 
112
- export class RealmDescriptor extends Descriptor<RealmDescriptorOptions> {
106
+ export class RealmPrimitive extends Primitive<RealmPrimitiveOptions> {
113
107
  protected readonly securityProvider = $inject(SecurityProvider);
114
108
  protected readonly dateTimeProvider = $inject(DateTimeProvider);
115
109
  protected readonly jwt = $inject(JwtProvider);
@@ -342,7 +336,7 @@ export class RealmDescriptor extends Descriptor<RealmDescriptorOptions> {
342
336
  }
343
337
  }
344
338
 
345
- $realm[KIND] = RealmDescriptor;
339
+ $realm[KIND] = RealmPrimitive;
346
340
 
347
341
  // ---------------------------------------------------------------------------------------------------------------------
348
342
 
@@ -1,18 +1,18 @@
1
- import { $inject, createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { $inject, createPrimitive, KIND, Primitive } from "alepha";
2
2
  import { SecurityProvider } from "../providers/SecurityProvider.ts";
3
- import type { PermissionDescriptor } from "./$permission.ts";
4
- import type { RealmDescriptor } from "./$realm.ts";
3
+ import type { PermissionPrimitive } from "./$permission.ts";
4
+ import type { RealmPrimitive } from "./$realm.ts";
5
5
 
6
6
  /**
7
7
  * Create a new role.
8
8
  */
9
- export const $role = (options: RoleDescriptorOptions = {}): RoleDescriptor => {
10
- return createDescriptor(RoleDescriptor, options);
9
+ export const $role = (options: RolePrimitiveOptions = {}): RolePrimitive => {
10
+ return createPrimitive(RolePrimitive, options);
11
11
  };
12
12
 
13
13
  // ---------------------------------------------------------------------------------------------------------------------
14
14
 
15
- export interface RoleDescriptorOptions {
15
+ export interface RolePrimitiveOptions {
16
16
  /**
17
17
  * Name of the role.
18
18
  */
@@ -23,7 +23,7 @@ export interface RoleDescriptorOptions {
23
23
  */
24
24
  description?: string;
25
25
 
26
- realm?: string | RealmDescriptor;
26
+ realm?: string | RealmPrimitive;
27
27
 
28
28
  permissions?: Array<
29
29
  | string
@@ -35,7 +35,7 @@ export interface RoleDescriptorOptions {
35
35
  >;
36
36
  }
37
37
 
38
- export class RoleDescriptor extends Descriptor<RoleDescriptorOptions> {
38
+ export class RolePrimitive extends Primitive<RolePrimitiveOptions> {
39
39
  protected readonly securityProvider = $inject(SecurityProvider);
40
40
 
41
41
  public get name(): string {
@@ -62,19 +62,19 @@ export class RoleDescriptor extends Descriptor<RoleDescriptorOptions> {
62
62
  /**
63
63
  * Get the realm of the role.
64
64
  */
65
- public get realm(): string | RealmDescriptor | undefined {
65
+ public get realm(): string | RealmPrimitive | undefined {
66
66
  return this.options.realm;
67
67
  }
68
68
 
69
- public can(permission: string | PermissionDescriptor): boolean {
69
+ public can(permission: string | PermissionPrimitive): boolean {
70
70
  return this.securityProvider.can(this.name, permission);
71
71
  }
72
72
 
73
- public check(permission: string | PermissionDescriptor) {
73
+ public check(permission: string | PermissionPrimitive) {
74
74
  return this.securityProvider.checkPermission(permission, this.name);
75
75
  }
76
76
  }
77
77
 
78
78
  // ---------------------------------------------------------------------------------------------------------------------
79
79
 
80
- $role[KIND] = RoleDescriptor;
80
+ $role[KIND] = RolePrimitive;
@@ -1,7 +1,7 @@
1
1
  import { $context } from "alepha";
2
2
  import { DateTimeProvider } from "alepha/datetime";
3
3
  import type { UserAccount } from "../schemas/userAccountInfoSchema.ts";
4
- import type { AccessTokenResponse, RealmDescriptor } from "./$realm.ts";
4
+ import type { AccessTokenResponse, RealmPrimitive } from "./$realm.ts";
5
5
 
6
6
  /**
7
7
  * Allow to get an access token for a service account.
@@ -32,8 +32,8 @@ import type { AccessTokenResponse, RealmDescriptor } from "./$realm.ts";
32
32
  * ```
33
33
  */
34
34
  export const $serviceAccount = (
35
- options: ServiceAccountDescriptorOptions,
36
- ): ServiceAccountDescriptor => {
35
+ options: ServiceAccountPrimitiveOptions,
36
+ ): ServiceAccountPrimitive => {
37
37
  const { alepha } = $context();
38
38
  const store: {
39
39
  cache?: AccessTokenResponse;
@@ -150,19 +150,19 @@ export const $serviceAccount = (
150
150
  };
151
151
  };
152
152
 
153
- export type ServiceAccountDescriptorOptions = {
153
+ export type ServiceAccountPrimitiveOptions = {
154
154
  gracePeriod?: number; // Grace period in milliseconds before token expiration
155
155
  } & (
156
156
  | {
157
- oauth2: Oauth2ServiceAccountDescriptorOptions;
157
+ oauth2: Oauth2ServiceAccountPrimitiveOptions;
158
158
  }
159
159
  | {
160
- realm: RealmDescriptor;
160
+ realm: RealmPrimitive;
161
161
  user: UserAccount;
162
162
  }
163
163
  );
164
164
 
165
- export interface Oauth2ServiceAccountDescriptorOptions {
165
+ export interface Oauth2ServiceAccountPrimitiveOptions {
166
166
  /**
167
167
  * Get Token URL.
168
168
  */
@@ -179,7 +179,7 @@ export interface Oauth2ServiceAccountDescriptorOptions {
179
179
  clientSecret: string;
180
180
  }
181
181
 
182
- export interface ServiceAccountDescriptor {
182
+ export interface ServiceAccountPrimitive {
183
183
  token: () => Promise<string>;
184
184
  }
185
185
 
@@ -9,6 +9,6 @@ export * from "./index.shared.ts";
9
9
 
10
10
  export const AlephaServer = $module({
11
11
  name: "alepha.server",
12
- descriptors: [],
12
+ primitives: [],
13
13
  services: [HttpClient],
14
14
  });
@@ -1,11 +1,5 @@
1
1
  import type { Server } from "node:http";
2
- import { $module, type Alepha, type DescriptorFactoryLike } from "alepha";
3
- import {
4
- $action,
5
- type ActionDescriptor,
6
- type ClientRequestOptions,
7
- } from "./descriptors/$action.ts";
8
- import { $route } from "./descriptors/$route.ts";
2
+ import { $module, type Alepha, type PrimitiveFactoryLike } from "alepha";
9
3
  import type { HttpError } from "./errors/HttpError.ts";
10
4
  import type {
11
5
  NodeRequestEvent,
@@ -16,6 +10,12 @@ import type {
16
10
  ServerRoute,
17
11
  WebRequestEvent,
18
12
  } from "./interfaces/ServerRequest.ts";
13
+ import {
14
+ $action,
15
+ type ActionPrimitive,
16
+ type ClientRequestOptions,
17
+ } from "./primitives/$action.ts";
18
+ import { $route } from "./primitives/$route.ts";
19
19
  import { BunHttpServerProvider } from "./providers/BunHttpServerProvider.ts";
20
20
  import { NodeHttpServerProvider } from "./providers/NodeHttpServerProvider.ts";
21
21
  import { ServerBodyParserProvider } from "./providers/ServerBodyParserProvider.ts";
@@ -36,12 +36,12 @@ declare module "alepha" {
36
36
  // -----------------------------------------------------------------------------------------------------------------
37
37
  // Local Actions hooks
38
38
  "action:onRequest": {
39
- action: ActionDescriptor<RequestConfigSchema>;
39
+ action: ActionPrimitive<RequestConfigSchema>;
40
40
  request: ServerRequest;
41
41
  options: ClientRequestOptions;
42
42
  };
43
43
  "action:onResponse": {
44
- action: ActionDescriptor<RequestConfigSchema>;
44
+ action: ActionPrimitive<RequestConfigSchema>;
45
45
  request: ServerRequest;
46
46
  options: ClientRequestOptions;
47
47
  response: any;
@@ -96,9 +96,9 @@ declare module "alepha" {
96
96
 
97
97
  // ---------------------------------------------------------------------------------------------------------------------
98
98
 
99
- export * from "./descriptors/$action.ts";
100
- export * from "./descriptors/$route.ts";
101
99
  export * from "./index.shared.ts";
100
+ export * from "./primitives/$action.ts";
101
+ export * from "./primitives/$route.ts";
102
102
  export * from "./providers/BunHttpServerProvider.ts";
103
103
  export * from "./providers/NodeHttpServerProvider.ts";
104
104
  export * from "./providers/ServerLoggerProvider.ts";
@@ -110,9 +110,9 @@ export * from "./providers/ServerTimingProvider.ts";
110
110
  // ---------------------------------------------------------------------------------------------------------------------
111
111
 
112
112
  /**
113
- * Provides high-performance HTTP server capabilities with declarative routing and action descriptors.
113
+ * Provides high-performance HTTP server capabilities with declarative routing and action primitives.
114
114
  *
115
- * The server module enables building REST APIs and web applications using `$route` and `$action` descriptors
115
+ * The server module enables building REST APIs and web applications using `$route` and `$action` primitives
116
116
  * on class properties. It provides automatic request/response handling, schema validation, middleware support,
117
117
  * and seamless integration with other Alepha modules for a complete backend solution.
118
118
  *
@@ -122,7 +122,7 @@ export * from "./providers/ServerTimingProvider.ts";
122
122
  */
123
123
  export const AlephaServer = $module({
124
124
  name: "alepha.server",
125
- descriptors: [$route, $action as DescriptorFactoryLike],
125
+ primitives: [$route, $action as PrimitiveFactoryLike],
126
126
  services: [
127
127
  ServerProvider,
128
128
  BunHttpServerProvider,
@@ -2,10 +2,10 @@ import {
2
2
  $env,
3
3
  $inject,
4
4
  type Async,
5
- createDescriptor,
6
- Descriptor,
5
+ createPrimitive,
7
6
  isTypeFile,
8
7
  KIND,
8
+ Primitive,
9
9
  type Static,
10
10
  type TObject,
11
11
  type TSchema,
@@ -30,7 +30,7 @@ import {
30
30
  } from "../services/HttpClient.ts";
31
31
 
32
32
  /**
33
- * Creates a server action descriptor for defining type-safe HTTP endpoints.
33
+ * Creates a server action primitive for defining type-safe HTTP endpoints.
34
34
  *
35
35
  * Server actions are the core building blocks for REST APIs in Alepha, providing declarative
36
36
  * HTTP endpoints with full type safety, automatic validation, and OpenAPI documentation.
@@ -95,9 +95,9 @@ import {
95
95
  * ```
96
96
  */
97
97
  export const $action = <TConfig extends RequestConfigSchema>(
98
- options: ActionDescriptorOptions<TConfig>,
99
- ): ActionDescriptorFn<TConfig> => {
100
- const instance = createDescriptor(ActionDescriptor<TConfig>, options);
98
+ options: ActionPrimitiveOptions<TConfig>,
99
+ ): ActionPrimitiveFn<TConfig> => {
100
+ const instance = createPrimitive(ActionPrimitive<TConfig>, options);
101
101
  const fn = (
102
102
  config?: ClientRequestEntry<TConfig>,
103
103
  options?: ClientRequestOptions,
@@ -109,12 +109,12 @@ export const $action = <TConfig extends RequestConfigSchema>(
109
109
  return instance.options.name || instance.config.propertyKey;
110
110
  },
111
111
  });
112
- return Object.setPrototypeOf(fn, instance) as ActionDescriptorFn<TConfig>;
112
+ return Object.setPrototypeOf(fn, instance) as ActionPrimitiveFn<TConfig>;
113
113
  };
114
114
 
115
115
  // ----------------------------------------------------------------------------------------------------------
116
116
 
117
- export interface ActionDescriptorOptions<TConfig extends RequestConfigSchema>
117
+ export interface ActionPrimitiveOptions<TConfig extends RequestConfigSchema>
118
118
  extends Omit<ServerRoute, "handler" | "path" | "schema" | "mapParams"> {
119
119
  /**
120
120
  * Name of the action.
@@ -198,9 +198,9 @@ const envSchema = t.object({
198
198
  }),
199
199
  });
200
200
 
201
- export class ActionDescriptor<
201
+ export class ActionPrimitive<
202
202
  TConfig extends RequestConfigSchema,
203
- > extends Descriptor<ActionDescriptorOptions<TConfig>> {
203
+ > extends Primitive<ActionPrimitiveOptions<TConfig>> {
204
204
  protected readonly log = $logger();
205
205
  protected readonly env = $env(envSchema);
206
206
  protected readonly httpClient = $inject(HttpClient);
@@ -416,15 +416,15 @@ export class ActionDescriptor<
416
416
  }
417
417
  }
418
418
 
419
- export interface ActionDescriptorFn<TConfig extends RequestConfigSchema>
420
- extends ActionDescriptor<TConfig> {
419
+ export interface ActionPrimitiveFn<TConfig extends RequestConfigSchema>
420
+ extends ActionPrimitive<TConfig> {
421
421
  (
422
422
  config?: ClientRequestEntry<TConfig>,
423
423
  options?: ClientRequestOptions,
424
424
  ): Promise<ClientRequestResponse<TConfig>>;
425
425
  }
426
426
 
427
- $action[KIND] = ActionDescriptor;
427
+ $action[KIND] = ActionPrimitive;
428
428
 
429
429
  // ----------------------------------------------------------------------------------------------------------
430
430
 
@@ -1,4 +1,4 @@
1
- import { $inject, createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { $inject, createPrimitive, KIND, Primitive } from "alepha";
2
2
  import type {
3
3
  RequestConfigSchema,
4
4
  ServerRoute,
@@ -8,28 +8,28 @@ import { ServerRouterProvider } from "../providers/ServerRouterProvider.ts";
8
8
  /**
9
9
  * Create a basic endpoint.
10
10
  *
11
- * It's a low level descriptor. You probably want to use `$action` instead.
11
+ * It's a low level primitive. You probably want to use `$action` instead.
12
12
  *
13
13
  * @see {@link $action}
14
14
  * @see {@link $page}
15
15
  */
16
16
  export const $route = <TConfig extends RequestConfigSchema>(
17
- options: RouteDescriptorOptions<TConfig>,
18
- ): RouteDescriptor<TConfig> => {
19
- return createDescriptor(RouteDescriptor<TConfig>, options);
17
+ options: RoutePrimitiveOptions<TConfig>,
18
+ ): RoutePrimitive<TConfig> => {
19
+ return createPrimitive(RoutePrimitive<TConfig>, options);
20
20
  };
21
21
 
22
22
  // ---------------------------------------------------------------------------------------------------------------------
23
23
 
24
- export interface RouteDescriptorOptions<
24
+ export interface RoutePrimitiveOptions<
25
25
  TConfig extends RequestConfigSchema = RequestConfigSchema,
26
26
  > extends ServerRoute<TConfig> {}
27
27
 
28
28
  // ---------------------------------------------------------------------------------------------------------------------
29
29
 
30
- export class RouteDescriptor<
30
+ export class RoutePrimitive<
31
31
  TConfig extends RequestConfigSchema,
32
- > extends Descriptor<RouteDescriptorOptions<TConfig>> {
32
+ > extends Primitive<RoutePrimitiveOptions<TConfig>> {
33
33
  protected readonly serverRouterProvider = $inject(ServerRouterProvider);
34
34
 
35
35
  protected onInit() {
@@ -37,4 +37,4 @@ export class RouteDescriptor<
37
37
  }
38
38
  }
39
39
 
40
- $route[KIND] = RouteDescriptor;
40
+ $route[KIND] = RoutePrimitive;
@@ -57,7 +57,7 @@ export class NodeHttpServerProvider extends ServerProvider {
57
57
  on: "start",
58
58
  handler: async () => {
59
59
  await this.listen();
60
- this.alepha.state.set("alepha.node.server", this.server);
60
+ this.alepha.store.set("alepha.node.server", this.server);
61
61
  },
62
62
  });
63
63
 
@@ -10,7 +10,6 @@ import {
10
10
  import { $cache } from "alepha/cache";
11
11
  import type { DurationLike } from "alepha/datetime";
12
12
  import { $logger } from "alepha/logger";
13
- import type { ClientRequestOptions } from "../descriptors/$action.ts";
14
13
  import { HttpError } from "../errors/HttpError.ts";
15
14
  import { isMultipart } from "../helpers/isMultipart.ts";
16
15
  import type {
@@ -18,6 +17,7 @@ import type {
18
17
  TRequestBody,
19
18
  TResponseBody,
20
19
  } from "../interfaces/ServerRequest.ts";
20
+ import type { ClientRequestOptions } from "../primitives/$action.ts";
21
21
  import { errorSchema } from "../schemas/errorSchema.ts";
22
22
 
23
23
  export class HttpClient {
@@ -8,6 +8,6 @@ export * from "./index.shared.ts";
8
8
 
9
9
  export const AlephaServerAuth = $module({
10
10
  name: "alepha.server.auth",
11
- descriptors: [],
11
+ primitives: [],
12
12
  services: [],
13
13
  });
@@ -1,16 +1,16 @@
1
1
  import { $module } from "alepha";
2
2
  import type { UserAccount } from "alepha/security";
3
3
  import { AlephaServerCookies } from "alepha/server/cookies";
4
- import { $auth } from "./descriptors/$auth.ts";
4
+ import { $auth } from "./primitives/$auth.ts";
5
5
  import { ServerAuthProvider } from "./providers/ServerAuthProvider.ts";
6
6
 
7
7
  // ---------------------------------------------------------------------------------------------------------------------
8
8
 
9
- export * from "./descriptors/$auth.ts";
10
- export * from "./descriptors/$authCredentials.ts";
11
- export * from "./descriptors/$authGithub.ts";
12
- export * from "./descriptors/$authGoogle.ts";
13
9
  export * from "./index.shared.ts";
10
+ export * from "./primitives/$auth.ts";
11
+ export * from "./primitives/$authCredentials.ts";
12
+ export * from "./primitives/$authGithub.ts";
13
+ export * from "./primitives/$authGoogle.ts";
14
14
  export * from "./providers/ServerAuthProvider.ts";
15
15
 
16
16
  // ---------------------------------------------------------------------------------------------------------------------
@@ -43,6 +43,6 @@ declare module "alepha" {
43
43
  */
44
44
  export const AlephaServerAuth = $module({
45
45
  name: "alepha.server.auth",
46
- descriptors: [$auth],
46
+ primitives: [$auth],
47
47
  services: [AlephaServerCookies, ServerAuthProvider],
48
48
  });
@@ -2,14 +2,14 @@ import {
2
2
  $inject,
3
3
  AlephaError,
4
4
  type Async,
5
- createDescriptor,
6
- Descriptor,
5
+ createPrimitive,
7
6
  KIND,
7
+ Primitive,
8
8
  } from "alepha";
9
9
  import { DateTimeProvider } from "alepha/datetime";
10
10
  import {
11
11
  type AccessTokenResponse,
12
- type RealmDescriptor,
12
+ type RealmPrimitive,
13
13
  SecurityError,
14
14
  SecurityProvider,
15
15
  type UserAccount,
@@ -24,7 +24,7 @@ import type { OAuth2Profile } from "../providers/ServerAuthProvider.ts";
24
24
  import type { Tokens } from "../schemas/tokensSchema.ts";
25
25
 
26
26
  /**
27
- * Creates an authentication provider descriptor for handling user login flows.
27
+ * Creates an authentication provider primitive for handling user login flows.
28
28
  *
29
29
  * Supports multiple authentication strategies: credentials (username/password), OAuth2,
30
30
  * and OIDC (OpenID Connect). Handles token management, user profile retrieval, and
@@ -57,13 +57,13 @@ import type { Tokens } from "../schemas/tokensSchema.ts";
57
57
  * }
58
58
  * ```
59
59
  */
60
- export const $auth = (options: AuthDescriptorOptions): AuthDescriptor => {
61
- return createDescriptor(AuthDescriptor, options);
60
+ export const $auth = (options: AuthPrimitiveOptions): AuthPrimitive => {
61
+ return createPrimitive(AuthPrimitive, options);
62
62
  };
63
63
 
64
64
  // ---------------------------------------------------------------------------------------------------------------------
65
65
 
66
- export type AuthDescriptorOptions = {
66
+ export type AuthPrimitiveOptions = {
67
67
  /**
68
68
  * Name of the identity provider.
69
69
  * If not provided, it will be derived from the property key.
@@ -108,7 +108,7 @@ export type AuthExternal = {
108
108
  * This relies on the `realm`, which is used to create/verify the access token.
109
109
  */
110
110
  export type AuthInternal = {
111
- realm: RealmDescriptor;
111
+ realm: RealmPrimitive;
112
112
  } & (
113
113
  | {
114
114
  /**
@@ -251,7 +251,7 @@ export interface OAuth2Options {
251
251
 
252
252
  // ---------------------------------------------------------------------------------------------------------------------
253
253
 
254
- export class AuthDescriptor extends Descriptor<AuthDescriptorOptions> {
254
+ export class AuthPrimitive extends Primitive<AuthPrimitiveOptions> {
255
255
  protected readonly securityProvider = $inject(SecurityProvider);
256
256
  protected readonly dateTimeProvider = $inject(DateTimeProvider);
257
257
 
@@ -433,7 +433,7 @@ export class AuthDescriptor extends Descriptor<AuthDescriptorOptions> {
433
433
  }
434
434
  }
435
435
 
436
- $auth[KIND] = AuthDescriptor;
436
+ $auth[KIND] = AuthPrimitive;
437
437
 
438
438
  // ---------------------------------------------------------------------------------------------------------------------
439
439