@authup/server-core 1.0.0-beta.51 → 1.0.0-beta.52

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 (482) hide show
  1. package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
  2. package/dist/adapters/database/data-source/options/module.mjs +2 -0
  3. package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client/entity.d.ts +1 -0
  5. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  6. package/dist/adapters/database/domains/client/entity.mjs +5 -0
  7. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  8. package/dist/adapters/database/domains/index.d.ts +1 -0
  9. package/dist/adapters/database/domains/index.d.ts.map +1 -1
  10. package/dist/adapters/database/domains/index.mjs +3 -1
  11. package/dist/adapters/database/domains/session/entity.mjs +1 -1
  12. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  13. package/dist/adapters/database/domains/session-token/entity.d.ts +17 -0
  14. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -0
  15. package/dist/adapters/database/domains/session-token/entity.mjs +95 -0
  16. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -0
  17. package/dist/adapters/database/domains/session-token/index.d.ts +2 -0
  18. package/dist/adapters/database/domains/session-token/index.d.ts.map +1 -0
  19. package/dist/adapters/database/domains/session-token/index.mjs +5 -0
  20. package/dist/adapters/database/index.mjs +2 -1
  21. package/dist/adapters/database/migrations/mysql/1783325495597-Default.d.ts +28 -0
  22. package/dist/adapters/database/migrations/mysql/1783325495597-Default.d.ts.map +1 -0
  23. package/dist/adapters/database/migrations/mysql/1783325495597-Default.mjs +85 -0
  24. package/dist/adapters/database/migrations/mysql/1783325495597-Default.mjs.map +1 -0
  25. package/dist/adapters/database/migrations/postgres/1783325495597-Default.d.ts +28 -0
  26. package/dist/adapters/database/migrations/postgres/1783325495597-Default.d.ts.map +1 -0
  27. package/dist/adapters/database/migrations/postgres/1783325495597-Default.mjs +79 -0
  28. package/dist/adapters/database/migrations/postgres/1783325495597-Default.mjs.map +1 -0
  29. package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
  30. package/dist/adapters/database/subscriber/module.mjs +4 -3
  31. package/dist/adapters/database/subscriber/module.mjs.map +1 -1
  32. package/dist/adapters/http/adapters/index.mjs +2 -1
  33. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +2 -1
  34. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  35. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +2 -1
  36. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
  37. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +10 -4
  38. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  39. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  40. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +3 -0
  41. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  42. package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +2 -1
  43. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
  44. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +5 -3
  45. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  46. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -1
  47. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
  48. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +12 -5
  49. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  50. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +2 -0
  51. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  52. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +1 -1
  53. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +1 -1
  54. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts +1 -0
  55. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts.map +1 -1
  56. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.mjs +2 -1
  57. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.d.ts +9 -0
  58. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.d.ts.map +1 -0
  59. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.mjs +21 -0
  60. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.mjs.map +1 -0
  61. package/dist/adapters/http/adapters/oauth2/index.mjs +2 -1
  62. package/dist/adapters/http/controllers/entities/client/module.mjs +2 -2
  63. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +1 -1
  64. package/dist/adapters/http/controllers/entities/client-role/module.mjs +1 -1
  65. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +1 -1
  66. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +1 -1
  67. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  68. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +4 -3
  69. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  70. package/dist/adapters/http/controllers/entities/index.d.ts +1 -0
  71. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  72. package/dist/adapters/http/controllers/entities/index.mjs +3 -1
  73. package/dist/adapters/http/controllers/entities/permission/module.mjs +1 -1
  74. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +1 -1
  75. package/dist/adapters/http/controllers/entities/policy/module.mjs +1 -1
  76. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  77. package/dist/adapters/http/controllers/entities/realm/module.mjs +11 -8
  78. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  79. package/dist/adapters/http/controllers/entities/robot/module.mjs +2 -2
  80. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +1 -1
  81. package/dist/adapters/http/controllers/entities/robot-role/module.mjs +1 -1
  82. package/dist/adapters/http/controllers/entities/role/module.mjs +1 -1
  83. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +1 -1
  84. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +1 -1
  85. package/dist/adapters/http/controllers/entities/scope/module.mjs +1 -1
  86. package/dist/adapters/http/controllers/entities/session/index.d.ts +2 -0
  87. package/dist/adapters/http/controllers/entities/session/index.d.ts.map +1 -0
  88. package/dist/adapters/http/controllers/entities/session/index.mjs +5 -0
  89. package/dist/adapters/http/controllers/entities/session/module.d.ts +16 -0
  90. package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -0
  91. package/dist/adapters/http/controllers/entities/session/module.mjs +102 -0
  92. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -0
  93. package/dist/adapters/http/controllers/entities/user/module.mjs +2 -2
  94. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +1 -1
  95. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +1 -1
  96. package/dist/adapters/http/controllers/entities/user-role/module.mjs +1 -1
  97. package/dist/adapters/http/controllers/index.mjs +3 -1
  98. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  99. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +22 -9
  100. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  101. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +7 -4
  102. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
  103. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  104. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  105. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  106. package/dist/adapters/http/controllers/workflows/logout/index.d.ts +3 -0
  107. package/dist/adapters/http/controllers/workflows/logout/index.d.ts.map +1 -0
  108. package/dist/adapters/http/controllers/workflows/logout/index.mjs +5 -0
  109. package/dist/adapters/http/controllers/workflows/logout/module.d.ts +14 -0
  110. package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -0
  111. package/dist/adapters/http/controllers/workflows/logout/module.mjs +101 -0
  112. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -0
  113. package/dist/adapters/http/controllers/workflows/logout/types.d.ts +9 -0
  114. package/dist/adapters/http/controllers/workflows/logout/types.d.ts.map +1 -0
  115. package/dist/adapters/http/controllers/workflows/logout/types.mjs +4 -0
  116. package/dist/adapters/http/controllers/workflows/status/module.mjs +1 -1
  117. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  118. package/dist/adapters/http/controllers/workflows/token/module.mjs +10 -3
  119. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  120. package/dist/adapters/http/controllers/workflows/token/types.d.ts +8 -1
  121. package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
  122. package/dist/adapters/http/index.mjs +16 -12
  123. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  124. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +2 -0
  125. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  126. package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
  127. package/dist/adapters/http/middleware/built-in/logger.d.ts +1 -0
  128. package/dist/adapters/http/middleware/built-in/logger.d.ts.map +1 -1
  129. package/dist/adapters/http/middleware/built-in/logger.mjs +23 -2
  130. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  131. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  132. package/dist/adapters/http/middleware/built-in/prometheus.mjs +1 -1
  133. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  134. package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts.map +1 -1
  135. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs +3 -8
  136. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs.map +1 -1
  137. package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +2 -2
  138. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +2 -2
  139. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +1 -1
  140. package/dist/adapters/http/middleware/index.mjs +2 -2
  141. package/dist/adapters/http/request/helpers/index.d.ts +1 -0
  142. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  143. package/dist/adapters/http/request/helpers/index.mjs +2 -1
  144. package/dist/adapters/http/request/helpers/session-id.d.ts +9 -0
  145. package/dist/adapters/http/request/helpers/session-id.d.ts.map +1 -0
  146. package/dist/adapters/http/request/helpers/session-id.mjs +19 -0
  147. package/dist/adapters/http/request/helpers/session-id.mjs.map +1 -0
  148. package/dist/adapters/http/request/index.mjs +2 -1
  149. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  150. package/dist/adapters/http/request/permission/module.mjs +4 -2
  151. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  152. package/dist/adapters/http/ui/index.d.ts +1 -0
  153. package/dist/adapters/http/ui/index.d.ts.map +1 -1
  154. package/dist/adapters/http/ui/index.mjs +2 -1
  155. package/dist/adapters/http/ui/internal-http-client.d.ts +22 -0
  156. package/dist/adapters/http/ui/internal-http-client.d.ts.map +1 -0
  157. package/dist/adapters/http/ui/internal-http-client.mjs +52 -0
  158. package/dist/adapters/http/ui/internal-http-client.mjs.map +1 -0
  159. package/dist/adapters/http/ui/render.d.ts.map +1 -1
  160. package/dist/adapters/http/ui/render.mjs +5 -2
  161. package/dist/adapters/http/ui/render.mjs.map +1 -1
  162. package/dist/adapters/http/ui/types.d.ts +12 -0
  163. package/dist/adapters/http/ui/types.d.ts.map +1 -1
  164. package/dist/app/modules/authentication/repositories/session.d.ts +5 -2
  165. package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
  166. package/dist/app/modules/authentication/repositories/session.mjs +63 -0
  167. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  168. package/dist/app/modules/config/constants.d.ts +4 -0
  169. package/dist/app/modules/config/constants.d.ts.map +1 -1
  170. package/dist/app/modules/config/constants.mjs +4 -0
  171. package/dist/app/modules/config/constants.mjs.map +1 -1
  172. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  173. package/dist/app/modules/config/normalize.mjs +6 -1
  174. package/dist/app/modules/config/normalize.mjs.map +1 -1
  175. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  176. package/dist/app/modules/config/read/env.mjs +8 -0
  177. package/dist/app/modules/config/read/env.mjs.map +1 -1
  178. package/dist/app/modules/config/types.d.ts +31 -2
  179. package/dist/app/modules/config/types.d.ts.map +1 -1
  180. package/dist/app/modules/config/validator.d.ts.map +1 -1
  181. package/dist/app/modules/config/validator.mjs +5 -0
  182. package/dist/app/modules/config/validator.mjs.map +1 -1
  183. package/dist/app/modules/database/module.d.ts +1 -0
  184. package/dist/app/modules/database/module.d.ts.map +1 -1
  185. package/dist/app/modules/database/module.mjs +19 -6
  186. package/dist/app/modules/database/module.mjs.map +1 -1
  187. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  188. package/dist/app/modules/database/repositories/client/repository.mjs +10 -6
  189. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  190. package/dist/app/modules/database/repositories/helpers.d.ts +11 -0
  191. package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
  192. package/dist/app/modules/database/repositories/helpers.mjs +12 -1
  193. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  194. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
  195. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +8 -8
  196. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  197. package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
  198. package/dist/app/modules/database/repositories/permission/repository.mjs +4 -3
  199. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  200. package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
  201. package/dist/app/modules/database/repositories/policy/repository.mjs +4 -3
  202. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  203. package/dist/app/modules/database/repositories/realm/repository.d.ts +1 -0
  204. package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
  205. package/dist/app/modules/database/repositories/realm/repository.mjs +14 -1
  206. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  207. package/dist/app/modules/database/repositories/robot/repository.d.ts.map +1 -1
  208. package/dist/app/modules/database/repositories/robot/repository.mjs +8 -6
  209. package/dist/app/modules/database/repositories/robot/repository.mjs.map +1 -1
  210. package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
  211. package/dist/app/modules/database/repositories/role/repository.mjs +4 -3
  212. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  213. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
  214. package/dist/app/modules/database/repositories/role-attribute/repository.mjs +2 -1
  215. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  216. package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
  217. package/dist/app/modules/database/repositories/scope/repository.mjs +4 -3
  218. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  219. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  220. package/dist/app/modules/database/repositories/user/repository.mjs +8 -5
  221. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  222. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
  223. package/dist/app/modules/database/repositories/user-attribute/repository.mjs +2 -1
  224. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  225. package/dist/app/modules/http/constants.d.ts +4 -2
  226. package/dist/app/modules/http/constants.d.ts.map +1 -1
  227. package/dist/app/modules/http/constants.mjs +4 -2
  228. package/dist/app/modules/http/constants.mjs.map +1 -1
  229. package/dist/app/modules/http/module.d.ts +10 -0
  230. package/dist/app/modules/http/module.d.ts.map +1 -1
  231. package/dist/app/modules/http/module.mjs +30 -0
  232. package/dist/app/modules/http/module.mjs.map +1 -1
  233. package/dist/app/modules/http/modules/controller.d.ts +4 -2
  234. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  235. package/dist/app/modules/http/modules/controller.mjs +57 -15
  236. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  237. package/dist/app/modules/http/modules/middleware.mjs +1 -1
  238. package/dist/app/modules/oauth2/constants.d.ts +2 -1
  239. package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
  240. package/dist/app/modules/oauth2/constants.mjs +1 -0
  241. package/dist/app/modules/oauth2/constants.mjs.map +1 -1
  242. package/dist/app/modules/oauth2/module.d.ts.map +1 -1
  243. package/dist/app/modules/oauth2/module.mjs +10 -4
  244. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  245. package/dist/app/modules/oauth2/repositories/index.d.ts +1 -0
  246. package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
  247. package/dist/app/modules/oauth2/repositories/index.mjs +3 -1
  248. package/dist/app/modules/oauth2/repositories/session-token/index.d.ts +2 -0
  249. package/dist/app/modules/oauth2/repositories/session-token/index.d.ts.map +1 -0
  250. package/dist/app/modules/oauth2/repositories/session-token/index.mjs +5 -0
  251. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +17 -0
  252. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -0
  253. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +63 -0
  254. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -0
  255. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  256. package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
  257. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  258. package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
  259. package/dist/app/modules/provisioning/sources/file/module.mjs +2 -1
  260. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  261. package/dist/cli/commands/migration.d.ts.map +1 -1
  262. package/dist/cli/commands/migration.mjs +12 -4
  263. package/dist/cli/commands/migration.mjs.map +1 -1
  264. package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
  265. package/dist/components/oauth2-cleaner/module.mjs +3 -0
  266. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  267. package/dist/core/authentication/index.mjs +2 -1
  268. package/dist/core/authentication/session/index.mjs +2 -1
  269. package/dist/core/authentication/session/module.d.ts +1 -0
  270. package/dist/core/authentication/session/module.d.ts.map +1 -1
  271. package/dist/core/authentication/session/module.mjs +3 -0
  272. package/dist/core/authentication/session/module.mjs.map +1 -1
  273. package/dist/core/authentication/session/types.d.ts +34 -0
  274. package/dist/core/authentication/session/types.d.ts.map +1 -1
  275. package/dist/core/authentication/session/types.mjs +18 -1
  276. package/dist/core/authentication/session/types.mjs.map +1 -0
  277. package/dist/core/entities/client/web-client.d.ts +5 -3
  278. package/dist/core/entities/client/web-client.d.ts.map +1 -1
  279. package/dist/core/entities/client/web-client.mjs +8 -4
  280. package/dist/core/entities/client/web-client.mjs.map +1 -1
  281. package/dist/core/entities/index.d.ts +1 -0
  282. package/dist/core/entities/index.d.ts.map +1 -1
  283. package/dist/core/entities/index.mjs +3 -1
  284. package/dist/core/entities/realm/types.d.ts +9 -0
  285. package/dist/core/entities/realm/types.d.ts.map +1 -1
  286. package/dist/core/entities/session/index.d.ts +3 -0
  287. package/dist/core/entities/session/index.d.ts.map +1 -0
  288. package/dist/core/entities/session/index.mjs +5 -0
  289. package/dist/core/entities/session/service.d.ts +27 -0
  290. package/dist/core/entities/session/service.d.ts.map +1 -0
  291. package/dist/core/entities/session/service.mjs +151 -0
  292. package/dist/core/entities/session/service.mjs.map +1 -0
  293. package/dist/core/entities/session/types.d.ts +48 -0
  294. package/dist/core/entities/session/types.d.ts.map +1 -0
  295. package/dist/core/entities/session/types.mjs +4 -0
  296. package/dist/core/entities/user/service.d.ts +1 -0
  297. package/dist/core/entities/user/service.d.ts.map +1 -1
  298. package/dist/core/entities/user/service.mjs +1 -1
  299. package/dist/core/entities/user/service.mjs.map +1 -1
  300. package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
  301. package/dist/core/identity/password-recovery/service.mjs +2 -1
  302. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  303. package/dist/core/identity/password-recovery/types.d.ts +1 -0
  304. package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
  305. package/dist/core/identity/permission/checker/service.d.ts.map +1 -1
  306. package/dist/core/identity/permission/checker/service.mjs +6 -5
  307. package/dist/core/identity/permission/checker/service.mjs.map +1 -1
  308. package/dist/core/identity/policy/checker/service.d.ts.map +1 -1
  309. package/dist/core/identity/policy/checker/service.mjs +6 -5
  310. package/dist/core/identity/policy/checker/service.mjs.map +1 -1
  311. package/dist/core/identity/provider/authentication/presets/facebook.d.ts.map +1 -1
  312. package/dist/core/identity/provider/authentication/presets/facebook.mjs +2 -1
  313. package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
  314. package/dist/core/identity/provider/authentication/presets/github.d.ts.map +1 -1
  315. package/dist/core/identity/provider/authentication/presets/github.mjs +2 -1
  316. package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
  317. package/dist/core/identity/provider/authentication/presets/google.d.ts.map +1 -1
  318. package/dist/core/identity/provider/authentication/presets/google.mjs +2 -1
  319. package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
  320. package/dist/core/identity/provider/authentication/presets/instagram.d.ts.map +1 -1
  321. package/dist/core/identity/provider/authentication/presets/instagram.mjs +2 -1
  322. package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
  323. package/dist/core/identity/provider/authentication/presets/paypal.d.ts.map +1 -1
  324. package/dist/core/identity/provider/authentication/presets/paypal.mjs +2 -1
  325. package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
  326. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
  327. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +7 -2
  328. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  329. package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts +2 -0
  330. package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts.map +1 -1
  331. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs +5 -0
  332. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
  333. package/dist/core/identity/registration/service.d.ts.map +1 -1
  334. package/dist/core/identity/registration/service.mjs +9 -6
  335. package/dist/core/identity/registration/service.mjs.map +1 -1
  336. package/dist/core/identity/registration/types.d.ts +1 -0
  337. package/dist/core/identity/registration/types.d.ts.map +1 -1
  338. package/dist/core/identity/resolver/module.d.ts +7 -0
  339. package/dist/core/identity/resolver/module.d.ts.map +1 -1
  340. package/dist/core/identity/resolver/module.mjs +7 -1
  341. package/dist/core/identity/resolver/module.mjs.map +1 -1
  342. package/dist/core/index.mjs +10 -2
  343. package/dist/core/oauth2/authorization/code/index.mjs +1 -0
  344. package/dist/core/oauth2/authorization/code/issuer/module.d.ts +0 -1
  345. package/dist/core/oauth2/authorization/code/issuer/module.d.ts.map +1 -1
  346. package/dist/core/oauth2/authorization/code/issuer/module.mjs +7 -7
  347. package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
  348. package/dist/core/oauth2/authorization/code/issuer/types.d.ts +11 -2
  349. package/dist/core/oauth2/authorization/code/issuer/types.d.ts.map +1 -1
  350. package/dist/core/oauth2/authorization/code/verifier/module.d.ts.map +1 -1
  351. package/dist/core/oauth2/authorization/code/verifier/module.mjs +1 -0
  352. package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
  353. package/dist/core/oauth2/authorization/code/verifier/types.d.ts +1 -0
  354. package/dist/core/oauth2/authorization/code/verifier/types.d.ts.map +1 -1
  355. package/dist/core/oauth2/authorization/code-request/validator.d.ts.map +1 -1
  356. package/dist/core/oauth2/authorization/code-request/validator.mjs +19 -5
  357. package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
  358. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  359. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +13 -10
  360. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  361. package/dist/core/oauth2/authorization/code-request/verifier/types.d.ts +7 -0
  362. package/dist/core/oauth2/authorization/code-request/verifier/types.d.ts.map +1 -1
  363. package/dist/core/oauth2/authorization/helpers.d.ts +2 -1
  364. package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
  365. package/dist/core/oauth2/authorization/helpers.mjs +19 -2
  366. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  367. package/dist/core/oauth2/authorization/module.d.ts +6 -7
  368. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  369. package/dist/core/oauth2/authorization/module.mjs +24 -38
  370. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  371. package/dist/core/oauth2/authorization/types.d.ts +15 -7
  372. package/dist/core/oauth2/authorization/types.d.ts.map +1 -1
  373. package/dist/core/oauth2/client/grant-type.d.ts +9 -0
  374. package/dist/core/oauth2/client/grant-type.d.ts.map +1 -0
  375. package/dist/core/oauth2/client/grant-type.mjs +18 -0
  376. package/dist/core/oauth2/client/grant-type.mjs.map +1 -0
  377. package/dist/core/oauth2/client/index.d.ts +1 -0
  378. package/dist/core/oauth2/client/index.d.ts.map +1 -1
  379. package/dist/core/oauth2/client/index.mjs +2 -1
  380. package/dist/core/oauth2/end-session/index.d.ts +4 -0
  381. package/dist/core/oauth2/end-session/index.d.ts.map +1 -0
  382. package/dist/core/oauth2/end-session/index.mjs +6 -0
  383. package/dist/core/oauth2/end-session/service.d.ts +30 -0
  384. package/dist/core/oauth2/end-session/service.d.ts.map +1 -0
  385. package/dist/core/oauth2/end-session/service.mjs +117 -0
  386. package/dist/core/oauth2/end-session/service.mjs.map +1 -0
  387. package/dist/core/oauth2/end-session/types.d.ts +55 -0
  388. package/dist/core/oauth2/end-session/types.d.ts.map +1 -0
  389. package/dist/core/oauth2/end-session/types.mjs +4 -0
  390. package/dist/core/oauth2/end-session/validator.d.ts +6 -0
  391. package/dist/core/oauth2/end-session/validator.d.ts.map +1 -0
  392. package/dist/core/oauth2/end-session/validator.mjs +23 -0
  393. package/dist/core/oauth2/end-session/validator.mjs.map +1 -0
  394. package/dist/core/oauth2/grant-types/authorize.d.ts +19 -2
  395. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  396. package/dist/core/oauth2/grant-types/authorize.mjs +53 -10
  397. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  398. package/dist/core/oauth2/grant-types/refresh-token.d.ts +21 -2
  399. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  400. package/dist/core/oauth2/grant-types/refresh-token.mjs +55 -9
  401. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  402. package/dist/core/oauth2/grant-types/types.d.ts +22 -2
  403. package/dist/core/oauth2/grant-types/types.d.ts.map +1 -1
  404. package/dist/core/oauth2/index.d.ts +2 -0
  405. package/dist/core/oauth2/index.d.ts.map +1 -1
  406. package/dist/core/oauth2/index.mjs +7 -3
  407. package/dist/core/oauth2/session-token/index.d.ts +2 -0
  408. package/dist/core/oauth2/session-token/index.d.ts.map +1 -0
  409. package/dist/core/oauth2/session-token/index.mjs +4 -0
  410. package/dist/core/oauth2/session-token/types.d.ts +70 -0
  411. package/dist/core/oauth2/session-token/types.d.ts.map +1 -0
  412. package/dist/core/oauth2/session-token/types.mjs +4 -0
  413. package/dist/core/oauth2/token/issuer/access/module.d.ts +3 -1
  414. package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
  415. package/dist/core/oauth2/token/issuer/access/module.mjs +12 -1
  416. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  417. package/dist/core/oauth2/token/issuer/open-id/module.d.ts.map +1 -1
  418. package/dist/core/oauth2/token/issuer/open-id/module.mjs +1 -1
  419. package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
  420. package/dist/core/oauth2/token/issuer/refresh/module.d.ts +3 -1
  421. package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
  422. package/dist/core/oauth2/token/issuer/refresh/module.mjs +12 -1
  423. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  424. package/dist/core/oauth2/token/revoker/module.d.ts +3 -1
  425. package/dist/core/oauth2/token/revoker/module.d.ts.map +1 -1
  426. package/dist/core/oauth2/token/revoker/module.mjs +4 -1
  427. package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
  428. package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
  429. package/dist/core/oauth2/token/verifier/module.mjs +4 -4
  430. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  431. package/dist/core/oauth2/token/verifier/types.d.ts +6 -0
  432. package/dist/core/oauth2/token/verifier/types.d.ts.map +1 -1
  433. package/dist/core/provisioning/entities/client/relations-validator.d.ts.map +1 -1
  434. package/dist/core/provisioning/entities/client/relations-validator.mjs +3 -2
  435. package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
  436. package/dist/core/provisioning/entities/index.d.ts +1 -0
  437. package/dist/core/provisioning/entities/index.d.ts.map +1 -1
  438. package/dist/core/provisioning/entities/index.mjs +5 -1
  439. package/dist/core/provisioning/entities/permission/index.d.ts +1 -0
  440. package/dist/core/provisioning/entities/permission/index.d.ts.map +1 -1
  441. package/dist/core/provisioning/entities/permission/index.mjs +2 -1
  442. package/dist/core/provisioning/entities/permission/relations-validator.d.ts +6 -0
  443. package/dist/core/provisioning/entities/permission/relations-validator.d.ts.map +1 -0
  444. package/dist/core/provisioning/entities/permission/relations-validator.mjs +17 -0
  445. package/dist/core/provisioning/entities/permission/relations-validator.mjs.map +1 -0
  446. package/dist/core/provisioning/entities/permission/validator.d.ts.map +1 -1
  447. package/dist/core/provisioning/entities/permission/validator.mjs +3 -0
  448. package/dist/core/provisioning/entities/permission/validator.mjs.map +1 -1
  449. package/dist/core/provisioning/entities/policy/index.d.ts +1 -0
  450. package/dist/core/provisioning/entities/policy/index.d.ts.map +1 -1
  451. package/dist/core/provisioning/entities/policy/index.mjs +2 -1
  452. package/dist/core/provisioning/entities/policy/validator.d.ts +6 -0
  453. package/dist/core/provisioning/entities/policy/validator.d.ts.map +1 -0
  454. package/dist/core/provisioning/entities/policy/validator.mjs +26 -0
  455. package/dist/core/provisioning/entities/policy/validator.mjs.map +1 -0
  456. package/dist/core/provisioning/entities/realm/relations-validator.d.ts.map +1 -1
  457. package/dist/core/provisioning/entities/realm/relations-validator.mjs +9 -52
  458. package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
  459. package/dist/core/provisioning/entities/role/relations-validator.d.ts.map +1 -1
  460. package/dist/core/provisioning/entities/role/relations-validator.mjs +4 -0
  461. package/dist/core/provisioning/entities/role/relations-validator.mjs.map +1 -1
  462. package/dist/core/provisioning/entities/root/validator.d.ts.map +1 -1
  463. package/dist/core/provisioning/entities/root/validator.mjs +11 -26
  464. package/dist/core/provisioning/entities/root/validator.mjs.map +1 -1
  465. package/dist/core/provisioning/entities/utils.d.ts +10 -0
  466. package/dist/core/provisioning/entities/utils.d.ts.map +1 -0
  467. package/dist/core/provisioning/entities/utils.mjs +29 -0
  468. package/dist/core/provisioning/entities/utils.mjs.map +1 -0
  469. package/dist/core/provisioning/index.mjs +4 -1
  470. package/dist/core/provisioning/synchronizer/base.d.ts.map +1 -1
  471. package/dist/core/provisioning/synchronizer/base.mjs.map +1 -1
  472. package/dist/index.mjs +16 -11
  473. package/dist/swagger.json +531 -23
  474. package/dist/ui/client/.vite/ssr-manifest.json +1140 -114
  475. package/dist/ui/client/assets/{index-Cd3uWit-.js → index-CP9HCHoS.js} +15 -15
  476. package/dist/ui/client/assets/index-VM4JXBXw.css +2 -0
  477. package/dist/ui/client/index.html +2 -2
  478. package/dist/ui/server/assets/{multipart-parser-Dn2Ly9xU.js → multipart-parser-BCMy8Xwv.js} +11 -1
  479. package/dist/ui/server/assets/{multipart-parser-DyM9gi59.js → multipart-parser-BVY8pIV2.js} +11 -1
  480. package/dist/ui/server/server.js +8643 -6992
  481. package/package.json +15 -15
  482. package/dist/ui/client/assets/index-DoCTwJ8M.css +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/logout/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,MAAM,MAAM,uBAAuB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,OAAO,EAAE,uBAAuB,CAAC;IACjC,iBAAiB,EAAE,wBAAwB,CAAC;CAC/C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ export {};
