alepha 0.13.1 → 0.13.3

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 (329) hide show
  1. package/README.md +1 -1
  2. package/dist/api-files/index.browser.js +80 -0
  3. package/dist/api-files/index.browser.js.map +1 -0
  4. package/dist/api-files/index.d.ts +28 -91
  5. package/dist/api-files/index.js +10 -755
  6. package/dist/api-files/index.js.map +1 -1
  7. package/dist/api-jobs/index.browser.js +56 -0
  8. package/dist/api-jobs/index.browser.js.map +1 -0
  9. package/dist/api-jobs/index.d.ts +46 -46
  10. package/dist/api-jobs/index.js +13 -13
  11. package/dist/api-jobs/index.js.map +1 -1
  12. package/dist/api-notifications/index.browser.js +382 -0
  13. package/dist/api-notifications/index.browser.js.map +1 -0
  14. package/dist/api-notifications/index.d.ts +231 -193
  15. package/dist/api-notifications/index.js +108 -78
  16. package/dist/api-notifications/index.js.map +1 -1
  17. package/dist/api-parameters/index.browser.js +29 -0
  18. package/dist/api-parameters/index.browser.js.map +1 -0
  19. package/dist/api-parameters/index.d.ts +21 -22
  20. package/dist/api-parameters/index.js +22 -22
  21. package/dist/api-parameters/index.js.map +1 -1
  22. package/dist/api-users/index.d.ts +237 -2001
  23. package/dist/api-users/index.js +969 -4795
  24. package/dist/api-users/index.js.map +1 -1
  25. package/dist/api-verifications/index.browser.js +52 -0
  26. package/dist/api-verifications/index.browser.js.map +1 -0
  27. package/dist/api-verifications/index.d.ts +119 -97
  28. package/dist/api-verifications/index.js +1 -1
  29. package/dist/api-verifications/index.js.map +1 -1
  30. package/dist/batch/index.d.ts +13 -13
  31. package/dist/batch/index.js +8 -13
  32. package/dist/batch/index.js.map +1 -1
  33. package/dist/bucket/index.d.ts +14 -14
  34. package/dist/bucket/index.js +19 -17
  35. package/dist/bucket/index.js.map +1 -1
  36. package/dist/cache/index.d.ts +11 -11
  37. package/dist/cache/index.js +9 -9
  38. package/dist/cache/index.js.map +1 -1
  39. package/dist/cli/{dist-Dl9Vl7Ur.js → dist-lGnqsKpu.js} +11 -15
  40. package/dist/cli/dist-lGnqsKpu.js.map +1 -0
  41. package/dist/cli/index.d.ts +32 -49
  42. package/dist/cli/index.js +90 -71
  43. package/dist/cli/index.js.map +1 -1
  44. package/dist/command/index.d.ts +20 -19
  45. package/dist/command/index.js +34 -25
  46. package/dist/command/index.js.map +1 -1
  47. package/dist/core/index.browser.js +218 -218
  48. package/dist/core/index.browser.js.map +1 -1
  49. package/dist/core/index.d.ts +232 -232
  50. package/dist/core/index.js +218 -218
  51. package/dist/core/index.js.map +1 -1
  52. package/dist/core/index.native.js +2113 -0
  53. package/dist/core/index.native.js.map +1 -0
  54. package/dist/datetime/index.d.ts +9 -9
  55. package/dist/datetime/index.js +7 -7
  56. package/dist/datetime/index.js.map +1 -1
  57. package/dist/email/index.d.ts +16 -16
  58. package/dist/email/index.js +14 -9
  59. package/dist/email/index.js.map +1 -1
  60. package/dist/file/index.js +1 -1
  61. package/dist/file/index.js.map +1 -1
  62. package/dist/lock/index.d.ts +9 -9
  63. package/dist/lock/index.js +8 -8
  64. package/dist/lock/index.js.map +1 -1
  65. package/dist/lock-redis/index.js +3 -66
  66. package/dist/lock-redis/index.js.map +1 -1
  67. package/dist/logger/index.d.ts +5 -5
  68. package/dist/logger/index.js +8 -8
  69. package/dist/logger/index.js.map +1 -1
  70. package/dist/orm/index.browser.js +114 -114
  71. package/dist/orm/index.browser.js.map +1 -1
  72. package/dist/orm/index.d.ts +218 -218
  73. package/dist/orm/index.js +49 -49
  74. package/dist/orm/index.js.map +1 -1
  75. package/dist/queue/index.d.ts +29 -29
  76. package/dist/queue/index.js +20 -20
  77. package/dist/queue/index.js.map +1 -1
  78. package/dist/queue-redis/index.d.ts +2 -2
  79. package/dist/redis/index.d.ts +4 -4
  80. package/dist/retry/index.d.ts +19 -19
  81. package/dist/retry/index.js +7 -7
  82. package/dist/retry/index.js.map +1 -1
  83. package/dist/scheduler/index.d.ts +16 -16
  84. package/dist/scheduler/index.js +9 -9
  85. package/dist/scheduler/index.js.map +1 -1
  86. package/dist/security/index.d.ts +53 -53
  87. package/dist/security/index.js +35 -35
  88. package/dist/security/index.js.map +1 -1
  89. package/dist/server/index.browser.js +1 -1
  90. package/dist/server/index.browser.js.map +1 -1
  91. package/dist/server/index.d.ts +92 -92
  92. package/dist/server/index.js +16 -16
  93. package/dist/server/index.js.map +1 -1
  94. package/dist/server-auth/index.browser.js +4 -982
  95. package/dist/server-auth/index.browser.js.map +1 -1
  96. package/dist/server-auth/index.d.ts +204 -785
  97. package/dist/server-auth/index.js +47 -1239
  98. package/dist/server-auth/index.js.map +1 -1
  99. package/dist/server-cache/index.d.ts +10 -10
  100. package/dist/server-cache/index.js +2 -2
  101. package/dist/server-cache/index.js.map +1 -1
  102. package/dist/server-compress/index.d.ts +4 -4
  103. package/dist/server-compress/index.js +1 -1
  104. package/dist/server-compress/index.js.map +1 -1
  105. package/dist/server-cookies/index.browser.js +8 -8
  106. package/dist/server-cookies/index.browser.js.map +1 -1
  107. package/dist/server-cookies/index.d.ts +17 -17
  108. package/dist/server-cookies/index.js +11 -11
  109. package/dist/server-cookies/index.js.map +1 -1
  110. package/dist/server-cors/index.d.ts +17 -17
  111. package/dist/server-cors/index.js +9 -9
  112. package/dist/server-cors/index.js.map +1 -1
  113. package/dist/server-health/index.d.ts +19 -19
  114. package/dist/server-helmet/index.d.ts +1 -1
  115. package/dist/server-links/index.browser.js +12 -12
  116. package/dist/server-links/index.browser.js.map +1 -1
  117. package/dist/server-links/index.d.ts +59 -251
  118. package/dist/server-links/index.js +23 -502
  119. package/dist/server-links/index.js.map +1 -1
  120. package/dist/server-metrics/index.d.ts +4 -4
  121. package/dist/server-multipart/index.d.ts +2 -2
  122. package/dist/server-proxy/index.d.ts +12 -12
  123. package/dist/server-proxy/index.js +10 -10
  124. package/dist/server-proxy/index.js.map +1 -1
  125. package/dist/server-rate-limit/index.d.ts +22 -22
  126. package/dist/server-rate-limit/index.js +12 -12
  127. package/dist/server-rate-limit/index.js.map +1 -1
  128. package/dist/server-security/index.d.ts +22 -22
  129. package/dist/server-security/index.js +15 -15
  130. package/dist/server-security/index.js.map +1 -1
  131. package/dist/server-static/index.d.ts +14 -14
  132. package/dist/server-static/index.js +26 -10
  133. package/dist/server-static/index.js.map +1 -1
  134. package/dist/server-swagger/index.d.ts +25 -184
  135. package/dist/server-swagger/index.js +21 -724
  136. package/dist/server-swagger/index.js.map +1 -1
  137. package/dist/sms/index.d.ts +14 -14
  138. package/dist/sms/index.js +9 -9
  139. package/dist/sms/index.js.map +1 -1
  140. package/dist/thread/index.d.ts +11 -11
  141. package/dist/thread/index.js +17 -17
  142. package/dist/thread/index.js.map +1 -1
  143. package/dist/topic/index.d.ts +26 -26
  144. package/dist/topic/index.js +16 -16
  145. package/dist/topic/index.js.map +1 -1
  146. package/dist/topic-redis/index.d.ts +1 -1
  147. package/dist/vite/index.d.ts +3 -3
  148. package/dist/vite/index.js +8 -8
  149. package/dist/vite/index.js.map +1 -1
  150. package/dist/websocket/index.browser.js +11 -11
  151. package/dist/websocket/index.browser.js.map +1 -1
  152. package/dist/websocket/index.d.ts +58 -58
  153. package/dist/websocket/index.js +13 -13
  154. package/dist/websocket/index.js.map +1 -1
  155. package/package.json +128 -57
  156. package/src/api-files/index.browser.ts +17 -0
  157. package/src/api-files/services/FileService.ts +5 -7
  158. package/src/api-jobs/index.browser.ts +15 -0
  159. package/src/api-jobs/index.ts +1 -1
  160. package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
  161. package/src/api-jobs/providers/JobProvider.ts +9 -9
  162. package/src/api-jobs/services/JobService.ts +5 -5
  163. package/src/api-notifications/controllers/NotificationController.ts +26 -1
  164. package/src/api-notifications/index.browser.ts +17 -0
  165. package/src/api-notifications/index.ts +6 -15
  166. package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
  167. package/src/api-notifications/schemas/notificationQuerySchema.ts +13 -0
  168. package/src/api-notifications/services/NotificationSenderService.ts +3 -3
  169. package/src/api-notifications/services/NotificationService.ts +45 -2
  170. package/src/api-parameters/index.browser.ts +12 -0
  171. package/src/api-parameters/index.ts +1 -1
  172. package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
  173. package/src/api-users/atoms/realmAuthSettingsAtom.ts +3 -1
  174. package/src/api-users/controllers/UserController.ts +21 -1
  175. package/src/api-users/index.ts +1 -1
  176. package/src/api-users/{descriptors → primitives}/$userRealm.ts +40 -17
  177. package/src/api-users/providers/UserRealmProvider.ts +2 -1
  178. package/src/api-users/services/SessionService.ts +2 -0
  179. package/src/api-users/services/UserService.ts +56 -16
  180. package/src/api-verifications/index.browser.ts +15 -0
  181. package/src/api-verifications/index.ts +1 -0
  182. package/src/batch/index.ts +3 -3
  183. package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
  184. package/src/batch/providers/BatchProvider.ts +0 -7
  185. package/src/bucket/index.ts +15 -13
  186. package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
  187. package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
  188. package/src/cache/index.ts +4 -4
  189. package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
  190. package/src/cli/apps/AlephaCli.ts +27 -1
  191. package/src/cli/apps/AlephaPackageBuilderCli.ts +27 -2
  192. package/src/cli/commands/CoreCommands.ts +6 -2
  193. package/src/cli/commands/DrizzleCommands.ts +6 -6
  194. package/src/cli/commands/VerifyCommands.ts +1 -1
  195. package/src/cli/commands/ViteCommands.ts +8 -2
  196. package/src/cli/services/ProjectUtils.ts +74 -78
  197. package/src/command/helpers/Asker.ts +10 -0
  198. package/src/command/index.ts +5 -5
  199. package/src/command/{descriptors → primitives}/$command.ts +9 -12
  200. package/src/command/providers/CliProvider.ts +10 -10
  201. package/src/core/Alepha.ts +30 -33
  202. package/src/core/constants/KIND.ts +1 -1
  203. package/src/core/constants/OPTIONS.ts +1 -1
  204. package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
  205. package/src/core/helpers/ref.ts +1 -1
  206. package/src/core/index.shared.ts +8 -8
  207. package/src/core/{descriptors → primitives}/$context.ts +5 -5
  208. package/src/core/{descriptors → primitives}/$hook.ts +4 -4
  209. package/src/core/{descriptors → primitives}/$inject.ts +2 -2
  210. package/src/core/{descriptors → primitives}/$module.ts +9 -9
  211. package/src/core/{descriptors → primitives}/$use.ts +2 -2
  212. package/src/core/providers/CodecManager.ts +1 -1
  213. package/src/core/providers/JsonSchemaCodec.ts +1 -1
  214. package/src/core/providers/StateManager.ts +2 -2
  215. package/src/datetime/index.ts +3 -3
  216. package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
  217. package/src/email/index.ts +17 -9
  218. package/src/email/{descriptors → primitives}/$email.ts +8 -8
  219. package/src/file/index.ts +1 -1
  220. package/src/lock/index.ts +3 -3
  221. package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
  222. package/src/logger/index.ts +8 -8
  223. package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
  224. package/src/logger/services/Logger.ts +1 -1
  225. package/src/orm/constants/PG_SYMBOLS.ts +2 -2
  226. package/src/orm/index.browser.ts +2 -2
  227. package/src/orm/index.ts +8 -8
  228. package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
  229. package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
  230. package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
  231. package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
  232. package/src/orm/providers/PostgresTypeProvider.ts +3 -3
  233. package/src/orm/providers/RepositoryProvider.ts +4 -4
  234. package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
  235. package/src/orm/providers/drivers/NodeSqliteProvider.ts +3 -3
  236. package/src/orm/services/ModelBuilder.ts +9 -9
  237. package/src/orm/services/PgRelationManager.ts +2 -2
  238. package/src/orm/services/PostgresModelBuilder.ts +5 -5
  239. package/src/orm/services/Repository.ts +7 -7
  240. package/src/orm/services/SqliteModelBuilder.ts +5 -5
  241. package/src/queue/index.ts +7 -7
  242. package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
  243. package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
  244. package/src/queue/providers/WorkerProvider.ts +7 -7
  245. package/src/retry/index.ts +3 -3
  246. package/src/retry/{descriptors → primitives}/$retry.ts +14 -14
  247. package/src/scheduler/index.ts +3 -3
  248. package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
  249. package/src/scheduler/providers/CronProvider.ts +1 -1
  250. package/src/security/index.ts +9 -9
  251. package/src/security/{descriptors → primitives}/$permission.ts +7 -7
  252. package/src/security/{descriptors → primitives}/$realm.ts +6 -12
  253. package/src/security/{descriptors → primitives}/$role.ts +12 -12
  254. package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
  255. package/src/server/index.browser.ts +1 -1
  256. package/src/server/index.ts +14 -14
  257. package/src/server/{descriptors → primitives}/$action.ts +13 -13
  258. package/src/server/{descriptors → primitives}/$route.ts +9 -9
  259. package/src/server/providers/NodeHttpServerProvider.ts +1 -1
  260. package/src/server/services/HttpClient.ts +1 -1
  261. package/src/server-auth/index.browser.ts +1 -1
  262. package/src/server-auth/index.ts +6 -6
  263. package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
  264. package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
  265. package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
  266. package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
  267. package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
  268. package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
  269. package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
  270. package/src/server-cookies/index.browser.ts +2 -2
  271. package/src/server-cookies/index.ts +5 -5
  272. package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
  273. package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
  274. package/src/server-cookies/providers/ServerCookiesProvider.ts +6 -5
  275. package/src/server-cookies/services/CookieParser.ts +1 -1
  276. package/src/server-cors/index.ts +3 -3
  277. package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
  278. package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
  279. package/src/server-links/index.browser.ts +5 -5
  280. package/src/server-links/index.ts +9 -9
  281. package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
  282. package/src/server-links/providers/LinkProvider.ts +7 -7
  283. package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
  284. package/src/server-links/providers/ServerLinksProvider.ts +3 -3
  285. package/src/server-proxy/index.ts +3 -3
  286. package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
  287. package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
  288. package/src/server-rate-limit/index.ts +6 -6
  289. package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
  290. package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
  291. package/src/server-security/index.ts +3 -3
  292. package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
  293. package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
  294. package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
  295. package/src/server-static/index.ts +3 -3
  296. package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
  297. package/src/server-static/providers/ServerStaticProvider.ts +24 -9
  298. package/src/server-swagger/index.ts +5 -5
  299. package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
  300. package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
  301. package/src/sms/index.ts +4 -4
  302. package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
  303. package/src/thread/index.ts +3 -3
  304. package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
  305. package/src/thread/providers/ThreadProvider.ts +7 -9
  306. package/src/topic/index.ts +5 -5
  307. package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
  308. package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
  309. package/src/topic/providers/TopicProvider.ts +4 -4
  310. package/src/vite/tasks/copyAssets.ts +1 -1
  311. package/src/vite/tasks/generateSitemap.ts +3 -3
  312. package/src/vite/tasks/prerenderPages.ts +2 -2
  313. package/src/vite/tasks/runAlepha.ts +2 -2
  314. package/src/websocket/index.browser.ts +3 -3
  315. package/src/websocket/index.shared.ts +2 -2
  316. package/src/websocket/index.ts +4 -4
  317. package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
  318. package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
  319. package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
  320. package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
  321. package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
  322. package/src/websocket/services/WebSocketClient.ts +5 -5
  323. package/dist/cli/dist-Dl9Vl7Ur.js.map +0 -1
  324. package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
  325. package/src/api-notifications/providers/SmsProvider.ts +0 -8
  326. /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
  327. /package/src/core/{descriptors → primitives}/$env.ts +0 -0
  328. /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
  329. /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { $inject, createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { $inject, createPrimitive, KIND, Primitive } from "alepha";
2
2
  import type { ServerRequest } from "alepha/server";
3
3
  import type { RateLimitOptions } from "../index.ts";
4
4
  import {
@@ -8,7 +8,7 @@ import {
8
8
 
9
9
  /**
10
10
  * Declares rate limiting for server routes or custom usage.
11
- * This descriptor provides methods to check rate limits and configure behavior
11
+ * This primitive provides methods to check rate limits and configure behavior
12
12
  * within the server request/response cycle.
13
13
  *
14
14
  * @example
@@ -33,32 +33,32 @@ import {
33
33
  * ```
34
34
  */
35
35
  export const $rateLimit = (
36
- options: RateLimitDescriptorOptions = {},
37
- ): AbstractRateLimitDescriptor => {
38
- return createDescriptor(RateLimitDescriptor, options);
36
+ options: RateLimitPrimitiveOptions = {},
37
+ ): AbstractRateLimitPrimitive => {
38
+ return createPrimitive(RateLimitPrimitive, options);
39
39
  };
40
40
 
41
41
  // ---------------------------------------------------------------------------------------------------------------------
42
42
 
43
- export interface RateLimitDescriptorOptions extends RateLimitOptions {
43
+ export interface RateLimitPrimitiveOptions extends RateLimitOptions {
44
44
  /** Name identifier for this rate limit (default: property key) */
45
45
  name?: string;
46
46
  /** Path patterns to match (supports wildcards like /api/*) */
47
47
  paths?: string[];
48
48
  }
49
49
 
50
- export interface AbstractRateLimitDescriptor {
50
+ export interface AbstractRateLimitPrimitive {
51
51
  readonly name: string;
52
- readonly options: RateLimitDescriptorOptions;
52
+ readonly options: RateLimitPrimitiveOptions;
53
53
  check(
54
54
  request: ServerRequest,
55
55
  options?: RateLimitOptions,
56
56
  ): Promise<RateLimitResult>;
57
57
  }
58
58
 
59
- export class RateLimitDescriptor
60
- extends Descriptor<RateLimitDescriptorOptions>
61
- implements AbstractRateLimitDescriptor
59
+ export class RateLimitPrimitive
60
+ extends Primitive<RateLimitPrimitiveOptions>
61
+ implements AbstractRateLimitPrimitive
62
62
  {
63
63
  protected readonly serverRateLimitProvider = $inject(ServerRateLimitProvider);
64
64
 
@@ -72,7 +72,7 @@ export class RateLimitDescriptor
72
72
  }
73
73
 
74
74
  /**
75
- * Checks rate limit for the given request using this descriptor's configuration.
75
+ * Checks rate limit for the given request using this primitive's configuration.
76
76
  */
77
77
  public async check(
78
78
  request: ServerRequest,
@@ -83,4 +83,4 @@ export class RateLimitDescriptor
83
83
  }
84
84
  }
85
85
 
86
- $rateLimit[KIND] = RateLimitDescriptor;
86
+ $rateLimit[KIND] = RateLimitPrimitive;
@@ -6,8 +6,8 @@ import {
6
6
  type ServerRequest,
7
7
  ServerRouterProvider,
8
8
  } from "alepha/server";
9
- import type { RateLimitDescriptorOptions } from "../descriptors/$rateLimit.ts";
10
9
  import type { RateLimitOptions } from "../index.ts";
10
+ import type { RateLimitPrimitiveOptions } from "../primitives/$rateLimit.ts";
11
11
 
12
12
  // ---------------------------------------------------------------------------------------------------------------------
13
13
 
@@ -85,12 +85,12 @@ export class ServerRateLimitProvider {
85
85
  /**
86
86
  * Registered rate limit configurations with their path patterns
87
87
  */
88
- public readonly registeredConfigs: RateLimitDescriptorOptions[] = [];
88
+ public readonly registeredConfigs: RateLimitPrimitiveOptions[] = [];
89
89
 
90
90
  /**
91
- * Register a rate limit configuration (called by descriptors)
91
+ * Register a rate limit configuration (called by primitives)
92
92
  */
93
- public registerRateLimit(config: RateLimitDescriptorOptions): void {
93
+ public registerRateLimit(config: RateLimitPrimitiveOptions): void {
94
94
  this.registeredConfigs.push(config);
95
95
  }
96
96
 
@@ -168,7 +168,7 @@ export class ServerRateLimitProvider {
168
168
  * Build complete rate limit options by merging with global defaults
169
169
  */
170
170
  protected buildRateLimitOptions(
171
- config: RateLimitDescriptorOptions,
171
+ config: RateLimitPrimitiveOptions,
172
172
  ): RateLimitOptions {
173
173
  return {
174
174
  max: config.max ?? this.globalOptions.max,
@@ -8,7 +8,7 @@ import {
8
8
  type UserAccountToken,
9
9
  } from "alepha/security";
10
10
  import { AlephaServer, type FetchOptions } from "alepha/server";
11
- import { $basicAuth } from "./descriptors/$basicAuth.ts";
11
+ import { $basicAuth } from "./primitives/$basicAuth.ts";
12
12
  import { ServerBasicAuthProvider } from "./providers/ServerBasicAuthProvider.ts";
13
13
  import {
14
14
  type ServerRouteSecure,
@@ -17,7 +17,7 @@ import {
17
17
 
18
18
  // ---------------------------------------------------------------------------------------------------------------------
19
19
 
20
- export * from "./descriptors/$basicAuth.ts";
20
+ export * from "./primitives/$basicAuth.ts";
21
21
  export * from "./providers/ServerBasicAuthProvider.ts";
22
22
  export * from "./providers/ServerSecurityProvider.ts";
23
23
 
@@ -84,7 +84,7 @@ declare module "alepha/server" {
84
84
  */
85
85
  export const AlephaServerSecurity = $module({
86
86
  name: "alepha.server.security",
87
- descriptors: [$realm, $role, $permission, $basicAuth],
87
+ primitives: [$realm, $role, $permission, $basicAuth],
88
88
  services: [
89
89
  AlephaServer,
90
90
  AlephaSecurity,
@@ -1,32 +1,32 @@
1
- import { $inject, createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { $inject, createPrimitive, KIND, Primitive } from "alepha";
2
2
  import type { ServerRequest } from "alepha/server";
3
3
  import type {
4
- BasicAuthDescriptorConfig,
5
4
  BasicAuthOptions,
5
+ BasicAuthPrimitiveConfig,
6
6
  } from "../providers/ServerBasicAuthProvider.ts";
7
7
  import { ServerBasicAuthProvider } from "../providers/ServerBasicAuthProvider.ts";
8
8
 
9
9
  /**
10
10
  * Declares HTTP Basic Authentication for server routes.
11
- * This descriptor provides methods to protect routes with username/password authentication.
11
+ * This primitive provides methods to protect routes with username/password authentication.
12
12
  */
13
13
  export const $basicAuth = (
14
- options: BasicAuthDescriptorConfig,
15
- ): AbstractBasicAuthDescriptor => {
16
- return createDescriptor(BasicAuthDescriptor, options);
14
+ options: BasicAuthPrimitiveConfig,
15
+ ): AbstractBasicAuthPrimitive => {
16
+ return createPrimitive(BasicAuthPrimitive, options);
17
17
  };
18
18
 
19
19
  // ---------------------------------------------------------------------------------------------------------------------
20
20
 
21
- export interface AbstractBasicAuthDescriptor {
21
+ export interface AbstractBasicAuthPrimitive {
22
22
  readonly name: string;
23
- readonly options: BasicAuthDescriptorConfig;
23
+ readonly options: BasicAuthPrimitiveConfig;
24
24
  check(request: ServerRequest, options?: BasicAuthOptions): void;
25
25
  }
26
26
 
27
- export class BasicAuthDescriptor
28
- extends Descriptor<BasicAuthDescriptorConfig>
29
- implements AbstractBasicAuthDescriptor
27
+ export class BasicAuthPrimitive
28
+ extends Primitive<BasicAuthPrimitiveConfig>
29
+ implements AbstractBasicAuthPrimitive
30
30
  {
31
31
  protected readonly serverBasicAuthProvider = $inject(ServerBasicAuthProvider);
32
32
 
@@ -40,7 +40,7 @@ export class BasicAuthDescriptor
40
40
  }
41
41
 
42
42
  /**
43
- * Checks basic auth for the given request using this descriptor's configuration.
43
+ * Checks basic auth for the given request using this primitive's configuration.
44
44
  */
45
45
  public check(request: ServerRequest, options?: BasicAuthOptions): void {
46
46
  const mergedOptions = { ...this.options, ...options };
@@ -48,4 +48,4 @@ export class BasicAuthDescriptor
48
48
  }
49
49
  }
50
50
 
51
- $basicAuth[KIND] = BasicAuthDescriptor;
51
+ $basicAuth[KIND] = BasicAuthPrimitive;
@@ -14,7 +14,7 @@ export interface BasicAuthOptions {
14
14
  password: string;
15
15
  }
16
16
 
17
- export interface BasicAuthDescriptorConfig extends BasicAuthOptions {
17
+ export interface BasicAuthPrimitiveConfig extends BasicAuthOptions {
18
18
  /** Name identifier for this basic auth (default: property key) */
19
19
  name?: string;
20
20
  /** Path patterns to match (supports wildcards like /devtools/*) */
@@ -30,14 +30,14 @@ export class ServerBasicAuthProvider {
30
30
  protected readonly realm = "Secure Area";
31
31
 
32
32
  /**
33
- * Registered basic auth descriptors with their configurations
33
+ * Registered basic auth primitives with their configurations
34
34
  */
35
- public readonly registeredAuths: BasicAuthDescriptorConfig[] = [];
35
+ public readonly registeredAuths: BasicAuthPrimitiveConfig[] = [];
36
36
 
37
37
  /**
38
- * Register a basic auth configuration (called by descriptors)
38
+ * Register a basic auth configuration (called by primitives)
39
39
  */
40
- public registerAuth(config: BasicAuthDescriptorConfig): void {
40
+ public registerAuth(config: BasicAuthPrimitiveConfig): void {
41
41
  this.registeredAuths.push(config);
42
42
  }
43
43
 
@@ -28,7 +28,7 @@ export class ServerSecurityProvider {
28
28
  protected readonly onConfigure = $hook({
29
29
  on: "configure",
30
30
  handler: async () => {
31
- for (const action of this.alepha.descriptors($action)) {
31
+ for (const action of this.alepha.primitives($action)) {
32
32
  // -------------------------------------------------------------------------------------------------------------
33
33
  // if the action is disabled or not secure, we do NOT create a permission for it
34
34
  // -------------------------------------------------------------------------------------------------------------
@@ -87,7 +87,7 @@ export class ServerSecurityProvider {
87
87
  this.check(request.user, route.secure);
88
88
  }
89
89
 
90
- this.alepha.state.set(
90
+ this.alepha.store.set(
91
91
  "alepha.server.request.user",
92
92
  this.alepha.codec.decode(userAccountInfoSchema, request.user),
93
93
  );
@@ -139,7 +139,7 @@ export class ServerSecurityProvider {
139
139
  this.check(request.user, route.secure);
140
140
  }
141
141
 
142
- this.alepha.state.set(
142
+ this.alepha.store.set(
143
143
  "alepha.server.request.user",
144
144
  // remove sensitive info
145
145
  this.alepha.codec.decode(userAccountInfoSchema, request.user),
@@ -198,7 +198,7 @@ export class ServerSecurityProvider {
198
198
  let user: UserAccountToken | undefined;
199
199
 
200
200
  const fromContext = this.alepha.context.get<ServerRequest>("request")?.user;
201
- const fromSystem = this.alepha.state.get(
201
+ const fromSystem = this.alepha.store.get(
202
202
  "alepha.server.security.system.user",
203
203
  );
204
204
 
@@ -1,11 +1,11 @@
1
1
  import { $module } from "alepha";
2
2
  import { AlephaServer } from "alepha/server";
3
- import { $serve } from "./descriptors/$serve.ts";
3
+ import { $serve } from "./primitives/$serve.ts";
4
4
  import { ServerStaticProvider } from "./providers/ServerStaticProvider.ts";
5
5
 
6
6
  // ---------------------------------------------------------------------------------------------------------------------
7
7
 
8
- export * from "./descriptors/$serve.ts";
8
+ export * from "./primitives/$serve.ts";
9
9
  export * from "./providers/ServerStaticProvider.ts";
10
10
 
11
11
  // ---------------------------------------------------------------------------------------------------------------------
@@ -18,6 +18,6 @@ export * from "./providers/ServerStaticProvider.ts";
18
18
  */
19
19
  export const AlephaServerStatic = $module({
20
20
  name: "alepha.server.static",
21
- descriptors: [$serve],
21
+ primitives: [$serve],
22
22
  services: [AlephaServer, ServerStaticProvider],
23
23
  });
@@ -1,16 +1,14 @@
1
- import { createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { createPrimitive, KIND, Primitive } from "alepha";
2
2
  import type { DurationLike } from "alepha/datetime";
3
3
 
4
4
  /**
5
5
  * Create a new static file handler.
6
6
  */
7
- export const $serve = (
8
- options: ServeDescriptorOptions = {},
9
- ): ServeDescriptor => {
10
- return createDescriptor(ServeDescriptor, options);
7
+ export const $serve = (options: ServePrimitiveOptions = {}): ServePrimitive => {
8
+ return createPrimitive(ServePrimitive, options);
11
9
  };
12
10
 
13
- export interface ServeDescriptorOptions {
11
+ export interface ServePrimitiveOptions {
14
12
  /**
15
13
  * Prefix for the served path.
16
14
  *
@@ -26,7 +24,7 @@ export interface ServeDescriptorOptions {
26
24
  root?: string;
27
25
 
28
26
  /**
29
- * If true, descriptor will be ignored.
27
+ * If true, primitive will be ignored.
30
28
  *
31
29
  * @default false
32
30
  */
@@ -53,7 +51,7 @@ export interface ServeDescriptorOptions {
53
51
  historyApiFallback?: boolean;
54
52
 
55
53
  /**
56
- * Optional name of the descriptor.
54
+ * Optional name of the primitive.
57
55
  * This is used for logging and debugging purposes.
58
56
  *
59
57
  * @default Key name.
@@ -91,6 +89,6 @@ export interface CacheControlOptions {
91
89
  immutable: boolean;
92
90
  }
93
91
 
94
- export class ServeDescriptor extends Descriptor<ServeDescriptorOptions> {}
92
+ export class ServePrimitive extends Primitive<ServePrimitiveOptions> {}
95
93
 
96
- $serve[KIND] = ServeDescriptor;
94
+ $serve[KIND] = ServePrimitive;
@@ -7,7 +7,7 @@ import { DateTimeProvider } from "alepha/datetime";
7
7
  import { FileDetector } from "alepha/file";
8
8
  import { $logger } from "alepha/logger";
9
9
  import { type ServerHandler, ServerRouterProvider } from "alepha/server";
10
- import { $serve, type ServeDescriptorOptions } from "../descriptors/$serve.ts";
10
+ import { $serve, type ServePrimitiveOptions } from "../primitives/$serve.ts";
11
11
 
12
12
  export class ServerStaticProvider {
13
13
  protected readonly alepha = $inject(Alepha);
@@ -22,14 +22,14 @@ export class ServerStaticProvider {
22
22
  handler: async () => {
23
23
  await Promise.all(
24
24
  this.alepha
25
- .descriptors($serve)
25
+ .primitives($serve)
26
26
  .map((it) => this.createStaticServer(it.options)),
27
27
  );
28
28
  },
29
29
  });
30
30
 
31
31
  public async createStaticServer(
32
- options: ServeDescriptorOptions,
32
+ options: ServePrimitiveOptions,
33
33
  ): Promise<void> {
34
34
  const prefix = options.path ?? "/";
35
35
 
@@ -98,8 +98,15 @@ export class ServerStaticProvider {
98
98
  reply.headers["content-type"] = "text/html";
99
99
  reply.status = 200;
100
100
 
101
- // Serve index.html for all unmatched routes
102
- return createReadStream(join(root, "index.html"));
101
+ return new Promise<any>((resolve, reject) => {
102
+ const stream = createReadStream(join(root, "index.html"));
103
+ stream.on("open", () => {
104
+ resolve(stream);
105
+ });
106
+ stream.on("error", (err) => {
107
+ reject(err);
108
+ });
109
+ });
103
110
  },
104
111
  });
105
112
  }
@@ -107,7 +114,7 @@ export class ServerStaticProvider {
107
114
 
108
115
  public async createFileHandler(
109
116
  filepath: string,
110
- options: ServeDescriptorOptions,
117
+ options: ServePrimitiveOptions,
111
118
  ): Promise<ServerHandler> {
112
119
  const filename = basename(filepath);
113
120
 
@@ -161,7 +168,15 @@ export class ServerStaticProvider {
161
168
  return;
162
169
  }
163
170
 
164
- return createReadStream(path);
171
+ return new Promise<any>((resolve, reject) => {
172
+ const stream = createReadStream(path);
173
+ stream.on("open", () => {
174
+ resolve(stream);
175
+ });
176
+ stream.on("error", (err) => {
177
+ reject(err);
178
+ });
179
+ });
165
180
  };
166
181
  }
167
182
 
@@ -184,7 +199,7 @@ export class ServerStaticProvider {
184
199
 
185
200
  protected getCacheControl(
186
201
  filename: string,
187
- options: ServeDescriptorOptions,
202
+ options: ServePrimitiveOptions,
188
203
  ): { maxAge: number; immutable: boolean } | undefined {
189
204
  if (!options.cacheControl) {
190
205
  return;
@@ -228,6 +243,6 @@ export class ServerStaticProvider {
228
243
  }
229
244
 
230
245
  export interface ServeDirectory {
231
- options: ServeDescriptorOptions;
246
+ options: ServePrimitiveOptions;
232
247
  files: string[];
233
248
  }
@@ -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;