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
@@ -1,7 +1,7 @@
1
1
  import { $module, type Alepha } from "alepha";
2
2
  import { AlephaTopic } from "alepha/topic";
3
- import { $channel } from "./descriptors/$channel.ts";
4
- import { $websocket } from "./descriptors/$websocket.ts";
3
+ import { $channel } from "./primitives/$channel.ts";
4
+ import { $websocket } from "./primitives/$websocket.ts";
5
5
  import { WebSocketClient } from "./services/WebSocketClient.ts";
6
6
 
7
7
  /**
@@ -16,7 +16,7 @@ export * from "./index.shared.ts";
16
16
 
17
17
  export const AlephaWebSocket = $module({
18
18
  name: "alepha.websocket",
19
- descriptors: [$channel, $websocket],
19
+ primitives: [$channel, $websocket],
20
20
  services: [WebSocketClient],
21
21
  register: (alepha: Alepha) => {
22
22
  alepha.with(AlephaTopic);
@@ -1,7 +1,7 @@
1
- export * from "./descriptors/$channel.ts";
2
- export * from "./descriptors/$websocket.ts";
3
1
  export * from "./errors/WebSocketError.ts";
4
2
  export * from "./interfaces/WebSocketInterfaces.ts";
3
+ export * from "./primitives/$channel.ts";
4
+ export * from "./primitives/$websocket.ts";
5
5
  export * from "./providers/WebSocketServerProvider.ts";
6
6
  export * from "./services/RoomManager.ts";
7
7
  export * from "./services/WebSocketClient.ts";
@@ -1,8 +1,8 @@
1
1
  import { $module, type Alepha } from "alepha";
2
2
  import { AlephaServer } from "alepha/server";
3
3
  import { AlephaTopic } from "alepha/topic";
4
- import { $channel } from "./descriptors/$channel.ts";
5
- import { $websocket } from "./descriptors/$websocket.ts";
4
+ import { $channel } from "./primitives/$channel.ts";
5
+ import { $websocket } from "./primitives/$websocket.ts";
6
6
  import { NodeWebSocketServerProvider } from "./providers/NodeWebSocketServerProvider.ts";
7
7
  import { WebSocketServerProvider } from "./providers/WebSocketServerProvider.ts";
8
8
  import { RoomManager } from "./services/RoomManager.ts";
@@ -60,7 +60,7 @@ export * from "./providers/NodeWebSocketServerProvider.ts";
60
60
  /**
61
61
  * Provides real-time bidirectional communication using WebSockets.
62
62
  *
63
- * The WebSockets module enables building real-time applications using the `$websocket` descriptor
63
+ * The WebSockets module enables building real-time applications using the `$websocket` primitive
64
64
  * on class properties. It provides automatic connection management, message routing, type-safe
65
65
  * message handling, and seamless integration with other Alepha modules.
66
66
  *
@@ -72,7 +72,7 @@ export * from "./providers/NodeWebSocketServerProvider.ts";
72
72
  */
