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,810 +0,0 @@
1
- import * as alepha17 from "alepha";
2
- import { Alepha, AlephaError, Async, Descriptor, FileLike, KIND, Static, StreamLike, TArray, TFile, TObject, TRecord, TSchema, TStream, TString, TVoid } from "alepha";
3
- import { IncomingMessage, Server, ServerResponse as ServerResponse$1 } from "node:http";
4
- import * as alepha_logger6 from "alepha/logger";
5
- import { Readable } from "node:stream";
6
- import { ReadableStream } from "node:stream/web";
7
- import { Route, RouterProvider } from "alepha/router";
8
- import { DateTimeProvider, DurationLike } from "alepha/datetime";
9
- import * as alepha_cache0 from "alepha/cache";
10
-
11
- //#region src/server/constants/routeMethods.d.ts
12
- declare const routeMethods: readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS", "CONNECT", "TRACE"];
13
- type RouteMethod = (typeof routeMethods)[number];
14
- //#endregion
15
- //#region src/server/helpers/ServerReply.d.ts
16
- /**
17
- * Helper for building server replies.
18
- */
19
- declare class ServerReply {
20
- headers: Record<string, string> & {
21
- "set-cookie"?: string[];
22
- };
23
- status?: number;
24
- body?: any;
25
- /**
26
- * Redirect to a given URL with optional status code (default 302).
27
- */
28
- redirect(url: string, status?: number): void;
29
- /**
30
- * Set the response status code.
31
- */
32
- setStatus(status: number): this;
33
- /**
34
- * Set a response header.
35
- */
36
- setHeader(name: string, value: string): this;
37
- /**
38
- * Set the response body.
39
- */
40
- setBody(body: any): this;
41
- }
42
- //#endregion
43
- //#region src/server/services/UserAgentParser.d.ts
44
- interface UserAgentInfo {
45
- os: "Windows" | "Android" | "Ubuntu" | "MacOS" | "iOS" | "Linux" | "FreeBSD" | "OpenBSD" | "ChromeOS" | "BlackBerry" | "Symbian" | "Windows Phone";
46
- browser: "Chrome" | "Firefox" | "Safari" | "Edge" | "Opera" | "Internet Explorer" | "Brave" | "Vivaldi" | "Samsung Browser" | "UC Browser" | "Yandex";
47
- device: "MOBILE" | "DESKTOP" | "TABLET";
48
- }
49
- /**
50
- * Simple User-Agent parser to detect OS, browser, and device type.
51
- * This parser is not exhaustive and may not cover all edge cases.
52
- *
53
- * Use result for non
54
- */
55
- declare class UserAgentParser {
56
- parse(userAgent?: string): UserAgentInfo;
57
- }
58
- //#endregion
59
- //#region src/server/interfaces/ServerRequest.d.ts
60
- type TRequestBody = TObject | TString | TArray | TRecord | TStream;
61
- type TResponseBody = TObject | TString | TRecord | TFile | TArray | TStream | TVoid;
62
- interface RequestConfigSchema {
63
- body?: TRequestBody;
64
- params?: TObject;
65
- query?: TObject;
66
- headers?: TObject;
67
- response?: TResponseBody;
68
- }
69
- interface ServerRequestConfig<TConfig extends RequestConfigSchema = RequestConfigSchema> {
70
- body: TConfig["body"] extends TRequestBody ? Static<TConfig["body"]> : any;
71
- headers: TConfig["headers"] extends TObject ? Static<TConfig["headers"]> : Record<string, string>;
72
- params: TConfig["params"] extends TObject ? Static<TConfig["params"]> : Record<string, string>;
73
- query: TConfig["query"] extends TObject ? Static<TConfig["query"]> : Record<string, any>;
74
- }
75
- type ServerRequestConfigEntry<TConfig extends RequestConfigSchema = RequestConfigSchema> = Partial<ServerRequestConfig<TConfig>>;
76
- interface ServerRequest<TConfig extends RequestConfigSchema = RequestConfigSchema> extends ServerRequestConfig<TConfig> {
77
- /**
78
- * HTTP method used for this request.
79
- */
80
- method: RouteMethod;
81
- /**
82
- * Full request URL.
83
- */
84
- url: URL;
85
- /**
86
- * Unique request ID assigned to this request.
87
- */
88
- requestId: string;
89
- /**
90
- * Client IP address.
91
- * Will parse `X-Forwarded-For` header if present.
92
- */
93
- ip?: string;
94
- /**
95
- * Value of the `Host` header sent by the client.
96
- */
97
- host?: string;
98
- /**
99
- * Browser user agent information.
100
- * Information are not guaranteed to be accurate. Use with caution.
101
- *
102
- * @see {@link UserAgentParser}
103
- */
104
- userAgent: UserAgentInfo;
105
- /**
106
- * Arbitrary metadata attached to the request. Can be used by middlewares to store information.
107
- */
108
- metadata: Record<string, any>;
109
- /**
110
- * Reply object to be used to send response.
111
- */
112
- reply: ServerReply;
113
- /**
114
- * The raw underlying request object (Web Request).
115
- */
116
- raw: ServerRawRequest;
117
- }
118
- interface ServerRoute<TConfig extends RequestConfigSchema = RequestConfigSchema> extends Route {
119
- /**
120
- * Handler function for this route.
121
- */
122
- handler: ServerHandler<TConfig>;
123
- /**
124
- * HTTP method for this route.
125
- */
126
- method?: RouteMethod;
127
- /**
128
- * Request/response schema for this route.
129
- *
130
- * Request schema contains:
131
- * - body, for POST/PUT/PATCH requests
132
- * - params, for URL parameters (e.g. /user/:id)
133
- * - query, for URL query parameters (e.g. /user?id=123)
134
- * - headers, for HTTP headers
135
- *
136
- * Response schema contains:
137
- * - response
138
- *
139
- * Response schema is used to validate and serialize the response sent by the handler.
140
- */
141
- schema?: TConfig;
142
- /**
143
- * @see ServerLoggerProvider
144
- */
145
- silent?: boolean;
146
- }
147
- type ServerResponseBody<TConfig extends RequestConfigSchema = RequestConfigSchema> = TConfig["response"] extends TResponseBody ? Static<TConfig["response"]> : ResponseBodyType;
148
- type ResponseKind = "json" | "text" | "void" | "file" | "any";
149
- type ResponseBodyType = string | Buffer | StreamLike | undefined | null | void;
150
- type ServerHandler<TConfig extends RequestConfigSchema = RequestConfigSchema> = (request: ServerRequest<TConfig>) => Async<ServerResponseBody<TConfig>>;
151
- interface ServerResponse {
152
- body: string | Buffer | ArrayBuffer | Readable | ReadableStream;
153
- headers: Record<string, string>;
154
- status: number;
155
- }
156
- type ServerRouteRequestHandler = (request: ServerRequestData) => Promise<ServerResponse>;
157
- interface ServerRouteMatcher extends Route {
158
- handler: ServerRouteRequestHandler;
159
- }
160
- interface ServerRequestData {
161
- method: RouteMethod;
162
- url: URL;
163
- headers: Record<string, string>;
164
- query: Record<string, string>;
165
- params: Record<string, string>;
166
- raw: ServerRawRequest;
167
- }
168
- interface ServerRawRequest {
169
- node?: NodeRequestEvent;
170
- web?: WebRequestEvent;
171
- }
172
- interface NodeRequestEvent {
173
- req: IncomingMessage;
174
- res: ServerResponse$1;
175
- }
176
- interface WebRequestEvent {
177
- req: Request;
178
- res?: Response;
179
- }
180
- //#endregion
181
- //#region src/server/services/ServerRequestParser.d.ts
182
- declare class ServerRequestParser {
183
- protected readonly alepha: Alepha;
184
- protected readonly userAgentParser: UserAgentParser;
185
- createServerRequest(rawRequest: ServerRequestData): ServerRequest;
186
- getRequestId(request: ServerRequestData): string | undefined;
187
- getRequestUserAgent(request: ServerRequestData): UserAgentInfo;
188
- getRequestIp(request: ServerRequestData): string | undefined;
189
- }
190
- //#endregion
191
- //#region src/server/providers/ServerTimingProvider.d.ts
192
- type TimingMap = Record<string, [number, number]>;
193
- declare class ServerTimingProvider {
194
- protected readonly log: alepha_logger6.Logger;
195
- protected readonly alepha: Alepha;
196
- options: {
197
- prefix: string;
198
- disabled: boolean;
199
- };
200
- readonly onRequest: alepha17.HookDescriptor<"server:onRequest">;
201
- readonly onResponse: alepha17.HookDescriptor<"server:onResponse">;
202
- protected get handlerName(): string;
203
- beginTiming(name: string): void;
204
- endTiming(name: string): void;
205
- protected setDuration(name: string, timing: TimingMap): void;
206
- }
207
- //#endregion
208
- //#region src/server/providers/ServerRouterProvider.d.ts
209
- /**
210
- * Main router for all routes on the server side.
211
- *
212
- * - $route => generic route
213
- * - $action => action route (for API calls)
214
- * - $page => React route (for SSR)
215
- */
216
- declare class ServerRouterProvider extends RouterProvider<ServerRouteMatcher> {
217
- protected readonly log: alepha_logger6.Logger;
218
- protected readonly alepha: Alepha;
219
- protected readonly routes: ServerRoute[];
220
- protected readonly serverTimingProvider: ServerTimingProvider;
221
- protected readonly serverRequestParser: ServerRequestParser;
222
- /**
223
- * Get all registered routes, optionally filtered by a pattern.
224
- *
225
- * Pattern accept simple wildcard '*' at the end.
226
- * Example: '/api/*' will match all routes starting with '/api/' but '/api/' will match only that exact route.
227
- */
228
- getRoutes(pattern?: string): ServerRoute[];
229
- createRoute<TConfig extends RequestConfigSchema = RequestConfigSchema>(route: ServerRoute<TConfig>): void;
230
- protected getContextId(headers: Record<string, string>): string;
231
- protected processRequest(request: ServerRequest, route: ServerRoute, responseKind: ResponseKind): Promise<{
232
- status: number;
233
- headers: Record<string, string> & {
234
- "set-cookie"?: string[];
235
- };
236
- body: any;
237
- }>;
238
- protected runRouteHandler(route: ServerRoute, request: ServerRequest, responseKind: ResponseKind): Promise<void>;
239
- serializeResponse(route: ServerRoute, reply: ServerReply, responseKind: ResponseKind): void;
240
- protected getResponseType(schema?: RequestConfigSchema): ResponseKind;
241
- protected errorHandler(route: ServerRoute, request: ServerRequest, error: Error): Promise<void>;
242
- validateRequest(route: {
243
- schema?: RequestConfigSchema;
244
- }, request: ServerRequestConfig): void;
245
- }
246
- //#endregion
247
- //#region src/server/providers/ServerProvider.d.ts
248
- /**
249
- * Base server provider to handle incoming requests and route them.
250
- *
251
- * This is the default implementation for serverless environments.
252
- *
253
- * ServerProvider supports both Node.js HTTP requests and Web (Fetch API) requests.
254
- */
255
- declare class ServerProvider {
256
- protected readonly log: alepha_logger6.Logger;
257
- protected readonly alepha: Alepha;
258
- protected readonly dateTimeProvider: DateTimeProvider;
259
- protected readonly router: ServerRouterProvider;
260
- protected readonly internalServerErrorMessage = "Internal Server Error";
261
- get hostname(): string;
262
- /**
263
- * When a Node.js HTTP request is received from outside. (Vercel, AWS Lambda, etc.)
264
- */
265
- protected readonly onNodeRequest: alepha17.HookDescriptor<"node:request">;
266
- /**
267
- * When a Web (Fetch API) request is received from outside. (Netlify, Cloudflare Workers, etc.)
268
- */
269
- protected readonly onWebRequest: alepha17.HookDescriptor<"web:request">;
270
- /**
271
- * Handle Node.js HTTP request event.
272
- *
273
- * Technically, we just convert Node.js request to Web Standard Request.
274
- */
275
- handleNodeRequest(nodeRequestEvent: NodeRequestEvent): Promise<void>;
276
- /**
277
- * Handle Web (Fetch API) request event.
278
- */
279
- handleWebRequest(ev: WebRequestEvent): Promise<void>;
280
- /**
281
- * Helper for Vite development mode to let Vite handle (or not) 404.
282
- */
283
- protected isViteNotFound(url?: string, route?: Route, params?: Record<string, string>): boolean;
284
- }
285
- //#endregion
286
- //#region src/server/services/HttpClient.d.ts
287
- declare class HttpClient {
288
- protected readonly log: alepha_logger6.Logger;
289
- protected readonly alepha: Alepha;
290
- readonly cache: alepha_cache0.CacheDescriptorFn<HttpClientCache, any[]>;
291
- protected readonly pendingRequests: HttpClientPendingRequests;
292
- fetchAction(args: FetchActionArgs): Promise<FetchResponse>;
293
- fetch<T extends TSchema>(url: string, request?: RequestInitWithOptions<T>): Promise<FetchResponse<Static<T>>>;
294
- protected url(host: string, action: HttpAction, args: ServerRequestConfigEntry): string;
295
- protected body(init: RequestInit, headers: Record<string, string>, action: HttpAction, args?: ServerRequestConfigEntry): Promise<void>;
296
- protected responseData(response: Response, options: FetchOptions): Promise<any>;
297
- protected isMaybeFile(response: Response): boolean;
298
- protected createFileLike(response: Response, defaultFileName?: string): FileLike;
299
- pathVariables(url: string, action: {
300
- schema?: {
301
- params?: TObject;
302
- };
303
- }, args?: ServerRequestConfigEntry): string;
304
- queryParams(url: string, action: {
305
- schema?: {
306
- query?: TObject;
307
- };
308
- }, args?: ServerRequestConfigEntry): string;
309
- }
310
- interface FetchOptions<T extends TSchema = TSchema> {
311
- /**
312
- * Key to identify the request in the pending requests.
313
- */
314
- key?: string;
315
- /**
316
- * The schema to validate the response against.
317
- */
318
- schema?: {
319
- response?: T;
320
- };
321
- /**
322
- * Built-in cache options.
323
- */
324
- localCache?: boolean | number | DurationLike;
325
- }
326
- type RequestInitWithOptions<T extends TSchema = TSchema> = RequestInit & FetchOptions<T>;
327
- interface FetchResponse<T = any> {
328
- data: T;
329
- status: number;
330
- statusText: string;
331
- headers: Headers;
332
- raw?: Response;
333
- }
334
- type HttpClientPendingRequests = Record<string, Promise<any> | undefined>;
335
- interface HttpClientCache {
336
- data: any;
337
- etag?: string;
338
- }
339
- interface FetchActionArgs {
340
- action: HttpAction;
341
- host?: string;
342
- config?: ServerRequestConfigEntry;
343
- options?: ClientRequestOptions;
344
- }
345
- interface HttpAction {
346
- method?: string;
347
- prefix?: string;
348
- path: string;
349
- requestBodyType?: string;
350
- schema?: {
351
- params?: TObject;
352
- query?: TObject;
353
- body?: TRequestBody;
354
- response?: TResponseBody;
355
- };
356
- }
357
- //#endregion
358
- //#region src/server/descriptors/$action.d.ts
359
- /**
360
- * Creates a server action descriptor for defining type-safe HTTP endpoints.
361
- *
362
- * Server actions are the core building blocks for REST APIs in Alepha, providing declarative
363
- * HTTP endpoints with full type safety, automatic validation, and OpenAPI documentation.
364
- *
365
- * **Key Features**
366
- * - Full TypeScript inference for request/response types
367
- * - Automatic schema validation using TypeBox
368
- * - Convention-based URL generation with customizable paths
369
- * - Direct invocation (`run()`) or HTTP requests (`fetch()`)
370
- * - Built-in authentication and authorization support
371
- * - Automatic content-type handling (JSON, form-data, plain text)
372
- *
373
- * **URL Generation**
374
- * Actions are prefixed with `/api` by default (configurable via `SERVER_API_PREFIX`).
375
- * HTTP method defaults to GET, or POST if body schema is provided.
376
- *
377
- * **Common Use Cases**
378
- * - CRUD operations with type safety
379
- * - File upload and download endpoints
380
- * - Microservice communication
381
- *
382
- * @example
383
- * ```ts
384
- * class UserController {
385
- * getUsers = $action({
386
- * path: "/users",
387
- * schema: {
388
- * query: t.object({
389
- * page: t.optional(t.number({ default: 1 })),
390
- * limit: t.optional(t.number({ default: 10 }))
391
- * }),
392
- * response: t.object({
393
- * users: t.array(t.object({
394
- * id: t.text(),
395
- * name: t.text(),
396
- * email: t.text()
397
- * })),
398
- * total: t.number()
399
- * })
400
- * },
401
- * handler: async ({ query }) => {
402
- * const users = await this.userService.findUsers(query);
403
- * return { users: users.items, total: users.total };
404
- * }
405
- * });
406
- *
407
- * createUser = $action({
408
- * method: "POST",
409
- * path: "/users",
410
- * schema: {
411
- * body: t.object({
412
- * name: t.text(),
413
- * email: t.text({ format: "email" })
414
- * }),
415
- * response: t.object({ id: t.text(), name: t.text() })
416
- * },
417
- * handler: async ({ body }) => {
418
- * return await this.userService.create(body);
419
- * }
420
- * });
421
- * }
422
- * ```
423
- */
424
- declare const $action: {
425
- <TConfig extends RequestConfigSchema>(options: ActionDescriptorOptions<TConfig>): ActionDescriptorFn<TConfig>;
426
- [KIND]: typeof ActionDescriptor;
427
- };
428
- interface ActionDescriptorOptions<TConfig extends RequestConfigSchema> extends Omit<ServerRoute, "handler" | "path" | "schema" | "mapParams"> {
429
- /**
430
- * Name of the action.
431
- *
432
- * - It will be used to generate the route path if `path` is not provided.
433
- * - It will be used to generate the permission name if `security` is enabled.
434
- */
435
- name?: string;
436
- /**
437
- * Group actions together.
438
- *
439
- * - If not provided, the service name containing the route will be used.
440
- * - It will be used as Tag for documentation purposes.
441
- * - It will be used for permission name generation if `security` is enabled.
442
- *
443
- * @example
444
- * ```ts
445
- * // group = "MyController"
446
- * class MyController {
447
- * hello = $action({ handler: () => "Hello World" });
448
- * }
449
- *
450
- * // group = "users"
451
- * class MyOtherController {
452
- * group = "users";
453
- * a1 = $action({ handler: () => "Action 1", group: this.group });
454
- * a2 = $action({ handler: () => "Action 2", group: this.group });
455
- * }
456
- * ```
457
- */
458
- group?: string;
459
- /**
460
- * Pathname of the route. If not provided, property key is used.
461
- */
462
- path?: string;
463
- /**
464
- * The route method.
465
- *
466
- * - If not provided, it will be set to "GET" by default.
467
- * - If not provider and a body is provided, it will be set to "POST".
468
- *
469
- * Wildcard methods are not supported for now. (e.g. "ALL", "ANY", etc.)
470
- */
471
- method?: RouteMethod;
472
- /**
473
- * The config schema of the route.
474
- * - body: The request body schema.
475
- * - params: Path variables schema.
476
- * - query: The request query-params schema.
477
- * - response: The response schema.
478
- */
479
- schema?: TConfig;
480
- /**
481
- * A short description of the action. Used for documentation purposes.
482
- */
483
- description?: string;
484
- /**
485
- * Disable the route. Useful with env variables do disable one specific route.
486
- * Route won't be available in the API but can still be called locally!
487
- */
488
- disabled?: boolean;
489
- /**
490
- * Main route handler. This is where the route logic is implemented.
491
- */
492
- handler: ServerActionHandler<TConfig>;
493
- }
494
- declare class ActionDescriptor<TConfig extends RequestConfigSchema> extends Descriptor<ActionDescriptorOptions<TConfig>> {
495
- protected readonly log: alepha_logger6.Logger;
496
- protected readonly env: {
497
- SERVER_API_PREFIX: string;
498
- };
499
- protected readonly httpClient: HttpClient;
500
- protected readonly serverProvider: ServerProvider;
501
- protected readonly serverRouterProvider: ServerRouterProvider;
502
- protected onInit(): void;
503
- get prefix(): string;
504
- get route(): ServerRoute;
505
- /**
506
- * Returns the name of the action.
507
- */
508
- get name(): string;
509
- /**
510
- * Returns the group of the action. (e.g. "orders", "admin", etc.)
511
- */
512
- get group(): string;
513
- /**
514
- * Returns the HTTP method of the action.
515
- */
516
- get method(): RouteMethod;
517
- /**
518
- * Returns the path of the action.
519
- *
520
- * Path is prefixed by `/api` by default.
521
- */
522
- get path(): string;
523
- get schema(): TConfig | undefined;
524
- getBodyContentType(): string | undefined;
525
- /**
526
- * Call the action handler directly.
527
- * There is no HTTP layer involved.
528
- */
529
- run(config?: ClientRequestEntry<TConfig>, options?: ClientRequestOptions): Promise<ClientRequestResponse<TConfig>>;
530
- /**
531
- * Works like `run`, but always fetches (http request) the route.
532
- */
533
- fetch(config?: ClientRequestEntry<TConfig>, options?: ClientRequestOptions): Promise<FetchResponse<ClientRequestResponse<TConfig>>>;
534
- }
535
- interface ActionDescriptorFn<TConfig extends RequestConfigSchema> extends ActionDescriptor<TConfig> {
536
- (config?: ClientRequestEntry<TConfig>, options?: ClientRequestOptions): Promise<ClientRequestResponse<TConfig>>;
537
- }
538
- type ClientRequestEntry<TConfig extends RequestConfigSchema, T = ClientRequestEntryContainer<TConfig>> = { [K in keyof T as T[K] extends undefined ? never : K]: T[K] };
539
- type ClientRequestEntryContainer<TConfig extends RequestConfigSchema> = {
540
- body: TConfig["body"] extends TObject ? Static<TConfig["body"]> : undefined;
541
- params: TConfig["params"] extends TObject ? Static<TConfig["params"]> : undefined;
542
- headers?: TConfig["headers"] extends TObject ? Static<TConfig["headers"]> : undefined;
543
- query?: TConfig["query"] extends TObject ? Partial<Static<TConfig["query"]>> : undefined;
544
- };
545
- interface ClientRequestOptions extends FetchOptions {
546
- /**
547
- * Standard request fetch options.
548
- */
549
- request?: RequestInit;
550
- }
551
- type ClientRequestResponse<TConfig extends RequestConfigSchema> = TConfig["response"] extends TSchema ? Static<TConfig["response"]> : any;
552
- /**
553
- * Specific handler for server actions.
554
- */
555
- type ServerActionHandler<TConfig extends RequestConfigSchema = RequestConfigSchema> = (request: ServerActionRequest<TConfig>) => Async<ServerResponseBody<TConfig>>;
556
- /**
557
- * Server Action Request Interface
558
- *
559
- * Can be extended with module augmentation to add custom properties (like `user` in Server Security).
560
- *
561
- * This is NOT Server Request, but a specific type for actions.
562
- */
563
- interface ServerActionRequest<TConfig extends RequestConfigSchema> extends ServerRequest<TConfig> {}
564
- //#endregion
565
- //#region src/server/schemas/errorSchema.d.ts
566
- declare const errorSchema: alepha17.TObject<{
567
- error: alepha17.TString;
568
- status: alepha17.TInteger;
569
- message: alepha17.TString;
570
- details: alepha17.TOptional<alepha17.TString>;
571
- requestId: alepha17.TOptional<alepha17.TString>;
572
- cause: alepha17.TOptional<alepha17.TObject<{
573
- name: alepha17.TString;
574
- message: alepha17.TString;
575
- }>>;
576
- }>;
577
- type ErrorSchema = Static<typeof errorSchema>;
578
- //#endregion
579
- //#region src/server/errors/HttpError.d.ts
580
- declare const isHttpError: (error: unknown, status?: number) => error is HttpErrorLike;
581
- declare class HttpError extends AlephaError {
582
- name: string;
583
- static is: (error: unknown, status?: number) => error is HttpErrorLike;
584
- static toJSON(error: HttpError): ErrorSchema;
585
- readonly error: string;
586
- readonly status: number;
587
- readonly requestId?: string;
588
- readonly details?: string;
589
- readonly reason?: {
590
- name: string;
591
- message: string;
592
- };
593
- constructor(options: Partial<ErrorSchema>, cause?: unknown);
594
- }
595
- declare const errorNameByStatus: Record<number, string>;
596
- interface HttpErrorLike extends Error {
597
- status: number;
598
- }
599
- //#endregion
600
- //#region src/server/descriptors/$route.d.ts
601
- /**
602
- * Create a basic endpoint.
603
- *
604
- * It's a low level descriptor. You probably want to use `$action` instead.
605
- *
606
- * @see {@link $action}
607
- * @see {@link $page}
608
- */
609
- declare const $route: {
610
- <TConfig extends RequestConfigSchema>(options: RouteDescriptorOptions<TConfig>): RouteDescriptor<TConfig>;
611
- [KIND]: typeof RouteDescriptor;
612
- };
613
- interface RouteDescriptorOptions<TConfig extends RequestConfigSchema = RequestConfigSchema> extends ServerRoute<TConfig> {}
614
- declare class RouteDescriptor<TConfig extends RequestConfigSchema> extends Descriptor<RouteDescriptorOptions<TConfig>> {
615
- protected readonly serverRouterProvider: ServerRouterProvider;
616
- protected onInit(): void;
617
- }
618
- //#endregion
619
- //#region src/server/errors/BadRequestError.d.ts
620
- declare class BadRequestError extends HttpError {
621
- constructor(message?: string, cause?: unknown);
622
- }
623
- //#endregion
624
- //#region src/server/errors/ConflictError.d.ts
625
- declare class ConflictError extends HttpError {
626
- constructor(message?: string, cause?: unknown);
627
- }
628
- //#endregion
629
- //#region src/server/errors/ForbiddenError.d.ts
630
- declare class ForbiddenError extends HttpError {
631
- constructor(message?: string, cause?: unknown);
632
- }
633
- //#endregion
634
- //#region src/server/errors/NotFoundError.d.ts
635
- declare class NotFoundError extends HttpError {
636
- constructor(message?: string, cause?: unknown);
637
- }
638
- //#endregion
639
- //#region src/server/errors/UnauthorizedError.d.ts
640
- declare class UnauthorizedError extends HttpError {
641
- readonly name = "UnauthorizedError";
642
- constructor(message?: string, cause?: unknown);
643
- }
644
- //#endregion
645
- //#region src/server/errors/ValidationError.d.ts
646
- declare class ValidationError extends HttpError {
647
- constructor(message?: string, cause?: unknown);
648
- }
649
- //#endregion
650
- //#region src/server/helpers/isMultipart.d.ts
651
- /**
652
- * Checks if the route has multipart/form-data request body.
653
- */
654
- declare const isMultipart: (options: {
655
- schema?: RequestConfigSchema;
656
- requestBodyType?: string;
657
- }) => boolean;
658
- //#endregion
659
- //#region src/server/schemas/okSchema.d.ts
660
- declare const okSchema: alepha17.TObject<{
661
- ok: alepha17.TBoolean;
662
- id: alepha17.TOptional<alepha17.TUnion<[alepha17.TString, alepha17.TInteger]>>;
663
- count: alepha17.TOptional<alepha17.TNumber>;
664
- }>;
665
- type Ok = Static<typeof okSchema>;
666
- //#endregion
667
- //#region src/server/providers/BunHttpServerProvider.d.ts
668
- declare const envSchema$1: alepha17.TObject<{
669
- SERVER_PORT: alepha17.TInteger;
670
- SERVER_HOST: alepha17.TString;
671
- }>;
672
- declare module "alepha" {
673
- interface Env extends Partial<Static<typeof envSchema$1>> {}
674
- }
675
- declare const Bun: any;
676
- declare class BunHttpServerProvider extends ServerProvider {
677
- protected readonly alepha: Alepha;
678
- protected readonly dateTimeProvider: DateTimeProvider;
679
- protected readonly log: alepha_logger6.Logger;
680
- protected readonly env: {
681
- SERVER_PORT: number;
682
- SERVER_HOST: string;
683
- };
684
- protected readonly router: ServerRouterProvider;
685
- protected bunServer?: ReturnType<typeof Bun.serve>;
686
- get hostname(): string;
687
- readonly start: alepha17.HookDescriptor<"start">;
688
- protected readonly stop: alepha17.HookDescriptor<"stop">;
689
- protected listen(): Promise<void>;
690
- protected close(): Promise<void>;
691
- }
692
- //#endregion
693
- //#region src/server/providers/NodeHttpServerProvider.d.ts
694
- declare const envSchema: alepha17.TObject<{
695
- SERVER_PORT: alepha17.TInteger;
696
- SERVER_HOST: alepha17.TString;
697
- }>;
698
- declare module "alepha" {
699
- interface Env extends Partial<Static<typeof envSchema>> {}
700
- }
701
- declare class NodeHttpServerProvider extends ServerProvider {
702
- protected readonly alepha: Alepha;
703
- protected readonly dateTimeProvider: DateTimeProvider;
704
- protected readonly log: alepha_logger6.Logger;
705
- protected readonly env: {
706
- SERVER_PORT: number;
707
- SERVER_HOST: string;
708
- };
709
- protected readonly router: ServerRouterProvider;
710
- get hostname(): string;
711
- readonly server: Server<typeof IncomingMessage, typeof ServerResponse$1>;
712
- readonly start: alepha17.HookDescriptor<"start">;
713
- protected createHttpServer(func: (req: IncomingMessage, res: ServerResponse$1) => void): Server;
714
- protected readonly stop: alepha17.HookDescriptor<"stop">;
715
- protected listen(): Promise<void>;
716
- protected close(): Promise<void>;
717
- }
718
- //#endregion
719
- //#region src/server/providers/ServerLoggerProvider.d.ts
720
- declare class ServerLoggerProvider {
721
- protected readonly log: alepha_logger6.Logger;
722
- protected readonly alepha: Alepha;
723
- readonly onRequest: alepha17.HookDescriptor<"server:onRequest">;
724
- readonly onError: alepha17.HookDescriptor<"server:onError">;
725
- readonly onResponse: alepha17.HookDescriptor<"server:onResponse">;
726
- }
727
- //#endregion
728
- //#region src/server/providers/ServerNotReadyProvider.d.ts
729
- /**
730
- * On every request, this provider checks if the server is ready.
731
- *
732
- * If the server is not ready, it responds with a 503 status code and a message indicating that the server is not ready yet.
733
- *
734
- * The response also includes a `Retry-After` header indicating that the client should retry after 5 seconds.
735
- */
736
- declare class ServerNotReadyProvider {
737
- protected readonly alepha: Alepha;
738
- readonly onRequest: alepha17.HookDescriptor<"server:onRequest">;
739
- }
740
- //#endregion
741
- //#region src/server/index.d.ts
742
- declare module "alepha" {
743
- interface State {
744
- "alepha.node.server"?: Server;
745
- }
746
- interface Hooks {
747
- "action:onRequest": {
748
- action: ActionDescriptor<RequestConfigSchema>;
749
- request: ServerRequest;
750
- options: ClientRequestOptions;
751
- };
752
- "action:onResponse": {
753
- action: ActionDescriptor<RequestConfigSchema>;
754
- request: ServerRequest;
755
- options: ClientRequestOptions;
756
- response: any;
757
- };
758
- "server:onRequest": {
759
- route: ServerRoute;
760
- request: ServerRequest;
761
- };
762
- "server:onError": {
763
- route: ServerRoute;
764
- request: ServerRequest;
765
- error: Error;
766
- };
767
- "server:onSend": {
768
- route: ServerRoute;
769
- request: ServerRequest;
770
- };
771
- "server:onResponse": {
772
- route: ServerRoute;
773
- request: ServerRequest;
774
- response: ServerResponse;
775
- };
776
- "client:onRequest": {
777
- route: HttpAction;
778
- config: ServerRequestConfigEntry;
779
- options: ClientRequestOptions;
780
- headers: Record<string, string>;
781
- request: RequestInit;
782
- };
783
- "client:beforeFetch": {
784
- url: string;
785
- options: FetchOptions;
786
- request: RequestInit;
787
- };
788
- "client:onError": {
789
- route?: HttpAction;
790
- error: HttpError;
791
- };
792
- "node:request": NodeRequestEvent;
793
- "web:request": WebRequestEvent;
794
- }
795
- }
796
- /**
797
- * Provides high-performance HTTP server capabilities with declarative routing and action descriptors.
798
- *
799
- * The server module enables building REST APIs and web applications using `$route` and `$action` descriptors
800
- * on class properties. It provides automatic request/response handling, schema validation, middleware support,
801
- * and seamless integration with other Alepha modules for a complete backend solution.
802
- *
803
- * @see {@link $route}
804
- * @see {@link $action}
805
- * @module alepha.server
806
- */
807
- declare const AlephaServer: alepha17.Service<alepha17.Module>;
808
- //#endregion
809
- export { $action, $route, ActionDescriptor, ActionDescriptorFn, ActionDescriptorOptions, AlephaServer, BadRequestError, BunHttpServerProvider, ClientRequestEntry, ClientRequestEntryContainer, ClientRequestOptions, ClientRequestResponse, ConflictError, ErrorSchema, FetchActionArgs, FetchOptions, FetchResponse, ForbiddenError, HttpAction, HttpClient, HttpClientPendingRequests, HttpError, HttpErrorLike, NodeHttpServerProvider, NodeRequestEvent, NotFoundError, Ok, RequestConfigSchema, RequestInitWithOptions, ResponseBodyType, ResponseKind, RouteDescriptor, RouteDescriptorOptions, RouteMethod, ServerActionHandler, ServerActionRequest, ServerHandler, ServerLoggerProvider, ServerNotReadyProvider, ServerProvider, ServerRawRequest, ServerReply, ServerRequest, ServerRequestConfig, ServerRequestConfigEntry, ServerRequestData, ServerResponse, ServerResponseBody, ServerRoute, ServerRouteMatcher, ServerRouteRequestHandler, ServerRouterProvider, ServerTimingProvider, TRequestBody, TResponseBody, UnauthorizedError, ValidationError, WebRequestEvent, errorNameByStatus, errorSchema, isHttpError, isMultipart, okSchema, routeMethods };
810
- //# sourceMappingURL=index.d.cts.map