alepha 0.13.0 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/README.md +1 -1
  2. package/dist/api-files/index.d.ts +28 -91
  3. package/dist/api-files/index.js +10 -755
  4. package/dist/api-files/index.js.map +1 -1
  5. package/dist/api-jobs/index.d.ts +67 -67
  6. package/dist/api-jobs/index.js +13 -13
  7. package/dist/api-jobs/index.js.map +1 -1
  8. package/dist/api-notifications/index.d.ts +129 -146
  9. package/dist/api-notifications/index.js +17 -39
  10. package/dist/api-notifications/index.js.map +1 -1
  11. package/dist/api-parameters/index.d.ts +21 -22
  12. package/dist/api-parameters/index.js +22 -22
  13. package/dist/api-parameters/index.js.map +1 -1
  14. package/dist/api-users/index.d.ts +224 -2001
  15. package/dist/api-users/index.js +914 -4787
  16. package/dist/api-users/index.js.map +1 -1
  17. package/dist/api-verifications/index.d.ts +96 -96
  18. package/dist/batch/index.d.ts +13 -13
  19. package/dist/batch/index.js +8 -8
  20. package/dist/batch/index.js.map +1 -1
  21. package/dist/bucket/index.d.ts +14 -14
  22. package/dist/bucket/index.js +12 -12
  23. package/dist/bucket/index.js.map +1 -1
  24. package/dist/cache/index.d.ts +11 -11
  25. package/dist/cache/index.js +9 -9
  26. package/dist/cache/index.js.map +1 -1
  27. package/dist/cli/{dist-Sz2EXvQX.cjs → dist-Dl9Vl7Ur.js} +17 -13
  28. package/dist/cli/{dist-BBPjuQ56.js.map → dist-Dl9Vl7Ur.js.map} +1 -1
  29. package/dist/cli/index.d.ts +31 -37
  30. package/dist/cli/index.js +152 -83
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/command/index.d.ts +19 -19
  33. package/dist/command/index.js +25 -25
  34. package/dist/command/index.js.map +1 -1
  35. package/dist/core/index.browser.js +218 -218
  36. package/dist/core/index.browser.js.map +1 -1
  37. package/dist/core/index.d.ts +232 -232
  38. package/dist/core/index.js +218 -218
  39. package/dist/core/index.js.map +1 -1
  40. package/dist/core/{index.cjs → index.native.js} +304 -455
  41. package/dist/core/index.native.js.map +1 -0
  42. package/dist/datetime/index.d.ts +9 -9
  43. package/dist/datetime/index.js +7 -7
  44. package/dist/datetime/index.js.map +1 -1
  45. package/dist/email/index.d.ts +16 -16
  46. package/dist/email/index.js +80 -82
  47. package/dist/email/index.js.map +1 -1
  48. package/dist/file/index.js +1 -1
  49. package/dist/file/index.js.map +1 -1
  50. package/dist/lock/index.d.ts +9 -9
  51. package/dist/lock/index.js +8 -8
  52. package/dist/lock/index.js.map +1 -1
  53. package/dist/lock-redis/index.js +3 -66
  54. package/dist/lock-redis/index.js.map +1 -1
  55. package/dist/logger/index.d.ts +5 -5
  56. package/dist/logger/index.js +8 -8
  57. package/dist/logger/index.js.map +1 -1
  58. package/dist/orm/index.browser.js +114 -114
  59. package/dist/orm/index.browser.js.map +1 -1
  60. package/dist/orm/index.d.ts +219 -219
  61. package/dist/orm/index.js +46 -46
  62. package/dist/orm/index.js.map +1 -1
  63. package/dist/queue/index.d.ts +25 -25
  64. package/dist/queue/index.js +20 -20
  65. package/dist/queue/index.js.map +1 -1
  66. package/dist/queue-redis/index.d.ts +2 -2
  67. package/dist/redis/index.d.ts +10 -10
  68. package/dist/retry/index.d.ts +20 -20
  69. package/dist/retry/index.js +9 -9
  70. package/dist/retry/index.js.map +1 -1
  71. package/dist/scheduler/index.d.ts +12 -12
  72. package/dist/scheduler/index.js +9 -9
  73. package/dist/scheduler/index.js.map +1 -1
  74. package/dist/security/index.d.ts +53 -53
  75. package/dist/security/index.js +32 -32
  76. package/dist/security/index.js.map +1 -1
  77. package/dist/server/index.browser.js +1 -1
  78. package/dist/server/index.browser.js.map +1 -1
  79. package/dist/server/index.d.ts +101 -101
  80. package/dist/server/index.js +17 -17
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server-auth/index.browser.js +4 -982
  83. package/dist/server-auth/index.browser.js.map +1 -1
  84. package/dist/server-auth/index.d.ts +204 -785
  85. package/dist/server-auth/index.js +47 -1239
  86. package/dist/server-auth/index.js.map +1 -1
  87. package/dist/server-cache/index.d.ts +10 -10
  88. package/dist/server-cache/index.js +2 -2
  89. package/dist/server-cache/index.js.map +1 -1
  90. package/dist/server-compress/index.d.ts +4 -4
  91. package/dist/server-compress/index.js +1 -1
  92. package/dist/server-compress/index.js.map +1 -1
  93. package/dist/server-cookies/index.browser.js +8 -8
  94. package/dist/server-cookies/index.browser.js.map +1 -1
  95. package/dist/server-cookies/index.d.ts +17 -17
  96. package/dist/server-cookies/index.js +10 -10
  97. package/dist/server-cookies/index.js.map +1 -1
  98. package/dist/server-cors/index.d.ts +17 -17
  99. package/dist/server-cors/index.js +9 -9
  100. package/dist/server-cors/index.js.map +1 -1
  101. package/dist/server-health/index.d.ts +2 -2
  102. package/dist/server-helmet/index.d.ts +1 -1
  103. package/dist/server-links/index.browser.js +12 -12
  104. package/dist/server-links/index.browser.js.map +1 -1
  105. package/dist/server-links/index.d.ts +59 -251
  106. package/dist/server-links/index.js +23 -502
  107. package/dist/server-links/index.js.map +1 -1
  108. package/dist/server-metrics/index.d.ts +4 -4
  109. package/dist/server-metrics/index.js +170 -174
  110. package/dist/server-metrics/index.js.map +1 -1
  111. package/dist/server-multipart/index.d.ts +2 -2
  112. package/dist/server-proxy/index.d.ts +12 -12
  113. package/dist/server-proxy/index.js +10 -10
  114. package/dist/server-proxy/index.js.map +1 -1
  115. package/dist/server-rate-limit/index.d.ts +22 -22
  116. package/dist/server-rate-limit/index.js +12 -12
  117. package/dist/server-rate-limit/index.js.map +1 -1
  118. package/dist/server-security/index.d.ts +24 -24
  119. package/dist/server-security/index.js +15 -15
  120. package/dist/server-security/index.js.map +1 -1
  121. package/dist/server-static/index.d.ts +14 -14
  122. package/dist/server-static/index.js +8 -8
  123. package/dist/server-static/index.js.map +1 -1
  124. package/dist/server-swagger/index.d.ts +25 -184
  125. package/dist/server-swagger/index.js +21 -724
  126. package/dist/server-swagger/index.js.map +1 -1
  127. package/dist/sms/index.d.ts +14 -14
  128. package/dist/sms/index.js +9 -9
  129. package/dist/sms/index.js.map +1 -1
  130. package/dist/thread/index.d.ts +11 -11
  131. package/dist/thread/index.js +17 -17
  132. package/dist/thread/index.js.map +1 -1
  133. package/dist/topic/index.d.ts +26 -26
  134. package/dist/topic/index.js +16 -16
  135. package/dist/topic/index.js.map +1 -1
  136. package/dist/topic-redis/index.d.ts +1 -1
  137. package/dist/vite/index.d.ts +3 -3
  138. package/dist/vite/index.js +12 -13
  139. package/dist/vite/index.js.map +1 -1
  140. package/dist/websocket/index.browser.js +11 -11
  141. package/dist/websocket/index.browser.js.map +1 -1
  142. package/dist/websocket/index.d.ts +51 -51
  143. package/dist/websocket/index.js +13 -13
  144. package/dist/websocket/index.js.map +1 -1
  145. package/package.json +62 -52
  146. package/src/api-files/services/FileService.ts +5 -7
  147. package/src/api-jobs/index.ts +1 -1
  148. package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
  149. package/src/api-jobs/providers/JobProvider.ts +9 -9
  150. package/src/api-jobs/services/JobService.ts +5 -5
  151. package/src/api-notifications/index.ts +5 -15
  152. package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
  153. package/src/api-notifications/services/NotificationSenderService.ts +3 -3
  154. package/src/api-parameters/index.ts +1 -1
  155. package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
  156. package/src/api-users/index.ts +1 -1
  157. package/src/api-users/{descriptors → primitives}/$userRealm.ts +8 -8
  158. package/src/api-users/providers/UserRealmProvider.ts +1 -1
  159. package/src/batch/index.ts +3 -3
  160. package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
  161. package/src/bucket/index.ts +8 -8
  162. package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
  163. package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
  164. package/src/cache/index.ts +4 -4
  165. package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
  166. package/src/cli/apps/AlephaPackageBuilderCli.ts +30 -3
  167. package/src/cli/assets/appRouterTs.ts +9 -0
  168. package/src/cli/assets/indexHtml.ts +2 -1
  169. package/src/cli/assets/mainBrowserTs.ts +10 -0
  170. package/src/cli/commands/CoreCommands.ts +6 -5
  171. package/src/cli/commands/DrizzleCommands.ts +69 -61
  172. package/src/cli/commands/VerifyCommands.ts +2 -2
  173. package/src/cli/commands/ViteCommands.ts +6 -1
  174. package/src/cli/services/ProjectUtils.ts +78 -41
  175. package/src/command/index.ts +5 -5
  176. package/src/command/{descriptors → primitives}/$command.ts +9 -12
  177. package/src/command/providers/CliProvider.ts +10 -10
  178. package/src/core/Alepha.ts +30 -33
  179. package/src/core/constants/KIND.ts +1 -1
  180. package/src/core/constants/OPTIONS.ts +1 -1
  181. package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
  182. package/src/core/helpers/ref.ts +1 -1
  183. package/src/core/index.shared.ts +8 -8
  184. package/src/core/{descriptors → primitives}/$context.ts +5 -5
  185. package/src/core/{descriptors → primitives}/$hook.ts +4 -4
  186. package/src/core/{descriptors → primitives}/$inject.ts +2 -2
  187. package/src/core/{descriptors → primitives}/$module.ts +9 -9
  188. package/src/core/{descriptors → primitives}/$use.ts +2 -2
  189. package/src/core/providers/CodecManager.ts +1 -1
  190. package/src/core/providers/JsonSchemaCodec.ts +1 -1
  191. package/src/core/providers/StateManager.ts +2 -2
  192. package/src/datetime/index.ts +3 -3
  193. package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
  194. package/src/email/index.ts +4 -4
  195. package/src/email/{descriptors → primitives}/$email.ts +8 -8
  196. package/src/file/index.ts +1 -1
  197. package/src/lock/index.ts +3 -3
  198. package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
  199. package/src/logger/index.ts +8 -8
  200. package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
  201. package/src/logger/services/Logger.ts +1 -1
  202. package/src/orm/constants/PG_SYMBOLS.ts +2 -2
  203. package/src/orm/index.browser.ts +2 -2
  204. package/src/orm/index.ts +8 -8
  205. package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
  206. package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
  207. package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
  208. package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
  209. package/src/orm/providers/DrizzleKitProvider.ts +1 -1
  210. package/src/orm/providers/PostgresTypeProvider.ts +3 -3
  211. package/src/orm/providers/RepositoryProvider.ts +4 -4
  212. package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
  213. package/src/orm/services/ModelBuilder.ts +9 -9
  214. package/src/orm/services/PgRelationManager.ts +2 -2
  215. package/src/orm/services/PostgresModelBuilder.ts +5 -5
  216. package/src/orm/services/Repository.ts +7 -7
  217. package/src/orm/services/SqliteModelBuilder.ts +5 -5
  218. package/src/queue/index.ts +7 -7
  219. package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
  220. package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
  221. package/src/queue/providers/WorkerProvider.ts +7 -7
  222. package/src/retry/index.ts +3 -3
  223. package/src/retry/{descriptors → primitives}/$retry.ts +19 -17
  224. package/src/scheduler/index.ts +3 -3
  225. package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
  226. package/src/scheduler/providers/CronProvider.ts +1 -1
  227. package/src/security/index.ts +9 -9
  228. package/src/security/{descriptors → primitives}/$permission.ts +7 -7
  229. package/src/security/{descriptors → primitives}/$realm.ts +6 -12
  230. package/src/security/{descriptors → primitives}/$role.ts +12 -12
  231. package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
  232. package/src/server/index.browser.ts +1 -1
  233. package/src/server/index.ts +14 -14
  234. package/src/server/{descriptors → primitives}/$action.ts +13 -13
  235. package/src/server/{descriptors → primitives}/$route.ts +9 -9
  236. package/src/server/providers/NodeHttpServerProvider.ts +2 -2
  237. package/src/server/services/HttpClient.ts +1 -1
  238. package/src/server-auth/index.browser.ts +1 -1
  239. package/src/server-auth/index.ts +6 -6
  240. package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
  241. package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
  242. package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
  243. package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
  244. package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
  245. package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
  246. package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
  247. package/src/server-cookies/index.browser.ts +2 -2
  248. package/src/server-cookies/index.ts +5 -5
  249. package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
  250. package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
  251. package/src/server-cookies/providers/ServerCookiesProvider.ts +4 -4
  252. package/src/server-cookies/services/CookieParser.ts +1 -1
  253. package/src/server-cors/index.ts +3 -3
  254. package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
  255. package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
  256. package/src/server-links/index.browser.ts +5 -5
  257. package/src/server-links/index.ts +9 -9
  258. package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
  259. package/src/server-links/providers/LinkProvider.ts +7 -7
  260. package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
  261. package/src/server-links/providers/ServerLinksProvider.ts +3 -3
  262. package/src/server-proxy/index.ts +3 -3
  263. package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
  264. package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
  265. package/src/server-rate-limit/index.ts +6 -6
  266. package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
  267. package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
  268. package/src/server-security/index.ts +3 -3
  269. package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
  270. package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
  271. package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
  272. package/src/server-static/index.ts +3 -3
  273. package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
  274. package/src/server-static/providers/ServerStaticProvider.ts +6 -6
  275. package/src/server-swagger/index.ts +5 -5
  276. package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
  277. package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
  278. package/src/sms/index.ts +4 -4
  279. package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
  280. package/src/thread/index.ts +3 -3
  281. package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
  282. package/src/thread/providers/ThreadProvider.ts +7 -9
  283. package/src/topic/index.ts +5 -5
  284. package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
  285. package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
  286. package/src/topic/providers/TopicProvider.ts +4 -4
  287. package/src/vite/helpers/boot.ts +3 -3
  288. package/src/vite/tasks/copyAssets.ts +1 -1
  289. package/src/vite/tasks/generateSitemap.ts +3 -3
  290. package/src/vite/tasks/prerenderPages.ts +2 -2
  291. package/src/vite/tasks/runAlepha.ts +2 -2
  292. package/src/websocket/index.browser.ts +3 -3
  293. package/src/websocket/index.shared.ts +2 -2
  294. package/src/websocket/index.ts +4 -4
  295. package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
  296. package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
  297. package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
  298. package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
  299. package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
  300. package/src/websocket/services/WebSocketClient.ts +5 -5
  301. package/dist/api-files/index.cjs +0 -1293
  302. package/dist/api-files/index.cjs.map +0 -1
  303. package/dist/api-files/index.d.cts +0 -829
  304. package/dist/api-jobs/index.cjs +0 -274
  305. package/dist/api-jobs/index.cjs.map +0 -1
  306. package/dist/api-jobs/index.d.cts +0 -654
  307. package/dist/api-notifications/index.cjs +0 -380
  308. package/dist/api-notifications/index.cjs.map +0 -1
  309. package/dist/api-notifications/index.d.cts +0 -289
  310. package/dist/api-parameters/index.cjs +0 -66
  311. package/dist/api-parameters/index.cjs.map +0 -1
  312. package/dist/api-parameters/index.d.cts +0 -84
  313. package/dist/api-users/index.cjs +0 -6009
  314. package/dist/api-users/index.cjs.map +0 -1
  315. package/dist/api-users/index.d.cts +0 -4740
  316. package/dist/api-verifications/index.cjs +0 -407
  317. package/dist/api-verifications/index.cjs.map +0 -1
  318. package/dist/api-verifications/index.d.cts +0 -207
  319. package/dist/batch/index.cjs +0 -408
  320. package/dist/batch/index.cjs.map +0 -1
  321. package/dist/batch/index.d.cts +0 -330
  322. package/dist/bin/index.cjs +0 -17
  323. package/dist/bin/index.cjs.map +0 -1
  324. package/dist/bin/index.d.cts +0 -1
  325. package/dist/bucket/index.cjs +0 -303
  326. package/dist/bucket/index.cjs.map +0 -1
  327. package/dist/bucket/index.d.cts +0 -355
  328. package/dist/cache/index.cjs +0 -241
  329. package/dist/cache/index.cjs.map +0 -1
  330. package/dist/cache/index.d.cts +0 -202
  331. package/dist/cache-redis/index.cjs +0 -84
  332. package/dist/cache-redis/index.cjs.map +0 -1
  333. package/dist/cache-redis/index.d.cts +0 -40
  334. package/dist/cli/chunk-DSlc6foC.cjs +0 -43
  335. package/dist/cli/dist-BBPjuQ56.js +0 -2778
  336. package/dist/cli/dist-Sz2EXvQX.cjs.map +0 -1
  337. package/dist/cli/index.cjs +0 -1241
  338. package/dist/cli/index.cjs.map +0 -1
  339. package/dist/cli/index.d.cts +0 -422
  340. package/dist/command/index.cjs +0 -693
  341. package/dist/command/index.cjs.map +0 -1
  342. package/dist/command/index.d.cts +0 -340
  343. package/dist/core/index.cjs.map +0 -1
  344. package/dist/core/index.d.cts +0 -1927
  345. package/dist/datetime/index.cjs +0 -318
  346. package/dist/datetime/index.cjs.map +0 -1
  347. package/dist/datetime/index.d.cts +0 -145
  348. package/dist/email/index.cjs +0 -10874
  349. package/dist/email/index.cjs.map +0 -1
  350. package/dist/email/index.d.cts +0 -186
  351. package/dist/fake/index.cjs +0 -34641
  352. package/dist/fake/index.cjs.map +0 -1
  353. package/dist/fake/index.d.cts +0 -74
  354. package/dist/file/index.cjs +0 -1212
  355. package/dist/file/index.cjs.map +0 -1
  356. package/dist/file/index.d.cts +0 -698
  357. package/dist/lock/index.cjs +0 -226
  358. package/dist/lock/index.cjs.map +0 -1
  359. package/dist/lock/index.d.cts +0 -361
  360. package/dist/lock-redis/index.cjs +0 -113
  361. package/dist/lock-redis/index.cjs.map +0 -1
  362. package/dist/lock-redis/index.d.cts +0 -24
  363. package/dist/logger/index.cjs +0 -521
  364. package/dist/logger/index.cjs.map +0 -1
  365. package/dist/logger/index.d.cts +0 -281
  366. package/dist/orm/index.cjs +0 -2986
  367. package/dist/orm/index.cjs.map +0 -1
  368. package/dist/orm/index.d.cts +0 -2213
  369. package/dist/queue/index.cjs +0 -1044
  370. package/dist/queue/index.cjs.map +0 -1
  371. package/dist/queue/index.d.cts +0 -1265
  372. package/dist/queue-redis/index.cjs +0 -873
  373. package/dist/queue-redis/index.cjs.map +0 -1
  374. package/dist/queue-redis/index.d.cts +0 -82
  375. package/dist/redis/index.cjs +0 -153
  376. package/dist/redis/index.cjs.map +0 -1
  377. package/dist/redis/index.d.cts +0 -82
  378. package/dist/retry/index.cjs +0 -146
  379. package/dist/retry/index.cjs.map +0 -1
  380. package/dist/retry/index.d.cts +0 -172
  381. package/dist/router/index.cjs +0 -111
  382. package/dist/router/index.cjs.map +0 -1
  383. package/dist/router/index.d.cts +0 -46
  384. package/dist/scheduler/index.cjs +0 -576
  385. package/dist/scheduler/index.cjs.map +0 -1
  386. package/dist/scheduler/index.d.cts +0 -145
  387. package/dist/security/index.cjs +0 -2402
  388. package/dist/security/index.cjs.map +0 -1
  389. package/dist/security/index.d.cts +0 -598
  390. package/dist/server/index.cjs +0 -1680
  391. package/dist/server/index.cjs.map +0 -1
  392. package/dist/server/index.d.cts +0 -810
  393. package/dist/server-auth/index.cjs +0 -3146
  394. package/dist/server-auth/index.cjs.map +0 -1
  395. package/dist/server-auth/index.d.cts +0 -1164
  396. package/dist/server-cache/index.cjs +0 -252
  397. package/dist/server-cache/index.cjs.map +0 -1
  398. package/dist/server-cache/index.d.cts +0 -164
  399. package/dist/server-compress/index.cjs +0 -141
  400. package/dist/server-compress/index.cjs.map +0 -1
  401. package/dist/server-compress/index.d.cts +0 -38
  402. package/dist/server-cookies/index.cjs +0 -234
  403. package/dist/server-cookies/index.cjs.map +0 -1
  404. package/dist/server-cookies/index.d.cts +0 -144
  405. package/dist/server-cors/index.cjs +0 -201
  406. package/dist/server-cors/index.cjs.map +0 -1
  407. package/dist/server-cors/index.d.cts +0 -140
  408. package/dist/server-health/index.cjs +0 -62
  409. package/dist/server-health/index.cjs.map +0 -1
  410. package/dist/server-health/index.d.cts +0 -58
  411. package/dist/server-helmet/index.cjs +0 -131
  412. package/dist/server-helmet/index.cjs.map +0 -1
  413. package/dist/server-helmet/index.d.cts +0 -97
  414. package/dist/server-links/index.cjs +0 -992
  415. package/dist/server-links/index.cjs.map +0 -1
  416. package/dist/server-links/index.d.cts +0 -513
  417. package/dist/server-metrics/index.cjs +0 -4535
  418. package/dist/server-metrics/index.cjs.map +0 -1
  419. package/dist/server-metrics/index.d.cts +0 -35
  420. package/dist/server-multipart/index.cjs +0 -237
  421. package/dist/server-multipart/index.cjs.map +0 -1
  422. package/dist/server-multipart/index.d.cts +0 -50
  423. package/dist/server-proxy/index.cjs +0 -186
  424. package/dist/server-proxy/index.cjs.map +0 -1
  425. package/dist/server-proxy/index.d.cts +0 -234
  426. package/dist/server-rate-limit/index.cjs +0 -241
  427. package/dist/server-rate-limit/index.cjs.map +0 -1
  428. package/dist/server-rate-limit/index.d.cts +0 -183
  429. package/dist/server-security/index.cjs +0 -316
  430. package/dist/server-security/index.cjs.map +0 -1
  431. package/dist/server-security/index.d.cts +0 -173
  432. package/dist/server-static/index.cjs +0 -170
  433. package/dist/server-static/index.cjs.map +0 -1
  434. package/dist/server-static/index.d.cts +0 -121
  435. package/dist/server-swagger/index.cjs +0 -1021
  436. package/dist/server-swagger/index.cjs.map +0 -1
  437. package/dist/server-swagger/index.d.cts +0 -382
  438. package/dist/sms/index.cjs +0 -221
  439. package/dist/sms/index.cjs.map +0 -1
  440. package/dist/sms/index.d.cts +0 -130
  441. package/dist/thread/index.cjs +0 -350
  442. package/dist/thread/index.cjs.map +0 -1
  443. package/dist/thread/index.d.cts +0 -260
  444. package/dist/topic/index.cjs +0 -282
  445. package/dist/topic/index.cjs.map +0 -1
  446. package/dist/topic/index.d.cts +0 -523
  447. package/dist/topic-redis/index.cjs +0 -71
  448. package/dist/topic-redis/index.cjs.map +0 -1
  449. package/dist/topic-redis/index.d.cts +0 -42
  450. package/dist/vite/index.cjs +0 -1077
  451. package/dist/vite/index.cjs.map +0 -1
  452. package/dist/vite/index.d.cts +0 -542
  453. package/dist/websocket/index.cjs +0 -1117
  454. package/dist/websocket/index.cjs.map +0 -1
  455. package/dist/websocket/index.d.cts +0 -861
  456. package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
  457. package/src/api-notifications/providers/SmsProvider.ts +0 -8
  458. /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
  459. /package/src/core/{descriptors → primitives}/$env.ts +0 -0
  460. /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
  461. /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
