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,829 +0,0 @@
1
- import * as alepha160 from "alepha";
2
- import { Alepha, FileLike, Static, TNull, TObject, TOptional, TSchema, TUnion } from "alepha";
3
- import { DateTime, DateTimeProvider, DurationLike } from "alepha/datetime";
4
- import { UserAccount, UserAccountToken } from "alepha/security";
5
- import * as alepha_orm64 from "alepha/orm";
6
- import { Page } from "alepha/orm";
7
- import * as alepha_server0 from "alepha/server";
8
- import { FetchOptions, Ok } from "alepha/server";
9
- import * as alepha_logger0 from "alepha/logger";
10
- import { BucketDescriptor } from "alepha/bucket";
11
- import { BuildExtraConfigColumns, SQL } from "drizzle-orm";
12
- import { PgColumnBuilderBase, PgSequenceOptions, PgTableExtraConfigValue, UpdateDeleteAction } from "drizzle-orm/pg-core";
13
- import "alepha/retry";
14
- import "alepha/lock";
15
-
16
- //#region src/api-files/entities/files.d.ts
17
- declare const files: alepha_orm64.EntityDescriptor<alepha160.TObject<{
18
- id: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_PRIMARY_KEY>, typeof alepha_orm64.PG_DEFAULT>;
19
- version: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TInteger, typeof alepha_orm64.PG_VERSION>, typeof alepha_orm64.PG_DEFAULT>;
20
- createdAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_CREATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
21
- updatedAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_UPDATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
22
- blobId: alepha160.TString;
23
- creator: alepha160.TOptional<alepha160.TString>;
24
- creatorRealm: alepha160.TOptional<alepha160.TString>;
25
- creatorName: alepha160.TOptional<alepha160.TString>;
26
- bucket: alepha160.TString;
27
- expirationDate: alepha160.TOptional<alepha160.TString>;
28
- name: alepha160.TString;
29
- size: alepha160.TNumber;
30
- mimeType: alepha160.TString;
31
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
32
- checksum: alepha160.TOptional<alepha160.TString>;
33
- }>>;
34
- type FileEntity = Static<typeof files.schema>;
35
- //#endregion
36
- //#region src/api-files/schemas/fileQuerySchema.d.ts
37
- declare const fileQuerySchema: alepha160.TObject<{
38
- page: alepha160.TOptional<alepha160.TInteger>;
39
- size: alepha160.TOptional<alepha160.TInteger>;
40
- sort: alepha160.TOptional<alepha160.TString>;
41
- bucket: alepha160.TOptional<alepha160.TString>;
42
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
43
- name: alepha160.TOptional<alepha160.TString>;
44
- mimeType: alepha160.TOptional<alepha160.TString>;
45
- creator: alepha160.TOptional<alepha160.TString>;
46
- createdAfter: alepha160.TOptional<alepha160.TString>;
47
- createdBefore: alepha160.TOptional<alepha160.TString>;
48
- }>;
49
- type FileQuery = Static<typeof fileQuerySchema>;
50
- //#endregion
51
- //#region src/orm/schemas/insertSchema.d.ts
52
- /**
53
- * Transforms a TObject schema for insert operations.
54
- * All default properties at the root level are made optional.
55
- *
56
- * @example
57
- * Before: { name: string; age: number(default=0); }
58
- * After: { name: string; age?: number; }
59
- */
60
- type TObjectInsert<T extends TObject> = TObject<{ [K in keyof T["properties"]]: T["properties"][K] extends {
61
- [PG_DEFAULT]: any;
62
- } | {
63
- "~optional": true;
64
- } ? TOptional<T["properties"][K]> : T["properties"][K] }>;
65
- //#endregion
66
- //#region src/orm/schemas/updateSchema.d.ts
67
- /**
68
- * Transforms a TObject schema for update operations.
69
- * All optional properties at the root level are made nullable (i.e., `T | null`).
70
- * This allows an API endpoint to explicitly accept `null` to clear an optional field in the database.
71
- *
72
- * @example
73
- * Before: { name?: string; age: number; }
74
- * After: { name?: string | null; age: number; }
75
- */
76
- type TObjectUpdate<T extends TObject> = TObject<{ [K in keyof T["properties"]]: T["properties"][K] extends TOptional<infer U> ? TOptional<TUnion<[U, TNull]>> : T["properties"][K] }>;
77
- //#endregion
78
- //#region src/orm/descriptors/$entity.d.ts
79
- interface EntityDescriptorOptions<T extends TObject, Keys = keyof Static<T>> {
80
- /**
81
- * The database table name that will be created for this entity.
82
- * If not provided, name will be inferred from the $repository variable name.
83
- */
84
- name: string;
85
- /**
86
- * TypeBox schema defining the table structure and column types.
87
- */
88
- schema: T;
89
- /**
90
- * Database indexes to create for query optimization.
91
- */
92
- indexes?: (Keys | {
93
- /**
94
- * Single column to index.
95
- */
96
- column: Keys;
97
- /**
98
- * Whether this should be a unique index (enforces uniqueness constraint).
99
- */
100
- unique?: boolean;
101
- /**
102
- * Custom name for the index. If not provided, generates name automatically.
103
- */
104
- name?: string;
105
- } | {
106
- /**
107
- * Multiple columns for composite index (order matters for query optimization).
108
- */
109
- columns: Keys[];
110
- /**
111
- * Whether this should be a unique index (enforces uniqueness constraint).
112
- */
113
- unique?: boolean;
114
- /**
115
- * Custom name for the index. If not provided, generates name automatically.
116
- */
117
- name?: string;
118
- })[];
119
- /**
120
- * Foreign key constraints to maintain referential integrity.
121
- */
122
- foreignKeys?: Array<{
123
- /**
124
- * Optional name for the foreign key constraint.
125
- */
126
- name?: string;
127
- /**
128
- * Local columns that reference the foreign table.
129
- */
130
- columns: Array<keyof Static<T>>;
131
- /**
132
- * Referenced columns in the foreign table.
133
- * Must be EntityColumn references from other entities.
134
- */
135
- foreignColumns: Array<() => EntityColumn<any>>;
136
- }>;
137
- /**
138
- * Additional table constraints for data validation.
139
- *
140
- * Constraints enforce business rules at the database level, providing
141
- * an additional layer of data integrity beyond application validation.
142
- *
143
- * **Constraint Types**:
144
- * - **Unique constraints**: Prevent duplicate values across columns
145
- * - **Check constraints**: Enforce custom validation rules with SQL expressions
146
- *
147
- * @example
148
- * ```ts
149
- * constraints: [
150
- * {
151
- * name: "unique_user_email",
152
- * columns: ["email"],
153
- * unique: true
154
- * },
155
- * {
156
- * name: "valid_age_range",
157
- * columns: ["age"],
158
- * check: sql`age >= 0 AND age <= 150`
159
- * },
160
- * {
161
- * name: "unique_user_username_per_tenant",
162
- * columns: ["tenantId", "username"],
163
- * unique: true
164
- * }
165
- * ]
166
- * ```
167
- */
168
- constraints?: Array<{
169
- /**
170
- * Columns involved in this constraint.
171
- */
172
- columns: Array<keyof Static<T>>;
173
- /**
174
- * Optional name for the constraint.
175
- */
176
- name?: string;
177
- /**
178
- * Whether this is a unique constraint.
179
- */
180
- unique?: boolean | {};
181
- /**
182
- * SQL expression for check constraint validation.
183
- */
184
- check?: SQL;
185
- }>;
186
- /**
187
- * Advanced Drizzle ORM configuration for complex table setups.
188
- */
189
- config?: (self: BuildExtraConfigColumns<string, FromSchema<T>, "pg">) => PgTableExtraConfigValue[];
190
- }
191
- declare class EntityDescriptor<T extends TObject = TObject> {
192
- readonly options: EntityDescriptorOptions<T>;
193
- constructor(options: EntityDescriptorOptions<T>);
194
- alias(alias: string): this;
195
- get cols(): EntityColumns<T>;
196
- get name(): string;
197
- get schema(): T;
198
- get insertSchema(): TObjectInsert<T>;
199
- get updateSchema(): TObjectUpdate<T>;
200
- }
201
- /**
202
- * Convert a schema to columns.
203
- */
204
- type FromSchema<T extends TObject> = { [key in keyof T["properties"]]: PgColumnBuilderBase };
205
- type EntityColumn<T extends TObject> = {
206
- name: string;
207
- entity: EntityDescriptor<T>;
208
- };
209
- type EntityColumns<T extends TObject> = { [key in keyof T["properties"]]: EntityColumn<T> };
210
- //#endregion
211
- //#region src/orm/constants/PG_SYMBOLS.d.ts
212
- declare const PG_DEFAULT: unique symbol;
213
- declare const PG_PRIMARY_KEY: unique symbol;
214
- declare const PG_CREATED_AT: unique symbol;
215
- declare const PG_UPDATED_AT: unique symbol;
216
- declare const PG_DELETED_AT: unique symbol;
217
- declare const PG_VERSION: unique symbol;
218
- declare const PG_IDENTITY: unique symbol;
219
- declare const PG_ENUM: unique symbol;
220
- declare const PG_REF: unique symbol;
221
- /**
222
- * @deprecated Use `PG_IDENTITY` instead.
223
- */
224
- declare const PG_SERIAL: unique symbol;
225
- type PgSymbols = {
226
- [PG_DEFAULT]: {};
227
- [PG_PRIMARY_KEY]: {};
228
- [PG_CREATED_AT]: {};
229
- [PG_UPDATED_AT]: {};
230
- [PG_DELETED_AT]: {};
231
- [PG_VERSION]: {};
232
- [PG_IDENTITY]: PgIdentityOptions;
233
- [PG_REF]: PgRefOptions;
234
- [PG_ENUM]: PgEnumOptions;
235
- /**
236
- * @deprecated Use `PG_IDENTITY` instead.
237
- */
238
- [PG_SERIAL]: {};
239
- };
240
- type PgSymbolKeys = keyof PgSymbols;
241
- type PgIdentityOptions = {
242
- mode: "always" | "byDefault";
243
- } & PgSequenceOptions & {
244
- name?: string;
245
- };
246
- interface PgEnumOptions {
247
- name?: string;
248
- description?: string;
249
- }
250
- interface PgRefOptions {
251
- ref: () => {
252
- name: string;
253
- entity: EntityDescriptor;
254
- };
255
- actions?: {
256
- onUpdate?: UpdateDeleteAction;
257
- onDelete?: UpdateDeleteAction;
258
- };
259
- }
260
- //#endregion
261
- //#region src/orm/helpers/pgAttr.d.ts
262
- /**
263
- * Type representation.
264
- */
265
- type PgAttr<T extends TSchema, TAttr extends PgSymbolKeys> = T & { [K in TAttr]: PgSymbols[K] };
266
- //#endregion
267
- //#region src/orm/providers/drivers/NodePostgresProvider.d.ts
268
- declare module "alepha" {
269
- interface Env extends Partial<Static<typeof envSchema>> {}
270
- }
271
- declare const envSchema: alepha160.TObject<{
272
- /**
273
- * Main configuration for database connection.
274
- * Accept a string in the format of a Postgres connection URL.
275
- * Example: postgres://user:password@localhost:5432/database
276
- * or
277
- * Example: postgres://user:password@localhost:5432/database?sslmode=require
278
- */
279
- DATABASE_URL: alepha160.TOptional<alepha160.TString>;
280
- /**
281
- * In addition to the DATABASE_URL, you can specify the postgres schema name.
282
- *
283
- * It will monkey patch drizzle tables.
284
- */
285
- POSTGRES_SCHEMA: alepha160.TOptional<alepha160.TString>;
286
- }>;
287
- //#endregion
288
- //#region src/orm/providers/drivers/NodeSqliteProvider.d.ts
289
- /**
290
- * Configuration options for the Node.js SQLite database provider.
291
- */
292
- declare const nodeSqliteOptions: alepha160.Atom<alepha160.TObject<{
293
- path: alepha160.TOptional<alepha160.TString>;
294
- }>, "alepha.postgres.node-sqlite.options">;
295
- type NodeSqliteProviderOptions = Static<typeof nodeSqliteOptions.schema>;
296
- declare module "alepha" {
297
- interface State {
298
- [nodeSqliteOptions.key]: NodeSqliteProviderOptions;
299
- }
300
- }
301
- /**
302
- * Add a fake support for SQLite in Node.js based on Postgres interfaces.
303
- *
304
- * This is NOT a real SQLite provider, it's a workaround to use SQLite with Drizzle ORM.
305
- * This is NOT recommended for production use.
306
- */
307
- //#endregion
308
- //#region src/orm/index.d.ts
309
- declare module "alepha" {
310
- interface Hooks {
311
- /**
312
- * Fires before creating an entity in the repository.
313
- */
314
- "repository:create:before": {
315
- tableName: string;
316
- data: any;
317
- };
318
- /**
319
- * Fires after creating an entity in the repository.
320
- */
321
- "repository:create:after": {
322
- tableName: string;
323
- data: any;
324
- entity: any;
325
- };
326
- /**
327
- * Fires before updating entities in the repository.
328
- */
329
- "repository:update:before": {
330
- tableName: string;
331
- where: any;
332
- data: any;
333
- };
334
- /**
335
- * Fires after updating entities in the repository.
336
- */
337
- "repository:update:after": {
338
- tableName: string;
339
- where: any;
340
- data: any;
341
- entities: any[];
342
- };
343
- /**
344
- * Fires before deleting entities from the repository.
345
- */
346
- "repository:delete:before": {
347
- tableName: string;
348
- where: any;
349
- };
350
- /**
351
- * Fires after deleting entities from the repository.
352
- */
353
- "repository:delete:after": {
354
- tableName: string;
355
- where: any;
356
- ids: Array<string | number>;
357
- };
358
- /**
359
- * Fires before reading entities from the repository.
360
- */
361
- "repository:read:before": {
362
- tableName: string;
363
- query: any;
364
- };
365
- /**
366
- * Fires after reading entities from the repository.
367
- */
368
- "repository:read:after": {
369
- tableName: string;
370
- query: any;
371
- entities: any[];
372
- };
373
- }
374
- }
375
- //#endregion
376
- //#region src/api-files/schemas/fileResourceSchema.d.ts
377
- declare const fileResourceSchema: alepha160.TObject<{
378
- id: PgAttr<PgAttr<alepha160.TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
379
- version: PgAttr<PgAttr<alepha160.TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
380
- createdAt: PgAttr<PgAttr<alepha160.TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
381
- updatedAt: PgAttr<PgAttr<alepha160.TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
382
- blobId: alepha160.TString;
383
- creator: alepha160.TOptional<alepha160.TString>;
384
- creatorRealm: alepha160.TOptional<alepha160.TString>;
385
- creatorName: alepha160.TOptional<alepha160.TString>;
386
- bucket: alepha160.TString;
387
- expirationDate: alepha160.TOptional<alepha160.TString>;
388
- name: alepha160.TString;
389
- size: alepha160.TNumber;
390
- mimeType: alepha160.TString;
391
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
392
- checksum: alepha160.TOptional<alepha160.TString>;
393
- }>;
394
- type FileResource = Static<typeof fileResourceSchema>;
395
- //#endregion
396
- //#region src/api-files/schemas/storageStatsSchema.d.ts
397
- declare const bucketStatsSchema: alepha160.TObject<{
398
- bucket: alepha160.TString;
399
- totalSize: alepha160.TNumber;
400
- fileCount: alepha160.TNumber;
401
- }>;
402
- declare const mimeTypeStatsSchema: alepha160.TObject<{
403
- mimeType: alepha160.TString;
404
- fileCount: alepha160.TNumber;
405
- }>;
406
- declare const storageStatsSchema: alepha160.TObject<{
407
- totalSize: alepha160.TNumber;
408
- totalFiles: alepha160.TNumber;
409
- byBucket: alepha160.TArray<alepha160.TObject<{
410
- bucket: alepha160.TString;
411
- totalSize: alepha160.TNumber;
412
- fileCount: alepha160.TNumber;
413
- }>>;
414
- byMimeType: alepha160.TArray<alepha160.TObject<{
415
- mimeType: alepha160.TString;
416
- fileCount: alepha160.TNumber;
417
- }>>;
418
- }>;
419
- type BucketStats = Static<typeof bucketStatsSchema>;
420
- type MimeTypeStats = Static<typeof mimeTypeStatsSchema>;
421
- type StorageStats = Static<typeof storageStatsSchema>;
422
- //#endregion
423
- //#region src/api-files/services/FileService.d.ts
424
- declare class FileService {
425
- protected readonly alepha: Alepha;
426
- protected readonly log: alepha_logger0.Logger;
427
- protected readonly fileRepository: alepha_orm64.Repository<alepha160.TObject<{
428
- id: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_PRIMARY_KEY>, typeof alepha_orm64.PG_DEFAULT>;
429
- version: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TInteger, typeof alepha_orm64.PG_VERSION>, typeof alepha_orm64.PG_DEFAULT>;
430
- createdAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_CREATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
431
- updatedAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_UPDATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
432
- blobId: alepha160.TString;
433
- creator: alepha160.TOptional<alepha160.TString>;
434
- creatorRealm: alepha160.TOptional<alepha160.TString>;
435
- creatorName: alepha160.TOptional<alepha160.TString>;
436
- bucket: alepha160.TString;
437
- expirationDate: alepha160.TOptional<alepha160.TString>;
438
- name: alepha160.TString;
439
- size: alepha160.TNumber;
440
- mimeType: alepha160.TString;
441
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
442
- checksum: alepha160.TOptional<alepha160.TString>;
443
- }>>;
444
- protected readonly dateTimeProvider: DateTimeProvider;
445
- protected readonly defaultBucket: BucketDescriptor;
446
- protected onUploadFile: alepha160.HookDescriptor<"bucket:file:uploaded">;
447
- protected onDeleteBucketFile: alepha160.HookDescriptor<"bucket:file:deleted">;
448
- /**
449
- * Calculates SHA-256 checksum of a file.
450
- *
451
- * @param file - The file to calculate checksum for
452
- * @returns Hexadecimal string representation of the SHA-256 hash
453
- * @protected
454
- */
455
- protected calculateChecksum(file: FileLike): Promise<string>;
456
- /**
457
- * Gets a bucket descriptor by name.
458
- *
459
- * @param bucketName - The name of the bucket to retrieve (defaults to "default")
460
- * @returns The bucket descriptor
461
- * @throws {NotFoundError} If the bucket is not found
462
- */
463
- bucket(bucketName?: string): BucketDescriptor;
464
- /**
465
- * Finds files matching the given query criteria with pagination support.
466
- * Supports filtering by bucket, tags, name, mimeType, creator, and date range.
467
- *
468
- * @param q - Query parameters including bucket, tags, name, mimeType, creator, date range, pagination, and sorting
469
- * @returns Paginated list of file entities
470
- */
471
- findFiles(q?: FileQuery): Promise<Page<FileEntity>>;
472
- /**
473
- * Finds files that have expired based on their expiration date.
474
- * Limited to 1000 files per call to prevent memory issues.
475
- *
476
- * @returns Array of expired file entities
477
- */
478
- findExpiredFiles(): Promise<FileEntity[]>;
479
- /**
480
- * Calculates an expiration date based on a TTL (time to live) duration.
481
- *
482
- * @param ttl - Duration like "1 day", "2 hours", etc.
483
- * @returns DateTime representation of the expiration date, or undefined if no TTL provided
484
- * @protected
485
- */
486
- protected getExpirationDate(ttl?: DurationLike): string | undefined;
487
- /**
488
- * Uploads a file to a bucket and creates a database record with metadata.
489
- * Automatically calculates and stores the file checksum (SHA-256).
490
- *
491
- * @param file - The file to upload
492
- * @param options - Upload options including bucket, expiration, user, and tags
493
- * @param options.bucket - Target bucket name (defaults to "default")
494
- * @param options.expirationDate - When the file should expire
495
- * @param options.user - User performing the upload (for audit trail)
496
- * @param options.tags - Tags to associate with the file
497
- * @returns The created file entity with all metadata
498
- * @throws {NotFoundError} If the specified bucket doesn't exist
499
- */
500
- uploadFile(file: FileLike, options?: {
501
- expirationDate?: string | DateTime;
502
- bucket?: string;
503
- user?: UserAccountToken;
504
- tags?: string[];
505
- }): Promise<FileEntity>;
506
- /**
507
- * Streams a file from storage by its database ID.
508
- *
509
- * @param id - The database ID (UUID) of the file to stream
510
- * @returns The file object ready for streaming/downloading
511
- * @throws {NotFoundError} If the file doesn't exist in the database
512
- * @throws {FileNotFoundError} If the file exists in database but not in storage
513
- */
514
- streamFile(id: string): Promise<FileLike>;
515
- /**
516
- * Updates file metadata (name, tags, expiration date).
517
- * Does not modify the actual file content in storage.
518
- *
519
- * @param id - The database ID (UUID) of the file to update
520
- * @param data - Partial file data to update
521
- * @param data.name - New file name
522
- * @param data.tags - New tags array
523
- * @param data.expirationDate - New expiration date
524
- * @returns The updated file entity
525
- * @throws {NotFoundError} If the file doesn't exist in the database
526
- */
527
- updateFile(id: string, data: {
528
- name?: string;
529
- tags?: string[];
530
- expirationDate?: DateTime | string;
531
- }): Promise<FileEntity>;
532
- /**
533
- * Deletes a file from both storage and database.
534
- * Handles cases where file is already deleted from storage gracefully.
535
- * Always ensures database record is removed even if storage deletion fails.
536
- *
537
- * @param id - The database ID (UUID) of the file to delete
538
- * @returns Success response with the deleted file ID
539
- * @throws {NotFoundError} If the file doesn't exist in the database
540
- */
541
- deleteFile(id: string): Promise<Ok>;
542
- /**
543
- * Retrieves a file entity by its ID.
544
- * If already an entity object, returns it as-is (convenience method).
545
- *
546
- * @param id - Either a UUID string or an existing FileEntity object
547
- * @returns The file entity
548
- * @throws {NotFoundError} If the file doesn't exist in the database
549
- */
550
- getFileById(id: string | FileEntity): Promise<FileEntity>;
551
- /**
552
- * Gets storage statistics including total size, file count, and breakdowns by bucket and MIME type.
553
- *
554
- * @returns Storage statistics with aggregated data
555
- */
556
- getStorageStats(): Promise<StorageStats>;
557
- /**
558
- * Converts a file entity to a file resource (API response format).
559
- * Currently a pass-through, but allows for future transformation logic.
560
- *
561
- * @param entity - The file entity to convert
562
- * @returns The file resource for API responses
563
- */
564
- entityToResource(entity: FileEntity): FileResource;
565
- }
566
- //#endregion
567
- //#region src/api-files/controllers/FileController.d.ts
568
- /**
569
- * REST API controller for file management operations.
570
- * Provides endpoints for uploading, downloading, listing, and deleting files.
571
- */
572
- declare class FileController {
573
- protected readonly url = "/files";
574
- protected readonly group = "files";
575
- protected readonly fileService: FileService;
576
- /**
577
- * GET /files - Lists files with optional filtering and pagination.
578
- * Supports filtering by bucket and tags.
579
- */
580
- readonly findFiles: alepha_server0.ActionDescriptorFn<{
581
- query: alepha160.TObject<{
582
- page: alepha160.TOptional<alepha160.TInteger>;
583
- size: alepha160.TOptional<alepha160.TInteger>;
584
- sort: alepha160.TOptional<alepha160.TString>;
585
- bucket: alepha160.TOptional<alepha160.TString>;
586
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
587
- name: alepha160.TOptional<alepha160.TString>;
588
- mimeType: alepha160.TOptional<alepha160.TString>;
589
- creator: alepha160.TOptional<alepha160.TString>;
590
- createdAfter: alepha160.TOptional<alepha160.TString>;
591
- createdBefore: alepha160.TOptional<alepha160.TString>;
592
- }>;
593
- response: alepha160.TPage<alepha160.TObject<{
594
- id: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_PRIMARY_KEY>, typeof alepha_orm64.PG_DEFAULT>;
595
- version: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TInteger, typeof alepha_orm64.PG_VERSION>, typeof alepha_orm64.PG_DEFAULT>;
596
- createdAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_CREATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
597
- updatedAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_UPDATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
598
- blobId: alepha160.TString;
599
- creator: alepha160.TOptional<alepha160.TString>;
600
- creatorRealm: alepha160.TOptional<alepha160.TString>;
601
- creatorName: alepha160.TOptional<alepha160.TString>;
602
- bucket: alepha160.TString;
603
- expirationDate: alepha160.TOptional<alepha160.TString>;
604
- name: alepha160.TString;
605
- size: alepha160.TNumber;
606
- mimeType: alepha160.TString;
607
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
608
- checksum: alepha160.TOptional<alepha160.TString>;
609
- }>>;
610
- }>;
611
- /**
612
- * DELETE /files/:id - Deletes a file from both storage and database.
613
- * Removes the file from the bucket and cleans up the database record.
614
- */
615
- readonly deleteFile: alepha_server0.ActionDescriptorFn<{
616
- params: alepha160.TObject<{
617
- id: alepha160.TString;
618
- }>;
619
- response: alepha160.TObject<{
620
- ok: alepha160.TBoolean;
621
- id: alepha160.TOptional<alepha160.TUnion<[alepha160.TString, alepha160.TInteger]>>;
622
- count: alepha160.TOptional<alepha160.TNumber>;
623
- }>;
624
- }>;
625
- /**
626
- * POST /files - Uploads a new file to storage.
627
- * Creates a database record with metadata and calculates checksum.
628
- * Optionally specify bucket and expiration date.
629
- */
630
- readonly uploadFile: alepha_server0.ActionDescriptorFn<{
631
- body: alepha160.TObject<{
632
- file: alepha160.TFile;
633
- }>;
634
- query: alepha160.TObject<{
635
- expirationDate: alepha160.TOptional<alepha160.TString>;
636
- bucket: alepha160.TOptional<alepha160.TString>;
637
- }>;
638
- response: alepha160.TObject<{
639
- id: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_PRIMARY_KEY>, typeof alepha_orm64.PG_DEFAULT>;
640
- version: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TInteger, typeof alepha_orm64.PG_VERSION>, typeof alepha_orm64.PG_DEFAULT>;
641
- createdAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_CREATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
642
- updatedAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_UPDATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
643
- blobId: alepha160.TString;
644
- creator: alepha160.TOptional<alepha160.TString>;
645
- creatorRealm: alepha160.TOptional<alepha160.TString>;
646
- creatorName: alepha160.TOptional<alepha160.TString>;
647
- bucket: alepha160.TString;
648
- expirationDate: alepha160.TOptional<alepha160.TString>;
649
- name: alepha160.TString;
650
- size: alepha160.TNumber;
651
- mimeType: alepha160.TString;
652
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
653
- checksum: alepha160.TOptional<alepha160.TString>;
654
- }>;
655
- }>;
656
- /**
657
- * PATCH /files/:id - Updates file metadata.
658
- * Allows updating name, tags, and expiration date without modifying file content.
659
- */
660
- readonly updateFile: alepha_server0.ActionDescriptorFn<{
661
- params: alepha160.TObject<{
662
- id: alepha160.TString;
663
- }>;
664
- body: alepha160.TObject<{
665
- name: alepha160.TOptional<alepha160.TString>;
666
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
667
- expirationDate: alepha160.TOptional<alepha160.TString>;
668
- }>;
669
- response: alepha160.TObject<{
670
- id: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_PRIMARY_KEY>, typeof alepha_orm64.PG_DEFAULT>;
671
- version: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TInteger, typeof alepha_orm64.PG_VERSION>, typeof alepha_orm64.PG_DEFAULT>;
672
- createdAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_CREATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
673
- updatedAt: alepha_orm64.PgAttr<alepha_orm64.PgAttr<alepha160.TString, typeof alepha_orm64.PG_UPDATED_AT>, typeof alepha_orm64.PG_DEFAULT>;
674
- blobId: alepha160.TString;
675
- creator: alepha160.TOptional<alepha160.TString>;
676
- creatorRealm: alepha160.TOptional<alepha160.TString>;
677
- creatorName: alepha160.TOptional<alepha160.TString>;
678
- bucket: alepha160.TString;
679
- expirationDate: alepha160.TOptional<alepha160.TString>;
680
- name: alepha160.TString;
681
- size: alepha160.TNumber;
682
- mimeType: alepha160.TString;
683
- tags: alepha160.TOptional<alepha160.TArray<alepha160.TString>>;
684
- checksum: alepha160.TOptional<alepha160.TString>;
685
- }>;
686
- }>;
687
- /**
688
- * GET /files/:id - Streams/downloads a file by its ID.
689
- * Returns the file content with appropriate Content-Type header.
690
- * Cached with ETag support for 1 year (immutable).
691
- */
692
- readonly streamFile: alepha_server0.ActionDescriptorFn<{
693
- params: alepha160.TObject<{
694
- id: alepha160.TString;
695
- }>;
696
- response: alepha160.TFile;
697
- }>;
698
- }
699
- //#endregion
700
- //#region src/server-security/providers/ServerBasicAuthProvider.d.ts
701
- interface BasicAuthOptions {
702
- username: string;
703
- password: string;
704
- }
705
- //#endregion
706
- //#region src/server-security/providers/ServerSecurityProvider.d.ts
707
- type ServerRouteSecure = {
708
- realm?: string;
709
- basic?: BasicAuthOptions;
710
- };
711
- //#endregion
712
- //#region src/server-security/index.d.ts
713
- declare module "alepha" {
714
- interface State {
715
- /**
716
- * Real (or fake) user account, used for internal actions.
717
- *
718
- * If you define this, you assume that all actions are executed by this user by default.
719
- * > To force a different user, you need to pass it explicitly in the options.
720
- */
721
- "alepha.server.security.system.user"?: UserAccountToken;
722
- /**
723
- * The authenticated user account attached to the server request state.
724
- *
725
- * @internal
726
- */
727
- "alepha.server.request.user"?: UserAccount;
728
- }
729
- }
730
- declare module "alepha/server" {
731
- interface ServerRequest<TConfig> {
732
- user?: UserAccountToken;
733
- }
734
- interface ServerActionRequest<TConfig> {
735
- user: UserAccountToken;
736
- }
737
- interface ServerRoute {
738
- /**
739
- * If true, the route will be protected by the security provider.
740
- * All actions are secure by default, but you can disable it for specific actions.
741
- */
742
- secure?: boolean | ServerRouteSecure;
743
- }
744
- interface ClientRequestOptions extends FetchOptions {
745
- /**
746
- * Forward user from the previous request.
747
- * If "system", use system user. @see {ServerSecurityProvider.localSystemUser}
748
- * If "context", use the user from the current context (e.g. request).
749
- *
750
- * @default "system" if provided, else "context" if available.
751
- */
752
- user?: UserAccountToken | "system" | "context";
753
- }
754
- }
755
- /**
756
- * Plugin for Alepha Server that provides security features. Based on the Alepha Security module.
757
- *
758
- * By default, all $action will be guarded by a permission check.
759
- *
760
- * @see {@link ServerSecurityProvider}
761
- * @module alepha.server.security
762
- */
763
- //#endregion
764
- //#region src/api-files/controllers/StorageStatsController.d.ts
765
- /**
766
- * REST API controller for storage analytics and statistics.
767
- * Provides endpoints for viewing storage usage metrics.
768
- */
769
- declare class StorageStatsController {
770
- protected readonly url = "/files/stats";
771
- protected readonly group = "files";
772
- protected readonly fileService: FileService;
773
- /**
774
- * GET /files/stats - Gets storage statistics.
775
- * Returns aggregated data including total size, file count,
776
- * and breakdowns by bucket and MIME type.
777
- */
778
- readonly getStats: alepha_server0.ActionDescriptorFn<{
779
- response: alepha160.TObject<{
780
- totalSize: alepha160.TNumber;
781
- totalFiles: alepha160.TNumber;
782
- byBucket: alepha160.TArray<alepha160.TObject<{
783
- bucket: alepha160.TString;
784
- totalSize: alepha160.TNumber;
785
- fileCount: alepha160.TNumber;
786
- }>>;
787
- byMimeType: alepha160.TArray<alepha160.TObject<{
788
- mimeType: alepha160.TString;
789
- fileCount: alepha160.TNumber;
790
- }>>;
791
- }>;
792
- }>;
793
- }
794
- //#endregion
795
- //#region src/api-files/index.d.ts
796
- declare module "alepha/bucket" {
797
- interface BucketFileOptions {
798
- /**
799
- * Time to live for the files in the bucket.
800
- */
801
- ttl?: DurationLike;
802
- /**
803
- * Tags for the bucket.
804
- */
805
- tags?: string[];
806
- /**
807
- * User performing the operation.
808
- */
809
- user?: UserAccountToken;
810
- /**
811
- * Whether to persist the file metadata in the database.
812
- *
813
- * @default true
814
- */
815
- persist?: boolean;
816
- }
817
- }
818
- /**
819
- * Provides file management API endpoints for Alepha applications.
820
- *
821
- * This module includes file upload, download, storage management,
822
- * and file metadata operations.
823
- *
824
- * @module alepha.api.files
825
- */
826
- declare const AlephaApiFiles: alepha160.Service<alepha160.Module>;
827
- //#endregion
828
- export { AlephaApiFiles, BucketStats, FileController, FileEntity, FileService, MimeTypeStats, StorageStats, StorageStatsController, bucketStatsSchema, files, mimeTypeStatsSchema, storageStatsSchema };
829
- //# sourceMappingURL=index.d.cts.map