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,113 +0,0 @@
1
- let alepha = require("alepha");
2
- let alepha_lock = require("alepha/lock");
3
- let alepha_topic = require("alepha/topic");
4
- let alepha_logger = require("alepha/logger");
5
- let alepha_redis = require("alepha/redis");
6
-
7
- //#region src/topic-redis/providers/RedisTopicProvider.ts
8
- const envSchema = alepha.t.object({ REDIS_TOPIC_PREFIX: alepha.t.text({ default: "topic" }) });
9
- var RedisTopicProvider = class extends alepha_topic.TopicProvider {
10
- env = (0, alepha.$env)(envSchema);
11
- alepha = (0, alepha.$inject)(alepha.Alepha);
12
- redisProvider = (0, alepha.$inject)(alepha_redis.RedisProvider);
13
- redisSubscriberProvider = (0, alepha.$inject)(alepha_redis.RedisSubscriberProvider);
14
- log = (0, alepha_logger.$logger)();
15
- start = (0, alepha.$hook)({
16
- on: "start",
17
- handler: async () => {
18
- const subscribers = this.subscribers();
19
- if (subscribers.length) {
20
- await Promise.all(subscribers.map((fn) => fn()));
21
- for (const subscriber of subscribers) this.log.debug(`Subscribed to topic '${subscriber.name}'`);
22
- }
23
- }
24
- });
25
- prefix(queue) {
26
- return `${this.env.REDIS_TOPIC_PREFIX}:${queue}`;
27
- }
28
- /**
29
- * Publish a message to a topic.
30
- */
31
- async publish(topic, message) {
32
- await this.redisProvider.publisher.publish(this.prefix(topic), message);
33
- }
34
- /**
35
- * Subscribe to a topic.
36
- */
37
- async subscribe(name, callback) {
38
- const topic = this.prefix(name);
39
- await this.redisSubscriberProvider.subscriber.subscribe(topic, callback);
40
- return () => this.unsubscribe(name, callback);
41
- }
42
- /**
43
- * Unsubscribe from a topic.
44
- */
45
- async unsubscribe(name, callback) {
46
- const topic = this.prefix(name);
47
- await this.redisSubscriberProvider.subscriber.unsubscribe(topic, callback);
48
- }
49
- };
50
-
51
- //#endregion
52
- //#region src/topic-redis/index.ts
53
- /**
54
- * Plugin for Alepha Topic that provides Redis pub/sub capabilities.
55
- *
56
- * @see {@link RedisTopicProvider}
57
- * @module alepha.topic.redis
58
- */
59
- const AlephaTopicRedis = (0, alepha.$module)({
60
- name: "alepha.topic.redis",
61
- services: [RedisTopicProvider],
62
- register: (alepha$1) => alepha$1.with({
63
- optional: true,
64
- provide: alepha_topic.TopicProvider,
65
- use: RedisTopicProvider
66
- }).with(alepha_topic.AlephaTopic)
67
- });
68
-
69
- //#endregion
70
- //#region src/lock-redis/providers/RedisLockProvider.ts
71
- var RedisLockProvider = class {
72
- log = (0, alepha_logger.$logger)();
73
- redisProvider = (0, alepha.$inject)(alepha_redis.RedisProvider);
74
- async set(key, value, nx, px) {
75
- const options = { GET: true };
76
- if (px) options.expiration = {
77
- type: "PX",
78
- value: px
79
- };
80
- if (nx) options.condition = "NX";
81
- return (await this.redisProvider.set(key, value, options)).toString("utf-8");
82
- }
83
- async del(...keys) {
84
- await this.redisProvider.del(keys);
85
- }
86
- };
87
-
88
- //#endregion
89
- //#region src/lock-redis/index.ts
90
- /**
91
- * Plugin for Alepha that provides a locking mechanism.
92
- *
93
- * @see {@link RedisLockProvider}
94
- * @module alepha.lock.redis
95
- */
96
- const AlephaLockRedis = (0, alepha.$module)({
97
- name: "alepha.lock.redis",
98
- services: [RedisLockProvider, RedisTopicProvider],
99
- register: (alepha$1) => alepha$1.with({
100
- optional: true,
101
- provide: alepha_lock.LockTopicProvider,
102
- use: RedisTopicProvider
103
- }).with({
104
- optional: true,
105
- provide: alepha_lock.LockProvider,
106
- use: RedisLockProvider
107
- }).with(alepha_lock.AlephaLock)
108
- });
109
-
110
- //#endregion
111
- exports.AlephaLockRedis = AlephaLockRedis;
112
- exports.RedisLockProvider = RedisLockProvider;
113
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["t","TopicProvider","Alepha","RedisProvider","RedisSubscriberProvider","alepha","TopicProvider","AlephaTopic","RedisProvider","options: RedisSetOptions","alepha","LockTopicProvider","LockProvider","AlephaLock"],"sources":["../../src/topic-redis/providers/RedisTopicProvider.ts","../../src/topic-redis/index.ts","../../src/lock-redis/providers/RedisLockProvider.ts","../../src/lock-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","import { $inject } from \"alepha\";\nimport type { LockProvider } from \"alepha/lock\";\nimport { $logger } from \"alepha/logger\";\nimport { RedisProvider, type RedisSetOptions } from \"alepha/redis\";\n\nexport class RedisLockProvider implements LockProvider {\n protected readonly log = $logger();\n protected readonly redisProvider = $inject(RedisProvider);\n\n public async set(\n key: string,\n value: string,\n nx?: boolean,\n px?: number,\n ): Promise<string> {\n const options: RedisSetOptions = {\n GET: true, // all the secrets of $lock is based on this\n };\n\n if (px) {\n options.expiration = {\n type: \"PX\",\n value: px,\n };\n }\n\n if (nx) {\n options.condition = \"NX\";\n }\n\n const resp = await this.redisProvider.set(key, value, options);\n\n return resp.toString(\"utf-8\");\n }\n\n public async del(...keys: string[]): Promise<void> {\n await this.redisProvider.del(keys);\n }\n}\n","import { $module, type Alepha } from \"alepha\";\nimport { AlephaLock, LockProvider, LockTopicProvider } from \"alepha/lock\";\nimport { RedisTopicProvider } from \"alepha/topic/redis\";\nimport { RedisLockProvider } from \"./providers/RedisLockProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/RedisLockProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Plugin for Alepha that provides a locking mechanism.\n *\n * @see {@link RedisLockProvider}\n * @module alepha.lock.redis\n */\nexport const AlephaLockRedis = $module({\n name: \"alepha.lock.redis\",\n services: [RedisLockProvider, RedisTopicProvider],\n register: (alepha: Alepha) =>\n alepha\n .with({\n optional: true,\n provide: LockTopicProvider,\n use: RedisTopicProvider,\n })\n .with({\n optional: true,\n provide: LockProvider,\n use: RedisLockProvider,\n })\n .with(AlephaLock),\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;;;;ACtBF,IAAa,oBAAb,MAAuD;CACrD,AAAmB,kCAAe;CAClC,AAAmB,oCAAwBC,2BAAc;CAEzD,MAAa,IACX,KACA,OACA,IACA,IACiB;EACjB,MAAMC,UAA2B,EAC/B,KAAK,MACN;AAED,MAAI,GACF,SAAQ,aAAa;GACnB,MAAM;GACN,OAAO;GACR;AAGH,MAAI,GACF,SAAQ,YAAY;AAKtB,UAFa,MAAM,KAAK,cAAc,IAAI,KAAK,OAAO,QAAQ,EAElD,SAAS,QAAQ;;CAG/B,MAAa,IAAI,GAAG,MAA+B;AACjD,QAAM,KAAK,cAAc,IAAI,KAAK;;;;;;;;;;;;ACnBtC,MAAa,sCAA0B;CACrC,MAAM;CACN,UAAU,CAAC,mBAAmB,mBAAmB;CACjD,WAAW,aACTC,SACG,KAAK;EACJ,UAAU;EACV,SAASC;EACT,KAAK;EACN,CAAC,CACD,KAAK;EACJ,UAAU;EACV,SAASC;EACT,KAAK;EACN,CAAC,CACD,KAAKC,uBAAW;CACtB,CAAC"}
@@ -1,24 +0,0 @@
1
- import * as alepha0 from "alepha";
2
- import * as alepha_logger0 from "alepha/logger";
3
- import { LockProvider } from "alepha/lock";
4
- import { RedisProvider } from "alepha/redis";
5
-
6
- //#region src/lock-redis/providers/RedisLockProvider.d.ts
7
- declare class RedisLockProvider implements LockProvider {
8
- protected readonly log: alepha_logger0.Logger;
9
- protected readonly redisProvider: RedisProvider;
10
- set(key: string, value: string, nx?: boolean, px?: number): Promise<string>;
11
- del(...keys: string[]): Promise<void>;
12
- }
13
- //#endregion
14
- //#region src/lock-redis/index.d.ts
15
- /**
16
- * Plugin for Alepha that provides a locking mechanism.
17
- *
18
- * @see {@link RedisLockProvider}
19
- * @module alepha.lock.redis
20
- */
21
- declare const AlephaLockRedis: alepha0.Service<alepha0.Module>;
22
- //#endregion
23
- export { AlephaLockRedis, RedisLockProvider };
24
- //# sourceMappingURL=index.d.cts.map
@@ -1,521 +0,0 @@
1
- let alepha = require("alepha");
2
- let alepha_datetime = require("alepha/datetime");
3
-
4
- //#region src/logger/providers/LogDestinationProvider.ts
5
- var LogDestinationProvider = class {};
6
-
7
- //#endregion
8
- //#region src/logger/providers/LogFormatterProvider.ts
9
- var LogFormatterProvider = class {};
10
-
11
- //#endregion
12
- //#region src/logger/services/Logger.ts
13
- var Logger = class {
14
- alepha = (0, alepha.$inject)(alepha.Alepha);
15
- formatter = (0, alepha.$inject)(LogFormatterProvider);
16
- destination = (0, alepha.$inject)(LogDestinationProvider);
17
- dateTimeProvider = (0, alepha.$inject)(alepha_datetime.DateTimeProvider);
18
- levels = {
19
- SILENT: -1,
20
- ERROR: 0,
21
- WARN: 1,
22
- INFO: 2,
23
- DEBUG: 3,
24
- TRACE: 4
25
- };
26
- service;
27
- module;
28
- app;
29
- appLogLevel = "INFO";
30
- logLevel = "INFO";
31
- constructor(service, module$1) {
32
- this.service = service;
33
- this.module = module$1;
34
- this.app = this.alepha.env.APP_NAME;
35
- }
36
- get context() {
37
- return this.alepha.context.get("context");
38
- }
39
- get level() {
40
- const stateLogLevel = this.alepha.state.get("alepha.logger.level");
41
- if (stateLogLevel && stateLogLevel !== this.appLogLevel) {
42
- this.appLogLevel = stateLogLevel;
43
- this.logLevel = this.parseLevel(this.appLogLevel, this.module);
44
- }
45
- return this.logLevel;
46
- }
47
- parseLevel(level, app) {
48
- const parts = level.toLowerCase().split(/[,;]/);
49
- for (const part of parts) {
50
- const trimmedPart = part.trim();
51
- if (!trimmedPart) continue;
52
- if (trimmedPart.includes(":") || trimmedPart.includes("=")) {
53
- const [modulePattern, levelValue] = trimmedPart.split(/[:=]/);
54
- const trimmedModule = modulePattern.trim();
55
- const trimmedLevel = levelValue?.trim();
56
- if (!trimmedLevel) continue;
57
- if (this.matchesPattern(app, trimmedModule)) try {
58
- return this.asLogLevel(trimmedLevel);
59
- } catch (error) {
60
- throw new alepha.AlephaError(`Invalid log level '${levelValue?.trim()}' for module pattern '${trimmedModule}'`);
61
- }
62
- }
63
- }
64
- for (const part of parts) {
65
- const trimmedPart = part.trim();
66
- if (!trimmedPart) continue;
67
- if (!trimmedPart.includes(":") && !trimmedPart.includes("=")) try {
68
- return this.asLogLevel(trimmedPart);
69
- } catch (error) {
70
- throw new Error(`Invalid global log level "${trimmedPart}"`);
71
- }
72
- }
73
- return "INFO";
74
- }
75
- matchesPattern(moduleName, pattern) {
76
- if (pattern.includes("*")) {
77
- const regexPattern = pattern.replace(/\./g, "\\.").replace(/\*/g, ".*");
78
- return (/* @__PURE__ */ new RegExp(`^${regexPattern}`)).test(moduleName);
79
- }
80
- return moduleName.startsWith(pattern);
81
- }
82
- asLogLevel(something) {
83
- const level = something.trim().toUpperCase();
84
- if (this.levels[level] !== void 0) return level;
85
- throw new alepha.AlephaError(`Invalid log level: ${something}`);
86
- }
87
- error(message, data) {
88
- this.log("ERROR", message, data);
89
- }
90
- warn(message, data) {
91
- this.log("WARN", message, data);
92
- }
93
- info(message, data) {
94
- this.log("INFO", message, data);
95
- }
96
- debug(message, data) {
97
- this.log("DEBUG", message, data);
98
- }
99
- trace(message, data) {
100
- this.log("TRACE", message, data);
101
- }
102
- log(level, message, data) {
103
- let _message = "";
104
- if (typeof message === "string") _message = message;
105
- else if (typeof data === "string") _message = data;
106
- let _data;
107
- if (typeof data === "object" && !!data) _data = data;
108
- else if (typeof message === "object" && message) _data = message;
109
- const logEntry = {
110
- level,
111
- message: _message,
112
- data: _data,
113
- context: this.context,
114
- service: this.service,
115
- module: this.module,
116
- app: this.app,
117
- timestamp: this.dateTimeProvider.nowMillis()
118
- };
119
- if (this.levels[level] > this.levels[this.level]) {
120
- this.emit(logEntry);
121
- return;
122
- }
123
- const formatted = this.formatter.format(logEntry);
124
- this.emit(logEntry, formatted);
125
- this.destination.write(formatted, logEntry);
126
- }
127
- emit(entry, message) {
128
- this.alepha.events.emit("log", {
129
- message,
130
- entry
131
- }, { catch: true }).catch(() => null);
132
- }
133
- };
134
-
135
- //#endregion
136
- //#region src/logger/descriptors/$logger.ts
137
- /**
138
- * Create a logger.
139
- *
140
- * `name` is optional, by default it will use the name of the service.
141
- *
142
- * @example
143
- * ```ts
144
- * import { $logger } from "alepha";
145
- *
146
- * class MyService {
147
- * log = $logger();
148
- *
149
- * constructor() {
150
- * this.log.info("Service initialized");
151
- * // print something like '[23:45:53.326] INFO <app.MyService>: Service initialized'
152
- * }
153
- * }
154
- * ```
155
- */
156
- const $logger = (options = {}) => {
157
- const { alepha: alepha$1, service, module: module$1 } = (0, alepha.$context)();
158
- return (0, alepha.$inject)(Logger, {
159
- lifetime: "transient",
160
- args: [options.name ?? service?.name, module$1?.name ?? alepha$1.env.MODULE_NAME ?? "app"]
161
- });
162
- };
163
- $logger[alepha.KIND] = Logger;
164
-
165
- //#endregion
166
- //#region src/logger/providers/ConsoleDestinationProvider.ts
167
- var ConsoleDestinationProvider = class extends LogDestinationProvider {
168
- write(message) {
169
- console.log(message);
170
- }
171
- };
172
-
173
- //#endregion
174
- //#region src/logger/providers/JsonFormatterProvider.ts
175
- var JsonFormatterProvider = class extends LogFormatterProvider {
176
- format(entry) {
177
- const json = {
178
- level: entry.level,
179
- message: entry.message,
180
- context: entry.context,
181
- service: entry.service,
182
- module: entry.module,
183
- app: entry.app,
184
- time: entry.timestamp
185
- };
186
- if (entry.data instanceof Error) json.error = this.formatJsonError(entry.data);
187
- else json.data = entry.data;
188
- return JSON.stringify(json);
189
- }
190
- formatJsonError(error) {
191
- return {
192
- name: error.name,
193
- message: error.message,
194
- stack: error.stack,
195
- cause: error.cause instanceof Error ? this.formatJsonError(error.cause) : void 0
196
- };
197
- }
198
- };
199
-
200
- //#endregion
201
- //#region src/logger/providers/MemoryDestinationProvider.ts
202
- var MemoryDestinationProvider = class extends LogDestinationProvider {
203
- entries = [];
204
- options = { maxEntries: 1e3 };
205
- write(formatted, entry) {
206
- this.entries.push({
207
- ...entry,
208
- formatted
209
- });
210
- if (this.entries.length > this.options.maxEntries) this.entries = this.entries.slice(-Math.floor(this.options.maxEntries * .8));
211
- }
212
- get logs() {
213
- return [...this.entries];
214
- }
215
- clear() {
216
- this.entries = [];
217
- }
218
- };
219
-
220
- //#endregion
221
- //#region src/logger/providers/RawFormatterProvider.ts
222
- var RawFormatterProvider = class extends LogFormatterProvider {
223
- format(entry) {
224
- let output = "";
225
- output += `${entry.message}`;
226
- if (entry.data instanceof Error) {
227
- output += `\n${entry.data.message}`;
228
- let cause = entry.data.cause;
229
- while (cause instanceof Error) {
230
- output += `\nCaused by: ${cause.message}`;
231
- cause = cause.cause;
232
- }
233
- }
234
- return output;
235
- }
236
- };
237
-
238
- //#endregion
239
- //#region src/logger/providers/ConsoleColorProvider.ts
240
- const envSchema$1 = alepha.t.object({
241
- NO_COLOR: alepha.t.optional(alepha.t.text()),
242
- FORCE_COLOR: alepha.t.optional(alepha.t.text())
243
- });
244
- var ConsoleColorProvider = class ConsoleColorProvider {
245
- static COLORS = {
246
- RESET: "\x1B[0m",
247
- BLACK: "\x1B[30m",
248
- RED: "\x1B[31m",
249
- GREEN: "\x1B[32m",
250
- ORANGE: "\x1B[33m",
251
- BLUE: "\x1B[34m",
252
- PURPLE: "\x1B[35m",
253
- CYAN: "\x1B[36m",
254
- GREY_LIGHT: "\x1B[37m",
255
- GREY_LIGHT_BOLD: "\x1B[1;37m",
256
- GREY_DARK: "\x1B[90m",
257
- GREY_DARK_BOLD: "\x1B[1;90m",
258
- WHITE: "\x1B[97m",
259
- WHITE_BOLD: "\x1B[1;97m",
260
- SILENT: "",
261
- ERROR: "\x1B[31m",
262
- WARN: "\x1B[33m",
263
- INFO: "\x1B[32m",
264
- DEBUG: "\x1B[34m",
265
- TRACE: "\x1B[90m"
266
- };
267
- env = (0, alepha.$env)(envSchema$1);
268
- alepha = (0, alepha.$inject)(alepha.Alepha);
269
- enabled = true;
270
- constructor() {
271
- this.enabled = this.isEnabled();
272
- }
273
- isEnabled() {
274
- if (this.env.NO_COLOR) return false;
275
- if (this.env.FORCE_COLOR) return true;
276
- return !this.alepha.isProduction();
277
- }
278
- set(color, text, reset = ConsoleColorProvider.COLORS.RESET) {
279
- if (!this.enabled) return text;
280
- return `${ConsoleColorProvider.COLORS[color]}${text}${reset}`;
281
- }
282
- };
283
-
284
- //#endregion
285
- //#region src/logger/providers/SimpleFormatterProvider.ts
286
- var SimpleFormatterProvider = class extends LogFormatterProvider {
287
- color = (0, alepha.$inject)(ConsoleColorProvider);
288
- alepha = (0, alepha.$inject)(alepha.Alepha);
289
- format(entry) {
290
- const { data, timestamp } = entry;
291
- let output = "";
292
- let details = "";
293
- const isError = data instanceof Error;
294
- if (isError) details = this.formatError(data);
295
- else if (data) try {
296
- details = JSON.stringify(data);
297
- } catch {
298
- details = "[Unserializable Object]";
299
- }
300
- output += this.color.set("GREY_DARK", `[${this.formatTimestamp(timestamp)}]`);
301
- output += " ";
302
- output += this.color.set(entry.level, entry.level.toUpperCase());
303
- output += " ";
304
- if (entry.app) {
305
- output += this.color.set("GREY_DARK", `${entry.app}`);
306
- output += " ";
307
- }
308
- if (entry.context) {
309
- output += this.color.set("GREY_DARK", `(${this.formatContext(entry.context)})`);
310
- output += " ";
311
- }
312
- const module$1 = this.color.set("GREY_LIGHT", `${entry.module}.`);
313
- const service = this.color.set(this.alepha.isBrowser() ? "RESET" : "WHITE", entry.service);
314
- output += `<${module$1}${service}>`;
315
- if (entry.message) output += `: ${this.color.set("CYAN", entry.message)}`;
316
- else output += ":";
317
- if (details) if (isError) output += ` \n${details}`;
318
- else output += ` ${this.color.set("GREY_DARK", details)}`;
319
- return output;
320
- }
321
- formatTimestamp(timestamp) {
322
- const d = new Date(timestamp);
323
- const h = d.getHours();
324
- const m = d.getMinutes();
325
- const s = d.getSeconds();
326
- const ms = d.getMilliseconds();
327
- return `${this.pad2(h)}:${this.pad2(m)}:${this.pad2(s)}.${this.pad3(ms)}`;
328
- }
329
- pad2 = (n) => (n < 10 ? "0" : "") + n;
330
- pad3 = (n) => n < 10 ? `00${n}` : n < 100 ? `0${n}` : `${n}`;
331
- /**
332
- * Avoid to display the whole UUID in development mode
333
- */
334
- formatContext(context) {
335
- if (this.alepha.isProduction()) return context;
336
- return context.slice(0, 8);
337
- }
338
- formatError(error) {
339
- if (this.alepha.isBrowser()) {
340
- setTimeout(() => {
341
- console.error(error);
342
- });
343
- return "";
344
- }
345
- let str = error.stack ?? error.message;
346
- const anyError = error;
347
- while (anyError.cause && anyError.cause instanceof Error) {
348
- str += `\nCaused by: ${anyError.cause.stack ?? anyError.cause.message}`;
349
- anyError.cause = anyError.cause.cause;
350
- }
351
- return str;
352
- }
353
- };
354
-
355
- //#endregion
356
- //#region src/logger/schemas/logEntrySchema.ts
357
- const logEntrySchema = alepha.t.object({
358
- level: alepha.t.enum([
359
- "SILENT",
360
- "TRACE",
361
- "DEBUG",
362
- "INFO",
363
- "WARN",
364
- "ERROR"
365
- ]),
366
- message: alepha.t.text({ size: "rich" }),
367
- service: alepha.t.text(),
368
- module: alepha.t.text(),
369
- context: alepha.t.optional(alepha.t.text()),
370
- app: alepha.t.optional(alepha.t.text()),
371
- data: alepha.t.optional(alepha.t.any()),
372
- timestamp: alepha.t.number()
373
- });
374
-
375
- //#endregion
376
- //#region src/logger/index.ts
377
- /**
378
- * Minimalist logger module for Alepha.
379
- *
380
- * It offers a global logger interface (info, warn, ...) via the `$logger` descriptor.
381
- *
382
- * ```ts
383
- * import { $logger } from "alepha/logger";
384
- *
385
- * class App {
386
- * log = $logger();
387
- * }
388
- * ```
389
- *
390
- * ### Formatting and Destinations
391
- *
392
- * `AlephaLogger` is **extensible**, destinations and formatters can be added or replaced.
393
- *
394
- * Default log destinations are:
395
- * - ConsoleDestinationProvider: logs to the console.
396
- * - MemoryDestinationProvider: stores logs in memory for later retrieval.
397
- *
398
- * Default log formatters are:
399
- * - JsonFormatterProvider: formats logs as JSON.
400
- * - SimpleFormatterProvider: formats logs as simple text (with colors when possible).
401
- * - RawFormatterProvider: formats logs as raw text without any formatting.
402
- *
403
- * ### Event Emission
404
- *
405
- * The logger emits 'log' events that can be listened to by external code, allowing for custom log processing and destinations.
406
- *
407
- * ```ts
408
- * class CustomDestination {
409
- * onLog = $hook({
410
- * on: "log",
411
- * handler: (ev) => {
412
- * // ev.message (formatted message)
413
- * // ev.entry (level, raw message, ...)
414
- * }
415
- * });
416
- * }
417
- * ```
418
- *
419
- * ### Log Level
420
- *
421
- * You can configure the log level and format via environment variables:
422
- *
423
- * - `LOG_LEVEL`: Sets the default log level for the application.
424
- * - `LOG_FORMAT`: Sets the default log format for the application.
425
- *
426
- * ```bash
427
- * LOG_LEVEL=debug LOG_FORMAT=json node src/index.ts
428
- * ```
429
- *
430
- * Log level is also available in the state as `logLevel`, which can be used to dynamically change the log level at runtime.
431
- * ```ts
432
- * alepha.state.set("alepha.logger.level", "debug");
433
- * ```
434
- *
435
- * Log level is $module aware, meaning you can set different log levels for different modules.
436
- *
437
- * **Module-specific configuration:**
438
- * - `LOG_LEVEL=my.module.name:debug,info` - debug for `my.module.name` (and submodules), info for others
439
- * - `LOG_LEVEL=alepha:trace,my.app:error,info` - trace for alepha modules, error for my.app modules, info for others
440
- *
441
- * **Wildcard patterns (NEW):**
442
- * - `LOG_LEVEL=alepha.*:debug,info` - debug for all alepha submodules
443
- * - `LOG_LEVEL=*.test:silent,*.core:trace,info` - silent for test modules, trace for core modules
444
- */
445
- const AlephaLogger = (0, alepha.$module)({
446
- name: "alepha.logger",
447
- descriptors: [$logger],
448
- services: [
449
- Logger,
450
- ConsoleDestinationProvider,
451
- MemoryDestinationProvider,
452
- JsonFormatterProvider,
453
- SimpleFormatterProvider,
454
- RawFormatterProvider
455
- ],
456
- register: (alepha$1) => {
457
- const env = alepha$1.parseEnv(envSchema);
458
- const getLogDestinationProvider = () => {
459
- if (alepha$1.isTest() && !env.LOG_LEVEL) {
460
- const printOnError = (ev) => {
461
- if (ev.task?.result?.state === "fail") {
462
- const output = alepha$1.inject(MemoryDestinationProvider);
463
- for (const log of output.logs) console.log(log.formatted);
464
- }
465
- };
466
- try {
467
- alepha$1.state.get("alepha.test.afterEach")?.(printOnError);
468
- alepha$1.state.get("alepha.test.onTestFinished")?.(printOnError);
469
- } catch {}
470
- return MemoryDestinationProvider;
471
- }
472
- return ConsoleDestinationProvider;
473
- };
474
- const getLogFormatterProvider = () => {
475
- if (env.LOG_FORMAT) {
476
- if (env.LOG_FORMAT === "json") return JsonFormatterProvider;
477
- if (env.LOG_FORMAT === "raw") return RawFormatterProvider;
478
- return SimpleFormatterProvider;
479
- }
480
- if (alepha$1.isProduction() && !alepha$1.isBrowser()) return JsonFormatterProvider;
481
- return SimpleFormatterProvider;
482
- };
483
- alepha$1.with({
484
- optional: true,
485
- provide: LogDestinationProvider,
486
- use: getLogDestinationProvider()
487
- });
488
- alepha$1.with({
489
- optional: true,
490
- provide: LogFormatterProvider,
491
- use: getLogFormatterProvider()
492
- });
493
- alepha$1.state.set("alepha.logger", alepha$1.inject(Logger, {
494
- lifetime: "transient",
495
- args: ["Alepha", "alepha.core"]
496
- }));
497
- alepha$1.state.set("alepha.logger.level", env.LOG_LEVEL ?? (alepha$1.isTest() ? "trace" : "info"));
498
- }
499
- });
500
- const envSchema = alepha.t.object({
501
- LOG_LEVEL: alepha.t.optional(alepha.t.text({ lowercase: true })),
502
- LOG_FORMAT: alepha.t.optional(alepha.t.enum([
503
- "json",
504
- "pretty",
505
- "raw"
506
- ], { lowercase: true }))
507
- });
508
-
509
- //#endregion
510
- exports.$logger = $logger;
511
- exports.AlephaLogger = AlephaLogger;
512
- exports.ConsoleColorProvider = ConsoleColorProvider;
513
- exports.ConsoleDestinationProvider = ConsoleDestinationProvider;
514
- exports.JsonFormatterProvider = JsonFormatterProvider;
515
- exports.LogDestinationProvider = LogDestinationProvider;
516
- exports.LogFormatterProvider = LogFormatterProvider;
517
- exports.Logger = Logger;
518
- exports.MemoryDestinationProvider = MemoryDestinationProvider;
519
- exports.SimpleFormatterProvider = SimpleFormatterProvider;
520
- exports.logEntrySchema = logEntrySchema;
521
- //# sourceMappingURL=index.cjs.map