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,1164 +0,0 @@
1
- import * as alepha304 from "alepha";
2
- import { Alepha, Async, Descriptor, KIND, Static, TSchema } from "alepha";
3
- import { AccessTokenResponse, RealmDescriptor, SecurityProvider, ServiceAccountDescriptor, UserAccount, UserAccountToken } from "alepha/security";
4
- import { DateTimeProvider, DurationLike } from "alepha/datetime";
5
- import { Configuration } from "openid-client";
6
- import * as alepha_logger2 from "alepha/logger";
7
- import * as alepha_server6 from "alepha/server";
8
- import { ActionDescriptor, ClientRequestEntry, ClientRequestOptions, ClientRequestResponse, FetchOptions, FetchResponse, HttpClient, RequestConfigSchema, ServerHandler, ServerRequest, ServerRequestConfigEntry, ServerResponseBody, ServerRouterProvider, ServerTimingProvider } from "alepha/server";
9
- import * as alepha_retry0 from "alepha/retry";
10
-
11
- //#region src/server-cookies/services/CookieParser.d.ts
12
- declare class CookieParser {
13
- parseRequestCookies(header: string): Record<string, string>;
14
- serializeResponseCookies(cookies: Record<string, Cookie | null>, isHttps: boolean): string[];
15
- cookieToString(name: string, cookie: Cookie, isHttps?: boolean): string;
16
- }
17
- //#endregion
18
- //#region src/server-cookies/providers/ServerCookiesProvider.d.ts
19
- declare class ServerCookiesProvider {
20
- protected readonly alepha: Alepha;
21
- protected readonly log: alepha_logger2.Logger;
22
- protected readonly cookieParser: CookieParser;
23
- protected readonly dateTimeProvider: DateTimeProvider;
24
- protected readonly env: {
25
- APP_SECRET: string;
26
- };
27
- protected readonly ALGORITHM = "aes-256-gcm";
28
- protected readonly IV_LENGTH = 16;
29
- protected readonly AUTH_TAG_LENGTH = 16;
30
- protected readonly SIGNATURE_LENGTH = 32;
31
- readonly onRequest: alepha304.HookDescriptor<"server:onRequest">;
32
- readonly onAction: alepha304.HookDescriptor<"action:onRequest">;
33
- readonly onSend: alepha304.HookDescriptor<"server:onSend">;
34
- protected getCookiesFromContext(cookies?: Cookies): Cookies;
35
- getCookie<T extends TSchema>(name: string, options: CookieDescriptorOptions<T>, contextCookies?: Cookies): Static<T> | undefined;
36
- setCookie<T extends TSchema>(name: string, options: CookieDescriptorOptions<T>, data: Static<T>, contextCookies?: Cookies): void;
37
- deleteCookie<T extends TSchema>(name: string, contextCookies?: Cookies): void;
38
- protected encrypt(text: string): string;
39
- protected decrypt(encryptedText: string): string;
40
- secretKey(): string;
41
- protected sign(data: string): string;
42
- }
43
- //#endregion
44
- //#region src/server-cookies/descriptors/$cookie.d.ts
45
- interface CookieDescriptorOptions<T extends TSchema> {
46
- /** The schema for the cookie's value, used for validation and type safety. */
47
- schema: T;
48
- /** The name of the cookie. */
49
- name?: string;
50
- /** The cookie's path. Defaults to "/". */
51
- path?: string;
52
- /** Time-to-live for the cookie. Maps to `Max-Age`. */
53
- ttl?: DurationLike;
54
- /** If true, the cookie is only sent over HTTPS. Defaults to true in production. */
55
- secure?: boolean;
56
- /** If true, the cookie cannot be accessed by client-side scripts. */
57
- httpOnly?: boolean;
58
- /** SameSite policy for the cookie. Defaults to "lax". */
59
- sameSite?: "strict" | "lax" | "none";
60
- /** The domain for the cookie. */
61
- domain?: string;
62
- /** If true, the cookie value will be compressed using zlib. */
63
- compress?: boolean;
64
- /** If true, the cookie value will be encrypted. Requires `COOKIE_SECRET` env var. */
65
- encrypt?: boolean;
66
- /** If true, the cookie will be signed to prevent tampering. Requires `COOKIE_SECRET` env var. */
67
- sign?: boolean;
68
- }
69
- interface AbstractCookieDescriptor<T extends TSchema> {
70
- readonly name: string;
71
- readonly options: CookieDescriptorOptions<T>;
72
- set(value: Static<T>, options?: {
73
- cookies?: Cookies;
74
- ttl?: DurationLike;
75
- }): void;
76
- get(options?: {
77
- cookies?: Cookies;
78
- }): Static<T> | undefined;
79
- del(options?: {
80
- cookies?: Cookies;
81
- }): void;
82
- }
83
- interface Cookies {
84
- req: Record<string, string>;
85
- res: Record<string, Cookie | null>;
86
- }
87
- interface Cookie {
88
- value: string;
89
- path?: string;
90
- maxAge?: number;
91
- secure?: boolean;
92
- httpOnly?: boolean;
93
- sameSite?: "strict" | "lax" | "none";
94
- domain?: string;
95
- }
96
- //#endregion
97
- //#region src/server-cookies/index.d.ts
98
- declare module "alepha/server" {
99
- interface ServerRequest {
100
- cookies: Cookies;
101
- }
102
- }
103
- /**
104
- * Provides HTTP cookie management capabilities for server requests and responses with type-safe cookie descriptors.
105
- *
106
- * The server-cookies module enables declarative cookie handling using the `$cookie` descriptor on class properties.
107
- * It offers automatic cookie parsing, secure cookie configuration, and seamless integration with server routes
108
- * for managing user sessions, preferences, and authentication tokens.
109
- *
110
- * @see {@link $cookie}
111
- * @module alepha.server.cookies
112
- */
113
- //#endregion
114
- //#region src/server-security/providers/ServerBasicAuthProvider.d.ts
115
- interface BasicAuthOptions {
116
- username: string;
117
- password: string;
118
- }
119
- //#endregion
120
- //#region src/server-security/providers/ServerSecurityProvider.d.ts
121
- type ServerRouteSecure = {
122
- realm?: string;
123
- basic?: BasicAuthOptions;
124
- };
125
- //#endregion
126
- //#region src/server-security/index.d.ts
127
- declare module "alepha" {
128
- interface State {
129
- /**
130
- * Real (or fake) user account, used for internal actions.
131
- *
132
- * If you define this, you assume that all actions are executed by this user by default.
133
- * > To force a different user, you need to pass it explicitly in the options.
134
- */
135
- "alepha.server.security.system.user"?: UserAccountToken;
136
- /**
137
- * The authenticated user account attached to the server request state.
138
- *
139
- * @internal
140
- */
141
- "alepha.server.request.user"?: UserAccount;
142
- }
143
- }
144
- declare module "alepha/server" {
145
- interface ServerRequest<TConfig> {
146
- user?: UserAccountToken;
147
- }
148
- interface ServerActionRequest<TConfig> {
149
- user: UserAccountToken;
150
- }
151
- interface ServerRoute {
152
- /**
153
- * If true, the route will be protected by the security provider.
154
- * All actions are secure by default, but you can disable it for specific actions.
155
- */
156
- secure?: boolean | ServerRouteSecure;
157
- }
158
- interface ClientRequestOptions extends FetchOptions {
159
- /**
160
- * Forward user from the previous request.
161
- * If "system", use system user. @see {ServerSecurityProvider.localSystemUser}
162
- * If "context", use the user from the current context (e.g. request).
163
- *
164
- * @default "system" if provided, else "context" if available.
165
- */
166
- user?: UserAccountToken | "system" | "context";
167
- }
168
- }
169
- /**
170
- * Plugin for Alepha Server that provides security features. Based on the Alepha Security module.
171
- *
172
- * By default, all $action will be guarded by a permission check.
173
- *
174
- * @see {@link ServerSecurityProvider}
175
- * @module alepha.server.security
176
- */
177
- //#endregion
178
- //#region src/server-links/schemas/apiLinksResponseSchema.d.ts
179
- declare const apiLinkSchema: alepha304.TObject<{
180
- name: alepha304.TString;
181
- group: alepha304.TOptional<alepha304.TString>;
182
- path: alepha304.TString;
183
- method: alepha304.TOptional<alepha304.TString>;
184
- requestBodyType: alepha304.TOptional<alepha304.TString>;
185
- service: alepha304.TOptional<alepha304.TString>;
186
- }>;
187
- declare const apiLinksResponseSchema: alepha304.TObject<{
188
- prefix: alepha304.TOptional<alepha304.TString>;
189
- links: alepha304.TArray<alepha304.TObject<{
190
- name: alepha304.TString;
191
- group: alepha304.TOptional<alepha304.TString>;
192
- path: alepha304.TString;
193
- method: alepha304.TOptional<alepha304.TString>;
194
- requestBodyType: alepha304.TOptional<alepha304.TString>;
195
- service: alepha304.TOptional<alepha304.TString>;
196
- }>>;
197
- }>;
198
- type ApiLinksResponse = Static<typeof apiLinksResponseSchema>;
199
- type ApiLink = Static<typeof apiLinkSchema>;
200
- //#endregion
201
- //#region src/server-links/providers/LinkProvider.d.ts
202
- /**
203
- * Browser, SSR friendly, service to handle links.
204
- */
205
- declare class LinkProvider {
206
- static path: {
207
- apiLinks: string;
208
- apiSchema: string;
209
- };
210
- protected readonly log: alepha_logger2.Logger;
211
- protected readonly alepha: Alepha;
212
- protected readonly httpClient: HttpClient;
213
- protected serverLinks: Array<HttpClientLink>;
214
- /**
215
- * Get applicative links registered on the server.
216
- * This does not include lazy-loaded remote links.
217
- */
218
- getServerLinks(): HttpClientLink[];
219
- /**
220
- * Register a new link for the application.
221
- */
222
- registerLink(link: HttpClientLink): void;
223
- get links(): HttpClientLink[];
224
- /**
225
- * Force browser to refresh links from the server.
226
- */
227
- fetchLinks(): Promise<HttpClientLink[]>;
228
- /**
229
- * Create a virtual client that can be used to call actions.
230
- *
231
- * Use js Proxy under the hood.
232
- */
233
- client<T extends object>(scope?: ClientScope): HttpVirtualClient<T>;
234
- /**
235
- * Check if a link with the given name exists.
236
- * @param name
237
- */
238
- can(name: string): boolean;
239
- /**
240
- * Resolve a link by its name and call it.
241
- * - If link is local, it will call the local handler.
242
- * - If link is remote, it will make a fetch request to the remote server.
243
- */
244
- follow(name: string, config?: Partial<ServerRequestConfigEntry>, options?: ClientRequestOptions & ClientScope): Promise<any>;
245
- protected createVirtualAction<T extends RequestConfigSchema>(name: string, scope?: ClientScope): VirtualAction<T>;
246
- protected followRemote(link: HttpClientLink, config?: Partial<ServerRequestConfigEntry>, options?: ClientRequestOptions): Promise<FetchResponse>;
247
- protected getLinkByName(name: string, options?: ClientScope): Promise<HttpClientLink>;
248
- }
249
- interface HttpClientLink extends ApiLink {
250
- secured?: boolean | ServerRouteSecure;
251
- prefix?: string;
252
- host?: string;
253
- service?: string;
254
- schema?: RequestConfigSchema;
255
- handler?: (request: ServerRequest, options: ClientRequestOptions) => Async<ServerResponseBody>;
256
- }
257
- interface ClientScope {
258
- group?: string;
259
- service?: string;
260
- hostname?: string;
261
- }
262
- type HttpVirtualClient<T> = { [K in keyof T as T[K] extends ActionDescriptor<RequestConfigSchema> ? K : never]: T[K] extends ActionDescriptor<infer Schema> ? VirtualAction<Schema> : never };
263
- interface VirtualAction<T extends RequestConfigSchema> extends Pick<ActionDescriptor<T>, "name" | "run" | "fetch"> {
264
- (config?: ClientRequestEntry<T>, opts?: ClientRequestOptions): Promise<ClientRequestResponse<T>>;
265
- can: () => boolean;
266
- }
267
- //#endregion
268
- //#region src/server-proxy/descriptors/$proxy.d.ts
269
- type ProxyDescriptorOptions = {
270
- /**
271
- * Path pattern to match for proxying requests.
272
- *
273
- * Supports wildcards and path parameters:
274
- * - `/api/*` - Matches all paths starting with `/api/`
275
- * - `/api/v1/*` - Matches all paths starting with `/api/v1/`
276
- * - `/users/:id` - Matches `/users/123`, `/users/abc`, etc.
277
- *
278
- * @example "/api/*"
279
- * @example "/secure/admin/*"
280
- * @example "/users/:id/posts"
281
- */
282
- path: string;
283
- /**
284
- * Target URL to which matching requests should be forwarded.
285
- *
286
- * Can be either:
287
- * - **Static string**: A fixed URL like `"https://api.example.com"`
288
- * - **Dynamic function**: A function that returns the URL, enabling runtime target resolution
289
- *
290
- * The target URL will be combined with the remaining path from the original request.
291
- *
292
- * @example "https://api.example.com"
293
- * @example () => process.env.API_URL || "http://localhost:3001"
294
- */
295
- target: string | (() => string);
296
- /**
297
- * Whether this proxy is disabled.
298
- *
299
- * When `true`, requests matching the path will not be proxied and will be handled
300
- * by other routes or return 404. Useful for feature toggles or conditional proxying.
301
- *
302
- * @default false
303
- * @example !process.env.ENABLE_PROXY
304
- */
305
- disabled?: boolean;
306
- /**
307
- * Hook called before forwarding the request to the target server.
308
- *
309
- * Use this to:
310
- * - Add authentication headers
311
- * - Modify request headers or body
312
- * - Add request tracking/logging
313
- * - Transform the request before forwarding
314
- *
315
- * @param request - The original incoming server request
316
- * @param proxyRequest - The request that will be sent to the target (modifiable)
317
- *
318
- * @example
319
- * ```ts
320
- * beforeRequest: async (request, proxyRequest) => {
321
- * proxyRequest.headers = {
322
- * ...proxyRequest.headers,
323
- * 'Authorization': `Bearer ${await getToken()}`,
324
- * 'X-Request-ID': generateRequestId()
325
- * };
326
- * }
327
- * ```
328
- */
329
- beforeRequest?: (request: ServerRequest, proxyRequest: RequestInit) => Async<void>;
330
- /**
331
- * Hook called after receiving the response from the target server.
332
- *
333
- * Use this to:
334
- * - Log response details for monitoring
335
- * - Add custom headers to the response
336
- * - Transform response data
337
- * - Handle error responses
338
- *
339
- * @param request - The original incoming server request
340
- * @param proxyResponse - The response received from the target server
341
- *
342
- * @example
343
- * ```ts
344
- * afterResponse: async (request, proxyResponse) => {
345
- * console.log(`Proxy ${request.method} ${request.url} -> ${proxyResponse.status}`);
346
- *
347
- * if (!proxyResponse.ok) {
348
- * await logError(`Proxy error: ${proxyResponse.status}`, { request, response: proxyResponse });
349
- * }
350
- * }
351
- * ```
352
- */
353
- afterResponse?: (request: ServerRequest, proxyResponse: Response) => Async<void>;
354
- /**
355
- * Function to rewrite the URL before sending to the target server.
356
- *
357
- * Use this to:
358
- * - Remove or add path prefixes
359
- * - Transform path parameters
360
- * - Modify query parameters
361
- * - Change the URL structure entirely
362
- *
363
- * The function receives a mutable URL object and should modify it in-place.
364
- *
365
- * @param url - The URL object to modify (mutable)
366
- *
367
- * @example
368
- * ```ts
369
- * // Remove /api prefix when forwarding
370
- * rewrite: (url) => {
371
- * url.pathname = url.pathname.replace('/api', '');
372
- * }
373
- * ```
374
- *
375
- * @example
376
- * ```ts
377
- * // Add version prefix
378
- * rewrite: (url) => {
379
- * url.pathname = `/v2${url.pathname}`;
380
- * }
381
- * ```
382
- */
383
- rewrite?: (url: URL) => void;
384
- };
385
- //#endregion
386
- //#region src/server-proxy/providers/ServerProxyProvider.d.ts
387
- declare class ServerProxyProvider {
388
- protected readonly log: alepha_logger2.Logger;
389
- protected readonly routerProvider: ServerRouterProvider;
390
- protected readonly alepha: Alepha;
391
- protected readonly configure: alepha304.HookDescriptor<"configure">;
392
- createProxy(options: ProxyDescriptorOptions): void;
393
- createProxyHandler(target: string, options: Omit<ProxyDescriptorOptions, "path">): ServerHandler;
394
- private getRawRequestBody;
395
- }
396
- //#endregion
397
- //#region src/server-links/descriptors/$remote.d.ts
398
- interface RemoteDescriptorOptions {
399
- /**
400
- * The URL of the remote service.
401
- * You can use a function to generate the URL dynamically.
402
- * You probably should use $env(env) to get the URL from the environment.
403
- *
404
- * @example
405
- * ```ts
406
- * import { $remote } from "alepha/server";
407
- * import { $inject, t } from "alepha";
408
- *
409
- * class App {
410
- * env = $env(t.object({
411
- * REMOTE_URL: t.text({default: "http://localhost:3000"}),
412
- * }));
413
- * remote = $remote({
414
- * url: this.env.REMOTE_URL,
415
- * });
416
- * }
417
- * ```
418
- */
419
- url: string | (() => string);
420
- /**
421
- * The name of the remote service.
422
- *
423
- * @default Member of the class containing the remote service.
424
- */
425
- name?: string;
426
- /**
427
- * If true, all methods of the remote service will be exposed as actions in this context.
428
- * > Note: Proxy will never use the service account, it just... proxies the request.
429
- */
430
- proxy?: boolean | Partial<ProxyDescriptorOptions & {
431
- /**
432
- * If true, the remote service won't be available internally, only through the proxy.
433
- */
434
- noInternal: boolean;
435
- }>;
436
- /**
437
- * For communication between the server and the remote service with a security layer.
438
- * This will be used for internal communication and will not be exposed to the client.
439
- */
440
- serviceAccount?: ServiceAccountDescriptor;
441
- }
442
- declare class RemoteDescriptor extends Descriptor<RemoteDescriptorOptions> {
443
- get name(): string;
444
- }
445
- //#endregion
446
- //#region src/server-links/providers/RemoteDescriptorProvider.d.ts
447
- declare class RemoteDescriptorProvider {
448
- protected readonly env: {
449
- SERVER_API_PREFIX: string;
450
- };
451
- protected readonly alepha: Alepha;
452
- protected readonly proxyProvider: ServerProxyProvider;
453
- protected readonly linkProvider: LinkProvider;
454
- protected readonly remotes: Array<ServerRemote>;
455
- protected readonly log: alepha_logger2.Logger;
456
- getRemotes(): ServerRemote[];
457
- readonly configure: alepha304.HookDescriptor<"configure">;
458
- readonly start: alepha304.HookDescriptor<"start">;
459
- registerRemote(value: RemoteDescriptor): Promise<void>;
460
- protected readonly fetchLinks: alepha_retry0.RetryDescriptorFn<(opts: FetchLinksOptions) => Promise<ApiLinksResponse>>;
461
- }
462
- interface FetchLinksOptions {
463
- /**
464
- * Name of the remote service.
465
- */
466
- service: string;
467
- /**
468
- * URL to fetch links from.
469
- */
470
- url: string;
471
- /**
472
- * Authorization header containing access token.
473
- */
474
- authorization?: string;
475
- }
476
- interface ServerRemote {
477
- /**
478
- * URL of the remote service.
479
- */
480
- url: string;
481
- /**
482
- * Name of the remote service.
483
- */
484
- name: string;
485
- /**
486
- * Expose links as endpoint. It's not only internal.
487
- */
488
- proxy: boolean;
489
- /**
490
- * It's only used inside the application.
491
- */
492
- internal: boolean;
493
- /**
494
- * Links fetcher.
495
- */
496
- links: (args: {
497
- authorization?: string;
498
- }) => Promise<ApiLinksResponse>;
499
- /**
500
- * Fetches schema for the remote service.
501
- */
502
- schema: (args: {
503
- name: string;
504
- authorization?: string;
505
- }) => Promise<any>;
506
- /**
507
- * Force a default access token provider when not provided.
508
- */
509
- serviceAccount?: ServiceAccountDescriptor;
510
- /**
511
- * Prefix for the remote service links.
512
- */
513
- prefix: string;
514
- }
515
- //#endregion
516
- //#region src/server-links/providers/ServerLinksProvider.d.ts
517
- declare class ServerLinksProvider {
518
- protected readonly env: {
519
- SERVER_API_PREFIX: string;
520
- };
521
- protected readonly alepha: Alepha;
522
- protected readonly linkProvider: LinkProvider;
523
- protected readonly remoteProvider: RemoteDescriptorProvider;
524
- protected readonly serverTimingProvider: ServerTimingProvider;
525
- get prefix(): string;
526
- readonly onRoute: alepha304.HookDescriptor<"configure">;
527
- /**
528
- * First API - Get all API links for the user.
529
- *
530
- * This is based on the user's permissions.
531
- */
532
- readonly links: alepha_server6.RouteDescriptor<{
533
- response: alepha304.TObject<{
534
- prefix: alepha304.TOptional<alepha304.TString>;
535
- links: alepha304.TArray<alepha304.TObject<{
536
- name: alepha304.TString;
537
- group: alepha304.TOptional<alepha304.TString>;
538
- path: alepha304.TString;
539
- method: alepha304.TOptional<alepha304.TString>;
540
- requestBodyType: alepha304.TOptional<alepha304.TString>;
541
- service: alepha304.TOptional<alepha304.TString>;
542
- }>>;
543
- }>;
544
- }>;
545
- /**
546
- * Second API - Get schema for a specific API link.
547
- *
548
- * Note: Body/Response schema are not included in `links` API because it's TOO BIG.
549
- * I mean for 150+ links, you got 50ms of serialization time.
550
- */
551
- readonly schema: alepha_server6.RouteDescriptor<{
552
- params: alepha304.TObject<{
553
- name: alepha304.TString;
554
- }>;
555
- response: alepha304.TRecord<string, alepha304.TAny>;
556
- }>;
557
- getSchemaByName(name: string, options?: GetApiLinksOptions): Promise<RequestConfigSchema>;
558
- /**
559
- * Retrieves API links for the user based on their permissions.
560
- * Will check on local links and remote links.
561
- */
562
- getUserApiLinks(options: GetApiLinksOptions): Promise<ApiLinksResponse>;
563
- }
564
- interface GetApiLinksOptions {
565
- user?: UserAccountToken;
566
- authorization?: string;
567
- }
568
- //#endregion
569
- //#region src/server-links/index.d.ts
570
- declare module "alepha" {
571
- interface State {
572
- /**
573
- * API links attached to the server request state.
574
- *
575
- * @see {@link ApiLinksResponse}
576
- * @internal
577
- */
578
- "alepha.server.request.apiLinks"?: ApiLinksResponse;
579
- }
580
- }
581
- /**
582
- * Provides server-side link management and remote capabilities for client-server interactions.
583
- *
584
- * The server-links module enables declarative link definitions using `$remote` and `$client` descriptors,
585
- * facilitating seamless API endpoint management and client-server communication. It integrates with server
586
- * security features to ensure safe and controlled access to resources.
587
- *
588
- * @see {@link $remote}
589
- * @see {@link $client}
590
- * @module alepha.server.links
591
- */
592
- //#endregion
593
- //#region src/server-auth/schemas/authenticationProviderSchema.d.ts
594
- declare const authenticationProviderSchema: alepha304.TObject<{
595
- name: alepha304.TString;
596
- type: alepha304.TUnsafe<"OAUTH2" | "OIDC" | "CREDENTIALS">;
597
- }>;
598
- type AuthenticationProvider = Static<typeof authenticationProviderSchema>;
599
- //#endregion
600
- //#region src/server-auth/schemas/tokensSchema.d.ts
601
- declare const tokensSchema: alepha304.TObject<{
602
- provider: alepha304.TString;
603
- access_token: alepha304.TString;
604
- issued_at: alepha304.TNumber;
605
- expires_in: alepha304.TOptional<alepha304.TNumber>;
606
- refresh_token: alepha304.TOptional<alepha304.TString>;
607
- refresh_token_expires_in: alepha304.TOptional<alepha304.TNumber>;
608
- refresh_expires_in: alepha304.TOptional<alepha304.TNumber>;
609
- id_token: alepha304.TOptional<alepha304.TString>;
610
- scope: alepha304.TOptional<alepha304.TString>;
611
- }>;
612
- type Tokens = Static<typeof tokensSchema>;
613
- //#endregion
614
- //#region src/server-auth/providers/ServerAuthProvider.d.ts
615
- declare class ServerAuthProvider {
616
- protected readonly log: alepha_logger2.Logger;
617
- protected readonly alepha: Alepha;
618
- protected readonly serverCookiesProvider: ServerCookiesProvider;
619
- protected readonly dateTimeProvider: DateTimeProvider;
620
- protected readonly serverLinksProvider: ServerLinksProvider;
621
- protected readonly authorizationCode: AbstractCookieDescriptor<alepha304.TObject<{
622
- provider: alepha304.TString;
623
- codeVerifier: alepha304.TOptional<alepha304.TString>;
624
- redirectUri: alepha304.TOptional<alepha304.TString>;
625
- state: alepha304.TOptional<alepha304.TString>;
626
- nonce: alepha304.TOptional<alepha304.TString>;
627
- }>>;
628
- readonly tokens: AbstractCookieDescriptor<alepha304.TObject<{
629
- provider: alepha304.TString;
630
- access_token: alepha304.TString;
631
- issued_at: alepha304.TNumber;
632
- expires_in: alepha304.TOptional<alepha304.TNumber>;
633
- refresh_token: alepha304.TOptional<alepha304.TString>;
634
- refresh_token_expires_in: alepha304.TOptional<alepha304.TNumber>;
635
- refresh_expires_in: alepha304.TOptional<alepha304.TNumber>;
636
- id_token: alepha304.TOptional<alepha304.TString>;
637
- scope: alepha304.TOptional<alepha304.TString>;
638
- }>>;
639
- get identities(): Array<AuthDescriptor>;
640
- getAuthenticationProviders(filters?: {
641
- realmName?: string;
642
- }): AuthenticationProvider[];
643
- protected readonly configure: alepha304.HookDescriptor<"configure">;
644
- protected getAccessTokens(tokens: Tokens): string | undefined;
645
- /**
646
- * Fill request headers with access token from cookies or fallback to provider's fallback function.
647
- */
648
- protected readonly onRequest: alepha304.HookDescriptor<"server:onRequest">;
649
- /**
650
- * Convert cookies to tokens.
651
- * If the tokens are expired, try to refresh them using the refresh token.
652
- */
653
- protected cookiesToTokens(cookies: Cookies): Promise<Tokens | undefined>;
654
- protected refreshTokens(tokens: Tokens): Promise<Tokens | undefined>;
655
- /**
656
- * Get user information.
657
- */
658
- readonly userinfo: alepha_server6.RouteDescriptor<{
659
- response: alepha304.TObject<{
660
- user: alepha304.TOptional<alepha304.TObject<{
661
- id: alepha304.TString;
662
- name: alepha304.TOptional<alepha304.TString>;
663
- email: alepha304.TOptional<alepha304.TString>;
664
- username: alepha304.TOptional<alepha304.TString>;
665
- picture: alepha304.TOptional<alepha304.TString>;
666
- sessionId: alepha304.TOptional<alepha304.TString>;
667
- organizations: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
668
- roles: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
669
- }>>;
670
- api: alepha304.TObject<{
671
- prefix: alepha304.TOptional<alepha304.TString>;
672
- links: alepha304.TArray<alepha304.TObject<{
673
- name: alepha304.TString;
674
- group: alepha304.TOptional<alepha304.TString>;
675
- path: alepha304.TString;
676
- method: alepha304.TOptional<alepha304.TString>;
677
- requestBodyType: alepha304.TOptional<alepha304.TString>;
678
- service: alepha304.TOptional<alepha304.TString>;
679
- }>>;
680
- }>;
681
- }>;
682
- }>;
683
- /**
684
- * Refresh a token for internal providers.
685
- */
686
- readonly refresh: alepha_server6.RouteDescriptor<{
687
- query: alepha304.TObject<{
688
- provider: alepha304.TString;
689
- }>;
690
- body: alepha304.TObject<{
691
- refresh_token: alepha304.TString;
692
- access_token: alepha304.TOptional<alepha304.TString>;
693
- }>;
694
- response: alepha304.TObject<{
695
- provider: alepha304.TString;
696
- access_token: alepha304.TString;
697
- issued_at: alepha304.TNumber;
698
- expires_in: alepha304.TOptional<alepha304.TNumber>;
699
- refresh_token: alepha304.TOptional<alepha304.TString>;
700
- refresh_token_expires_in: alepha304.TOptional<alepha304.TNumber>;
701
- refresh_expires_in: alepha304.TOptional<alepha304.TNumber>;
702
- id_token: alepha304.TOptional<alepha304.TString>;
703
- scope: alepha304.TOptional<alepha304.TString>;
704
- }>;
705
- }>;
706
- /**
707
- * Login for local password-based authentication.
708
- */
709
- readonly token: alepha_server6.RouteDescriptor<{
710
- query: alepha304.TObject<{
711
- provider: alepha304.TString;
712
- }>;
713
- body: alepha304.TObject<{
714
- username: alepha304.TString;
715
- password: alepha304.TString;
716
- }>;
717
- response: alepha304.TObject<{
718
- provider: alepha304.TString;
719
- access_token: alepha304.TString;
720
- issued_at: alepha304.TNumber;
721
- expires_in: alepha304.TOptional<alepha304.TNumber>;
722
- refresh_token: alepha304.TOptional<alepha304.TString>;
723
- refresh_token_expires_in: alepha304.TOptional<alepha304.TNumber>;
724
- refresh_expires_in: alepha304.TOptional<alepha304.TNumber>;
725
- id_token: alepha304.TOptional<alepha304.TString>;
726
- scope: alepha304.TOptional<alepha304.TString>;
727
- user: alepha304.TObject<{
728
- id: alepha304.TString;
729
- name: alepha304.TOptional<alepha304.TString>;
730
- email: alepha304.TOptional<alepha304.TString>;
731
- username: alepha304.TOptional<alepha304.TString>;
732
- picture: alepha304.TOptional<alepha304.TString>;
733
- sessionId: alepha304.TOptional<alepha304.TString>;
734
- organizations: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
735
- roles: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
736
- }>;
737
- api: alepha304.TObject<{
738
- prefix: alepha304.TOptional<alepha304.TString>;
739
- links: alepha304.TArray<alepha304.TObject<{
740
- name: alepha304.TString;
741
- group: alepha304.TOptional<alepha304.TString>;
742
- path: alepha304.TString;
743
- method: alepha304.TOptional<alepha304.TString>;
744
- requestBodyType: alepha304.TOptional<alepha304.TString>;
745
- service: alepha304.TOptional<alepha304.TString>;
746
- }>>;
747
- }>;
748
- }>;
749
- }>;
750
- /**
751
- * Oauth2/OIDC login route.
752
- */
753
- readonly login: alepha_server6.RouteDescriptor<{
754
- query: alepha304.TObject<{
755
- provider: alepha304.TString;
756
- redirect_uri: alepha304.TOptional<alepha304.TString>;
757
- }>;
758
- }>;
759
- /**
760
- * Callback for OAuth2/OIDC providers.
761
- * It handles the authorization code flow and retrieves the access token.
762
- */
763
- readonly callback: alepha_server6.RouteDescriptor<alepha_server6.RequestConfigSchema>;
764
- /**
765
- * Logout route for OAuth2/OIDC providers.
766
- */
767
- readonly logout: alepha_server6.RouteDescriptor<{
768
- query: alepha304.TObject<{
769
- post_logout_redirect_uri: alepha304.TOptional<alepha304.TString>;
770
- }>;
771
- }>;
772
- protected provider(opts: string | {
773
- provider: string;
774
- }): AuthDescriptor;
775
- protected setTokens(tokens: Tokens, cookies?: Cookies): void;
776
- }
777
- interface OAuth2Profile {
778
- sub: string;
779
- email?: string;
780
- name?: string;
781
- given_name?: string;
782
- family_name?: string;
783
- middle_name?: string;
784
- nickname?: string;
785
- preferred_username?: string;
786
- profile?: string;
787
- picture?: string;
788
- website?: string;
789
- email_verified?: boolean;
790
- gender?: string;
791
- birthdate?: string;
792
- zoneinfo?: string;
793
- locale?: string;
794
- phone_number?: string;
795
- phone_number_verified?: boolean;
796
- address?: {
797
- formatted?: string;
798
- street_address?: string;
799
- locality?: string;
800
- region?: string;
801
- postal_code?: string;
802
- country?: string;
803
- };
804
- updated_at?: number;
805
- [key: string]: unknown;
806
- }
807
- //#endregion
808
- //#region src/server-auth/descriptors/$auth.d.ts
809
- /**
810
- * Creates an authentication provider descriptor for handling user login flows.
811
- *
812
- * Supports multiple authentication strategies: credentials (username/password), OAuth2,
813
- * and OIDC (OpenID Connect). Handles token management, user profile retrieval, and
814
- * integration with both external identity providers (Auth0, Keycloak) and internal realms.
815
- *
816
- * **Authentication Types**: Credentials, OAuth2 (Google, GitHub), OIDC, External providers
817
- *
818
- * @example
819
- * ```ts
820
- * class AuthProviders {
821
- * // Internal credentials-based auth
822
- * credentials = $auth({
823
- * realm: this.userRealm,
824
- * credentials: {
825
- * account: async ({ username, password }) => {
826
- * return await this.validateUser(username, password);
827
- * }
828
- * }
829
- * });
830
- *
831
- * // External OIDC provider
832
- * keycloak = $auth({
833
- * oidc: {
834
- * issuer: "https://auth.example.com",
835
- * clientId: "my-app",
836
- * clientSecret: "secret",
837
- * redirectUri: "/auth/callback"
838
- * }
839
- * });
840
- * }
841
- * ```
842
- */
843
- declare const $auth: {
844
- (options: AuthDescriptorOptions): AuthDescriptor;
845
- [KIND]: typeof AuthDescriptor;
846
- };
847
- type AuthDescriptorOptions = {
848
- /**
849
- * Name of the identity provider.
850
- * If not provided, it will be derived from the property key.
851
- */
852
- name?: string;
853
- /**
854
- * If true, auth provider will be skipped.
855
- */
856
- disabled?: boolean;
857
- } & (AuthExternal | AuthInternal);
858
- /**
859
- * When you let an external service handle authentication. (e.g. Keycloak, Auth0, etc.)
860
- */
861
- type AuthExternal = {
862
- /**
863
- * Only OIDC is supported for external authentication.
864
- */
865
- oidc: OidcOptions;
866
- /**
867
- * For anonymous access, this will expect a service account access token.
868
- *
869
- * ```ts
870
- * class App {
871
- * anonymous = $serviceAccount(...);
872
- * auth = $auth({
873
- * // ... config ...
874
- * fallback: this.anonymous,
875
- * })
876
- * }
877
- * ```
878
- */
879
- fallback?: () => Async<AccessToken>;
880
- };
881
- /**
882
- * When using your own authentication system, e.g. using a database to store user accounts.
883
- * This is usually used with a custom login form.
884
- *
885
- * This relies on the `realm`, which is used to create/verify the access token.
886
- */
887
- type AuthInternal = {
888
- realm: RealmDescriptor;
889
- } & ({
890
- /**
891
- * The common username/password authentication.
892
- *
893
- * - It uses the OAuth2 Client Credentials flow to obtain an access token.
894
- *
895
- * This is usually used with a custom login form on your website or mobile app.
896
- */
897
- credentials: CredentialsOptions;
898
- } | {
899
- /**
900
- * OAuth2 authentication. Delegates authentication to an OAuth2 provider. (e.g. Google, GitHub, etc.)
901
- *
902
- * - It uses the OAuth2 Authorization Code flow to obtain an access token and user information.
903
- *
904
- * This is usually used with a login button that redirects to the OAuth2 provider.
905
- */
906
- oauth: OAuth2Options;
907
- } | {
908
- /**
909
- * Like OAuth2, but uses OIDC (OpenID Connect) for authentication and user information retrieval.
910
- * OIDC is an identity layer on top of OAuth2, providing user authentication and profile information.
911
- *
912
- * - It uses the OAuth2 Authorization Code flow to obtain an access token and user information.
913
- * - PCKE (Proof Key for Code Exchange) is recommended for security.
914
- *
915
- * This is usually used with a login button that redirects to the OIDC provider.
916
- */
917
- oidc: OidcOptions;
918
- });
919
- type CredentialsOptions = {
920
- account: CredentialsFn;
921
- };
922
- type CredentialsFn = (credentials: Credentials) => Async<UserAccount | undefined>;
923
- interface Credentials {
924
- username: string;
925
- password: string;
926
- }
927
- interface OidcOptions {
928
- /**
929
- * URL of the OIDC issuer.
930
- */
931
- issuer: string;
932
- /**
933
- * Client ID for the OIDC client.
934
- */
935
- clientId: string;
936
- /**
937
- * Client secret for the OIDC client.
938
- * Optional if PKCE (Proof Key for Code Exchange) is used.
939
- */
940
- clientSecret?: string;
941
- /**
942
- * Redirect URI for the OIDC client.
943
- * This is where the user will be redirected after authentication.
944
- */
945
- redirectUri?: string;
946
- /**
947
- * For external auth providers only.
948
- * Take the ID token instead of the access token for validation.
949
- */
950
- useIdToken?: boolean;
951
- /**
952
- * URI to redirect the user after logout.
953
- */
954
- logoutUri?: string;
955
- /**
956
- * Optional scope for the OIDC client.
957
- * @default "openid profile email".
958
- */
959
- scope?: string;
960
- account?: LinkAccountFn;
961
- }
962
- interface LinkAccountOptions {
963
- access_token: string;
964
- user: OAuth2Profile;
965
- id_token?: string;
966
- expires_in?: number;
967
- scope?: string;
968
- }
969
- type LinkAccountFn = (tokens: LinkAccountOptions) => Async<UserAccount>;
970
- interface OAuth2Options {
971
- /**
972
- * URL of the OAuth2 authorization endpoint.
973
- */
974
- clientId: string;
975
- /**
976
- * Client secret for the OAuth2 client.
977
- */
978
- clientSecret: string;
979
- /**
980
- * URL of the OAuth2 authorization endpoint.
981
- */
982
- authorization: string;
983
- /**
984
- * URL of the OAuth2 token endpoint.
985
- */
986
- token: string;
987
- /**
988
- * Function to retrieve user profile information from the OAuth2 tokens.
989
- */
990
- userinfo: (tokens: Tokens) => Async<OAuth2Profile>;
991
- account?: LinkAccountFn;
992
- /**
993
- * URL of the OAuth2 authorization endpoint.
994
- */
995
- redirectUri?: string;
996
- /**
997
- * URL of the OAuth2 authorization endpoint.
998
- */
999
- scope?: string;
1000
- }
1001
- declare class AuthDescriptor extends Descriptor<AuthDescriptorOptions> {
1002
- protected readonly securityProvider: SecurityProvider;
1003
- protected readonly dateTimeProvider: DateTimeProvider;
1004
- oauth?: Configuration;
1005
- get name(): string;
1006
- get jwks_uri(): string;
1007
- get scope(): string | undefined;
1008
- get redirect_uri(): string | undefined;
1009
- /**
1010
- * Refreshes the access token using the refresh token.
1011
- * Can be used on oauth2, oidc or credentials auth providers.
1012
- */
1013
- refresh(refreshToken: string, accessToken?: string): Promise<AccessTokenResponse>;
1014
- /**
1015
- * Extracts user information from the access token.
1016
- * This is used to create a user account from the access token.
1017
- */
1018
- user(tokens: Tokens): Promise<UserAccount>;
1019
- protected getUserFromIdToken(idToken: string): OAuth2Profile;
1020
- prepare(): Promise<void>;
1021
- }
1022
- type AccessToken = string | {
1023
- token: () => Async<string>;
1024
- };
1025
- interface WithLinkFn {
1026
- link?: (name: string) => (opts: LinkAccountOptions) => Async<UserAccount>;
1027
- }
1028
- interface WithLoginFn {
1029
- login?: (provider: string) => (creds: Credentials) => Async<UserAccount | undefined>;
1030
- }
1031
- //#endregion
1032
- //#region src/server-auth/descriptors/$authCredentials.d.ts
1033
- /**
1034
- * Already configured Credentials authentication descriptor.
1035
- *
1036
- * Uses username and password to authenticate users.
1037
- */
1038
- declare const $authCredentials: (realm: RealmDescriptor & WithLoginFn, options?: Partial<CredentialsOptions>) => AuthDescriptor;
1039
- //#endregion
1040
- //#region src/server-auth/descriptors/$authGithub.d.ts
1041
- /**
1042
- * Already configured GitHub authentication descriptor.
1043
- *
1044
- * Uses OAuth2 to authenticate users via their GitHub accounts.
1045
- * Upon successful authentication, it links the GitHub account to a user session.
1046
- *
1047
- * Environment Variables:
1048
- * - `GITHUB_CLIENT_ID`: The client ID obtained from the GitHub Developer Settings.
1049
- * - `GITHUB_CLIENT_SECRET`: The client secret obtained from the GitHub Developer Settings.
1050
- */
1051
- declare const $authGithub: (realm: RealmDescriptor & WithLinkFn, options?: Partial<OidcOptions>) => AuthDescriptor;
1052
- //#endregion
1053
- //#region src/server-auth/descriptors/$authGoogle.d.ts
1054
- /**
1055
- * Already configured Google authentication descriptor.
1056
- *
1057
- * Uses OpenID Connect (OIDC) to authenticate users via their Google accounts.
1058
- * Upon successful authentication, it links the Google account to a user session.
1059
- *
1060
- * Environment Variables:
1061
- * - `GOOGLE_CLIENT_ID`: The client ID obtained from the Google Developer Console.
1062
- * - `GOOGLE_CLIENT_SECRET`: The client secret obtained from the Google Developer Console.
1063
- */
1064
- declare const $authGoogle: (realm: RealmDescriptor & WithLinkFn, options?: Partial<OidcOptions>) => AuthDescriptor;
1065
- //#endregion
1066
- //#region src/server-auth/constants/routes.d.ts
1067
- declare const alephaServerAuthRoutes: {
1068
- login: string;
1069
- callback: string;
1070
- logout: string;
1071
- token: string;
1072
- refresh: string;
1073
- userinfo: string;
1074
- };
1075
- //#endregion
1076
- //#region src/server-auth/schemas/tokenResponseSchema.d.ts
1077
- declare const tokenResponseSchema: alepha304.TObject<{
1078
- provider: alepha304.TString;
1079
- access_token: alepha304.TString;
1080
- issued_at: alepha304.TNumber;
1081
- expires_in: alepha304.TOptional<alepha304.TNumber>;
1082
- refresh_token: alepha304.TOptional<alepha304.TString>;
1083
- refresh_token_expires_in: alepha304.TOptional<alepha304.TNumber>;
1084
- refresh_expires_in: alepha304.TOptional<alepha304.TNumber>;
1085
- id_token: alepha304.TOptional<alepha304.TString>;
1086
- scope: alepha304.TOptional<alepha304.TString>;
1087
- user: alepha304.TObject<{
1088
- id: alepha304.TString;
1089
- name: alepha304.TOptional<alepha304.TString>;
1090
- email: alepha304.TOptional<alepha304.TString>;
1091
- username: alepha304.TOptional<alepha304.TString>;
1092
- picture: alepha304.TOptional<alepha304.TString>;
1093
- sessionId: alepha304.TOptional<alepha304.TString>;
1094
- organizations: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
1095
- roles: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
1096
- }>;
1097
- api: alepha304.TObject<{
1098
- prefix: alepha304.TOptional<alepha304.TString>;
1099
- links: alepha304.TArray<alepha304.TObject<{
1100
- name: alepha304.TString;
1101
- group: alepha304.TOptional<alepha304.TString>;
1102
- path: alepha304.TString;
1103
- method: alepha304.TOptional<alepha304.TString>;
1104
- requestBodyType: alepha304.TOptional<alepha304.TString>;
1105
- service: alepha304.TOptional<alepha304.TString>;
1106
- }>>;
1107
- }>;
1108
- }>;
1109
- type TokenResponse = Static<typeof tokenResponseSchema>;
1110
- //#endregion
1111
- //#region src/server-auth/schemas/userinfoResponseSchema.d.ts
1112
- declare const userinfoResponseSchema: alepha304.TObject<{
1113
- user: alepha304.TOptional<alepha304.TObject<{
1114
- id: alepha304.TString;
1115
- name: alepha304.TOptional<alepha304.TString>;
1116
- email: alepha304.TOptional<alepha304.TString>;
1117
- username: alepha304.TOptional<alepha304.TString>;
1118
- picture: alepha304.TOptional<alepha304.TString>;
1119
- sessionId: alepha304.TOptional<alepha304.TString>;
1120
- organizations: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
1121
- roles: alepha304.TOptional<alepha304.TArray<alepha304.TString>>;
1122
- }>>;
1123
- api: alepha304.TObject<{
1124
- prefix: alepha304.TOptional<alepha304.TString>;
1125
- links: alepha304.TArray<alepha304.TObject<{
1126
- name: alepha304.TString;
1127
- group: alepha304.TOptional<alepha304.TString>;
1128
- path: alepha304.TString;
1129
- method: alepha304.TOptional<alepha304.TString>;
1130
- requestBodyType: alepha304.TOptional<alepha304.TString>;
1131
- service: alepha304.TOptional<alepha304.TString>;
1132
- }>>;
1133
- }>;
1134
- }>;
1135
- type UserinfoResponse = Static<typeof userinfoResponseSchema>;
1136
- //#endregion
1137
- //#region src/server-auth/index.d.ts
1138
- declare module "alepha" {
1139
- interface State {
1140
- /**
1141
- * The authenticated user account attached to the server request state.
1142
- *
1143
- * @internal
1144
- */
1145
- "alepha.server.request.user"?: UserAccount;
1146
- }
1147
- }
1148
- /**
1149
- * Allow authentication services for server applications.
1150
- * It provides login and logout functionalities.
1151
- *
1152
- * There are multiple authentication providers available (e.g., Google, GitHub).
1153
- * You can also delegate authentication to your own OIDC/OAuth2, for example using Keycloak or Auth0.
1154
- *
1155
- * It's cookie-based and SSR friendly.
1156
- *
1157
- * @see {@link $auth}
1158
- * @see {@link ServerAuthProvider}
1159
- * @module alepha.server.auth
1160
- */
1161
- declare const AlephaServerAuth: alepha304.Service<alepha304.Module>;
1162
- //#endregion
1163
- export { $auth, $authCredentials, $authGithub, $authGoogle, AccessToken, AlephaServerAuth, AuthDescriptor, AuthDescriptorOptions, AuthExternal, AuthInternal, AuthenticationProvider, Credentials, CredentialsFn, CredentialsOptions, LinkAccountFn, LinkAccountOptions, OAuth2Options, OAuth2Profile, OidcOptions, ServerAuthProvider, TokenResponse, Tokens, UserinfoResponse, WithLinkFn, WithLoginFn, alephaServerAuthRoutes, authenticationProviderSchema, tokenResponseSchema, tokensSchema, userinfoResponseSchema };
1164
- //# sourceMappingURL=index.d.cts.map