@@ -3,8 +3,8 @@ import "node:url";
3
3
  import.meta.url;
4
4
  import { PACKAGE_PATH } from "../../../../../path.mjs";
5
5
  import path from "node:path";
6
- import { DController, DGet } from "@routup/decorators";
7
6
  import { load } from "locter";
7
+ import { DController, DGet } from "@routup/decorators";
8
8
  //#region src/adapters/http/controllers/workflows/status/module.ts
9
9
  function _ts_decorate(decorators, target, key, desc) {
10
10
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/token/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,gCAAgC,EAAyB,MAAM,eAAe,CAAC;AACvH,OAAO,EAA4C,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAQ3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EACR,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAWnE,qBAEa,eAAe;IACxB,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAEjD,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAEhD,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAE9C,SAAS,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAE5C,SAAS,CAAC,gBAAgB,EAAG,iBAAiB,CAAC;IAE/C,SAAS,CAAC,0BAA0B,EAAG,2BAA2B,CAAC;IAEnE,SAAS,CAAC,WAAW,EAAG,MAAM,CAAC,GAAG,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBAI5D,GAAG,EAAE,sBAAsB;IAgDjC,aAAa,CAAa,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAKtF,cAAc,CACJ,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,gCAAgC,CAAC;IA4DtC,WAAW,CACD,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAkBV,WAAW,CAAa,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAarF"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/token/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,gCAAgC,EAAyB,MAAM,eAAe,CAAC;AACvH,OAAO,EAA4C,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAQ3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EACR,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAWnE,qBAEa,eAAe;IACxB,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAEjD,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAEhD,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAE9C,SAAS,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAE5C,SAAS,CAAC,gBAAgB,EAAG,iBAAiB,CAAC;IAE/C,SAAS,CAAC,0BAA0B,EAAG,2BAA2B,CAAC;IAEnE,SAAS,CAAC,WAAW,EAAG,MAAM,CAAC,GAAG,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBAI5D,GAAG,EAAE,sBAAsB;IAuDjC,aAAa,CAAa,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAKtF,cAAc,CACJ,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,gCAAgC,CAAC;IA4DtC,WAAW,CACD,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAkBV,WAAW,CAAa,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAarF"}
@@ -53,7 +53,10 @@ var TokenController = class {
53
53
  clientAuthenticator: ctx.oauth2ClientAuthenticator,
54
54
  accessTokenIssuer: ctx.accessTokenIssuer,
55
55
  refreshTokenIssuer: ctx.refreshTokenIssuer,
56
- sessionManager: ctx.sessionManager
56
+ openIdTokenIssuer: ctx.openIdTokenIssuer,
57
+ keyRepository: ctx.keyRepository,
58
+ sessionManager: ctx.sessionManager,
59
+ realmRepository: ctx.realmRepository
57
60
  }),
