@authup/server-core 1.0.0-beta.40 → 1.0.0-beta.41

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 (343) hide show
  1. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +5 -8
  2. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
  3. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +8 -10
  4. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  5. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +3 -3
  6. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
  7. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +13 -12
  8. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  9. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts +2 -2
  10. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  11. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +6 -6
  12. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  13. package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts +2 -2
  14. package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts.map +1 -1
  15. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs +4 -4
  16. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
  17. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +2 -2
  18. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
  19. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +6 -6
  20. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  21. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -2
  22. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
  23. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +8 -7
  24. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  25. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts +2 -2
  26. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts.map +1 -1
  27. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs +5 -5
  28. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +1 -1
  29. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +2 -2
  30. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  31. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts +2 -2
  32. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts.map +1 -1
  33. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +11 -10
  34. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs.map +1 -1
  35. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts +2 -2
  36. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts.map +1 -1
  37. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +16 -13
  38. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
  39. package/dist/adapters/http/controllers/entities/client/module.d.ts +9 -6
  40. package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
  41. package/dist/adapters/http/controllers/entities/client/module.mjs +46 -61
  42. package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
  43. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts +8 -5
  44. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts.map +1 -1
  45. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +35 -48
  46. package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
  47. package/dist/adapters/http/controllers/entities/client-role/module.d.ts +7 -4
  48. package/dist/adapters/http/controllers/entities/client-role/module.d.ts.map +1 -1
  49. package/dist/adapters/http/controllers/entities/client-role/module.mjs +27 -40
  50. package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
  51. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts +7 -4
  52. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts.map +1 -1
  53. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +27 -40
  54. package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
  55. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts +8 -6
  56. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts.map +1 -1
  57. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +35 -48
  58. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
  59. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +10 -9
  60. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  61. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +76 -100
  62. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  63. package/dist/adapters/http/controllers/entities/permission/module.d.ts +10 -7
  64. package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
  65. package/dist/adapters/http/controllers/entities/permission/module.mjs +50 -69
  66. package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
  67. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts +7 -4
  68. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts.map +1 -1
  69. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +27 -40
  70. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
  71. package/dist/adapters/http/controllers/entities/policy/module.d.ts +11 -9
  72. package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
  73. package/dist/adapters/http/controllers/entities/policy/module.mjs +54 -72
  74. package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
  75. package/dist/adapters/http/controllers/entities/realm/module.d.ts +13 -8
  76. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  77. package/dist/adapters/http/controllers/entities/realm/module.mjs +55 -74
  78. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  79. package/dist/adapters/http/controllers/entities/robot/module.d.ts +9 -6
  80. package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +1 -1
  81. package/dist/adapters/http/controllers/entities/robot/module.mjs +46 -63
  82. package/dist/adapters/http/controllers/entities/robot/module.mjs.map +1 -1
  83. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts +8 -5
  84. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts.map +1 -1
  85. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +35 -48
  86. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +1 -1
  87. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts +7 -4
  88. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts.map +1 -1
  89. package/dist/adapters/http/controllers/entities/robot-role/module.mjs +27 -40
  90. package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +1 -1
  91. package/dist/adapters/http/controllers/entities/role/module.d.ts +9 -6
  92. package/dist/adapters/http/controllers/entities/role/module.d.ts.map +1 -1
  93. package/dist/adapters/http/controllers/entities/role/module.mjs +42 -57
  94. package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
  95. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts +8 -5
  96. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts.map +1 -1
  97. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +35 -48
  98. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
  99. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts +8 -5
  100. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts.map +1 -1
  101. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +35 -48
  102. package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
  103. package/dist/adapters/http/controllers/entities/scope/module.d.ts +9 -6
  104. package/dist/adapters/http/controllers/entities/scope/module.d.ts.map +1 -1
  105. package/dist/adapters/http/controllers/entities/scope/module.mjs +42 -57
  106. package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
  107. package/dist/adapters/http/controllers/entities/user/module.d.ts +9 -6
  108. package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
  109. package/dist/adapters/http/controllers/entities/user/module.mjs +42 -57
  110. package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
  111. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts +8 -5
  112. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts.map +1 -1
  113. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +35 -48
  114. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
  115. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts +8 -5
  116. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts.map +1 -1
  117. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +35 -48
  118. package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
  119. package/dist/adapters/http/controllers/entities/user-role/module.d.ts +7 -4
  120. package/dist/adapters/http/controllers/entities/user-role/module.d.ts.map +1 -1
  121. package/dist/adapters/http/controllers/entities/user-role/module.mjs +27 -40
  122. package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
  123. package/dist/adapters/http/controllers/workflows/activate/module.d.ts +3 -2
  124. package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
  125. package/dist/adapters/http/controllers/workflows/activate/module.mjs +6 -11
  126. package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
  127. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +7 -5
  128. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  129. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +19 -20
  130. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  131. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts +5 -3
  132. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
  133. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +12 -14
  134. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  135. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts +6 -3
  136. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
  137. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +17 -26
  138. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  139. package/dist/adapters/http/controllers/workflows/openid/module.d.ts.map +1 -1
  140. package/dist/adapters/http/controllers/workflows/openid/module.mjs +10 -7
  141. package/dist/adapters/http/controllers/workflows/openid/module.mjs.map +1 -1
  142. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +3 -3
  143. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
  144. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -11
  145. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
  146. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +3 -3
  147. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
  148. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -11
  149. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
  150. package/dist/adapters/http/controllers/workflows/register/module.d.ts +3 -3
  151. package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
  152. package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -11
  153. package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
  154. package/dist/adapters/http/controllers/workflows/status/module.d.ts.map +1 -1
  155. package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
  156. package/dist/adapters/http/controllers/workflows/token/module.d.ts +5 -5
  157. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  158. package/dist/adapters/http/controllers/workflows/token/module.mjs +20 -21
  159. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  160. package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts +2 -2
  161. package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts.map +1 -1
  162. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs +8 -7
  163. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs.map +1 -1
  164. package/dist/adapters/http/index.d.ts +0 -2
  165. package/dist/adapters/http/index.d.ts.map +1 -1
  166. package/dist/adapters/http/index.mjs +4 -7
  167. package/dist/adapters/http/middleware/built-in/assets.d.ts +1 -0
  168. package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
  169. package/dist/adapters/http/middleware/built-in/assets.mjs +9 -9
  170. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  171. package/dist/adapters/http/middleware/built-in/authorization/factory.d.ts.map +1 -1
  172. package/dist/adapters/http/middleware/built-in/authorization/factory.mjs +5 -2
  173. package/dist/adapters/http/middleware/built-in/authorization/factory.mjs.map +1 -1
  174. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +4 -10
  175. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  176. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +24 -39
  177. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  178. package/dist/adapters/http/middleware/built-in/cors.d.ts +1 -1
  179. package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
  180. package/dist/adapters/http/middleware/built-in/cors.mjs +18 -10
  181. package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
  182. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  183. package/dist/adapters/http/middleware/built-in/error.mjs +7 -18
  184. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  185. package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
  186. package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts +2 -2
  187. package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts.map +1 -1
  188. package/dist/adapters/http/middleware/built-in/loggedin/module.mjs +3 -3
  189. package/dist/adapters/http/middleware/built-in/loggedin/module.mjs.map +1 -1
  190. package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts +2 -2
  191. package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts.map +1 -1
  192. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs +3 -3
  193. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs.map +1 -1
  194. package/dist/adapters/http/middleware/built-in/logger.d.ts.map +1 -1
  195. package/dist/adapters/http/middleware/built-in/logger.mjs +21 -29
  196. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  197. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  198. package/dist/adapters/http/middleware/built-in/prometheus.mjs +2 -3
  199. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  200. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  201. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +2 -2
  202. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  203. package/dist/adapters/http/middleware/built-in/swagger.d.ts +3 -4
  204. package/dist/adapters/http/middleware/built-in/swagger.d.ts.map +1 -1
  205. package/dist/adapters/http/middleware/built-in/swagger.mjs +4 -16
  206. package/dist/adapters/http/middleware/built-in/swagger.mjs.map +1 -1
  207. package/dist/adapters/http/middleware/index.mjs +2 -2
  208. package/dist/adapters/http/request/helpers/actor.d.ts +2 -2
  209. package/dist/adapters/http/request/helpers/actor.d.ts.map +1 -1
  210. package/dist/adapters/http/request/helpers/actor.mjs +3 -3
  211. package/dist/adapters/http/request/helpers/actor.mjs.map +1 -1
  212. package/dist/adapters/http/request/helpers/body-realm-id.d.ts +1 -2
  213. package/dist/adapters/http/request/helpers/body-realm-id.d.ts.map +1 -1
  214. package/dist/adapters/http/request/helpers/body-realm-id.mjs +3 -4
  215. package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
  216. package/dist/adapters/http/request/helpers/identity.d.ts +4 -4
  217. package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
  218. package/dist/adapters/http/request/helpers/identity.mjs +6 -7
  219. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  220. package/dist/adapters/http/request/helpers/index.d.ts +1 -0
  221. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  222. package/dist/adapters/http/request/helpers/index.mjs +3 -2
  223. package/dist/adapters/http/request/helpers/locations.d.ts +4 -0
  224. package/dist/adapters/http/request/helpers/locations.d.ts.map +1 -0
  225. package/dist/adapters/http/request/helpers/locations.mjs +28 -0
  226. package/dist/adapters/http/request/helpers/locations.mjs.map +1 -0
  227. package/dist/adapters/http/request/helpers/param-id.d.ts +5 -5
  228. package/dist/adapters/http/request/helpers/param-id.d.ts.map +1 -1
  229. package/dist/adapters/http/request/helpers/param-id.mjs +8 -9
  230. package/dist/adapters/http/request/helpers/param-id.mjs.map +1 -1
  231. package/dist/adapters/http/request/helpers/scopes.d.ts +3 -3
  232. package/dist/adapters/http/request/helpers/scopes.d.ts.map +1 -1
  233. package/dist/adapters/http/request/helpers/scopes.mjs +4 -5
  234. package/dist/adapters/http/request/helpers/scopes.mjs.map +1 -1
  235. package/dist/adapters/http/request/helpers/token.d.ts +3 -3
  236. package/dist/adapters/http/request/helpers/token.d.ts.map +1 -1
  237. package/dist/adapters/http/request/helpers/token.mjs +4 -5
  238. package/dist/adapters/http/request/helpers/token.mjs.map +1 -1
  239. package/dist/adapters/http/request/index.mjs +3 -2
  240. package/dist/adapters/http/request/permission/helper.d.ts +3 -3
  241. package/dist/adapters/http/request/permission/helper.d.ts.map +1 -1
  242. package/dist/adapters/http/request/permission/helper.mjs +4 -5
  243. package/dist/adapters/http/request/permission/helper.mjs.map +1 -1
  244. package/dist/adapters/http/request/permission/module.d.ts +3 -3
  245. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  246. package/dist/adapters/http/request/permission/module.mjs +5 -5
  247. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  248. package/dist/app/builder.d.ts +1 -2
  249. package/dist/app/builder.d.ts.map +1 -1
  250. package/dist/app/builder.mjs +0 -5
  251. package/dist/app/builder.mjs.map +1 -1
  252. package/dist/app/factory.d.ts.map +1 -1
  253. package/dist/app/factory.mjs +1 -1
  254. package/dist/app/factory.mjs.map +1 -1
  255. package/dist/app/index.mjs +1 -2
  256. package/dist/app/modules/config/types.d.ts +2 -2
  257. package/dist/app/modules/config/types.d.ts.map +1 -1
  258. package/dist/app/modules/constants.d.ts +0 -1
  259. package/dist/app/modules/constants.d.ts.map +1 -1
  260. package/dist/app/modules/constants.mjs +0 -1
  261. package/dist/app/modules/constants.mjs.map +1 -1
  262. package/dist/app/modules/http/constants.d.ts +3 -2
  263. package/dist/app/modules/http/constants.d.ts.map +1 -1
  264. package/dist/app/modules/http/constants.mjs.map +1 -1
  265. package/dist/app/modules/http/module.d.ts +2 -2
  266. package/dist/app/modules/http/module.d.ts.map +1 -1
  267. package/dist/app/modules/http/module.mjs +10 -17
  268. package/dist/app/modules/http/module.mjs.map +1 -1
  269. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  270. package/dist/app/modules/http/modules/controller.mjs +32 -51
  271. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  272. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  273. package/dist/app/modules/http/modules/middleware.mjs +3 -6
  274. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  275. package/dist/app/modules/index.d.ts +0 -1
  276. package/dist/app/modules/index.d.ts.map +1 -1
  277. package/dist/app/modules/index.mjs +1 -3
  278. package/dist/app/modules/runtime/module.d.ts.map +1 -1
  279. package/dist/app/modules/runtime/module.mjs +3 -1
  280. package/dist/app/modules/runtime/module.mjs.map +1 -1
  281. package/dist/cli/commands/healthcheck.mjs +1 -1
  282. package/dist/cli/commands/index.d.ts +0 -1
  283. package/dist/cli/commands/index.d.ts.map +1 -1
  284. package/dist/cli/commands/index.mjs +1 -2
  285. package/dist/cli/commands/start.d.ts.map +1 -1
  286. package/dist/cli/commands/start.mjs +22 -1
  287. package/dist/cli/commands/start.mjs.map +1 -1
  288. package/dist/cli/module.d.ts.map +1 -1
  289. package/dist/cli/module.mjs +1 -3
  290. package/dist/cli/module.mjs.map +1 -1
  291. package/dist/core/oauth2/helpers/erorr.d.ts +1 -2
  292. package/dist/core/oauth2/helpers/erorr.d.ts.map +1 -1
  293. package/dist/core/oauth2/helpers/erorr.mjs +11 -10
  294. package/dist/core/oauth2/helpers/erorr.mjs.map +1 -1
  295. package/dist/index.mjs +4 -7
  296. package/dist/swagger.json +7139 -2355
  297. package/dist/ui/client/.vite/ssr-manifest.json +15 -90
  298. package/dist/ui/client/assets/index-DJBdH-x_.js +64 -0
  299. package/dist/ui/client/index.html +1 -1
  300. package/dist/ui/server/server.js +1120 -23992
  301. package/dist/utils/error.d.ts.map +1 -1
  302. package/dist/utils/error.mjs +7 -8
  303. package/dist/utils/error.mjs.map +1 -1
  304. package/dist/utils/index.d.ts +1 -0
  305. package/dist/utils/index.d.ts.map +1 -1
  306. package/dist/utils/index.mjs +2 -1
  307. package/dist/utils/url.d.ts +10 -0
  308. package/dist/utils/url.d.ts.map +1 -0
  309. package/dist/utils/url.mjs +17 -0
  310. package/dist/utils/url.mjs.map +1 -0
  311. package/package.json +28 -28
  312. package/dist/adapters/http/server/index.d.ts +0 -3
  313. package/dist/adapters/http/server/index.d.ts.map +0 -1
  314. package/dist/adapters/http/server/index.mjs +0 -2
  315. package/dist/adapters/http/server/module.d.ts +0 -3
  316. package/dist/adapters/http/server/module.d.ts.map +0 -1
  317. package/dist/adapters/http/server/module.mjs +0 -10
  318. package/dist/adapters/http/server/module.mjs.map +0 -1
  319. package/dist/adapters/http/server/type.d.ts +0 -8
  320. package/dist/adapters/http/server/type.d.ts.map +0 -1
  321. package/dist/adapters/http/server/type.mjs +0 -1
  322. package/dist/adapters/http/swagger/index.d.ts +0 -3
  323. package/dist/adapters/http/swagger/index.d.ts.map +0 -1
  324. package/dist/adapters/http/swagger/index.mjs +0 -2
  325. package/dist/adapters/http/swagger/module.d.ts +0 -12
  326. package/dist/adapters/http/swagger/module.d.ts.map +0 -1
  327. package/dist/adapters/http/swagger/module.mjs +0 -75
  328. package/dist/adapters/http/swagger/module.mjs.map +0 -1
  329. package/dist/adapters/http/swagger/type.d.ts +0 -4
  330. package/dist/adapters/http/swagger/type.d.ts.map +0 -1
  331. package/dist/adapters/http/swagger/type.mjs +0 -1
  332. package/dist/app/modules/swagger/index.d.ts +0 -2
  333. package/dist/app/modules/swagger/index.d.ts.map +0 -1
  334. package/dist/app/modules/swagger/index.mjs +0 -2
  335. package/dist/app/modules/swagger/module.d.ts +0 -9
  336. package/dist/app/modules/swagger/module.d.ts.map +0 -1
  337. package/dist/app/modules/swagger/module.mjs +0 -32
  338. package/dist/app/modules/swagger/module.mjs.map +0 -1
  339. package/dist/cli/commands/swagger.d.ts +0 -8
  340. package/dist/cli/commands/swagger.d.ts.map +0 -1
  341. package/dist/cli/commands/swagger.mjs +0 -29
  342. package/dist/cli/commands/swagger.mjs.map +0 -1
  343. package/dist/ui/client/assets/index-Noe7uiOY.js +0 -41
