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,18 +3,18 @@ import { $module } from "alepha";
3
3
  import { AlephaServer, type RequestConfigSchema } from "alepha/server";
4
4
  import { AlephaServerCache } from "alepha/server/cache";
5
5
  import { AlephaServerStatic } from "alepha/server/static";
6
- import { $swagger } from "./descriptors/$swagger.ts";
6
+ import { $swagger } from "./primitives/$swagger.ts";
7
7
  import { ServerSwaggerProvider } from "./providers/ServerSwaggerProvider.ts";
8
8
 
9
9
  // ---------------------------------------------------------------------------------------------------------------------
10
10
 
11
- export * from "./descriptors/$swagger.ts";
11
+ export * from "./primitives/$swagger.ts";
12
12
  export * from "./providers/ServerSwaggerProvider.ts";
13
13
 
14
14
  // ---------------------------------------------------------------------------------------------------------------------
15
15
 
16
16
  declare module "alepha/server" {
17
- interface ActionDescriptorOptions<TConfig extends RequestConfigSchema> {
17
+ interface ActionPrimitiveOptions<TConfig extends RequestConfigSchema> {
18
18
  /**
19
19
  * Short description of the route.
20
20
  */
@@ -39,13 +39,13 @@ declare module "alepha/server" {
39
39
  */
40
40
  export const AlephaServerSwagger = $module({
41
41
  name: "alepha.server.swagger",
42
- descriptors: [$swagger],
42
+ primitives: [$swagger],
43
43
  services: [ServerSwaggerProvider],
44
44
  register: (alepha) => {
45
45
  alepha.with(AlephaServer);
46
46
  alepha.with(AlephaServerCache);
47
47
  alepha.with(AlephaServerStatic);
48
48
  alepha.with(ServerSwaggerProvider);
49
- alepha.state.push("alepha.build.assets", "alepha");
49
+ alepha.store.push("alepha.build.assets", "alepha");
50
50
  },
51
51
  });
@@ -1,9 +1,9 @@
1
- import { createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { createPrimitive, KIND, Primitive } from "alepha";
2
2
 
3
3
  /**
4
- * Creates an OpenAPI/Swagger documentation descriptor with interactive UI.
4
+ * Creates an OpenAPI/Swagger documentation primitive with interactive UI.
5
5
  *
6
- * Automatically generates API documentation from your $action descriptors and serves
6
+ * Automatically generates API documentation from your $action primitives and serves
7
7
  * an interactive Swagger UI for testing endpoints. Supports customization, tag filtering,
8
8
  * and OAuth configuration.
9
9
  *
@@ -24,12 +24,12 @@ import { createDescriptor, Descriptor, KIND } from "alepha";
24
24
  * ```
25
25
  */
26
26
  export const $swagger = (
27
- options: SwaggerDescriptorOptions = {},
28
- ): SwaggerDescriptor => {
29
- return createDescriptor(SwaggerDescriptor, options);
27
+ options: SwaggerPrimitiveOptions = {},
28
+ ): SwaggerPrimitive => {
29
+ return createPrimitive(SwaggerPrimitive, options);
30
30
  };
31
31
 
32
- export interface SwaggerDescriptorOptions {
32
+ export interface SwaggerPrimitiveOptions {
33
33
  info?: OpenApiDocument["info"];
34
34
 
35
35
  /**
@@ -121,9 +121,9 @@ export interface SwaggerUiOptions {
121
121
  };
122
122
  }
123
123
 
124
- export class SwaggerDescriptor extends Descriptor<SwaggerDescriptorOptions> {}
124
+ export class SwaggerPrimitive extends Primitive<SwaggerPrimitiveOptions> {}
125
125
 
126
- $swagger[KIND] = SwaggerDescriptor;
126
+ $swagger[KIND] = SwaggerPrimitive;
127
127
 
128
128
  export interface OpenApiDocument {
129
129
  openapi: string;
@@ -17,7 +17,7 @@ import { $logger } from "alepha/logger";
17
17
  import { AlephaSecurity } from "alepha/security";
18
18
  import {
19
19
  $action,
20
- type ActionDescriptor,
20
+ type ActionPrimitive,
21
21
  type RequestConfigSchema,
22
22
  ServerProvider,
23
23
  ServerRouterProvider,
@@ -27,8 +27,8 @@ import {
27
27
  $swagger,
28
28
  type OpenApiDocument,
29
29
  type OpenApiOperation,
30
- type SwaggerDescriptorOptions,
31
- } from "../descriptors/$swagger.ts";
30
+ type SwaggerPrimitiveOptions,
31
+ } from "../primitives/$swagger.ts";
32
32
 
33
33
  // ---------------------------------------------------------------------------------------------------------------------
34
34
 
@@ -74,7 +74,7 @@ export class ServerSwaggerProvider {
74
74
  on: "configure",
75
75
  priority: "last", // wait for all configurations, sometimes some actions are registered late!
76
76
  handler: async (alepha) => {
77
- const options = alepha.descriptors($swagger)?.[0]?.options;
77
+ const options = alepha.primitives($swagger)?.[0]?.options;
78
78
  if (!options) {
79
79
  return;
80
80
  }
@@ -84,14 +84,14 @@ export class ServerSwaggerProvider {
84
84
  });
85
85
 
86
86
  public async createSwagger(
87
- options: SwaggerDescriptorOptions,
87
+ options: SwaggerPrimitiveOptions,
88
88
  ): Promise<OpenApiDocument | undefined> {
89
89
  if (options.disabled) {
90
90
  return;
91
91
  }
92
92
 
93
93
  const json = this.configureOpenApi(
94
- this.alepha.descriptors($action),
94
+ this.alepha.primitives($action),
95
95
  options,
96
96
  );
97
97
 
@@ -111,8 +111,8 @@ export class ServerSwaggerProvider {
111
111
  }
112
112
 
113
113
  protected configureOpenApi(
114
- actions: ActionDescriptor<RequestConfigSchema>[],
115
- doc: SwaggerDescriptorOptions,
114
+ actions: ActionPrimitive<RequestConfigSchema>[],
115
+ doc: SwaggerPrimitiveOptions,
116
116
  ): OpenApiDocument {
117
117
  const openApi: OpenApiDocument = {
118
118
  openapi: "3.0.0",
@@ -290,7 +290,7 @@ export class ServerSwaggerProvider {
290
290
  });
291
291
  }
292
292
 
293
- public getResponseSchema(route: ActionDescriptor<RequestConfigSchema>):
293
+ public getResponseSchema(route: ActionPrimitive<RequestConfigSchema>):
294
294
  | {
295
295
  type?: string;
296
296
  schema?: any;
@@ -357,7 +357,7 @@ export class ServerSwaggerProvider {
357
357
 
358
358
  protected async configureSwaggerUi(
359
359
  prefix: string,
360
- options: SwaggerDescriptorOptions,
360
+ options: SwaggerPrimitiveOptions,
361
361
  ): Promise<void> {
362
362
  const ui = typeof options.ui === "object" ? options.ui : {};
363
363
  const initializer = `
@@ -391,6 +391,7 @@ window.onload = function() {
391
391
  const root = await this.getAssetPath(
392
392
  ui.root,
393
393
  join(dirname, "../../assets/swagger-ui"),
394
+ join(dirname, "../../../assets/swagger-ui"),
394
395
  join(dirname, "../../../../assets/swagger-ui"),
395
396
  );
396
397
 
package/src/sms/index.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { $module } from "alepha";
2
- import { $sms } from "./descriptors/$sms.ts";
2
+ import { $sms } from "./primitives/$sms.ts";
3
3
  import { LocalSmsProvider } from "./providers/LocalSmsProvider.ts";
4
4
  import { MemorySmsProvider } from "./providers/MemorySmsProvider.ts";
5
5
  import { SmsProvider } from "./providers/SmsProvider.ts";
6
6
 
7
7
  // ---------------------------------------------------------------------------------------------------------------------
8
8
 
9
- export * from "./descriptors/$sms.ts";
10
9
  export * from "./errors/SmsError.ts";
10
+ export * from "./primitives/$sms.ts";
11
11
  export * from "./providers/LocalSmsProvider.ts";
12
12
  export * from "./providers/MemorySmsProvider.ts";
13
13
  export * from "./providers/SmsProvider.ts";
@@ -36,7 +36,7 @@ declare module "alepha" {
36
36
  /**
37
37
  * Provides SMS sending capabilities for Alepha applications with multiple provider backends.
38
38
  *
39
- * The SMS module enables declarative SMS sending through the `$sms` descriptor, allowing you to send
39
+ * The SMS module enables declarative SMS sending through the `$sms` primitive, allowing you to send
40
40
  * text messages through different providers: memory (for testing) or local file system.
41
41
  * It supports automatic provider selection based on environment configuration.
42
42
  *
@@ -45,7 +45,7 @@ declare module "alepha" {
45
45
  */
46
46
  export const AlephaSms = $module({
47
47
  name: "alepha.sms",
48
- descriptors: [$sms],
48
+ primitives: [$sms],
49
49
  services: [SmsProvider, MemorySmsProvider, LocalSmsProvider],
50
50
  register: (alepha) =>
51
51
  alepha.with({
@@ -1,8 +1,8 @@
1
1
  import {
2
- createDescriptor,
3
- Descriptor,
2
+ createPrimitive,
4
3
  type InstantiableClass,
5
4
  KIND,
5
+ Primitive,
6
6
  } from "alepha";
7
7
  import { MemorySmsProvider } from "../providers/MemorySmsProvider.ts";
8
8
  import type { SmsSendOptions } from "../providers/SmsProvider.ts";
@@ -10,12 +10,12 @@ import { SmsProvider } from "../providers/SmsProvider.ts";
10
10
 
11
11
  // ---------------------------------------------------------------------------------------------------------------------
12
12
 
13
- export const $sms = (options: SmsDescriptorOptions = {}) =>
14
- createDescriptor(SmsDescriptor, options);
13
+ export const $sms = (options: SmsPrimitiveOptions = {}) =>
14
+ createPrimitive(SmsPrimitive, options);
15
15
 
16
16
  // ---------------------------------------------------------------------------------------------------------------------
17
17
 
18
- export interface SmsDescriptorOptions {
18
+ export interface SmsPrimitiveOptions {
19
19
  name?: string;
20
20
  provider?: InstantiableClass<SmsProvider> | "memory";
21
21
  }
@@ -23,7 +23,7 @@ export interface SmsDescriptorOptions {
23
23
  // ---------------------------------------------------------------------------------------------------------------------
24
24
 
25
25
  /**
26
- * SMS descriptor for sending SMS messages through various providers.
26
+ * SMS primitive for sending SMS messages through various providers.
27
27
  *
28
28
  * Usage:
29
29
  * ```typescript
@@ -39,7 +39,7 @@ export interface SmsDescriptorOptions {
39
39
  * }
40
40
  * ```
41
41
  */
42
- export class SmsDescriptor extends Descriptor<SmsDescriptorOptions> {
42
+ export class SmsPrimitive extends Primitive<SmsPrimitiveOptions> {
43
43
  protected readonly provider = this.$provider();
44
44
 
45
45
  public get name() {
@@ -82,4 +82,4 @@ export class SmsDescriptor extends Descriptor<SmsDescriptorOptions> {
82
82
 
83
83
  // ---------------------------------------------------------------------------------------------------------------------
84
84
 
85
- $sms[KIND] = SmsDescriptor;
85
+ $sms[KIND] = SmsPrimitive;
@@ -1,10 +1,10 @@
1
1
  import { $module, Alepha } from "alepha";
2
- import { $thread } from "./descriptors/$thread.ts";
2
+ import { $thread } from "./primitives/$thread.ts";
3
3
  import { ThreadProvider } from "./providers/ThreadProvider.ts";
4
4
 
5
5
  // ---------------------------------------------------------------------------------------------------------------------
6
6
 
7
- export * from "./descriptors/$thread.ts";
7
+ export * from "./primitives/$thread.ts";
8
8
  export * from "./providers/ThreadProvider.ts";
9
9
 
10
10
  // ---------------------------------------------------------------------------------------------------------------------
@@ -29,6 +29,6 @@ Alepha.prototype.isWorkerThread = function (this: Alepha): boolean {
29
29
  */
30
30
  export const AlephaThread = $module({
31
31
  name: "alepha.thread",
32
- descriptors: [$thread],
32
+ primitives: [$thread],
33
33
  services: [ThreadProvider],
34
34
  });
@@ -1,12 +1,12 @@
1
1
  import { cpus } from "node:os";
2
2
  import { MessageChannel, type MessagePort, Worker } from "node:worker_threads";
3
3
  import type { TSchema } from "alepha";
4
- import { createDescriptor, Descriptor, KIND, TypeBoxValue } from "alepha";
4
+ import { createPrimitive, KIND, Primitive, TypeBoxValue } from "alepha";
5
5
 
6
6
  /**
7
- * Creates a worker thread descriptor for offloading CPU-intensive tasks to separate threads.
7
+ * Creates a worker thread primitive for offloading CPU-intensive tasks to separate threads.
8
8
  *
9
- * This descriptor enables you to run JavaScript code in Node.js worker threads, allowing you to
9
+ * This primitive enables you to run JavaScript code in Node.js worker threads, allowing you to
10
10
  * leverage multiple CPU cores and avoid blocking the main event loop. It provides a pool-based
11
11
  * approach with intelligent thread reuse and automatic lifecycle management.
12
12
  *
@@ -117,13 +117,13 @@ import { createDescriptor, Descriptor, KIND, TypeBoxValue } from "alepha";
117
117
  * }
118
118
  * ```
119
119
  */
120
- export const $thread = (options: ThreadDescriptorOptions): ThreadDescriptor => {
121
- return createDescriptor(ThreadDescriptor, options);
120
+ export const $thread = (options: ThreadPrimitiveOptions): ThreadPrimitive => {
121
+ return createPrimitive(ThreadPrimitive, options);
122
122
  };
123
123
 
124
124
  // ---------------------------------------------------------------------------------------------------------------------
125
125
 
126
- export interface ThreadDescriptorOptions {
126
+ export interface ThreadPrimitiveOptions {
127
127
  /**
128
128
  * Unique name for this thread worker.
129
129
  *
@@ -132,7 +132,7 @@ export interface ThreadDescriptorOptions {
132
132
  * - Logging and debugging
133
133
  * - Error messages and stack traces
134
134
  *
135
- * If not provided, defaults to the property key of the descriptor.
135
+ * If not provided, defaults to the property key of the primitive.
136
136
  *
137
137
  * @example "image-processor"
138
138
  * @example "crypto-worker"
@@ -210,7 +210,7 @@ export interface ThreadDescriptorOptions {
210
210
 
211
211
  // ---------------------------------------------------------------------------------------------------------------------
212
212
 
213
- export class ThreadDescriptor extends Descriptor<ThreadDescriptorOptions> {
213
+ export class ThreadPrimitive extends Primitive<ThreadPrimitiveOptions> {
214
214
  protected readonly script = process.argv[1];
215
215
  static readonly globalPool = new Map<string, ThreadPool>();
216
216
 
@@ -227,8 +227,8 @@ export class ThreadDescriptor extends Descriptor<ThreadDescriptorOptions> {
227
227
  }
228
228
 
229
229
  private getPool(): ThreadPool {
230
- if (!ThreadDescriptor.globalPool.has(this.name)) {
231
- ThreadDescriptor.globalPool.set(
230
+ if (!ThreadPrimitive.globalPool.has(this.name)) {
231
+ ThreadPrimitive.globalPool.set(
232
232
  this.name,
233
233
  new ThreadPool(
234
234
  this.name,
@@ -238,7 +238,7 @@ export class ThreadDescriptor extends Descriptor<ThreadDescriptorOptions> {
238
238
  ),
239
239
  );
240
240
  }
241
- return ThreadDescriptor.globalPool.get(this.name)!;
241
+ return ThreadPrimitive.globalPool.get(this.name)!;
242
242
  }
243
243
 
244
244
  public async execute<T = any>(data?: any, schema?: TSchema): Promise<T> {
@@ -264,11 +264,11 @@ export class ThreadDescriptor extends Descriptor<ThreadDescriptorOptions> {
264
264
  public async terminate(): Promise<void> {
265
265
  const pool = this.getPool();
266
266
  await pool.terminate();
267
- ThreadDescriptor.globalPool.delete(this.name);
267
+ ThreadPrimitive.globalPool.delete(this.name);
268
268
  }
269
269
  }
270
270
 
271
- $thread[KIND] = ThreadDescriptor;
271
+ $thread[KIND] = ThreadPrimitive;
272
272
 
273
273
  // ---------------------------------------------------------------------------------------------------------------------
274
274
 
@@ -1,7 +1,7 @@
1
1
  import { parentPort, workerData } from "node:worker_threads";
2
2
  import { $env, $hook, t } from "alepha";
3
3
  import { $logger } from "alepha/logger";
4
- import { $thread } from "../descriptors/$thread.ts";
4
+ import { $thread } from "../primitives/$thread.ts";
5
5
 
6
6
  interface ThreadMessage<T = any> {
7
7
  id: string;
@@ -26,15 +26,15 @@ export class ThreadProvider {
26
26
  return;
27
27
  }
28
28
 
29
- const threads = alepha.descriptors($thread);
30
- const threadDescriptor = threads.find((thread) => thread.name === worker);
29
+ const threads = alepha.primitives($thread);
30
+ const threadPrimitive = threads.find((thread) => thread.name === worker);
31
31
 
32
- if (!threadDescriptor) {
32
+ if (!threadPrimitive) {
33
33
  this.log.error(`Thread not found: ${worker}`);
34
34
  return;
35
35
  }
36
36
 
37
- this.log.info(`Thread ready: ${threadDescriptor.name}`);
37
+ this.log.info(`Thread ready: ${threadPrimitive.name}`);
38
38
 
39
39
  // Use the message channel port from worker data if available, fallback to parentPort
40
40
  const communicationPort = workerData?.port || parentPort;
@@ -48,10 +48,8 @@ export class ThreadProvider {
48
48
  communicationPort.on("message", async (message: ThreadMessage) => {
49
49
  if (message.type === "execute") {
50
50
  try {
51
- this.log.debug(
52
- `Executing thread handler: ${threadDescriptor.name}`,
53
- );
54
- const result = await threadDescriptor.options.handler();
51
+ this.log.debug(`Executing thread handler: ${threadPrimitive.name}`);
52
+ const result = await threadPrimitive.options.handler();
55
53
 
56
54
  communicationPort.postMessage({
57
55
  id: message.id,
@@ -1,14 +1,14 @@
1
1
  import { $module, type Alepha } from "alepha";
2
- import { $subscriber } from "./descriptors/$subscriber.ts";
3
- import { $topic } from "./descriptors/$topic.ts";
2
+ import { $subscriber } from "./primitives/$subscriber.ts";
3
+ import { $topic } from "./primitives/$topic.ts";
4
4
  import { MemoryTopicProvider } from "./providers/MemoryTopicProvider.ts";
5
5
  import { TopicProvider } from "./providers/TopicProvider.ts";
6
6
 
7
7
  // ---------------------------------------------------------------------------------------------------------------------
8
8
 
9
- export * from "./descriptors/$subscriber.ts";
10
- export * from "./descriptors/$topic.ts";
11
9
  export * from "./errors/TopicTimeoutError.ts";
10
+ export * from "./primitives/$subscriber.ts";
11
+ export * from "./primitives/$topic.ts";
12
12
  export * from "./providers/MemoryTopicProvider.ts";
13
13
  export * from "./providers/TopicProvider.ts";
14
14
 
@@ -25,7 +25,7 @@ export * from "./providers/TopicProvider.ts";
25
25
  */
26
26
  export const AlephaTopic = $module({
27
27
  name: "alepha.topic",
28
- descriptors: [$topic, $subscriber],
28
+ primitives: [$topic, $subscriber],
29
29
  services: [TopicProvider, MemoryTopicProvider],
30
30
  register: (alepha: Alepha) =>
31
31
  alepha.with({
@@ -1,19 +1,19 @@
1
- import { createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { createPrimitive, KIND, Primitive } from "alepha";
2
2
  import type {
3
- TopicDescriptor,
4
3
  TopicHandler,
5
4
  TopicMessageSchema,
5
+ TopicPrimitive,
6
6
  } from "./$topic.ts";
7
7
 
8
8
  /**
9
- * Creates a subscriber descriptor to listen for messages from a specific topic.
9
+ * Creates a subscriber primitive to listen for messages from a specific topic.
10
10
  *
11
11
  * Provides a dedicated message subscriber that connects to a topic and processes messages
12
12
  * with custom handler logic, enabling scalable pub/sub architectures where multiple
13
13
  * subscribers can react to the same events independently.
14
14
  *
15
15
  * **Key Features**
16
- * - Seamless integration with any $topic descriptor
16
+ * - Seamless integration with any $topic primitive
17
17
  * - Full type safety inherited from topic schema
18
18
  * - Real-time message delivery when events are published
19
19
  * - Error isolation between subscribers
@@ -61,16 +61,16 @@ import type {
61
61
  * ```
62
62
  */
63
63
  export const $subscriber = <T extends TopicMessageSchema>(
64
- options: SubscriberDescriptorOptions<T>,
65
- ): SubscriberDescriptor<T> => {
66
- return createDescriptor(SubscriberDescriptor<T>, options);
64
+ options: SubscriberPrimitiveOptions<T>,
65
+ ): SubscriberPrimitive<T> => {
66
+ return createPrimitive(SubscriberPrimitive<T>, options);
67
67
  };
68
68
 
69
69
  // ---------------------------------------------------------------------------------------------------------------------
70
70
 
71
- export interface SubscriberDescriptorOptions<T extends TopicMessageSchema> {
71
+ export interface SubscriberPrimitiveOptions<T extends TopicMessageSchema> {
72
72
  /**
73
- * The topic descriptor that this subscriber will listen to for messages.
73
+ * The topic primitive that this subscriber will listen to for messages.
74
74
  *
75
75
  * This establishes the connection between the subscriber and its source topic:
76
76
  * - The subscriber inherits the topic's message schema for type safety
@@ -97,12 +97,12 @@ export interface SubscriberDescriptorOptions<T extends TopicMessageSchema> {
97
97
  *
98
98
  * // Then, create a subscriber for that topic
99
99
  * activitySubscriber = $subscriber({
100
- * topic: this.userEvents, // Reference the topic descriptor
100
+ * topic: this.userEvents, // Reference the topic primitive
101
101
  * handler: async (message) => { } // Process messages here
102
102
  * });
103
103
  * ```
104
104
  */
105
- topic: TopicDescriptor<T>;
105
+ topic: TopicPrimitive<T>;
106
106
 
107
107
  /**
108
108
  * Message handler function that processes individual messages from the topic.
@@ -203,8 +203,8 @@ export interface SubscriberDescriptorOptions<T extends TopicMessageSchema> {
203
203
 
204
204
  // ---------------------------------------------------------------------------------------------------------------------
205
205
 
206
- export class SubscriberDescriptor<
206
+ export class SubscriberPrimitive<
207
207
  T extends TopicMessageSchema,
208
- > extends Descriptor<SubscriberDescriptorOptions<T>> {}
208
+ > extends Primitive<SubscriberPrimitiveOptions<T>> {}
209
209
 
210
- $subscriber[KIND] = SubscriberDescriptor;
210
+ $subscriber[KIND] = SubscriberPrimitive;
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  $inject,
3
- createDescriptor,
4
- Descriptor,
3
+ createPrimitive,
5
4
  KIND,
5
+ Primitive,
6
6
  type Service,
7
7
  type Static,
8
8
  type TSchema,
@@ -21,7 +21,7 @@ import {
21
21
  } from "../providers/TopicProvider.ts";
22
22
 
23
23
  /**
24
- * Creates a topic descriptor for publish/subscribe messaging and event-driven architecture.
24
+ * Creates a topic primitive for publish/subscribe messaging and event-driven architecture.
25
25
  *
26
26
  * Enables decoupled communication through a pub/sub pattern where publishers send messages
27
27
  * and multiple subscribers receive them. Supports type-safe messages, real-time delivery,
@@ -59,14 +59,14 @@ import {
59
59
  * ```
60
60
  */
61
61
  export const $topic = <T extends TopicMessageSchema>(
62
- options: TopicDescriptorOptions<T>,
63
- ): TopicDescriptor<T> => {
64
- return createDescriptor(TopicDescriptor<T>, options);
62
+ options: TopicPrimitiveOptions<T>,
63
+ ): TopicPrimitive<T> => {
64
+ return createPrimitive(TopicPrimitive<T>, options);
65
65
  };
66
66
 
67
67
  // ---------------------------------------------------------------------------------------------------------------------
68
68
 
69
- export interface TopicDescriptorOptions<T extends TopicMessageSchema> {
69
+ export interface TopicPrimitiveOptions<T extends TopicMessageSchema> {
70
70
  /**
71
71
  * Unique name identifier for the topic.
72
72
  *
@@ -248,8 +248,8 @@ export interface TopicDescriptorOptions<T extends TopicMessageSchema> {
248
248
 
249
249
  // ---------------------------------------------------------------------------------------------------------------------
250
250
 
251
- export class TopicDescriptor<T extends TopicMessageSchema> extends Descriptor<
252
- TopicDescriptorOptions<T>
251
+ export class TopicPrimitive<T extends TopicMessageSchema> extends Primitive<
252
+ TopicPrimitiveOptions<T>
253
253
  > {
254
254
  protected readonly log = $logger();
255
255
  protected readonly dateTimeProvider = $inject(DateTimeProvider);
@@ -336,7 +336,7 @@ export class TopicDescriptor<T extends TopicMessageSchema> extends Descriptor<
336
336
  }
337
337
  }
338
338
 
339
- $topic[KIND] = TopicDescriptor;
339
+ $topic[KIND] = TopicPrimitive;
340
340
 
341
341
  // ---------------------------------------------------------------------------------------------------------------------
342
342
 
@@ -1,6 +1,6 @@
1
1
  import { $inject, Alepha } from "alepha";
2
- import { $subscriber } from "../descriptors/$subscriber.ts";
3
- import { $topic } from "../descriptors/$topic.ts";
2
+ import { $subscriber } from "../primitives/$subscriber.ts";
3
+ import { $topic } from "../primitives/$topic.ts";
4
4
 
5
5
  /**
6
6
  * Base class for topic providers.
@@ -40,7 +40,7 @@ export abstract class TopicProvider {
40
40
  protected subscribers(): Array<() => Promise<unknown>> {
41
41
  const handlers: Array<() => Promise<unknown>> = [];
42
42
 
43
- const topics = this.alepha.descriptors($topic);
43
+ const topics = this.alepha.primitives($topic);
44
44
 
45
45
  for (const topic of topics) {
46
46
  if (topic.provider !== this) {
@@ -53,7 +53,7 @@ export abstract class TopicProvider {
53
53
  }
54
54
  }
55
55
 
56
- const subscribers = this.alepha.descriptors($subscriber);
56
+ const subscribers = this.alepha.primitives($subscriber);
57
57
  for (const subscriber of subscribers) {
58
58
  if (subscriber.options.topic.provider !== this) {
59
59
  continue;
@@ -27,7 +27,7 @@ export interface CopyAssetsOptions {
27
27
  export async function copyAssets(opts: CopyAssetsOptions): Promise<void> {
28
28
  const root = process.cwd();
29
29
  const alepha = await importAlepha(opts.entry);
30
- const assets = alepha.state.get("alepha.build.assets");
30
+ const assets = alepha.store.get("alepha.build.assets");
31
31
 
32
32
  if (!assets || assets.length === 0) {
33
33
  return;
@@ -19,10 +19,10 @@ export interface GenerateSitemapOptions {
19
19
  }
20
20
 
21
21
  /**
22
- * Generate sitemap.xml from Alepha page descriptors.
22
+ * Generate sitemap.xml from Alepha page primitives.
23
23
  *
24
24
  * This task loads the built Alepha application,
25
- * queries all page descriptors, and generates a sitemap.xml
25
+ * queries all page primitives, and generates a sitemap.xml
26
26
  * containing URLs for all accessible pages.
27
27
  */
28
28
  export async function generateSitemap(
@@ -45,7 +45,7 @@ export async function generateSitemap(
45
45
  }
46
46
 
47
47
  function generateSitemapFromAlepha(alepha: Alepha, baseUrl: string): string {
48
- const pages = alepha.descriptors("page") as any[];
48
+ const pages = alepha.primitives("page") as any[];
49
49
  const urls: string[] = [];
50
50
 
51
51
  for (const page of pages) {
@@ -34,7 +34,7 @@ export interface PrerenderPagesResult {
34
34
  * Pre-render static pages defined in the Alepha application.
35
35
  *
36
36
  * This task loads the built Alepha application, queries all page
37
- * descriptors with `static: true`, and generates static HTML files
37
+ * primitives with `static: true`, and generates static HTML files
38
38
  * for each page. Supports pages with parameterized routes via
39
39
  * `static.entries` configuration.
40
40
  */
@@ -59,7 +59,7 @@ async function prerenderFromAlepha(
59
59
  compress?: ViteCompressOptions | boolean,
60
60
  ): Promise<PrerenderPagesResult> {
61
61
  let count = 0;
62
- const pages = alepha.descriptors("page") as any[];
62
+ const pages = alepha.primitives("page") as any[];
63
63
 
64
64
  for (const page of pages) {
65
65
  const options = page.options;
@@ -65,7 +65,7 @@ export class AlephaRunner {
65
65
  isSsrEnabled(): boolean {
66
66
  if (!this.state.app) return false;
67
67
  return (
68
- (this.state.app.state.get("alepha.react.server.ssr" as keyof State) as
68
+ (this.state.app.store.get("alepha.react.server.ssr" as keyof State) as
69
69
  | boolean
70
70
  | undefined) ?? false
71
71
  );
@@ -140,7 +140,7 @@ export class AlephaRunner {
140
140
  return;
141
141
  }
142
142
 
143
- this.state.app.state.set("alepha.node.server" as any, server.httpServer);
143
+ this.state.app.store.set("alepha.node.server" as any, server.httpServer);
144
144
 
145
145
  await this.state.app.start();
146
146
  this.state.started = true;