58
61
  [OAuth2TokenGrant.CLIENT_CREDENTIALS]: new HTTPClientCredentialsGrant({
59
62
  accessTokenIssuer: ctx.accessTokenIssuer,
@@ -77,9 +80,13 @@ var TokenController = class {
77
80
  accessTokenIssuer: ctx.accessTokenIssuer,
78
81
  refreshTokenIssuer: ctx.refreshTokenIssuer,
79
82
  tokenVerifier: ctx.tokenVerifier,
80
- tokenRevoker: ctx.tokenRevoker,
83
+ tokenRepository: ctx.tokenRepository,
84
+ sessionTokenRepository: ctx.sessionTokenRepository,
81
85
  sessionManager: ctx.sessionManager,
82
- clientAuthenticator: ctx.oauth2ClientAuthenticator
86
+ clientAuthenticator: ctx.oauth2ClientAuthenticator,
87
+ realmRepository: ctx.realmRepository,
88
+ logger: ctx.logger,
89
+ options: { gracePeriod: ctx.tokenRefreshGracePeriod }
83
90
  })
84
91
  };
85
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["OAuth2GrantTypeError","OAuth2RequestError","OAuth2TokenGrant","DContext","DController","DGet","DPost","DTags","buildPermissionKey","toOAuth2Error","OAuth2OpenIDClaimsBuilder","HTTPClientCredentialsGrant","HTTPOAuth2AuthorizeGrant","HTTPOAuth2RefreshTokenGrant","HTTPPasswordGrant","HTTPRobotCredentialsGrant","guessOauth2GrantTypeByRequest","extractTokenFromRequest","TokenController","refreshTokenIssuer","accessTokenIssuer","tokenVerifier","tokenRevoker","identityResolver","identityPermissionProvider","tokenGrants","ctx","AUTHORIZATION_CODE","codeVerifier","clientAuthenticator","oauth2ClientAuthenticator","sessionManager","CLIENT_CREDENTIALS","authenticator","ROBOT_CREDENTIALS","robotAuthenticator","PASSWORD","userAuthenticator","realmRepository","REFRESH_TOKEN","getIntrospect","event","postIntrospect","token","payload","verify","skipActiveCheck","sub","sub_kind","identityInvalid","permissions","getFor","id","type","clientId","client_id","realmId","realm_id","identity","resolve","claimsBuilder","claims","fromIdentity","active","jti","isInactive","Object","values","reduce","acc","binding","key","permission","name","e","revokeToken","revoke","response","status","createToken","grantType","unsupported","grant","runWithRequest"],"sources":["../../../../../../src/adapters/http/controllers/workflows/token/module.ts"],"sourcesContent":["/*\n * Copyright (c) 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 { OAuth2TokenGrantResponse, OAuth2TokenIntrospectionResponse, OAuth2TokenPermission } from '@authup/specs';\nimport { OAuth2GrantTypeError, OAuth2RequestError, OAuth2TokenGrant } from '@authup/specs';\nimport {\n DContext,\n DController,\n DGet,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { buildPermissionKey } from '@authup/access';\nimport { toOAuth2Error } from '../../../../../core/oauth2/helpers/index.ts';\nimport type { TokenControllerContext } from './types.ts';\nimport type {\n IIdentityPermissionProvider,\n IIdentityResolver,\n IOAuth2TokenIssuer,\n IOAuth2TokenRevoker,\n IOAuth2TokenVerifier,\n} from '../../../../../core/index.ts';\nimport { OAuth2OpenIDClaimsBuilder } from '../../../../../core/index.ts';\nimport type { IHTTPOAuth2Grant } from '../../../adapters/index.ts';\nimport {\n HTTPClientCredentialsGrant,\n HTTPOAuth2AuthorizeGrant,\n HTTPOAuth2RefreshTokenGrant,\n HTTPPasswordGrant,\n HTTPRobotCredentialsGrant,\n guessOauth2GrantTypeByRequest,\n} from '../../../adapters/index.ts';\nimport { extractTokenFromRequest } from './utils/index.ts';\n\n@DTags('auth')\n@DController('/token')\nexport class TokenController {\n protected refreshTokenIssuer: IOAuth2TokenIssuer;\n\n protected accessTokenIssuer: IOAuth2TokenIssuer;\n\n protected tokenVerifier: IOAuth2TokenVerifier;\n\n protected tokenRevoker: IOAuth2TokenRevoker;\n\n protected identityResolver : IIdentityResolver;\n\n protected identityPermissionProvider : IIdentityPermissionProvider;\n\n protected tokenGrants : Record<`${OAuth2TokenGrant}`, IHTTPOAuth2Grant>;\n\n // -------------------------------------------\n\n constructor(ctx: TokenControllerContext) {\n this.refreshTokenIssuer = ctx.refreshTokenIssuer;\n this.accessTokenIssuer = ctx.accessTokenIssuer;\n this.tokenVerifier = ctx.tokenVerifier;\n this.tokenRevoker = ctx.tokenRevoker;\n this.identityResolver = ctx.identityResolver;\n this.identityPermissionProvider = ctx.identityPermissionProvider;\n\n this.tokenGrants = {\n [OAuth2TokenGrant.AUTHORIZATION_CODE]: new HTTPOAuth2AuthorizeGrant({\n codeVerifier: ctx.codeVerifier,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n sessionManager: ctx.sessionManager,\n }),\n [OAuth2TokenGrant.CLIENT_CREDENTIALS]: new HTTPClientCredentialsGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n authenticator: ctx.clientAuthenticator,\n sessionManager: ctx.sessionManager,\n }),\n [OAuth2TokenGrant.ROBOT_CREDENTIALS]: new HTTPRobotCredentialsGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n authenticator: ctx.robotAuthenticator,\n sessionManager: ctx.sessionManager,\n }),\n [OAuth2TokenGrant.PASSWORD]: new HTTPPasswordGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n authenticator: ctx.userAuthenticator,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n sessionManager: ctx.sessionManager,\n realmRepository: ctx.realmRepository,\n }),\n [OAuth2TokenGrant.REFRESH_TOKEN]: new HTTPOAuth2RefreshTokenGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n tokenVerifier: ctx.tokenVerifier,\n tokenRevoker: ctx.tokenRevoker,\n sessionManager: ctx.sessionManager,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n }),\n };\n }\n\n // -------------------------------------------\n\n @DGet('/introspect', [])\n async getIntrospect(@DContext() event: IAppEvent): Promise<OAuth2TokenIntrospectionResponse> {\n return this.postIntrospect(event);\n }\n\n @DPost('/introspect', [])\n async postIntrospect(\n @DContext() event: IAppEvent,\n ): Promise<OAuth2TokenIntrospectionResponse> {\n try {\n const token = await extractTokenFromRequest(event);\n const payload = await this.tokenVerifier.verify(token, { skipActiveCheck: true });\n if (!payload.sub || !payload.sub_kind) {\n throw OAuth2RequestError.identityInvalid();\n }\n\n // todo: only receive client specific permissions\n const permissions = await this.identityPermissionProvider.getFor({\n id: payload.sub,\n type: payload.sub_kind,\n clientId: payload.client_id,\n realmId: payload.realm_id,\n });\n\n const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);\n if (!identity) {\n // todo: differentiate between client, robot & user\n throw OAuth2RequestError.identityInvalid();\n }\n\n const claimsBuilder = new OAuth2OpenIDClaimsBuilder();\n const claims = claimsBuilder.fromIdentity(identity);\n\n let active : boolean;\n if (payload.jti) {\n const isInactive = await this.tokenVerifier.isInactive(payload.jti);\n active = !isInactive;\n } else {\n active = false;\n }\n\n return {\n active,\n // todo: permissions property should be removed.\n permissions: Object.values(\n permissions.reduce((acc, binding) => {\n const key = buildPermissionKey(binding.permission);\n if (!acc[key]) {\n acc[key] = {\n name: binding.permission.name,\n client_id: binding.permission.client_id,\n realm_id: binding.permission.realm_id,\n } as OAuth2TokenPermission;\n }\n return acc;\n }, {} as Record<string, OAuth2TokenPermission>),\n ),\n ...payload,\n ...claims,\n };\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('/revoke', [])\n async revokeToken(\n @DContext() event: IAppEvent,\n ): Promise<null> {\n try {\n const token = await extractTokenFromRequest(event);\n\n const payload = await this.tokenVerifier.verify(token);\n\n await this.tokenRevoker.revoke(payload);\n\n event.response.status = 202;\n return null;\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('', [])\n async createToken(@DContext() event: IAppEvent): Promise<OAuth2TokenGrantResponse> {\n const grantType = await guessOauth2GrantTypeByRequest(event);\n if (!grantType) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n const grant = this.tokenGrants[grantType];\n if (!grant) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n return grant.runWithRequest(event);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"module.mjs","names":["OAuth2GrantTypeError","OAuth2RequestError","OAuth2TokenGrant","DContext","DController","DGet","DPost","DTags","buildPermissionKey","toOAuth2Error","OAuth2OpenIDClaimsBuilder","HTTPClientCredentialsGrant","HTTPOAuth2AuthorizeGrant","HTTPOAuth2RefreshTokenGrant","HTTPPasswordGrant","HTTPRobotCredentialsGrant","guessOauth2GrantTypeByRequest","extractTokenFromRequest","TokenController","refreshTokenIssuer","accessTokenIssuer","tokenVerifier","tokenRevoker","identityResolver","identityPermissionProvider","tokenGrants","ctx","AUTHORIZATION_CODE","codeVerifier","clientAuthenticator","oauth2ClientAuthenticator","openIdTokenIssuer","keyRepository","sessionManager","realmRepository","CLIENT_CREDENTIALS","authenticator","ROBOT_CREDENTIALS","robotAuthenticator","PASSWORD","userAuthenticator","REFRESH_TOKEN","tokenRepository","sessionTokenRepository","logger","options","gracePeriod","tokenRefreshGracePeriod","getIntrospect","event","postIntrospect","token","payload","verify","skipActiveCheck","sub","sub_kind","identityInvalid","permissions","getFor","id","type","clientId","client_id","realmId","realm_id","identity","resolve","claimsBuilder","claims","fromIdentity","active","jti","isInactive","Object","values","reduce","acc","binding","key","permission","name","e","revokeToken","revoke","response","status","createToken","grantType","unsupported","grant","runWithRequest"],"sources":["../../../../../../src/adapters/http/controllers/workflows/token/module.ts"],"sourcesContent":["/*\n * Copyright (c) 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 { OAuth2TokenGrantResponse, OAuth2TokenIntrospectionResponse, OAuth2TokenPermission } from '@authup/specs';\nimport { OAuth2GrantTypeError, OAuth2RequestError, OAuth2TokenGrant } from '@authup/specs';\nimport {\n DContext,\n DController,\n DGet,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { buildPermissionKey } from '@authup/access';\nimport { toOAuth2Error } from '../../../../../core/oauth2/helpers/index.ts';\nimport type { TokenControllerContext } from './types.ts';\nimport type {\n IIdentityPermissionProvider,\n IIdentityResolver,\n IOAuth2TokenIssuer,\n IOAuth2TokenRevoker,\n IOAuth2TokenVerifier,\n} from '../../../../../core/index.ts';\nimport { OAuth2OpenIDClaimsBuilder } from '../../../../../core/index.ts';\nimport type { IHTTPOAuth2Grant } from '../../../adapters/index.ts';\nimport {\n HTTPClientCredentialsGrant,\n HTTPOAuth2AuthorizeGrant,\n HTTPOAuth2RefreshTokenGrant,\n HTTPPasswordGrant,\n HTTPRobotCredentialsGrant,\n guessOauth2GrantTypeByRequest,\n} from '../../../adapters/index.ts';\nimport { extractTokenFromRequest } from './utils/index.ts';\n\n@DTags('auth')\n@DController('/token')\nexport class TokenController {\n protected refreshTokenIssuer: IOAuth2TokenIssuer;\n\n protected accessTokenIssuer: IOAuth2TokenIssuer;\n\n protected tokenVerifier: IOAuth2TokenVerifier;\n\n protected tokenRevoker: IOAuth2TokenRevoker;\n\n protected identityResolver : IIdentityResolver;\n\n protected identityPermissionProvider : IIdentityPermissionProvider;\n\n protected tokenGrants : Record<`${OAuth2TokenGrant}`, IHTTPOAuth2Grant>;\n\n // -------------------------------------------\n\n constructor(ctx: TokenControllerContext) {\n this.refreshTokenIssuer = ctx.refreshTokenIssuer;\n this.accessTokenIssuer = ctx.accessTokenIssuer;\n this.tokenVerifier = ctx.tokenVerifier;\n this.tokenRevoker = ctx.tokenRevoker;\n this.identityResolver = ctx.identityResolver;\n this.identityPermissionProvider = ctx.identityPermissionProvider;\n\n this.tokenGrants = {\n [OAuth2TokenGrant.AUTHORIZATION_CODE]: new HTTPOAuth2AuthorizeGrant({\n codeVerifier: ctx.codeVerifier,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n openIdTokenIssuer: ctx.openIdTokenIssuer,\n keyRepository: ctx.keyRepository,\n sessionManager: ctx.sessionManager,\n realmRepository: ctx.realmRepository,\n }),\n [OAuth2TokenGrant.CLIENT_CREDENTIALS]: new HTTPClientCredentialsGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n authenticator: ctx.clientAuthenticator,\n sessionManager: ctx.sessionManager,\n }),\n [OAuth2TokenGrant.ROBOT_CREDENTIALS]: new HTTPRobotCredentialsGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n authenticator: ctx.robotAuthenticator,\n sessionManager: ctx.sessionManager,\n }),\n [OAuth2TokenGrant.PASSWORD]: new HTTPPasswordGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n authenticator: ctx.userAuthenticator,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n sessionManager: ctx.sessionManager,\n realmRepository: ctx.realmRepository,\n }),\n [OAuth2TokenGrant.REFRESH_TOKEN]: new HTTPOAuth2RefreshTokenGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n tokenVerifier: ctx.tokenVerifier,\n tokenRepository: ctx.tokenRepository,\n sessionTokenRepository: ctx.sessionTokenRepository,\n sessionManager: ctx.sessionManager,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n realmRepository: ctx.realmRepository,\n logger: ctx.logger,\n options: { gracePeriod: ctx.tokenRefreshGracePeriod },\n }),\n };\n }\n\n // -------------------------------------------\n\n @DGet('/introspect', [])\n async getIntrospect(@DContext() event: IAppEvent): Promise<OAuth2TokenIntrospectionResponse> {\n return this.postIntrospect(event);\n }\n\n @DPost('/introspect', [])\n async postIntrospect(\n @DContext() event: IAppEvent,\n ): Promise<OAuth2TokenIntrospectionResponse> {\n try {\n const token = await extractTokenFromRequest(event);\n const payload = await this.tokenVerifier.verify(token, { skipActiveCheck: true });\n if (!payload.sub || !payload.sub_kind) {\n throw OAuth2RequestError.identityInvalid();\n }\n\n // todo: only receive client specific permissions\n const permissions = await this.identityPermissionProvider.getFor({\n id: payload.sub,\n type: payload.sub_kind,\n clientId: payload.client_id,\n realmId: payload.realm_id,\n });\n\n const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);\n if (!identity) {\n // todo: differentiate between client, robot & user\n throw OAuth2RequestError.identityInvalid();\n }\n\n const claimsBuilder = new OAuth2OpenIDClaimsBuilder();\n const claims = claimsBuilder.fromIdentity(identity);\n\n let active : boolean;\n if (payload.jti) {\n const isInactive = await this.tokenVerifier.isInactive(payload.jti);\n active = !isInactive;\n } else {\n active = false;\n }\n\n return {\n active,\n // todo: permissions property should be removed.\n permissions: Object.values(\n permissions.reduce((acc, binding) => {\n const key = buildPermissionKey(binding.permission);\n if (!acc[key]) {\n acc[key] = {\n name: binding.permission.name,\n client_id: binding.permission.client_id,\n realm_id: binding.permission.realm_id,\n } as OAuth2TokenPermission;\n }\n return acc;\n }, {} as Record<string, OAuth2TokenPermission>),\n ),\n ...payload,\n ...claims,\n };\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('/revoke', [])\n async revokeToken(\n @DContext() event: IAppEvent,\n ): Promise<null> {\n try {\n const token = await extractTokenFromRequest(event);\n\n const payload = await this.tokenVerifier.verify(token);\n\n await this.tokenRevoker.revoke(payload);\n\n event.response.status = 202;\n return null;\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('', [])\n async createToken(@DContext() event: IAppEvent): Promise<OAuth2TokenGrantResponse> {\n const grantType = await guessOauth2GrantTypeByRequest(event);\n if (!grantType) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n const grant = this.tokenGrants[grantType];\n if (!grant) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n return grant.runWithRequest(event);\n }\n}\n"],"mappings":"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"}
@@ -1,11 +1,18 @@
1
1
  import type { Client, Robot, User } from '@authup/core-kit';
2
- import type { ICredentialsAuthenticator, IIdentityPermissionProvider, IIdentityResolver, IOAuth2AuthorizationCodeVerifier, IOAuth2TokenIssuer, IOAuth2TokenRevoker, IOAuth2TokenVerifier, IRealmRepository, ISessionManager, OAuth2ClientAuthenticator } from '../../../../../core/index.ts';
2
+ import type { Logger } from '@authup/server-kit';
3
+ import type { ICredentialsAuthenticator, IIdentityPermissionProvider, IIdentityResolver, IOAuth2AuthorizationCodeVerifier, IOAuth2KeyRepository, IOAuth2OpenIDTokenIssuer, IOAuth2TokenIssuer, IOAuth2TokenRepository, IOAuth2TokenRevoker, IOAuth2TokenVerifier, IRealmRepository, ISessionManager, ISessionTokenRepository, OAuth2ClientAuthenticator } from '../../../../../core/index.ts';
3
4
  export type TokenControllerContext = {
4
5
  codeVerifier: IOAuth2AuthorizationCodeVerifier;
5
6
  accessTokenIssuer: IOAuth2TokenIssuer;
6
7
  refreshTokenIssuer: IOAuth2TokenIssuer;
8
+ openIdTokenIssuer: IOAuth2OpenIDTokenIssuer;
9
+ keyRepository: IOAuth2KeyRepository;
7
10
  tokenVerifier: IOAuth2TokenVerifier;
8
11
  tokenRevoker: IOAuth2TokenRevoker;
12
+ tokenRepository: IOAuth2TokenRepository;
13
+ sessionTokenRepository: ISessionTokenRepository;
14
+ tokenRefreshGracePeriod?: number;
15
+ logger?: Logger;
9
16
  sessionManager: ISessionManager;
10
17
  identityResolver: IIdentityResolver;
11
18
  identityPermissionProvider: IIdentityPermissionProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/token/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EACR,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,gCAAgC,EAChC,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EAC5B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,sBAAsB,GAAG;IACjC,YAAY,EAAE,gCAAgC,CAAC;IAE/C,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAElC,cAAc,EAAE,eAAe,CAAC;IAEhC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,0BAA0B,EAAE,2BAA2B,CAAC;IAExD,mBAAmB,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACtD,kBAAkB,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACpD,iBAAiB,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAElD,yBAAyB,EAAE,yBAAyB,CAAA;IAEpD,eAAe,EAAE,gBAAgB,CAAA;CACpC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/token/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EACR,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,gCAAgC,EAChC,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EAC5B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,sBAAsB,GAAG;IACjC,YAAY,EAAE,gCAAgC,CAAC;IAE/C,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,aAAa,EAAE,oBAAoB,CAAC;IACpC,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,eAAe,EAAE,sBAAsB,CAAC;IACxC,sBAAsB,EAAE,uBAAuB,CAAC;IAEhD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,cAAc,EAAE,eAAe,CAAC;IAEhC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,0BAA0B,EAAE,2BAA2B,CAAC;IAExD,mBAAmB,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACtD,kBAAkB,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACpD,iBAAiB,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAElD,yBAAyB,EAAE,yBAAyB,CAAA;IAEpD,eAAe,EAAE,gBAAgB,CAAA;CACpC,CAAC"}
@@ -12,19 +12,10 @@ import { getRequestParamID, getRequestStringParam, getRequestStringParamOrFail,
12
12
  import { applyRouteRealmIDToBody, getRequestRealmID, setRequestRealmID } from "./request/helpers/realm-id.mjs";
13
13
  import { sanitizeRelativeRedirect } from "./request/helpers/redirect.mjs";
14
14
  import { setRequestScopes, useRequestScopes } from "./request/helpers/scopes.mjs";
15
+ import { setRequestSessionId, useRequestSessionId } from "./request/helpers/session-id.mjs";
15
16
  import { setRequestToken, useRequestToken } from "./request/helpers/token.mjs";
16
17
  import { RequestPermissionEvaluator } from "./request/permission/module.mjs";
17
18
  import "./request/index.mjs";
18
- import { HTTPOAuth2Authorizer } from "./adapters/oauth2/authorization/module.mjs";
19
- import { extractClientCredentialsFromRequest, readStringField } from "./adapters/oauth2/grant-types/utils/credentials.mjs";
20
- import { guessOauth2GrantTypeByRequest } from "./adapters/oauth2/grant-types/utils/guess.mjs";
21
- import { HTTPOAuth2AuthorizeGrant } from "./adapters/oauth2/grant-types/authorize.mjs";
22
- import { HTTPClientCredentialsGrant } from "./adapters/oauth2/grant-types/client-credentials.mjs";
23
- import { HTTPOAuth2IdentityGrantType } from "./adapters/oauth2/grant-types/identity.mjs";
24
- import { HTTPPasswordGrant } from "./adapters/oauth2/grant-types/password.mjs";
25
- import { HTTPOAuth2RefreshTokenGrant } from "./adapters/oauth2/grant-types/refresh_token.mjs";
26
- import { HTTPRobotCredentialsGrant } from "./adapters/oauth2/grant-types/robot-credentials.mjs";
27
- import "./adapters/index.mjs";
28
19
  import { AuthorizationMiddleware } from "./middleware/built-in/authorization/module.mjs";
29
20
  import { createAuthorizationMiddleware } from "./middleware/built-in/authorization/factory.mjs";
30
21
  import { ForceLoggedInMiddleware } from "./middleware/built-in/loggedin/module.mjs";
@@ -35,12 +26,23 @@ import { VITE_SERVER_STORE_KEY, registerAssetsMiddleware } from "./middleware/bu
35
26
  import { registerBasicMiddleware } from "./middleware/built-in/basic.mjs";
36
27
  import { registerCorsMiddleware } from "./middleware/built-in/cors.mjs";
37
28
  import { registerErrorMiddleware } from "./middleware/built-in/error.mjs";
38
- import { createLoggerMiddleware } from "./middleware/built-in/logger.mjs";
29
+ import { createLoggerMiddleware, redactSensitiveURLParams } from "./middleware/built-in/logger.mjs";
39
30
  import { registerPrometheusMiddleware } from "./middleware/built-in/prometheus.mjs";
40
31
  import { registerRateLimitMiddleware } from "./middleware/built-in/rate-limit.mjs";
41
32
  import { createSwaggerMiddleware } from "./middleware/built-in/swagger.mjs";
42
33
  import { UI_HTTP_CLIENT_FACTORY_STORE_KEY, registerUIHttpClientMiddleware } from "./middleware/built-in/ui-http-client.mjs";
43
34
  import "./middleware/index.mjs";
35
+ import { HTTPOAuth2Authorizer } from "./adapters/oauth2/authorization/module.mjs";
36
+ import { extractClientCredentialsFromRequest, readStringField } from "./adapters/oauth2/grant-types/utils/credentials.mjs";
37
+ import { guessOauth2GrantTypeByRequest } from "./adapters/oauth2/grant-types/utils/guess.mjs";
38
+ import { readRealmHint } from "./adapters/oauth2/grant-types/utils/realm.mjs";
39
+ import { HTTPOAuth2AuthorizeGrant } from "./adapters/oauth2/grant-types/authorize.mjs";
40
+ import { HTTPClientCredentialsGrant } from "./adapters/oauth2/grant-types/client-credentials.mjs";
41
+ import { HTTPOAuth2IdentityGrantType } from "./adapters/oauth2/grant-types/identity.mjs";
42
+ import { HTTPPasswordGrant } from "./adapters/oauth2/grant-types/password.mjs";
43
+ import { HTTPOAuth2RefreshTokenGrant } from "./adapters/oauth2/grant-types/refresh_token.mjs";
44
+ import { HTTPRobotCredentialsGrant } from "./adapters/oauth2/grant-types/robot-credentials.mjs";
45
+ import "./adapters/index.mjs";
44
46
  import { ClientController } from "./controllers/entities/client/module.mjs";
45
47
  import { ClientPermissionController } from "./controllers/entities/client-permission/module.mjs";
46
48
  import { ClientPermissionRequestValidator } from "./controllers/entities/client-permission/utils/validation.mjs";
@@ -56,6 +58,7 @@ import { ActivateController } from "./controllers/workflows/activate/module.mjs"
56
58
  import { AuthorizeController } from "./controllers/workflows/authorize/module.mjs";
57
59
  import { getJwkRouteHandler, getJwksRouteHandler } from "./controllers/workflows/jwks/handlers/read.mjs";
58
60
  import { JwkController } from "./controllers/workflows/jwks/module.mjs";
61
+ import { LogoutController } from "./controllers/workflows/logout/module.mjs";
59
62
  import { OpenIDController } from "./controllers/workflows/openid/module.mjs";
60
63
  import { PasswordForgotController } from "./controllers/workflows/password-forgot/module.mjs";
61
64
  import { PasswordResetController } from "./controllers/workflows/password-reset/module.mjs";
@@ -77,6 +80,7 @@ import { PolicyController } from "./controllers/entities/policy/module.mjs";
77
80
  import { PolicyAttributesValidator } from "./controllers/entities/policy/utils/attributes-validator.mjs";
78
81
  import { PolicyValidator } from "./controllers/entities/policy/utils/validation.mjs";
79
82
  import { ScopeController } from "./controllers/entities/scope/module.mjs";
83
+ import { SessionController } from "./controllers/entities/session/module.mjs";
80
84
  import { UserController } from "./controllers/entities/user/module.mjs";
81
85
  import { UserAttributeController } from "./controllers/entities/user-attribute/module.mjs";
82
86
  import { UserAttributeRequestValidator } from "./controllers/entities/user-attribute/utils/validation.mjs";
@@ -85,4 +89,4 @@ import { UserPermissionRequestValidator } from "./controllers/entities/user-perm
85
89
  import { UserRoleController } from "./controllers/entities/user-role/module.mjs";
86
90
  import { UserRoleRequestValidator } from "./controllers/entities/user-role/utils/validation.mjs";
87
91
  import "./controllers/index.mjs";
88
- export { ActivateController, AuthorizationMiddleware, AuthorizeController, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, HTTPRobotCredentialsGrant, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, LOCALE_COOKIE, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RealmResolverMiddleware, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RobotController, RobotPermissionController, RobotPermissionRequestValidator, RobotRoleController, RobotRoleRequestValidator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, StatusController, TokenController, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeRequestValidator, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createSwaggerMiddleware, extractClientCredentialsFromRequest, getBodyRealmID, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, readFromLocations, readStringField, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware, sanitizeRelativeRedirect, setRequestIdentity, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestToken, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestToken };
92
+ export { ActivateController, AuthorizationMiddleware, AuthorizeController, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, HTTPRobotCredentialsGrant, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, LOCALE_COOKIE, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RealmResolverMiddleware, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RobotController, RobotPermissionController, RobotPermissionRequestValidator, RobotRoleController, RobotRoleRequestValidator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, StatusController, TokenController, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeRequestValidator, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createSwaggerMiddleware, extractClientCredentialsFromRequest, getBodyRealmID, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, readFromLocations, readRealmHint, readStringField, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware, sanitizeRelativeRedirect, setRequestIdentity, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestToken };
@@ -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,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,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,SAAS;IA2B1B;;OAEG;cACa,+BAA+B,CAC3C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,yBAAyB;cAwDrB,8BAA8B,CAC1C,KAAK,EAAE,SAAS,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,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,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;AAStC,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,SAAS;IA2B1B;;OAEG;cACa,+BAA+B,CAC3C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,yBAAyB;cA0DrB,8BAA8B,CAC1C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB;CA+CvC"}
@@ -9,6 +9,7 @@ import "../../../../../core/index.mjs";
9
9
  import { setRequestPermissionEvaluator } from "../../../request/permission/helper.mjs";
10
10
  import { setRequestIdentity } from "../../../request/helpers/identity.mjs";
11
11
  import { setRequestScopes } from "../../../request/helpers/scopes.mjs";
12
+ import { setRequestSessionId } from "../../../request/helpers/session-id.mjs";
12
13
  import { setRequestToken } from "../../../request/helpers/token.mjs";
13
14
  import { RequestPermissionEvaluator } from "../../../request/permission/module.mjs";
14
15
  import "../../../request/index.mjs";
@@ -74,6 +75,7 @@ var AuthorizationMiddleware = class {
74
75
  throw JWTError.expired();
75
76
  }
76
77
  await this.sessionManager.ping(session);
78
+ setRequestSessionId(event, payload.session_id);
77
79
  if (!payload.sub_kind) throw JWTError.payloadPropertyInvalid("sub_kind");
78
80
  if (!payload.sub) throw JWTError.payloadPropertyInvalid("sub");
79
81
  const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","AuthHeaderError","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","unsupportedType","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 { AuthHeaderError } from '@authup/errors';\nimport { JWTError, OAuth2TokenKind, deserializeOAuth2Scope } from '@authup/specs';\nimport type { IAppEvent } 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: IAppEvent) {\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 AuthHeaderError.unsupportedType(header.type);\n }\n\n /**\n * @throws JWTError\n */\n protected async verifyBearerAuthorizationHeader(\n event: IAppEvent,\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: IAppEvent,\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
+ {"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","AuthHeaderError","JWTError","OAuth2TokenKind","deserializeOAuth2Scope","AuthorizationHeaderType","parseAuthorizationHeader","ClientAuthenticator","PolicyEngine","RobotAuthenticator","UserAuthenticator","RequestPermissionEvaluator","setRequestIdentity","setRequestPermissionEvaluator","setRequestScopes","setRequestSessionId","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","unsupportedType","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 { AuthHeaderError } from '@authup/errors';\nimport { JWTError, OAuth2TokenKind, deserializeOAuth2Scope } from '@authup/specs';\nimport type { IAppEvent } 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 setRequestSessionId,\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: IAppEvent) {\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 AuthHeaderError.unsupportedType(header.type);\n }\n\n /**\n * @throws JWTError\n */\n protected async verifyBearerAuthorizationHeader(\n event: IAppEvent,\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 setRequestSessionId(event, payload.session_id);\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: IAppEvent,\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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"}
@@ -14,9 +14,9 @@ import { VITE_SERVER_STORE_KEY, registerAssetsMiddleware } from "./assets.mjs";
14
14
  import { registerBasicMiddleware } from "./basic.mjs";
15
15
  import { registerCorsMiddleware } from "./cors.mjs";
16
16
  import { registerErrorMiddleware } from "./error.mjs";
17
- import { createLoggerMiddleware } from "./logger.mjs";
17
+ import { createLoggerMiddleware, redactSensitiveURLParams } from "./logger.mjs";
18
18
  import { registerPrometheusMiddleware } from "./prometheus.mjs";
19
19
  import { registerRateLimitMiddleware } from "./rate-limit.mjs";
20
20
  import { createSwaggerMiddleware } from "./swagger.mjs";
21
21
  import { UI_HTTP_CLIENT_FACTORY_STORE_KEY, registerUIHttpClientMiddleware } from "./ui-http-client.mjs";
22
- export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, RealmResolverMiddleware, UI_HTTP_CLIENT_FACTORY_STORE_KEY, VITE_SERVER_STORE_KEY, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createSwaggerMiddleware, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware };
22
+ export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, RealmResolverMiddleware, UI_HTTP_CLIENT_FACTORY_STORE_KEY, VITE_SERVER_STORE_KEY, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createSwaggerMiddleware, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware };
@@ -4,6 +4,7 @@ type LoggerMiddlewareOptions = {
4
4
  env: string;
5
5
  logger: Logger;
6
6
  };