@@ -1,523 +0,0 @@
1
- import * as alepha1 from "alepha";
2
- import { Alepha, Descriptor, KIND, Service, Static, TSchema } from "alepha";
3
- import * as alepha_logger0 from "alepha/logger";
4
- import { DateTimeProvider, DurationLike } from "alepha/datetime";
5
-
6
- //#region src/topic/providers/TopicProvider.d.ts
7
- /**
8
- * Base class for topic providers.
9
- */
10
- declare abstract class TopicProvider {
11
- protected readonly alepha: Alepha;
12
- /**
13
- * Publish a message to a topic.
14
- *
15
- * @param topic - The topic to publish to.
16
- * @param message - The message to publish.
17
- */
18
- abstract publish(topic: string, message: string): Promise<void>;
19
- /**
20
- * Subscribe to a topic.
21
- *
22
- * @param topic - The topic to subscribe to.
23
- * @param callback - The callback to call when a message is received.
24
- */
25
- abstract subscribe(topic: string, callback: SubscribeCallback): Promise<UnSubscribeFn>;
26
- /**
27
- * Unsubscribe from a topic.
28
- *
29
- * @param topic - The topic to unsubscribe from.
30
- */
31
- abstract unsubscribe(topic: string): Promise<void>;
32
- /**
33
- * Returns the list of $subscribers for this provider.
34
- */
35
- protected subscribers(): Array<() => Promise<unknown>>;
36
- }
37
- type SubscribeCallback = (message: string) => Promise<void> | void;
38
- type UnSubscribeFn = () => Promise<void>;
39
- //#endregion
40
- //#region src/topic/descriptors/$topic.d.ts
41
- /**
42
- * Creates a topic descriptor for publish/subscribe messaging and event-driven architecture.
43
- *
44
- * Enables decoupled communication through a pub/sub pattern where publishers send messages
45
- * and multiple subscribers receive them. Supports type-safe messages, real-time delivery,
46
- * event filtering, and pluggable backends (memory, Redis, custom providers).
47
- *
48
- * **Use Cases**: User notifications, real-time chat, event broadcasting, microservice communication
49
- *
50
- * @example
51
- * ```ts
52
- * class NotificationService {
53
- * userActivity = $topic({
54
- * name: "user-activity",
55
- * schema: {
56
- * payload: t.object({
57
- * userId: t.text(),
58
- * action: t.enum(["login", "logout", "purchase"]),
59
- * timestamp: t.number()
60
- * })
61
- * },
62
- * handler: async (message) => {
63
- * console.log(`User ${message.payload.userId}: ${message.payload.action}`);
64
- * }
65
- * });
66
- *
67
- * async trackLogin(userId: string) {
68
- * await this.userActivity.publish({ userId, action: "login", timestamp: Date.now() });
69
- * }
70
- *
71
- * async subscribeToEvents() {
72
- * await this.userActivity.subscribe(async (message) => {
73
- * // Additional subscriber logic
74
- * });
75
- * }
76
- * }
77
- * ```
78
- */
79
- declare const $topic: {
80
- <T extends TopicMessageSchema>(options: TopicDescriptorOptions<T>): TopicDescriptor<T>;
81
- [KIND]: typeof TopicDescriptor;
82
- };
83
- interface TopicDescriptorOptions<T extends TopicMessageSchema> {
84
- /**
85
- * Unique name identifier for the topic.
86
- *
87
- * This name is used for:
88
- * - Topic identification across the pub/sub system
89
- * - Message routing between publishers and subscribers
90
- * - Logging and debugging topic-related operations
91
- * - Provider-specific topic management (channels, keys, etc.)
92
- *
93
- * If not provided, defaults to the property key where the topic is declared.
94
- *
95
- * **Naming Conventions**:
96
- * - Use descriptive, hierarchical names: "user.activity", "order.events"
97
- * - Avoid spaces and special characters
98
- * - Consider using dot notation for categorization
99
- * - Keep names concise but meaningful
100
- *
101
- * @example "user-activity"
102
- * @example "chat.messages"
103
- * @example "system.health.checks"
104
- * @example "payment.webhooks"
105
- */
106
- name?: string;
107
- /**
108
- * Human-readable description of the topic's purpose and usage.
109
- *
110
- * Used for:
111
- * - Documentation generation and API references
112
- * - Developer onboarding and understanding
113
- * - Monitoring dashboards and admin interfaces
114
- * - Team communication about system architecture
115
- *
116
- * **Description Best Practices**:
117
- * - Explain what events/messages this topic handles
118
- * - Mention key use cases and subscribers
119
- * - Include any important timing or ordering guarantees
120
- * - Note any special processing requirements
121
- *
122
- * @example "Real-time user activity events for analytics and notifications"
123
- * @example "Order lifecycle events from creation to delivery"
124
- * @example "Chat messages broadcast to all room participants"
125
- * @example "System health checks and service status updates"
126
- */
127
- description?: string;
128
- /**
129
- * Topic provider configuration for message storage and delivery.
130
- *
131
- * Options:
132
- * - **"memory"**: In-memory provider (default for development, lost on restart)
133
- * - **Service<TopicProvider>**: Custom provider class (e.g., RedisTopicProvider)
134
- * - **undefined**: Uses the default topic provider from dependency injection
135
- *
136
- * **Provider Selection Guidelines**:
137
- * - **Development**: Use "memory" for fast, simple testing without external dependencies
138
- * - **Production**: Use Redis or message brokers for persistence and scalability
139
- * - **Distributed systems**: Use Redis/RabbitMQ for cross-service communication
140
- * - **High-throughput**: Use specialized providers with connection pooling
141
- * - **Real-time**: Ensure provider supports low-latency message delivery
142
- *
143
- * **Provider Capabilities**:
144
- * - Message persistence and durability
145
- * - Subscriber management and connection handling
146
- * - Message ordering and delivery guarantees
147
- * - Horizontal scaling and load distribution
148
- *
149
- * @default Uses injected TopicProvider
150
- * @example "memory"
151
- * @example RedisTopicProvider
152
- * @example RabbitMQTopicProvider
153
- */
154
- provider?: "memory" | Service<TopicProvider>;
155
- /**
156
- * TypeBox schema defining the structure of messages published to this topic.
157
- *
158
- * The schema must include:
159
- * - **payload**: Required schema for the main message data
160
- * - **headers**: Optional schema for message metadata
161
- *
162
- * This schema:
163
- * - Validates all messages published to the topic
164
- * - Provides full TypeScript type inference for subscribers
165
- * - Ensures type safety between publishers and subscribers
166
- * - Enables automatic serialization/deserialization
167
- *
168
- * **Schema Design Best Practices**:
169
- * - Keep payload schemas focused and cohesive
170
- * - Use optional fields for data that might not always be present
171
- * - Include timestamp fields for event ordering
172
- * - Consider versioning for schema evolution
173
- * - Use union types for different event types in the same topic
174
- *
175
- * @example
176
- * ```ts
177
- * {
178
- * payload: t.object({
179
- * eventId: t.text(),
180
- * eventType: t.enum(["created", "updated"]),
181
- * data: t.record(t.text(), t.any()),
182
- * timestamp: t.number(),
183
- * userId: t.optional(t.text())
184
- * }),
185
- * headers: t.optional(t.object({
186
- * source: t.text(),
187
- * correlationId: t.text()
188
- * }))
189
- * }
190
- * ```
191
- */
192
- schema: T;
193
- /**
194
- * Default subscriber handler function that processes messages published to this topic.
195
- *
196
- * This handler:
197
- * - Automatically subscribes when the topic is initialized
198
- * - Receives all messages published to the topic
199
- * - Runs for every message without additional subscription setup
200
- * - Can be supplemented with additional subscribers via `subscribe()` method
201
- * - Should handle errors gracefully to avoid breaking other subscribers
202
- *
203
- * **Handler Design Guidelines**:
204
- * - Keep handlers focused on a single responsibility
205
- * - Use proper error handling and logging
206
- * - Consider performance impact for high-frequency topics
207
- * - Make handlers idempotent when possible
208
- * - Validate business rules within the handler logic
209
- * - Log important processing steps for debugging
210
- *
211
- * **Error Handling Strategy**:
212
- * - Log errors but don't re-throw to avoid affecting other subscribers
213
- * - Use try-catch blocks for external service calls
214
- * - Consider implementing circuit breakers for resilience
215
- * - Monitor error rates and patterns for system health
216
- *
217
- * @param message - The topic message with validated payload and headers
218
- * @param message.payload - The typed message data based on the schema
219
- * @returns Promise that resolves when processing is complete
220
- *
221
- * @example
222
- * ```ts
223
- * handler: async (message) => {
224
- * const { eventType, data, timestamp } = message.payload;
225
- *
226
- * try {
227
- * // Log message receipt
228
- * this.logger.info(`Processing ${eventType} event`, { timestamp, data });
229
- *
230
- * // Process based on event type
231
- * switch (eventType) {
232
- * case "created":
233
- * await this.handleCreation(data);
234
- * break;
235
- * case "updated":
236
- * await this.handleUpdate(data);
237
- * break;
238
- * default:
239
- * this.logger.warn(`Unknown event type: ${eventType}`);
240
- * }
241
- *
242
- * this.logger.info(`Successfully processed ${eventType} event`);
243
- *
244
- * } catch (error) {
245
- * // Log error but don't re-throw to avoid affecting other subscribers
246
- * this.logger.error(`Failed to process ${eventType} event`, {
247
- * error: error.message,
248
- * eventType,
249
- * timestamp,
250
- * data
251
- * });
252
- * }
253
- * }
254
- * ```
255
- */
256
- handler?: TopicHandler<T>;
257
- }
258
- declare class TopicDescriptor<T extends TopicMessageSchema> extends Descriptor<TopicDescriptorOptions<T>> {
259
- protected readonly log: alepha_logger0.Logger;
260
- protected readonly dateTimeProvider: DateTimeProvider;
261
- readonly provider: TopicProvider;
262
- get name(): string;
263
- publish(payload: TopicMessage<T>["payload"]): Promise<void>;
264
- subscribe(handler: TopicHandler<T>): Promise<UnSubscribeFn>;
265
- wait(options?: TopicWaitOptions<T>): Promise<TopicMessage<T>>;
266
- protected $provider(): TopicProvider;
267
- protected parseMessage(message: string): TopicMessage<T>;
268
- }
269
- interface TopicMessage<T extends TopicMessageSchema> {
270
- payload: Static<T["payload"]>;
271
- }
272
- interface TopicWaitOptions<T extends TopicMessageSchema> {
273
- timeout?: DurationLike;
274
- filter?: (message: {
275
- payload: Static<T["payload"]>;
276
- }) => boolean;
277
- }
278
- interface TopicMessageSchema {
279
- payload: TSchema;
280
- }
281
- type TopicHandler<T extends TopicMessageSchema = TopicMessageSchema> = (message: TopicMessage<T>) => unknown;
282
- //#endregion
283
- //#region src/topic/descriptors/$subscriber.d.ts
284
- /**
285
- * Creates a subscriber descriptor to listen for messages from a specific topic.
286
- *
287
- * Provides a dedicated message subscriber that connects to a topic and processes messages
288
- * with custom handler logic, enabling scalable pub/sub architectures where multiple
289
- * subscribers can react to the same events independently.
290
- *
291
- * **Key Features**
292
- * - Seamless integration with any $topic descriptor
293
- * - Full type safety inherited from topic schema
294
- * - Real-time message delivery when events are published
295
- * - Error isolation between subscribers
296
- * - Support for multiple independent subscribers per topic
297
- *
298
- * **Common Use Cases**
299
- * - Notification services and audit logging
300
- * - Analytics and metrics collection
301
- * - Data synchronization and real-time UI updates
302
- *
303
- * @example
304
- * ```ts
305
- * class UserActivityService {
306
- * userEvents = $topic({
307
- * name: "user-activity",
308
- * schema: {
309
- * payload: t.object({
310
- * userId: t.text(),
311
- * action: t.enum(["login", "logout", "purchase"]),
312
- * timestamp: t.number()
313
- * })
314
- * }
315
- * });
316
- *
317
- * activityLogger = $subscriber({
318
- * topic: this.userEvents,
319
- * handler: async (message) => {
320
- * const { userId, action, timestamp } = message.payload;
321
- * await this.auditLogger.log({
322
- * userId,
323
- * action,
324
- * timestamp
325
- * });
326
- * }
327
- * });
328
- *
329
- * async trackUserLogin(userId: string) {
330
- * await this.userEvents.publish({
331
- * userId,
332
- * action: "login",
333
- * timestamp: Date.now()
334
- * });
335
- * }
336
- * }
337
- * ```
338
- */
339
- declare const $subscriber: {
340
- <T extends TopicMessageSchema>(options: SubscriberDescriptorOptions<T>): SubscriberDescriptor<T>;
341
- [KIND]: typeof SubscriberDescriptor;
342
- };
343
- interface SubscriberDescriptorOptions<T extends TopicMessageSchema> {
344
- /**
345
- * The topic descriptor that this subscriber will listen to for messages.
346
- *
347
- * This establishes the connection between the subscriber and its source topic:
348
- * - The subscriber inherits the topic's message schema for type safety
349
- * - Messages published to the topic will be automatically delivered to this subscriber
350
- * - Multiple subscribers can listen to the same topic independently
351
- * - The subscriber will use the topic's provider and configuration settings
352
- *
353
- * **Topic Integration Benefits**:
354
- * - Type safety: Subscriber handler gets fully typed message payloads
355
- * - Schema validation: Messages are validated before reaching the subscriber
356
- * - Real-time delivery: Messages are delivered immediately upon publication
357
- * - Error isolation: Subscriber errors don't affect the topic or other subscribers
358
- * - Monitoring: Topic metrics include subscriber processing statistics
359
- *
360
- * @example
361
- * ```ts
362
- * // First, define a topic
363
- * userEvents = $topic({
364
- * name: "user-activity",
365
- * schema: {
366
- * payload: t.object({ userId: t.text(), action: t.text() })
367
- * }
368
- * });
369
- *
370
- * // Then, create a subscriber for that topic
371
- * activitySubscriber = $subscriber({
372
- * topic: this.userEvents, // Reference the topic descriptor
373
- * handler: async (message) => { } // Process messages here
374
- * });
375
- * ```
376
- */
377
- topic: TopicDescriptor<T>;
378
- /**
379
- * Message handler function that processes individual messages from the topic.
380
- *
381
- * This function:
382
- * - Receives fully typed and validated message payloads from the connected topic
383
- * - Executes immediately when messages are published to the topic
384
- * - Should implement the core business logic for reacting to these events
385
- * - Runs independently of other subscribers to the same topic
386
- * - Should handle errors gracefully to avoid affecting other subscribers
387
- * - Has access to the full Alepha dependency injection container
388
- *
389
- * **Handler Design Guidelines**:
390
- * - Keep handlers focused on a single responsibility
391
- * - Use proper error handling and logging
392
- * - Consider performance impact for high-frequency topics
393
- * - Make handlers idempotent when possible for reliability
394
- * - Validate business rules within the handler logic
395
- * - Log important processing steps for debugging and monitoring
396
- *
397
- * **Error Handling Strategy**:
398
- * - Log errors but don't re-throw to avoid affecting other subscribers
399
- * - Use try-catch blocks for external service calls
400
- * - Implement circuit breakers for resilience with external systems
401
- * - Monitor error rates and patterns for system health
402
- * - Consider implementing retry logic for temporary failures
403
- *
404
- * **Performance Considerations**:
405
- * - Keep handler execution time minimal for high-throughput topics
406
- * - Use background queues for heavy processing triggered by events
407
- * - Implement batching for efficiency when processing many similar events
408
- * - Consider async processing patterns for non-critical operations
409
- *
410
- * @param message - The topic message with validated payload and optional headers
411
- * @param message.payload - The typed message data based on the topic's schema
412
- * @returns Promise that resolves when processing is complete
413
- *
414
- * @example
415
- * ```ts
416
- * handler: async (message) => {
417
- * const { userId, eventType, timestamp } = message.payload;
418
- *
419
- * try {
420
- * // Log event receipt
421
- * this.logger.info(`Processing ${eventType} event for user ${userId}`, {
422
- * timestamp,
423
- * userId,
424
- * eventType
425
- * });
426
- *
427
- * // Perform event-specific processing
428
- * switch (eventType) {
429
- * case 'user.login':
430
- * await this.updateLastLogin(userId, timestamp);
431
- * await this.sendWelcomeNotification(userId);
432
- * break;
433
- * case 'user.logout':
434
- * await this.updateSessionDuration(userId, timestamp);
435
- * break;
436
- * case 'user.purchase':
437
- * await this.updateRewardsPoints(userId, message.payload.purchaseAmount);
438
- * await this.triggerRecommendations(userId);
439
- * break;
440
- * default:
441
- * this.logger.warn(`Unknown event type: ${eventType}`);
442
- * }
443
- *
444
- * // Update analytics
445
- * await this.analytics.track(eventType, {
446
- * userId,
447
- * timestamp,
448
- * source: 'topic-subscriber'
449
- * });
450
- *
451
- * this.logger.info(`Successfully processed ${eventType} for user ${userId}`);
452
- *
453
- * } catch (error) {
454
- * // Log error but don't re-throw to avoid affecting other subscribers
455
- * this.logger.error(`Failed to process ${eventType} for user ${userId}`, {
456
- * error: error.message,
457
- * stack: error.stack,
458
- * userId,
459
- * eventType,
460
- * timestamp
461
- * });
462
- *
463
- * // Optionally send to error tracking service
464
- * await this.errorTracker.captureException(error, {
465
- * context: { userId, eventType, timestamp },
466
- * tags: { component: 'topic-subscriber' }
467
- * });
468
- * }
469
- * }
470
- * ```
471
- */
472
- handler: TopicHandler<T>;
473
- }
474
- declare class SubscriberDescriptor<T extends TopicMessageSchema> extends Descriptor<SubscriberDescriptorOptions<T>> {}
475
- //#endregion
476
- //#region src/topic/errors/TopicTimeoutError.d.ts
477
- declare class TopicTimeoutError extends Error {
478
- readonly topic: string;
479
- readonly timeout: number;
480
- constructor(topic: string, timeout: number);
481
- }
482
- //#endregion
483
- //#region src/topic/providers/MemoryTopicProvider.d.ts
484
- declare class MemoryTopicProvider extends TopicProvider {
485
- protected readonly log: alepha_logger0.Logger;
486
- protected readonly subscriptions: Record<string, SubscribeCallback[]>;
487
- protected readonly start: alepha1.HookDescriptor<"start">;
488
- /**
489
- * Publish a message to a topic.
490
- *
491
- * @param topic
492
- * @param message
493
- */
494
- publish(topic: string, message: string): Promise<void>;
495
- /**
496
- * Subscribe to a topic.
497
- *
498
- * @param topic - The topic to subscribe to.
499
- * @param callback
500
- */
501
- subscribe(topic: string, callback: SubscribeCallback): Promise<UnSubscribeFn>;
502
- /**
503
- * Unsubscribe from a topic.
504
- *
505
- * @param topic - The topic to unsubscribe from.
506
- */
507
- unsubscribe(topic: string): Promise<void>;
508
- }
509
- //#endregion
510
- //#region src/topic/index.d.ts
511
- /**
512
- * Generic interface for pub/sub messaging.
513
- * Gives you the ability to create topics and subscribers.
514
- * This module provides only a memory implementation of the topic provider.
515
- *
516
- * @see {@link $topic}
517
- * @see {@link $subscriber}
518
- * @module alepha.topic
519
- */
520
- declare const AlephaTopic: alepha1.Service<alepha1.Module>;
521
- //#endregion
522
- export { $subscriber, $topic, AlephaTopic, MemoryTopicProvider, SubscribeCallback, SubscriberDescriptor, SubscriberDescriptorOptions, TopicDescriptor, TopicDescriptorOptions, TopicHandler, TopicMessage, TopicMessageSchema, TopicProvider, TopicTimeoutError, TopicWaitOptions, UnSubscribeFn };
523
- //# sourceMappingURL=index.d.cts.map
@@ -1,71 +0,0 @@
1
- let alepha = require("alepha");
2
- let alepha_topic = require("alepha/topic");
3
- let alepha_logger = require("alepha/logger");
4
- let alepha_redis = require("alepha/redis");
5
-
6
- //#region src/topic-redis/providers/RedisTopicProvider.ts
7
- const envSchema = alepha.t.object({ REDIS_TOPIC_PREFIX: alepha.t.text({ default: "topic" }) });
8
- var RedisTopicProvider = class extends alepha_topic.TopicProvider {
9
- env = (0, alepha.$env)(envSchema);
10
- alepha = (0, alepha.$inject)(alepha.Alepha);
11
- redisProvider = (0, alepha.$inject)(alepha_redis.RedisProvider);
12
- redisSubscriberProvider = (0, alepha.$inject)(alepha_redis.RedisSubscriberProvider);
13
- log = (0, alepha_logger.$logger)();
14
- start = (0, alepha.$hook)({
15
- on: "start",
16
- handler: async () => {
17
- const subscribers = this.subscribers();
18
- if (subscribers.length) {
19
- await Promise.all(subscribers.map((fn) => fn()));
20
- for (const subscriber of subscribers) this.log.debug(`Subscribed to topic '${subscriber.name}'`);
21
- }
22
- }
23
- });
24
- prefix(queue) {
25
- return `${this.env.REDIS_TOPIC_PREFIX}:${queue}`;
26
- }
27
- /**
28
- * Publish a message to a topic.
29
- */
30
- async publish(topic, message) {
31
- await this.redisProvider.publisher.publish(this.prefix(topic), message);
32
- }
33
- /**
34
- * Subscribe to a topic.
35
- */
36
- async subscribe(name, callback) {
37
- const topic = this.prefix(name);
38
- await this.redisSubscriberProvider.subscriber.subscribe(topic, callback);
39
- return () => this.unsubscribe(name, callback);
40
- }
41
- /**
42
- * Unsubscribe from a topic.
43
- */
44
- async unsubscribe(name, callback) {
45
- const topic = this.prefix(name);
46
- await this.redisSubscriberProvider.subscriber.unsubscribe(topic, callback);
47
- }
48
- };
49
-
50
- //#endregion
51
- //#region src/topic-redis/index.ts
52
- /**
53
- * Plugin for Alepha Topic that provides Redis pub/sub capabilities.
54
- *
55
- * @see {@link RedisTopicProvider}
56
- * @module alepha.topic.redis
57
- */
58
- const AlephaTopicRedis = (0, alepha.$module)({
59
- name: "alepha.topic.redis",
60
- services: [RedisTopicProvider],
61
- register: (alepha$1) => alepha$1.with({
62
- optional: true,
63
- provide: alepha_topic.TopicProvider,
64
- use: RedisTopicProvider
65
- }).with(alepha_topic.AlephaTopic)
66
- });
67
-
68
- //#endregion
69
- exports.AlephaTopicRedis = AlephaTopicRedis;
70
- exports.RedisTopicProvider = RedisTopicProvider;
71
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["t","TopicProvider","Alepha","RedisProvider","RedisSubscriberProvider","alepha","TopicProvider","AlephaTopic"],"sources":["../../src/topic-redis/providers/RedisTopicProvider.ts","../../src/topic-redis/index.ts"],"sourcesContent":["import { $env, $hook, $inject, Alepha, t } from \"alepha\";\nimport { $logger } from \"alepha/logger\";\nimport { RedisProvider, RedisSubscriberProvider } from \"alepha/redis\";\nimport {\n type SubscribeCallback,\n TopicProvider,\n type UnSubscribeFn,\n} from \"alepha/topic\";\n\nconst envSchema = t.object({\n REDIS_TOPIC_PREFIX: t.text({\n default: \"topic\",\n }),\n});\n\nexport class RedisTopicProvider extends TopicProvider {\n protected readonly env = $env(envSchema);\n protected readonly alepha = $inject(Alepha);\n protected readonly redisProvider = $inject(RedisProvider);\n protected readonly redisSubscriberProvider = $inject(RedisSubscriberProvider);\n\n protected readonly log = $logger();\n\n protected readonly start = $hook({\n on: \"start\",\n handler: async () => {\n const subscribers = this.subscribers();\n if (subscribers.length) {\n await Promise.all(subscribers.map((fn) => fn()));\n for (const subscriber of subscribers) {\n this.log.debug(`Subscribed to topic '${subscriber.name}'`);\n }\n }\n },\n });\n\n public prefix(queue: string): string {\n return `${this.env.REDIS_TOPIC_PREFIX}:${queue}`;\n }\n\n /**\n * Publish a message to a topic.\n */\n public async publish(topic: string, message: string): Promise<void> {\n await this.redisProvider.publisher.publish(this.prefix(topic), message);\n }\n\n /**\n * Subscribe to a topic.\n */\n public async subscribe(\n name: string,\n callback: SubscribeCallback,\n ): Promise<UnSubscribeFn> {\n const topic = this.prefix(name);\n await this.redisSubscriberProvider.subscriber.subscribe(topic, callback);\n\n return () => this.unsubscribe(name, callback);\n }\n\n /**\n * Unsubscribe from a topic.\n */\n public async unsubscribe(\n name: string,\n callback?: SubscribeCallback,\n ): Promise<void> {\n const topic = this.prefix(name);\n\n await this.redisSubscriberProvider.subscriber.unsubscribe(topic, callback);\n }\n}\n","import { $module, type Alepha } from \"alepha\";\nimport { AlephaTopic, TopicProvider } from \"alepha/topic\";\nimport { RedisTopicProvider } from \"./providers/RedisTopicProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/RedisTopicProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Plugin for Alepha Topic that provides Redis pub/sub capabilities.\n *\n * @see {@link RedisTopicProvider}\n * @module alepha.topic.redis\n */\nexport const AlephaTopicRedis = $module({\n name: \"alepha.topic.redis\",\n services: [RedisTopicProvider],\n register: (alepha: Alepha): Alepha =>\n alepha\n .with({\n optional: true,\n provide: TopicProvider,\n use: RedisTopicProvider,\n })\n .with(AlephaTopic),\n});\n"],"mappings":";;;;;;AASA,MAAM,YAAYA,SAAE,OAAO,EACzB,oBAAoBA,SAAE,KAAK,EACzB,SAAS,SACV,CAAC,EACH,CAAC;AAEF,IAAa,qBAAb,cAAwCC,2BAAc;CACpD,AAAmB,uBAAW,UAAU;CACxC,AAAmB,6BAAiBC,cAAO;CAC3C,AAAmB,oCAAwBC,2BAAc;CACzD,AAAmB,8CAAkCC,qCAAwB;CAE7E,AAAmB,kCAAe;CAElC,AAAmB,0BAAc;EAC/B,IAAI;EACJ,SAAS,YAAY;GACnB,MAAM,cAAc,KAAK,aAAa;AACtC,OAAI,YAAY,QAAQ;AACtB,UAAM,QAAQ,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,CAAC;AAChD,SAAK,MAAM,cAAc,YACvB,MAAK,IAAI,MAAM,wBAAwB,WAAW,KAAK,GAAG;;;EAIjE,CAAC;CAEF,AAAO,OAAO,OAAuB;AACnC,SAAO,GAAG,KAAK,IAAI,mBAAmB,GAAG;;;;;CAM3C,MAAa,QAAQ,OAAe,SAAgC;AAClE,QAAM,KAAK,cAAc,UAAU,QAAQ,KAAK,OAAO,MAAM,EAAE,QAAQ;;;;;CAMzE,MAAa,UACX,MACA,UACwB;EACxB,MAAM,QAAQ,KAAK,OAAO,KAAK;AAC/B,QAAM,KAAK,wBAAwB,WAAW,UAAU,OAAO,SAAS;AAExE,eAAa,KAAK,YAAY,MAAM,SAAS;;;;;CAM/C,MAAa,YACX,MACA,UACe;EACf,MAAM,QAAQ,KAAK,OAAO,KAAK;AAE/B,QAAM,KAAK,wBAAwB,WAAW,YAAY,OAAO,SAAS;;;;;;;;;;;;ACrD9E,MAAa,uCAA2B;CACtC,MAAM;CACN,UAAU,CAAC,mBAAmB;CAC9B,WAAW,aACTC,SACG,KAAK;EACJ,UAAU;EACV,SAASC;EACT,KAAK;EACN,CAAC,CACD,KAAKC,yBAAY;CACvB,CAAC"}
@@ -1,42 +0,0 @@
1
- import * as alepha1 from "alepha";
2
- import { Alepha } from "alepha";
3
- import * as alepha_logger0 from "alepha/logger";
4
- import { RedisProvider, RedisSubscriberProvider } from "alepha/redis";
5
- import { SubscribeCallback, TopicProvider, UnSubscribeFn } from "alepha/topic";
6
-
7
- //#region src/topic-redis/providers/RedisTopicProvider.d.ts
8
- declare class RedisTopicProvider extends TopicProvider {
9
- protected readonly env: {
10
- REDIS_TOPIC_PREFIX: string;
11
- };
12
- protected readonly alepha: Alepha;
13
- protected readonly redisProvider: RedisProvider;
14
- protected readonly redisSubscriberProvider: RedisSubscriberProvider;
15
- protected readonly log: alepha_logger0.Logger;
16
- protected readonly start: alepha1.HookDescriptor<"start">;
17
- prefix(queue: string): string;
18
- /**
19
- * Publish a message to a topic.
20
- */
21
- publish(topic: string, message: string): Promise<void>;
22
- /**
23
- * Subscribe to a topic.
24
- */
25
- subscribe(name: string, callback: SubscribeCallback): Promise<UnSubscribeFn>;
26
- /**
27
- * Unsubscribe from a topic.
28
- */
29
- unsubscribe(name: string, callback?: SubscribeCallback): Promise<void>;
30
- }
31
- //#endregion
32
- //#region src/topic-redis/index.d.ts
33
- /**
34
- * Plugin for Alepha Topic that provides Redis pub/sub capabilities.
35
- *
36
- * @see {@link RedisTopicProvider}
37
- * @module alepha.topic.redis
38
- */
39
- declare const AlephaTopicRedis: alepha1.Service<alepha1.Module>;
40
- //#endregion
41
- export { AlephaTopicRedis, RedisTopicProvider };
42
- //# sourceMappingURL=index.d.cts.map