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,140 +0,0 @@
1
- import * as alepha1 from "alepha";
2
- import { Descriptor, KIND, Static } from "alepha";
3
- import * as alepha_logger0 from "alepha/logger";
4
- import { ServerRouterProvider } from "alepha/server";
5
-
6
- //#region src/server-cors/descriptors/$cors.d.ts
7
-
8
- /**
9
- * Declares CORS configuration for specific server routes.
10
- * This descriptor provides path-based CORS configuration.
11
- *
12
- * @example
13
- * ```ts
14
- * class ApiService {
15
- * // Apply specific CORS to API routes
16
- * cors = $cors({
17
- * paths: ["/api/*"],
18
- * origin: "https://app.example.com",
19
- * credentials: true,
20
- * });
21
- * }
22
- * ```
23
- */
24
- declare const $cors: {
25
- (options: CorsDescriptorConfig): AbstractCorsDescriptor;
26
- [KIND]: typeof CorsDescriptor;
27
- };
28
- interface CorsDescriptorConfig extends Partial<CorsOptions> {
29
- /** Name identifier for this CORS config (default: property key) */
30
- name?: string;
31
- /** Path patterns to match (supports wildcards like /api/*) */
32
- paths?: string[];
33
- }
34
- interface AbstractCorsDescriptor {
35
- readonly name: string;
36
- readonly options: CorsDescriptorConfig;
37
- }
38
- declare class CorsDescriptor extends Descriptor<CorsDescriptorConfig> implements AbstractCorsDescriptor {
39
- protected readonly serverCorsProvider: ServerCorsProvider;
40
- get name(): string;
41
- protected onInit(): void;
42
- }
43
- //#endregion
44
- //#region src/server-cors/providers/ServerCorsProvider.d.ts
45
- /**
46
- * CORS configuration atom (global defaults)
47
- */
48
- declare const corsOptions: alepha1.Atom<alepha1.TObject<{
49
- origin: alepha1.TOptional<alepha1.TString>;
50
- methods: alepha1.TArray<alepha1.TString>;
51
- headers: alepha1.TArray<alepha1.TString>;
52
- credentials: alepha1.TOptional<alepha1.TBoolean>;
53
- maxAge: alepha1.TOptional<alepha1.TNumber>;
54
- }>, "alepha.server.cors.options">;
55
- type CorsOptions = Static<typeof corsOptions.schema>;
56
- declare module "alepha" {
57
- interface State {
58
- [corsOptions.key]: CorsOptions;
59
- }
60
- }
61
- declare class ServerCorsProvider {
62
- protected readonly log: alepha_logger0.Logger;
63
- protected readonly serverRouterProvider: ServerRouterProvider;
64
- protected readonly globalOptions: Readonly<{
65
- origin?: string | undefined;
66
- credentials?: boolean | undefined;
67
- maxAge?: number | undefined;
68
- methods: string[];
69
- headers: string[];
70
- }>;
71
- /**
72
- * Registered CORS configurations with their path patterns
73
- */
74
- readonly registeredConfigs: CorsDescriptorConfig[];
75
- /**
76
- * Register a CORS configuration (called by descriptors)
77
- */
78
- registerCors(config: CorsDescriptorConfig): void;
79
- protected readonly onStart: alepha1.HookDescriptor<"start">;
80
- protected readonly configure: alepha1.HookDescriptor<"configure">;
81
- protected readonly onRequest: alepha1.HookDescriptor<"server:onRequest">;
82
- /**
83
- * Build complete CORS options by merging with global defaults
84
- */
85
- protected buildCorsOptions(config: CorsDescriptorConfig): CorsOptions;
86
- /**
87
- * Apply CORS headers to the response
88
- */
89
- protected applyCorsHeaders(request: {
90
- headers: {
91
- origin?: string;
92
- };
93
- reply: {
94
- setHeader: (name: string, value: string) => void;
95
- };
96
- }, options: CorsOptions): void;
97
- isOriginAllowed(origin: string | undefined, allowed: CorsOptions["origin"]): boolean;
98
- }
99
- type ServerCorsProviderOptions = CorsOptions;
100
- //#endregion
101
- //#region src/server-cors/index.d.ts
102
- declare module "alepha/server" {
103
- interface ServerRoute {
104
- /**
105
- * Route-specific CORS configuration.
106
- * If set, overrides the global CORS options for this route.
107
- */
108
- cors?: CorsOptions;
109
- }
110
- }
111
- /**
112
- * Plugin for configuring CORS on the Alepha server.
113
- *
114
- * @example
115
- * ```ts
116
- * import { Alepha, $route } from "alepha";
117
- * import { AlephaServerCors, $cors } from "alepha/server-cors";
118
- *
119
- * class ApiService {
120
- * // Global CORS is applied via corsOptions atom
121
- *
122
- * // Path-specific CORS for API routes
123
- * apiCors = $cors({
124
- * paths: ["/api/*"],
125
- * origin: "https://app.example.com",
126
- * credentials: true,
127
- * });
128
- *
129
- * route = $route({
130
- * path: "/api/data",
131
- * method: "POST",
132
- * handler: () => ({ data: "hello" }),
133
- * });
134
- * }
135
- * ```
136
- */
137
- declare const AlephaServerCors: alepha1.Service<alepha1.Module>;
138
- //#endregion
139
- export { $cors, AbstractCorsDescriptor, AlephaServerCors, CorsDescriptor, CorsDescriptorConfig, CorsOptions, ServerCorsProvider, ServerCorsProviderOptions, corsOptions };
140
- //# sourceMappingURL=index.d.cts.map
@@ -1,62 +0,0 @@
1
- let alepha = require("alepha");
2
- let alepha_server = require("alepha/server");
3
- let alepha_datetime = require("alepha/datetime");
4
-
5
- //#region src/server-health/schemas/healthSchema.ts
6
- const healthSchema = alepha.t.object({
7
- message: alepha.t.text(),
8
- uptime: alepha.t.number(),
9
- date: alepha.t.datetime(),
10
- ready: alepha.t.boolean()
11
- });
12
-
13
- //#endregion
14
- //#region src/server-health/providers/ServerHealthProvider.ts
15
- /**
16
- * Register `/health` & `/healthz` endpoint.
17
- *
18
- * - Provides basic health information about the server.
19
- */
20
- var ServerHealthProvider = class {
21
- time = (0, alepha.$inject)(alepha_datetime.DateTimeProvider);
22
- alepha = (0, alepha.$inject)(alepha.Alepha);
23
- health = (0, alepha_server.$route)({
24
- path: "/health",
25
- schema: { response: healthSchema },
26
- silent: true,
27
- handler: () => this.healthCheck()
28
- });
29
- healthz = (0, alepha_server.$route)({
30
- path: "/healthz",
31
- schema: { response: healthSchema },
32
- silent: true,
33
- handler: () => this.healthCheck()
34
- });
35
- healthCheck() {
36
- return {
37
- message: "OK",
38
- uptime: Math.floor(process.uptime()),
39
- date: this.time.nowISOString(),
40
- ready: this.alepha.isReady()
41
- };
42
- }
43
- };
44
-
45
- //#endregion
46
- //#region src/server-health/index.ts
47
- /**
48
- * Plugin for Alepha Server that provides health-check endpoints.
49
- *
50
- * @see {@link ServerHealthProvider}
51
- * @module alepha.server.health
52
- */
53
- const AlephaServerHealth = (0, alepha.$module)({
54
- name: "alepha.server.health",
55
- services: [alepha_server.AlephaServer, ServerHealthProvider]
56
- });
57
-
58
- //#endregion
59
- exports.AlephaServerHealth = AlephaServerHealth;
60
- exports.ServerHealthProvider = ServerHealthProvider;
61
- exports.healthSchema = healthSchema;
62
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["t","DateTimeProvider","Alepha","AlephaServer"],"sources":["../../src/server-health/schemas/healthSchema.ts","../../src/server-health/providers/ServerHealthProvider.ts","../../src/server-health/index.ts"],"sourcesContent":["import { t } from \"alepha\";\n\nexport const healthSchema = t.object({\n message: t.text(),\n uptime: t.number(),\n date: t.datetime(),\n ready: t.boolean(),\n});\n","import { $inject, Alepha } from \"alepha\";\nimport { DateTimeProvider } from \"alepha/datetime\";\nimport { $route } from \"alepha/server\";\nimport { healthSchema } from \"../schemas/healthSchema.ts\";\n\n/**\n * Register `/health` & `/healthz` endpoint.\n *\n * - Provides basic health information about the server.\n */\nexport class ServerHealthProvider {\n protected readonly time: DateTimeProvider = $inject(DateTimeProvider);\n protected readonly alepha = $inject(Alepha);\n\n public readonly health = $route({\n path: \"/health\",\n schema: {\n response: healthSchema,\n },\n silent: true,\n handler: () => this.healthCheck(),\n });\n\n public readonly healthz = $route({\n path: \"/healthz\",\n schema: {\n response: healthSchema,\n },\n silent: true,\n handler: () => this.healthCheck(),\n });\n\n protected healthCheck() {\n return {\n message: \"OK\",\n uptime: Math.floor(process.uptime()),\n date: this.time.nowISOString(),\n ready: this.alepha.isReady(),\n };\n }\n}\n","import { $module } from \"alepha\";\nimport { AlephaServer } from \"alepha/server\";\nimport { ServerHealthProvider } from \"./providers/ServerHealthProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/ServerHealthProvider.ts\";\nexport * from \"./schemas/healthSchema.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Plugin for Alepha Server that provides health-check endpoints.\n *\n * @see {@link ServerHealthProvider}\n * @module alepha.server.health\n */\nexport const AlephaServerHealth = $module({\n name: \"alepha.server.health\",\n services: [AlephaServer, ServerHealthProvider],\n});\n"],"mappings":";;;;;AAEA,MAAa,eAAeA,SAAE,OAAO;CACnC,SAASA,SAAE,MAAM;CACjB,QAAQA,SAAE,QAAQ;CAClB,MAAMA,SAAE,UAAU;CAClB,OAAOA,SAAE,SAAS;CACnB,CAAC;;;;;;;;;ACGF,IAAa,uBAAb,MAAkC;CAChC,AAAmB,2BAAiCC,iCAAiB;CACrE,AAAmB,6BAAiBC,cAAO;CAE3C,AAAgB,mCAAgB;EAC9B,MAAM;EACN,QAAQ,EACN,UAAU,cACX;EACD,QAAQ;EACR,eAAe,KAAK,aAAa;EAClC,CAAC;CAEF,AAAgB,oCAAiB;EAC/B,MAAM;EACN,QAAQ,EACN,UAAU,cACX;EACD,QAAQ;EACR,eAAe,KAAK,aAAa;EAClC,CAAC;CAEF,AAAU,cAAc;AACtB,SAAO;GACL,SAAS;GACT,QAAQ,KAAK,MAAM,QAAQ,QAAQ,CAAC;GACpC,MAAM,KAAK,KAAK,cAAc;GAC9B,OAAO,KAAK,OAAO,SAAS;GAC7B;;;;;;;;;;;;ACrBL,MAAa,yCAA6B;CACxC,MAAM;CACN,UAAU,CAACC,4BAAc,qBAAqB;CAC/C,CAAC"}
@@ -1,58 +0,0 @@
1
- import * as alepha6 from "alepha";
2
- import { Alepha } from "alepha";
3
- import * as alepha_server0 from "alepha/server";
4
- import { DateTimeProvider } from "alepha/datetime";
5
-
6
- //#region src/server-health/providers/ServerHealthProvider.d.ts
7
-
8
- /**
9
- * Register `/health` & `/healthz` endpoint.
10
- *
11
- * - Provides basic health information about the server.
12
- */
13
- declare class ServerHealthProvider {
14
- protected readonly time: DateTimeProvider;
15
- protected readonly alepha: Alepha;
16
- readonly health: alepha_server0.RouteDescriptor<{
17
- response: alepha6.TObject<{
18
- message: alepha6.TString;
19
- uptime: alepha6.TNumber;
20
- date: alepha6.TString;
21
- ready: alepha6.TBoolean;
22
- }>;
23
- }>;
24
- readonly healthz: alepha_server0.RouteDescriptor<{
25
- response: alepha6.TObject<{
26
- message: alepha6.TString;
27
- uptime: alepha6.TNumber;
28
- date: alepha6.TString;
29
- ready: alepha6.TBoolean;
30
- }>;
31
- }>;
32
- protected healthCheck(): {
33
- message: string;
34
- uptime: number;
35
- date: string;
36
- ready: boolean;
37
- };
38
- }
39
- //#endregion
40
- //#region src/server-health/schemas/healthSchema.d.ts
41
- declare const healthSchema: alepha6.TObject<{
42
- message: alepha6.TString;
43
- uptime: alepha6.TNumber;
44
- date: alepha6.TString;
45
- ready: alepha6.TBoolean;
46
- }>;
47
- //#endregion
48
- //#region src/server-health/index.d.ts
49
- /**
50
- * Plugin for Alepha Server that provides health-check endpoints.
51
- *
52
- * @see {@link ServerHealthProvider}
53
- * @module alepha.server.health
54
- */
55
- declare const AlephaServerHealth: alepha6.Service<alepha6.Module>;
56
- //#endregion
57
- export { AlephaServerHealth, ServerHealthProvider, healthSchema };
58
- //# sourceMappingURL=index.d.cts.map
@@ -1,131 +0,0 @@
1
- let alepha = require("alepha");
2
- let alepha_server = require("alepha/server");
3
-
4
- //#region src/server-helmet/providers/ServerHelmetProvider.ts
5
- /**
6
- * Helmet security headers configuration atom
7
- */
8
- const helmetOptions = (0, alepha.$atom)({
9
- name: "alepha.server.helmet.options",
10
- schema: alepha.t.object({
11
- isSecure: alepha.t.optional(alepha.t.boolean()),
12
- strictTransportSecurity: alepha.t.optional(alepha.t.object({
13
- maxAge: alepha.t.optional(alepha.t.number()),
14
- includeSubDomains: alepha.t.optional(alepha.t.boolean()),
15
- preload: alepha.t.optional(alepha.t.boolean())
16
- })),
17
- xContentTypeOptions: alepha.t.optional(alepha.t.boolean()),
18
- xFrameOptions: alepha.t.optional(alepha.t.enum(["DENY", "SAMEORIGIN"])),
19
- xXssProtection: alepha.t.optional(alepha.t.boolean()),
20
- contentSecurityPolicy: alepha.t.optional(alepha.t.object({ directives: alepha.t.record(alepha.t.string(), alepha.t.any()) })),
21
- referrerPolicy: alepha.t.optional(alepha.t.enum([
22
- "no-referrer",
23
- "no-referrer-when-downgrade",
24
- "origin",
25
- "origin-when-cross-origin",
26
- "same-origin",
27
- "strict-origin",
28
- "strict-origin-when-cross-origin",
29
- "unsafe-url"
30
- ]))
31
- }),
32
- default: {
33
- strictTransportSecurity: {
34
- maxAge: 15552e3,
35
- includeSubDomains: true
36
- },
37
- xFrameOptions: "SAMEORIGIN",
38
- xXssProtection: false,
39
- referrerPolicy: "strict-origin-when-cross-origin"
40
- }
41
- });
42
- /**
43
- * Provides a configurable way to apply essential HTTP security headers
44
- * to every server response, without external dependencies.
45
- */
46
- var ServerHelmetProvider = class {
47
- alepha = (0, alepha.$inject)(alepha.Alepha);
48
- /**
49
- * The configuration options loaded from the atom.
50
- */
51
- options = (0, alepha.$use)(helmetOptions);
52
- defaultCspDirectives() {
53
- return {
54
- "default-src": ["'self'"],
55
- "base-uri": ["'self'"],
56
- "font-src": [
57
- "'self'",
58
- "https:",
59
- "data:"
60
- ],
61
- "form-action": ["'self'"],
62
- "frame-ancestors": ["'self'"],
63
- "img-src": ["'self'", "data:"],
64
- "object-src": ["'none'"],
65
- "script-src": ["'self'"],
66
- "script-src-attr": ["'none'"],
67
- "style-src": [
68
- "'self'",
69
- "https:",
70
- "'unsafe-inline'"
71
- ],
72
- "upgrade-insecure-requests": []
73
- };
74
- }
75
- buildHeaders() {
76
- const headers = {};
77
- const { strictTransportSecurity: hsts, xContentTypeOptions, xFrameOptions, xXssProtection, contentSecurityPolicy: csp, referrerPolicy } = this.options;
78
- if (hsts) {
79
- let value = `max-age=${hsts.maxAge ?? 15552e3}`;
80
- if (hsts.includeSubDomains) value += "; includeSubDomains";
81
- if (hsts.preload) value += "; preload";
82
- headers["strict-transport-security"] = value;
83
- }
84
- if (xContentTypeOptions !== false) headers["x-content-type-options"] = "nosniff";
85
- if (xFrameOptions) headers["x-frame-options"] = xFrameOptions;
86
- if (xXssProtection !== false) headers["x-xss-protection"] = "1; mode=block";
87
- if (referrerPolicy) headers["referrer-policy"] = referrerPolicy;
88
- if (csp) {
89
- const directives = Object.keys(csp).length === 0 ? this.defaultCspDirectives() : csp.directives;
90
- headers["content-security-policy"] = Object.entries(directives).map(([key, value]) => {
91
- const kebabKey = key.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
92
- if (Array.isArray(value)) return `${kebabKey} ${value.join(" ")}`;
93
- if (typeof value === "boolean" && value) return kebabKey;
94
- return `${kebabKey} ${value}`;
95
- }).join("; ");
96
- }
97
- return headers;
98
- }
99
- onResponse = (0, alepha.$hook)({
100
- on: "server:onResponse",
101
- priority: "first",
102
- handler: ({ response }) => {
103
- const isSecure = response.headers["x-forwarded-proto"] === "https" || this.options.isSecure || this.alepha.isProduction();
104
- const headersToSet = this.buildHeaders();
105
- for (const [key, value] of Object.entries(headersToSet)) {
106
- if (key === "strict-transport-security" && !isSecure) continue;
107
- if (!response.headers[key]) response.headers[key] = value;
108
- }
109
- }
110
- });
111
- };
112
-
113
- //#endregion
114
- //#region src/server-helmet/index.ts
115
- /**
116
- * Automatically adds important HTTP security headers to every response
117
- * to help protect your application from common web vulnerabilities.
118
- *
119
- * @see {@link ServerHelmetProvider}
120
- * @module alepha.server.helmet
121
- */
122
- const AlephaServerHelmet = (0, alepha.$module)({
123
- name: "alepha.server.helmet",
124
- services: [alepha_server.AlephaServer, ServerHelmetProvider]
125
- });
126
-
127
- //#endregion
128
- exports.AlephaServerHelmet = AlephaServerHelmet;
129
- exports.ServerHelmetProvider = ServerHelmetProvider;
130
- exports.helmetOptions = helmetOptions;
131
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["t","Alepha","headers: Record<string, string>","AlephaServer"],"sources":["../../src/server-helmet/providers/ServerHelmetProvider.ts","../../src/server-helmet/index.ts"],"sourcesContent":["import { $atom, $hook, $inject, $use, Alepha, type Static, t } from \"alepha\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Helmet security headers configuration atom\n */\nexport const helmetOptions = $atom({\n name: \"alepha.server.helmet.options\",\n schema: t.object({\n isSecure: t.optional(t.boolean()),\n strictTransportSecurity: t.optional(\n t.object({\n maxAge: t.optional(t.number()),\n includeSubDomains: t.optional(t.boolean()),\n preload: t.optional(t.boolean()),\n }),\n ),\n xContentTypeOptions: t.optional(t.boolean()),\n xFrameOptions: t.optional(t.enum([\"DENY\", \"SAMEORIGIN\"])),\n xXssProtection: t.optional(t.boolean()),\n contentSecurityPolicy: t.optional(\n t.object({\n directives: t.record(t.string(), t.any()),\n }),\n ),\n referrerPolicy: t.optional(\n t.enum([\n \"no-referrer\",\n \"no-referrer-when-downgrade\",\n \"origin\",\n \"origin-when-cross-origin\",\n \"same-origin\",\n \"strict-origin\",\n \"strict-origin-when-cross-origin\",\n \"unsafe-url\",\n ]),\n ),\n }),\n default: {\n strictTransportSecurity: { maxAge: 15552000, includeSubDomains: true },\n xFrameOptions: \"SAMEORIGIN\",\n xXssProtection: false,\n referrerPolicy: \"strict-origin-when-cross-origin\",\n },\n});\n\nexport type HelmetOptions = Static<typeof helmetOptions.schema>;\n\ndeclare module \"alepha\" {\n interface State {\n [helmetOptions.key]: HelmetOptions;\n }\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ntype CspDirective = string | string[];\n\nexport interface CspDirectives {\n \"default-src\"?: CspDirective;\n \"script-src\"?: CspDirective;\n \"style-src\"?: CspDirective;\n \"img-src\"?: CspDirective;\n \"connect-src\"?: CspDirective;\n \"font-src\"?: CspDirective;\n \"object-src\"?: CspDirective;\n \"media-src\"?: CspDirective;\n \"frame-src\"?: CspDirective;\n sandbox?: CspDirective | boolean;\n \"report-uri\"?: string;\n \"child-src\"?: CspDirective;\n \"form-action\"?: CspDirective;\n \"frame-ancestors\"?: CspDirective;\n \"plugin-types\"?: CspDirective;\n \"base-uri\"?: CspDirective;\n [key: string]: CspDirective | undefined | boolean;\n}\n\nexport interface CspOptions {\n directives: CspDirectives;\n}\n\nexport interface HstsOptions {\n maxAge?: number;\n includeSubDomains?: boolean;\n preload?: boolean;\n}\n\n/**\n * Provides a configurable way to apply essential HTTP security headers\n * to every server response, without external dependencies.\n */\nexport class ServerHelmetProvider {\n protected readonly alepha = $inject(Alepha);\n\n /**\n * The configuration options loaded from the atom.\n */\n protected readonly options = $use(helmetOptions);\n\n protected defaultCspDirectives(): CspDirectives {\n return {\n \"default-src\": [\"'self'\"],\n \"base-uri\": [\"'self'\"],\n \"font-src\": [\"'self'\", \"https:\", \"data:\"],\n \"form-action\": [\"'self'\"],\n \"frame-ancestors\": [\"'self'\"],\n \"img-src\": [\"'self'\", \"data:\"],\n \"object-src\": [\"'none'\"],\n \"script-src\": [\"'self'\"],\n \"script-src-attr\": [\"'none'\"],\n \"style-src\": [\"'self'\", \"https:\", \"'unsafe-inline'\"],\n \"upgrade-insecure-requests\": [],\n };\n }\n\n protected buildHeaders(): Record<string, string> {\n const headers: Record<string, string> = {};\n const {\n strictTransportSecurity: hsts,\n xContentTypeOptions,\n xFrameOptions,\n xXssProtection,\n contentSecurityPolicy: csp,\n referrerPolicy,\n } = this.options;\n\n // Strict-Transport-Security\n if (hsts) {\n let value = `max-age=${hsts.maxAge ?? 15552000}`;\n if (hsts.includeSubDomains) value += \"; includeSubDomains\";\n if (hsts.preload) value += \"; preload\";\n headers[\"strict-transport-security\"] = value;\n }\n\n // X-Content-Type-Options\n if (xContentTypeOptions !== false) {\n headers[\"x-content-type-options\"] = \"nosniff\";\n }\n\n // X-Frame-Options\n if (xFrameOptions) {\n headers[\"x-frame-options\"] = xFrameOptions;\n }\n\n // X-XSS-Protection\n if (xXssProtection !== false) {\n headers[\"x-xss-protection\"] = \"1; mode=block\";\n }\n\n // Referrer-Policy\n if (referrerPolicy) {\n headers[\"referrer-policy\"] = referrerPolicy;\n }\n\n // Content-Security-Policy\n if (csp) {\n const directives =\n Object.keys(csp).length === 0\n ? this.defaultCspDirectives()\n : csp.directives;\n headers[\"content-security-policy\"] = Object.entries(directives)\n .map(([key, value]) => {\n const kebabKey = key.replace(\n /[A-Z]/g,\n (letter) => `-${letter.toLowerCase()}`,\n );\n if (Array.isArray(value)) {\n return `${kebabKey} ${value.join(\" \")}`;\n }\n if (typeof value === \"boolean\" && value) {\n return kebabKey;\n }\n return `${kebabKey} ${value}`;\n })\n .join(\"; \");\n }\n\n return headers;\n }\n\n protected readonly onResponse = $hook({\n on: \"server:onResponse\",\n priority: \"first\",\n handler: ({ response }) => {\n // this check is important. Only add HSTS on HTTPS requests.\n const isSecure =\n response.headers[\"x-forwarded-proto\"] === \"https\" ||\n this.options.isSecure ||\n this.alepha.isProduction();\n\n const headersToSet = this.buildHeaders();\n\n for (const [key, value] of Object.entries(headersToSet)) {\n if (key === \"strict-transport-security\" && !isSecure) {\n continue;\n }\n // don't overwrite headers if they are already set\n if (!response.headers[key]) {\n response.headers[key] = value;\n }\n }\n },\n });\n}\n","import { $module } from \"alepha\";\nimport { AlephaServer } from \"alepha/server\";\nimport { ServerHelmetProvider } from \"./providers/ServerHelmetProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/ServerHelmetProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Automatically adds important HTTP security headers to every response\n * to help protect your application from common web vulnerabilities.\n *\n * @see {@link ServerHelmetProvider}\n * @module alepha.server.helmet\n */\nexport const AlephaServerHelmet = $module({\n name: \"alepha.server.helmet\",\n services: [AlephaServer, ServerHelmetProvider],\n});\n"],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- import * as alepha1 from "alepha";
2
- import { Alepha, Static } from "alepha";
3
-
4
- //#region src/server-helmet/providers/ServerHelmetProvider.d.ts
5
- /**
6
- * Helmet security headers configuration atom
7
- */
8
- declare const helmetOptions: alepha1.Atom<alepha1.TObject<{
9
- isSecure: alepha1.TOptional<alepha1.TBoolean>;
10
- strictTransportSecurity: alepha1.TOptional<alepha1.TObject<{
11
- maxAge: alepha1.TOptional<alepha1.TNumber>;
12
- includeSubDomains: alepha1.TOptional<alepha1.TBoolean>;
13
- preload: alepha1.TOptional<alepha1.TBoolean>;
14
- }>>;
15
- xContentTypeOptions: alepha1.TOptional<alepha1.TBoolean>;
16
- xFrameOptions: alepha1.TOptional<alepha1.TUnsafe<"DENY" | "SAMEORIGIN">>;
17
- xXssProtection: alepha1.TOptional<alepha1.TBoolean>;
18
- contentSecurityPolicy: alepha1.TOptional<alepha1.TObject<{
19
- directives: alepha1.TRecord<"^.*$", alepha1.TAny>;
20
- }>>;
21
- referrerPolicy: alepha1.TOptional<alepha1.TUnsafe<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">>;
22
- }>, "alepha.server.helmet.options">;
23
- type HelmetOptions = Static<typeof helmetOptions.schema>;
24
- declare module "alepha" {
25
- interface State {
26
- [helmetOptions.key]: HelmetOptions;
27
- }
28
- }
29
- type CspDirective = string | string[];
30
- interface CspDirectives {
31
- "default-src"?: CspDirective;
32
- "script-src"?: CspDirective;
33
- "style-src"?: CspDirective;
34
- "img-src"?: CspDirective;
35
- "connect-src"?: CspDirective;
36
- "font-src"?: CspDirective;
37
- "object-src"?: CspDirective;
38
- "media-src"?: CspDirective;
39
- "frame-src"?: CspDirective;
40
- sandbox?: CspDirective | boolean;
41
- "report-uri"?: string;
42
- "child-src"?: CspDirective;
43
- "form-action"?: CspDirective;
44
- "frame-ancestors"?: CspDirective;
45
- "plugin-types"?: CspDirective;
46
- "base-uri"?: CspDirective;
47
- [key: string]: CspDirective | undefined | boolean;
48
- }
49
- interface CspOptions {
50
- directives: CspDirectives;
51
- }
52
- interface HstsOptions {
53
- maxAge?: number;
54
- includeSubDomains?: boolean;
55
- preload?: boolean;
56
- }
57
- /**
58
- * Provides a configurable way to apply essential HTTP security headers
59
- * to every server response, without external dependencies.
60
- */
61
- declare class ServerHelmetProvider {
62
- protected readonly alepha: Alepha;
63
- /**
64
- * The configuration options loaded from the atom.
65
- */
66
- protected readonly options: Readonly<{
67
- isSecure?: boolean | undefined;
68
- strictTransportSecurity?: {
69
- maxAge?: number | undefined;
70
- includeSubDomains?: boolean | undefined;
71
- preload?: boolean | undefined;
72
- } | undefined;
73
- xContentTypeOptions?: boolean | undefined;
74
- xFrameOptions?: "DENY" | "SAMEORIGIN" | undefined;
75
- xXssProtection?: boolean | undefined;
76
- contentSecurityPolicy?: {
77
- directives: Record<string, any>;
78
- } | undefined;
79
- referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
80
- }>;
81
- protected defaultCspDirectives(): CspDirectives;
82
- protected buildHeaders(): Record<string, string>;
83
- protected readonly onResponse: alepha1.HookDescriptor<"server:onResponse">;
84
- }
85
- //#endregion
86
- //#region src/server-helmet/index.d.ts
87
- /**
88
- * Automatically adds important HTTP security headers to every response
89
- * to help protect your application from common web vulnerabilities.
90
- *
91
- * @see {@link ServerHelmetProvider}
92
- * @module alepha.server.helmet
93
- */
94
- declare const AlephaServerHelmet: alepha1.Service<alepha1.Module>;
95
- //#endregion
96
- export { AlephaServerHelmet, CspDirectives, CspOptions, HelmetOptions, HstsOptions, ServerHelmetProvider, helmetOptions };
97
- //# sourceMappingURL=index.d.cts.map