73
73
  export const AlephaWebSocket = $module({
74
74
  name: "alepha.websocket",
75
- descriptors: [$channel, $websocket],
75
+ primitives: [$channel, $websocket],
76
76
  services: [
77
77
  WebSocketServerProvider,
78
78
  NodeWebSocketServerProvider,
@@ -1,5 +1,5 @@
1
1
  import type { Static } from "alepha";
2
- import type { ChannelDescriptor, TWSObject } from "../descriptors/$channel.ts";
2
+ import type { ChannelPrimitive, TWSObject } from "../primitives/$channel.ts";
3
3
 
4
4
  /**
5
5
  * WebSocket connection interface
@@ -54,14 +54,14 @@ export enum WebSocketState {
54
54
  /**
55
55
  * WebSocket endpoint configuration (server-side)
56
56
  */
57
- export interface WebSocketDescriptorOptions<
57
+ export interface WebSocketPrimitiveOptions<
58
58
  TClient extends TWSObject,
59
59
  TServer extends TWSObject,
60
60
  > {
61
61
  /**
62
62
  * Channel definition with schema and path
63
63
  */
64
- channel: ChannelDescriptor<TClient, TServer>;
64
+ channel: ChannelPrimitive<TClient, TServer>;
65
65
 
66
66
  /**
67
67
  * Handler for incoming messages from clients
@@ -1,7 +1,7 @@
1
1
  import {
2
- createDescriptor,
3
- Descriptor,
2
+ createPrimitive,
4
3
  KIND,
4
+ Primitive,
5
5
  type TObject,
6
6
  type TString,
7
7
  type TUnion,
@@ -10,9 +10,9 @@ import {
10
10
  export type TWSObject = TObject | TUnion;
11
11
 
12
12
  /**
13
- * Channel descriptor options
13
+ * Channel primitive options
14
14
  */
15
- export interface ChannelDescriptorOptions<
15
+ export interface ChannelPrimitiveOptions<
16
16
  TClient extends TWSObject,
17
17
  TServer extends TWSObject,
18
18
  > {
@@ -114,18 +114,18 @@ export interface ChannelDescriptorOptions<
114
114
  * ```
115
115
  */
116
116
  export const $channel = <TClient extends TWSObject, TServer extends TWSObject>(
117
- options: ChannelDescriptorOptions<TClient, TServer>,
118
- ): ChannelDescriptor<TClient, TServer> => {
119
- return createDescriptor(ChannelDescriptor<TClient, TServer>, options);
117
+ options: ChannelPrimitiveOptions<TClient, TServer>,
118
+ ): ChannelPrimitive<TClient, TServer> => {
119
+ return createPrimitive(ChannelPrimitive<TClient, TServer>, options);
120
120
  };
121
121
 
122
122
  // ---------------------------------------------------------------------------------------------------------------------
123
123
 
124
- export class ChannelDescriptor<
124
+ export class ChannelPrimitive<
125
125
  TClient extends TWSObject,
126
126
  TServer extends TWSObject,
127
- > extends Descriptor<ChannelDescriptorOptions<TClient, TServer>> {
127
+ > extends Primitive<ChannelPrimitiveOptions<TClient, TServer>> {
128
128
  // Channels are just schema definitions - no initialization logic needed
129
129
  }
130
130
 
131
- $channel[KIND] = ChannelDescriptor;
131
+ $channel[KIND] = ChannelPrimitive;
@@ -1,7 +1,7 @@
1
- import { $inject, createDescriptor, Descriptor, KIND } from "alepha";
1
+ import { $inject, createPrimitive, KIND, Primitive } from "alepha";
2
2
  import type {
3
3
  EmitOptions,
4
- WebSocketDescriptorOptions,
4
+ WebSocketPrimitiveOptions,
5
5
  } from "../interfaces/WebSocketInterfaces.ts";
6
6
  import { WebSocketServerProvider } from "../providers/WebSocketServerProvider.ts";
7
7
  import type { TWSObject } from "./$channel.ts";
@@ -51,17 +51,17 @@ export const $websocket = <
51
51
  TClient extends TWSObject,
52
52
  TServer extends TWSObject,
53
53
  >(
54
- options: WebSocketDescriptorOptions<TClient, TServer>,
55
- ): WebSocketDescriptor<TClient, TServer> => {
56
- return createDescriptor(WebSocketDescriptor<TClient, TServer>, options);
54
+ options: WebSocketPrimitiveOptions<TClient, TServer>,
55
+ ): WebSocketPrimitive<TClient, TServer> => {
56
+ return createPrimitive(WebSocketPrimitive<TClient, TServer>, options);
57
57
  };
58
58
 
59
59
  // ---------------------------------------------------------------------------------------------------------------------
60
60
 
61
- export class WebSocketDescriptor<
61
+ export class WebSocketPrimitive<
62
62
  TClient extends TWSObject,
63
63
  TServer extends TWSObject,
64
- > extends Descriptor<WebSocketDescriptorOptions<TClient, TServer>> {
64
+ > extends Primitive<WebSocketPrimitiveOptions<TClient, TServer>> {
65
65
  protected readonly webSocketServerProvider = $inject(WebSocketServerProvider);
66
66
 
67
67
  protected onInit() {
@@ -104,4 +104,4 @@ export class WebSocketDescriptor<
104
104
  }
105
105
  }
106
106
 
107
- $websocket[KIND] = WebSocketDescriptor;
107
+ $websocket[KIND] = WebSocketPrimitive;
@@ -10,15 +10,15 @@ import {
10
10
  } from "alepha";
11
11
  import { $logger } from "alepha/logger";
12
12
  import { WebSocket, WebSocketServer } from "ws";
13
- import type { TWSObject } from "../descriptors/$channel.ts";
14
13
  import { WebSocketValidationError } from "../errors/WebSocketError.ts";
15
14
  import type {
16
15
  EmitOptions,
17
16
  WebSocketConnection,
18
- WebSocketDescriptorOptions,
19
17
  WebSocketHandlerContext,
18
+ WebSocketPrimitiveOptions,
20
19
  WebSocketState,
21
20
  } from "../interfaces/WebSocketInterfaces.ts";
21
+ import type { TWSObject } from "../primitives/$channel.ts";
22
22
  import { RoomManager } from "../services/RoomManager.ts";
23
23
  import { WebSocketTopicService } from "../services/WebSocketTopicService.ts";
24
24
  import { WebSocketServerProvider } from "./WebSocketServerProvider.ts";
@@ -46,7 +46,7 @@ export class NodeWebSocketServerProvider extends WebSocketServerProvider {
46
46
  protected readonly env = $env(envSchema);
47
47
 
48
48
  protected wss?: WebSocketServer;
49
- protected endpoints = new Map<string, WebSocketDescriptorOptions<any, any>>();
49
+ protected endpoints = new Map<string, WebSocketPrimitiveOptions<any, any>>();
50
50
  protected connections = new Map<string, WebSocketConnection>();
51
51
  protected userConnections = new Map<string, Set<string>>(); // userId → Set<connectionId>
52
52
  protected nextConnectionId = 1;
@@ -54,7 +54,7 @@ export class NodeWebSocketServerProvider extends WebSocketServerProvider {
54
54
  // -------------------------------------------------------------------------------------------------------------------
55
55
 
56
56
  public registerEndpoint<TClient extends TWSObject, TServer extends TWSObject>(
57
- config: WebSocketDescriptorOptions<TClient, TServer>,
57
+ config: WebSocketPrimitiveOptions<TClient, TServer>,
58
58
  ): void {
59
59
  const path = config.channel.options.path;
60
60
  this.endpoints.set(path, config);
@@ -157,7 +157,7 @@ export class NodeWebSocketServerProvider extends WebSocketServerProvider {
157
157
  TServer extends TWSObject,
158
158
  >(
159
159
  ws: WebSocket,
160
- endpoint: WebSocketDescriptorOptions<TClient, TServer>,
160
+ endpoint: WebSocketPrimitiveOptions<TClient, TServer>,
161
161
  request: IncomingMessage,
162
162
  ): void {
163
163
  const connectionId = `ws-${this.nextConnectionId++}`;
@@ -405,7 +405,7 @@ export class NodeWebSocketServerProvider extends WebSocketServerProvider {
405
405
  }
406
406
 
407
407
  // Attach upgrade handler to the HTTP server (must be done after HTTP server starts)
408
- const httpServer = this.alepha.state.get("alepha.node.server");
408
+ const httpServer = this.alepha.store.get("alepha.node.server");
409
409
  if (httpServer) {
410
410
  httpServer.on("upgrade", (request, socket, head) => {
411
411
  this.handleUpgrade(request, socket, head);
@@ -458,7 +458,7 @@ export class NodeWebSocketConnection implements WebSocketConnection {
458
458
  public readonly roomIds: string[],
459
459
  protected readonly ws: WebSocket,
460
460
  protected readonly provider: NodeWebSocketServerProvider,
461
- protected readonly endpoint: WebSocketDescriptorOptions<any, any>,
461
+ protected readonly endpoint: WebSocketPrimitiveOptions<any, any>,
462
462
  ) {}
463
463
 
464
464
  public get readyState(): WebSocketState {
@@ -1,9 +1,9 @@
1
- import type { TWSObject } from "../descriptors/$channel.ts";
2
1
  import type {
3
2
  EmitOptions,
4
3
  WebSocketConnection,
5
- WebSocketDescriptorOptions,
4
+ WebSocketPrimitiveOptions,
6
5
  } from "../interfaces/WebSocketInterfaces.ts";
6
+ import type { TWSObject } from "../primitives/$channel.ts";
7
7
 
8
8
  /**
9
9
  * Abstract WebSocket server provider
@@ -18,7 +18,7 @@ export abstract class WebSocketServerProvider {
18
18
  abstract registerEndpoint<
19
19
  TClient extends TWSObject,
20
20
  TServer extends TWSObject,
21
- >(config: WebSocketDescriptorOptions<TClient, TServer>): void;
21
+ >(config: WebSocketPrimitiveOptions<TClient, TServer>): void;
22
22
 
23
23
  /**
24
24
  * Emit a message to clients based on targeting criteria
@@ -8,7 +8,7 @@ import {
8
8
  t,
9
9
  } from "alepha";
10
10
  import { $logger } from "alepha/logger";
11
- import type { ChannelDescriptor, TWSObject } from "../descriptors/$channel.ts";
11
+ import type { ChannelPrimitive, TWSObject } from "../primitives/$channel.ts";
12
12
 
13
13
  const envSchema = t.object({
14
14
  WEBSOCKET_URL: t.text({
@@ -75,7 +75,7 @@ export class WebSocketChannelConnection<
75
75
  protected onErrorCallbacks = new Set<(error: Error) => void>();
76
76
 
77
77
  constructor(
78
- protected readonly channel: ChannelDescriptor<TClient, TServer>,
78
+ protected readonly channel: ChannelPrimitive<TClient, TServer>,
79
79
  protected readonly options: {
80
80
  url?: string;
81
81
  autoReconnect?: boolean;
@@ -472,7 +472,7 @@ export class WebSocketClient {
472
472
  */
473
473
  public subscribe<TClient extends TWSObject, TServer extends TWSObject>(
474
474
  roomId: string,
475
- channel: ChannelDescriptor<TClient, TServer>,
475
+ channel: ChannelPrimitive<TClient, TServer>,
476
476
  handler: (message: Static<TClient>) => void,
477
477
  options: {
478
478
  url?: string;
@@ -547,7 +547,7 @@ export class WebSocketClient {
547
547
  */
548
548
  public async send<TClient extends TWSObject, TServer extends TWSObject>(
549
549
  roomId: string,
550
- channel: ChannelDescriptor<TClient, TServer>,
550
+ channel: ChannelPrimitive<TClient, TServer>,
551
551
  message: Static<TServer>,
552
552
  ): Promise<void> {
553
553
  const channelPath = channel.options.path;
@@ -574,7 +574,7 @@ export class WebSocketClient {
574
574
  * Get connection for a channel
575
575
  */
576
576
  public getConnection<TClient extends TWSObject, TServer extends TWSObject>(
577
- channel: ChannelDescriptor<TClient, TServer>,
577
+ channel: ChannelPrimitive<TClient, TServer>,
578
578
  ): WebSocketChannelConnection<TClient, TServer> | undefined {
579
579
  const channelPath = channel.options.path;
580
580
  const connection = this.connections.get(channelPath) as
@@ -1,20 +0,0 @@
1
- import { SmsProvider, type SmsSendOptions } from "./SmsProvider.ts";
2
-
3
- export interface SmsRecord {
4
- to: string;
5
- message: string;
6
- sentAt: Date;
7
- }
8
-
9
- export class MemorySmsProvider extends SmsProvider {
10
- protected records: SmsRecord[] = [];
11
-
12
- public async send(options: SmsSendOptions): Promise<void> {
13
- const { to, message } = options;
14
- this.records.push({
15
- to,
16
- message,
17
- sentAt: new Date(),
18
- });
19
- }
20
- }
@@ -1,8 +0,0 @@
1
- export abstract class SmsProvider {
2
- public abstract send(options: SmsSendOptions): Promise<void>;
3
- }
4
-
5
- export interface SmsSendOptions {
6
- to: string;
7
- message: string;
8
- }
File without changes
File without changes