7
+ export declare function redactSensitiveURLParams(url: string): string;
7
8
  export declare function createLoggerMiddleware(options: LoggerMiddlewareOptions): Handler;
8
9
  export {};
9
10
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
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;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,KAAK,uBAAuB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAA;CACjB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAI,OAAO,CA6BjF"}
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;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,KAAK,uBAAuB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAA;CACjB,CAAC;AAeF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoB5D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAI,OAAO,CA6BjF"}
@@ -5,13 +5,34 @@ import { EnvironmentName } from "@authup/kit";
5
5
  import { getRequestIP } from "routup";
6
6
  import { logger } from "@routup/logger";
7
7
  //#region src/adapters/http/middleware/built-in/logger.ts
8
+ const SENSITIVE_QUERY_PARAMS = [
9
+ "id_token_hint",
10
+ "id_token",
11
+ "access_token",
12
+ "refresh_token",
13
+ "token",
14
+ "code",
15
+ "client_secret"
16
+ ];
17
+ function redactSensitiveURLParams(url) {
18
+ const queryIndex = url.indexOf("?");
19
+ if (queryIndex === -1) return url;
20
+ const params = new URLSearchParams(url.substring(queryIndex + 1));
21
+ let redacted = false;
22
+ for (const name of SENSITIVE_QUERY_PARAMS) if (params.has(name)) {
23
+ params.set(name, "***");
24
+ redacted = true;
25
+ }
26
+ if (!redacted) return url;
27
+ return `${url.substring(0, queryIndex)}?${params.toString()}`;
28
+ }
8
29
  function createLoggerMiddleware(options) {
9
30
  return logger({
10
31
  format: (tokens, event, response) => [
11
32
  getRequestIP(event) || "-",
12
33
  "-",
13
34
  tokens.method(event, response) ?? "-",
14
- tokens.url(event, response) ?? "-",
35
+ redactSensitiveURLParams(tokens.url(event, response) ?? "-"),
15
36
  tokens.status(event, response) ?? "-",
16
37
  "-",
17
38
  tokens["response-time"](event, response) ?? "-"
@@ -28,6 +49,6 @@ function createLoggerMiddleware(options) {
28
49
  });
29
50
  }
30
51
  //#endregion
31
- export { createLoggerMiddleware };
52
+ export { createLoggerMiddleware, redactSensitiveURLParams };
32
53
 
33
54
  //# sourceMappingURL=logger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.mjs","names":["logger","getRequestIP","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 type { Logger } from '@authup/server-kit';\nimport { EnvironmentName } from '@authup/kit';\n\ntype LoggerMiddlewareOptions = {\n env: string,\n logger: Logger\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 options.logger.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":";;;;;;;AAkBA,SAAgBG,uBAAuBC,SAAgC;CACnE,OAAOJ,OAAO;EACVK,SAASC,QAAQC,OAAOC,aAAa;GACjCP,aAAaM,KAAAA,KAAU;GACvB;GACAD,OAAOG,OAAOF,OAAOC,QAAAA,KAAa;GAClCF,OAAOI,IAAIH,OAAOC,QAAAA,KAAa;GAC/BF,OAAOK,OAAOJ,OAAOC,QAAAA,KAAa;GAClC;GACAF,OAAO,gBAAgB,CAACC,OAAOC,QAAAA,KAAa;GAC/C,CAACI,KAAK,GAAA;EACPC,MAAMC,MAAI;GACN,IAAIV,QAAQW,QAAQb,gBAAgBc,MAChCZ,QAAQJ,OAAOiB,KAAKH,IAAAA;EAE5B;EACAI,KAAKX,OAAOC,UAAQ;GAChB,MAAMW,OAAOZ,MAAMY,QAAQ;GAC3B,IAAIA,KAAKC,WAAW,KAAKD,SAAS,KAC9B,OAAO;GAGX,IAAIf,QAAQW,QAAQb,gBAAgBmB,YAChC,QAAQb,UAAUG,UAAU,KAAK;GAGrC,OAAO;EACX;CACJ,CAAA;AACJ"}
1
+ {"version":3,"file":"logger.mjs","names":["logger","getRequestIP","EnvironmentName","SENSITIVE_QUERY_PARAMS","redactSensitiveURLParams","url","queryIndex","indexOf","params","URLSearchParams","substring","redacted","name","has","set","toString","createLoggerMiddleware","options","format","tokens","event","response","method","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 type { Logger } from '@authup/server-kit';\nimport { EnvironmentName } from '@authup/kit';\n\ntype LoggerMiddlewareOptions = {\n env: string,\n logger: Logger\n};\n\n// Query params whose values are credentials/tokens — the access log must never\n// persist them (a GET /logout?id_token_hint=<jwt> would otherwise write a\n// signature-valid token into the log).\nconst SENSITIVE_QUERY_PARAMS = [\n 'id_token_hint',\n 'id_token',\n 'access_token',\n 'refresh_token',\n 'token',\n 'code',\n 'client_secret',\n];\n\nexport function redactSensitiveURLParams(url: string): string {\n const queryIndex = url.indexOf('?');\n if (queryIndex === -1) {\n return url;\n }\n\n const params = new URLSearchParams(url.substring(queryIndex + 1));\n let redacted = false;\n for (const name of SENSITIVE_QUERY_PARAMS) {\n if (params.has(name)) {\n params.set(name, '***');\n redacted = true;\n }\n }\n\n if (!redacted) {\n return url;\n }\n\n return `${url.substring(0, queryIndex)}?${params.toString()}`;\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 redactSensitiveURLParams(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 options.logger.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":";;;;;;;AAqBA,MAAMG,yBAAyB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;;AAGJ,SAAgBC,yBAAyBC,KAAW;CAChD,MAAMC,aAAaD,IAAIE,QAAQ,GAAA;CAC/B,IAAID,eAAe,IACf,OAAOD;CAGX,MAAMG,SAAS,IAAIC,gBAAgBJ,IAAIK,UAAUJ,aAAa,CAAA,CAAA;CAC9D,IAAIK,WAAW;CACf,KAAK,MAAMC,QAAQT,wBACf,IAAIK,OAAOK,IAAID,IAAAA,GAAO;EAClBJ,OAAOM,IAAIF,MAAM,KAAA;EACjBD,WAAW;CACf;CAGJ,IAAI,CAACA,UACD,OAAON;CAGX,OAAO,GAAGA,IAAIK,UAAU,GAAGJ,UAAAA,EAAY,GAAGE,OAAOO,SAAQ;AAC7D;AAEA,SAAgBC,uBAAuBC,SAAgC;CACnE,OAAOjB,OAAO;EACVkB,SAASC,QAAQC,OAAOC,aAAa;GACjCpB,aAAamB,KAAAA,KAAU;GACvB;GACAD,OAAOG,OAAOF,OAAOC,QAAAA,KAAa;GAClCjB,yBAAyBe,OAAOd,IAAIe,OAAOC,QAAAA,KAAa,GAAA;GACxDF,OAAOI,OAAOH,OAAOC,QAAAA,KAAa;GAClC;GACAF,OAAO,gBAAgB,CAACC,OAAOC,QAAAA,KAAa;GAC/C,CAACG,KAAK,GAAA;EACPC,MAAMC,MAAI;GACN,IAAIT,QAAQU,QAAQzB,gBAAgB0B,MAChCX,QAAQjB,OAAO6B,KAAKH,IAAAA;EAE5B;EACAI,KAAKV,OAAOC,UAAQ;GAChB,MAAMU,OAAOX,MAAMW,QAAQ;GAC3B,IAAIA,KAAKC,WAAW,KAAKD,SAAS,KAC9B,OAAO;GAGX,IAAId,QAAQU,QAAQzB,gBAAgB+B,YAChC,QAAQZ,UAAUE,UAAU,KAAK;GAGrC,OAAO;EACX;CACJ,CAAA;AACJ"}
@@ -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,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,QAuB7E"}
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,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,QAqB7E"}
@@ -7,7 +7,7 @@ function registerPrometheusMiddleware(router, input) {
7
7
  let options = { skip(event) {
8
8
  let { path } = event;
9
9
  if (!path.startsWith("/")) path = `/${path}`;
10
- return path.startsWith("/authorize") || path.startsWith("/token") || path.startsWith("/metrics") || path === "/";
10
+ return path.startsWith("/metrics") || path === "/";
11
11
  } };
12
12
  if (input) options = {
13
13
  ...options,
@@ -1 +1 @@
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 { App } from 'routup';\n\nexport function registerPrometheusMiddleware(router: App, 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,QAAaC,OAAoB;CAC1E,IAAIC,UAAyB,EACzBC,KAAKC,OAAK;EACN,IAAI,EAAEC,SAASD;EACf,IAAI,CAACC,KAAKC,WAAW,GAAA,GACjBD,OAAO,IAAIA;EAGf,OAAOA,KAAKC,WAAW,YAAA,KACnBD,KAAKC,WAAW,QAAA,KAChBD,KAAKC,WAAW,UAAA,KAChBD,SAAS;CACjB,EACJ;CAEA,IAAIJ,OACAC,UAAU;EACN,GAAGA;EACH,GAAGD;CACP;CAGJD,OAAOO,IAAIT,WAAWI,OAAAA,CAAAA;AAC1B"}
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 { App } from 'routup';\n\nexport function registerPrometheusMiddleware(router: App, 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('/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,QAAaC,OAAoB;CAC1E,IAAIC,UAAyB,EACzBC,KAAKC,OAAK;EACN,IAAI,EAAEC,SAASD;EACf,IAAI,CAACC,KAAKC,WAAW,GAAA,GACjBD,OAAO,IAAIA;EAGf,OAAOA,KAAKC,WAAW,UAAA,KACnBD,SAAS;CACjB,EACJ;CAEA,IAAIJ,OACAC,UAAU;EACN,GAAGA;EACH,GAAGD;CACP;CAGJD,OAAOO,IAAIT,WAAWI,OAAAA,CAAAA;AAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/realm-resolver/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,qBAAa,uBAAuB;IAChC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;gBAEhC,GAAG,EAAE,8BAA8B;IAIzC,GAAG,CAAC,KAAK,EAAE,SAAS;CAkB7B"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/realm-resolver/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,qBAAa,uBAAuB;IAChC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;gBAEhC,GAAG,EAAE,8BAA8B;IAIzC,GAAG,CAAC,KAAK,EAAE,SAAS;CAa7B"}
@@ -3,7 +3,6 @@ import "node:url";
3
3
  import.meta.url;
4
4
  import { setRequestRealmID } from "../../../request/helpers/realm-id.mjs";
5
5
  import "../../../request/index.mjs";
6
- import { isUUID } from "@authup/kit";
7
6
  import { EntityNotFoundError } from "@authup/errors";
8
7
  //#region src/adapters/http/middleware/built-in/realm-resolver/module.ts
9
8
  var RealmResolverMiddleware = class {
@@ -14,13 +13,9 @@ var RealmResolverMiddleware = class {
14
13
  async run(event) {
15
14
  const value = event.params.realmId;
16
15
  if (typeof value !== "string" || !value) return;
17
- if (isUUID(value)) {
18
- setRequestRealmID(event, value);
19
- return;
20
- }
21
- const realm = await this.realmRepository.resolve(value);
22
- if (!realm) throw new EntityNotFoundError(`realm '${value}' not found`);
23
- setRequestRealmID(event, realm.id);
16
+ const realmId = await this.realmRepository.resolveId(value);
17
+ if (!realmId) throw new EntityNotFoundError(`realm '${value}' not found`);
18
+ setRequestRealmID(event, realmId);
24
19
  }
25
20
  };
26
21
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["isUUID","EntityNotFoundError","setRequestRealmID","RealmResolverMiddleware","realmRepository","ctx","run","event","value","params","realmId","realm","resolve","id"],"sources":["../../../../../../src/adapters/http/middleware/built-in/realm-resolver/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\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 { isUUID } from '@authup/kit';\nimport { EntityNotFoundError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\nimport type { IRealmRepository } from '../../../../../core/index.ts';\nimport { setRequestRealmID } from '../../../request/index.ts';\nimport type { RealmResolverMiddlewareContext } from './types.ts';\n\nexport class RealmResolverMiddleware {\n protected realmRepository: IRealmRepository;\n\n constructor(ctx: RealmResolverMiddlewareContext) {\n this.realmRepository = ctx.realmRepository;\n }\n\n async run(event: IAppEvent) {\n const value = event.params.realmId;\n if (typeof value !== 'string' || !value) {\n return;\n }\n\n if (isUUID(value)) {\n setRequestRealmID(event, value);\n return;\n }\n\n const realm = await this.realmRepository.resolve(value);\n if (!realm) {\n throw new EntityNotFoundError(`realm '${value}' not found`);\n }\n\n setRequestRealmID(event, realm.id);\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAaG,0BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAqC;EAC7C,KAAKD,kBAAkBC,IAAID;CAC/B;CAEA,MAAME,IAAIC,OAAkB;EACxB,MAAMC,QAAQD,MAAME,OAAOC;EAC3B,IAAI,OAAOF,UAAU,YAAY,CAACA,OAC9B;EAGJ,IAAIR,OAAOQ,KAAAA,GAAQ;GACfN,kBAAkBK,OAAOC,KAAAA;GACzB;EACJ;EAEA,MAAMG,QAAQ,MAAM,KAAKP,gBAAgBQ,QAAQJ,KAAAA;EACjD,IAAI,CAACG,OACD,MAAM,IAAIV,oBAAoB,UAAUO,MAAM,YAAY;EAG9DN,kBAAkBK,OAAOI,MAAME,EAAE;CACrC;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["EntityNotFoundError","setRequestRealmID","RealmResolverMiddleware","realmRepository","ctx","run","event","value","params","realmId","resolveId"],"sources":["../../../../../../src/adapters/http/middleware/built-in/realm-resolver/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\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 { EntityNotFoundError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\nimport type { IRealmRepository } from '../../../../../core/index.ts';\nimport { setRequestRealmID } from '../../../request/index.ts';\nimport type { RealmResolverMiddlewareContext } from './types.ts';\n\nexport class RealmResolverMiddleware {\n protected realmRepository: IRealmRepository;\n\n constructor(ctx: RealmResolverMiddlewareContext) {\n this.realmRepository = ctx.realmRepository;\n }\n\n async run(event: IAppEvent) {\n const value = event.params.realmId;\n if (typeof value !== 'string' || !value) {\n return;\n }\n\n const realmId = await this.realmRepository.resolveId(value);\n if (!realmId) {\n throw new EntityNotFoundError(`realm '${value}' not found`);\n }\n\n setRequestRealmID(event, realmId);\n }\n}\n"],"mappings":";;;;;;;AAaA,IAAaE,0BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAqC;EAC7C,KAAKD,kBAAkBC,IAAID;CAC/B;CAEA,MAAME,IAAIC,OAAkB;EACxB,MAAMC,QAAQD,MAAME,OAAOC;EAC3B,IAAI,OAAOF,UAAU,YAAY,CAACA,OAC9B;EAGJ,MAAME,UAAU,MAAM,KAAKN,gBAAgBO,UAAUH,KAAAA;EACrD,IAAI,CAACE,SACD,MAAM,IAAIT,oBAAoB,UAAUO,MAAM,YAAY;EAG9DN,kBAAkBK,OAAOG,OAAAA;CAC7B;AACJ"}
@@ -7,8 +7,8 @@ import type { App } from 'routup';
7
7
  * whose registration carries `lifetime: 'transient'`, so every SSR
8
8
  * render resolves a fresh client — never share one client instance
9
9
  * across renders (the authentication hook writes per-user state onto
10
- * it). Mounted only when the token is bound (test injection);
11
- * production mounts nothing.
10
+ * it). Production binds the internal loopback client by default
11
+ * (`HTTPModule.registerUIHttpClient`); tests may pre-register a fake.
12
12
  */
13
13
  export declare const UI_HTTP_CLIENT_FACTORY_STORE_KEY: unique symbol;
14
14
  export declare function registerUIHttpClientMiddleware(router: App, httpClientFactory: () => IClient): void;
@@ -10,8 +10,8 @@ import { defineCoreHandler } from "routup";
10
10
  * whose registration carries `lifetime: 'transient'`, so every SSR
11
11
  * render resolves a fresh client — never share one client instance
12
12
  * across renders (the authentication hook writes per-user state onto
13
- * it). Mounted only when the token is bound (test injection);
14
- * production mounts nothing.
13
+ * it). Production binds the internal loopback client by default
14
+ * (`HTTPModule.registerUIHttpClient`); tests may pre-register a fake.
15
15
  */ const UI_HTTP_CLIENT_FACTORY_STORE_KEY = Symbol("UIHttpClientFactory");
16
16
  function registerUIHttpClientMiddleware(router, httpClientFactory) {
17
17
  router.use(defineCoreHandler((event) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-http-client.mjs","names":["defineCoreHandler","UI_HTTP_CLIENT_FACTORY_STORE_KEY","Symbol","registerUIHttpClientMiddleware","router","httpClientFactory","use","event","store","next"],"sources":["../../../../../src/adapters/http/middleware/built-in/ui-http-client.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\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 { IClient } from '@authup/core-http-kit';\nimport type { App } from 'routup';\nimport { defineCoreHandler } from 'routup';\n\n/**\n * Per-request handoff of an HTTP-client factory into renderUIPage —\n * same mechanism as VITE_SERVER_STORE_KEY. The wiring passes a thunk\n * over the DI container (`() => container.resolve(UIHttpClient)`)\n * whose registration carries `lifetime: 'transient'`, so every SSR\n * render resolves a fresh client — never share one client instance\n * across renders (the authentication hook writes per-user state onto\n * it). Mounted only when the token is bound (test injection);\n * production mounts nothing.\n */\nexport const UI_HTTP_CLIENT_FACTORY_STORE_KEY = Symbol('UIHttpClientFactory');\n\nexport function registerUIHttpClientMiddleware(router: App, httpClientFactory: () => IClient) {\n router.use(defineCoreHandler((event) => {\n event.store[UI_HTTP_CLIENT_FACTORY_STORE_KEY] = httpClientFactory;\n return event.next();\n }));\n}\n"],"mappings":";;;;;;;;;;;;;;GAqBA,MAAaC,mCAAmCC,OAAO,qBAAA;AAEvD,SAAgBC,+BAA+BC,QAAaC,mBAAgC;CACxFD,OAAOE,IAAIN,mBAAmBO,UAAAA;EAC1BA,MAAMC,MAAMP,oCAAoCI;EAChD,OAAOE,MAAME,KAAI;CACrB,CAAA,CAAA;AACJ"}
1
+ {"version":3,"file":"ui-http-client.mjs","names":["defineCoreHandler","UI_HTTP_CLIENT_FACTORY_STORE_KEY","Symbol","registerUIHttpClientMiddleware","router","httpClientFactory","use","event","store","next"],"sources":["../../../../../src/adapters/http/middleware/built-in/ui-http-client.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\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 { IClient } from '@authup/core-http-kit';\nimport type { App } from 'routup';\nimport { defineCoreHandler } from 'routup';\n\n/**\n * Per-request handoff of an HTTP-client factory into renderUIPage —\n * same mechanism as VITE_SERVER_STORE_KEY. The wiring passes a thunk\n * over the DI container (`() => container.resolve(UIHttpClient)`)\n * whose registration carries `lifetime: 'transient'`, so every SSR\n * render resolves a fresh client — never share one client instance\n * across renders (the authentication hook writes per-user state onto\n * it). Production binds the internal loopback client by default\n * (`HTTPModule.registerUIHttpClient`); tests may pre-register a fake.\n */\nexport const UI_HTTP_CLIENT_FACTORY_STORE_KEY = Symbol('UIHttpClientFactory');\n\nexport function registerUIHttpClientMiddleware(router: App, httpClientFactory: () => IClient) {\n router.use(defineCoreHandler((event) => {\n event.store[UI_HTTP_CLIENT_FACTORY_STORE_KEY] = httpClientFactory;\n return event.next();\n }));\n}\n"],"mappings":";;;;;;;;;;;;;;GAqBA,MAAaC,mCAAmCC,OAAO,qBAAA;AAEvD,SAAgBC,+BAA+BC,QAAaC,mBAAgC;CACxFD,OAAOE,IAAIN,mBAAmBO,UAAAA;EAC1BA,MAAMC,MAAMP,oCAAoCI;EAChD,OAAOE,MAAME,KAAI;CACrB,CAAA,CAAA;AACJ"}
@@ -11,10 +11,10 @@ import { VITE_SERVER_STORE_KEY, registerAssetsMiddleware } from "./built-in/asse
11
11
  import { registerBasicMiddleware } from "./built-in/basic.mjs";
12
12
  import { registerCorsMiddleware } from "./built-in/cors.mjs";
13
13
  import { registerErrorMiddleware } from "./built-in/error.mjs";
14
- import { createLoggerMiddleware } from "./built-in/logger.mjs";
14
+ import { createLoggerMiddleware, redactSensitiveURLParams } from "./built-in/logger.mjs";
15
15
  import { registerPrometheusMiddleware } from "./built-in/prometheus.mjs";
16
16
  import { registerRateLimitMiddleware } from "./built-in/rate-limit.mjs";
17
17
  import { createSwaggerMiddleware } from "./built-in/swagger.mjs";
18
18
  import { UI_HTTP_CLIENT_FACTORY_STORE_KEY, registerUIHttpClientMiddleware } from "./built-in/ui-http-client.mjs";
19
19
  import "./built-in/index.mjs";
20
- export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, RealmResolverMiddleware, UI_HTTP_CLIENT_FACTORY_STORE_KEY, VITE_SERVER_STORE_KEY, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createSwaggerMiddleware, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware };
20
+ export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, RealmResolverMiddleware, UI_HTTP_CLIENT_FACTORY_STORE_KEY, VITE_SERVER_STORE_KEY, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createSwaggerMiddleware, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware };
@@ -7,5 +7,6 @@ export * from './param-id.ts';
7
7
  export * from './realm-id.ts';
8
8
  export * from './redirect.ts';
9
9
  export * from './scopes.ts';
10
+ export * from './session-id.ts';
10
11
  export * from './token.ts';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/index.ts"],"names":[],"mappings":"AAOA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/index.ts"],"names":[],"mappings":"AAOA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -10,5 +10,6 @@ import { getRequestParamID, getRequestStringParam, getRequestStringParamOrFail,
10
10
  import { applyRouteRealmIDToBody, getRequestRealmID, setRequestRealmID } from "./realm-id.mjs";
11
11
  import { sanitizeRelativeRedirect } from "./redirect.mjs";
12
12
  import { setRequestScopes, useRequestScopes } from "./scopes.mjs";
13
+ import { setRequestSessionId, useRequestSessionId } from "./session-id.mjs";
13
14
  import { setRequestToken, useRequestToken } from "./token.mjs";
14
- export { LOCALE_COOKIE, RequestIdentity, applyRouteRealmIDToBody, buildActorContext, getBodyRealmID, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, readFromLocations, sanitizeRelativeRedirect, setRequestIdentity, setRequestRealmID, setRequestScopes, setRequestToken, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestParamID, useRequestScopes, useRequestToken };
15
+ export { LOCALE_COOKIE, RequestIdentity, applyRouteRealmIDToBody, buildActorContext, getBodyRealmID, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, readFromLocations, sanitizeRelativeRedirect, setRequestIdentity, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestParamID, useRequestScopes, useRequestSessionId, useRequestToken };
@@ -0,0 +1,9 @@
1
+ import type { IAppEvent } from 'routup';
2
+ /**
3
+ * The id of the session the current bearer token belongs to (stashed by the
4
+ * authorization middleware). Used by `/sessions` self-service (e.g. "revoke all
5
+ * my other sessions").
6
+ */
7
+ export declare function useRequestSessionId(event: IAppEvent): string | undefined;
8
+ export declare function setRequestSessionId(event: IAppEvent, id: string): void;
9
+ //# sourceMappingURL=session-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-id.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/session-id.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAExE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtE"}