@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
@@ -46,12 +46,14 @@ import { RoleService } from "../../../../core/entities/role/service.mjs";
46
46
  import { RoleAttributeService } from "../../../../core/entities/role-attribute/service.mjs";
47
47
  import { RolePermissionService } from "../../../../core/entities/role-permission/service.mjs";
48
48
  import { ScopeService } from "../../../../core/entities/scope/service.mjs";
49
+ import { SessionService } from "../../../../core/entities/session/service.mjs";
49
50
  import { UserService } from "../../../../core/entities/user/service.mjs";
50
51
  import { UserAttributeService } from "../../../../core/entities/user-attribute/service.mjs";
51
52
  import { UserPermissionService } from "../../../../core/entities/user-permission/service.mjs";
52
53
  import { UserRoleService } from "../../../../core/entities/user-role/service.mjs";
53
54
  import { IdentityProviderRoleMappingService } from "../../../../core/entities/identity-provider-role-mapping/service.mjs";
54
55
  import { OAuth2ClientAuthenticator } from "../../../../core/oauth2/client/authenticator.mjs";
56
+ import { OAuth2EndSessionService } from "../../../../core/oauth2/end-session/service.mjs";
55
57
  import { PasswordRecoveryService } from "../../../../core/identity/password-recovery/service.mjs";
56
58
  import { PermissionCheckerService } from "../../../../core/identity/permission/checker/service.mjs";
57
59
  import { PolicyCheckerService } from "../../../../core/identity/policy/checker/service.mjs";
@@ -98,6 +100,7 @@ import { PermissionPolicyController } from "../../../../adapters/http/controller
98
100
  import { ActivateController } from "../../../../adapters/http/controllers/workflows/activate/module.mjs";
99
101
  import { AuthorizeController } from "../../../../adapters/http/controllers/workflows/authorize/module.mjs";
100
102
  import { JwkController } from "../../../../adapters/http/controllers/workflows/jwks/module.mjs";
103
+ import { LogoutController } from "../../../../adapters/http/controllers/workflows/logout/module.mjs";
101
104
  import { OpenIDController } from "../../../../adapters/http/controllers/workflows/openid/module.mjs";
102
105
  import { PasswordForgotController } from "../../../../adapters/http/controllers/workflows/password-forgot/module.mjs";
103
106
  import { PasswordResetController } from "../../../../adapters/http/controllers/workflows/password-reset/module.mjs";
@@ -113,6 +116,7 @@ import { RoleAttributeController } from "../../../../adapters/http/controllers/e
113
116
  import { RolePermissionController } from "../../../../adapters/http/controllers/entities/role-permission/module.mjs";
114
117
  import { PolicyController } from "../../../../adapters/http/controllers/entities/policy/module.mjs";
115
118
  import { ScopeController } from "../../../../adapters/http/controllers/entities/scope/module.mjs";
119
+ import { SessionController } from "../../../../adapters/http/controllers/entities/session/module.mjs";
116
120
  import { UserController } from "../../../../adapters/http/controllers/entities/user/module.mjs";
117
121
  import { UserAttributeController } from "../../../../adapters/http/controllers/entities/user-attribute/module.mjs";
118
122
  import { UserPermissionController } from "../../../../adapters/http/controllers/entities/user-permission/module.mjs";
@@ -143,6 +147,7 @@ var HTTPControllerModule = class {
143
147
  const roleAttributeController = this.createRoleAttributeController(container);
144
148
  const rolePermissionController = this.createRolePermissionController(container);
145
149
  const scopeController = this.createScopeController(container);
150
+ const sessionController = this.createSessionController(container);
146
151
  const userController = this.createUserController(container);
147
152
  const userAttributeController = this.createUserAttributeController(container);
148
153
  const userPermissionController = this.createUserPermissionController(container);
@@ -158,6 +163,7 @@ var HTTPControllerModule = class {
158
163
  this.createPasswordForgotController(container),
159
164
  this.createPasswordResetController(container),
160
165
  this.createRegisterController(container),
166
+ this.createLogoutController(container),
161
167
  this.createStatusController(container),
162
168
  clientController,
163
169
  clientPermissionController,
@@ -176,6 +182,7 @@ var HTTPControllerModule = class {
176
182
  roleAttributeController,
177
183
  rolePermissionController,
178
184
  scopeController,
185
+ sessionController,
179
186
  userController,
180
187
  userAttributeController,
181
188
  userPermissionController,
@@ -184,44 +191,58 @@ var HTTPControllerModule = class {
184
191
  }
185
192
  createAuthorize(container) {
186
193
  const config = container.resolve(ConfigInjectionKey);
187
- const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);
188
- const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);
189
194
  const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);
190
195
  const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);
191
- const identityResolver = container.resolve(IdentityInjectionKey.Resolver);
196
+ const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);
192
197
  return new AuthorizeController({
193
198
  options: {
194
199
  baseURL: config.publicUrl,
195
- features: this.buildUIFeatures(config)
200
+ features: this.buildUIFeatures(config),
201
+ promptLoginMaxAge: config.promptLoginMaxAge
196
202
  },
197
- accessTokenIssuer,
198
- openIdTokenIssuer,
199
203
  codeIssuer,
200
204
  codeRequestVerifier,
201
- identityResolver
205
+ sessionManager
202
206
  });
203
207
  }
204
208
  createToken(container) {
209
+ const config = container.resolve(ConfigInjectionKey);
210
+ const logger = container.resolve(LoggerInjectionKey);
205
211
  const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);
206
212
  const codeVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeVerifier);
207
213
  const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);
208
214
  const refreshTokenIssuer = container.resolve(OAuth2InjectionToken.RefreshTokenIssuer);
215
+ const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);
216
+ const keyRepository = container.resolve(OAuth2InjectionToken.KeyRepository);
209
217
  const tokenRevoker = container.resolve(OAuth2InjectionToken.TokenRevoker);
210
218
  const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);
219
+ const tokenRepository = container.resolve(OAuth2InjectionToken.TokenRepository);
220
+ const sessionTokenRepository = container.resolve(OAuth2InjectionToken.SessionTokenRepository);
211
221
  const identityResolver = container.resolve(IdentityInjectionKey.Resolver);
212
222
  const identityProviderLdapCollectionAuthenticator = container.resolve(IdentityInjectionKey.ProviderLdapCollectionAuthenticator);
223
+ const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
224
+ const clientAuthenticator = new ClientAuthenticator(identityResolver);
225
+ const robotAuthenticator = new RobotAuthenticator(identityResolver);
226
+ const userAuthenticator = new CredentialsAuthenticator([identityProviderLdapCollectionAuthenticator, new UserAuthenticator(identityResolver)]);
227
+ const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator(identityResolver);
213
228
  return new TokenController({
214
229
  codeVerifier,
215
230
  accessTokenIssuer,
216
231
  refreshTokenIssuer,
232
+ openIdTokenIssuer,
233
+ keyRepository,
217
234
  tokenVerifier,
218
235
  tokenRevoker,
236
+ tokenRepository,
237
+ sessionTokenRepository,
238
+ tokenRefreshGracePeriod: config.tokenRefreshGracePeriod,
239
+ logger,
219
240
  identityResolver,
220
- identityPermissionProvider: container.resolve(IdentityInjectionKey.PermissionProvider),
221
- clientAuthenticator: new ClientAuthenticator(identityResolver),
222
- robotAuthenticator: new RobotAuthenticator(identityResolver),
223
- userAuthenticator: new CredentialsAuthenticator([identityProviderLdapCollectionAuthenticator, new UserAuthenticator(identityResolver)]),
224
- oauth2ClientAuthenticator: new OAuth2ClientAuthenticator(identityResolver),
241
+ identityPermissionProvider,
242
+ clientAuthenticator,
243
+ robotAuthenticator,
244
+ userAuthenticator,
245
+ oauth2ClientAuthenticator,
225
246
  realmRepository: new RealmRepositoryAdapter(container.resolve(RealmEntity)),
226
247
  sessionManager
227
248
  });
@@ -275,7 +296,8 @@ var HTTPControllerModule = class {
275
296
  options: {
276
297
  passwordRecoveryEnabled: config.passwordRecoveryEnabled,
277
298
  emailVerificationEnabled: config.emailVerificationEnabled,
278
- publicUrl: config.publicUrl
299
+ publicUrl: config.publicUrl,
300
+ passwordMinLength: config.passwordMinLength
279
301
  }
280
302
  });
281
303
  }
@@ -289,6 +311,20 @@ var HTTPControllerModule = class {
289
311
  service: this.createRegistrationService(container)
290
312
  });
291
313
  }
