@authup/server-core 1.0.0-beta.58 → 1.0.0-beta.60

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 (730) hide show
  1. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  2. package/dist/adapters/database/domains/client/entity.mjs +58 -30
  3. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
  5. package/dist/adapters/database/domains/client-permission/entity.mjs +48 -24
  6. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  7. package/dist/adapters/database/domains/client-role/entity.d.ts.map +1 -1
  8. package/dist/adapters/database/domains/client-role/entity.mjs +37 -17
  9. package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
  10. package/dist/adapters/database/domains/client-scope/entity.d.ts.map +1 -1
  11. package/dist/adapters/database/domains/client-scope/entity.mjs +30 -14
  12. package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
  13. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -1
  14. package/dist/adapters/database/domains/consent/entity.mjs +34 -18
  15. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -1
  16. package/dist/adapters/database/domains/event/entity.d.ts +1 -0
  17. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -1
  18. package/dist/adapters/database/domains/event/entity.mjs +48 -23
  19. package/dist/adapters/database/domains/event/entity.mjs.map +1 -1
  20. package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
  21. package/dist/adapters/database/domains/identity-provider/entity.mjs +43 -23
  22. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  23. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
  24. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +50 -22
  25. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  26. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
  27. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +14 -6
  28. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  29. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
  30. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +5 -1
  31. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  32. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
  33. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +18 -6
  34. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  35. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
  36. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +34 -14
  37. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  38. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  39. package/dist/adapters/database/domains/key/entity.mjs +35 -19
  40. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  41. package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
  42. package/dist/adapters/database/domains/permission/entity.mjs +35 -19
  43. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  44. package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
  45. package/dist/adapters/database/domains/permission-policy/entity.mjs +37 -17
  46. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  47. package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
  48. package/dist/adapters/database/domains/policy/entity.mjs +51 -27
  49. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  50. package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
  51. package/dist/adapters/database/domains/policy-attribute/entity.mjs +14 -6
  52. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  53. package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
  54. package/dist/adapters/database/domains/realm/entity.mjs +36 -20
  55. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  56. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  57. package/dist/adapters/database/domains/role/entity.mjs +44 -24
  58. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  59. package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
  60. package/dist/adapters/database/domains/role-attribute/entity.mjs +30 -14
  61. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  62. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  63. package/dist/adapters/database/domains/role-permission/entity.mjs +45 -21
  64. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  65. package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
  66. package/dist/adapters/database/domains/scope/entity.mjs +35 -19
  67. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  68. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  69. package/dist/adapters/database/domains/session/entity.mjs +63 -31
  70. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  71. package/dist/adapters/database/domains/session-token/entity.d.ts +4 -1
  72. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
  73. package/dist/adapters/database/domains/session-token/entity.mjs +40 -11
  74. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
  75. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -1
  76. package/dist/adapters/database/domains/trust-anchor/entity.mjs +25 -13
  77. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -1
  78. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  79. package/dist/adapters/database/domains/user/entity.mjs +58 -34
  80. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  81. package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
  82. package/dist/adapters/database/domains/user-attribute/entity.mjs +27 -11
  83. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  84. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -1
  85. package/dist/adapters/database/domains/user-authenticator/entity.mjs +43 -23
  86. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -1
  87. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  88. package/dist/adapters/database/domains/user-permission/entity.mjs +45 -21
  89. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  90. package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
  91. package/dist/adapters/database/domains/user-role/entity.mjs +37 -17
  92. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  93. package/dist/adapters/database/errors/driver.d.ts +9 -0
  94. package/dist/adapters/database/errors/driver.d.ts.map +1 -1
  95. package/dist/adapters/database/errors/driver.mjs +20 -1
  96. package/dist/adapters/database/errors/driver.mjs.map +1 -1
  97. package/dist/adapters/database/errors/index.mjs +2 -2
  98. package/dist/adapters/database/helpers/index.mjs +2 -2
  99. package/dist/adapters/database/helpers/is-supported.d.ts +7 -0
  100. package/dist/adapters/database/helpers/is-supported.d.ts.map +1 -1
  101. package/dist/adapters/database/helpers/is-supported.mjs +9 -1
  102. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  103. package/dist/adapters/database/index.mjs +3 -3
  104. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts +66 -0
  105. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  106. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs +181 -0
  107. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  108. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts +44 -0
  109. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts.map +1 -0
  110. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs +1294 -0
  111. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs.map +1 -0
  112. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts +43 -0
  113. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  114. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs +120 -0
  115. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  116. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts +44 -0
  117. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts.map +1 -0
  118. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs +987 -0
  119. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs.map +1 -0
  120. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +14 -2
  121. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  122. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +85 -19
  123. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  124. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +4 -1
  125. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
  126. package/dist/adapters/http/controllers/entities/identity-provider-account/index.d.ts.map +1 -0
  127. package/dist/adapters/http/controllers/entities/identity-provider-account/index.mjs +5 -0
  128. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts +15 -0
  129. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts.map +1 -0
  130. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs +94 -0
  131. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs.map +1 -0
  132. package/dist/adapters/http/controllers/entities/index.d.ts +2 -0
  133. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  134. package/dist/adapters/http/controllers/entities/index.mjs +5 -1
  135. package/dist/adapters/http/controllers/entities/session-token/index.d.ts +2 -0
  136. package/dist/adapters/http/controllers/entities/session-token/index.d.ts.map +1 -0
  137. package/dist/adapters/http/controllers/entities/session-token/index.mjs +5 -0
  138. package/dist/adapters/http/controllers/entities/session-token/module.d.ts +23 -0
  139. package/dist/adapters/http/controllers/entities/session-token/module.d.ts.map +1 -0
  140. package/dist/adapters/http/controllers/entities/session-token/module.mjs +112 -0
  141. package/dist/adapters/http/controllers/entities/session-token/module.mjs.map +1 -0
  142. package/dist/adapters/http/controllers/index.mjs +4 -1
  143. package/dist/adapters/http/controllers/workflows/account/index.d.ts +2 -0
  144. package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -0
  145. package/dist/adapters/http/controllers/workflows/account/index.mjs +5 -0
  146. package/dist/adapters/http/controllers/workflows/account/module.d.ts +24 -0
  147. package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -0
  148. package/dist/adapters/http/controllers/workflows/account/module.mjs +63 -0
  149. package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -0
  150. package/dist/adapters/http/controllers/workflows/activate/module.mjs +1 -1
  151. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -1
  152. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -0
  153. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
  154. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +2 -2
  155. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  156. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  157. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  158. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  159. package/dist/adapters/http/controllers/workflows/logout/module.mjs +2 -2
  160. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
  161. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +1 -1
  162. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +1 -1
  163. package/dist/adapters/http/controllers/workflows/register/module.mjs +1 -1
  164. package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts.map +1 -1
  165. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs +5 -1
  166. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs.map +1 -1
  167. package/dist/adapters/http/index.mjs +5 -1
  168. package/dist/adapters/http/middleware/built-in/assets.d.ts +8 -1
  169. package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
  170. package/dist/adapters/http/middleware/built-in/assets.mjs +48 -4
  171. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  172. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  173. package/dist/adapters/http/middleware/built-in/error.mjs +4 -3
  174. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  175. package/dist/adapters/http/middleware/built-in/index.d.ts +2 -0
  176. package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
  177. package/dist/adapters/http/middleware/built-in/index.mjs +2 -1
  178. package/dist/adapters/http/middleware/built-in/theme.d.ts +15 -0
  179. package/dist/adapters/http/middleware/built-in/theme.d.ts.map +1 -0
  180. package/dist/adapters/http/middleware/built-in/theme.mjs +27 -0
  181. package/dist/adapters/http/middleware/built-in/theme.mjs.map +1 -0
  182. package/dist/adapters/http/middleware/built-in/types.d.ts +14 -0
  183. package/dist/adapters/http/middleware/built-in/types.d.ts.map +1 -0
  184. package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +1 -1
  185. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +1 -1
  186. package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +1 -1
  187. package/dist/adapters/http/middleware/index.mjs +2 -1
  188. package/dist/adapters/http/request/event-context.d.ts.map +1 -1
  189. package/dist/adapters/http/request/event-context.mjs +2 -0
  190. package/dist/adapters/http/request/event-context.mjs.map +1 -1
  191. package/dist/adapters/http/ui/account-console/index.d.ts +4 -0
  192. package/dist/adapters/http/ui/account-console/index.d.ts.map +1 -0
  193. package/dist/adapters/http/ui/account-console/index.mjs +6 -0
  194. package/dist/adapters/http/ui/account-console/module.d.ts +28 -0
  195. package/dist/adapters/http/ui/account-console/module.d.ts.map +1 -0
  196. package/dist/adapters/http/ui/account-console/module.mjs +80 -0
  197. package/dist/adapters/http/ui/account-console/module.mjs.map +1 -0
  198. package/dist/adapters/http/ui/account-console/ref.d.ts +30 -0
  199. package/dist/adapters/http/ui/account-console/ref.d.ts.map +1 -0
  200. package/dist/adapters/http/ui/account-console/ref.mjs +50 -0
  201. package/dist/adapters/http/ui/account-console/ref.mjs.map +1 -0
  202. package/dist/adapters/http/ui/account-console/types.d.ts +11 -0
  203. package/dist/adapters/http/ui/account-console/types.d.ts.map +1 -0
  204. package/dist/adapters/http/ui/account-console/types.mjs +4 -0
  205. package/dist/adapters/http/ui/{internal-http-client.d.ts → auth-console/http-client.d.ts} +1 -1
  206. package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +1 -0
  207. package/dist/adapters/http/ui/{internal-http-client.mjs → auth-console/http-client.mjs} +2 -2
  208. package/dist/adapters/http/ui/auth-console/http-client.mjs.map +1 -0
  209. package/dist/adapters/http/ui/auth-console/index.d.ts +6 -0
  210. package/dist/adapters/http/ui/auth-console/index.d.ts.map +1 -0
  211. package/dist/adapters/http/ui/auth-console/index.mjs +8 -0
  212. package/dist/adapters/http/ui/auth-console/module.d.ts +4 -0
  213. package/dist/adapters/http/ui/auth-console/module.d.ts.map +1 -0
  214. package/dist/adapters/http/ui/auth-console/module.mjs +73 -0
  215. package/dist/adapters/http/ui/auth-console/module.mjs.map +1 -0
  216. package/dist/adapters/http/ui/auth-console/resolve.d.ts +21 -0
  217. package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +1 -0
  218. package/dist/adapters/http/ui/auth-console/resolve.mjs +53 -0
  219. package/dist/adapters/http/ui/auth-console/resolve.mjs.map +1 -0
  220. package/dist/adapters/http/ui/{serve.d.ts → auth-console/serve.d.ts} +1 -8
  221. package/dist/adapters/http/ui/auth-console/serve.d.ts.map +1 -0
  222. package/dist/adapters/http/ui/{serve.mjs → auth-console/serve.mjs} +5 -5
  223. package/dist/adapters/http/ui/auth-console/serve.mjs.map +1 -0
  224. package/dist/adapters/http/ui/auth-console/types.d.ts +26 -0
  225. package/dist/adapters/http/ui/auth-console/types.d.ts.map +1 -0
  226. package/dist/adapters/http/ui/auth-console/types.mjs +4 -0
  227. package/dist/adapters/http/ui/console-packages/index.d.ts +3 -0
  228. package/dist/adapters/http/ui/console-packages/index.d.ts.map +1 -0
  229. package/dist/adapters/http/ui/console-packages/index.mjs +5 -0
  230. package/dist/adapters/http/ui/console-packages/module.d.ts +33 -0
  231. package/dist/adapters/http/ui/console-packages/module.d.ts.map +1 -0
  232. package/dist/adapters/http/ui/console-packages/module.mjs +70 -0
  233. package/dist/adapters/http/ui/console-packages/module.mjs.map +1 -0
  234. package/dist/adapters/http/ui/console-packages/types.d.ts +12 -0
  235. package/dist/adapters/http/ui/console-packages/types.d.ts.map +1 -0
  236. package/dist/adapters/http/ui/console-packages/types.mjs +4 -0
  237. package/dist/adapters/http/ui/index.d.ts +5 -5
  238. package/dist/adapters/http/ui/index.d.ts.map +1 -1
  239. package/dist/adapters/http/ui/index.mjs +22 -5
  240. package/dist/adapters/http/ui/shared/html.d.ts +76 -0
  241. package/dist/adapters/http/ui/shared/html.d.ts.map +1 -0
  242. package/dist/adapters/http/ui/shared/html.mjs +103 -0
  243. package/dist/adapters/http/ui/shared/html.mjs.map +1 -0
  244. package/dist/adapters/http/ui/shared/index.d.ts +2 -0
  245. package/dist/adapters/http/ui/shared/index.d.ts.map +1 -0
  246. package/dist/adapters/http/ui/shared/index.mjs +5 -0
  247. package/dist/adapters/http/ui/theme/apply.d.ts +12 -0
  248. package/dist/adapters/http/ui/theme/apply.d.ts.map +1 -0
  249. package/dist/adapters/http/ui/theme/apply.mjs +29 -0
  250. package/dist/adapters/http/ui/theme/apply.mjs.map +1 -0
  251. package/dist/adapters/http/ui/theme/assets.d.ts +20 -0
  252. package/dist/adapters/http/ui/theme/assets.d.ts.map +1 -0
  253. package/dist/adapters/http/ui/theme/assets.mjs +86 -0
  254. package/dist/adapters/http/ui/theme/assets.mjs.map +1 -0
  255. package/dist/adapters/http/ui/theme/constants.d.ts +16 -0
  256. package/dist/adapters/http/ui/theme/constants.d.ts.map +1 -0
  257. package/dist/adapters/http/ui/theme/constants.mjs +20 -0
  258. package/dist/adapters/http/ui/theme/constants.mjs.map +1 -0
  259. package/dist/adapters/http/ui/theme/contract/constants.d.ts +120 -0
  260. package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +1 -0
  261. package/dist/adapters/http/ui/theme/contract/constants.mjs +136 -0
  262. package/dist/adapters/http/ui/theme/contract/constants.mjs.map +1 -0
  263. package/dist/adapters/http/ui/theme/contract/head.d.ts +12 -0
  264. package/dist/adapters/http/ui/theme/contract/head.d.ts.map +1 -0
  265. package/dist/adapters/http/ui/theme/contract/head.mjs +61 -0
  266. package/dist/adapters/http/ui/theme/contract/head.mjs.map +1 -0
  267. package/dist/adapters/http/ui/theme/contract/index.d.ts +6 -0
  268. package/dist/adapters/http/ui/theme/contract/index.d.ts.map +1 -0
  269. package/dist/adapters/http/ui/theme/contract/index.mjs +8 -0
  270. package/dist/adapters/http/ui/theme/contract/manifest.d.ts +25 -0
  271. package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +1 -0
  272. package/dist/adapters/http/ui/theme/contract/manifest.mjs +77 -0
  273. package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +1 -0
  274. package/dist/adapters/http/ui/theme/contract/types.d.ts +26 -0
  275. package/dist/adapters/http/ui/theme/contract/types.d.ts.map +1 -0
  276. package/dist/adapters/http/ui/theme/contract/types.mjs +4 -0
  277. package/dist/adapters/http/ui/theme/contract/utils.d.ts +11 -0
  278. package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +1 -0
  279. package/dist/adapters/http/ui/theme/contract/utils.mjs +22 -0
  280. package/dist/adapters/http/ui/theme/contract/utils.mjs.map +1 -0
  281. package/dist/adapters/http/ui/theme/index.d.ts +7 -0
  282. package/dist/adapters/http/ui/theme/index.d.ts.map +1 -0
  283. package/dist/adapters/http/ui/theme/index.mjs +13 -0
  284. package/dist/adapters/http/ui/theme/module.d.ts +79 -0
  285. package/dist/adapters/http/ui/theme/module.d.ts.map +1 -0
  286. package/dist/adapters/http/ui/theme/module.mjs +206 -0
  287. package/dist/adapters/http/ui/theme/module.mjs.map +1 -0
  288. package/dist/adapters/http/ui/theme/types.d.ts +42 -0
  289. package/dist/adapters/http/ui/theme/types.d.ts.map +1 -0
  290. package/dist/adapters/http/ui/theme/types.mjs +4 -0
  291. package/dist/app/index.mjs +4 -2
  292. package/dist/app/modules/config/constants.d.ts +5 -0
  293. package/dist/app/modules/config/constants.d.ts.map +1 -1
  294. package/dist/app/modules/config/constants.mjs +5 -0
  295. package/dist/app/modules/config/constants.mjs.map +1 -1
  296. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  297. package/dist/app/modules/config/normalize.mjs +8 -0
  298. package/dist/app/modules/config/normalize.mjs.map +1 -1
  299. package/dist/app/modules/config/origins.d.ts.map +1 -1
  300. package/dist/app/modules/config/origins.mjs +2 -0
  301. package/dist/app/modules/config/origins.mjs.map +1 -1
  302. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  303. package/dist/app/modules/config/read/env.mjs +10 -0
  304. package/dist/app/modules/config/read/env.mjs.map +1 -1
  305. package/dist/app/modules/config/types.d.ts +63 -3
  306. package/dist/app/modules/config/types.d.ts.map +1 -1
  307. package/dist/app/modules/config/validator.d.ts.map +1 -1
  308. package/dist/app/modules/config/validator.mjs +5 -0
  309. package/dist/app/modules/config/validator.mjs.map +1 -1
  310. package/dist/app/modules/database/index.mjs +2 -1
  311. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts +2 -0
  312. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts.map +1 -0
  313. package/dist/app/modules/database/repositories/identity-provider-account/index.mjs +5 -0
  314. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts +18 -0
  315. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts.map +1 -0
  316. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +69 -0
  317. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -0
  318. package/dist/app/modules/database/repositories/index.d.ts +1 -0
  319. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  320. package/dist/app/modules/database/repositories/index.mjs +3 -1
  321. package/dist/app/modules/database/repositories/key/repository.d.ts +23 -0
  322. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -1
  323. package/dist/app/modules/database/repositories/key/repository.mjs +39 -3
  324. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  325. package/dist/app/modules/database/repositories/schema-validation.d.ts +14 -6
  326. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
  327. package/dist/app/modules/database/repositories/schema-validation.mjs +18 -6
  328. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -1
  329. package/dist/app/modules/http/module.d.ts.map +1 -1
  330. package/dist/app/modules/http/module.mjs +7 -1
  331. package/dist/app/modules/http/module.mjs.map +1 -1
  332. package/dist/app/modules/http/modules/controller.d.ts +5 -2
  333. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  334. package/dist/app/modules/http/modules/controller.mjs +57 -6
  335. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  336. package/dist/app/modules/http/modules/middleware.d.ts +9 -1
  337. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  338. package/dist/app/modules/http/modules/middleware.mjs +18 -3
  339. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  340. package/dist/app/modules/identity/index.mjs +1 -2
  341. package/dist/app/modules/identity/module.d.ts.map +1 -1
  342. package/dist/app/modules/identity/module.mjs +2 -2
  343. package/dist/app/modules/identity/module.mjs.map +1 -1
  344. package/dist/app/modules/identity/repositories/index.mjs +1 -2
  345. package/dist/app/modules/identity/repositories/provider/index.d.ts +0 -1
  346. package/dist/app/modules/identity/repositories/provider/index.d.ts.map +1 -1
  347. package/dist/app/modules/identity/repositories/provider/index.mjs +1 -3
  348. package/dist/app/modules/index.mjs +4 -2
  349. package/dist/app/modules/logger/module.d.ts.map +1 -1
  350. package/dist/app/modules/logger/module.mjs +1 -0
  351. package/dist/app/modules/logger/module.mjs.map +1 -1
  352. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +25 -1
  353. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
  354. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +70 -1
  355. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  356. package/dist/app/modules/provisioning/constants.d.ts +12 -0
  357. package/dist/app/modules/provisioning/constants.d.ts.map +1 -0
  358. package/dist/app/modules/provisioning/constants.mjs +16 -0
  359. package/dist/app/modules/provisioning/constants.mjs.map +1 -0
  360. package/dist/app/modules/provisioning/index.d.ts +2 -0
  361. package/dist/app/modules/provisioning/index.d.ts.map +1 -1
  362. package/dist/app/modules/provisioning/index.mjs +3 -1
  363. package/dist/app/modules/provisioning/lazy-wildcard.d.ts +15 -0
  364. package/dist/app/modules/provisioning/lazy-wildcard.d.ts.map +1 -0
  365. package/dist/app/modules/provisioning/lazy-wildcard.mjs +23 -0
  366. package/dist/app/modules/provisioning/lazy-wildcard.mjs.map +1 -0
  367. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  368. package/dist/app/modules/provisioning/module.mjs +24 -4
  369. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  370. package/dist/app/modules/provisioning/sources/composite/module.d.ts +0 -19
  371. package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
  372. package/dist/app/modules/provisioning/sources/composite/module.mjs +7 -77
  373. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  374. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  375. package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
  376. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  377. package/dist/core/entities/client/index.d.ts +1 -1
  378. package/dist/core/entities/client/index.d.ts.map +1 -1
  379. package/dist/core/entities/client/index.mjs +2 -2
  380. package/dist/core/entities/client/schema.d.ts.map +1 -1
  381. package/dist/core/entities/client/schema.mjs +29 -10
  382. package/dist/core/entities/client/schema.mjs.map +1 -1
  383. package/dist/core/entities/client/service.mjs.map +1 -1
  384. package/dist/core/entities/client/system-clients.d.ts +95 -0
  385. package/dist/core/entities/client/system-clients.d.ts.map +1 -0
  386. package/dist/core/entities/client/system-clients.mjs +158 -0
  387. package/dist/core/entities/client/system-clients.mjs.map +1 -0
  388. package/dist/core/entities/client/types.d.ts +17 -4
  389. package/dist/core/entities/client/types.d.ts.map +1 -1
  390. package/dist/core/entities/client-permission/schema.d.ts.map +1 -1
  391. package/dist/core/entities/client-permission/schema.mjs +29 -6
  392. package/dist/core/entities/client-permission/schema.mjs.map +1 -1
  393. package/dist/core/entities/client-role/schema.d.ts.map +1 -1
  394. package/dist/core/entities/client-role/schema.mjs +27 -6
  395. package/dist/core/entities/client-role/schema.mjs.map +1 -1
  396. package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
  397. package/dist/core/entities/client-scope/schema.mjs +19 -5
  398. package/dist/core/entities/client-scope/schema.mjs.map +1 -1
  399. package/dist/core/entities/consent/schema.d.ts.map +1 -1
  400. package/dist/core/entities/consent/schema.mjs +28 -6
  401. package/dist/core/entities/consent/schema.mjs.map +1 -1
  402. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  403. package/dist/core/entities/event/entity-event-handler.mjs +2 -0
  404. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  405. package/dist/core/entities/event/sanitize.d.ts.map +1 -1
  406. package/dist/core/entities/event/sanitize.mjs +7 -4
  407. package/dist/core/entities/event/sanitize.mjs.map +1 -1
  408. package/dist/core/entities/event/schema.d.ts.map +1 -1
  409. package/dist/core/entities/event/schema.mjs +45 -16
  410. package/dist/core/entities/event/schema.mjs.map +1 -1
  411. package/dist/core/entities/event/service.d.ts.map +1 -1
  412. package/dist/core/entities/event/service.mjs +2 -0
  413. package/dist/core/entities/event/service.mjs.map +1 -1
  414. package/dist/core/entities/event/types.d.ts +2 -0
  415. package/dist/core/entities/event/types.d.ts.map +1 -1
  416. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -1
  417. package/dist/core/entities/identity-provider/schema.mjs +29 -11
  418. package/dist/core/entities/identity-provider/schema.mjs.map +1 -1
  419. package/dist/core/entities/identity-provider-account/error.d.ts +7 -0
  420. package/dist/core/entities/identity-provider-account/error.d.ts.map +1 -0
  421. package/dist/core/entities/identity-provider-account/error.mjs +24 -0
  422. package/dist/core/entities/identity-provider-account/error.mjs.map +1 -0
  423. package/dist/core/entities/identity-provider-account/index.d.ts +5 -0
  424. package/dist/core/entities/identity-provider-account/index.d.ts.map +1 -0
  425. package/dist/core/entities/identity-provider-account/index.mjs +8 -0
  426. package/dist/core/entities/identity-provider-account/schema.d.ts +3 -0
  427. package/dist/core/entities/identity-provider-account/schema.d.ts.map +1 -0
  428. package/dist/core/entities/identity-provider-account/schema.mjs +52 -0
  429. package/dist/core/entities/identity-provider-account/schema.mjs.map +1 -0
  430. package/dist/core/entities/identity-provider-account/service.d.ts +24 -0
  431. package/dist/core/entities/identity-provider-account/service.d.ts.map +1 -0
  432. package/dist/core/entities/identity-provider-account/service.mjs +129 -0
  433. package/dist/core/entities/identity-provider-account/service.mjs.map +1 -0
  434. package/dist/core/entities/identity-provider-account/types.d.ts +69 -0
  435. package/dist/core/entities/identity-provider-account/types.d.ts.map +1 -0
  436. package/dist/core/entities/identity-provider-account/types.mjs +17 -0
  437. package/dist/core/entities/identity-provider-account/types.mjs.map +1 -0
  438. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -1
  439. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +27 -6
  440. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -1
  441. package/dist/core/entities/index.d.ts +2 -0
  442. package/dist/core/entities/index.d.ts.map +1 -1
  443. package/dist/core/entities/index.mjs +10 -2
  444. package/dist/core/entities/key/schema.d.ts.map +1 -1
  445. package/dist/core/entities/key/schema.mjs +39 -17
  446. package/dist/core/entities/key/schema.mjs.map +1 -1
  447. package/dist/core/entities/key/service.d.ts.map +1 -1
  448. package/dist/core/entities/key/service.mjs +1 -0
  449. package/dist/core/entities/key/service.mjs.map +1 -1
  450. package/dist/core/entities/permission/schema.d.ts.map +1 -1
  451. package/dist/core/entities/permission/schema.mjs +34 -13
  452. package/dist/core/entities/permission/schema.mjs.map +1 -1
  453. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -1
  454. package/dist/core/entities/permission-policy/schema.mjs +27 -6
  455. package/dist/core/entities/permission-policy/schema.mjs.map +1 -1
  456. package/dist/core/entities/policy/schema.d.ts.map +1 -1
  457. package/dist/core/entities/policy/schema.mjs +31 -12
  458. package/dist/core/entities/policy/schema.mjs.map +1 -1
  459. package/dist/core/entities/realm/schema.d.ts.map +1 -1
  460. package/dist/core/entities/realm/schema.mjs +26 -12
  461. package/dist/core/entities/realm/schema.mjs.map +1 -1
  462. package/dist/core/entities/realm/service.d.ts +8 -6
  463. package/dist/core/entities/realm/service.d.ts.map +1 -1
  464. package/dist/core/entities/realm/service.mjs +5 -8
  465. package/dist/core/entities/realm/service.mjs.map +1 -1
  466. package/dist/core/entities/role/schema.d.ts.map +1 -1
  467. package/dist/core/entities/role/schema.mjs +36 -14
  468. package/dist/core/entities/role/schema.mjs.map +1 -1
  469. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -1
  470. package/dist/core/entities/role-attribute/schema.mjs +28 -14
  471. package/dist/core/entities/role-attribute/schema.mjs.map +1 -1
  472. package/dist/core/entities/role-permission/schema.d.ts.map +1 -1
  473. package/dist/core/entities/role-permission/schema.mjs +29 -6
  474. package/dist/core/entities/role-permission/schema.mjs.map +1 -1
  475. package/dist/core/entities/scope/schema.d.ts.map +1 -1
  476. package/dist/core/entities/scope/schema.mjs +28 -12
  477. package/dist/core/entities/scope/schema.mjs.map +1 -1
  478. package/dist/core/entities/session/schema.d.ts.map +1 -1
  479. package/dist/core/entities/session/schema.mjs +41 -9
  480. package/dist/core/entities/session/schema.mjs.map +1 -1
  481. package/dist/core/entities/session-token/index.d.ts +4 -0
  482. package/dist/core/entities/session-token/index.d.ts.map +1 -0
  483. package/dist/core/entities/session-token/index.mjs +6 -0
  484. package/dist/core/entities/session-token/schema.d.ts +12 -0
  485. package/dist/core/entities/session-token/schema.d.ts.map +1 -0
  486. package/dist/core/entities/session-token/schema.mjs +66 -0
  487. package/dist/core/entities/session-token/schema.mjs.map +1 -0
  488. package/dist/core/entities/session-token/service.d.ts +70 -0
  489. package/dist/core/entities/session-token/service.d.ts.map +1 -0
  490. package/dist/core/entities/session-token/service.mjs +216 -0
  491. package/dist/core/entities/session-token/service.mjs.map +1 -0
  492. package/dist/core/entities/session-token/types.d.ts +37 -0
  493. package/dist/core/entities/session-token/types.d.ts.map +1 -0
  494. package/dist/core/entities/session-token/types.mjs +4 -0
  495. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -1
  496. package/dist/core/entities/trust-anchor/schema.mjs +27 -13
  497. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -1
  498. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
  499. package/dist/core/entities/trust-anchor/service.mjs +1 -0
  500. package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
  501. package/dist/core/entities/user/schema.d.ts.map +1 -1
  502. package/dist/core/entities/user/schema.mjs +29 -12
  503. package/dist/core/entities/user/schema.mjs.map +1 -1
  504. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -1
  505. package/dist/core/entities/user-attribute/schema.mjs +28 -14
  506. package/dist/core/entities/user-attribute/schema.mjs.map +1 -1
  507. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -1
  508. package/dist/core/entities/user-authenticator/schema.mjs +29 -12
  509. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -1
  510. package/dist/core/entities/user-authenticator/service.d.ts +2 -1
  511. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
  512. package/dist/core/entities/user-authenticator/service.mjs +5 -0
  513. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  514. package/dist/core/entities/user-authenticator/types.d.ts +7 -1
  515. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
  516. package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
  517. package/dist/core/entities/user-permission/schema.d.ts.map +1 -1
  518. package/dist/core/entities/user-permission/schema.mjs +29 -6
  519. package/dist/core/entities/user-permission/schema.mjs.map +1 -1
  520. package/dist/core/entities/user-role/schema.d.ts.map +1 -1
  521. package/dist/core/entities/user-role/schema.mjs +27 -6
  522. package/dist/core/entities/user-role/schema.mjs.map +1 -1
  523. package/dist/core/identity/index.mjs +2 -1
  524. package/dist/core/identity/provider/account/error.d.ts +7 -0
  525. package/dist/core/identity/provider/account/error.d.ts.map +1 -0
  526. package/dist/core/identity/provider/account/error.mjs +24 -0
  527. package/dist/core/identity/provider/account/error.mjs.map +1 -0
  528. package/dist/core/identity/provider/account/index.d.ts +1 -0
  529. package/dist/core/identity/provider/account/index.d.ts.map +1 -1
  530. package/dist/core/identity/provider/account/index.mjs +2 -1
  531. package/dist/core/identity/provider/account/module.d.ts +2 -0
  532. package/dist/core/identity/provider/account/module.d.ts.map +1 -1
  533. package/dist/core/identity/provider/account/module.mjs +30 -0
  534. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  535. package/dist/core/identity/provider/account/types.d.ts +12 -10
  536. package/dist/core/identity/provider/account/types.d.ts.map +1 -1
  537. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts +1 -0
  538. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
  539. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +5 -1
  540. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  541. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts +7 -0
  542. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts.map +1 -1
  543. package/dist/core/identity/provider/index.mjs +2 -1
  544. package/dist/core/index.mjs +15 -3
  545. package/dist/core/key/types.d.ts +2 -1
  546. package/dist/core/key/types.d.ts.map +1 -1
  547. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  548. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +2 -2
  549. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  550. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  551. package/dist/core/oauth2/authorization/module.mjs +2 -0
  552. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  553. package/dist/core/oauth2/authorization/state/types.d.ts +11 -0
  554. package/dist/core/oauth2/authorization/state/types.d.ts.map +1 -1
  555. package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
  556. package/dist/core/oauth2/end-session/service.mjs +4 -4
  557. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  558. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  559. package/dist/core/oauth2/grant-types/authorize.mjs +1 -5
  560. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  561. package/dist/core/oauth2/grant-types/password.mjs +2 -5
  562. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  563. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  564. package/dist/core/oauth2/grant-types/refresh-token.mjs +37 -24
  565. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  566. package/dist/core/oauth2/index.mjs +3 -1
  567. package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -1
  568. package/dist/core/oauth2/mfa-login/module.mjs +4 -7
  569. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
  570. package/dist/core/oauth2/session-token/error.d.ts +36 -0
  571. package/dist/core/oauth2/session-token/error.d.ts.map +1 -0
  572. package/dist/core/oauth2/session-token/error.mjs +49 -0
  573. package/dist/core/oauth2/session-token/error.mjs.map +1 -0
  574. package/dist/core/oauth2/session-token/index.d.ts +1 -0
  575. package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
  576. package/dist/core/oauth2/session-token/index.mjs +2 -1
  577. package/dist/core/oauth2/session-token/types.d.ts +40 -0
  578. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  579. package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
  580. package/dist/core/oauth2/token/issuer/access/module.mjs +1 -0
  581. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  582. package/dist/core/oauth2/token/issuer/base.d.ts +1 -1
  583. package/dist/core/oauth2/token/issuer/base.d.ts.map +1 -1
  584. package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
  585. package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
  586. package/dist/core/oauth2/token/issuer/refresh/module.mjs +1 -0
  587. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  588. package/dist/core/provisioning/constants.d.ts +8 -0
  589. package/dist/core/provisioning/constants.d.ts.map +1 -0
  590. package/dist/core/provisioning/constants.mjs +14 -0
  591. package/dist/core/provisioning/constants.mjs.map +1 -0
  592. package/dist/core/provisioning/entities/index.mjs +2 -1
  593. package/dist/core/provisioning/entities/realm/index.d.ts +1 -0
  594. package/dist/core/provisioning/entities/realm/index.d.ts.map +1 -1
  595. package/dist/core/provisioning/entities/realm/index.mjs +2 -1
  596. package/dist/core/provisioning/entities/realm/validator.d.ts +11 -0
  597. package/dist/core/provisioning/entities/realm/validator.d.ts.map +1 -1
  598. package/dist/core/provisioning/entities/realm/validator.mjs +14 -0
  599. package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
  600. package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts +19 -0
  601. package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts.map +1 -0
  602. package/dist/core/provisioning/entities/realm/wildcard-validator.mjs +65 -0
  603. package/dist/core/provisioning/entities/realm/wildcard-validator.mjs.map +1 -0
  604. package/dist/core/provisioning/index.d.ts +3 -0
  605. package/dist/core/provisioning/index.d.ts.map +1 -1
  606. package/dist/core/provisioning/index.mjs +7 -1
  607. package/dist/core/provisioning/merge/index.d.ts +3 -0
  608. package/dist/core/provisioning/merge/index.d.ts.map +1 -0
  609. package/dist/core/provisioning/merge/index.mjs +5 -0
  610. package/dist/core/provisioning/merge/module.d.ts +18 -0
  611. package/dist/core/provisioning/merge/module.d.ts.map +1 -0
  612. package/dist/core/provisioning/merge/module.mjs +82 -0
  613. package/dist/core/provisioning/merge/module.mjs.map +1 -0
  614. package/dist/core/provisioning/merge/types.d.ts +34 -0
  615. package/dist/core/provisioning/merge/types.d.ts.map +1 -0
  616. package/dist/core/provisioning/merge/types.mjs +4 -0
  617. package/dist/core/provisioning/types.d.ts +10 -0
  618. package/dist/core/provisioning/types.d.ts.map +1 -1
  619. package/dist/core/provisioning/wildcard/index.d.ts +3 -0
  620. package/dist/core/provisioning/wildcard/index.d.ts.map +1 -0
  621. package/dist/core/provisioning/wildcard/index.mjs +5 -0
  622. package/dist/core/provisioning/wildcard/module.d.ts +53 -0
  623. package/dist/core/provisioning/wildcard/module.d.ts.map +1 -0
  624. package/dist/core/provisioning/wildcard/module.mjs +91 -0
  625. package/dist/core/provisioning/wildcard/module.mjs.map +1 -0
  626. package/dist/core/provisioning/wildcard/types.d.ts +19 -0
  627. package/dist/core/provisioning/wildcard/types.d.ts.map +1 -0
  628. package/dist/core/provisioning/wildcard/types.mjs +4 -0
  629. package/dist/core/query/index.mjs +2 -2
  630. package/dist/core/query/module.d.ts +19 -9
  631. package/dist/core/query/module.d.ts.map +1 -1
  632. package/dist/core/query/module.mjs +22 -10
  633. package/dist/core/query/module.mjs.map +1 -1
  634. package/dist/index.mjs +10 -4
  635. package/dist/path.d.ts +0 -2
  636. package/dist/path.d.ts.map +1 -1
  637. package/dist/path.mjs +1 -3
  638. package/dist/path.mjs.map +1 -1
  639. package/dist/swagger.json +885 -112
  640. package/dist/utils/error.d.ts +20 -3
  641. package/dist/utils/error.d.ts.map +1 -1
  642. package/dist/utils/error.mjs +102 -5
  643. package/dist/utils/error.mjs.map +1 -1
  644. package/dist/utils/index.mjs +2 -2
  645. package/package.json +25 -61
  646. package/dist/adapters/http/ui/base-path.d.ts +0 -9
  647. package/dist/adapters/http/ui/base-path.d.ts.map +0 -1
  648. package/dist/adapters/http/ui/base-path.mjs +0 -18
  649. package/dist/adapters/http/ui/base-path.mjs.map +0 -1
  650. package/dist/adapters/http/ui/internal-http-client.d.ts.map +0 -1
  651. package/dist/adapters/http/ui/internal-http-client.mjs.map +0 -1
  652. package/dist/adapters/http/ui/render.d.ts +0 -4
  653. package/dist/adapters/http/ui/render.d.ts.map +0 -1
  654. package/dist/adapters/http/ui/render.mjs +0 -63
  655. package/dist/adapters/http/ui/render.mjs.map +0 -1
  656. package/dist/adapters/http/ui/serve.d.ts.map +0 -1
  657. package/dist/adapters/http/ui/serve.mjs.map +0 -1
  658. package/dist/adapters/http/ui/types.d.ts +0 -20
  659. package/dist/adapters/http/ui/types.d.ts.map +0 -1
  660. package/dist/app/modules/identity/repositories/provider/account/index.d.ts.map +0 -1
  661. package/dist/app/modules/identity/repositories/provider/account/index.mjs +0 -5
  662. package/dist/app/modules/identity/repositories/provider/account/module.d.ts +0 -10
  663. package/dist/app/modules/identity/repositories/provider/account/module.d.ts.map +0 -1
  664. package/dist/app/modules/identity/repositories/provider/account/module.mjs +0 -28
  665. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +0 -1
  666. package/dist/core/entities/client/web-client.d.ts +0 -72
  667. package/dist/core/entities/client/web-client.d.ts.map +0 -1
  668. package/dist/core/entities/client/web-client.mjs +0 -123
  669. package/dist/core/entities/client/web-client.mjs.map +0 -1
  670. package/dist/ui/client/.vite/ssr-manifest.json +0 -54974
  671. package/dist/ui/client/assets/asap-latin-400-normal-Dc37g3Il.woff +0 -0
  672. package/dist/ui/client/assets/asap-latin-400-normal-DnZ1MOsG.woff2 +0 -0
  673. package/dist/ui/client/assets/asap-latin-700-normal-Dqcopq14.woff +0 -0
  674. package/dist/ui/client/assets/asap-latin-700-normal-l2Y8pi-F.woff2 +0 -0
  675. package/dist/ui/client/assets/asap-latin-ext-400-normal-C-fcRdtE.woff +0 -0
  676. package/dist/ui/client/assets/asap-latin-ext-400-normal-DwYtpHbV.woff2 +0 -0
  677. package/dist/ui/client/assets/asap-latin-ext-700-normal-D00OESsZ.woff +0 -0
  678. package/dist/ui/client/assets/asap-latin-ext-700-normal-y8bo5aW5.woff2 +0 -0
  679. package/dist/ui/client/assets/asap-vietnamese-400-normal-DGyJlJLT.woff2 +0 -0
  680. package/dist/ui/client/assets/asap-vietnamese-400-normal-lfLaoF2x.woff +0 -0
  681. package/dist/ui/client/assets/asap-vietnamese-700-normal-B-e19ug5.woff +0 -0
  682. package/dist/ui/client/assets/asap-vietnamese-700-normal-D-SxY94i.woff2 +0 -0
  683. package/dist/ui/client/assets/index-BTK3GPZZ.js +0 -106
  684. package/dist/ui/client/assets/index-Cx_pI7BS.css +0 -2
  685. package/dist/ui/client/assets/nunito-cyrillic-300-normal-BPQV259B.woff2 +0 -0
  686. package/dist/ui/client/assets/nunito-cyrillic-300-normal-g5qSsvc0.woff +0 -0
  687. package/dist/ui/client/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff +0 -0
  688. package/dist/ui/client/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2 +0 -0
  689. package/dist/ui/client/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff +0 -0
  690. package/dist/ui/client/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2 +0 -0
  691. package/dist/ui/client/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2 +0 -0
  692. package/dist/ui/client/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff +0 -0
  693. package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-BDHtqmCR.woff +0 -0
  694. package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-ChMQLIrm.woff2 +0 -0
  695. package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2 +0 -0
  696. package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff +0 -0
  697. package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2 +0 -0
  698. package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff +0 -0
  699. package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2 +0 -0
  700. package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff +0 -0
  701. package/dist/ui/client/assets/nunito-latin-300-normal-C3ZIKvzv.woff +0 -0
  702. package/dist/ui/client/assets/nunito-latin-300-normal-COoPE5VN.woff2 +0 -0
  703. package/dist/ui/client/assets/nunito-latin-400-normal-DKg4f3fz.woff +0 -0
  704. package/dist/ui/client/assets/nunito-latin-400-normal-r8SDr6Up.woff2 +0 -0
  705. package/dist/ui/client/assets/nunito-latin-600-normal-Br8yIETf.woff2 +0 -0
  706. package/dist/ui/client/assets/nunito-latin-600-normal-Cd0eNu1l.woff +0 -0
  707. package/dist/ui/client/assets/nunito-latin-700-normal-Dort48En.woff2 +0 -0
  708. package/dist/ui/client/assets/nunito-latin-700-normal-OcDqTBcA.woff +0 -0
  709. package/dist/ui/client/assets/nunito-latin-ext-300-normal-D1SyVuPt.woff2 +0 -0
  710. package/dist/ui/client/assets/nunito-latin-ext-300-normal-DfqbmdMl.woff +0 -0
  711. package/dist/ui/client/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff +0 -0
  712. package/dist/ui/client/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2 +0 -0
  713. package/dist/ui/client/assets/nunito-latin-ext-600-normal-BKUpuB78.woff +0 -0
  714. package/dist/ui/client/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2 +0 -0
  715. package/dist/ui/client/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2 +0 -0
  716. package/dist/ui/client/assets/nunito-latin-ext-700-normal-D4woHhbd.woff +0 -0
  717. package/dist/ui/client/assets/nunito-vietnamese-300-normal-DATld5Vw.woff +0 -0
  718. package/dist/ui/client/assets/nunito-vietnamese-300-normal-mLneKULB.woff2 +0 -0
  719. package/dist/ui/client/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2 +0 -0
  720. package/dist/ui/client/assets/nunito-vietnamese-400-normal-DtOtW02z.woff +0 -0
  721. package/dist/ui/client/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2 +0 -0
  722. package/dist/ui/client/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff +0 -0
  723. package/dist/ui/client/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff +0 -0
  724. package/dist/ui/client/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2 +0 -0
  725. package/dist/ui/client/index.html +0 -22
  726. package/dist/ui/server/assets/multipart-parser-BCMy8Xwv.js +0 -181
  727. package/dist/ui/server/assets/multipart-parser-BVY8pIV2.js +0 -176
  728. package/dist/ui/server/server.js +0 -155269
  729. /package/dist/{app/modules/identity/repositories/provider/account → adapters/http/controllers/entities/identity-provider-account}/index.d.ts +0 -0
  730. /package/dist/adapters/http/{ui → middleware/built-in}/types.mjs +0 -0
