@authup/server-core 1.0.0-beta.50 → 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 (656) 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/client-permission/entity.d.ts +2 -1
  9. package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
  10. package/dist/adapters/database/domains/client-permission/entity.mjs +6 -0
  11. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  12. package/dist/adapters/database/domains/index.d.ts +1 -0
  13. package/dist/adapters/database/domains/index.d.ts.map +1 -1
  14. package/dist/adapters/database/domains/index.mjs +3 -1
  15. package/dist/adapters/database/domains/robot-permission/entity.d.ts +2 -1
  16. package/dist/adapters/database/domains/robot-permission/entity.d.ts.map +1 -1
  17. package/dist/adapters/database/domains/robot-permission/entity.mjs +6 -0
  18. package/dist/adapters/database/domains/robot-permission/entity.mjs.map +1 -1
  19. package/dist/adapters/database/domains/robot-role/entity.mjs +1 -1
  20. package/dist/adapters/database/domains/robot-role/entity.mjs.map +1 -1
  21. package/dist/adapters/database/domains/role-permission/entity.d.ts +2 -1
  22. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  23. package/dist/adapters/database/domains/role-permission/entity.mjs +6 -0
  24. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  25. package/dist/adapters/database/domains/session/entity.mjs +1 -1
  26. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  27. package/dist/adapters/database/domains/session-token/entity.d.ts +17 -0
  28. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -0
  29. package/dist/adapters/database/domains/session-token/entity.mjs +95 -0
  30. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -0
  31. package/dist/adapters/database/domains/session-token/index.d.ts +2 -0
  32. package/dist/adapters/database/domains/session-token/index.d.ts.map +1 -0
  33. package/dist/adapters/database/domains/session-token/index.mjs +5 -0
  34. package/dist/adapters/database/domains/user-permission/entity.d.ts +2 -1
  35. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  36. package/dist/adapters/database/domains/user-permission/entity.mjs +6 -0
  37. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  38. package/dist/adapters/database/index.mjs +2 -1
  39. package/dist/adapters/database/migrations/mysql/1779300000000-Default.d.ts +7 -0
  40. package/dist/adapters/database/migrations/mysql/1779300000000-Default.d.ts.map +1 -0
  41. package/dist/adapters/database/migrations/mysql/1779300000000-Default.mjs +85 -0
  42. package/dist/adapters/database/migrations/mysql/1779300000000-Default.mjs.map +1 -0
  43. package/dist/adapters/database/migrations/mysql/1783325495597-Default.d.ts +28 -0
  44. package/dist/adapters/database/migrations/mysql/1783325495597-Default.d.ts.map +1 -0
  45. package/dist/adapters/database/migrations/mysql/1783325495597-Default.mjs +85 -0
  46. package/dist/adapters/database/migrations/mysql/1783325495597-Default.mjs.map +1 -0
  47. package/dist/adapters/database/migrations/postgres/1779300000000-Default.d.ts +7 -0
  48. package/dist/adapters/database/migrations/postgres/1779300000000-Default.d.ts.map +1 -0
  49. package/dist/adapters/database/migrations/postgres/1779300000000-Default.mjs +87 -0
  50. package/dist/adapters/database/migrations/postgres/1779300000000-Default.mjs.map +1 -0
  51. package/dist/adapters/database/migrations/postgres/1783325495597-Default.d.ts +28 -0
  52. package/dist/adapters/database/migrations/postgres/1783325495597-Default.d.ts.map +1 -0
  53. package/dist/adapters/database/migrations/postgres/1783325495597-Default.mjs +79 -0
  54. package/dist/adapters/database/migrations/postgres/1783325495597-Default.mjs.map +1 -0
  55. package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
  56. package/dist/adapters/database/subscriber/module.mjs +4 -3
  57. package/dist/adapters/database/subscriber/module.mjs.map +1 -1
  58. package/dist/adapters/http/adapters/index.mjs +3 -2
  59. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +2 -1
  60. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  61. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +2 -1
  62. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
  63. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +10 -4
  64. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  65. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  66. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +3 -0
  67. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  68. package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +3 -2
  69. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +2 -1
  70. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
  71. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +14 -4
  72. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  73. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -1
  74. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
  75. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +12 -5
  76. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  77. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +4 -1
  78. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  79. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts +1 -0
  80. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts.map +1 -1
  81. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +2 -2
  82. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs.map +1 -1
  83. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +1 -1
  84. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts +1 -0
  85. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts.map +1 -1
  86. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.mjs +3 -2
  87. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.d.ts +9 -0
  88. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.d.ts.map +1 -0
  89. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.mjs +21 -0
  90. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.mjs.map +1 -0
  91. package/dist/adapters/http/adapters/oauth2/index.mjs +3 -2
  92. package/dist/adapters/http/controllers/entities/client/module.mjs +2 -2
  93. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +1 -1
  94. package/dist/adapters/http/controllers/entities/client-role/module.mjs +1 -1
  95. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +1 -1
  96. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +1 -1
  97. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  98. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +28 -12
  99. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  100. package/dist/adapters/http/controllers/entities/index.d.ts +1 -0
  101. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  102. package/dist/adapters/http/controllers/entities/index.mjs +3 -1
  103. package/dist/adapters/http/controllers/entities/permission/module.mjs +1 -1
  104. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +1 -1
  105. package/dist/adapters/http/controllers/entities/policy/module.mjs +1 -1
  106. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  107. package/dist/adapters/http/controllers/entities/realm/module.mjs +11 -8
  108. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  109. package/dist/adapters/http/controllers/entities/robot/module.mjs +2 -2
  110. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +1 -1
  111. package/dist/adapters/http/controllers/entities/robot-role/module.mjs +1 -1
  112. package/dist/adapters/http/controllers/entities/role/module.mjs +1 -1
  113. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +1 -1
  114. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +1 -1
  115. package/dist/adapters/http/controllers/entities/scope/module.mjs +1 -1
  116. package/dist/adapters/http/controllers/entities/session/index.d.ts +2 -0
  117. package/dist/adapters/http/controllers/entities/session/index.d.ts.map +1 -0
  118. package/dist/adapters/http/controllers/entities/session/index.mjs +5 -0
  119. package/dist/adapters/http/controllers/entities/session/module.d.ts +16 -0
  120. package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -0
  121. package/dist/adapters/http/controllers/entities/session/module.mjs +102 -0
  122. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -0
  123. package/dist/adapters/http/controllers/entities/user/module.mjs +2 -2
  124. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +1 -1
  125. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +1 -1
  126. package/dist/adapters/http/controllers/entities/user-role/module.mjs +1 -1
  127. package/dist/adapters/http/controllers/index.mjs +3 -1
  128. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  129. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +22 -9
  130. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  131. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +7 -4
  132. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
  133. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  134. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  135. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  136. package/dist/adapters/http/controllers/workflows/logout/index.d.ts +3 -0
  137. package/dist/adapters/http/controllers/workflows/logout/index.d.ts.map +1 -0
  138. package/dist/adapters/http/controllers/workflows/logout/index.mjs +5 -0
  139. package/dist/adapters/http/controllers/workflows/logout/module.d.ts +14 -0
  140. package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -0
  141. package/dist/adapters/http/controllers/workflows/logout/module.mjs +101 -0
  142. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -0
  143. package/dist/adapters/http/controllers/workflows/logout/types.d.ts +9 -0
  144. package/dist/adapters/http/controllers/workflows/logout/types.d.ts.map +1 -0
  145. package/dist/adapters/http/controllers/workflows/logout/types.mjs +4 -0
  146. package/dist/adapters/http/controllers/workflows/status/module.mjs +1 -1
  147. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  148. package/dist/adapters/http/controllers/workflows/token/module.mjs +12 -4
  149. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  150. package/dist/adapters/http/controllers/workflows/token/types.d.ts +9 -1
  151. package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
  152. package/dist/adapters/http/index.mjs +17 -13
  153. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  154. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +2 -0
  155. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  156. package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
  157. package/dist/adapters/http/middleware/built-in/logger.d.ts +1 -0
  158. package/dist/adapters/http/middleware/built-in/logger.d.ts.map +1 -1
  159. package/dist/adapters/http/middleware/built-in/logger.mjs +23 -2
  160. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  161. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  162. package/dist/adapters/http/middleware/built-in/prometheus.mjs +1 -1
  163. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  164. package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts.map +1 -1
  165. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs +3 -8
  166. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs.map +1 -1
  167. package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +2 -2
  168. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +2 -2
  169. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +1 -1
  170. package/dist/adapters/http/middleware/index.mjs +2 -2
  171. package/dist/adapters/http/request/helpers/identity.d.ts +0 -1
  172. package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
  173. package/dist/adapters/http/request/helpers/identity.mjs +2 -5
  174. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  175. package/dist/adapters/http/request/helpers/index.d.ts +1 -0
  176. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  177. package/dist/adapters/http/request/helpers/index.mjs +3 -2
  178. package/dist/adapters/http/request/helpers/session-id.d.ts +9 -0
  179. package/dist/adapters/http/request/helpers/session-id.d.ts.map +1 -0
  180. package/dist/adapters/http/request/helpers/session-id.mjs +19 -0
  181. package/dist/adapters/http/request/helpers/session-id.mjs.map +1 -0
  182. package/dist/adapters/http/request/index.mjs +3 -2
  183. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  184. package/dist/adapters/http/request/permission/module.mjs +5 -3
  185. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  186. package/dist/adapters/http/ui/index.d.ts +1 -0
  187. package/dist/adapters/http/ui/index.d.ts.map +1 -1
  188. package/dist/adapters/http/ui/index.mjs +2 -1
  189. package/dist/adapters/http/ui/internal-http-client.d.ts +22 -0
  190. package/dist/adapters/http/ui/internal-http-client.d.ts.map +1 -0
  191. package/dist/adapters/http/ui/internal-http-client.mjs +52 -0
  192. package/dist/adapters/http/ui/internal-http-client.mjs.map +1 -0
  193. package/dist/adapters/http/ui/render.d.ts.map +1 -1
  194. package/dist/adapters/http/ui/render.mjs +5 -2
  195. package/dist/adapters/http/ui/render.mjs.map +1 -1
  196. package/dist/adapters/http/ui/types.d.ts +12 -0
  197. package/dist/adapters/http/ui/types.d.ts.map +1 -1
  198. package/dist/app/modules/authentication/repositories/session.d.ts +5 -2
  199. package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
  200. package/dist/app/modules/authentication/repositories/session.mjs +63 -0
  201. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  202. package/dist/app/modules/config/constants.d.ts +4 -0
  203. package/dist/app/modules/config/constants.d.ts.map +1 -1
  204. package/dist/app/modules/config/constants.mjs +4 -0
  205. package/dist/app/modules/config/constants.mjs.map +1 -1
  206. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  207. package/dist/app/modules/config/normalize.mjs +6 -1
  208. package/dist/app/modules/config/normalize.mjs.map +1 -1
  209. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  210. package/dist/app/modules/config/read/env.mjs +8 -0
  211. package/dist/app/modules/config/read/env.mjs.map +1 -1
  212. package/dist/app/modules/config/types.d.ts +31 -2
  213. package/dist/app/modules/config/types.d.ts.map +1 -1
  214. package/dist/app/modules/config/validator.d.ts.map +1 -1
  215. package/dist/app/modules/config/validator.mjs +5 -0
  216. package/dist/app/modules/config/validator.mjs.map +1 -1
  217. package/dist/app/modules/database/module.d.ts +1 -0
  218. package/dist/app/modules/database/module.d.ts.map +1 -1
  219. package/dist/app/modules/database/module.mjs +19 -6
  220. package/dist/app/modules/database/module.mjs.map +1 -1
  221. package/dist/app/modules/database/repositories/bindings.d.ts +2 -0
  222. package/dist/app/modules/database/repositories/bindings.d.ts.map +1 -1
  223. package/dist/app/modules/database/repositories/bindings.mjs +3 -1
  224. package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
  225. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  226. package/dist/app/modules/database/repositories/client/repository.mjs +10 -6
  227. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  228. package/dist/app/modules/database/repositories/helpers.d.ts +11 -0
  229. package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
  230. package/dist/app/modules/database/repositories/helpers.mjs +12 -1
  231. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  232. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
  233. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +7 -5
  234. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  235. package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
  236. package/dist/app/modules/database/repositories/permission/repository.mjs +4 -3
  237. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  238. package/dist/app/modules/database/repositories/permission-provider/module.d.ts +2 -2
  239. package/dist/app/modules/database/repositories/permission-provider/module.d.ts.map +1 -1
  240. package/dist/app/modules/database/repositories/permission-provider/module.mjs +4 -3
  241. package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
  242. package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
  243. package/dist/app/modules/database/repositories/policy/repository.mjs +4 -3
  244. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  245. package/dist/app/modules/database/repositories/realm/repository.d.ts +1 -0
  246. package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
  247. package/dist/app/modules/database/repositories/realm/repository.mjs +20 -3
  248. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  249. package/dist/app/modules/database/repositories/robot/repository.d.ts.map +1 -1
  250. package/dist/app/modules/database/repositories/robot/repository.mjs +8 -6
  251. package/dist/app/modules/database/repositories/robot/repository.mjs.map +1 -1
  252. package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
  253. package/dist/app/modules/database/repositories/role/repository.mjs +4 -3
  254. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  255. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
  256. package/dist/app/modules/database/repositories/role-attribute/repository.mjs +2 -1
  257. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  258. package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
  259. package/dist/app/modules/database/repositories/scope/repository.mjs +4 -3
  260. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  261. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  262. package/dist/app/modules/database/repositories/user/repository.mjs +8 -5
  263. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  264. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
  265. package/dist/app/modules/database/repositories/user-attribute/repository.mjs +2 -1
  266. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  267. package/dist/app/modules/http/constants.d.ts +4 -2
  268. package/dist/app/modules/http/constants.d.ts.map +1 -1
  269. package/dist/app/modules/http/constants.mjs +4 -2
  270. package/dist/app/modules/http/constants.mjs.map +1 -1
  271. package/dist/app/modules/http/module.d.ts +10 -0
  272. package/dist/app/modules/http/module.d.ts.map +1 -1
  273. package/dist/app/modules/http/module.mjs +30 -0
  274. package/dist/app/modules/http/module.mjs.map +1 -1
  275. package/dist/app/modules/http/modules/controller.d.ts +6 -2
  276. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  277. package/dist/app/modules/http/modules/controller.mjs +75 -15
  278. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  279. package/dist/app/modules/http/modules/middleware.mjs +1 -1
  280. package/dist/app/modules/identity/repositories/client.mjs +2 -2
  281. package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
  282. package/dist/app/modules/identity/repositories/robot.mjs +2 -2
  283. package/dist/app/modules/identity/repositories/robot.mjs.map +1 -1
  284. package/dist/app/modules/identity/repositories/user.mjs +2 -2
  285. package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
  286. package/dist/app/modules/oauth2/constants.d.ts +2 -1
  287. package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
  288. package/dist/app/modules/oauth2/constants.mjs +1 -0
  289. package/dist/app/modules/oauth2/constants.mjs.map +1 -1
  290. package/dist/app/modules/oauth2/module.d.ts.map +1 -1
  291. package/dist/app/modules/oauth2/module.mjs +10 -4
  292. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  293. package/dist/app/modules/oauth2/repositories/client/repository.mjs +2 -2
  294. package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
  295. package/dist/app/modules/oauth2/repositories/index.d.ts +1 -0
  296. package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
  297. package/dist/app/modules/oauth2/repositories/index.mjs +3 -1
  298. package/dist/app/modules/oauth2/repositories/session-token/index.d.ts +2 -0
  299. package/dist/app/modules/oauth2/repositories/session-token/index.d.ts.map +1 -0
  300. package/dist/app/modules/oauth2/repositories/session-token/index.mjs +5 -0
  301. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +17 -0
  302. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -0
  303. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +63 -0
  304. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -0
  305. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  306. package/dist/app/modules/provisioning/module.mjs +0 -1
  307. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  308. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  309. package/dist/app/modules/provisioning/sources/default/module.mjs +15 -56
  310. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  311. package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
  312. package/dist/app/modules/provisioning/sources/file/module.mjs +2 -1
  313. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  314. package/dist/cli/commands/migration.d.ts.map +1 -1
  315. package/dist/cli/commands/migration.mjs +12 -4
  316. package/dist/cli/commands/migration.mjs.map +1 -1
  317. package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
  318. package/dist/components/oauth2-cleaner/module.mjs +3 -0
  319. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  320. package/dist/core/authentication/index.mjs +2 -1
  321. package/dist/core/authentication/session/index.mjs +2 -1
  322. package/dist/core/authentication/session/module.d.ts +1 -0
  323. package/dist/core/authentication/session/module.d.ts.map +1 -1
  324. package/dist/core/authentication/session/module.mjs +3 -0
  325. package/dist/core/authentication/session/module.mjs.map +1 -1
  326. package/dist/core/authentication/session/types.d.ts +34 -0
  327. package/dist/core/authentication/session/types.d.ts.map +1 -1
  328. package/dist/core/authentication/session/types.mjs +18 -1
  329. package/dist/core/authentication/session/types.mjs.map +1 -0
  330. package/dist/core/entities/client/service.mjs +25 -7
  331. package/dist/core/entities/client/service.mjs.map +1 -1
  332. package/dist/core/entities/client/web-client.d.ts +5 -3
  333. package/dist/core/entities/client/web-client.d.ts.map +1 -1
  334. package/dist/core/entities/client/web-client.mjs +8 -4
  335. package/dist/core/entities/client/web-client.mjs.map +1 -1
  336. package/dist/core/entities/client-permission/service.d.ts +7 -4
  337. package/dist/core/entities/client-permission/service.d.ts.map +1 -1
  338. package/dist/core/entities/client-permission/service.mjs +59 -19
  339. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  340. package/dist/core/entities/client-role/service.d.ts +3 -2
  341. package/dist/core/entities/client-role/service.d.ts.map +1 -1
  342. package/dist/core/entities/client-role/service.mjs +12 -5
  343. package/dist/core/entities/client-role/service.mjs.map +1 -1
  344. package/dist/core/entities/client-scope/service.d.ts +3 -2
  345. package/dist/core/entities/client-scope/service.d.ts.map +1 -1
  346. package/dist/core/entities/client-scope/service.mjs +12 -5
  347. package/dist/core/entities/client-scope/service.mjs.map +1 -1
  348. package/dist/core/entities/identity-provider-role-mapping/service.d.ts +7 -4
  349. package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
  350. package/dist/core/entities/identity-provider-role-mapping/service.mjs +29 -6
  351. package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
  352. package/dist/core/entities/index.d.ts +1 -0
  353. package/dist/core/entities/index.d.ts.map +1 -1
  354. package/dist/core/entities/index.mjs +3 -1
  355. package/dist/core/entities/permission/service.d.ts +3 -5
  356. package/dist/core/entities/permission/service.d.ts.map +1 -1
  357. package/dist/core/entities/permission/service.mjs +30 -24
  358. package/dist/core/entities/permission/service.mjs.map +1 -1
  359. package/dist/core/entities/permission-policy/service.d.ts +3 -2
  360. package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
  361. package/dist/core/entities/permission-policy/service.mjs +12 -5
  362. package/dist/core/entities/permission-policy/service.mjs.map +1 -1
  363. package/dist/core/entities/policy/service.d.ts.map +1 -1
  364. package/dist/core/entities/policy/service.mjs +16 -7
  365. package/dist/core/entities/policy/service.mjs.map +1 -1
  366. package/dist/core/entities/realm/service.mjs +4 -4
  367. package/dist/core/entities/realm/service.mjs.map +1 -1
  368. package/dist/core/entities/realm/types.d.ts +13 -0
  369. package/dist/core/entities/realm/types.d.ts.map +1 -1
  370. package/dist/core/entities/robot/service.d.ts.map +1 -1
  371. package/dist/core/entities/robot/service.mjs +29 -11
  372. package/dist/core/entities/robot/service.mjs.map +1 -1
  373. package/dist/core/entities/robot-permission/service.d.ts +7 -4
  374. package/dist/core/entities/robot-permission/service.d.ts.map +1 -1
  375. package/dist/core/entities/robot-permission/service.mjs +59 -19
  376. package/dist/core/entities/robot-permission/service.mjs.map +1 -1
  377. package/dist/core/entities/robot-role/service.d.ts +3 -2
  378. package/dist/core/entities/robot-role/service.d.ts.map +1 -1
  379. package/dist/core/entities/robot-role/service.mjs +12 -5
  380. package/dist/core/entities/robot-role/service.mjs.map +1 -1
  381. package/dist/core/entities/role/service.d.ts.map +1 -1
  382. package/dist/core/entities/role/service.mjs +16 -7
  383. package/dist/core/entities/role/service.mjs.map +1 -1
  384. package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
  385. package/dist/core/entities/role-attribute/service.mjs +24 -6
  386. package/dist/core/entities/role-attribute/service.mjs.map +1 -1
  387. package/dist/core/entities/role-permission/service.d.ts +7 -4
  388. package/dist/core/entities/role-permission/service.d.ts.map +1 -1
  389. package/dist/core/entities/role-permission/service.mjs +61 -21
  390. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  391. package/dist/core/entities/scope/service.d.ts.map +1 -1
  392. package/dist/core/entities/scope/service.mjs +16 -7
  393. package/dist/core/entities/scope/service.mjs.map +1 -1
  394. package/dist/core/entities/session/index.d.ts +3 -0
  395. package/dist/core/entities/session/index.d.ts.map +1 -0
  396. package/dist/core/entities/session/index.mjs +5 -0
  397. package/dist/core/entities/session/service.d.ts +27 -0
  398. package/dist/core/entities/session/service.d.ts.map +1 -0
  399. package/dist/core/entities/session/service.mjs +151 -0
  400. package/dist/core/entities/session/service.mjs.map +1 -0
  401. package/dist/core/entities/session/types.d.ts +48 -0
  402. package/dist/core/entities/session/types.d.ts.map +1 -0
  403. package/dist/core/entities/session/types.mjs +4 -0
  404. package/dist/core/entities/user/service.d.ts +1 -0
  405. package/dist/core/entities/user/service.d.ts.map +1 -1
  406. package/dist/core/entities/user/service.mjs +29 -11
  407. package/dist/core/entities/user/service.mjs.map +1 -1
  408. package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
  409. package/dist/core/entities/user-attribute/service.mjs +18 -6
  410. package/dist/core/entities/user-attribute/service.mjs.map +1 -1
  411. package/dist/core/entities/user-permission/service.d.ts +7 -4
  412. package/dist/core/entities/user-permission/service.d.ts.map +1 -1
  413. package/dist/core/entities/user-permission/service.mjs +59 -19
  414. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  415. package/dist/core/entities/user-role/service.d.ts +3 -2
  416. package/dist/core/entities/user-role/service.d.ts.map +1 -1
  417. package/dist/core/entities/user-role/service.mjs +12 -5
  418. package/dist/core/entities/user-role/service.mjs.map +1 -1
  419. package/dist/core/identity/index.mjs +2 -1
  420. package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
  421. package/dist/core/identity/password-recovery/service.mjs +2 -1
  422. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  423. package/dist/core/identity/password-recovery/types.d.ts +1 -0
  424. package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
  425. package/dist/core/identity/permission/checker/service.d.ts.map +1 -1
  426. package/dist/core/identity/permission/checker/service.mjs +12 -9
  427. package/dist/core/identity/permission/checker/service.mjs.map +1 -1
  428. package/dist/core/identity/permission/index.d.ts +1 -0
  429. package/dist/core/identity/permission/index.d.ts.map +1 -1
  430. package/dist/core/identity/permission/index.mjs +2 -1
  431. package/dist/core/identity/permission/junction-grant.d.ts +49 -0
  432. package/dist/core/identity/permission/junction-grant.d.ts.map +1 -0
  433. package/dist/core/identity/permission/junction-grant.mjs +57 -0
  434. package/dist/core/identity/permission/junction-grant.mjs.map +1 -0
  435. package/dist/core/identity/permission/module.d.ts +2 -3
  436. package/dist/core/identity/permission/module.d.ts.map +1 -1
  437. package/dist/core/identity/permission/module.mjs +52 -14
  438. package/dist/core/identity/permission/module.mjs.map +1 -1
  439. package/dist/core/identity/permission/types.d.ts +22 -2
  440. package/dist/core/identity/permission/types.d.ts.map +1 -1
  441. package/dist/core/identity/policy/checker/service.d.ts.map +1 -1
  442. package/dist/core/identity/policy/checker/service.mjs +6 -5
  443. package/dist/core/identity/policy/checker/service.mjs.map +1 -1
  444. package/dist/core/identity/provider/authentication/presets/facebook.d.ts.map +1 -1
  445. package/dist/core/identity/provider/authentication/presets/facebook.mjs +2 -1
  446. package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
  447. package/dist/core/identity/provider/authentication/presets/github.d.ts.map +1 -1
  448. package/dist/core/identity/provider/authentication/presets/github.mjs +2 -1
  449. package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
  450. package/dist/core/identity/provider/authentication/presets/google.d.ts.map +1 -1
  451. package/dist/core/identity/provider/authentication/presets/google.mjs +2 -1
  452. package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
  453. package/dist/core/identity/provider/authentication/presets/instagram.d.ts.map +1 -1
  454. package/dist/core/identity/provider/authentication/presets/instagram.mjs +2 -1
  455. package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
  456. package/dist/core/identity/provider/authentication/presets/paypal.d.ts.map +1 -1
  457. package/dist/core/identity/provider/authentication/presets/paypal.mjs +2 -1
  458. package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
  459. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
  460. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +7 -2
  461. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  462. package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts +2 -0
  463. package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts.map +1 -1
  464. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs +5 -0
  465. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
  466. package/dist/core/identity/registration/service.d.ts.map +1 -1
  467. package/dist/core/identity/registration/service.mjs +9 -6
  468. package/dist/core/identity/registration/service.mjs.map +1 -1
  469. package/dist/core/identity/registration/types.d.ts +1 -0
  470. package/dist/core/identity/registration/types.d.ts.map +1 -1
  471. package/dist/core/identity/resolver/module.d.ts +7 -0
  472. package/dist/core/identity/resolver/module.d.ts.map +1 -1
  473. package/dist/core/identity/resolver/module.mjs +7 -1
  474. package/dist/core/identity/resolver/module.mjs.map +1 -1
  475. package/dist/core/index.mjs +11 -2
  476. package/dist/core/oauth2/authorization/code/index.mjs +1 -0
  477. package/dist/core/oauth2/authorization/code/issuer/module.d.ts +0 -1
  478. package/dist/core/oauth2/authorization/code/issuer/module.d.ts.map +1 -1
  479. package/dist/core/oauth2/authorization/code/issuer/module.mjs +7 -7
  480. package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
  481. package/dist/core/oauth2/authorization/code/issuer/types.d.ts +11 -2
  482. package/dist/core/oauth2/authorization/code/issuer/types.d.ts.map +1 -1
  483. package/dist/core/oauth2/authorization/code/verifier/module.d.ts.map +1 -1
  484. package/dist/core/oauth2/authorization/code/verifier/module.mjs +1 -0
  485. package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
  486. package/dist/core/oauth2/authorization/code/verifier/types.d.ts +1 -0
  487. package/dist/core/oauth2/authorization/code/verifier/types.d.ts.map +1 -1
  488. package/dist/core/oauth2/authorization/code-request/validator.d.ts.map +1 -1
  489. package/dist/core/oauth2/authorization/code-request/validator.mjs +19 -5
  490. package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
  491. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  492. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +13 -10
  493. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  494. package/dist/core/oauth2/authorization/code-request/verifier/types.d.ts +7 -0
  495. package/dist/core/oauth2/authorization/code-request/verifier/types.d.ts.map +1 -1
  496. package/dist/core/oauth2/authorization/helpers.d.ts +2 -1
  497. package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
  498. package/dist/core/oauth2/authorization/helpers.mjs +19 -2
  499. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  500. package/dist/core/oauth2/authorization/module.d.ts +6 -7
  501. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  502. package/dist/core/oauth2/authorization/module.mjs +24 -38
  503. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  504. package/dist/core/oauth2/authorization/types.d.ts +15 -7
  505. package/dist/core/oauth2/authorization/types.d.ts.map +1 -1
  506. package/dist/core/oauth2/client/grant-type.d.ts +9 -0
  507. package/dist/core/oauth2/client/grant-type.d.ts.map +1 -0
  508. package/dist/core/oauth2/client/grant-type.mjs +18 -0
  509. package/dist/core/oauth2/client/grant-type.mjs.map +1 -0
  510. package/dist/core/oauth2/client/index.d.ts +1 -0
  511. package/dist/core/oauth2/client/index.d.ts.map +1 -1
  512. package/dist/core/oauth2/client/index.mjs +2 -1
  513. package/dist/core/oauth2/end-session/index.d.ts +4 -0
  514. package/dist/core/oauth2/end-session/index.d.ts.map +1 -0
  515. package/dist/core/oauth2/end-session/index.mjs +6 -0
  516. package/dist/core/oauth2/end-session/service.d.ts +30 -0
  517. package/dist/core/oauth2/end-session/service.d.ts.map +1 -0
  518. package/dist/core/oauth2/end-session/service.mjs +117 -0
  519. package/dist/core/oauth2/end-session/service.mjs.map +1 -0
  520. package/dist/core/oauth2/end-session/types.d.ts +55 -0
  521. package/dist/core/oauth2/end-session/types.d.ts.map +1 -0
  522. package/dist/core/oauth2/end-session/types.mjs +4 -0
  523. package/dist/core/oauth2/end-session/validator.d.ts +6 -0
  524. package/dist/core/oauth2/end-session/validator.d.ts.map +1 -0
  525. package/dist/core/oauth2/end-session/validator.mjs +23 -0
  526. package/dist/core/oauth2/end-session/validator.mjs.map +1 -0
  527. package/dist/core/oauth2/grant-types/authorize.d.ts +19 -2
  528. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  529. package/dist/core/oauth2/grant-types/authorize.mjs +53 -10
  530. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  531. package/dist/core/oauth2/grant-types/refresh-token.d.ts +21 -2
  532. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  533. package/dist/core/oauth2/grant-types/refresh-token.mjs +55 -9
  534. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  535. package/dist/core/oauth2/grant-types/types.d.ts +22 -2
  536. package/dist/core/oauth2/grant-types/types.d.ts.map +1 -1
  537. package/dist/core/oauth2/index.d.ts +2 -0
  538. package/dist/core/oauth2/index.d.ts.map +1 -1
  539. package/dist/core/oauth2/index.mjs +7 -3
  540. package/dist/core/oauth2/session-token/index.d.ts +2 -0
  541. package/dist/core/oauth2/session-token/index.d.ts.map +1 -0
  542. package/dist/core/oauth2/session-token/index.mjs +4 -0
  543. package/dist/core/oauth2/session-token/types.d.ts +70 -0
  544. package/dist/core/oauth2/session-token/types.d.ts.map +1 -0
  545. package/dist/core/oauth2/session-token/types.mjs +4 -0
  546. package/dist/core/oauth2/token/issuer/access/module.d.ts +3 -1
  547. package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
  548. package/dist/core/oauth2/token/issuer/access/module.mjs +12 -1
  549. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  550. package/dist/core/oauth2/token/issuer/open-id/module.d.ts.map +1 -1
  551. package/dist/core/oauth2/token/issuer/open-id/module.mjs +1 -1
  552. package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
  553. package/dist/core/oauth2/token/issuer/refresh/module.d.ts +3 -1
  554. package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
  555. package/dist/core/oauth2/token/issuer/refresh/module.mjs +12 -1
  556. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  557. package/dist/core/oauth2/token/revoker/module.d.ts +3 -1
  558. package/dist/core/oauth2/token/revoker/module.d.ts.map +1 -1
  559. package/dist/core/oauth2/token/revoker/module.mjs +4 -1
  560. package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
  561. package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
  562. package/dist/core/oauth2/token/verifier/module.mjs +4 -4
  563. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  564. package/dist/core/oauth2/token/verifier/types.d.ts +6 -0
  565. package/dist/core/oauth2/token/verifier/types.d.ts.map +1 -1
  566. package/dist/core/provisioning/entities/client/relations-validator.d.ts.map +1 -1
  567. package/dist/core/provisioning/entities/client/relations-validator.mjs +3 -2
  568. package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
  569. package/dist/core/provisioning/entities/index.d.ts +1 -0
  570. package/dist/core/provisioning/entities/index.d.ts.map +1 -1
  571. package/dist/core/provisioning/entities/index.mjs +5 -1
  572. package/dist/core/provisioning/entities/permission/index.d.ts +1 -0
  573. package/dist/core/provisioning/entities/permission/index.d.ts.map +1 -1
  574. package/dist/core/provisioning/entities/permission/index.mjs +2 -1
  575. package/dist/core/provisioning/entities/permission/relations-validator.d.ts +6 -0
  576. package/dist/core/provisioning/entities/permission/relations-validator.d.ts.map +1 -0
  577. package/dist/core/provisioning/entities/permission/relations-validator.mjs +17 -0
  578. package/dist/core/provisioning/entities/permission/relations-validator.mjs.map +1 -0
  579. package/dist/core/provisioning/entities/permission/validator.d.ts.map +1 -1
  580. package/dist/core/provisioning/entities/permission/validator.mjs +3 -0
  581. package/dist/core/provisioning/entities/permission/validator.mjs.map +1 -1
  582. package/dist/core/provisioning/entities/policy/index.d.ts +1 -0
  583. package/dist/core/provisioning/entities/policy/index.d.ts.map +1 -1
  584. package/dist/core/provisioning/entities/policy/index.mjs +2 -1
  585. package/dist/core/provisioning/entities/policy/validator.d.ts +6 -0
  586. package/dist/core/provisioning/entities/policy/validator.d.ts.map +1 -0
  587. package/dist/core/provisioning/entities/policy/validator.mjs +26 -0
  588. package/dist/core/provisioning/entities/policy/validator.mjs.map +1 -0
  589. package/dist/core/provisioning/entities/realm/relations-validator.d.ts.map +1 -1
  590. package/dist/core/provisioning/entities/realm/relations-validator.mjs +9 -52
  591. package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
  592. package/dist/core/provisioning/entities/role/relations-validator.d.ts.map +1 -1
  593. package/dist/core/provisioning/entities/role/relations-validator.mjs +4 -0
  594. package/dist/core/provisioning/entities/role/relations-validator.mjs.map +1 -1
  595. package/dist/core/provisioning/entities/role/types.d.ts +8 -5
  596. package/dist/core/provisioning/entities/role/types.d.ts.map +1 -1
  597. package/dist/core/provisioning/entities/root/validator.d.ts.map +1 -1
  598. package/dist/core/provisioning/entities/root/validator.mjs +11 -26
  599. package/dist/core/provisioning/entities/root/validator.mjs.map +1 -1
  600. package/dist/core/provisioning/entities/utils.d.ts +10 -0
  601. package/dist/core/provisioning/entities/utils.d.ts.map +1 -0
  602. package/dist/core/provisioning/entities/utils.mjs +29 -0
  603. package/dist/core/provisioning/entities/utils.mjs.map +1 -0
  604. package/dist/core/provisioning/index.mjs +4 -1
  605. package/dist/core/provisioning/synchronizer/base.d.ts +3 -0
  606. package/dist/core/provisioning/synchronizer/base.d.ts.map +1 -1
  607. package/dist/core/provisioning/synchronizer/base.mjs +3 -0
  608. package/dist/core/provisioning/synchronizer/base.mjs.map +1 -1
  609. package/dist/core/provisioning/synchronizer/client/module.d.ts.map +1 -1
  610. package/dist/core/provisioning/synchronizer/client/module.mjs +1 -0
  611. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  612. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
  613. package/dist/core/provisioning/synchronizer/entity-resolver.mjs +3 -0
  614. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  615. package/dist/core/provisioning/synchronizer/index.mjs +1 -0
  616. package/dist/core/provisioning/synchronizer/permission/module.d.ts.map +1 -1
  617. package/dist/core/provisioning/synchronizer/permission/module.mjs +2 -1
  618. package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
  619. package/dist/core/provisioning/synchronizer/policy/module.d.ts +2 -0
  620. package/dist/core/provisioning/synchronizer/policy/module.d.ts.map +1 -1
  621. package/dist/core/provisioning/synchronizer/policy/module.mjs +19 -1
  622. package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
  623. package/dist/core/provisioning/synchronizer/realm/module.d.ts.map +1 -1
  624. package/dist/core/provisioning/synchronizer/realm/module.mjs +1 -0
  625. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  626. package/dist/core/provisioning/synchronizer/robot/module.d.ts.map +1 -1
  627. package/dist/core/provisioning/synchronizer/robot/module.mjs +1 -0
  628. package/dist/core/provisioning/synchronizer/robot/module.mjs.map +1 -1
  629. package/dist/core/provisioning/synchronizer/role/module.d.ts +2 -3
  630. package/dist/core/provisioning/synchronizer/role/module.d.ts.map +1 -1
  631. package/dist/core/provisioning/synchronizer/role/module.mjs +14 -20
  632. package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
  633. package/dist/core/provisioning/synchronizer/role/types.d.ts +1 -2
  634. package/dist/core/provisioning/synchronizer/role/types.d.ts.map +1 -1
  635. package/dist/core/provisioning/synchronizer/scope/module.d.ts.map +1 -1
  636. package/dist/core/provisioning/synchronizer/scope/module.mjs +1 -0
  637. package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
  638. package/dist/core/provisioning/synchronizer/user/module.d.ts.map +1 -1
  639. package/dist/core/provisioning/synchronizer/user/module.mjs +1 -0
  640. package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
  641. package/dist/core/security/policy/evaluator.d.ts +4 -4
  642. package/dist/core/security/policy/evaluator.d.ts.map +1 -1
  643. package/dist/core/security/policy/evaluator.mjs +19 -18
  644. package/dist/core/security/policy/evaluator.mjs.map +1 -1
  645. package/dist/index.mjs +17 -12
  646. package/dist/swagger.json +585 -23
  647. package/dist/ui/client/.vite/ssr-manifest.json +1981 -577
  648. package/dist/ui/client/assets/index-CP9HCHoS.js +127 -0
  649. package/dist/ui/client/assets/index-VM4JXBXw.css +2 -0
  650. package/dist/ui/client/index.html +2 -2
  651. package/dist/ui/server/assets/{multipart-parser-Dn2Ly9xU.js → multipart-parser-BCMy8Xwv.js} +11 -1
  652. package/dist/ui/server/assets/{multipart-parser-DyM9gi59.js → multipart-parser-BVY8pIV2.js} +11 -1
  653. package/dist/ui/server/server.js +21503 -11128
  654. package/package.json +38 -36
  655. package/dist/ui/client/assets/index-BFXs98mu.js +0 -102
  656. package/dist/ui/client/assets/index-C_-HM1P-.css +0 -2