314
+ createLogoutController(container) {
315
+ const config = container.resolve(ConfigInjectionKey);
316
+ const endSessionService = new OAuth2EndSessionService({
317
+ tokenVerifier: container.resolve(OAuth2InjectionToken.TokenVerifier),
318
+ sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),
319
+ clientRepository: container.resolve(OAuth2InjectionToken.ClientRepository),
320
+ realmRepository: new RealmRepositoryAdapter(container.resolve(RealmEntity)),
321
+ hintGracePeriod: config.endSessionHintGracePeriod
322
+ });
323
+ return new LogoutController({
324
+ options: { baseURL: config.publicUrl },
325
+ endSessionService
326
+ });
327
+ }
292
328
  createStatusController(container) {
293
329
  const config = container.resolve(ConfigInjectionKey);
294
330
  return new StatusController({ options: { features: this.buildUIFeatures(config) } });
@@ -316,7 +352,8 @@ var HTTPControllerModule = class {
316
352
  options: {
317
353
  registrationEnabled: config.registrationEnabled,
318
354
  emailVerificationEnabled: config.emailVerificationEnabled,
319
- publicUrl: config.publicUrl
355
+ publicUrl: config.publicUrl,
356
+ passwordMinLength: config.passwordMinLength
320
357
  }
321
358
  });
322
359
  }
@@ -485,7 +522,11 @@ var HTTPControllerModule = class {
485
522
  realmRepository
486
523
  }) });
487
524
  }
525
+ createSessionController(container) {
526
+ return new SessionController({ service: new SessionService({ repository: container.resolve(AuthenticationInjectionKey.SessionRepository) }) });
527
+ }
488
528
  createUserController(container) {
529
+ const config = container.resolve(ConfigInjectionKey);
489
530
  const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
490
531
  const realmRepository = container.resolve(RealmEntity);
491
532
  return new UserController({ service: new UserService({
@@ -493,7 +534,8 @@ var HTTPControllerModule = class {
493
534
  repository: new UserRepository(dataSource),
494
535
  realmRepository
495
536
  }),
496
- realmRepository: new RealmRepositoryAdapter(realmRepository)
537
+ realmRepository: new RealmRepositoryAdapter(realmRepository),
538
+ passwordMinLength: config.passwordMinLength
497
539
  }) });
498
540
  }