@@ -36,11 +36,12 @@ import "../../oauth2/index.mjs";
36
36
  import path from "node:path";
37
37
  //#region src/app/modules/http/modules/middleware.ts
38
38
  var HTTPMiddlewareModule = class {
39
+ viteServer;
39
40
  async mountBefore(router, container) {
40
41
  await this.mountPrometheus(router, container);
41
42
  await this.mountLogger(router, container);
42
43
  await this.mountCors(router, container);
43
- await this.mountAssets(router);
44
+ await this.mountAssets(router, container);
44
45
  await this.mountUIHttpClient(router, container);
45
46
  await this.mountBasic(router);
46
47
  await this.mountRateLimit(router, container);
@@ -66,8 +67,22 @@ var HTTPMiddlewareModule = class {
66
67
  });
67
68
  router.use(middleware);
68
69
  }
69
- async mountAssets(router) {
70
- await registerAssetsMiddleware(router);
70
+ async mountAssets(router, container) {
71
+ const config = container.resolve(ConfigInjectionKey);
72
+ this.viteServer = await registerAssetsMiddleware(router, {
73
+ themeDirectoryPath: config.themeDirectoryPath,
74
+ themeFragmentsEnabled: config.themeFragmentsEnabled,
75
+ logger: container.resolve(LoggerInjectionKey)
76
+ });
77
+ }
78
+ /**
79
+ * Release what the mounted middlewares own beyond the http listener. Only
80
+ * the JIT vite dev server qualifies: it keeps a file watcher and an HMR
81
+ * websocket alive, which would survive every setup/teardown cycle.
82
+ */ async teardown() {
83
+ if (!this.viteServer) return;
84
+ await this.viteServer.close();
85
+ this.viteServer = void 0;
71
86
  }
72
87
  async mountUIHttpClient(router, container) {
73
88
  if (!container.has(HTTPInjectionKey.UIHttpClient)) return;
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.mjs","names":["path","createAuthorizationMiddleware","createLoggerMiddleware","createRealmResolverMiddleware","createRequestEventContextMiddleware","createSwaggerMiddleware","registerAssetsMiddleware","registerBasicMiddleware","registerCorsMiddleware","registerErrorMiddleware","registerPrometheusMiddleware","registerRateLimitMiddleware","registerUIHttpClientMiddleware","HTTPInjectionKey","DIST_PATH","AuthenticationInjectionKey","ConfigInjectionKey","LoggerInjectionKey","IdentityInjectionKey","OAuth2InjectionToken","RealmEntity","RealmRepositoryAdapter","DatabaseInjectionKey","PermissionDatabaseProvider","HTTPMiddlewareModule","mountBefore","router","container","mountPrometheus","mountLogger","mountCors","mountAssets","mountUIHttpClient","mountBasic","mountRateLimit","mountSwagger","mountAuthorization","mountRequestEventContext","mountRealmResolver","mountAfter","logger","resolve","config","isEnabled","middlewareCors","options","transformBoolToEmptyObject","middleware","env","use","has","UIHttpClient","middlewarePrometheus","middlewareRateLimit","middlewareSwagger","documentPath","join","baseURL","publicUrl","realmRepository","dataSource","DataSource","identityResolver","Resolver","sessionManager","SessionManager","oauth2TokenVerifier","TokenVerifier","identityPermissionProvider","PermissionProvider","permissionProvider","clientAuthBasic","userAuthBasic","certificateSource","input"],"sources":["../../../../../src/app/modules/http/modules/middleware.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 path from 'node:path';\nimport type { IContainer } from 'eldin';\nimport type { Repository } from 'typeorm';\nimport type { Realm } from '@authup/core-kit';\nimport {\n createAuthorizationMiddleware,\n createLoggerMiddleware,\n createRealmResolverMiddleware,\n createRequestEventContextMiddleware,\n createSwaggerMiddleware,\n registerAssetsMiddleware,\n registerBasicMiddleware,\n registerCorsMiddleware,\n registerErrorMiddleware,\n registerPrometheusMiddleware,\n registerRateLimitMiddleware,\n registerUIHttpClientMiddleware,\n} from '../../../../adapters/http/index.ts';\nimport { HTTPInjectionKey } from '../constants.ts';\nimport { DIST_PATH } from '../../../../path.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { ConfigInjectionKey } from '../../config/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { IdentityInjectionKey } from '../../identity/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { RealmEntity } from '../../../../adapters/database/domains/index.ts';\nimport { RealmRepositoryAdapter } from '../../database/repositories/index.ts';\nimport {\n DatabaseInjectionKey,\n PermissionDatabaseProvider,\n} from '../../database/index.ts';\n\nexport class HTTPMiddlewareModule {\n async mountBefore(router: App, container: IContainer): Promise<void> {\n // @routup/prometheus must be installed before any other plugin or\n // route so that its onion middleware can observe the full request\n // lifecycle (the v3 README is explicit on this).\n await this.mountPrometheus(router, container);\n await this.mountLogger(router, container);\n await this.mountCors(router, container);\n await this.mountAssets(router);\n await this.mountUIHttpClient(router, container);\n await this.mountBasic(router);\n await this.mountRateLimit(router, container);\n\n await this.mountSwagger(router, container);\n await this.mountAuthorization(router, container);\n await this.mountRequestEventContext(router);\n await this.mountRealmResolver(router, container);\n }\n\n\n async mountAfter(router: App, container: IContainer): Promise<void> {\n registerErrorMiddleware(router, { logger: container.resolve(LoggerInjectionKey) });\n }\n\n // ----------------------------------------------------\n async mountCors(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareCors)) {\n return;\n }\n\n const options = this.transformBoolToEmptyObject(config.middlewareCors) ?? {};\n\n registerCorsMiddleware(router, options);\n }\n\n async mountLogger(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const middleware = createLoggerMiddleware({\n env: config.env,\n logger: container.resolve(LoggerInjectionKey),\n });\n\n router.use(middleware);\n }\n\n async mountAssets(router: App): Promise<void> {\n await registerAssetsMiddleware(router);\n }\n\n async mountUIHttpClient(router: App, container: IContainer): Promise<void> {\n if (!container.has(HTTPInjectionKey.UIHttpClient)) {\n return;\n }\n\n registerUIHttpClientMiddleware(router, () => container.resolve(HTTPInjectionKey.UIHttpClient));\n }\n\n async mountBasic(router: App): Promise<void> {\n registerBasicMiddleware(router);\n }\n\n async mountPrometheus(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewarePrometheus)) {\n return;\n }\n\n registerPrometheusMiddleware(router, this.transformBoolToEmptyObject(config.middlewarePrometheus));\n }\n\n async mountRateLimit(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareRateLimit)) {\n return;\n }\n\n registerRateLimitMiddleware(router, this.transformBoolToEmptyObject(config.middlewareRateLimit));\n }\n\n async mountSwagger(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n if (!this.isEnabled(config.middlewareSwagger)) {\n return;\n }\n\n const middleware = createSwaggerMiddleware({\n documentPath: path.join(DIST_PATH, 'swagger.json'),\n baseURL: config.publicUrl,\n });\n\n router.use('/docs', middleware);\n }\n\n async mountRealmResolver(router: App, container: IContainer): Promise<void> {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const middleware = createRealmResolverMiddleware({ realmRepository: new RealmRepositoryAdapter(realmRepository) });\n\n // Mounted at /realms/:realmId/:nested so the middleware only fires on\n // nested-resource URLs (e.g. /realms/master/users/...). Bare\n // /realms/:id routes belong to RealmController (CRUD, openid-config,\n // jwks) and would otherwise 404 on PUT upserts where the realm\n // doesn't exist yet.\n router.use('/realms/:realmId/:nested', middleware);\n }\n\n async mountAuthorization(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n const oauth2TokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const middleware = createAuthorizationMiddleware({\n identityResolver,\n identityPermissionProvider,\n permissionProvider,\n oauth2TokenVerifier,\n sessionManager,\n options: {\n clientAuthBasic: config.clientAuthBasic,\n userAuthBasic: config.userAuthBasic,\n certificateSource: config.certificateSource,\n },\n });\n\n router.use(middleware);\n }\n\n async mountRequestEventContext(router: App): Promise<void> {\n // mounted immediately AFTER the authorization middleware — the\n // identity must already be resolved for actor attribution.\n router.use(createRequestEventContextMiddleware());\n }\n\n // ----------------------------------------------------\n\n private transformBoolToEmptyObject<T extends Record<string, any>>(\n input?: T | boolean,\n ) : T | undefined {\n if (typeof input === 'boolean') {\n return {} as T;\n }\n\n return input || {} as T;\n }\n\n private isEnabled<T>(input: T | boolean) {\n return typeof input !== 'boolean' || input === true;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"middleware.mjs","names":["path","createAuthorizationMiddleware","createLoggerMiddleware","createRealmResolverMiddleware","createRequestEventContextMiddleware","createSwaggerMiddleware","registerAssetsMiddleware","registerBasicMiddleware","registerCorsMiddleware","registerErrorMiddleware","registerPrometheusMiddleware","registerRateLimitMiddleware","registerUIHttpClientMiddleware","HTTPInjectionKey","DIST_PATH","AuthenticationInjectionKey","ConfigInjectionKey","LoggerInjectionKey","IdentityInjectionKey","OAuth2InjectionToken","RealmEntity","RealmRepositoryAdapter","DatabaseInjectionKey","PermissionDatabaseProvider","HTTPMiddlewareModule","viteServer","mountBefore","router","container","mountPrometheus","mountLogger","mountCors","mountAssets","mountUIHttpClient","mountBasic","mountRateLimit","mountSwagger","mountAuthorization","mountRequestEventContext","mountRealmResolver","mountAfter","logger","resolve","config","isEnabled","middlewareCors","options","transformBoolToEmptyObject","middleware","env","use","themeDirectoryPath","themeFragmentsEnabled","teardown","close","undefined","has","UIHttpClient","middlewarePrometheus","middlewareRateLimit","middlewareSwagger","documentPath","join","baseURL","publicUrl","realmRepository","dataSource","DataSource","identityResolver","Resolver","sessionManager","SessionManager","oauth2TokenVerifier","TokenVerifier","identityPermissionProvider","PermissionProvider","permissionProvider","clientAuthBasic","userAuthBasic","certificateSource","input"],"sources":["../../../../../src/app/modules/http/modules/middleware.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 path from 'node:path';\nimport type { IContainer } from 'eldin';\nimport type { ViteDevServer } from 'vite';\nimport type { Repository } from 'typeorm';\nimport type { Realm } from '@authup/core-kit';\nimport {\n createAuthorizationMiddleware,\n createLoggerMiddleware,\n createRealmResolverMiddleware,\n createRequestEventContextMiddleware,\n createSwaggerMiddleware,\n registerAssetsMiddleware,\n registerBasicMiddleware,\n registerCorsMiddleware,\n registerErrorMiddleware,\n registerPrometheusMiddleware,\n registerRateLimitMiddleware,\n registerUIHttpClientMiddleware,\n} from '../../../../adapters/http/index.ts';\nimport { HTTPInjectionKey } from '../constants.ts';\nimport { DIST_PATH } from '../../../../path.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { ConfigInjectionKey } from '../../config/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { IdentityInjectionKey } from '../../identity/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { RealmEntity } from '../../../../adapters/database/domains/index.ts';\nimport { RealmRepositoryAdapter } from '../../database/repositories/index.ts';\nimport {\n DatabaseInjectionKey,\n PermissionDatabaseProvider,\n} from '../../database/index.ts';\n\nexport class HTTPMiddlewareModule {\n protected viteServer : ViteDevServer | undefined;\n\n async mountBefore(router: App, container: IContainer): Promise<void> {\n // @routup/prometheus must be installed before any other plugin or\n // route so that its onion middleware can observe the full request\n // lifecycle (the v3 README is explicit on this).\n await this.mountPrometheus(router, container);\n await this.mountLogger(router, container);\n await this.mountCors(router, container);\n await this.mountAssets(router, container);\n await this.mountUIHttpClient(router, container);\n await this.mountBasic(router);\n await this.mountRateLimit(router, container);\n\n await this.mountSwagger(router, container);\n await this.mountAuthorization(router, container);\n await this.mountRequestEventContext(router);\n await this.mountRealmResolver(router, container);\n }\n\n\n async mountAfter(router: App, container: IContainer): Promise<void> {\n registerErrorMiddleware(router, { logger: container.resolve(LoggerInjectionKey) });\n }\n\n // ----------------------------------------------------\n async mountCors(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareCors)) {\n return;\n }\n\n const options = this.transformBoolToEmptyObject(config.middlewareCors) ?? {};\n\n registerCorsMiddleware(router, options);\n }\n\n async mountLogger(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const middleware = createLoggerMiddleware({\n env: config.env,\n logger: container.resolve(LoggerInjectionKey),\n });\n\n router.use(middleware);\n }\n\n async mountAssets(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n // Config is resolved HERE, in the app-module layer, and the value is\n // passed down: adapters/http/ui/** must not read config itself.\n this.viteServer = await registerAssetsMiddleware(router, {\n themeDirectoryPath: config.themeDirectoryPath,\n themeFragmentsEnabled: config.themeFragmentsEnabled,\n logger: container.resolve(LoggerInjectionKey),\n });\n }\n\n /**\n * Release what the mounted middlewares own beyond the http listener. Only\n * the JIT vite dev server qualifies: it keeps a file watcher and an HMR\n * websocket alive, which would survive every setup/teardown cycle.\n */\n async teardown(): Promise<void> {\n if (!this.viteServer) {\n return;\n }\n\n await this.viteServer.close();\n this.viteServer = undefined;\n }\n\n async mountUIHttpClient(router: App, container: IContainer): Promise<void> {\n if (!container.has(HTTPInjectionKey.UIHttpClient)) {\n return;\n }\n\n registerUIHttpClientMiddleware(router, () => container.resolve(HTTPInjectionKey.UIHttpClient));\n }\n\n async mountBasic(router: App): Promise<void> {\n registerBasicMiddleware(router);\n }\n\n async mountPrometheus(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewarePrometheus)) {\n return;\n }\n\n registerPrometheusMiddleware(router, this.transformBoolToEmptyObject(config.middlewarePrometheus));\n }\n\n async mountRateLimit(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareRateLimit)) {\n return;\n }\n\n registerRateLimitMiddleware(router, this.transformBoolToEmptyObject(config.middlewareRateLimit));\n }\n\n async mountSwagger(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n if (!this.isEnabled(config.middlewareSwagger)) {\n return;\n }\n\n const middleware = createSwaggerMiddleware({\n documentPath: path.join(DIST_PATH, 'swagger.json'),\n baseURL: config.publicUrl,\n });\n\n router.use('/docs', middleware);\n }\n\n async mountRealmResolver(router: App, container: IContainer): Promise<void> {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const middleware = createRealmResolverMiddleware({ realmRepository: new RealmRepositoryAdapter(realmRepository) });\n\n // Mounted at /realms/:realmId/:nested so the middleware only fires on\n // nested-resource URLs (e.g. /realms/master/users/...). Bare\n // /realms/:id routes belong to RealmController (CRUD, openid-config,\n // jwks) and would otherwise 404 on PUT upserts where the realm\n // doesn't exist yet.\n router.use('/realms/:realmId/:nested', middleware);\n }\n\n async mountAuthorization(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n const oauth2TokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const middleware = createAuthorizationMiddleware({\n identityResolver,\n identityPermissionProvider,\n permissionProvider,\n oauth2TokenVerifier,\n sessionManager,\n options: {\n clientAuthBasic: config.clientAuthBasic,\n userAuthBasic: config.userAuthBasic,\n certificateSource: config.certificateSource,\n },\n });\n\n router.use(middleware);\n }\n\n async mountRequestEventContext(router: App): Promise<void> {\n // mounted immediately AFTER the authorization middleware — the\n // identity must already be resolved for actor attribution.\n router.use(createRequestEventContextMiddleware());\n }\n\n // ----------------------------------------------------\n\n private transformBoolToEmptyObject<T extends Record<string, any>>(\n input?: T | boolean,\n ) : T | undefined {\n if (typeof input === 'boolean') {\n return {} as T;\n }\n\n return input || {} as T;\n }\n\n private isEnabled<T>(input: T | boolean) {\n return typeof input !== 'boolean' || input === true;\n }\n}\n"],"mappings":"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"}
@@ -2,7 +2,6 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { IdentityInjectionKey } from "./constants.mjs";
5
- import { IdentityProviderAccountRepository } from "./repositories/provider/account/module.mjs";
6
5
  import { IdentityProviderAttributeMappingRepository } from "./repositories/provider/mapper/attribute.mjs";
7
6
  import { IdentityProviderPermissionMappingRepository } from "./repositories/provider/mapper/permission.mjs";
8
7
  import { IdentityProviderRoleMappingRepository } from "./repositories/provider/mapper/role.mjs";
@@ -10,4 +9,4 @@ import { ClientIdentityRepository } from "./repositories/client.mjs";
10
9
  import { UserIdentityRepository } from "./repositories/user.mjs";
11
10
  import "./repositories/index.mjs";
12
11
  import { IdentityModule } from "./module.mjs";
13
- export { ClientIdentityRepository, IdentityInjectionKey, IdentityModule, IdentityProviderAccountRepository, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRoleMappingRepository, UserIdentityRepository };
12
+ export { ClientIdentityRepository, IdentityInjectionKey, IdentityModule, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRoleMappingRepository, UserIdentityRepository };
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/identity/module.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAaxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIrC,qBAAa,cAAe,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;;IAO1B,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAwFpD"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/identity/module.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAaxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIrC,qBAAa,cAAe,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;;IAO1B,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAwFpD"}
@@ -21,13 +21,13 @@ import "../../../core/index.mjs";
21
21
  import { ModuleName } from "../constants.mjs";
22
22
  import { ClientRepositoryAdapter } from "../database/repositories/client/repository.mjs";
23
23
  import { IdentityProviderRepositoryAdapter } from "../database/repositories/identity-provider/repository.mjs";
24
+ import { IdentityProviderAccountRepositoryAdapter } from "../database/repositories/identity-provider-account/repository.mjs";
24
25
  import { RoleRepositoryAdapter } from "../database/repositories/role/repository.mjs";
25
26
  import { UserRepositoryAdapter } from "../database/repositories/user/repository.mjs";
26
27
  import "../database/repositories/index.mjs";
27
28
  import { DatabaseInjectionKey } from "../database/constants.mjs";
28
29
  import "../database/index.mjs";
29
30
  import { IdentityInjectionKey } from "./constants.mjs";
30
- import { IdentityProviderAccountRepository } from "./repositories/provider/account/module.mjs";
31
31
  import { IdentityProviderAttributeMappingRepository } from "./repositories/provider/mapper/attribute.mjs";
32
32
  import { IdentityProviderPermissionMappingRepository } from "./repositories/provider/mapper/permission.mjs";
33
33
  import { IdentityProviderRoleMappingRepository } from "./repositories/provider/mapper/role.mjs";
@@ -85,7 +85,7 @@ var IdentityModule = class {
85
85
  const roleMapper = new IdentityProviderRoleMapper(roleMapperFinder);
86
86
  const permissionMapperRepository = new IdentityProviderPermissionMappingRepository(dataSource);
87
87
  const permissionMapper = new IdentityProviderPermissionMapper(permissionMapperRepository);
88
- const providerAccountRepository = new IdentityProviderAccountRepository(dataSource);
88
+ const providerAccountRepository = new IdentityProviderAccountRepositoryAdapter(dataSource);
89
89
  container.register(IdentityInjectionKey.ProviderAccountManager, { useFactory: () => new IdentityProviderAccountManager({
90
90
  repository: providerAccountRepository,
91
91
  userRepository,
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["ClientIdentityRepository","IdentityProviderAccountRepository","IdentityProviderAttributeMappingRepository","IdentityProviderPermissionMappingRepository","IdentityProviderRoleMappingRepository","UserIdentityRepository","DatabaseInjectionKey","IdentityProviderRepositoryAdapter","ClientEntity","IdentityProviderRepository","RealmEntity","RoleEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientRepositoryAdapter","RoleRepositoryAdapter","UserRepositoryAdapter","IdentityPermissionProvider","IdentityProviderAccountManager","IdentityProviderAttributeMapper","IdentityProviderLdapCollectionAuthenticator","IdentityProviderPermissionMapper","IdentityProviderRoleMapper","IdentityResolver","IdentityRoleProvider","LDAPInjectionKey","ModuleName","IdentityInjectionKey","IdentityModule","name","dependencies","IDENTITY","DATABASE","setup","container","dataSource","resolve","DataSource","realmRepository","clientRepository","userRepository","repository","userPermissionRepository","userRoleRepository","register","Resolver","useFactory","clientRepositoryAdapter","userRepositoryAdapter","roleRepositoryAdapter","RoleProvider","PermissionProvider","c","roleRepository","roleProvider","attributeMapperRepository","attributeMapper","roleMapperFinder","roleMapper","permissionMapperRepository","permissionMapper","providerAccountRepository","ProviderAccountManager","identityProviderRepository","ProviderLdapCollectionAuthenticator","accountManager","clientFactory","ClientFactory"],"sources":["../../../../src/app/modules/identity/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Client,\n Realm,\n Role,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientIdentityRepository,\n IdentityProviderAccountRepository,\n IdentityProviderAttributeMappingRepository,\n IdentityProviderPermissionMappingRepository,\n IdentityProviderRoleMappingRepository,\n UserIdentityRepository,\n} from './repositories/index.ts';\nimport { DatabaseInjectionKey, IdentityProviderRepositoryAdapter } from '../database/index.ts';\nimport {\n ClientEntity,\n IdentityProviderRepository,\n RealmEntity,\n RoleEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../adapters/database/domains/index.ts';\nimport {\n ClientRepositoryAdapter,\n RoleRepositoryAdapter,\n UserRepositoryAdapter,\n} from '../database/repositories/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n IdentityPermissionProvider,\n IdentityProviderAccountManager,\n IdentityProviderAttributeMapper,\n IdentityProviderLdapCollectionAuthenticator,\n IdentityProviderPermissionMapper,\n IdentityProviderRoleMapper,\n IdentityResolver,\n IdentityRoleProvider,\n} from '../../../core/index.ts';\nimport { LDAPInjectionKey } from '../ldap/index.ts';\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { IdentityInjectionKey } from './constants.ts';\n\nexport class IdentityModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.IDENTITY;\n this.dependencies = [ModuleName.DATABASE];\n }\n\n async setup(container: IContainer): Promise<void> {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const clientRepository = new ClientIdentityRepository(\n container.resolve<Repository<Client>>(ClientEntity),\n );\n const userRepository = new UserIdentityRepository({\n repository: new UserRepository(dataSource),\n userPermissionRepository: container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n userRoleRepository: container.resolve<Repository<UserRole>>(UserRoleEntity),\n });\n\n container.register(IdentityInjectionKey.Resolver, {\n useFactory: () => new IdentityResolver({\n clientRepository,\n userRepository,\n }),\n });\n\n // ---------------------------------------------\n\n const clientRepositoryAdapter = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const userRepositoryAdapter = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const roleRepositoryAdapter = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n\n container.register(IdentityInjectionKey.RoleProvider, {\n useFactory: () => new IdentityRoleProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n }),\n });\n\n container.register(IdentityInjectionKey.PermissionProvider, {\n useFactory: (c) => new IdentityPermissionProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n roleRepository: roleRepositoryAdapter,\n roleProvider: c.resolve(IdentityInjectionKey.RoleProvider),\n }),\n });\n\n // ---------------------------------------------\n\n const attributeMapperRepository = new IdentityProviderAttributeMappingRepository(dataSource);\n const attributeMapper = new IdentityProviderAttributeMapper(attributeMapperRepository);\n\n const roleMapperFinder = new IdentityProviderRoleMappingRepository(dataSource);\n const roleMapper = new IdentityProviderRoleMapper(roleMapperFinder);\n\n const permissionMapperRepository = new IdentityProviderPermissionMappingRepository(dataSource);\n const permissionMapper = new IdentityProviderPermissionMapper(permissionMapperRepository);\n\n const providerAccountRepository = new IdentityProviderAccountRepository(dataSource);\n\n container.register(IdentityInjectionKey.ProviderAccountManager, {\n useFactory: () => new IdentityProviderAccountManager({\n repository: providerAccountRepository,\n userRepository,\n attributeMapper,\n roleMapper,\n permissionMapper,\n }),\n });\n\n // ---------------------------------------------\n\n const identityProviderRepository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n container.register(IdentityInjectionKey.ProviderLdapCollectionAuthenticator, {\n useFactory: (c) => new IdentityProviderLdapCollectionAuthenticator({\n repository: identityProviderRepository,\n accountManager: c.resolve(IdentityInjectionKey.ProviderAccountManager),\n clientFactory: c.resolve(LDAPInjectionKey.ClientFactory),\n }),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,IAAa6B,iBAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAOH,WAAWK;EACvB,KAAKD,eAAe,CAACJ,WAAWM,QAAS;CAC7C;CAEA,MAAMC,MAAMC,WAAsC;EAC9C,MAAMC,aAAaD,UAAUE,QAAQ/B,qBAAqBgC,UAAU;EACpE,MAAMC,kBAAkBJ,UAAUE,QAA2B3B,WAAAA;EAE7D,MAAM8B,mBAAmB,IAAIxC,yBACzBmC,UAAUE,QAA4B7B,YAAAA,CAAAA;EAE1C,MAAMiC,iBAAiB,IAAIpC,uBAAuB;GAC9CqC,YAAY,IAAI7B,eAAeuB,UAAAA;GAC/BO,0BAA0BR,UAAUE,QAAoCzB,oBAAAA;GACxEgC,oBAAoBT,UAAUE,QAA8BvB,cAAAA;EAChE,CAAA;EAEAqB,UAAUU,SAASjB,qBAAqBkB,UAAU,EAC9CC,kBAAkB,IAAIvB,iBAAiB;GACnCgB;GACAC;EACJ,CAAA,EACJ,CAAA;EAIA,MAAMO,0BAA0B,IAAIjC,wBAAwB;GACxD2B,YAAYP,UAAUE,QAA4B7B,YAAAA;GAClD+B;EACJ,CAAA;EACA,MAAMU,wBAAwB,IAAIhC,sBAAsB;GACpDyB,YAAY,IAAI7B,eAAeuB,UAAAA;GAC/BG;EACJ,CAAA;EACA,MAAMW,wBAAwB,IAAIlC,sBAAsB;GACpD0B,YAAYP,UAAUE,QAA0B1B,UAAAA;GAChD4B;EACJ,CAAA;EAEAJ,UAAUU,SAASjB,qBAAqBuB,cAAc,EAClDJ,kBAAkB,IAAItB,qBAAqB;GACvCe,kBAAkBQ;GAClBP,gBAAgBQ;EACpB,CAAA,EACJ,CAAA;EAEAd,UAAUU,SAASjB,qBAAqBwB,oBAAoB,EACxDL,aAAaM,MAAM,IAAInC,2BAA2B;GAC9CsB,kBAAkBQ;GAClBP,gBAAgBQ;GAChBK,gBAAgBJ;GAChBK,cAAcF,EAAEhB,QAAQT,qBAAqBuB,YAAY;EAC7D,CAAA,EACJ,CAAA;EAIA,MAAMK,4BAA4B,IAAItD,2CAA2CkC,UAAAA;EACjF,MAAMqB,kBAAkB,IAAIrC,gCAAgCoC,yBAAAA;EAE5D,MAAME,mBAAmB,IAAItD,sCAAsCgC,UAAAA;EACnE,MAAMuB,aAAa,IAAIpC,2BAA2BmC,gBAAAA;EAElD,MAAME,6BAA6B,IAAIzD,4CAA4CiC,UAAAA;EACnF,MAAMyB,mBAAmB,IAAIvC,iCAAiCsC,0BAAAA;EAE9D,MAAME,4BAA4B,IAAI7D,kCAAkCmC,UAAAA;EAExED,UAAUU,SAASjB,qBAAqBmC,wBAAwB,EAC5DhB,kBAAkB,IAAI5B,+BAA+B;GACjDuB,YAAYoB;GACZrB;GACAgB;GACAE;GACAE;EACJ,CAAA,EACJ,CAAA;EAIA,MAAMG,6BAA6B,IAAIzD,kCAAkC;GACrEmC,YAAY,IAAIjC,2BAA2B2B,UAAAA;GAC3CG,iBAAiBJ,UAAUE,QAA2B3B,WAAAA;EAC1D,CAAA;EACAyB,UAAUU,SAASjB,qBAAqBqC,qCAAqC,EACzElB,aAAaM,MAAM,IAAIhC,4CAA4C;GAC/DqB,YAAYsB;GACZE,gBAAgBb,EAAEhB,QAAQT,qBAAqBmC,sBAAsB;GACrEI,eAAed,EAAEhB,QAAQX,iBAAiB0C,aAAa;EAC3D,CAAA,EACJ,CAAA;CACJ;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["ClientIdentityRepository","IdentityProviderAttributeMappingRepository","IdentityProviderPermissionMappingRepository","IdentityProviderRoleMappingRepository","UserIdentityRepository","DatabaseInjectionKey","IdentityProviderAccountRepositoryAdapter","IdentityProviderRepositoryAdapter","ClientEntity","IdentityProviderRepository","RealmEntity","RoleEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientRepositoryAdapter","RoleRepositoryAdapter","UserRepositoryAdapter","IdentityPermissionProvider","IdentityProviderAccountManager","IdentityProviderAttributeMapper","IdentityProviderLdapCollectionAuthenticator","IdentityProviderPermissionMapper","IdentityProviderRoleMapper","IdentityResolver","IdentityRoleProvider","LDAPInjectionKey","ModuleName","IdentityInjectionKey","IdentityModule","name","dependencies","IDENTITY","DATABASE","setup","container","dataSource","resolve","DataSource","realmRepository","clientRepository","userRepository","repository","userPermissionRepository","userRoleRepository","register","Resolver","useFactory","clientRepositoryAdapter","userRepositoryAdapter","roleRepositoryAdapter","RoleProvider","PermissionProvider","c","roleRepository","roleProvider","attributeMapperRepository","attributeMapper","roleMapperFinder","roleMapper","permissionMapperRepository","permissionMapper","providerAccountRepository","ProviderAccountManager","identityProviderRepository","ProviderLdapCollectionAuthenticator","accountManager","clientFactory","ClientFactory"],"sources":["../../../../src/app/modules/identity/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Client,\n Realm,\n Role,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientIdentityRepository,\n IdentityProviderAttributeMappingRepository,\n IdentityProviderPermissionMappingRepository,\n IdentityProviderRoleMappingRepository,\n UserIdentityRepository,\n} from './repositories/index.ts';\nimport {\n DatabaseInjectionKey,\n IdentityProviderAccountRepositoryAdapter,\n IdentityProviderRepositoryAdapter,\n} from '../database/index.ts';\nimport {\n ClientEntity,\n IdentityProviderRepository,\n RealmEntity,\n RoleEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../adapters/database/domains/index.ts';\nimport {\n ClientRepositoryAdapter,\n RoleRepositoryAdapter,\n UserRepositoryAdapter,\n} from '../database/repositories/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n IdentityPermissionProvider,\n IdentityProviderAccountManager,\n IdentityProviderAttributeMapper,\n IdentityProviderLdapCollectionAuthenticator,\n IdentityProviderPermissionMapper,\n IdentityProviderRoleMapper,\n IdentityResolver,\n IdentityRoleProvider,\n} from '../../../core/index.ts';\nimport { LDAPInjectionKey } from '../ldap/index.ts';\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { IdentityInjectionKey } from './constants.ts';\n\nexport class IdentityModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.IDENTITY;\n this.dependencies = [ModuleName.DATABASE];\n }\n\n async setup(container: IContainer): Promise<void> {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const clientRepository = new ClientIdentityRepository(\n container.resolve<Repository<Client>>(ClientEntity),\n );\n const userRepository = new UserIdentityRepository({\n repository: new UserRepository(dataSource),\n userPermissionRepository: container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n userRoleRepository: container.resolve<Repository<UserRole>>(UserRoleEntity),\n });\n\n container.register(IdentityInjectionKey.Resolver, {\n useFactory: () => new IdentityResolver({\n clientRepository,\n userRepository,\n }),\n });\n\n // ---------------------------------------------\n\n const clientRepositoryAdapter = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const userRepositoryAdapter = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const roleRepositoryAdapter = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n\n container.register(IdentityInjectionKey.RoleProvider, {\n useFactory: () => new IdentityRoleProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n }),\n });\n\n container.register(IdentityInjectionKey.PermissionProvider, {\n useFactory: (c) => new IdentityPermissionProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n roleRepository: roleRepositoryAdapter,\n roleProvider: c.resolve(IdentityInjectionKey.RoleProvider),\n }),\n });\n\n // ---------------------------------------------\n\n const attributeMapperRepository = new IdentityProviderAttributeMappingRepository(dataSource);\n const attributeMapper = new IdentityProviderAttributeMapper(attributeMapperRepository);\n\n const roleMapperFinder = new IdentityProviderRoleMappingRepository(dataSource);\n const roleMapper = new IdentityProviderRoleMapper(roleMapperFinder);\n\n const permissionMapperRepository = new IdentityProviderPermissionMappingRepository(dataSource);\n const permissionMapper = new IdentityProviderPermissionMapper(permissionMapperRepository);\n\n const providerAccountRepository = new IdentityProviderAccountRepositoryAdapter(dataSource);\n\n container.register(IdentityInjectionKey.ProviderAccountManager, {\n useFactory: () => new IdentityProviderAccountManager({\n repository: providerAccountRepository,\n userRepository,\n attributeMapper,\n roleMapper,\n permissionMapper,\n }),\n });\n\n // ---------------------------------------------\n\n const identityProviderRepository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n container.register(IdentityInjectionKey.ProviderLdapCollectionAuthenticator, {\n useFactory: (c) => new IdentityProviderLdapCollectionAuthenticator({\n repository: identityProviderRepository,\n accountManager: c.resolve(IdentityInjectionKey.ProviderAccountManager),\n clientFactory: c.resolve(LDAPInjectionKey.ClientFactory),\n }),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA,IAAa6B,iBAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAOH,WAAWK;EACvB,KAAKD,eAAe,CAACJ,WAAWM,QAAS;CAC7C;CAEA,MAAMC,MAAMC,WAAsC;EAC9C,MAAMC,aAAaD,UAAUE,QAAQhC,qBAAqBiC,UAAU;EACpE,MAAMC,kBAAkBJ,UAAUE,QAA2B3B,WAAAA;EAE7D,MAAM8B,mBAAmB,IAAIxC,yBACzBmC,UAAUE,QAA4B7B,YAAAA,CAAAA;EAE1C,MAAMiC,iBAAiB,IAAIrC,uBAAuB;GAC9CsC,YAAY,IAAI7B,eAAeuB,UAAAA;GAC/BO,0BAA0BR,UAAUE,QAAoCzB,oBAAAA;GACxEgC,oBAAoBT,UAAUE,QAA8BvB,cAAAA;EAChE,CAAA;EAEAqB,UAAUU,SAASjB,qBAAqBkB,UAAU,EAC9CC,kBAAkB,IAAIvB,iBAAiB;GACnCgB;GACAC;EACJ,CAAA,EACJ,CAAA;EAIA,MAAMO,0BAA0B,IAAIjC,wBAAwB;GACxD2B,YAAYP,UAAUE,QAA4B7B,YAAAA;GAClD+B;EACJ,CAAA;EACA,MAAMU,wBAAwB,IAAIhC,sBAAsB;GACpDyB,YAAY,IAAI7B,eAAeuB,UAAAA;GAC/BG;EACJ,CAAA;EACA,MAAMW,wBAAwB,IAAIlC,sBAAsB;GACpD0B,YAAYP,UAAUE,QAA0B1B,UAAAA;GAChD4B;EACJ,CAAA;EAEAJ,UAAUU,SAASjB,qBAAqBuB,cAAc,EAClDJ,kBAAkB,IAAItB,qBAAqB;GACvCe,kBAAkBQ;GAClBP,gBAAgBQ;EACpB,CAAA,EACJ,CAAA;EAEAd,UAAUU,SAASjB,qBAAqBwB,oBAAoB,EACxDL,aAAaM,MAAM,IAAInC,2BAA2B;GAC9CsB,kBAAkBQ;GAClBP,gBAAgBQ;GAChBK,gBAAgBJ;GAChBK,cAAcF,EAAEhB,QAAQT,qBAAqBuB,YAAY;EAC7D,CAAA,EACJ,CAAA;EAIA,MAAMK,4BAA4B,IAAIvD,2CAA2CmC,UAAAA;EACjF,MAAMqB,kBAAkB,IAAIrC,gCAAgCoC,yBAAAA;EAE5D,MAAME,mBAAmB,IAAIvD,sCAAsCiC,UAAAA;EACnE,MAAMuB,aAAa,IAAIpC,2BAA2BmC,gBAAAA;EAElD,MAAME,6BAA6B,IAAI1D,4CAA4CkC,UAAAA;EACnF,MAAMyB,mBAAmB,IAAIvC,iCAAiCsC,0BAAAA;EAE9D,MAAME,4BAA4B,IAAIxD,yCAAyC8B,UAAAA;EAE/ED,UAAUU,SAASjB,qBAAqBmC,wBAAwB,EAC5DhB,kBAAkB,IAAI5B,+BAA+B;GACjDuB,YAAYoB;GACZrB;GACAgB;GACAE;GACAE;EACJ,CAAA,EACJ,CAAA;EAIA,MAAMG,6BAA6B,IAAIzD,kCAAkC;GACrEmC,YAAY,IAAIjC,2BAA2B2B,UAAAA;GAC3CG,iBAAiBJ,UAAUE,QAA2B3B,WAAAA;EAC1D,CAAA;EACAyB,UAAUU,SAASjB,qBAAqBqC,qCAAqC,EACzElB,aAAaM,MAAM,IAAIhC,4CAA4C;GAC/DqB,YAAYsB;GACZE,gBAAgBb,EAAEhB,QAAQT,qBAAqBmC,sBAAsB;GACrEI,eAAed,EAAEhB,QAAQX,iBAAiB0C,aAAa;EAC3D,CAAA,EACJ,CAAA;CACJ;AACJ"}
@@ -1,11 +1,10 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- import { IdentityProviderAccountRepository } from "./provider/account/module.mjs";
5
4
  import { IdentityProviderAttributeMappingRepository } from "./provider/mapper/attribute.mjs";
6
5
  import { IdentityProviderPermissionMappingRepository } from "./provider/mapper/permission.mjs";
7
6
  import { IdentityProviderRoleMappingRepository } from "./provider/mapper/role.mjs";
8
7
  import "./provider/index.mjs";
9
8
  import { ClientIdentityRepository } from "./client.mjs";
10
9
  import { UserIdentityRepository } from "./user.mjs";
11
- export { ClientIdentityRepository, IdentityProviderAccountRepository, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRoleMappingRepository, UserIdentityRepository };
10
+ export { ClientIdentityRepository, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRoleMappingRepository, UserIdentityRepository };
@@ -1,3 +1,2 @@
1
- export * from './account/index.ts';
2
1
  export * from './mapper/index.ts';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/app/modules/identity/repositories/provider/index.ts"],"names":[],"mappings":"AAOA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/app/modules/identity/repositories/provider/index.ts"],"names":[],"mappings":"AAOA,cAAc,mBAAmB,CAAC"}
@@ -1,10 +1,8 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- import { IdentityProviderAccountRepository } from "./account/module.mjs";
5
- import "./account/index.mjs";
6
4
  import { IdentityProviderAttributeMappingRepository } from "./mapper/attribute.mjs";
7
5
  import { IdentityProviderPermissionMappingRepository } from "./mapper/permission.mjs";
8
6
  import { IdentityProviderRoleMappingRepository } from "./mapper/role.mjs";
9
7
  import "./mapper/index.mjs";
10
- export { IdentityProviderAccountRepository, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRoleMappingRepository };
8
+ export { IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRoleMappingRepository };
@@ -24,6 +24,7 @@ import { ClientRoleRepositoryAdapter } from "./database/repositories/client-role
24
24
  import { ClientScopeRepositoryAdapter } from "./database/repositories/client-scope/repository.mjs";
25
25
  import { EventRepositoryAdapter } from "./database/repositories/event/repository.mjs";
26
26
  import { IdentityProviderRepositoryAdapter } from "./database/repositories/identity-provider/repository.mjs";
27
+ import { IdentityProviderAccountRepositoryAdapter } from "./database/repositories/identity-provider-account/repository.mjs";
27
28
  import { KeyRepositoryAdapter } from "./database/repositories/key/repository.mjs";
28
29
  import { PermissionRepositoryAdapter } from "./database/repositories/permission/repository.mjs";
29
30
  import { PermissionPolicyRepositoryAdapter } from "./database/repositories/permission-policy/repository.mjs";
@@ -54,7 +55,6 @@ import { PromAuthFlowMetrics } from "./metrics/prom.mjs";
54
55
  import "./metrics/index.mjs";
55
56
  import { OAuth2InjectionToken } from "./oauth2/constants.mjs";
56
57
  import { IdentityInjectionKey } from "./identity/constants.mjs";
57
- import { IdentityProviderAccountRepository } from "./identity/repositories/provider/account/module.mjs";
58
58
  import { IdentityProviderAttributeMappingRepository } from "./identity/repositories/provider/mapper/attribute.mjs";
59
59
  import { IdentityProviderPermissionMappingRepository } from "./identity/repositories/provider/mapper/permission.mjs";
60
60
  import { IdentityProviderRoleMappingRepository } from "./identity/repositories/provider/mapper/role.mjs";
@@ -67,6 +67,8 @@ import { IdentityModule } from "./identity/module.mjs";
67
67
  import "./identity/index.mjs";
68
68
  import { OAuth2Module } from "./oauth2/module.mjs";
69
69
  import "./oauth2/index.mjs";
70
+ import { ProvisioningInjectionKey } from "./provisioning/constants.mjs";
71
+ import { LazyWildcardRealmProvisioner } from "./provisioning/lazy-wildcard.mjs";
70
72
  import { MailInjectionKey, MailTemplateRendererInjectionKey } from "./mail/constants.mjs";
71
73
  import { MailModule } from "./mail/module.mjs";
72
74
  import "./mail/index.mjs";
@@ -79,4 +81,4 @@ import { ProvisionerModule } from "./provisioning/module.mjs";
79
81
  import "./provisioning/index.mjs";
80
82
  import { RuntimeModule } from "./runtime/module.mjs";
81
83
  import "./runtime/index.mjs";
82
- export { AuthenticationInjectionKey, AuthenticationModule, CacheInjectionKey, CacheModule, ClientIdentityRepository, ClientPermissionRepositoryAdapter, ClientRepositoryAdapter, ClientRoleRepositoryAdapter, ClientScopeRepositoryAdapter, ComponentsModule, CompositeProvisioningSource, ConfigEnvironmentVariableName, ConfigInjectionKey, ConfigModule, DatabaseInjectionKey, DatabaseModule, DefaultProvisioningSource, EventRepositoryAdapter, FileProvisioningSource, HTTPInjectionKey, HTTPModule, IdentityInjectionKey, IdentityModule, IdentityProviderAccountRepository, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRepositoryAdapter, IdentityProviderRoleMappingRepository, IdentityProviderRoleMappingRepositoryAdapter, KeyRepositoryAdapter, LDAPInjectionKey, LdapModule, LoggerInjectionKey, LoggerModule, MailInjectionKey, MailModule, MailTemplateRendererInjectionKey, MetricsInjectionKey, ModuleName, OAuth2InjectionToken, OAuth2Module, PermissionDatabaseProvider, PermissionPolicyRepositoryAdapter, PermissionRepositoryAdapter, PolicyRepositoryAdapter, PromAuthFlowMetrics, ProvisionerModule, RealmRepositoryAdapter, RoleAttributeRepositoryAdapter, RolePermissionRepositoryAdapter, RoleRepositoryAdapter, RuntimeModule, ScopeRepositoryAdapter, SessionRepository, TrustAnchorRepositoryAdapter, UserAttributeRepositoryAdapter, UserAuthenticatorRepositoryAdapter, UserIdentityRepository, UserPermissionRepositoryAdapter, UserRepositoryAdapter, UserRoleRepositoryAdapter, expandToOrigins, getAppOrigins, readConfig, readConfigRaw, readConfigRawFromEnv, readConfigRawFromFS };
84
+ export { AuthenticationInjectionKey, AuthenticationModule, CacheInjectionKey, CacheModule, ClientIdentityRepository, ClientPermissionRepositoryAdapter, ClientRepositoryAdapter, ClientRoleRepositoryAdapter, ClientScopeRepositoryAdapter, ComponentsModule, CompositeProvisioningSource, ConfigEnvironmentVariableName, ConfigInjectionKey, ConfigModule, DatabaseInjectionKey, DatabaseModule, DefaultProvisioningSource, EventRepositoryAdapter, FileProvisioningSource, HTTPInjectionKey, HTTPModule, IdentityInjectionKey, IdentityModule, IdentityProviderAccountRepositoryAdapter, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRepositoryAdapter, IdentityProviderRoleMappingRepository, IdentityProviderRoleMappingRepositoryAdapter, KeyRepositoryAdapter, LDAPInjectionKey, LazyWildcardRealmProvisioner, LdapModule, LoggerInjectionKey, LoggerModule, MailInjectionKey, MailModule, MailTemplateRendererInjectionKey, MetricsInjectionKey, ModuleName, OAuth2InjectionToken, OAuth2Module, PermissionDatabaseProvider, PermissionPolicyRepositoryAdapter, PermissionRepositoryAdapter, PolicyRepositoryAdapter, PromAuthFlowMetrics, ProvisionerModule, ProvisioningInjectionKey, RealmRepositoryAdapter, RoleAttributeRepositoryAdapter, RolePermissionRepositoryAdapter, RoleRepositoryAdapter, RuntimeModule, ScopeRepositoryAdapter, SessionRepository, TrustAnchorRepositoryAdapter, UserAttributeRepositoryAdapter, UserAuthenticatorRepositoryAdapter, UserIdentityRepository, UserPermissionRepositoryAdapter, UserRepositoryAdapter, UserRoleRepositoryAdapter, expandToOrigins, getAppOrigins, readConfig, readConfigRaw, readConfigRawFromEnv, readConfigRawFromFS };
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/logger/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC,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,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBpD"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/logger/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC,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,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBpD"}
@@ -15,6 +15,7 @@ var LoggerModule = class {
15
15
  this.dependencies = [ModuleName.CONFIG];
16
16
  }
17
17
  async setup(container) {
18
+ if (container.has(LoggerInjectionKey)) return;
18
19
  const result = container.tryResolve(ConfigInjectionKey);
19
20
  if (!result.success || !result.data.logger) {
20
21
  container.register(LoggerInjectionKey, { useFactory: createNoopLogger });
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["createLogger","createNoopLogger","ModuleName","ConfigInjectionKey","LoggerInjectionKey","LoggerModule","name","dependencies","LOGGER","CONFIG","setup","container","result","tryResolve","success","data","logger","register","useFactory","env","directory","writableDirectoryPath"],"sources":["../../../../src/app/modules/logger/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createLogger, createNoopLogger } from '@authup/server-kit';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport { LoggerInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\n\nexport class LoggerModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.LOGGER;\n this.dependencies = [ModuleName.CONFIG];\n }\n\n async setup(container: IContainer): Promise<void> {\n const result = container.tryResolve(ConfigInjectionKey);\n if (!result.success || !result.data.logger) {\n container.register(LoggerInjectionKey, { useFactory: createNoopLogger });\n\n return;\n }\n\n container.register(LoggerInjectionKey, {\n useFactory: () => createLogger({\n env: result.data.env,\n directory: result.data.writableDirectoryPath,\n }),\n });\n }\n\n // ----------------------------------------------------\n}\n"],"mappings":";;;;;;;;;AAcA,IAAaK,eAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAOJ,WAAWM;EACvB,KAAKD,eAAe,CAACL,WAAWO,MAAO;CAC3C;CAEA,MAAMC,MAAMC,WAAsC;EAC9C,MAAMC,SAASD,UAAUE,WAAWV,kBAAAA;EACpC,IAAI,CAACS,OAAOE,WAAW,CAACF,OAAOG,KAAKC,QAAQ;GACxCL,UAAUM,SAASb,oBAAoB,EAAEc,YAAYjB,iBAAiB,CAAA;GAEtE;EACJ;EAEAU,UAAUM,SAASb,oBAAoB,EACnCc,kBAAkBlB,aAAa;GAC3BmB,KAAKP,OAAOG,KAAKI;GACjBC,WAAWR,OAAOG,KAAKM;EAC3B,CAAA,EACJ,CAAA;CACJ;AAGJ"}
1
+ {"version":3,"file":"module.mjs","names":["createLogger","createNoopLogger","ModuleName","ConfigInjectionKey","LoggerInjectionKey","LoggerModule","name","dependencies","LOGGER","CONFIG","setup","container","has","result","tryResolve","success","data","logger","register","useFactory","env","directory","writableDirectoryPath"],"sources":["../../../../src/app/modules/logger/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createLogger, createNoopLogger } from '@authup/server-kit';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport { LoggerInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\n\nexport class LoggerModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.LOGGER;\n this.dependencies = [ModuleName.CONFIG];\n }\n\n async setup(container: IContainer): Promise<void> {\n // A pre-registered logger wins (test injection, mirroring the\n // MailInjectionKey / UIHttpClient pattern), so a fake can capture\n // what the server writes.\n if (container.has(LoggerInjectionKey)) {\n return;\n }\n\n const result = container.tryResolve(ConfigInjectionKey);\n if (!result.success || !result.data.logger) {\n container.register(LoggerInjectionKey, { useFactory: createNoopLogger });\n\n return;\n }\n\n container.register(LoggerInjectionKey, {\n useFactory: () => createLogger({\n env: result.data.env,\n directory: result.data.writableDirectoryPath,\n }),\n });\n }\n\n // ----------------------------------------------------\n}\n"],"mappings":";;;;;;;;;AAcA,IAAaK,eAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAOJ,WAAWM;EACvB,KAAKD,eAAe,CAACL,WAAWO,MAAO;CAC3C;CAEA,MAAMC,MAAMC,WAAsC;EAI9C,IAAIA,UAAUC,IAAIR,kBAAAA,GACd;EAGJ,MAAMS,SAASF,UAAUG,WAAWX,kBAAAA;EACpC,IAAI,CAACU,OAAOE,WAAW,CAACF,OAAOG,KAAKC,QAAQ;GACxCN,UAAUO,SAASd,oBAAoB,EAAEe,YAAYlB,iBAAiB,CAAA;GAEtE;EACJ;EAEAU,UAAUO,SAASd,oBAAoB,EACnCe,kBAAkBnB,aAAa;GAC3BoB,KAAKP,OAAOG,KAAKI;GACjBC,WAAWR,OAAOG,KAAKM;EAC3B,CAAA,EACJ,CAAA;CACJ;AAGJ"}
@@ -1,5 +1,7 @@
1
1
  import type { SessionToken } from '@authup/core-kit';
2
- import type { DataSource, Repository } from 'typeorm';
2
+ import type { IQuery } from '@rapiq/core';
3
+ import type { EntityRepositoryFindManyResult } from '@authup/server-kit';
4
+ import type { DataSource, Repository, SelectQueryBuilder } from 'typeorm';
3
5
  import { SessionTokenEntity } from '../../../../../adapters/database/domains/index.ts';
4
6
  import type { ISessionTokenRepository, SessionTokenCreateInput, SessionTokenRef } from '../../../../../core/index.ts';
5
7
  export declare class SessionTokenRepositoryAdapter implements ISessionTokenRepository {
@@ -12,6 +14,28 @@ export declare class SessionTokenRepositoryAdapter implements ISessionTokenRepos
12
14
  hasConsumedChild(parentId: string): Promise<boolean>;
13
15
  revokeById(id: string, at: string): Promise<void>;
14
16
  revokeBySessionId(sessionId: string, at: string): Promise<SessionTokenRef[]>;
17
+ /**
18
+ * Join the session and pin the columns authorization reads.
19
+ *
20
+ * A token row carries no realm or subject, so `SessionTokenService`
21
+ * resolves both through `session`. The join is unconditional and the three
22
+ * columns are selected regardless of the client's `fields` projection, so
23
+ * a projection cannot neutralize the gate the way a stripped `realmId`
24
+ * once could on the entity repositories (plan 039).
25
+ */
26
+ protected joinSessionForGate(qb: SelectQueryBuilder<SessionTokenEntity>): void;
27
+ /**
28
+ * Always expose only a client SUMMARY (id / name / displayName) on the
29
+ * read paths — the consent-list shape. `client` is deliberately absent
30
+ * from the schema's relations allow-list, so a raw `?include=client`
31
+ * cannot force the full-column join (redirect patterns, grant types,
32
+ * secret storage flags, accessPolicyId), while a self-service reader
33
+ * without CLIENT_READ still gets the application name per token row.
34
+ */
35
+ protected joinClientSummary(qb: SelectQueryBuilder<SessionTokenEntity>): void;
36
+ findMany(query: IQuery): Promise<EntityRepositoryFindManyResult<SessionToken>>;
37
+ findOneWithSessionById(id: string): Promise<SessionToken | null>;
38
+ findAllByQuery(query: IQuery): Promise<SessionToken[]>;
15
39
  deleteExpired(before: string): Promise<number>;
16
40
  }
17
41
  //# sourceMappingURL=repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../../src/app/modules/oauth2/repositories/session-token/repository.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,KAAK,EACR,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,6BAA8B,YAAW,uBAAuB;IACzE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;gBAEzC,UAAU,EAAE,UAAU;IAI5B,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IAyB7D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIrD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI3D,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa7D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAsB5E,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAKvD"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../../src/app/modules/oauth2/repositories/session-token/repository.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAGvF,OAAO,KAAK,EACR,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,6BAA8B,YAAW,uBAAuB;IACzE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;gBAEzC,UAAU,EAAE,UAAU;IAI5B,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IA0C7D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIrD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI3D,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa7D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBlF;;;;;;;;OAQG;IACH,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,kBAAkB,CAAC,kBAAkB,CAAC;IAavE;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,CAAC,kBAAkB,CAAC;IAShE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC;IAmB9E,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAUhE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAUtD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAKvD"}
@@ -3,6 +3,11 @@ import "node:url";
3
3
  import.meta.url;
4
4
  import { SessionTokenEntity } from "../../../../../adapters/database/domains/session-token/entity.mjs";
5
5
  import "../../../../../adapters/database/domains/index.mjs";
6
+ import { SessionTokenRelationMissingError } from "../../../../../core/oauth2/session-token/error.mjs";
7
+ import "../../../../../core/index.mjs";
8
+ import { applyQuery, redactFieldConditions } from "../../../database/repositories/query.mjs";
9
+ import { isForeignKeyConstraintDatabaseError } from "../../../../../adapters/database/errors/driver.mjs";
10
+ import "../../../../../adapters/database/errors/index.mjs";
6
11
  import { In, LessThan } from "typeorm";
7
12
  //#region src/app/modules/oauth2/repositories/session-token/repository.ts
8
13
  var SessionTokenRepositoryAdapter = class {
@@ -14,6 +19,7 @@ var SessionTokenRepositoryAdapter = class {
14
19
  const entity = this.repository.create({
15
20
  id: input.id,
16
21
  sessionId: input.sessionId,
22
+ clientId: input.clientId ?? null,
17
23
  kind: input.kind,
18
24
  parentId: input.parentId ?? null,
19
25
  refreshTokenId: input.refreshTokenId ?? null,
@@ -23,7 +29,12 @@ var SessionTokenRepositoryAdapter = class {
23
29
  revokedAt: null,
24
30
  expiresAt: input.expiresAt
25
31
  });
26
- await this.repository.insert(entity);
32
+ try {
33
+ await this.repository.insert(entity);
34
+ } catch (e) {
35
+ if (isForeignKeyConstraintDatabaseError(e)) throw new SessionTokenRelationMissingError();
36
+ throw e;
37
+ }
27
38
  entity.createdAt = entity.createdAt ?? (/* @__PURE__ */ new Date()).toISOString();
28
39
  return entity;
29
40
  }
@@ -56,6 +67,64 @@ var SessionTokenRepositoryAdapter = class {
56
67
  if (refs.length > 0) await this.repository.createQueryBuilder().update(SessionTokenEntity).set({ revokedAt: at }).where({ id: In(refs.map((ref) => ref.id)) }).andWhere("revokedAt IS NULL").execute();
57
68
  return refs;
58
69
  }
70
+ /**
71
+ * Join the session and pin the columns authorization reads.
72
+ *
73
+ * A token row carries no realm or subject, so `SessionTokenService`
74
+ * resolves both through `session`. The join is unconditional and the three
75
+ * columns are selected regardless of the client's `fields` projection, so
76
+ * a projection cannot neutralize the gate the way a stripped `realmId`
77
+ * once could on the entity repositories (plan 039).
78
+ */ joinSessionForGate(qb) {
79
+ if (!qb.expressionMap.joinAttributes.some((join) => join.alias.name === "session")) qb.leftJoin("sessionToken.session", "session");
80
+ qb.addSelect([
81
+ "session.id",
82
+ "session.sub",
83
+ "session.subKind",
84
+ "session.realmId"
85
+ ]);
86
+ }
87
+ /**
88
+ * Always expose only a client SUMMARY (id / name / displayName) on the
89
+ * read paths — the consent-list shape. `client` is deliberately absent
90
+ * from the schema's relations allow-list, so a raw `?include=client`
91
+ * cannot force the full-column join (redirect patterns, grant types,
92
+ * secret storage flags, accessPolicyId), while a self-service reader
93
+ * without CLIENT_READ still gets the application name per token row.
94
+ */ joinClientSummary(qb) {
95
+ qb.leftJoin("sessionToken.client", "client");
96
+ qb.addSelect([
97
+ "client.id",
98
+ "client.name",
99
+ "client.displayName"
100
+ ]);
101
+ }
102
+ async findMany(query) {
103
+ const qb = this.repository.createQueryBuilder("sessionToken");
104
+ const { pagination } = applyQuery(qb, query);
105
+ this.joinSessionForGate(qb);
106
+ this.joinClientSummary(qb);
107
+ const [entities, total] = await qb.getManyAndCount();
108
+ return {
109
+ data: redactFieldConditions(query, entities),
110
+ meta: {
111
+ total,
112
+ ...pagination
113
+ }
114
+ };
115
+ }
116
+ async findOneWithSessionById(id) {
117
+ const qb = this.repository.createQueryBuilder("sessionToken").where("sessionToken.id = :id", { id });
118
+ this.joinSessionForGate(qb);
119
+ this.joinClientSummary(qb);
120
+ return qb.getOne();
121
+ }
122
+ async findAllByQuery(query) {
123
+ const qb = this.repository.createQueryBuilder("sessionToken");
124
+ applyQuery(qb, query);
125
+ this.joinSessionForGate(qb);
126
+ return qb.getMany();
127
+ }
59
128
  async deleteExpired(before) {
60
129
  return (await this.repository.delete({ expiresAt: LessThan(before) })).affected ?? 0;
61
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository.mjs","names":["In","LessThan","SessionTokenEntity","SessionTokenRepositoryAdapter","repository","dataSource","getRepository","create","input","entity","id","sessionId","kind","parentId","refreshTokenId","ipAddress","userAgent","consumedAt","revokedAt","expiresAt","insert","createdAt","Date","toISOString","findOneById","findOne","where","findBySessionId","find","markRefreshConsumed","at","result","createQueryBuilder","update","set","andWhere","execute","affected","hasConsumedChild","count","getCount","revokeById","revokeBySessionId","rows","select","refs","map","row","length","ref","deleteExpired","before","delete"],"sources":["../../../../../../src/app/modules/oauth2/repositories/session-token/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { SessionToken } from '@authup/core-kit';\nimport type { DataSource, Repository } from 'typeorm';\nimport { In, LessThan } from 'typeorm';\nimport { SessionTokenEntity } from '../../../../../adapters/database/domains/index.ts';\nimport type {\n ISessionTokenRepository,\n SessionTokenCreateInput,\n SessionTokenRef,\n} from '../../../../../core/index.ts';\n\nexport class SessionTokenRepositoryAdapter implements ISessionTokenRepository {\n protected repository: Repository<SessionTokenEntity>;\n\n constructor(dataSource: DataSource) {\n this.repository = dataSource.getRepository(SessionTokenEntity);\n }\n\n async create(input: SessionTokenCreateInput): Promise<SessionToken> {\n const entity = this.repository.create({\n id: input.id,\n sessionId: input.sessionId,\n kind: input.kind,\n parentId: input.parentId ?? null,\n refreshTokenId: input.refreshTokenId ?? null,\n ipAddress: input.ipAddress,\n userAgent: input.userAgent,\n consumedAt: null,\n revokedAt: null,\n expiresAt: input.expiresAt,\n });\n\n await this.repository.insert(entity);\n\n // insert() does not hydrate @CreateDateColumn back onto the in-memory\n // entity (the DB fills created_at via its DEFAULT). Stamp it so the\n // returned object satisfies the SessionToken contract instead of\n // carrying an undefined createdAt.\n entity.createdAt = entity.createdAt ?? new Date().toISOString();\n\n return entity;\n }\n\n async findOneById(id: string): Promise<SessionToken | null> {\n return this.repository.findOne({ where: { id } });\n }\n\n async findBySessionId(sessionId: string): Promise<SessionToken[]> {\n return this.repository.find({ where: { sessionId } });\n }\n\n async markRefreshConsumed(id: string, at: string): Promise<boolean> {\n const result = await this.repository.createQueryBuilder()\n .update(SessionTokenEntity)\n .set({ consumedAt: at })\n .where('id = :id', { id })\n .andWhere('kind = :kind', { kind: 'refresh' })\n .andWhere('consumedAt IS NULL')\n .andWhere('revokedAt IS NULL')\n .execute();\n\n return (result.affected ?? 0) > 0;\n }\n\n async hasConsumedChild(parentId: string): Promise<boolean> {\n const count = await this.repository.createQueryBuilder('sessionToken')\n .where('sessionToken.parentId = :parentId', { parentId })\n .andWhere('sessionToken.consumedAt IS NOT NULL')\n .getCount();\n\n return count > 0;\n }\n\n async revokeById(id: string, at: string): Promise<void> {\n await this.repository.createQueryBuilder()\n .update(SessionTokenEntity)\n .set({ revokedAt: at })\n .where('id = :id', { id })\n .andWhere('revokedAt IS NULL')\n .execute();\n }\n\n async revokeBySessionId(sessionId: string, at: string): Promise<SessionTokenRef[]> {\n const rows = await this.repository.find({\n where: { sessionId },\n select: { id: true, expiresAt: true },\n });\n\n const refs: SessionTokenRef[] = rows.map((row) => ({\n id: row.id,\n expiresAt: row.expiresAt,\n }));\n if (refs.length > 0) {\n await this.repository.createQueryBuilder()\n .update(SessionTokenEntity)\n .set({ revokedAt: at })\n .where({ id: In(refs.map((ref) => ref.id)) })\n .andWhere('revokedAt IS NULL')\n .execute();\n }\n\n return refs;\n }\n\n async deleteExpired(before: string): Promise<number> {\n const result = await this.repository.delete({ expiresAt: LessThan(before) });\n\n return result.affected ?? 0;\n }\n}\n"],"mappings":";;;;;;;AAiBA,IAAaG,gCAAb,MAAaA;CACCC;CAEV,YAAYC,YAAwB;EAChC,KAAKD,aAAaC,WAAWC,cAAcJ,kBAAAA;CAC/C;CAEA,MAAMK,OAAOC,OAAuD;EAChE,MAAMC,SAAS,KAAKL,WAAWG,OAAO;GAClCG,IAAIF,MAAME;GACVC,WAAWH,MAAMG;GACjBC,MAAMJ,MAAMI;GACZC,UAAUL,MAAMK,YAAY;GAC5BC,gBAAgBN,MAAMM,kBAAkB;GACxCC,WAAWP,MAAMO;GACjBC,WAAWR,MAAMQ;GACjBC,YAAY;GACZC,WAAW;GACXC,WAAWX,MAAMW;EACrB,CAAA;EAEA,MAAM,KAAKf,WAAWgB,OAAOX,MAAAA;EAM7BA,OAAOY,YAAYZ,OAAOY,8BAAa,IAAIC,KAAAA,EAAAA,CAAOC,YAAW;EAE7D,OAAOd;CACX;CAEA,MAAMe,YAAYd,IAA0C;EACxD,OAAO,KAAKN,WAAWqB,QAAQ,EAAEC,OAAO,EAAEhB,GAAG,EAAE,CAAA;CACnD;CAEA,MAAMiB,gBAAgBhB,WAA4C;EAC9D,OAAO,KAAKP,WAAWwB,KAAK,EAAEF,OAAO,EAAEf,UAAU,EAAE,CAAA;CACvD;CAEA,MAAMkB,oBAAoBnB,IAAYoB,IAA8B;EAUhE,SAAQC,MATa,KAAK3B,WAAW4B,mBAAkB,CAAA,CAClDC,OAAO/B,kBAAAA,CAAAA,CACPgC,IAAI,EAAEjB,YAAYa,GAAG,CAAA,CAAA,CACrBJ,MAAM,YAAY,EAAEhB,GAAG,CAAA,CAAA,CACvByB,SAAS,gBAAgB,EAAEvB,MAAM,UAAU,CAAA,CAAA,CAC3CuB,SAAS,oBAAA,CAAA,CACTA,SAAS,mBAAA,CAAA,CACTC,QAAO,EAAA,CAEGC,YAAY,KAAK;CACpC;CAEA,MAAMC,iBAAiBzB,UAAoC;EAMvD,OAAO0B,MALa,KAAKnC,WAAW4B,mBAAmB,cAAA,CAAA,CAClDN,MAAM,qCAAqC,EAAEb,SAAS,CAAA,CAAA,CACtDsB,SAAS,qCAAA,CAAA,CACTK,SAAQ,IAEE;CACnB;CAEA,MAAMC,WAAW/B,IAAYoB,IAA2B;EACpD,MAAM,KAAK1B,WAAW4B,mBAAkB,CAAA,CACnCC,OAAO/B,kBAAAA,CAAAA,CACPgC,IAAI,EAAEhB,WAAWY,GAAG,CAAA,CAAA,CACpBJ,MAAM,YAAY,EAAEhB,GAAG,CAAA,CAAA,CACvByB,SAAS,mBAAA,CAAA,CACTC,QAAO;CAChB;CAEA,MAAMM,kBAAkB/B,WAAmBmB,IAAwC;EAM/E,MAAMe,QAA0BF,MALb,KAAKvC,WAAWwB,KAAK;GACpCF,OAAO,EAAEf,UAAU;GACnBiC,QAAQ;IAAElC,IAAI;IAAMS,WAAW;GAAK;EACxC,CAAA,EAAA,CAEqC2B,KAAKC,SAAS;GAC/CrC,IAAIqC,IAAIrC;GACRS,WAAW4B,IAAI5B;EACnB,EAAA;EACA,IAAI0B,KAAKG,SAAS,GACd,MAAM,KAAK5C,WAAW4B,mBAAkB,CAAA,CACnCC,OAAO/B,kBAAAA,CAAAA,CACPgC,IAAI,EAAEhB,WAAWY,GAAG,CAAA,CAAA,CACpBJ,MAAM,EAAEhB,IAAIV,GAAG6C,KAAKC,KAAKG,QAAQA,IAAIvC,EAAE,CAAA,EAAG,CAAA,CAAA,CAC1CyB,SAAS,mBAAA,CAAA,CACTC,QAAO;EAGhB,OAAOS;CACX;CAEA,MAAMK,cAAcC,QAAiC;EAGjD,QAAOpB,MAFc,KAAK3B,WAAWgD,OAAO,EAAEjC,WAAWlB,SAASkD,MAAAA,EAAQ,CAAA,EAAA,CAE5Dd,YAAY;CAC9B;AACJ"}
1
+ {"version":3,"file":"repository.mjs","names":["In","LessThan","applyQuery","redactFieldConditions","SessionTokenEntity","isForeignKeyConstraintDatabaseError","SessionTokenRelationMissingError","SessionTokenRepositoryAdapter","repository","dataSource","getRepository","create","input","entity","id","sessionId","clientId","kind","parentId","refreshTokenId","ipAddress","userAgent","consumedAt","revokedAt","expiresAt","insert","e","createdAt","Date","toISOString","findOneById","findOne","where","findBySessionId","find","markRefreshConsumed","at","result","createQueryBuilder","update","set","andWhere","execute","affected","hasConsumedChild","count","getCount","revokeById","revokeBySessionId","rows","select","refs","map","row","length","ref","joinSessionForGate","qb","expressionMap","joinAttributes","some","join","alias","name","leftJoin","addSelect","joinClientSummary","findMany","query","pagination","entities","total","getManyAndCount","data","meta","findOneWithSessionById","getOne","findAllByQuery","getMany","deleteExpired","before","delete"],"sources":["../../../../../../src/app/modules/oauth2/repositories/session-token/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { SessionToken } from '@authup/core-kit';\nimport type { IQuery } from '@rapiq/core';\nimport type { EntityRepositoryFindManyResult } from '@authup/server-kit';\nimport type { DataSource, Repository, SelectQueryBuilder } from 'typeorm';\nimport { In, LessThan } from 'typeorm';\nimport { applyQuery, redactFieldConditions } from '../../../database/repositories/query.ts';\nimport { SessionTokenEntity } from '../../../../../adapters/database/domains/index.ts';\nimport { isForeignKeyConstraintDatabaseError } from '../../../../../adapters/database/errors/index.ts';\nimport { SessionTokenRelationMissingError } from '../../../../../core/index.ts';\nimport type {\n ISessionTokenRepository,\n SessionTokenCreateInput,\n SessionTokenRef,\n} from '../../../../../core/index.ts';\n\nexport class SessionTokenRepositoryAdapter implements ISessionTokenRepository {\n protected repository: Repository<SessionTokenEntity>;\n\n constructor(dataSource: DataSource) {\n this.repository = dataSource.getRepository(SessionTokenEntity);\n }\n\n async create(input: SessionTokenCreateInput): Promise<SessionToken> {\n const entity = this.repository.create({\n id: input.id,\n sessionId: input.sessionId,\n clientId: input.clientId ?? null,\n kind: input.kind,\n parentId: input.parentId ?? null,\n refreshTokenId: input.refreshTokenId ?? null,\n ipAddress: input.ipAddress,\n userAgent: input.userAgent,\n consumedAt: null,\n revokedAt: null,\n expiresAt: input.expiresAt,\n });\n\n try {\n await this.repository.insert(entity);\n } catch (e) {\n // A rejection means one of the two parents was deleted between the\n // caller resolving it and this write: the session (a concurrent\n // replay reaction, logout, force-logout or sweep) or the client the\n // token is attributed to. Both cascade onto this table, so either\n // way the token rows are already gone and the caller's answer is the\n // same, which is why the error names neither. Report that condition\n // instead of letting a driver error escape as an unhandled internal\n // error (issue #3435).\n if (isForeignKeyConstraintDatabaseError(e)) {\n throw new SessionTokenRelationMissingError();\n }\n\n throw e;\n }\n\n // insert() does not hydrate @CreateDateColumn back onto the in-memory\n // entity (the DB fills created_at via its DEFAULT). Stamp it so the\n // returned object satisfies the SessionToken contract instead of\n // carrying an undefined createdAt.\n entity.createdAt = entity.createdAt ?? new Date().toISOString();\n\n return entity;\n }\n\n async findOneById(id: string): Promise<SessionToken | null> {\n return this.repository.findOne({ where: { id } });\n }\n\n async findBySessionId(sessionId: string): Promise<SessionToken[]> {\n return this.repository.find({ where: { sessionId } });\n }\n\n async markRefreshConsumed(id: string, at: string): Promise<boolean> {\n const result = await this.repository.createQueryBuilder()\n .update(SessionTokenEntity)\n .set({ consumedAt: at })\n .where('id = :id', { id })\n .andWhere('kind = :kind', { kind: 'refresh' })\n .andWhere('consumedAt IS NULL')\n .andWhere('revokedAt IS NULL')\n .execute();\n\n return (result.affected ?? 0) > 0;\n }\n\n async hasConsumedChild(parentId: string): Promise<boolean> {\n const count = await this.repository.createQueryBuilder('sessionToken')\n .where('sessionToken.parentId = :parentId', { parentId })\n .andWhere('sessionToken.consumedAt IS NOT NULL')\n .getCount();\n\n return count > 0;\n }\n\n async revokeById(id: string, at: string): Promise<void> {\n await this.repository.createQueryBuilder()\n .update(SessionTokenEntity)\n .set({ revokedAt: at })\n .where('id = :id', { id })\n .andWhere('revokedAt IS NULL')\n .execute();\n }\n\n async revokeBySessionId(sessionId: string, at: string): Promise<SessionTokenRef[]> {\n const rows = await this.repository.find({\n where: { sessionId },\n select: { id: true, expiresAt: true },\n });\n\n const refs: SessionTokenRef[] = rows.map((row) => ({\n id: row.id,\n expiresAt: row.expiresAt,\n }));\n if (refs.length > 0) {\n await this.repository.createQueryBuilder()\n .update(SessionTokenEntity)\n .set({ revokedAt: at })\n .where({ id: In(refs.map((ref) => ref.id)) })\n .andWhere('revokedAt IS NULL')\n .execute();\n }\n\n return refs;\n }\n\n /**\n * Join the session and pin the columns authorization reads.\n *\n * A token row carries no realm or subject, so `SessionTokenService`\n * resolves both through `session`. The join is unconditional and the three\n * columns are selected regardless of the client's `fields` projection, so\n * a projection cannot neutralize the gate the way a stripped `realmId`\n * once could on the entity repositories (plan 039).\n */\n protected joinSessionForGate(qb: SelectQueryBuilder<SessionTokenEntity>) {\n if (!qb.expressionMap.joinAttributes.some((join) => join.alias.name === 'session')) {\n qb.leftJoin('sessionToken.session', 'session');\n }\n\n qb.addSelect([\n 'session.id',\n 'session.sub',\n 'session.subKind',\n 'session.realmId',\n ]);\n }\n\n /**\n * Always expose only a client SUMMARY (id / name / displayName) on the\n * read paths — the consent-list shape. `client` is deliberately absent\n * from the schema's relations allow-list, so a raw `?include=client`\n * cannot force the full-column join (redirect patterns, grant types,\n * secret storage flags, accessPolicyId), while a self-service reader\n * without CLIENT_READ still gets the application name per token row.\n */\n protected joinClientSummary(qb: SelectQueryBuilder<SessionTokenEntity>) {\n qb.leftJoin('sessionToken.client', 'client');\n qb.addSelect([\n 'client.id',\n 'client.name',\n 'client.displayName',\n ]);\n }\n\n async findMany(query: IQuery): Promise<EntityRepositoryFindManyResult<SessionToken>> {\n const qb = this.repository.createQueryBuilder('sessionToken');\n\n const { pagination } = applyQuery(qb, query);\n\n this.joinSessionForGate(qb);\n this.joinClientSummary(qb);\n\n const [entities, total] = await qb.getManyAndCount();\n\n return {\n data: redactFieldConditions(query, entities),\n meta: {\n total,\n ...pagination,\n },\n };\n }\n\n async findOneWithSessionById(id: string): Promise<SessionToken | null> {\n const qb = this.repository.createQueryBuilder('sessionToken')\n .where('sessionToken.id = :id', { id });\n\n this.joinSessionForGate(qb);\n this.joinClientSummary(qb);\n\n return qb.getOne();\n }\n\n async findAllByQuery(query: IQuery): Promise<SessionToken[]> {\n const qb = this.repository.createQueryBuilder('sessionToken');\n\n applyQuery(qb, query);\n\n this.joinSessionForGate(qb);\n\n return qb.getMany();\n }\n\n async deleteExpired(before: string): Promise<number> {\n const result = await this.repository.delete({ expiresAt: LessThan(before) });\n\n return result.affected ?? 0;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { TypedToken } from 'eldin';
2
+ import type { IRealmProvisioner } from '../../../core/index.ts';
3
+ export declare const ProvisioningInjectionKey: {
4
+ /**
5
+ * Registered by ProvisionerModule.setup iff the loaded provisioning
6
+ * data carries a wildcard realm entry. Resolved lazily (request time)
7
+ * by the realm controller factory, so the HTTP module never depends
8
+ * on provisioning-module boot order.
9
+ */
10
+ readonly WildcardRealmProvisioner: TypedToken<IRealmProvisioner>;
11
+ };
12
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/provisioning/constants.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,eAAO,MAAM,wBAAwB;IACjC;;;;;OAKG;;CAEG,CAAC"}
@@ -0,0 +1,16 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { TypedToken } from "eldin";
5
+ //#region src/app/modules/provisioning/constants.ts
6
+ const ProvisioningInjectionKey = {
7
+ /**
8
+ * Registered by ProvisionerModule.setup iff the loaded provisioning
9
+ * data carries a wildcard realm entry. Resolved lazily (request time)
10
+ * by the realm controller factory, so the HTTP module never depends
11
+ * on provisioning-module boot order.
12
+ */ WildcardRealmProvisioner: new TypedToken("WildcardRealmProvisioner") };
13
+ //#endregion
14
+ export { ProvisioningInjectionKey };
15
+
16
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","names":["TypedToken","ProvisioningInjectionKey","WildcardRealmProvisioner"],"sources":["../../../../src/app/modules/provisioning/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type { IRealmProvisioner } from '../../../core/index.ts';\n\nexport const ProvisioningInjectionKey = {\n /**\n * Registered by ProvisionerModule.setup iff the loaded provisioning\n * data carries a wildcard realm entry. Resolved lazily (request time)\n * by the realm controller factory, so the HTTP module never depends\n * on provisioning-module boot order.\n */\n WildcardRealmProvisioner: new TypedToken<IRealmProvisioner>('WildcardRealmProvisioner'),\n} as const;\n"],"mappings":";;;;;AAUA,MAAaC,2BAA2B;;;;;;GAOpCC,0BAA0B,IAAIF,WAA8B,0BAAA,EAChE"}
@@ -1,3 +1,5 @@
1
+ export * from './constants.ts';
2
+ export * from './lazy-wildcard.ts';
1
3
  export * from './sources/index.ts';
2
4
  export * from './module.ts';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/provisioning/index.ts"],"names":[],"mappings":"AAOA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/provisioning/index.ts"],"names":[],"mappings":"AAOA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { ProvisioningInjectionKey } from "./constants.mjs";
5
+ import { LazyWildcardRealmProvisioner } from "./lazy-wildcard.mjs";
4
6
  import { DefaultProvisioningSource } from "./sources/default/module.mjs";
5
7
  import { CompositeProvisioningSource } from "./sources/composite/module.mjs";
6
8
  import { FileProvisioningSource } from "./sources/file/module.mjs";
7
9
  import "./sources/index.mjs";
8
10
  import { ProvisionerModule } from "./module.mjs";
9
- export { CompositeProvisioningSource, DefaultProvisioningSource, FileProvisioningSource, ProvisionerModule };
11
+ export { CompositeProvisioningSource, DefaultProvisioningSource, FileProvisioningSource, LazyWildcardRealmProvisioner, ProvisionerModule, ProvisioningInjectionKey };
@@ -0,0 +1,15 @@
1
+ import type { Realm } from '@authup/core-kit';
2
+ import type { IContainer } from 'eldin';
3
+ import type { IRealmProvisioner } from '../../../core/index.ts';
4
+ /**
5
+ * The wildcard realm provisioner is registered by ProvisionerModule AFTER
6
+ * the async provisioning-source load, and the HTTP module does not depend
7
+ * on the provisioning module's boot order — resolve it lazily at request
8
+ * time. No wildcard entry declared => no-op.
9
+ */
10
+ export declare class LazyWildcardRealmProvisioner implements IRealmProvisioner {
11
+ protected container: IContainer;
12
+ constructor(container: IContainer);
13
+ ensureForRealm(realm: Realm): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=lazy-wildcard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-wildcard.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/provisioning/lazy-wildcard.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE;;;;;GAKG;AACH,qBAAa,4BAA6B,YAAW,iBAAiB;IAClE,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;gBAEpB,SAAS,EAAE,UAAU;IAI3B,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAOpD"}