@@ -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","service","createRegistrationService","createPasswordRecoveryService","dataSource","DataSource","realmRepository","repository","mailClient","mailTemplateRenderer","passwordRecoveryEnabled","emailVerificationEnabled","registration","registrationEnabled","passwordRecovery","emailVerification","accountManager","ProviderAccountManager","stateManager","AuthorizationStateManager","realmRepositoryAdapter","roleRepository","rolePermissionRepository","policyRepository","permissionPolicyRepository","permissionProvider","checkerService","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 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 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 identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientPermissionService({\n repository,\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 identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotPermissionService({\n repository,\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 identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RolePermissionService({\n repository,\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 identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserPermissionService({\n repository,\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 identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new IdentityProviderRoleMappingService({ repository, identityPermissionProvider });\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";
@@ -28,9 +28,9 @@ var ClientIdentityRepository = class {
28
28
  const isId = isUUID(key);
29
29
  if (isId) query.where("client.id = :id", { id: key });
30
30
  else {
31
- query.where("client.name = :name", { name: key });
31
+ query.where("client.name = :name", { name: key.trim().toLowerCase() });
32
32
  if (realmKey) if (isUUID(realmKey)) query.andWhere("client.realm_id = :realmId", { realmId: realmKey });
33
- else query.andWhere("realm.name = :realmName", { realmName: realmKey });
33
+ else query.andWhere("realm.name = :realmName", { realmName: realmKey.trim().toLowerCase() });
34
34
  }
35
35
  const { columns } = this.repository.metadata;
36
36
  for (const column of columns) if (!column.isSelect) query.addSelect(`client.${column.databaseName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"client.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","ClientIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","CLIENT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/client.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 { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Client } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IClientIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class ClientIdentityRepository implements IClientIdentityRepository {\n private readonly repository: Repository<Client>;\n\n constructor(repository: Repository<Client>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Client | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Client | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Client | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Client | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Client | null> {\n const query = this.repository.createQueryBuilder('client')\n .leftJoinAndSelect('client.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('client.id = :id', { id: key });\n } else {\n query.where('client.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('client.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`client.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.CLIENT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAaG,2BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAAgC;EACxC,KAAKA,aAAaA;CACtB;CAEA,MAAMC,YAAYC,IAAoC;EAClD,OAAO,KAAKC,KAAKD,EAAAA;CACrB;CAEA,MAAME,cAAcF,IAAYG,OAAwC;EACpE,OAAO,KAAKF,KAAKD,IAAIG,KAAAA;CACzB;CAEA,MAAMC,kBAAkBC,UAAkBF,OAAwC;EAC9E,OAAO,KAAKF,KAAKI,UAAUF,KAAAA;CAC/B;CAEA,MAAMG,UAAUC,OAAoD;EAChE,OAAO,KAAKT,WAAWQ,UAAUC,KAAAA;CACrC;CAEA,MAAcN,KAAKO,KAAaC,UAA4C;EACxE,MAAMC,QAAQ,KAAKZ,WAAWa,mBAAmB,QAAA,CAAA,CAC5CC,kBAAkB,gBAAgB,OAAA;EAEvC,MAAMC,OAAOlB,OAAOa,GAAAA;EACpB,IAAIK,MACAH,MAAMH,MAAM,mBAAmB,EAAEP,IAAIQ,IAAI,CAAA;OACtC;GACHE,MAAMH,MAAM,uBAAuB,EAAEO,MAAMN,IAAI,CAAA;GAE/C,IAAIC,UACA,IAAId,OAAOc,QAAAA,GACPC,MAAMK,SAAS,8BAA8B,EAAEC,SAASP,SAAS,CAAA;QAEjEC,MAAMK,SAAS,2BAA2B,EAAEE,WAAWR,SAAS,CAAA;EAG5E;EACA,MAAM,EAAES,YAAY,KAAKpB,WAAWqB;EACpC,KAAK,MAAMC,UAAUF,SACjB,IAAI,CAACE,OAAOC,UACRX,MAAMY,UAAU,UAAUF,OAAOG,cAAc;EAIvD,IAAIV,MACAH,MAAMc,MACF9B,kBAAkB;GACd+B,QAAQ7B,YAAY8B;GACpBlB;EACJ,CAAA,GACA,GAAA;EAIR,OAAOE,MAAMiB,OAAM;CACvB;AACJ"}
1
+ {"version":3,"file":"client.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","ClientIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","trim","toLowerCase","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","CLIENT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/client.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 { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Client } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IClientIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class ClientIdentityRepository implements IClientIdentityRepository {\n private readonly repository: Repository<Client>;\n\n constructor(repository: Repository<Client>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Client | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Client | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Client | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Client | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Client | null> {\n const query = this.repository.createQueryBuilder('client')\n .leftJoinAndSelect('client.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('client.id = :id', { id: key });\n } else {\n query.where('client.name = :name', { name: key.trim().toLowerCase() });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('client.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey.trim().toLowerCase() });\n }\n }\n }\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`client.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.CLIENT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAaG,2BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAAgC;EACxC,KAAKA,aAAaA;CACtB;CAEA,MAAMC,YAAYC,IAAoC;EAClD,OAAO,KAAKC,KAAKD,EAAAA;CACrB;CAEA,MAAME,cAAcF,IAAYG,OAAwC;EACpE,OAAO,KAAKF,KAAKD,IAAIG,KAAAA;CACzB;CAEA,MAAMC,kBAAkBC,UAAkBF,OAAwC;EAC9E,OAAO,KAAKF,KAAKI,UAAUF,KAAAA;CAC/B;CAEA,MAAMG,UAAUC,OAAoD;EAChE,OAAO,KAAKT,WAAWQ,UAAUC,KAAAA;CACrC;CAEA,MAAcN,KAAKO,KAAaC,UAA4C;EACxE,MAAMC,QAAQ,KAAKZ,WAAWa,mBAAmB,QAAA,CAAA,CAC5CC,kBAAkB,gBAAgB,OAAA;EAEvC,MAAMC,OAAOlB,OAAOa,GAAAA;EACpB,IAAIK,MACAH,MAAMH,MAAM,mBAAmB,EAAEP,IAAIQ,IAAI,CAAA;OACtC;GACHE,MAAMH,MAAM,uBAAuB,EAAEO,MAAMN,IAAIO,KAAI,CAAA,CAAGC,YAAW,EAAG,CAAA;GAEpE,IAAIP,UACA,IAAId,OAAOc,QAAAA,GACPC,MAAMO,SAAS,8BAA8B,EAAEC,SAAST,SAAS,CAAA;QAEjEC,MAAMO,SAAS,2BAA2B,EAAEE,WAAWV,SAASM,KAAI,CAAA,CAAGC,YAAW,EAAG,CAAA;EAGjG;EACA,MAAM,EAAEI,YAAY,KAAKtB,WAAWuB;EACpC,KAAK,MAAMC,UAAUF,SACjB,IAAI,CAACE,OAAOC,UACRb,MAAMc,UAAU,UAAUF,OAAOG,cAAc;EAIvD,IAAIZ,MACAH,MAAMgB,MACFhC,kBAAkB;GACdiC,QAAQ/B,YAAYgC;GACpBpB;EACJ,CAAA,GACA,GAAA;EAIR,OAAOE,MAAMmB,OAAM;CACvB;AACJ"}
@@ -28,9 +28,9 @@ var RobotIdentityRepository = class {
28
28
  const isId = isUUID(key);
29
29
  if (isId) query.where("robot.id = :id", { id: key });
30
30
  else {
31
- query.where("robot.name = :name", { name: key });
31
+ query.where("robot.name = :name", { name: key.trim().toLowerCase() });
32
32
  if (realmKey) if (isUUID(realmKey)) query.andWhere("robot.realm_id = :realmId", { realmId: realmKey });
33
- else query.andWhere("realm.name = :realmName", { realmName: realmKey });
33
+ else query.andWhere("realm.name = :realmName", { realmName: realmKey.trim().toLowerCase() });
34
34
  }
35
35
  const { columns } = this.repository.metadata;
36
36
  for (const column of columns) if (!column.isSelect) query.addSelect(`robot.${column.databaseName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"robot.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","RobotIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","ROBOT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/robot.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 { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Robot } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IRobotIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class RobotIdentityRepository implements IRobotIdentityRepository {\n private readonly repository: Repository<Robot>;\n\n constructor(repository: Repository<Robot>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Robot | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Robot | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Robot | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Robot | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Robot | null> {\n const query = this.repository.createQueryBuilder('robot')\n .leftJoinAndSelect('robot.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('robot.id = :id', { id: key });\n } else {\n query.where('robot.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('robot.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`robot.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.ROBOT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAaG,0BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAA+B;EACvC,KAAKA,aAAaA;CACtB;CAEA,MAAMC,YAAYC,IAAmC;EACjD,OAAO,KAAKC,KAAKD,EAAAA;CACrB;CAEA,MAAME,cAAcF,IAAYG,OAAuC;EACnE,OAAO,KAAKF,KAAKD,IAAIG,KAAAA;CACzB;CAEA,MAAMC,kBAAkBC,UAAkBF,OAAuC;EAC7E,OAAO,KAAKF,KAAKI,UAAUF,KAAAA;CAC/B;CAEA,MAAMG,UAAUC,OAAmD;EAC/D,OAAO,KAAKT,WAAWQ,UAAUC,KAAAA;CACrC;CAEA,MAAcN,KAAKO,KAAaC,UAA2C;EACvE,MAAMC,QAAQ,KAAKZ,WAAWa,mBAAmB,OAAA,CAAA,CAC5CC,kBAAkB,eAAe,OAAA;EAEtC,MAAMC,OAAOlB,OAAOa,GAAAA;EACpB,IAAIK,MACAH,MAAMH,MAAM,kBAAkB,EAAEP,IAAIQ,IAAI,CAAA;OACrC;GACHE,MAAMH,MAAM,sBAAsB,EAAEO,MAAMN,IAAI,CAAA;GAE9C,IAAIC,UACA,IAAId,OAAOc,QAAAA,GACPC,MAAMK,SAAS,6BAA6B,EAAEC,SAASP,SAAS,CAAA;QAEhEC,MAAMK,SAAS,2BAA2B,EAAEE,WAAWR,SAAS,CAAA;EAG5E;EAEA,MAAM,EAAES,YAAY,KAAKpB,WAAWqB;EACpC,KAAK,MAAMC,UAAUF,SACjB,IAAI,CAACE,OAAOC,UACRX,MAAMY,UAAU,SAASF,OAAOG,cAAc;EAItD,IAAIV,MACAH,MAAMc,MACF9B,kBAAkB;GACd+B,QAAQ7B,YAAY8B;GACpBlB;EACJ,CAAA,GACA,GAAA;EAIR,OAAOE,MAAMiB,OAAM;CACvB;AACJ"}
1
+ {"version":3,"file":"robot.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","RobotIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","trim","toLowerCase","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","ROBOT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/robot.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 { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Robot } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IRobotIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class RobotIdentityRepository implements IRobotIdentityRepository {\n private readonly repository: Repository<Robot>;\n\n constructor(repository: Repository<Robot>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Robot | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Robot | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Robot | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Robot | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Robot | null> {\n const query = this.repository.createQueryBuilder('robot')\n .leftJoinAndSelect('robot.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('robot.id = :id', { id: key });\n } else {\n query.where('robot.name = :name', { name: key.trim().toLowerCase() });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('robot.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey.trim().toLowerCase() });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`robot.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.ROBOT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAaG,0BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAA+B;EACvC,KAAKA,aAAaA;CACtB;CAEA,MAAMC,YAAYC,IAAmC;EACjD,OAAO,KAAKC,KAAKD,EAAAA;CACrB;CAEA,MAAME,cAAcF,IAAYG,OAAuC;EACnE,OAAO,KAAKF,KAAKD,IAAIG,KAAAA;CACzB;CAEA,MAAMC,kBAAkBC,UAAkBF,OAAuC;EAC7E,OAAO,KAAKF,KAAKI,UAAUF,KAAAA;CAC/B;CAEA,MAAMG,UAAUC,OAAmD;EAC/D,OAAO,KAAKT,WAAWQ,UAAUC,KAAAA;CACrC;CAEA,MAAcN,KAAKO,KAAaC,UAA2C;EACvE,MAAMC,QAAQ,KAAKZ,WAAWa,mBAAmB,OAAA,CAAA,CAC5CC,kBAAkB,eAAe,OAAA;EAEtC,MAAMC,OAAOlB,OAAOa,GAAAA;EACpB,IAAIK,MACAH,MAAMH,MAAM,kBAAkB,EAAEP,IAAIQ,IAAI,CAAA;OACrC;GACHE,MAAMH,MAAM,sBAAsB,EAAEO,MAAMN,IAAIO,KAAI,CAAA,CAAGC,YAAW,EAAG,CAAA;GAEnE,IAAIP,UACA,IAAId,OAAOc,QAAAA,GACPC,MAAMO,SAAS,6BAA6B,EAAEC,SAAST,SAAS,CAAA;QAEhEC,MAAMO,SAAS,2BAA2B,EAAEE,WAAWV,SAASM,KAAI,CAAA,CAAGC,YAAW,EAAG,CAAA;EAGjG;EAEA,MAAM,EAAEI,YAAY,KAAKtB,WAAWuB;EACpC,KAAK,MAAMC,UAAUF,SACjB,IAAI,CAACE,OAAOC,UACRb,MAAMc,UAAU,SAASF,OAAOG,cAAc;EAItD,IAAIZ,MACAH,MAAMgB,MACFhC,kBAAkB;GACdiC,QAAQ/B,YAAYgC;GACpBpB;EACJ,CAAA,GACA,GAAA;EAIR,OAAOE,MAAMmB,OAAM;CACvB;AACJ"}
@@ -35,9 +35,9 @@ var UserIdentityRepository = class {
35
35
  const isId = isUUID(key);
36
36
  if (isId) query.where("user.id = :id", { id: key });
37
37
  else {
38
- query.where("user.name = :name", { name: key });
38
+ query.where("user.name = :name", { name: key.trim().toLowerCase() });
39
39
  if (realmKey) if (isUUID(realmKey)) query.andWhere("user.realm_id = :realmId", { realmId: realmKey });
40
- else query.andWhere("realm.name = :realmName", { realmName: realmKey });
40
+ else query.andWhere("realm.name = :realmName", { realmName: realmKey.trim().toLowerCase() });
41
41
  }
42
42
  const { columns } = this.repository.metadata;
43
43
  for (const column of columns) if (!column.isSelect) query.addSelect(`user.${column.databaseName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"user.mjs","names":["isUUID","buildRedisKeyPath","In","IdentityProviderMapperOperation","CachePrefix","UserIdentityRepository","repository","userPermissionRepository","userRoleRepository","ctx","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","USER","entity","getOne","extendOneWithEA","saveOneWithEA","user","extraAttributes","create","savePermissions","items","ids","map","item","value","idsToDelete","filter","operation","DELETE","entities","findBy","user_id","permission_id","entitiesToDelete","index","indexOf","push","length","remove","entitiesToCreate","CREATE","findIndex","user_realm_id","realm_id","permission_realm_id","save","saveRoles","role_id","role_realm_id"],"sources":["../../../../../src/app/modules/identity/repositories/user.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 { User, UserPermission, UserRole } from '@authup/core-kit';\nimport { isUUID } from '@authup/kit';\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport type { Repository } from 'typeorm';\nimport { In } from 'typeorm';\nimport type { IUserIdentityRepository, IdentityProviderMapperElement } from '../../../../core/index.ts';\nimport { IdentityProviderMapperOperation } from '../../../../core/index.ts';\nimport type { UserRepository } from '../../../../adapters/database/domains/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport type UserIdentityRepositoryContext = {\n repository: UserRepository,\n userPermissionRepository: Repository<UserPermission>,\n userRoleRepository: Repository<UserRole>,\n};\n\nexport class UserIdentityRepository implements IUserIdentityRepository {\n private readonly repository: UserRepository;\n\n private readonly userPermissionRepository: Repository<UserPermission>;\n\n private readonly userRoleRepository: Repository<UserRole>;\n\n constructor(ctx: UserIdentityRepositoryContext) {\n this.repository = ctx.repository;\n this.userPermissionRepository = ctx.userPermissionRepository;\n this.userRoleRepository = ctx.userRoleRepository;\n }\n\n async findOneById(id: string): Promise<User | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<User | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<User | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<User | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<User | null> {\n const query = this.repository.createQueryBuilder('user')\n .leftJoinAndSelect('user.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('user.id = :id', { id: key });\n } else {\n query.where('user.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('user.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`user.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.USER,\n key,\n }),\n 60_000,\n );\n }\n\n const entity = await query.getOne();\n if (entity) {\n return this.repository.extendOneWithEA(entity);\n }\n\n return null;\n }\n\n async saveOneWithEA(user: Partial<User>, extraAttributes: Record<string, any>): Promise<User> {\n const entity = this.repository.create(user);\n return this.repository.saveOneWithEA(entity, extraAttributes);\n }\n\n async savePermissions(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userPermissionRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n permission_id: In(ids),\n });\n\n const entitiesToDelete : UserPermission[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.permission_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserPermission[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex(\n (entity) => entity.permission_id === item.value,\n );\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n permission_id: item.value as string,\n permission_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n\n async saveRoles(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userRoleRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n role_id: In(ids),\n });\n\n const entitiesToDelete : UserRole[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.role_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserRole[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex((entity) => entity.role_id === item.value);\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n role_id: item.value as string,\n role_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"user.mjs","names":["isUUID","buildRedisKeyPath","In","IdentityProviderMapperOperation","CachePrefix","UserIdentityRepository","repository","userPermissionRepository","userRoleRepository","ctx","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","trim","toLowerCase","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","USER","entity","getOne","extendOneWithEA","saveOneWithEA","user","extraAttributes","create","savePermissions","items","ids","map","item","value","idsToDelete","filter","operation","DELETE","entities","findBy","user_id","permission_id","entitiesToDelete","index","indexOf","push","length","remove","entitiesToCreate","CREATE","findIndex","user_realm_id","realm_id","permission_realm_id","save","saveRoles","role_id","role_realm_id"],"sources":["../../../../../src/app/modules/identity/repositories/user.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 { User, UserPermission, UserRole } from '@authup/core-kit';\nimport { isUUID } from '@authup/kit';\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport type { Repository } from 'typeorm';\nimport { In } from 'typeorm';\nimport type { IUserIdentityRepository, IdentityProviderMapperElement } from '../../../../core/index.ts';\nimport { IdentityProviderMapperOperation } from '../../../../core/index.ts';\nimport type { UserRepository } from '../../../../adapters/database/domains/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport type UserIdentityRepositoryContext = {\n repository: UserRepository,\n userPermissionRepository: Repository<UserPermission>,\n userRoleRepository: Repository<UserRole>,\n};\n\nexport class UserIdentityRepository implements IUserIdentityRepository {\n private readonly repository: UserRepository;\n\n private readonly userPermissionRepository: Repository<UserPermission>;\n\n private readonly userRoleRepository: Repository<UserRole>;\n\n constructor(ctx: UserIdentityRepositoryContext) {\n this.repository = ctx.repository;\n this.userPermissionRepository = ctx.userPermissionRepository;\n this.userRoleRepository = ctx.userRoleRepository;\n }\n\n async findOneById(id: string): Promise<User | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<User | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<User | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<User | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<User | null> {\n const query = this.repository.createQueryBuilder('user')\n .leftJoinAndSelect('user.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('user.id = :id', { id: key });\n } else {\n query.where('user.name = :name', { name: key.trim().toLowerCase() });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('user.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey.trim().toLowerCase() });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`user.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.USER,\n key,\n }),\n 60_000,\n );\n }\n\n const entity = await query.getOne();\n if (entity) {\n return this.repository.extendOneWithEA(entity);\n }\n\n return null;\n }\n\n async saveOneWithEA(user: Partial<User>, extraAttributes: Record<string, any>): Promise<User> {\n const entity = this.repository.create(user);\n return this.repository.saveOneWithEA(entity, extraAttributes);\n }\n\n async savePermissions(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userPermissionRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n permission_id: In(ids),\n });\n\n const entitiesToDelete : UserPermission[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.permission_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserPermission[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex(\n (entity) => entity.permission_id === item.value,\n );\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n permission_id: item.value as string,\n permission_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n\n async saveRoles(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userRoleRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n role_id: In(ids),\n });\n\n const entitiesToDelete : UserRole[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.role_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserRole[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex((entity) => entity.role_id === item.value);\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n role_id: item.value as string,\n role_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n}\n"],"mappings":"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"}
@@ -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({