499
541
  createUserAttributeController(container) {
@@ -1 +1 @@
1
- {"version":3,"file":"controller.mjs","names":["decorators","ClientEntity","ClientPermissionEntity","ClientRoleEntity","ClientScopeEntity","IdentityProviderRepository","IdentityProviderRoleMappingEntity","KeyEntity","PermissionEntity","PermissionPolicyEntity","PolicyRepository","RealmEntity","RobotEntity","RobotPermissionEntity","RobotRoleEntity","RoleAttributeEntity","RoleEntity","RolePermissionEntity","ScopeEntity","UserAttributeEntity","UserEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientPermissionRepositoryAdapter","ClientRepositoryAdapter","ClientRoleRepositoryAdapter","ClientScopeRepositoryAdapter","DatabaseInjectionKey","IdentityProviderRepositoryAdapter","IdentityProviderRoleMappingRepositoryAdapter","PermissionDatabaseProvider","PermissionPolicyRepositoryAdapter","PermissionRepositoryAdapter","PolicyRepositoryAdapter","RealmRepositoryAdapter","RobotPermissionRepositoryAdapter","RobotRepositoryAdapter","RobotRoleRepositoryAdapter","RoleAttributeRepositoryAdapter","RolePermissionRepositoryAdapter","RoleRepositoryAdapter","ScopeRepositoryAdapter","UserAttributeRepositoryAdapter","UserPermissionRepositoryAdapter","UserRepositoryAdapter","UserRoleRepositoryAdapter","ClientController","ClientPermissionController","ClientRoleController","ClientScopeController","IdentityProviderController","IdentityProviderRoleMappingController","PermissionController","PermissionPolicyController","PolicyController","RealmController","RobotController","RobotPermissionController","RobotRoleController","RoleAttributeController","RoleController","RolePermissionController","ScopeController","UserAttributeController","UserController","UserPermissionController","UserRoleController","ActivateController","AuthorizeController","JwkController","OpenIDController","PasswordForgotController","PasswordResetController","RegisterController","StatusController","TokenController","ClientAuthenticator","ClientPermissionService","ClientRoleService","ClientScopeService","ClientService","CredentialsAuthenticator","IdentityProviderRoleMappingService","OAuth2ClientAuthenticator","PasswordRecoveryService","PermissionCheckerService","PermissionPolicyService","PermissionService","PolicyCheckerService","PolicyService","RealmService","RegistrationService","RobotAuthenticator","RobotPermissionService","RobotRoleService","RobotService","RoleAttributeService","RolePermissionService","RoleService","ScopeService","UserAttributeService","UserAuthenticator","UserPermissionService","UserRoleService","UserService","WebClientProvisioner","AuthenticationInjectionKey","OAuth2InjectionToken","IdentityInjectionKey","ConfigInjectionKey","getAppOrigins","LoggerInjectionKey","MailInjectionKey","MailTemplateRendererInjectionKey","HTTPControllerModule","mount","router","container","realmController","createRealmController","roleController","createRoleController","permissionController","createPermissionController","permissionPolicyController","createPermissionPolicyController","clientController","createClientController","robotController","createRobotController","clientPermissionController","createClientPermissionController","clientRoleController","createClientRoleController","clientScopeController","createClientScopeController","robotPermissionController","createRobotPermissionController","robotRoleController","createRobotRoleController","roleAttributeController","createRoleAttributeController","rolePermissionController","createRolePermissionController","scopeController","createScopeController","userController","createUserController","userAttributeController","createUserAttributeController","userPermissionController","createUserPermissionController","userRoleController","createUserRoleController","policyController","createPolicyController","identityProviderRoleController","createIdentityProviderRoleController","use","controllers","createAuthorize","createToken","createJwkController","createOpenIDController","createActivateController","createPasswordForgotController","createPasswordResetController","createRegisterController","createStatusController","createIdentityProvider","config","resolve","accessTokenIssuer","AccessTokenIssuer","openIdTokenIssuer","OpenIDTokenIssuer","codeIssuer","AuthorizationCodeIssuer","codeRequestVerifier","AuthorizationCodeRequestVerifier","identityResolver","Resolver","options","baseURL","publicUrl","features","buildUIFeatures","sessionManager","SessionManager","codeVerifier","AuthorizationCodeVerifier","refreshTokenIssuer","RefreshTokenIssuer","tokenRevoker","TokenRevoker","tokenVerifier","TokenVerifier","identityProviderLdapCollectionAuthenticator","ProviderLdapCollectionAuthenticator","identityPermissionProvider","PermissionProvider","clientAuthenticator","robotAuthenticator","userAuthenticator","oauth2ClientAuthenticator","realmRepository","service","createRegistrationService","createPasswordRecoveryService","dataSource","DataSource","repository","mailClient","mailTemplateRenderer","passwordRecoveryEnabled","emailVerificationEnabled","registration","registrationEnabled","passwordRecovery","emailVerification","accountManager","ProviderAccountManager","stateManager","AuthorizationStateManager","realmRepositoryAdapter","createPermissionRepository","createRoleRepository","roleRepository","rolePermissionRepository","policyRepository","permissionPolicyRepository","permissionProvider","checkerService","permissionRepository","reservedNames","Set","getMetadata","columns","map","c","propertyName","getRepository","clientRepository","logger","webClientProvisioner","appOrigins","keyRepository"],"sources":["../../../../../src/app/modules/http/modules/controller.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 { App } from 'routup';\nimport { decorators } from '@routup/decorators';\nimport type {\n Client,\n ClientPermission,\n ClientRole,\n ClientScope,\n Permission,\n PermissionPolicy,\n Realm,\n Robot,\n RobotPermission,\n RobotRole,\n Role,\n RoleAttribute,\n RolePermission,\n Scope,\n UserAttribute,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientEntity,\n ClientPermissionEntity,\n ClientRoleEntity,\n ClientScopeEntity,\n IdentityProviderRepository,\n IdentityProviderRoleMappingEntity,\n KeyEntity,\n PermissionEntity,\n PermissionPolicyEntity,\n PolicyRepository,\n RealmEntity,\n RobotEntity,\n RobotPermissionEntity,\n RobotRoleEntity,\n RoleAttributeEntity,\n RoleEntity,\n RolePermissionEntity,\n ScopeEntity,\n UserAttributeEntity,\n UserEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../../adapters/database/domains/index.ts';\nimport {\n ClientPermissionRepositoryAdapter,\n ClientRepositoryAdapter,\n ClientRoleRepositoryAdapter,\n ClientScopeRepositoryAdapter,\n DatabaseInjectionKey,\n IdentityProviderRepositoryAdapter,\n IdentityProviderRoleMappingRepositoryAdapter,\n PermissionDatabaseProvider,\n PermissionPolicyRepositoryAdapter,\n PermissionRepositoryAdapter,\n PolicyRepositoryAdapter,\n RealmRepositoryAdapter,\n RobotPermissionRepositoryAdapter,\n RobotRepositoryAdapter,\n RobotRoleRepositoryAdapter,\n RoleAttributeRepositoryAdapter,\n RolePermissionRepositoryAdapter,\n RoleRepositoryAdapter,\n ScopeRepositoryAdapter,\n UserAttributeRepositoryAdapter,\n UserPermissionRepositoryAdapter,\n UserRepositoryAdapter,\n UserRoleRepositoryAdapter,\n} from '../../database/index.ts';\nimport {\n ClientController,\n ClientPermissionController,\n ClientRoleController,\n ClientScopeController, \n IdentityProviderController,\n IdentityProviderRoleMappingController,\n PermissionController,\n PermissionPolicyController,\n PolicyController,\n RealmController,\n RobotController,\n RobotPermissionController,\n RobotRoleController,\n RoleAttributeController,\n RoleController,\n RolePermissionController,\n ScopeController,\n UserAttributeController,\n UserController,\n UserPermissionController,\n UserRoleController,\n} from '../../../../adapters/http/index.ts';\nimport {\n ActivateController,\n AuthorizeController,\n JwkController,\n OpenIDController,\n PasswordForgotController,\n PasswordResetController,\n RegisterController,\n StatusController,\n TokenController,\n} from '../../../../adapters/http/controllers/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n ClientAuthenticator,\n ClientPermissionService,\n ClientRoleService,\n ClientScopeService,\n ClientService,\n CredentialsAuthenticator,\n IdentityProviderRoleMappingService,\n OAuth2ClientAuthenticator,\n PasswordRecoveryService,\n PermissionCheckerService,\n PermissionPolicyService,\n PermissionService,\n PolicyCheckerService,\n PolicyService,\n RealmService,\n RegistrationService,\n RobotAuthenticator,\n RobotPermissionService,\n RobotRoleService,\n RobotService,\n RoleAttributeService,\n RolePermissionService,\n RoleService,\n ScopeService,\n UserAttributeService,\n UserAuthenticator,\n UserPermissionService,\n UserRoleService,\n UserService,\n WebClientProvisioner,\n} from '../../../../core/index.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { IdentityInjectionKey } from '../../identity/index.ts';\nimport type { StatusResponseFeatures } from '@authup/core-http-kit';\nimport type { Config } from '../../config/index.ts';\nimport { ConfigInjectionKey, getAppOrigins } from '../../config/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { MailInjectionKey, MailTemplateRendererInjectionKey } from '../../mail/index.ts';\n\nexport class HTTPControllerModule {\n async mount(router: App, container: IContainer): Promise<void> {\n const realmController = this.createRealmController(container);\n const roleController = this.createRoleController(container);\n const permissionController = await this.createPermissionController(container);\n const permissionPolicyController = this.createPermissionPolicyController(container);\n const clientController = this.createClientController(container);\n const robotController = this.createRobotController(container);\n const clientPermissionController = this.createClientPermissionController(container);\n const clientRoleController = this.createClientRoleController(container);\n const clientScopeController = this.createClientScopeController(container);\n const robotPermissionController = this.createRobotPermissionController(container);\n const robotRoleController = this.createRobotRoleController(container);\n const roleAttributeController = this.createRoleAttributeController(container);\n const rolePermissionController = this.createRolePermissionController(container);\n const scopeController = this.createScopeController(container);\n const userController = this.createUserController(container);\n const userAttributeController = this.createUserAttributeController(container);\n const userPermissionController = this.createUserPermissionController(container);\n const userRoleController = this.createUserRoleController(container);\n const policyController = this.createPolicyController(container);\n const identityProviderRoleController = this.createIdentityProviderRoleController(container);\n\n router.use(decorators({\n controllers: [\n this.createAuthorize(container),\n this.createToken(container),\n this.createJwkController(container),\n this.createOpenIDController(container),\n this.createActivateController(container),\n this.createPasswordForgotController(container),\n this.createPasswordResetController(container),\n this.createRegisterController(container),\n\n this.createStatusController(container),\n\n clientController,\n clientPermissionController,\n clientRoleController,\n clientScopeController,\n identityProviderRoleController,\n this.createIdentityProvider(container),\n permissionController,\n permissionPolicyController,\n policyController,\n robotController,\n robotPermissionController,\n robotRoleController,\n realmController,\n roleController,\n roleAttributeController,\n rolePermissionController,\n scopeController,\n userController,\n userAttributeController,\n userPermissionController,\n userRoleController,\n ],\n }));\n }\n\n // ----------------------------------------------------\n\n createAuthorize(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);\n const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);\n\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n\n return new AuthorizeController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n\n accessTokenIssuer,\n openIdTokenIssuer,\n\n codeIssuer,\n codeRequestVerifier,\n\n identityResolver,\n });\n }\n\n createToken(container: IContainer) {\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n\n const codeVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeVerifier);\n\n const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);\n const refreshTokenIssuer = container.resolve(OAuth2InjectionToken.RefreshTokenIssuer);\n\n const tokenRevoker = container.resolve(OAuth2InjectionToken.TokenRevoker);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const identityProviderLdapCollectionAuthenticator = container.resolve(IdentityInjectionKey.ProviderLdapCollectionAuthenticator);\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const clientAuthenticator = new ClientAuthenticator(identityResolver);\n const robotAuthenticator = new RobotAuthenticator(identityResolver);\n\n const userAuthenticator = new CredentialsAuthenticator([\n identityProviderLdapCollectionAuthenticator,\n new UserAuthenticator(identityResolver),\n ]);\n\n const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator(identityResolver);\n\n return new TokenController({\n codeVerifier,\n\n accessTokenIssuer,\n refreshTokenIssuer,\n\n tokenVerifier,\n tokenRevoker,\n\n identityResolver,\n identityPermissionProvider,\n\n clientAuthenticator,\n robotAuthenticator,\n userAuthenticator,\n\n oauth2ClientAuthenticator,\n\n realmRepository: new RealmRepositoryAdapter(container.resolve<Repository<Realm>>(RealmEntity)),\n\n sessionManager,\n });\n }\n\n createOpenIDController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new OpenIDController({ baseURL: config.publicUrl });\n }\n\n createActivateController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new ActivateController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createRegistrationService(container),\n });\n }\n\n createPasswordForgotController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordForgotController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordResetController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordResetController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordRecoveryService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new PasswordRecoveryService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n options: {\n passwordRecoveryEnabled: config.passwordRecoveryEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n },\n });\n }\n\n createRegisterController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new RegisterController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createRegistrationService(container),\n });\n }\n\n createStatusController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new StatusController({ options: { features: this.buildUIFeatures(config) } });\n }\n\n buildUIFeatures(config: Config) : StatusResponseFeatures {\n return {\n registration: config.registrationEnabled,\n passwordRecovery: config.passwordRecoveryEnabled,\n emailVerification: config.emailVerificationEnabled,\n };\n }\n\n createRegistrationService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new RegistrationService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n options: {\n registrationEnabled: config.registrationEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n },\n });\n }\n\n createIdentityProvider(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const accountManager = container.resolve(IdentityInjectionKey.ProviderAccountManager);\n\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\n\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const stateManager = container.resolve(OAuth2InjectionToken.AuthorizationStateManager);\n\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const repository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository,\n });\n\n return new IdentityProviderController({\n options: { baseURL: config.publicUrl },\n\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n\n accountManager,\n\n codeIssuer,\n codeRequestVerifier,\n stateManager,\n });\n }\n\n createClientController(container: IContainer) {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new ClientService({\n repository,\n realmRepository: realmRepositoryAdapter, \n });\n return new ClientController({\n service,\n repository, \n });\n }\n\n createRobotController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RobotRepositoryAdapter({\n repository: container.resolve<Repository<Robot>>(RobotEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new RobotService({\n repository,\n realmRepository: realmRepositoryAdapter, \n });\n return new RobotController({\n service,\n repository,\n realmRepository: realmRepositoryAdapter,\n dataSource,\n });\n }\n\n private createPermissionRepository(container: IContainer): PermissionRepositoryAdapter {\n return new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n private createRoleRepository(container: IContainer): RoleRepositoryAdapter {\n return new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n async createPermissionController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository,\n });\n\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const roleRepository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n const rolePermissionRepository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const policyRepository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n\n const permissionPolicyRepository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n\n const service = new PermissionService({\n repository,\n realmRepository: realmRepositoryAdapter,\n roleRepository,\n rolePermissionRepository,\n policyRepository,\n permissionPolicyRepository,\n });\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const checkerService = new PermissionCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n permissionProvider,\n identityPermissionProvider,\n });\n\n return new PermissionController({\n service,\n checkerService,\n });\n }\n\n createRoleController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new RoleService({\n repository,\n realmRepository, \n });\n return new RoleController({ service });\n }\n\n createClientPermissionController(container: IContainer) {\n const repository = new ClientPermissionRepositoryAdapter(\n container.resolve<Repository<ClientPermission>>(ClientPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new ClientPermissionController({ service });\n }\n\n createClientRoleController(container: IContainer) {\n const repository = new ClientRoleRepositoryAdapter(\n container.resolve<Repository<ClientRole>>(ClientRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientRoleService({ repository, identityPermissionProvider });\n return new ClientRoleController({ service });\n }\n\n createClientScopeController(container: IContainer) {\n const repository = new ClientScopeRepositoryAdapter(\n container.resolve<Repository<ClientScope>>(ClientScopeEntity),\n );\n const service = new ClientScopeService({ repository });\n return new ClientScopeController({ service });\n }\n\n createRobotPermissionController(container: IContainer) {\n const repository = new RobotPermissionRepositoryAdapter(\n container.resolve<Repository<RobotPermission>>(RobotPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RobotPermissionController({ service });\n }\n\n createRobotRoleController(container: IContainer) {\n const repository = new RobotRoleRepositoryAdapter(\n container.resolve<Repository<RobotRole>>(RobotRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotRoleService({ repository, identityPermissionProvider });\n return new RobotRoleController({ service });\n }\n\n createRoleAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new RoleAttributeRepositoryAdapter(\n container.resolve<Repository<RoleAttribute>>(RoleAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(RoleEntity).columns.map((c) => c.propertyName),\n );\n const service = new RoleAttributeService({ repository, reservedNames });\n return new RoleAttributeController({ service });\n }\n\n createRolePermissionController(container: IContainer) {\n const repository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RolePermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RolePermissionController({ service });\n }\n\n createPermissionPolicyController(container: IContainer) {\n const repository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n const service = new PermissionPolicyService({ repository });\n return new PermissionPolicyController({ service });\n }\n\n createScopeController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new ScopeRepositoryAdapter({\n repository: container.resolve<Repository<Scope>>(ScopeEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new ScopeService({\n repository,\n realmRepository, \n });\n return new ScopeController({ service });\n }\n\n createUserController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new UserService({\n repository,\n realmRepository: realmRepositoryAdapter, \n });\n return new UserController({ service });\n }\n\n createUserAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new UserAttributeRepositoryAdapter(\n container.resolve<Repository<UserAttribute>>(UserAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(UserEntity).columns.map((c) => c.propertyName),\n );\n const service = new UserAttributeService({ repository, reservedNames });\n return new UserAttributeController({ service });\n }\n\n createUserPermissionController(container: IContainer) {\n const repository = new UserPermissionRepositoryAdapter(\n container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new UserPermissionController({ service });\n }\n\n createUserRoleController(container: IContainer) {\n const repository = new UserRoleRepositoryAdapter(\n container.resolve<Repository<UserRole>>(UserRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserRoleService({ repository, identityPermissionProvider });\n return new UserRoleController({ service });\n }\n\n createPolicyController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new PolicyService({\n repository,\n realmRepository: realmRepositoryAdapter, \n });\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const checkerService = new PolicyCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n identityPermissionProvider,\n });\n\n return new PolicyController({\n service,\n checkerService,\n });\n }\n\n createIdentityProviderRoleController(container: IContainer) {\n const repository = new IdentityProviderRoleMappingRepositoryAdapter(\n container.resolve<Repository<any>>(IdentityProviderRoleMappingEntity),\n );\n const roleRepository = this.createRoleRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new IdentityProviderRoleMappingService({\n repository, \n roleRepository, \n identityPermissionProvider, \n });\n return new IdentityProviderRoleMappingController({ service });\n }\n\n createJwkController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = dataSource.getRepository(KeyEntity);\n return new JwkController({ repository });\n }\n\n createRealmController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RealmRepositoryAdapter(realmRepository);\n\n const clientRepository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const logger = container.resolve(LoggerInjectionKey);\n const webClientProvisioner = new WebClientProvisioner({\n clientRepository,\n appOrigins: getAppOrigins(config),\n logger,\n });\n\n const service = new RealmService({\n repository, \n webClientProvisioner, \n logger, \n });\n const keyRepository = dataSource.getRepository(KeyEntity);\n\n return new RealmController({\n options: { baseURL: config.publicUrl },\n service,\n keyRepository,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"controller.mjs","names":["decorators","ClientEntity","ClientPermissionEntity","ClientRoleEntity","ClientScopeEntity","IdentityProviderRepository","IdentityProviderRoleMappingEntity","KeyEntity","PermissionEntity","PermissionPolicyEntity","PolicyRepository","RealmEntity","RobotEntity","RobotPermissionEntity","RobotRoleEntity","RoleAttributeEntity","RoleEntity","RolePermissionEntity","ScopeEntity","UserAttributeEntity","UserEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientPermissionRepositoryAdapter","ClientRepositoryAdapter","ClientRoleRepositoryAdapter","ClientScopeRepositoryAdapter","DatabaseInjectionKey","IdentityProviderRepositoryAdapter","IdentityProviderRoleMappingRepositoryAdapter","PermissionDatabaseProvider","PermissionPolicyRepositoryAdapter","PermissionRepositoryAdapter","PolicyRepositoryAdapter","RealmRepositoryAdapter","RobotPermissionRepositoryAdapter","RobotRepositoryAdapter","RobotRoleRepositoryAdapter","RoleAttributeRepositoryAdapter","RolePermissionRepositoryAdapter","RoleRepositoryAdapter","ScopeRepositoryAdapter","UserAttributeRepositoryAdapter","UserPermissionRepositoryAdapter","UserRepositoryAdapter","UserRoleRepositoryAdapter","ClientController","ClientPermissionController","ClientRoleController","ClientScopeController","IdentityProviderController","IdentityProviderRoleMappingController","PermissionController","PermissionPolicyController","PolicyController","RealmController","RobotController","RobotPermissionController","RobotRoleController","RoleAttributeController","RoleController","RolePermissionController","ScopeController","SessionController","UserAttributeController","UserController","UserPermissionController","UserRoleController","ActivateController","AuthorizeController","JwkController","LogoutController","OpenIDController","PasswordForgotController","PasswordResetController","RegisterController","StatusController","TokenController","ClientAuthenticator","ClientPermissionService","ClientRoleService","ClientScopeService","ClientService","CredentialsAuthenticator","IdentityProviderRoleMappingService","OAuth2ClientAuthenticator","OAuth2EndSessionService","PasswordRecoveryService","PermissionCheckerService","PermissionPolicyService","PermissionService","PolicyCheckerService","PolicyService","RealmService","RegistrationService","RobotAuthenticator","RobotPermissionService","RobotRoleService","RobotService","RoleAttributeService","RolePermissionService","RoleService","ScopeService","SessionService","UserAttributeService","UserAuthenticator","UserPermissionService","UserRoleService","UserService","WebClientProvisioner","AuthenticationInjectionKey","OAuth2InjectionToken","IdentityInjectionKey","ConfigInjectionKey","getAppOrigins","LoggerInjectionKey","MailInjectionKey","MailTemplateRendererInjectionKey","HTTPControllerModule","mount","router","container","realmController","createRealmController","roleController","createRoleController","permissionController","createPermissionController","permissionPolicyController","createPermissionPolicyController","clientController","createClientController","robotController","createRobotController","clientPermissionController","createClientPermissionController","clientRoleController","createClientRoleController","clientScopeController","createClientScopeController","robotPermissionController","createRobotPermissionController","robotRoleController","createRobotRoleController","roleAttributeController","createRoleAttributeController","rolePermissionController","createRolePermissionController","scopeController","createScopeController","sessionController","createSessionController","userController","createUserController","userAttributeController","createUserAttributeController","userPermissionController","createUserPermissionController","userRoleController","createUserRoleController","policyController","createPolicyController","identityProviderRoleController","createIdentityProviderRoleController","use","controllers","createAuthorize","createToken","createJwkController","createOpenIDController","createActivateController","createPasswordForgotController","createPasswordResetController","createRegisterController","createLogoutController","createStatusController","createIdentityProvider","config","resolve","codeIssuer","AuthorizationCodeIssuer","codeRequestVerifier","AuthorizationCodeRequestVerifier","sessionManager","SessionManager","options","baseURL","publicUrl","features","buildUIFeatures","promptLoginMaxAge","logger","codeVerifier","AuthorizationCodeVerifier","accessTokenIssuer","AccessTokenIssuer","refreshTokenIssuer","RefreshTokenIssuer","openIdTokenIssuer","OpenIDTokenIssuer","keyRepository","KeyRepository","tokenRevoker","TokenRevoker","tokenVerifier","TokenVerifier","tokenRepository","TokenRepository","sessionTokenRepository","SessionTokenRepository","identityResolver","Resolver","identityProviderLdapCollectionAuthenticator","ProviderLdapCollectionAuthenticator","identityPermissionProvider","PermissionProvider","clientAuthenticator","robotAuthenticator","userAuthenticator","oauth2ClientAuthenticator","tokenRefreshGracePeriod","realmRepository","service","createRegistrationService","createPasswordRecoveryService","dataSource","DataSource","repository","mailClient","mailTemplateRenderer","passwordRecoveryEnabled","emailVerificationEnabled","passwordMinLength","clientRepository","ClientRepository","endSessionService","hintGracePeriod","endSessionHintGracePeriod","registration","registrationEnabled","passwordRecovery","emailVerification","accountManager","ProviderAccountManager","stateManager","AuthorizationStateManager","realmRepositoryAdapter","createPermissionRepository","createRoleRepository","roleRepository","rolePermissionRepository","policyRepository","permissionPolicyRepository","permissionProvider","checkerService","permissionRepository","reservedNames","Set","getMetadata","columns","map","c","propertyName","SessionRepository","getRepository","webClientProvisioner","appOrigins"],"sources":["../../../../../src/app/modules/http/modules/controller.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 { App } from 'routup';\nimport { decorators } from '@routup/decorators';\nimport type {\n Client,\n ClientPermission,\n ClientRole,\n ClientScope,\n Permission,\n PermissionPolicy,\n Realm,\n Robot,\n RobotPermission,\n RobotRole,\n Role,\n RoleAttribute,\n RolePermission,\n Scope,\n UserAttribute,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientEntity,\n ClientPermissionEntity,\n ClientRoleEntity,\n ClientScopeEntity,\n IdentityProviderRepository,\n IdentityProviderRoleMappingEntity,\n KeyEntity,\n PermissionEntity,\n PermissionPolicyEntity,\n PolicyRepository,\n RealmEntity,\n RobotEntity,\n RobotPermissionEntity,\n RobotRoleEntity,\n RoleAttributeEntity,\n RoleEntity,\n RolePermissionEntity,\n ScopeEntity,\n UserAttributeEntity,\n UserEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../../adapters/database/domains/index.ts';\nimport {\n ClientPermissionRepositoryAdapter,\n ClientRepositoryAdapter,\n ClientRoleRepositoryAdapter,\n ClientScopeRepositoryAdapter,\n DatabaseInjectionKey,\n IdentityProviderRepositoryAdapter,\n IdentityProviderRoleMappingRepositoryAdapter,\n PermissionDatabaseProvider,\n PermissionPolicyRepositoryAdapter,\n PermissionRepositoryAdapter,\n PolicyRepositoryAdapter,\n RealmRepositoryAdapter,\n RobotPermissionRepositoryAdapter,\n RobotRepositoryAdapter,\n RobotRoleRepositoryAdapter,\n RoleAttributeRepositoryAdapter,\n RolePermissionRepositoryAdapter,\n RoleRepositoryAdapter,\n ScopeRepositoryAdapter,\n UserAttributeRepositoryAdapter,\n UserPermissionRepositoryAdapter,\n UserRepositoryAdapter,\n UserRoleRepositoryAdapter,\n} from '../../database/index.ts';\nimport {\n ClientController,\n ClientPermissionController,\n ClientRoleController,\n ClientScopeController,\n IdentityProviderController,\n IdentityProviderRoleMappingController,\n PermissionController,\n PermissionPolicyController,\n PolicyController,\n RealmController,\n RobotController,\n RobotPermissionController,\n RobotRoleController,\n RoleAttributeController,\n RoleController,\n RolePermissionController,\n ScopeController,\n SessionController,\n UserAttributeController,\n UserController,\n UserPermissionController,\n UserRoleController,\n} from '../../../../adapters/http/index.ts';\nimport {\n ActivateController,\n AuthorizeController,\n JwkController,\n LogoutController,\n OpenIDController,\n PasswordForgotController,\n PasswordResetController,\n RegisterController,\n StatusController,\n TokenController,\n} from '../../../../adapters/http/controllers/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n ClientAuthenticator,\n ClientPermissionService,\n ClientRoleService,\n ClientScopeService,\n ClientService,\n CredentialsAuthenticator,\n IdentityProviderRoleMappingService,\n OAuth2ClientAuthenticator,\n OAuth2EndSessionService,\n PasswordRecoveryService,\n PermissionCheckerService,\n PermissionPolicyService,\n PermissionService,\n PolicyCheckerService,\n PolicyService,\n RealmService,\n RegistrationService,\n RobotAuthenticator,\n RobotPermissionService,\n RobotRoleService,\n RobotService,\n RoleAttributeService,\n RolePermissionService,\n RoleService,\n ScopeService,\n SessionService,\n UserAttributeService,\n UserAuthenticator,\n UserPermissionService,\n UserRoleService,\n UserService,\n WebClientProvisioner,\n} from '../../../../core/index.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { IdentityInjectionKey } from '../../identity/index.ts';\nimport type { StatusResponseFeatures } from '@authup/core-http-kit';\nimport type { Config } from '../../config/index.ts';\nimport { ConfigInjectionKey, getAppOrigins } from '../../config/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { MailInjectionKey, MailTemplateRendererInjectionKey } from '../../mail/index.ts';\n\nexport class HTTPControllerModule {\n async mount(router: App, container: IContainer): Promise<void> {\n const realmController = this.createRealmController(container);\n const roleController = this.createRoleController(container);\n const permissionController = await this.createPermissionController(container);\n const permissionPolicyController = this.createPermissionPolicyController(container);\n const clientController = this.createClientController(container);\n const robotController = this.createRobotController(container);\n const clientPermissionController = this.createClientPermissionController(container);\n const clientRoleController = this.createClientRoleController(container);\n const clientScopeController = this.createClientScopeController(container);\n const robotPermissionController = this.createRobotPermissionController(container);\n const robotRoleController = this.createRobotRoleController(container);\n const roleAttributeController = this.createRoleAttributeController(container);\n const rolePermissionController = this.createRolePermissionController(container);\n const scopeController = this.createScopeController(container);\n const sessionController = this.createSessionController(container);\n const userController = this.createUserController(container);\n const userAttributeController = this.createUserAttributeController(container);\n const userPermissionController = this.createUserPermissionController(container);\n const userRoleController = this.createUserRoleController(container);\n const policyController = this.createPolicyController(container);\n const identityProviderRoleController = this.createIdentityProviderRoleController(container);\n\n router.use(decorators({\n controllers: [\n this.createAuthorize(container),\n this.createToken(container),\n this.createJwkController(container),\n this.createOpenIDController(container),\n this.createActivateController(container),\n this.createPasswordForgotController(container),\n this.createPasswordResetController(container),\n this.createRegisterController(container),\n this.createLogoutController(container),\n\n this.createStatusController(container),\n\n clientController,\n clientPermissionController,\n clientRoleController,\n clientScopeController,\n identityProviderRoleController,\n this.createIdentityProvider(container),\n permissionController,\n permissionPolicyController,\n policyController,\n robotController,\n robotPermissionController,\n robotRoleController,\n realmController,\n roleController,\n roleAttributeController,\n rolePermissionController,\n scopeController,\n sessionController,\n userController,\n userAttributeController,\n userPermissionController,\n userRoleController,\n ],\n }));\n }\n\n // ----------------------------------------------------\n\n createAuthorize(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n\n return new AuthorizeController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n promptLoginMaxAge: config.promptLoginMaxAge,\n },\n\n codeIssuer,\n codeRequestVerifier,\n\n sessionManager,\n });\n }\n\n createToken(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n\n const codeVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeVerifier);\n\n const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);\n const refreshTokenIssuer = container.resolve(OAuth2InjectionToken.RefreshTokenIssuer);\n const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);\n const keyRepository = container.resolve(OAuth2InjectionToken.KeyRepository);\n\n const tokenRevoker = container.resolve(OAuth2InjectionToken.TokenRevoker);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const tokenRepository = container.resolve(OAuth2InjectionToken.TokenRepository);\n const sessionTokenRepository = container.resolve(OAuth2InjectionToken.SessionTokenRepository);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const identityProviderLdapCollectionAuthenticator = container.resolve(IdentityInjectionKey.ProviderLdapCollectionAuthenticator);\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const clientAuthenticator = new ClientAuthenticator(identityResolver);\n const robotAuthenticator = new RobotAuthenticator(identityResolver);\n\n const userAuthenticator = new CredentialsAuthenticator([\n identityProviderLdapCollectionAuthenticator,\n new UserAuthenticator(identityResolver),\n ]);\n\n const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator(identityResolver);\n\n return new TokenController({\n codeVerifier,\n\n accessTokenIssuer,\n refreshTokenIssuer,\n openIdTokenIssuer,\n keyRepository,\n\n tokenVerifier,\n tokenRevoker,\n tokenRepository,\n sessionTokenRepository,\n\n tokenRefreshGracePeriod: config.tokenRefreshGracePeriod,\n logger,\n\n identityResolver,\n identityPermissionProvider,\n\n clientAuthenticator,\n robotAuthenticator,\n userAuthenticator,\n\n oauth2ClientAuthenticator,\n\n realmRepository: new RealmRepositoryAdapter(container.resolve<Repository<Realm>>(RealmEntity)),\n\n sessionManager,\n });\n }\n\n createOpenIDController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new OpenIDController({ baseURL: config.publicUrl });\n }\n\n createActivateController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new ActivateController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createRegistrationService(container),\n });\n }\n\n createPasswordForgotController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordForgotController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordResetController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordResetController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordRecoveryService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new PasswordRecoveryService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n options: {\n passwordRecoveryEnabled: config.passwordRecoveryEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n passwordMinLength: config.passwordMinLength,\n },\n });\n }\n\n createRegisterController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new RegisterController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createRegistrationService(container),\n });\n }\n\n createLogoutController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n const clientRepository = container.resolve(OAuth2InjectionToken.ClientRepository);\n const realmRepository = new RealmRepositoryAdapter(container.resolve<Repository<Realm>>(RealmEntity));\n\n const endSessionService = new OAuth2EndSessionService({\n tokenVerifier,\n sessionManager,\n clientRepository,\n realmRepository,\n hintGracePeriod: config.endSessionHintGracePeriod,\n });\n\n return new LogoutController({\n options: { baseURL: config.publicUrl },\n endSessionService,\n });\n }\n\n createStatusController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new StatusController({ options: { features: this.buildUIFeatures(config) } });\n }\n\n buildUIFeatures(config: Config) : StatusResponseFeatures {\n return {\n registration: config.registrationEnabled,\n passwordRecovery: config.passwordRecoveryEnabled,\n emailVerification: config.emailVerificationEnabled,\n };\n }\n\n createRegistrationService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new RegistrationService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n options: {\n registrationEnabled: config.registrationEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n passwordMinLength: config.passwordMinLength,\n },\n });\n }\n\n createIdentityProvider(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const accountManager = container.resolve(IdentityInjectionKey.ProviderAccountManager);\n\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\n\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const stateManager = container.resolve(OAuth2InjectionToken.AuthorizationStateManager);\n\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const repository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository,\n });\n\n return new IdentityProviderController({\n options: { baseURL: config.publicUrl },\n\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n\n accountManager,\n\n codeIssuer,\n codeRequestVerifier,\n stateManager,\n });\n }\n\n createClientController(container: IContainer) {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new ClientService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n return new ClientController({\n service,\n repository,\n });\n }\n\n createRobotController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RobotRepositoryAdapter({\n repository: container.resolve<Repository<Robot>>(RobotEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new RobotService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n return new RobotController({\n service,\n repository,\n realmRepository: realmRepositoryAdapter,\n dataSource,\n });\n }\n\n private createPermissionRepository(container: IContainer): PermissionRepositoryAdapter {\n return new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n private createRoleRepository(container: IContainer): RoleRepositoryAdapter {\n return new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n async createPermissionController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository,\n });\n\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const roleRepository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n const rolePermissionRepository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const policyRepository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n\n const permissionPolicyRepository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n\n const service = new PermissionService({\n repository,\n realmRepository: realmRepositoryAdapter,\n roleRepository,\n rolePermissionRepository,\n policyRepository,\n permissionPolicyRepository,\n });\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const checkerService = new PermissionCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n permissionProvider,\n identityPermissionProvider,\n });\n\n return new PermissionController({\n service,\n checkerService,\n });\n }\n\n createRoleController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new RoleService({\n repository,\n realmRepository,\n });\n return new RoleController({ service });\n }\n\n createClientPermissionController(container: IContainer) {\n const repository = new ClientPermissionRepositoryAdapter(\n container.resolve<Repository<ClientPermission>>(ClientPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new ClientPermissionController({ service });\n }\n\n createClientRoleController(container: IContainer) {\n const repository = new ClientRoleRepositoryAdapter(\n container.resolve<Repository<ClientRole>>(ClientRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientRoleService({ repository, identityPermissionProvider });\n return new ClientRoleController({ service });\n }\n\n createClientScopeController(container: IContainer) {\n const repository = new ClientScopeRepositoryAdapter(\n container.resolve<Repository<ClientScope>>(ClientScopeEntity),\n );\n const service = new ClientScopeService({ repository });\n return new ClientScopeController({ service });\n }\n\n createRobotPermissionController(container: IContainer) {\n const repository = new RobotPermissionRepositoryAdapter(\n container.resolve<Repository<RobotPermission>>(RobotPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RobotPermissionController({ service });\n }\n\n createRobotRoleController(container: IContainer) {\n const repository = new RobotRoleRepositoryAdapter(\n container.resolve<Repository<RobotRole>>(RobotRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotRoleService({ repository, identityPermissionProvider });\n return new RobotRoleController({ service });\n }\n\n createRoleAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new RoleAttributeRepositoryAdapter(\n container.resolve<Repository<RoleAttribute>>(RoleAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(RoleEntity).columns.map((c) => c.propertyName),\n );\n const service = new RoleAttributeService({ repository, reservedNames });\n return new RoleAttributeController({ service });\n }\n\n createRolePermissionController(container: IContainer) {\n const repository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RolePermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RolePermissionController({ service });\n }\n\n createPermissionPolicyController(container: IContainer) {\n const repository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n const service = new PermissionPolicyService({ repository });\n return new PermissionPolicyController({ service });\n }\n\n createScopeController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new ScopeRepositoryAdapter({\n repository: container.resolve<Repository<Scope>>(ScopeEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new ScopeService({\n repository,\n realmRepository,\n });\n return new ScopeController({ service });\n }\n\n createSessionController(container: IContainer) {\n const repository = container.resolve(AuthenticationInjectionKey.SessionRepository);\n const service = new SessionService({ repository });\n return new SessionController({ service });\n }\n\n createUserController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new UserService({\n repository,\n realmRepository: realmRepositoryAdapter,\n passwordMinLength: config.passwordMinLength,\n });\n return new UserController({ service });\n }\n\n createUserAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new UserAttributeRepositoryAdapter(\n container.resolve<Repository<UserAttribute>>(UserAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(UserEntity).columns.map((c) => c.propertyName),\n );\n const service = new UserAttributeService({ repository, reservedNames });\n return new UserAttributeController({ service });\n }\n\n createUserPermissionController(container: IContainer) {\n const repository = new UserPermissionRepositoryAdapter(\n container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new UserPermissionController({ service });\n }\n\n createUserRoleController(container: IContainer) {\n const repository = new UserRoleRepositoryAdapter(\n container.resolve<Repository<UserRole>>(UserRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserRoleService({ repository, identityPermissionProvider });\n return new UserRoleController({ service });\n }\n\n createPolicyController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new PolicyService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const checkerService = new PolicyCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n identityPermissionProvider,\n });\n\n return new PolicyController({\n service,\n checkerService,\n });\n }\n\n createIdentityProviderRoleController(container: IContainer) {\n const repository = new IdentityProviderRoleMappingRepositoryAdapter(\n container.resolve<Repository<any>>(IdentityProviderRoleMappingEntity),\n );\n const roleRepository = this.createRoleRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new IdentityProviderRoleMappingService({\n repository,\n roleRepository,\n identityPermissionProvider,\n });\n return new IdentityProviderRoleMappingController({ service });\n }\n\n createJwkController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = dataSource.getRepository(KeyEntity);\n return new JwkController({ repository });\n }\n\n createRealmController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RealmRepositoryAdapter(realmRepository);\n\n const clientRepository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const logger = container.resolve(LoggerInjectionKey);\n const webClientProvisioner = new WebClientProvisioner({\n clientRepository,\n appOrigins: getAppOrigins(config),\n logger,\n });\n\n const service = new RealmService({\n repository,\n webClientProvisioner,\n logger,\n });\n const keyRepository = dataSource.getRepository(KeyEntity);\n\n return new RealmController({\n options: { baseURL: config.publicUrl },\n service,\n keyRepository,\n });\n }\n}\n"],"mappings":"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"}
@@ -15,9 +15,9 @@ import { PermissionDatabaseProvider } from "../../database/repositories/permissi
15
15
  import "../../database/repositories/index.mjs";
16
16
  import "../../database/index.mjs";
17
17
  import { HTTPInjectionKey } from "../constants.mjs";
18
+ import { DIST_PATH } from "../../../../path.mjs";
18
19
  import { createAuthorizationMiddleware } from "../../../../adapters/http/middleware/built-in/authorization/factory.mjs";
19
20
  import { createRealmResolverMiddleware } from "../../../../adapters/http/middleware/built-in/realm-resolver/factory.mjs";
20
- import { DIST_PATH } from "../../../../path.mjs";
21
21
  import { registerAssetsMiddleware } from "../../../../adapters/http/middleware/built-in/assets.mjs";
22
22
  import { registerBasicMiddleware } from "../../../../adapters/http/middleware/built-in/basic.mjs";
23
23
  import { registerCorsMiddleware } from "../../../../adapters/http/middleware/built-in/cors.mjs";
@@ -1,5 +1,5 @@
1
1
  import { TypedToken } from 'eldin';
2
- import type { IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRepository, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationCodeVerifier, IOAuth2AuthorizationStateManager, IOAuth2AuthorizeStateRepository, IOAuth2ClientRepository, IOAuth2KeyRepository, IOAuth2OpenIDTokenIssuer, IOAuth2ScopeRepository, IOAuth2TokenIssuer, IOAuth2TokenRepository, IOAuth2TokenRevoker, IOAuth2TokenSigner, IOAuth2TokenVerifier } from '../../../core/index.ts';
2
+ import type { IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRepository, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationCodeVerifier, IOAuth2AuthorizationStateManager, IOAuth2AuthorizeStateRepository, IOAuth2ClientRepository, IOAuth2KeyRepository, IOAuth2OpenIDTokenIssuer, IOAuth2ScopeRepository, IOAuth2TokenIssuer, IOAuth2TokenRepository, IOAuth2TokenRevoker, IOAuth2TokenSigner, IOAuth2TokenVerifier, ISessionTokenRepository } from '../../../core/index.ts';
3
3
  export declare const OAuth2InjectionToken: {
4
4
  readonly ClientRepository: TypedToken<IOAuth2ClientRepository>;
5
5
  readonly ScopeRepository: TypedToken<IOAuth2ScopeRepository>;
@@ -14,6 +14,7 @@ export declare const OAuth2InjectionToken: {
14
14
  readonly OpenIDTokenIssuer: TypedToken<IOAuth2OpenIDTokenIssuer>;
15
15
  readonly RefreshTokenIssuer: TypedToken<IOAuth2TokenIssuer>;
16
16
  readonly TokenRepository: TypedToken<IOAuth2TokenRepository>;
17
+ readonly SessionTokenRepository: TypedToken<ISessionTokenRepository>;
17
18
  readonly TokenRevoker: TypedToken<IOAuth2TokenRevoker>;
18
19
  readonly TokenSigner: TypedToken<IOAuth2TokenSigner>;
19
20
  readonly TokenVerifier: TypedToken<IOAuth2TokenVerifier>;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/constants.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EACR,8BAA8B,EAC9B,kCAAkC,EAClC,uCAAuC,EACvC,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;CAsBvB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/constants.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EACR,8BAA8B,EAC9B,kCAAkC,EAClC,uCAAuC,EACvC,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;CAuBvB,CAAC"}
@@ -17,6 +17,7 @@ const OAuth2InjectionToken = {
17
17
  OpenIDTokenIssuer: new TypedToken("OpenIDTokenIssuer"),
18
18
  RefreshTokenIssuer: new TypedToken("RefreshTokenIssuer"),
19
19
  TokenRepository: new TypedToken("TokenRepository"),
20
+ SessionTokenRepository: new TypedToken("SessionTokenRepository"),
20
21
  TokenRevoker: new TypedToken("TokenRevoker"),
21
22
  TokenSigner: new TypedToken("TokenSigner"),
22
23
  TokenVerifier: new TypedToken("TokenVerifier")
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","names":["TypedToken","OAuth2InjectionToken","ClientRepository","ScopeRepository","AuthorizationCodeIssuer","AuthorizationCodeRepository","AuthorizationCodeVerifier","AuthorizationStateManager","AuthorizationCodeRequestVerifier","AuthorizationStateRepository","KeyRepository","AccessTokenIssuer","OpenIDTokenIssuer","RefreshTokenIssuer","TokenRepository","TokenRevoker","TokenSigner","TokenVerifier"],"sources":["../../../../src/app/modules/oauth2/constants.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 { TypedToken } from 'eldin';\nimport type {\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRepository,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationCodeVerifier,\n IOAuth2AuthorizationStateManager,\n IOAuth2AuthorizeStateRepository,\n IOAuth2ClientRepository,\n IOAuth2KeyRepository,\n IOAuth2OpenIDTokenIssuer,\n IOAuth2ScopeRepository,\n IOAuth2TokenIssuer,\n IOAuth2TokenRepository,\n IOAuth2TokenRevoker,\n IOAuth2TokenSigner,\n IOAuth2TokenVerifier,\n} from '../../../core/index.ts';\n\nexport const OAuth2InjectionToken = {\n ClientRepository: new TypedToken<IOAuth2ClientRepository>('ClientRepository'),\n ScopeRepository: new TypedToken<IOAuth2ScopeRepository>('ScopeRepository'),\n\n AuthorizationCodeIssuer: new TypedToken<IOAuth2AuthorizationCodeIssuer>('AuthorizationCodeIssuer'),\n AuthorizationCodeRepository: new TypedToken<IOAuth2AuthorizationCodeRepository>('AuthorizationCodeRepository'),\n AuthorizationCodeVerifier: new TypedToken<IOAuth2AuthorizationCodeVerifier>('AuthorizationCodeVerifier'),\n AuthorizationStateManager: new TypedToken<IOAuth2AuthorizationStateManager>('AuthorizationStateManager'),\n AuthorizationCodeRequestVerifier: new TypedToken<IOAuth2AuthorizationCodeRequestVerifier>('AuthorizationCodeRequestVerifier'),\n\n AuthorizationStateRepository: new TypedToken<IOAuth2AuthorizeStateRepository>('AuthorizationStateRepository'),\n\n KeyRepository: new TypedToken<IOAuth2KeyRepository>('KeyRepository'),\n\n AccessTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('AccessTokenIssuer'),\n OpenIDTokenIssuer: new TypedToken<IOAuth2OpenIDTokenIssuer>('OpenIDTokenIssuer'),\n RefreshTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('RefreshTokenIssuer'),\n\n TokenRepository: new TypedToken<IOAuth2TokenRepository>('TokenRepository'),\n TokenRevoker: new TypedToken<IOAuth2TokenRevoker>('TokenRevoker'),\n TokenSigner: new TypedToken<IOAuth2TokenSigner>('TokenSigner'),\n TokenVerifier: new TypedToken<IOAuth2TokenVerifier>('TokenVerifier'),\n} as const;\n"],"mappings":";;;;;AA0BA,MAAaC,uBAAuB;CAChCC,kBAAkB,IAAIF,WAAoC,kBAAA;CAC1DG,iBAAiB,IAAIH,WAAmC,iBAAA;CAExDI,yBAAyB,IAAIJ,WAA2C,yBAAA;CACxEK,6BAA6B,IAAIL,WAA+C,6BAAA;CAChFM,2BAA2B,IAAIN,WAA6C,2BAAA;CAC5EO,2BAA2B,IAAIP,WAA6C,2BAAA;CAC5EQ,kCAAkC,IAAIR,WAAoD,kCAAA;CAE1FS,8BAA8B,IAAIT,WAA4C,8BAAA;CAE9EU,eAAe,IAAIV,WAAiC,eAAA;CAEpDW,mBAAmB,IAAIX,WAA+B,mBAAA;CACtDY,mBAAmB,IAAIZ,WAAqC,mBAAA;CAC5Da,oBAAoB,IAAIb,WAA+B,oBAAA;CAEvDc,iBAAiB,IAAId,WAAmC,iBAAA;CACxDe,cAAc,IAAIf,WAAgC,cAAA;CAClDgB,aAAa,IAAIhB,WAA+B,aAAA;CAChDiB,eAAe,IAAIjB,WAAiC,eAAA;AACxD"}
1
+ {"version":3,"file":"constants.mjs","names":["TypedToken","OAuth2InjectionToken","ClientRepository","ScopeRepository","AuthorizationCodeIssuer","AuthorizationCodeRepository","AuthorizationCodeVerifier","AuthorizationStateManager","AuthorizationCodeRequestVerifier","AuthorizationStateRepository","KeyRepository","AccessTokenIssuer","OpenIDTokenIssuer","RefreshTokenIssuer","TokenRepository","SessionTokenRepository","TokenRevoker","TokenSigner","TokenVerifier"],"sources":["../../../../src/app/modules/oauth2/constants.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 { TypedToken } from 'eldin';\nimport type {\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRepository,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationCodeVerifier,\n IOAuth2AuthorizationStateManager,\n IOAuth2AuthorizeStateRepository,\n IOAuth2ClientRepository,\n IOAuth2KeyRepository,\n IOAuth2OpenIDTokenIssuer,\n IOAuth2ScopeRepository,\n IOAuth2TokenIssuer,\n IOAuth2TokenRepository,\n IOAuth2TokenRevoker,\n IOAuth2TokenSigner,\n IOAuth2TokenVerifier,\n ISessionTokenRepository,\n} from '../../../core/index.ts';\n\nexport const OAuth2InjectionToken = {\n ClientRepository: new TypedToken<IOAuth2ClientRepository>('ClientRepository'),\n ScopeRepository: new TypedToken<IOAuth2ScopeRepository>('ScopeRepository'),\n\n AuthorizationCodeIssuer: new TypedToken<IOAuth2AuthorizationCodeIssuer>('AuthorizationCodeIssuer'),\n AuthorizationCodeRepository: new TypedToken<IOAuth2AuthorizationCodeRepository>('AuthorizationCodeRepository'),\n AuthorizationCodeVerifier: new TypedToken<IOAuth2AuthorizationCodeVerifier>('AuthorizationCodeVerifier'),\n AuthorizationStateManager: new TypedToken<IOAuth2AuthorizationStateManager>('AuthorizationStateManager'),\n AuthorizationCodeRequestVerifier: new TypedToken<IOAuth2AuthorizationCodeRequestVerifier>('AuthorizationCodeRequestVerifier'),\n\n AuthorizationStateRepository: new TypedToken<IOAuth2AuthorizeStateRepository>('AuthorizationStateRepository'),\n\n KeyRepository: new TypedToken<IOAuth2KeyRepository>('KeyRepository'),\n\n AccessTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('AccessTokenIssuer'),\n OpenIDTokenIssuer: new TypedToken<IOAuth2OpenIDTokenIssuer>('OpenIDTokenIssuer'),\n RefreshTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('RefreshTokenIssuer'),\n\n TokenRepository: new TypedToken<IOAuth2TokenRepository>('TokenRepository'),\n SessionTokenRepository: new TypedToken<ISessionTokenRepository>('SessionTokenRepository'),\n TokenRevoker: new TypedToken<IOAuth2TokenRevoker>('TokenRevoker'),\n TokenSigner: new TypedToken<IOAuth2TokenSigner>('TokenSigner'),\n TokenVerifier: new TypedToken<IOAuth2TokenVerifier>('TokenVerifier'),\n} as const;\n"],"mappings":";;;;;AA2BA,MAAaC,uBAAuB;CAChCC,kBAAkB,IAAIF,WAAoC,kBAAA;CAC1DG,iBAAiB,IAAIH,WAAmC,iBAAA;CAExDI,yBAAyB,IAAIJ,WAA2C,yBAAA;CACxEK,6BAA6B,IAAIL,WAA+C,6BAAA;CAChFM,2BAA2B,IAAIN,WAA6C,2BAAA;CAC5EO,2BAA2B,IAAIP,WAA6C,2BAAA;CAC5EQ,kCAAkC,IAAIR,WAAoD,kCAAA;CAE1FS,8BAA8B,IAAIT,WAA4C,8BAAA;CAE9EU,eAAe,IAAIV,WAAiC,eAAA;CAEpDW,mBAAmB,IAAIX,WAA+B,mBAAA;CACtDY,mBAAmB,IAAIZ,WAAqC,mBAAA;CAC5Da,oBAAoB,IAAIb,WAA+B,oBAAA;CAEvDc,iBAAiB,IAAId,WAAmC,iBAAA;CACxDe,wBAAwB,IAAIf,WAAoC,wBAAA;CAChEgB,cAAc,IAAIhB,WAAgC,cAAA;CAClDiB,aAAa,IAAIjB,WAA+B,aAAA;CAChDkB,eAAe,IAAIlB,WAAiC,eAAA;AACxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AA6BrC,qBAAa,YAAa,YAAW,OAAO;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;;IAO1B,KAAK,CAAC,SAAS,EAAE,UAAU,GAAI,OAAO,CAAC,IAAI,CAAC;CAwKrD"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AA8BrC,qBAAa,YAAa,YAAW,OAAO;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;;IAO1B,KAAK,CAAC,SAAS,EAAE,UAAU,GAAI,OAAO,CAAC,IAAI,CAAC;CAmLrD"}
@@ -28,6 +28,7 @@ import { OAuth2AuthorizationStateRepository } from "./repositories/authorize/sta
28
28
  import { OAuth2ClientRepository } from "./repositories/client/repository.mjs";
29
29
  import { OAuth2ScopeRepository } from "./repositories/scope/repository.mjs";
30
30
  import { OAuth2KeyRepository } from "./repositories/key/repository.mjs";
31
+ import { SessionTokenRepositoryAdapter } from "./repositories/session-token/repository.mjs";
31
32
  import { OAuth2TokenRepository } from "./repositories/token/repository.mjs";
32
33
  import "./repositories/index.mjs";
33
34
  import { IdentityInjectionKey } from "../identity/constants.mjs";
@@ -62,6 +63,7 @@ var OAuth2Module = class {
62
63
  container.register(OAuth2InjectionToken.TokenRepository, { useFactory: (c) => {
63
64
  return new OAuth2TokenRepository(c.resolve(CacheInjectionKey));
64
65
  } });
66
+ container.register(OAuth2InjectionToken.SessionTokenRepository, { useFactory: (c) => new SessionTokenRepositoryAdapter(c.resolve(DatabaseInjectionKey.DataSource)) });
65
67
  container.register(OAuth2InjectionToken.KeyRepository, { useFactory: (c) => new OAuth2KeyRepository(c.resolve(DatabaseInjectionKey.DataSource)) });
66
68
  container.register(OAuth2InjectionToken.TokenSigner, { useFactory: (c) => {
67
69
  return new OAuth2TokenSigner(c.resolve(OAuth2InjectionToken.KeyRepository));
@@ -82,7 +84,7 @@ var OAuth2Module = class {
82
84
  return new OAuth2AuthorizationStateManager(c.resolve(OAuth2InjectionToken.AuthorizationStateRepository));
83
85
  } });
84
86
  container.register(OAuth2InjectionToken.TokenRevoker, { useFactory: (c) => {
85
- return new OAuth2TokenRevoker(c.resolve(OAuth2InjectionToken.TokenRepository));
87
+ return new OAuth2TokenRevoker(c.resolve(OAuth2InjectionToken.TokenRepository), c.resolve(OAuth2InjectionToken.SessionTokenRepository));
86
88
  } });
87
89
  container.register(OAuth2InjectionToken.TokenVerifier, { useFactory: (c) => {
88
90
  return new OAuth2TokenVerifier(c.resolve(OAuth2InjectionToken.KeyRepository), c.resolve(OAuth2InjectionToken.TokenRepository));
@@ -91,16 +93,20 @@ var OAuth2Module = class {
91
93
  const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);
92
94
  const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);
93
95
  const identityRoleProvider = c.resolve(IdentityInjectionKey.RoleProvider);
96
+ const sessionTokenRepository = c.resolve(OAuth2InjectionToken.SessionTokenRepository);
94
97
  return new OAuth2AccessTokenIssuer(tokenRepository, tokenSigner, {
95
98
  maxAge: config.tokenAccessMaxAge,
96
99
  issuer: config.publicUrl
97
- }, identityRoleProvider);
100
+ }, identityRoleProvider, sessionTokenRepository);
98
101
  } });
99
102
  container.register(OAuth2InjectionToken.RefreshTokenIssuer, { useFactory: (c) => {
100
- return new OAuth2RefreshTokenIssuer(c.resolve(OAuth2InjectionToken.TokenRepository), c.resolve(OAuth2InjectionToken.TokenSigner), {
103
+ const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);
104
+ const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);
105
+ const sessionTokenRepository = c.resolve(OAuth2InjectionToken.SessionTokenRepository);
106
+ return new OAuth2RefreshTokenIssuer(tokenRepository, tokenSigner, {
101
107
  maxAge: config.tokenRefreshMaxAge,
102
108
  issuer: config.publicUrl
103
- });
109
+ }, sessionTokenRepository);
104
110
  } });
105
111
  container.register(OAuth2InjectionToken.OpenIDTokenIssuer, { useFactory: (c) => {
106
112
  return new OAuth2OpenIDTokenIssuer({