@@ -1,9 +1,12 @@
1
1
  import { AuthorizationMiddleware } from "./module.mjs";
2
- import { coreHandler } from "routup";
2
+ import { defineCoreHandler } from "routup";
3
3
  //#region src/adapters/http/middleware/built-in/authorization/factory.ts
4
4
  function createAuthorizationMiddleware(ctx) {
5
5
  const middleware = new AuthorizationMiddleware(ctx);
6
- return coreHandler(async (request, response, next) => middleware.run(request, response, next));
6
+ return defineCoreHandler(async (event) => {
7
+ await middleware.run(event);
8
+ return event.next();
9
+ });
7
10
  }
8
11
  //#endregion
9
12
  export { createAuthorizationMiddleware };
@@ -1 +1 @@
1
- {"version":3,"file":"factory.mjs","names":["coreHandler","AuthorizationMiddleware","createAuthorizationMiddleware","ctx","middleware","request","response","next","run"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/factory.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { coreHandler } from 'routup';\nimport type { Handler } from 'routup';\nimport { AuthorizationMiddleware } from './module.ts';\nimport type { HTTPAuthorizationMiddlewareContext } from './types.ts';\n\nexport function createAuthorizationMiddleware(ctx: HTTPAuthorizationMiddlewareContext) : Handler {\n const middleware = new AuthorizationMiddleware(ctx);\n\n return coreHandler(async (\n request,\n response,\n next,\n ) => middleware.run(request, response, next));\n}\n"],"mappings":";;;AAYA,SAAgBE,8BAA8BC,KAAuC;CACjF,MAAMC,aAAa,IAAIH,wBAAwBE,IAAAA;AAE/C,QAAOH,YAAY,OACfK,SACAC,UACAC,SACCH,WAAWI,IAAIH,SAASC,UAAUC,KAAAA,CAAAA"}
1
+ {"version":3,"file":"factory.mjs","names":["defineCoreHandler","AuthorizationMiddleware","createAuthorizationMiddleware","ctx","middleware","event","run","next"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/factory.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCoreHandler } from 'routup';\nimport type { Handler } from 'routup';\nimport { AuthorizationMiddleware } from './module.ts';\nimport type { HTTPAuthorizationMiddlewareContext } from './types.ts';\n\nexport function createAuthorizationMiddleware(ctx: HTTPAuthorizationMiddlewareContext) : Handler {\n const middleware = new AuthorizationMiddleware(ctx);\n\n return defineCoreHandler(async (event) => {\n await middleware.run(event);\n return event.next();\n });\n}\n"],"mappings":";;;AAYA,SAAgBE,8BAA8BC,KAAuC;CACjF,MAAMC,aAAa,IAAIH,wBAAwBE,IAAAA;AAE/C,QAAOH,kBAAkB,OAAOK,UAAAA;AAC5B,QAAMD,WAAWE,IAAID,MAAAA;AACrB,SAAOA,MAAME,MAAI;GACrB"}
@@ -1,6 +1,6 @@
1
1
  import type { IPermissionEvaluator } from '@authup/access';
2
2
  import type { Client, Robot, User } from '@authup/core-kit';
3
- import type { Next, Request, Response } from 'routup';
3
+ import type { IRoutupEvent } from 'routup';
4
4
  import { type BasicAuthorizationHeader, type BearerAuthorizationHeader } from 'hapic';
5
5
  import type { ICredentialsAuthenticator, IIdentityResolver, IOAuth2TokenVerifier, ISessionManager } from '../../../../../core/index.ts';
6
6
  import type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';
@@ -14,17 +14,11 @@ export declare class AuthorizationMiddleware {
14
14
  protected robotAuthenticator: ICredentialsAuthenticator<Robot>;
15
15
  protected userAuthenticator: ICredentialsAuthenticator<User>;
16
16
  constructor(ctx: HTTPAuthorizationMiddlewareContext);
17
- run(request: Request, response: Response, next: Next): Promise<void>;
17
+ run(event: IRoutupEvent): Promise<void>;
18
18
  /**
19
- *
20
19
  * @throws JWTError
21
- *
22
- * @param request
23
- * @param header
24
- *
25
- * @protected
26
20
  */
27
- protected verifyBearerAuthorizationHeader(request: Request, header: BearerAuthorizationHeader): Promise<void>;
28
- protected verifyBasicAuthorizationHeader(request: Request, header: BasicAuthorizationHeader): Promise<void>;
21
+ protected verifyBearerAuthorizationHeader(event: IRoutupEvent, header: BearerAuthorizationHeader): Promise<void>;
22
+ protected verifyBasicAuthorizationHeader(event: IRoutupEvent, header: BasicAuthorizationHeader): Promise<void>;
29
23
  }
30
24
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO5D,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAEjC,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EACR,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAEzG,qBAAa,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,kCAAkC,CAAC;IAItD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAEpD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAIpD,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAE9C,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAI3C,SAAS,CAAC,mBAAmB,EAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElE,SAAS,CAAC,kBAAkB,EAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAEhE,SAAS,CAAC,iBAAiB,EAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAIlD,GAAG,EAAE,kCAAkC;IAsB7C,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;IAiC1D;;;;;;;;OAQG;cACa,+BAA+B,CAC3C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,yBAAyB;cAwDrB,8BAA8B,CAC1C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,wBAAwB;CA+CvC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAEjC,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EACR,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAEzG,qBAAa,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,kCAAkC,CAAC;IAItD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAEpD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAIpD,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAE9C,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAI3C,SAAS,CAAC,mBAAmB,EAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElE,SAAS,CAAC,kBAAkB,EAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAEhE,SAAS,CAAC,iBAAiB,EAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAIlD,GAAG,EAAE,kCAAkC;IAsB7C,GAAG,CAAC,KAAK,EAAE,YAAY;IA2B7B;;OAEG;cACa,+BAA+B,CAC3C,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,yBAAyB;cAwDrB,8BAA8B,CAC1C,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,wBAAwB;CA+CvC"}
@@ -39,44 +39,29 @@ var AuthorizationMiddleware = class {
39
39
  clientId: null
40
40
  });
41
41
  }
42
- async run(request, response, next) {
43
- setRequestPermissionEvaluator(request, new RequestPermissionEvaluator(request, this.permissionEvaluator));
44
- const { authorization: headerValue } = request.headers;
45
- try {
46
- if (typeof headerValue !== "string") {
47
- next();
48
- return;
49
- }
50
- const header = parseAuthorizationHeader(headerValue);
51
- if (header.type === AuthorizationHeaderType.BEARER) {
52
- await this.verifyBearerAuthorizationHeader(request, header);
53
- next();
54
- return;
55
- }
56
- if (header.type === AuthorizationHeaderType.BASIC) {
57
- await this.verifyBasicAuthorizationHeader(request, header);
58
- next();
59
- return;
60
- }
61
- next(HTTPError.unsupportedHeaderType(header.type));
62
- } catch (e) {
63
- next(e);
42
+ async run(event) {
43
+ setRequestPermissionEvaluator(event, new RequestPermissionEvaluator(event, this.permissionEvaluator));
44
+ const headerValue = event.headers.get("authorization");
45
+ if (!headerValue) return;
46
+ const header = parseAuthorizationHeader(headerValue);
47
+ if (header.type === AuthorizationHeaderType.BEARER) {
48
+ await this.verifyBearerAuthorizationHeader(event, header);
49
+ return;
50
+ }
51
+ if (header.type === AuthorizationHeaderType.BASIC) {
52
+ await this.verifyBasicAuthorizationHeader(event, header);
53
+ return;
64
54
  }
55
+ throw HTTPError.unsupportedHeaderType(header.type);
65
56
  }
66
57
  /**
67
- *
68
58
  * @throws JWTError
69
- *
70
- * @param request
71
- * @param header
72
- *
73
- * @protected
74
- */ async verifyBearerAuthorizationHeader(request, header) {
59
+ */ async verifyBearerAuthorizationHeader(event, header) {
75
60
  const payload = await this.oauth2TokenVerifier.verify(header.token);
76
61
  if (payload.kind !== OAuth2TokenKind.ACCESS) throw JWTError.payloadPropertyInvalid("kind");
77
62
  if (!payload.realm_id) throw JWTError.payloadPropertyInvalid("realm_id");
78
- setRequestToken(request, header.token);
79
- if (payload.scope) setRequestScopes(request, deserializeOAuth2Scope(payload.scope));
63
+ setRequestToken(event, header.token);
64
+ if (payload.scope) setRequestScopes(event, deserializeOAuth2Scope(payload.scope));
80
65
  if (!payload.session_id) throw JWTError.payloadPropertyInvalid("session_id");
81
66
  const session = await this.sessionManager.findOneById(payload.session_id);
82
67
  if (!session) throw JWTError.expired();
@@ -89,14 +74,14 @@ var AuthorizationMiddleware = class {
89
74
  if (!payload.sub_kind) throw JWTError.payloadPropertyInvalid("sub_kind");
90
75
  if (!payload.sub) throw JWTError.payloadPropertyInvalid("sub");
91
76
  const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);
92
- if (identity) setRequestIdentity(request, identity);
77
+ if (identity) setRequestIdentity(event, identity);
93
78
  }
94
- async verifyBasicAuthorizationHeader(request, header) {
79
+ async verifyBasicAuthorizationHeader(event, header) {
95
80
  if (this.options.clientAuthBasic) {
96
81
  const authenticator = await this.clientAuthenticator.safeAuthenticate(header.username, header.password);
97
82
  if (authenticator.success) {
98
- setRequestScopes(request, [ScopeName.GLOBAL]);
99
- setRequestIdentity(request, {
83
+ setRequestScopes(event, [ScopeName.GLOBAL]);
84
+ setRequestIdentity(event, {
100
85
  type: IdentityType.CLIENT,
101
86
  data: authenticator.data
102
87
  });
@@ -105,8 +90,8 @@ var AuthorizationMiddleware = class {
105
90
  if (this.options.userAuthBasic) {
106
91
  const authenticated = await this.userAuthenticator.safeAuthenticate(header.username, header.password);
107
92
  if (authenticated.success) {
108
- setRequestScopes(request, [ScopeName.GLOBAL]);
109
- setRequestIdentity(request, {
93
+ setRequestScopes(event, [ScopeName.GLOBAL]);
94
+ setRequestIdentity(event, {
110
95
  type: IdentityType.USER,
111
96
  data: authenticated.data
112
97
  });
@@ -116,8 +101,8 @@ var AuthorizationMiddleware = class {
116
101
  if (this.options.robotAuthBasic) {
117
102
  const authenticated = await this.robotAuthenticator.safeAuthenticate(header.username, header.password);
118
103
  if (authenticated.success) {
119
- setRequestScopes(request, [ScopeName.GLOBAL]);
120
- setRequestIdentity(request, {
104
+ setRequestScopes(event, [ScopeName.GLOBAL]);
105
+ setRequestIdentity(event, {
121
106
  type: IdentityType.ROBOT,
122
107
  data: authenticated.data
123
108
  });
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","HTTPError","JWTError","OAuth2TokenKind","deserializeOAuth2Scope","AuthorizationHeaderType","parseAuthorizationHeader","ClientAuthenticator","PolicyEngine","RobotAuthenticator","UserAuthenticator","RequestPermissionEvaluator","setRequestIdentity","setRequestPermissionEvaluator","setRequestScopes","setRequestToken","AuthorizationMiddleware","options","oauth2TokenVerifier","permissionEvaluator","identityResolver","sessionManager","clientAuthenticator","robotAuthenticator","userAuthenticator","ctx","provider","permissionProvider","policyEngine","identityPermissionProvider","realmId","clientId","run","request","response","next","requestAccessContext","authorization","headerValue","headers","header","type","BEARER","verifyBearerAuthorizationHeader","BASIC","verifyBasicAuthorizationHeader","unsupportedHeaderType","e","payload","verify","token","kind","ACCESS","payloadPropertyInvalid","realm_id","scope","session_id","session","findOneById","expired","ping","sub_kind","sub","identity","resolve","clientAuthBasic","authenticator","safeAuthenticate","username","password","success","GLOBAL","CLIENT","data","userAuthBasic","authenticated","USER","robotAuthBasic","ROBOT"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IPermissionEvaluator } from '@authup/access';\nimport { PermissionEvaluator } from '@authup/access';\nimport type { Client, Robot, User } from '@authup/core-kit';\nimport {\n IdentityType,\n ScopeName,\n} from '@authup/core-kit';\nimport { HTTPError } from '@authup/errors';\nimport { JWTError, OAuth2TokenKind, deserializeOAuth2Scope } from '@authup/specs';\nimport type { Next, Request, Response } from 'routup';\nimport {\n AuthorizationHeaderType,\n type BasicAuthorizationHeader,\n type BearerAuthorizationHeader,\n parseAuthorizationHeader,\n} from 'hapic';\nimport {\n ClientAuthenticator,\n PolicyEngine,\n RobotAuthenticator,\n UserAuthenticator, \n} from '../../../../../core/index.ts';\nimport type {\n ICredentialsAuthenticator, \n IIdentityResolver,\n IOAuth2TokenVerifier, \n ISessionManager,\n} from '../../../../../core/index.ts';\nimport {\n RequestPermissionEvaluator,\n setRequestIdentity,\n setRequestPermissionEvaluator,\n setRequestScopes,\n setRequestToken,\n} from '../../../request/index.ts';\nimport type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';\n\nexport class AuthorizationMiddleware {\n protected options: HTTPAuthorizationMiddlewareOptions;\n\n // --------------------------------------\n\n protected oauth2TokenVerifier: IOAuth2TokenVerifier;\n\n protected permissionEvaluator: IPermissionEvaluator;\n\n // --------------------------------------\n\n protected identityResolver: IIdentityResolver;\n\n protected sessionManager : ISessionManager;\n\n // --------------------------------------\n\n protected clientAuthenticator : ICredentialsAuthenticator<Client>;\n\n protected robotAuthenticator : ICredentialsAuthenticator<Robot>;\n\n protected userAuthenticator : ICredentialsAuthenticator<User>;\n\n // --------------------------------------\n\n constructor(ctx: HTTPAuthorizationMiddlewareContext) {\n this.options = ctx.options || {};\n\n this.identityResolver = ctx.identityResolver;\n this.sessionManager = ctx.sessionManager;\n\n this.clientAuthenticator = new ClientAuthenticator(ctx.identityResolver);\n this.robotAuthenticator = new RobotAuthenticator(ctx.identityResolver);\n this.userAuthenticator = new UserAuthenticator(ctx.identityResolver);\n\n this.oauth2TokenVerifier = ctx.oauth2TokenVerifier;\n\n this.permissionEvaluator = new PermissionEvaluator({\n provider: ctx.permissionProvider,\n policyEngine: new PolicyEngine(ctx.identityPermissionProvider),\n realmId: null,\n clientId: null,\n });\n }\n\n // --------------------------------------\n\n async run(request: Request, response: Response, next: Next) {\n const requestAccessContext = new RequestPermissionEvaluator(\n request,\n this.permissionEvaluator,\n );\n setRequestPermissionEvaluator(request, requestAccessContext);\n\n const { authorization: headerValue } = request.headers;\n\n try {\n if (typeof headerValue !== 'string') {\n next();\n return;\n }\n\n const header = parseAuthorizationHeader(headerValue);\n\n if (header.type === AuthorizationHeaderType.BEARER) {\n await this.verifyBearerAuthorizationHeader(request, header);\n next();\n return;\n } if (header.type === AuthorizationHeaderType.BASIC) {\n await this.verifyBasicAuthorizationHeader(request, header);\n next();\n return;\n }\n\n next(HTTPError.unsupportedHeaderType(header.type));\n } catch (e) {\n next(e as Error);\n }\n }\n\n /**\n *\n * @throws JWTError\n *\n * @param request\n * @param header\n *\n * @protected\n */\n protected async verifyBearerAuthorizationHeader(\n request: Request,\n header: BearerAuthorizationHeader,\n ) {\n const payload = await this.oauth2TokenVerifier.verify(header.token);\n if (payload.kind !== OAuth2TokenKind.ACCESS) {\n throw JWTError.payloadPropertyInvalid('kind');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n setRequestToken(request, header.token);\n\n if (payload.scope) {\n setRequestScopes(request, deserializeOAuth2Scope(payload.scope));\n }\n\n // -------------------------------------------------------\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n // -------------------------------------------------------\n\n if (!payload.sub_kind) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n\n if (identity) {\n setRequestIdentity(request, identity);\n }\n }\n\n protected async verifyBasicAuthorizationHeader(\n request: Request,\n header: BasicAuthorizationHeader,\n ) {\n if (this.options.clientAuthBasic) {\n const authenticator = await this.clientAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticator.success) {\n setRequestScopes(request, [ScopeName.GLOBAL]);\n setRequestIdentity(request, {\n type: IdentityType.CLIENT,\n data: authenticator.data,\n });\n }\n }\n\n if (this.options.userAuthBasic) {\n const authenticated = await this.userAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n\n if (authenticated.success) {\n setRequestScopes(request, [ScopeName.GLOBAL]);\n setRequestIdentity(request, {\n type: IdentityType.USER,\n data: authenticated.data,\n });\n\n return;\n }\n }\n\n if (this.options.robotAuthBasic) {\n const authenticated = await this.robotAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticated.success) {\n setRequestScopes(request, [ScopeName.GLOBAL]);\n setRequestIdentity(request, {\n type: IdentityType.ROBOT,\n data: authenticated.data,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","HTTPError","JWTError","OAuth2TokenKind","deserializeOAuth2Scope","AuthorizationHeaderType","parseAuthorizationHeader","ClientAuthenticator","PolicyEngine","RobotAuthenticator","UserAuthenticator","RequestPermissionEvaluator","setRequestIdentity","setRequestPermissionEvaluator","setRequestScopes","setRequestToken","AuthorizationMiddleware","options","oauth2TokenVerifier","permissionEvaluator","identityResolver","sessionManager","clientAuthenticator","robotAuthenticator","userAuthenticator","ctx","provider","permissionProvider","policyEngine","identityPermissionProvider","realmId","clientId","run","event","requestAccessContext","headerValue","headers","get","header","type","BEARER","verifyBearerAuthorizationHeader","BASIC","verifyBasicAuthorizationHeader","unsupportedHeaderType","payload","verify","token","kind","ACCESS","payloadPropertyInvalid","realm_id","scope","session_id","session","findOneById","expired","ping","sub_kind","sub","identity","resolve","clientAuthBasic","authenticator","safeAuthenticate","username","password","success","GLOBAL","CLIENT","data","userAuthBasic","authenticated","USER","robotAuthBasic","ROBOT"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IPermissionEvaluator } from '@authup/access';\nimport { PermissionEvaluator } from '@authup/access';\nimport type { Client, Robot, User } from '@authup/core-kit';\nimport {\n IdentityType,\n ScopeName,\n} from '@authup/core-kit';\nimport { HTTPError } from '@authup/errors';\nimport { JWTError, OAuth2TokenKind, deserializeOAuth2Scope } from '@authup/specs';\nimport type { IRoutupEvent } from 'routup';\nimport {\n AuthorizationHeaderType,\n type BasicAuthorizationHeader,\n type BearerAuthorizationHeader,\n parseAuthorizationHeader,\n} from 'hapic';\nimport {\n ClientAuthenticator,\n PolicyEngine,\n RobotAuthenticator,\n UserAuthenticator, \n} from '../../../../../core/index.ts';\nimport type {\n ICredentialsAuthenticator, \n IIdentityResolver,\n IOAuth2TokenVerifier, \n ISessionManager,\n} from '../../../../../core/index.ts';\nimport {\n RequestPermissionEvaluator,\n setRequestIdentity,\n setRequestPermissionEvaluator,\n setRequestScopes,\n setRequestToken,\n} from '../../../request/index.ts';\nimport type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';\n\nexport class AuthorizationMiddleware {\n protected options: HTTPAuthorizationMiddlewareOptions;\n\n // --------------------------------------\n\n protected oauth2TokenVerifier: IOAuth2TokenVerifier;\n\n protected permissionEvaluator: IPermissionEvaluator;\n\n // --------------------------------------\n\n protected identityResolver: IIdentityResolver;\n\n protected sessionManager : ISessionManager;\n\n // --------------------------------------\n\n protected clientAuthenticator : ICredentialsAuthenticator<Client>;\n\n protected robotAuthenticator : ICredentialsAuthenticator<Robot>;\n\n protected userAuthenticator : ICredentialsAuthenticator<User>;\n\n // --------------------------------------\n\n constructor(ctx: HTTPAuthorizationMiddlewareContext) {\n this.options = ctx.options || {};\n\n this.identityResolver = ctx.identityResolver;\n this.sessionManager = ctx.sessionManager;\n\n this.clientAuthenticator = new ClientAuthenticator(ctx.identityResolver);\n this.robotAuthenticator = new RobotAuthenticator(ctx.identityResolver);\n this.userAuthenticator = new UserAuthenticator(ctx.identityResolver);\n\n this.oauth2TokenVerifier = ctx.oauth2TokenVerifier;\n\n this.permissionEvaluator = new PermissionEvaluator({\n provider: ctx.permissionProvider,\n policyEngine: new PolicyEngine(ctx.identityPermissionProvider),\n realmId: null,\n clientId: null,\n });\n }\n\n // --------------------------------------\n\n async run(event: IRoutupEvent) {\n const requestAccessContext = new RequestPermissionEvaluator(\n event,\n this.permissionEvaluator,\n );\n setRequestPermissionEvaluator(event, requestAccessContext);\n\n const headerValue = event.headers.get('authorization');\n if (!headerValue) {\n return;\n }\n\n const header = parseAuthorizationHeader(headerValue);\n\n if (header.type === AuthorizationHeaderType.BEARER) {\n await this.verifyBearerAuthorizationHeader(event, header);\n return;\n }\n\n if (header.type === AuthorizationHeaderType.BASIC) {\n await this.verifyBasicAuthorizationHeader(event, header);\n return;\n }\n\n throw HTTPError.unsupportedHeaderType(header.type);\n }\n\n /**\n * @throws JWTError\n */\n protected async verifyBearerAuthorizationHeader(\n event: IRoutupEvent,\n header: BearerAuthorizationHeader,\n ) {\n const payload = await this.oauth2TokenVerifier.verify(header.token);\n if (payload.kind !== OAuth2TokenKind.ACCESS) {\n throw JWTError.payloadPropertyInvalid('kind');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n setRequestToken(event, header.token);\n\n if (payload.scope) {\n setRequestScopes(event, deserializeOAuth2Scope(payload.scope));\n }\n\n // -------------------------------------------------------\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n // -------------------------------------------------------\n\n if (!payload.sub_kind) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n\n if (identity) {\n setRequestIdentity(event, identity);\n }\n }\n\n protected async verifyBasicAuthorizationHeader(\n event: IRoutupEvent,\n header: BasicAuthorizationHeader,\n ) {\n if (this.options.clientAuthBasic) {\n const authenticator = await this.clientAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticator.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.CLIENT,\n data: authenticator.data,\n });\n }\n }\n\n if (this.options.userAuthBasic) {\n const authenticated = await this.userAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n\n if (authenticated.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.USER,\n data: authenticated.data,\n });\n\n return;\n }\n }\n\n if (this.options.robotAuthBasic) {\n const authenticated = await this.robotAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticated.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.ROBOT,\n data: authenticated.data,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CorsOptions } from 'cors';
1
+ import type { Options as CorsOptions } from '@routup/cors';
2
2
  import type { Router } from 'routup';
3
3
  export declare function registerCorsMiddleware(router: Router, input?: CorsOptions): void;
4
4
  //# sourceMappingURL=cors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/cors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,QASzE"}
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/cors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,QAoBzE"}
@@ -1,15 +1,23 @@
1
- import { merge } from "smob";
2
- import { coreHandler } from "routup";
3
- import cors from "cors";
1
+ import { cors } from "@routup/cors";
4
2
  //#region src/adapters/http/middleware/built-in/cors.ts
5
3
  function registerCorsMiddleware(router, input) {
6
- const options = merge(input || {}, {
7
- origin(_origin, callback) {
8
- callback(null, true);
9
- },
10
- credentials: true
11
- });
12
- router.use(coreHandler((req, res, next) => cors(options)(req, res, next)));
4
+ router.use(cors({
5
+ origin: true,
6
+ credentials: true,
7
+ exposeHeaders: [
8
+ "ratelimit-limit",
9
+ "ratelimit-remaining",
10
+ "ratelimit-reset",
11
+ "retry-after",
12
+ "etag",
13
+ "content-disposition",
14
+ "content-range",
15
+ "accept-ranges",
16
+ "location",
17
+ "www-authenticate"
18
+ ],
19
+ ...input ?? {}
20
+ }));
13
21
  }
14
22
  //#endregion
15
23
  export { registerCorsMiddleware };
@@ -1 +1 @@
1
- {"version":3,"file":"cors.mjs","names":["cors","coreHandler","merge","registerCorsMiddleware","router","input","options","origin","_origin","callback","credentials","use","req","res","next"],"sources":["../../../../../src/adapters/http/middleware/built-in/cors.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CorsOptions } from 'cors';\nimport cors from 'cors';\nimport { coreHandler } from 'routup';\nimport type { Router } from 'routup';\nimport { merge } from 'smob';\n\nexport function registerCorsMiddleware(router: Router, input?: CorsOptions) {\n const options : CorsOptions = merge(input || {}, {\n origin(_origin, callback) {\n callback(null, true);\n },\n credentials: true,\n } satisfies CorsOptions);\n\n router.use(coreHandler((req, res, next) => cors(options)(req, res, next)));\n}\n"],"mappings":";;;;AAaA,SAAgBG,uBAAuBC,QAAgBC,OAAmB;CACtE,MAAMC,UAAwBJ,MAAMG,SAAS,EAAC,EAAG;EAC7CE,OAAOC,SAASC,UAAQ;AACpBA,YAAS,MAAM,KAAA;;EAEnBC,aAAa;EACjB,CAAA;AAEAN,QAAOO,IAAIV,aAAaW,KAAKC,KAAKC,SAASd,KAAKM,QAAAA,CAASM,KAAKC,KAAKC,KAAAA,CAAAA,CAAAA"}
1
+ {"version":3,"file":"cors.mjs","names":["cors","registerCorsMiddleware","router","input","use","origin","credentials","exposeHeaders"],"sources":["../../../../../src/adapters/http/middleware/built-in/cors.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Options as CorsOptions } from '@routup/cors';\nimport { cors } from '@routup/cors';\nimport type { Router } from 'routup';\n\nexport function registerCorsMiddleware(router: Router, input?: CorsOptions) {\n router.use(cors({\n origin: true,\n credentials: true,\n // `credentials: true` is incompatible with the `*` wildcard for\n // exposeHeaders, so enumerate the response headers JS clients need.\n exposeHeaders: [\n 'ratelimit-limit',\n 'ratelimit-remaining',\n 'ratelimit-reset',\n 'retry-after',\n 'etag',\n 'content-disposition',\n 'content-range',\n 'accept-ranges',\n 'location',\n 'www-authenticate',\n ],\n ...(input ?? {}),\n }));\n}\n"],"mappings":";;AAWA,SAAgBC,uBAAuBC,QAAgBC,OAAmB;AACtED,QAAOE,IAAIJ,KAAK;EACZK,QAAQ;EACRC,aAAa;EAGbC,eAAe;GACX;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;EACD,GAAIJ,SAAS,EAAE;EACnB,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAerC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,QAmCrD"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,QAerD"}
@@ -1,29 +1,18 @@
1
1
  import { sanitizeError } from "../../../../utils/error.mjs";
2
2
  import "../../../../utils/index.mjs";
3
3
  import { useLogger } from "@authup/server-kit";
4
- import { isObject } from "@authup/kit";
5
- import { errorHandler, send } from "routup";
4
+ import { defineErrorHandler } from "routup";
6
5
  //#region src/adapters/http/middleware/built-in/error.ts
7
6
  function registerErrorMiddleware(router) {
8
- router.use(errorHandler((error, request, response) => {
9
- let next;
10
- if (error.cause) next = sanitizeError(error.cause);
11
- else next = sanitizeError(error);
12
- const payload = {
13
- statusCode: next.statusCode,
14
- code: `${next.code}`,
15
- message: next.message,
16
- issues: next.issues
17
- };
18
- if (next.statusCode >= 500 && next.statusCode < 600) {
7
+ router.use(defineErrorHandler((error, event) => {
8
+ const next = sanitizeError(error.cause ?? error);
9
+ const payload = next.toJSON();
10
+ if (next.status >= 500 && next.status < 600) {
19
11
  useLogger().error(next);
20
12
  payload.message = "An internal server error occurred.";
21
- } else if (isObject(next.data)) {
22
- const keys = Object.keys(next.data);
23
- for (const key of keys) payload[key] = next.data[key];
24
13
  }
25
- response.statusCode = payload.statusCode;
26
- return send(response, payload);
14
+ event.response.status = next.status;
15
+ return payload;
27
16
  }));
28
17
  }
29
18
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"error.mjs","names":["isObject","errorHandler","send","useLogger","sanitizeError","registerErrorMiddleware","router","use","error","request","response","next","cause","payload","statusCode","code","message","issues","isServerError","data","keys","Object","key"],"sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/kit';\nimport type { Router } from 'routup';\nimport { errorHandler, send } from 'routup';\nimport { useLogger } from '@authup/server-kit';\nimport type { AuthupError } from '@authup/errors';\nimport type { Issue } from 'validup';\nimport { sanitizeError } from '../../../../utils/index.ts';\n\ntype ErrorResponsePayload = {\n statusCode: number,\n code: string,\n message: string,\n issues: Issue[],\n [key: string]: any\n};\n\nexport function registerErrorMiddleware(router: Router) {\n router.use(errorHandler((\n error,\n request,\n response,\n ) => {\n let next : AuthupError;\n if (error.cause) {\n next = sanitizeError(error.cause);\n } else {\n next = sanitizeError(error);\n }\n\n const payload : ErrorResponsePayload = {\n statusCode: next.statusCode,\n code: `${next.code}`,\n message: next.message,\n issues: next.issues,\n };\n\n const isServerError = next.statusCode >= 500 && next.statusCode < 600;\n if (isServerError) {\n useLogger().error(next);\n\n payload.message = 'An internal server error occurred.';\n } else if (isObject(next.data)) {\n const keys = Object.keys(next.data);\n for (const key of keys) {\n payload[key] = next.data[key];\n }\n }\n\n response.statusCode = payload.statusCode;\n return send(response, payload);\n }));\n}\n"],"mappings":";;;;;;AAuBA,SAAgBK,wBAAwBC,QAAc;AAClDA,QAAOC,IAAIN,cACPO,OACAC,SACAC,aAAAA;EAEA,IAAIC;AACJ,MAAIH,MAAMI,MACND,QAAOP,cAAcI,MAAMI,MAAK;MAEhCD,QAAOP,cAAcI,MAAAA;EAGzB,MAAMK,UAAiC;GACnCC,YAAYH,KAAKG;GACjBC,MAAM,GAAGJ,KAAKI;GACdC,SAASL,KAAKK;GACdC,QAAQN,KAAKM;GACjB;AAGA,MADsBN,KAAKG,cAAc,OAAOH,KAAKG,aAAa,KAC/C;AACfX,cAAAA,CAAYK,MAAMG,KAAAA;AAElBE,WAAQG,UAAU;aACXhB,SAASW,KAAKQ,KAAI,EAAG;GAC5B,MAAMC,OAAOC,OAAOD,KAAKT,KAAKQ,KAAI;AAClC,QAAK,MAAMG,OAAOF,KACdP,SAAQS,OAAOX,KAAKQ,KAAKG;;AAIjCZ,WAASI,aAAaD,QAAQC;AAC9B,SAAOZ,KAAKQ,UAAUG,QAAAA;GAC1B,CAAA"}
1
+ {"version":3,"file":"error.mjs","names":["defineErrorHandler","useLogger","sanitizeError","registerErrorMiddleware","router","use","error","event","next","cause","payload","toJSON","isServerError","status","message","response"],"sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Router } from 'routup';\nimport { defineErrorHandler } from 'routup';\nimport { useLogger } from '@authup/server-kit';\nimport type { AuthupError } from '@authup/errors';\nimport { sanitizeError } from '../../../../utils/index.ts';\n\nexport function registerErrorMiddleware(router: Router) {\n router.use(defineErrorHandler((error, event) => {\n const next : AuthupError = sanitizeError(error.cause ?? error);\n\n const payload = next.toJSON();\n\n const isServerError = next.status >= 500 && next.status < 600;\n if (isServerError) {\n useLogger().error(next);\n payload.message = 'An internal server error occurred.';\n }\n\n event.response.status = next.status;\n return payload;\n }));\n}\n"],"mappings":";;;;;AAaA,SAAgBG,wBAAwBC,QAAc;AAClDA,QAAOC,IAAIL,oBAAoBM,OAAOC,UAAAA;EAClC,MAAMC,OAAqBN,cAAcI,MAAMG,SAASH,MAAAA;EAExD,MAAMI,UAAUF,KAAKG,QAAM;AAG3B,MADsBH,KAAKK,UAAU,OAAOL,KAAKK,SAAS,KACvC;AACfZ,cAAAA,CAAYK,MAAME,KAAAA;AAClBE,WAAQI,UAAU;;AAGtBP,QAAMQ,SAASF,SAASL,KAAKK;AAC7B,SAAOH;GACX,CAAA"}
@@ -4,7 +4,7 @@ import "./authorization/index.mjs";
4
4
  import { ForceLoggedInMiddleware } from "./loggedin/module.mjs";
5
5
  import { ForceUserLoggedInMiddleware } from "./loggedin/user.mjs";
6
6
  import "./loggedin/index.mjs";
7
- import { registerAssetsMiddleware } from "./assets.mjs";
7
+ import { VITE_SERVER_STORE_KEY, registerAssetsMiddleware } from "./assets.mjs";
8
8
  import { registerBasicMiddleware } from "./basic.mjs";
9
9
  import { registerCorsMiddleware } from "./cors.mjs";
10
10
  import { registerErrorMiddleware } from "./error.mjs";
@@ -12,4 +12,4 @@ import { createLoggerMiddleware } from "./logger.mjs";
12
12
  import { registerPrometheusMiddleware } from "./prometheus.mjs";
13
13
  import { registerRateLimitMiddleware } from "./rate-limit.mjs";
14
14
  import { createSwaggerMiddleware } from "./swagger.mjs";
15
- export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, createAuthorizationMiddleware, createLoggerMiddleware, createSwaggerMiddleware, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware };
15
+ export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, VITE_SERVER_STORE_KEY, createAuthorizationMiddleware, createLoggerMiddleware, createSwaggerMiddleware, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware };
@@ -1,6 +1,6 @@
1
1
  import type { HandlerInterface } from '@routup/decorators';
2
- import type { Next, Request, Response } from 'routup';
2
+ import type { IRoutupEvent } from 'routup';
3
3
  export declare class ForceLoggedInMiddleware implements HandlerInterface {
4
- run(request: Request, response: Response, next: Next): void;
4
+ run(event: IRoutupEvent): Promise<Response | undefined>;
5
5
  }
6
6
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGtD,qBAAa,uBAAwB,YAAW,gBAAgB;IACrD,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;CAI9D"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG3C,qBAAa,uBAAwB,YAAW,gBAAgB;IACrD,GAAG,CAAC,KAAK,EAAE,YAAY;CAIjC"}
@@ -2,9 +2,9 @@ import { useRequestIdentityOrFail } from "../../../request/helpers/identity.mjs"
2
2
  import "../../../request/index.mjs";
3
3
  //#region src/adapters/http/middleware/built-in/loggedin/module.ts
4
4
  var ForceLoggedInMiddleware = class {
5
- run(request, response, next) {
6
- useRequestIdentityOrFail(request);
7
- next();
5
+ run(event) {
6
+ useRequestIdentityOrFail(event);
7
+ return event.next();
8
8
  }
9
9
  };
10
10
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["useRequestIdentityOrFail","ForceLoggedInMiddleware","run","request","response","next"],"sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { HandlerInterface } from '@routup/decorators';\nimport type { Next, Request, Response } from 'routup';\nimport { useRequestIdentityOrFail } from '../../../request/index.ts';\n\nexport class ForceLoggedInMiddleware implements HandlerInterface {\n public run(request: Request, response: Response, next: Next) {\n useRequestIdentityOrFail(request);\n next();\n }\n}\n"],"mappings":";;;AAWA,IAAaC,0BAAb,MAAaA;CACFC,IAAIC,SAAkBC,UAAoBC,MAAY;AACzDL,2BAAyBG,QAAAA;AACzBE,QAAAA"}
1
+ {"version":3,"file":"module.mjs","names":["useRequestIdentityOrFail","ForceLoggedInMiddleware","run","event","next"],"sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { HandlerInterface } from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestIdentityOrFail } from '../../../request/index.ts';\n\nexport class ForceLoggedInMiddleware implements HandlerInterface {\n public run(event: IRoutupEvent) {\n useRequestIdentityOrFail(event);\n return event.next();\n }\n}\n"],"mappings":";;;AAWA,IAAaC,0BAAb,MAAaA;CACFC,IAAIC,OAAqB;AAC5BH,2BAAyBG,MAAAA;AACzB,SAAOA,MAAMC,MAAI"}
@@ -1,6 +1,6 @@
1
1
  import type { HandlerInterface } from '@routup/decorators';
2
- import type { Next, Request, Response } from 'routup';
2
+ import type { IRoutupEvent } from 'routup';
3
3
  export declare class ForceUserLoggedInMiddleware implements HandlerInterface {
4
- run(request: Request, response: Response, next: Next): void;
4
+ run(event: IRoutupEvent): Promise<Response | undefined>;
5
5
  }
6
6
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/user.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGtD,qBAAa,2BAA4B,YAAW,gBAAgB;IACzD,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;CAS9D"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/user.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG3C,qBAAa,2BAA4B,YAAW,gBAAgB;IACzD,GAAG,CAAC,KAAK,EAAE,YAAY;CASjC"}
@@ -3,10 +3,10 @@ import "../../../request/index.mjs";
3
3
  import { UnauthorizedError } from "@ebec/http";
4
4
  //#region src/adapters/http/middleware/built-in/loggedin/user.ts
5
5
  var ForceUserLoggedInMiddleware = class {
6
- run(request, response, next) {
7
- const identity = useRequestIdentity(request);
6
+ run(event) {
7
+ const identity = useRequestIdentity(event);
8
8
  if (!identity || identity.type !== "user") throw new UnauthorizedError();
9
- next();
9
+ return event.next();
10
10
  }
11
11
  };
12
12
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"user.mjs","names":["UnauthorizedError","useRequestIdentity","ForceUserLoggedInMiddleware","run","request","response","next","identity","type"],"sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/user.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { UnauthorizedError } from '@ebec/http';\nimport type { HandlerInterface } from '@routup/decorators';\nimport type { Next, Request, Response } from 'routup';\nimport { useRequestIdentity } from '../../../request/index.ts';\n\nexport class ForceUserLoggedInMiddleware implements HandlerInterface {\n public run(request: Request, response: Response, next: Next) {\n const identity = useRequestIdentity(request);\n\n if (!identity || identity.type !== 'user') {\n throw new UnauthorizedError();\n }\n\n next();\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,8BAAb,MAAaA;CACFC,IAAIC,SAAkBC,UAAoBC,MAAY;EACzD,MAAMC,WAAWN,mBAAmBG,QAAAA;AAEpC,MAAI,CAACG,YAAYA,SAASC,SAAS,OAC/B,OAAM,IAAIR,mBAAAA;AAGdM,QAAAA"}
1
+ {"version":3,"file":"user.mjs","names":["UnauthorizedError","useRequestIdentity","ForceUserLoggedInMiddleware","run","event","identity","type","next"],"sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/user.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { UnauthorizedError } from '@ebec/http';\nimport type { HandlerInterface } from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestIdentity } from '../../../request/index.ts';\n\nexport class ForceUserLoggedInMiddleware implements HandlerInterface {\n public run(event: IRoutupEvent) {\n const identity = useRequestIdentity(event);\n\n if (!identity || identity.type !== 'user') {\n throw new UnauthorizedError();\n }\n\n return event.next();\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,8BAAb,MAAaA;CACFC,IAAIC,OAAqB;EAC5B,MAAMC,WAAWJ,mBAAmBG,MAAAA;AAEpC,MAAI,CAACC,YAAYA,SAASC,SAAS,OAC/B,OAAM,IAAIN,mBAAAA;AAGd,SAAOI,MAAMG,MAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/logger.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACR,OAAO,EAIV,MAAM,QAAQ,CAAC;AAMhB,KAAK,uBAAuB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;CACd,CAAC;AACF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAI,OAAO,CAmDjF"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/logger.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKtC,KAAK,uBAAuB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;CACd,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAI,OAAO,CA6BjF"}
@@ -1,36 +1,28 @@
1
- import { useRequestIdentity } from "../../request/helpers/identity.mjs";
2
- import "../../request/index.mjs";
3
1
  import { useLogger } from "@authup/server-kit";
4
2
  import { EnvironmentName } from "@authup/kit";
5
- import { coreHandler, getRequestIP, useRequestPath } from "routup";
6
- import morgan from "morgan";
3
+ import { getRequestIP } from "routup";
4
+ import { logger } from "@routup/logger";
7
5
  //#region src/adapters/http/middleware/built-in/logger.ts
8
6
  function createLoggerMiddleware(options) {
9
- return coreHandler((request, response, next) => {
10
- morgan((tokens, req, res) => {
11
- const parts = [getRequestIP(req, { trustProxy: true })];
12
- const identity = useRequestIdentity(req);
13
- if (identity) parts.push(`${identity.type}#${identity.id}`);
14
- return [
15
- ...parts,
16
- "-",
17
- tokens.method(req, res),
18
- tokens.url(req, res),
19
- tokens.status(req, res),
20
- "-",
21
- `${tokens["response-time"](req, res)}ms`
22
- ].join(" ");
23
- }, {
24
- stream: { write(message) {
25
- if (options.env !== EnvironmentName.TEST) useLogger().http(message.replace("\n", ""));
26
- } },
27
- skip(req, res) {
28
- const path = useRequestPath(req);
29
- if (path.length === 0 || path === "/") return true;
30
- if (options.env === EnvironmentName.PRODUCTION) return res.statusCode < 400;
31
- return false;
32
- }
33
- })(request, response, next);
7
+ return logger({
8
+ format: (tokens, event, response) => [
9
+ getRequestIP(event) || "-",
10
+ "-",
11
+ tokens.method(event, response) ?? "-",
12
+ tokens.url(event, response) ?? "-",
13
+ tokens.status(event, response) ?? "-",
14
+ "-",
15
+ tokens["response-time"](event, response) ?? "-"
16
+ ].join(" "),
17
+ write(line) {
18
+ if (options.env !== EnvironmentName.TEST) useLogger().http(line);
19
+ },
20
+ skip(event, response) {
21
+ const path = event.path || "";
22
+ if (path.length === 0 || path === "/") return true;
23
+ if (options.env === EnvironmentName.PRODUCTION) return (response?.status ?? 0) < 400;
24
+ return false;
25
+ }
34
26
  });
35
27
  }
36
28
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"logger.mjs","names":["morgan","coreHandler","getRequestIP","useRequestPath","useLogger","EnvironmentName","useRequestIdentity","createLoggerMiddleware","options","request","response","next","tokens","req","res","parts","trustProxy","identity","push","type","id","method","url","status","join","stream","write","message","env","TEST","http","replace","skip","path","length","PRODUCTION","statusCode"],"sources":["../../../../../src/adapters/http/middleware/built-in/logger.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport morgan from 'morgan';\nimport type {\n Handler,\n Next, \n Request, \n Response,\n} from 'routup';\nimport { coreHandler, getRequestIP, useRequestPath } from 'routup';\nimport { useLogger } from '@authup/server-kit';\nimport { EnvironmentName } from '@authup/kit';\nimport { useRequestIdentity } from '../../request/index.ts';\n\ntype LoggerMiddlewareOptions = {\n env: string\n};\nexport function createLoggerMiddleware(options: LoggerMiddlewareOptions) : Handler {\n return coreHandler((\n request: Request,\n response: Response,\n next: Next,\n ) => {\n morgan(\n (tokens, req: Request, res: Response) => {\n const parts = [\n getRequestIP(req, { trustProxy: true }),\n ];\n\n const identity = useRequestIdentity(req);\n if (identity) {\n parts.push(`${identity.type}#${identity.id}`);\n }\n\n return [\n ...parts,\n '-',\n tokens.method(req, res),\n tokens.url(req, res),\n tokens.status(req, res),\n '-',\n `${tokens['response-time'](req, res)}ms`,\n ].join(' ');\n },\n {\n stream: {\n write(message) {\n if (options.env !== EnvironmentName.TEST) {\n useLogger()\n .http(message.replace('\\n', ''));\n }\n },\n },\n skip(req: Request, res: Response): boolean {\n const path = useRequestPath(req);\n if (path.length === 0 || path === '/') {\n return true;\n }\n\n if (options.env === EnvironmentName.PRODUCTION) {\n return res.statusCode < 400;\n }\n\n return false;\n },\n },\n )(request, response, next);\n });\n}\n"],"mappings":";;;;;;;AAsBA,SAAgBO,uBAAuBC,SAAgC;AACnE,QAAOP,aACHQ,SACAC,UACAC,SAAAA;AAEAX,UACKY,QAAQC,KAAcC,QAAAA;GACnB,MAAMC,QAAQ,CACVb,aAAaW,KAAK,EAAEG,YAAY,MAAK,CAAA,CACxC;GAED,MAAMC,WAAWX,mBAAmBO,IAAAA;AACpC,OAAII,SACAF,OAAMG,KAAK,GAAGD,SAASE,KAAK,GAAGF,SAASG,KAAI;AAGhD,UAAO;OACAL;IACH;IACAH,OAAOS,OAAOR,KAAKC,IAAAA;IACnBF,OAAOU,IAAIT,KAAKC,IAAAA;IAChBF,OAAOW,OAAOV,KAAKC,IAAAA;IACnB;IACA,GAAGF,OAAO,iBAAiBC,KAAKC,IAAAA,CAAK;IACxC,CAACU,KAAK,IAAA;KAEX;GACIC,QAAQ,EACJC,MAAMC,SAAO;AACT,QAAInB,QAAQoB,QAAQvB,gBAAgBwB,KAChCzB,YAAAA,CACK0B,KAAKH,QAAQI,QAAQ,MAAM,GAAA,CAAA;MAG5C;GACAC,KAAKnB,KAAcC,KAAa;IAC5B,MAAMmB,OAAO9B,eAAeU,IAAAA;AAC5B,QAAIoB,KAAKC,WAAW,KAAKD,SAAS,IAC9B,QAAO;AAGX,QAAIzB,QAAQoB,QAAQvB,gBAAgB8B,WAChC,QAAOrB,IAAIsB,aAAa;AAG5B,WAAO;;GAEf,CAAA,CACF3B,SAASC,UAAUC,KAAAA;GACzB"}
1
+ {"version":3,"file":"logger.mjs","names":["logger","getRequestIP","useLogger","EnvironmentName","createLoggerMiddleware","options","format","tokens","event","response","method","url","status","join","write","line","env","TEST","http","skip","path","length","PRODUCTION"],"sources":["../../../../../src/adapters/http/middleware/built-in/logger.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { logger } from '@routup/logger';\nimport type { Handler } from 'routup';\nimport { getRequestIP } from 'routup';\nimport { useLogger } from '@authup/server-kit';\nimport { EnvironmentName } from '@authup/kit';\n\ntype LoggerMiddlewareOptions = {\n env: string\n};\n\nexport function createLoggerMiddleware(options: LoggerMiddlewareOptions) : Handler {\n return logger({\n format: (tokens, event, response) => [\n getRequestIP(event) || '-',\n '-',\n tokens.method(event, response) ?? '-',\n tokens.url(event, response) ?? '-',\n tokens.status(event, response) ?? '-',\n '-',\n tokens['response-time'](event, response) ?? '-',\n ].join(' '),\n write(line) {\n if (options.env !== EnvironmentName.TEST) {\n useLogger().http(line);\n }\n },\n skip(event, response): boolean {\n const path = event.path || '';\n if (path.length === 0 || path === '/') {\n return true;\n }\n\n if (options.env === EnvironmentName.PRODUCTION) {\n return (response?.status ?? 0) < 400;\n }\n\n return false;\n },\n });\n}\n"],"mappings":";;;;;AAiBA,SAAgBI,uBAAuBC,SAAgC;AACnE,QAAOL,OAAO;EACVM,SAASC,QAAQC,OAAOC,aAAa;GACjCR,aAAaO,MAAAA,IAAU;GACvB;GACAD,OAAOG,OAAOF,OAAOC,SAAAA,IAAa;GAClCF,OAAOI,IAAIH,OAAOC,SAAAA,IAAa;GAC/BF,OAAOK,OAAOJ,OAAOC,SAAAA,IAAa;GAClC;GACAF,OAAO,iBAAiBC,OAAOC,SAAAA,IAAa;GAC/C,CAACI,KAAK,IAAA;EACPC,MAAMC,MAAI;AACN,OAAIV,QAAQW,QAAQb,gBAAgBc,KAChCf,YAAAA,CAAYgB,KAAKH,KAAAA;;EAGzBI,KAAKX,OAAOC,UAAQ;GAChB,MAAMW,OAAOZ,MAAMY,QAAQ;AAC3B,OAAIA,KAAKC,WAAW,KAAKD,SAAS,IAC9B,QAAO;AAGX,OAAIf,QAAQW,QAAQb,gBAAgBmB,WAChC,SAAQb,UAAUG,UAAU,KAAK;AAGrC,UAAO;;EAEf,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"prometheus.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,QAuBhF"}
1
+ {"version":3,"file":"prometheus.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,QAuBhF"}
@@ -1,9 +1,8 @@
1
- import { useRequestPath } from "routup";
2
1
  import { prometheus } from "@routup/prometheus";
3
2
  //#region src/adapters/http/middleware/built-in/prometheus.ts
4
3
  function registerPrometheusMiddleware(router, input) {
5
- let options = { skip(req) {
6
- let path = useRequestPath(req);
4
+ let options = { skip(event) {
5
+ let { path } = event;
7
6
  if (!path.startsWith("/")) path = `/${path}`;
8
7
  return path.startsWith("/authorize") || path.startsWith("/token") || path.startsWith("/metrics") || path === "/";
9
8
  } };
@@ -1 +1 @@
1
- {"version":3,"file":"prometheus.mjs","names":["prometheus","useRequestPath","registerPrometheusMiddleware","router","input","options","skip","req","path","startsWith","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OptionsInput } from '@routup/prometheus';\nimport { prometheus } from '@routup/prometheus';\nimport type { Router } from 'routup';\nimport { useRequestPath } from 'routup';\n\nexport function registerPrometheusMiddleware(router: Router, input?: OptionsInput) {\n let options : OptionsInput = {\n skip(req) {\n let path = useRequestPath(req);\n if (!path.startsWith('/')) {\n path = `/${path}`;\n }\n\n return path.startsWith('/authorize') ||\n path.startsWith('/token') ||\n path.startsWith('/metrics') ||\n path === '/';\n },\n };\n\n if (input) {\n options = {\n ...options,\n ...input,\n };\n }\n\n router.use(prometheus(options));\n}\n"],"mappings":";;;AAYA,SAAgBE,6BAA6BC,QAAgBC,OAAoB;CAC7E,IAAIC,UAAyB,EACzBC,KAAKC,KAAG;EACJ,IAAIC,OAAOP,eAAeM,IAAAA;AAC1B,MAAI,CAACC,KAAKC,WAAW,IAAA,CACjBD,QAAO,IAAIA;AAGf,SAAOA,KAAKC,WAAW,aAAA,IACnBD,KAAKC,WAAW,SAAA,IAChBD,KAAKC,WAAW,WAAA,IAChBD,SAAS;IAErB;AAEA,KAAIJ,MACAC,WAAU;EACN,GAAGA;EACH,GAAGD;EACP;AAGJD,QAAOO,IAAIV,WAAWK,QAAAA,CAAAA"}
1
+ {"version":3,"file":"prometheus.mjs","names":["prometheus","registerPrometheusMiddleware","router","input","options","skip","event","path","startsWith","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OptionsInput } from '@routup/prometheus';\nimport { prometheus } from '@routup/prometheus';\nimport type { Router } from 'routup';\n\nexport function registerPrometheusMiddleware(router: Router, input?: OptionsInput) {\n let options : OptionsInput = {\n skip(event) {\n let { path } = event;\n if (!path.startsWith('/')) {\n path = `/${path}`;\n }\n\n return path.startsWith('/authorize') ||\n path.startsWith('/token') ||\n path.startsWith('/metrics') ||\n path === '/';\n },\n };\n\n if (input) {\n options = {\n ...options,\n ...input,\n };\n }\n\n router.use(prometheus(options));\n}\n"],"mappings":";;AAWA,SAAgBC,6BAA6BC,QAAgBC,OAAoB;CAC7E,IAAIC,UAAyB,EACzBC,KAAKC,OAAK;EACN,IAAI,EAAEC,SAASD;AACf,MAAI,CAACC,KAAKC,WAAW,IAAA,CACjBD,QAAO,IAAIA;AAGf,SAAOA,KAAKC,WAAW,aAAA,IACnBD,KAAKC,WAAW,SAAA,IAChBD,KAAKC,WAAW,WAAA,IAChBD,SAAS;IAErB;AAEA,KAAIJ,MACAC,WAAU;EACN,GAAGA;EACH,GAAGD;EACP;AAGJD,QAAOO,IAAIT,WAAWI,QAAAA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AAI9C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,QAyB/E"}
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,QAyB/E"}
@@ -5,8 +5,8 @@ import { rateLimit } from "@routup/rate-limit";
5
5
  //#region src/adapters/http/middleware/built-in/rate-limit.ts
6
6
  function registerRateLimitMiddleware(router, input) {
7
7
  let options = {
8
- max(req) {
9
- const identity = useRequestIdentity(req);
8
+ max(event) {
9
+ const identity = useRequestIdentity(event);
10
10
  if (!identity) return 1200;
11
11
  switch (identity.type) {
12
12
  case "robot":
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.mjs","names":["rateLimit","merge","useRequestIdentity","registerRateLimitMiddleware","router","input","options","max","req","identity","type","windowMs","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OptionsInput } from '@routup/rate-limit';\nimport { rateLimit } from '@routup/rate-limit';\nimport type { Request, Router } from 'routup';\nimport { merge } from 'smob';\nimport { useRequestIdentity } from '../../request/index.ts';\n\nexport function registerRateLimitMiddleware(router: Router, input?: OptionsInput) {\n let options : OptionsInput = {\n max(req: Request) {\n const identity = useRequestIdentity(req);\n if (!identity) {\n return 60 * 20; // 20 req. p. sec\n }\n\n switch (identity.type) {\n case 'robot':\n case 'client': {\n return 60 * 5_000; // 1000 req p. sec\n }\n case 'user':\n default: {\n return 60 * 100; // 100 req p. sec\n }\n }\n },\n windowMs: 60 * 1000, // 60 sec\n };\n\n options = merge(input || {}, options);\n\n router.use(rateLimit(options));\n}\n"],"mappings":";;;;;AAaA,SAAgBG,4BAA4BC,QAAgBC,OAAoB;CAC5E,IAAIC,UAAyB;EACzBC,IAAIC,KAAY;GACZ,MAAMC,WAAWP,mBAAmBM,IAAAA;AACpC,OAAI,CAACC,SACD,QAAO;AAGX,WAAQA,SAASC,MAAjB;IACI,KAAK;IACL,KAAK,SACD,QAAO,KAAK;IAGhB,QACI,QAAO;;;EAInBC,UAAU,KAAK;EACnB;AAEAL,WAAUL,MAAMI,SAAS,EAAC,EAAGC,QAAAA;AAE7BF,QAAOQ,IAAIZ,UAAUM,QAAAA,CAAAA"}
1
+ {"version":3,"file":"rate-limit.mjs","names":["rateLimit","merge","useRequestIdentity","registerRateLimitMiddleware","router","input","options","max","event","identity","type","windowMs","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OptionsInput } from '@routup/rate-limit';\nimport { rateLimit } from '@routup/rate-limit';\nimport type { Router } from 'routup';\nimport { merge } from 'smob';\nimport { useRequestIdentity } from '../../request/index.ts';\n\nexport function registerRateLimitMiddleware(router: Router, input?: OptionsInput) {\n let options : OptionsInput = {\n max(event) {\n const identity = useRequestIdentity(event);\n if (!identity) {\n return 60 * 20; // 20 req. p. sec\n }\n\n switch (identity.type) {\n case 'robot':\n case 'client': {\n return 60 * 5_000; // 1000 req p. sec\n }\n case 'user':\n default: {\n return 60 * 100; // 100 req p. sec\n }\n }\n },\n windowMs: 60 * 1000, // 60 sec\n };\n\n options = merge(input || {}, options);\n\n router.use(rateLimit(options));\n}\n"],"mappings":";;;;;AAaA,SAAgBG,4BAA4BC,QAAgBC,OAAoB;CAC5E,IAAIC,UAAyB;EACzBC,IAAIC,OAAK;GACL,MAAMC,WAAWP,mBAAmBM,MAAAA;AACpC,OAAI,CAACC,SACD,QAAO;AAGX,WAAQA,SAASC,MAAjB;IACI,KAAK;IACL,KAAK,SACD,QAAO,KAAK;IAGhB,QACI,QAAO;;;EAInBC,UAAU,KAAK;EACnB;AAEAL,WAAUL,MAAMI,SAAS,EAAC,EAAGC,QAAAA;AAE7BF,QAAOQ,IAAIZ,UAAUM,QAAAA,CAAAA"}