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

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 (742) hide show
  1. package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
  2. package/dist/adapters/database/data-source/options/module.mjs +18 -8
  3. package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client/entity.d.ts +5 -2
  5. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  6. package/dist/adapters/database/domains/client/entity.mjs +28 -4
  7. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  8. package/dist/adapters/database/domains/client-permission/entity.mjs +2 -2
  9. package/dist/adapters/database/domains/consent/entity.d.ts +20 -0
  10. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -0
  11. package/dist/adapters/database/domains/consent/entity.mjs +110 -0
  12. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -0
  13. package/dist/adapters/database/domains/consent/index.d.ts +3 -0
  14. package/dist/adapters/database/domains/consent/index.d.ts.map +1 -0
  15. package/dist/adapters/database/domains/consent/index.mjs +6 -0
  16. package/dist/adapters/database/domains/consent/subscriber.d.ts +6 -0
  17. package/dist/adapters/database/domains/consent/subscriber.d.ts.map +1 -0
  18. package/dist/adapters/database/domains/consent/subscriber.mjs +45 -0
  19. package/dist/adapters/database/domains/consent/subscriber.mjs.map +1 -0
  20. package/dist/adapters/database/domains/constants.d.ts +1 -0
  21. package/dist/adapters/database/domains/constants.d.ts.map +1 -1
  22. package/dist/adapters/database/domains/constants.mjs +1 -0
  23. package/dist/adapters/database/domains/constants.mjs.map +1 -1
  24. package/dist/adapters/database/domains/event/entity.d.ts +22 -0
  25. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -0
  26. package/dist/adapters/database/domains/event/entity.mjs +174 -0
  27. package/dist/adapters/database/domains/event/entity.mjs.map +1 -0
  28. package/dist/adapters/database/domains/event/index.d.ts +2 -0
  29. package/dist/adapters/database/domains/event/index.d.ts.map +1 -0
  30. package/dist/adapters/database/domains/event/index.mjs +5 -0
  31. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +2 -2
  32. package/dist/adapters/database/domains/index.d.ts +4 -0
  33. package/dist/adapters/database/domains/index.d.ts.map +1 -1
  34. package/dist/adapters/database/domains/index.mjs +24 -15
  35. package/dist/adapters/database/domains/key/entity.d.ts +7 -3
  36. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  37. package/dist/adapters/database/domains/key/entity.mjs +35 -10
  38. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  39. package/dist/adapters/database/domains/permission-policy/entity.mjs +2 -2
  40. package/dist/adapters/database/domains/policy/repository.d.ts.map +1 -1
  41. package/dist/adapters/database/domains/policy/repository.mjs +3 -3
  42. package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
  43. package/dist/adapters/database/domains/robot-permission/entity.mjs +2 -2
  44. package/dist/adapters/database/domains/role/repository.mjs +1 -1
  45. package/dist/adapters/database/domains/role-permission/entity.mjs +2 -2
  46. package/dist/adapters/database/domains/session/entity.d.ts +3 -1
  47. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  48. package/dist/adapters/database/domains/session/entity.mjs +12 -0
  49. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  50. package/dist/adapters/database/domains/trust-anchor/entity.d.ts +13 -0
  51. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -0
  52. package/dist/adapters/database/domains/trust-anchor/entity.mjs +55 -0
  53. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -0
  54. package/dist/adapters/database/domains/trust-anchor/index.d.ts +2 -0
  55. package/dist/adapters/database/domains/trust-anchor/index.d.ts.map +1 -0
  56. package/dist/adapters/database/domains/trust-anchor/index.mjs +5 -0
  57. package/dist/adapters/database/domains/user-authenticator/entity.d.ts +20 -0
  58. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -0
  59. package/dist/adapters/database/domains/user-authenticator/entity.mjs +98 -0
  60. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -0
  61. package/dist/adapters/database/domains/user-authenticator/index.d.ts +2 -0
  62. package/dist/adapters/database/domains/user-authenticator/index.d.ts.map +1 -0
  63. package/dist/adapters/database/domains/user-authenticator/index.mjs +5 -0
  64. package/dist/adapters/database/domains/user-permission/entity.mjs +1 -1
  65. package/dist/adapters/database/errors/driver.d.ts +14 -0
  66. package/dist/adapters/database/errors/driver.d.ts.map +1 -0
  67. package/dist/adapters/database/errors/driver.mjs +32 -0
  68. package/dist/adapters/database/errors/driver.mjs.map +1 -0
  69. package/dist/adapters/database/errors/index.d.ts +1 -0
  70. package/dist/adapters/database/errors/index.d.ts.map +1 -1
  71. package/dist/adapters/database/errors/index.mjs +2 -1
  72. package/dist/adapters/database/index.mjs +17 -11
  73. package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts +50 -0
  74. package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts.map +1 -0
  75. package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs +320 -0
  76. package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs.map +1 -0
  77. package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts +50 -0
  78. package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts.map +1 -0
  79. package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs +310 -0
  80. package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs.map +1 -0
  81. package/dist/adapters/database/subscriber/module.d.ts +1 -1
  82. package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
  83. package/dist/adapters/database/subscriber/module.mjs +4 -3
  84. package/dist/adapters/database/subscriber/module.mjs.map +1 -1
  85. package/dist/adapters/http/adapters/index.mjs +2 -1
  86. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +4 -1
  87. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
  88. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +27 -2
  89. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  90. package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts +9 -1
  91. package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts.map +1 -1
  92. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +4 -1
  93. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
  94. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +23 -3
  95. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  96. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts +4 -3
  97. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  98. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +13 -6
  99. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  100. package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +2 -1
  101. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +38 -2
  102. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
  103. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +119 -6
  104. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  105. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -0
  106. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
  107. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +16 -3
  108. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  109. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +14 -3
  110. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  111. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts +5 -0
  112. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts.map +1 -0
  113. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs +18 -0
  114. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs.map +1 -0
  115. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +1 -1
  116. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +1 -1
  117. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts +1 -0
  118. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts.map +1 -1
  119. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.mjs +2 -1
  120. package/dist/adapters/http/adapters/oauth2/index.mjs +2 -1
  121. package/dist/adapters/http/controllers/entities/consent/index.d.ts +2 -0
  122. package/dist/adapters/http/controllers/entities/consent/index.d.ts.map +1 -0
  123. package/dist/adapters/http/controllers/entities/consent/index.mjs +5 -0
  124. package/dist/adapters/http/controllers/entities/consent/module.d.ts +15 -0
  125. package/dist/adapters/http/controllers/entities/consent/module.d.ts.map +1 -0
  126. package/dist/adapters/http/controllers/entities/consent/module.mjs +82 -0
  127. package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -0
  128. package/dist/adapters/http/controllers/entities/event/index.d.ts +2 -0
  129. package/dist/adapters/http/controllers/entities/event/index.d.ts.map +1 -0
  130. package/dist/adapters/http/controllers/entities/event/index.mjs +5 -0
  131. package/dist/adapters/http/controllers/entities/event/module.d.ts +14 -0
  132. package/dist/adapters/http/controllers/entities/event/module.d.ts.map +1 -0
  133. package/dist/adapters/http/controllers/entities/event/module.mjs +68 -0
  134. package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -0
  135. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +4 -1
  136. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  137. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +38 -10
  138. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  139. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +3 -1
  140. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
  141. package/dist/adapters/http/controllers/entities/index.d.ts +5 -0
  142. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  143. package/dist/adapters/http/controllers/entities/index.mjs +11 -1
  144. package/dist/adapters/http/controllers/entities/key/index.d.ts +2 -0
  145. package/dist/adapters/http/controllers/entities/key/index.d.ts.map +1 -0
  146. package/dist/adapters/http/controllers/entities/key/index.mjs +5 -0
  147. package/dist/adapters/http/controllers/entities/key/module.d.ts +17 -0
  148. package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -0
  149. package/dist/adapters/http/controllers/entities/key/module.mjs +122 -0
  150. package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -0
  151. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs +1 -1
  152. package/dist/adapters/http/controllers/entities/realm/module.d.ts +2 -0
  153. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  154. package/dist/adapters/http/controllers/entities/realm/module.mjs +16 -1
  155. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  156. package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts +2 -0
  157. package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts.map +1 -0
  158. package/dist/adapters/http/controllers/entities/trust-anchor/index.mjs +5 -0
  159. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts +17 -0
  160. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -0
  161. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +120 -0
  162. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -0
  163. package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts +2 -0
  164. package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts.map +1 -0
  165. package/dist/adapters/http/controllers/entities/user-authenticator/index.mjs +5 -0
  166. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts +21 -0
  167. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts.map +1 -0
  168. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +154 -0
  169. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -0
  170. package/dist/adapters/http/controllers/index.mjs +7 -1
  171. package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts +2 -0
  172. package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts.map +1 -0
  173. package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.mjs +5 -0
  174. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts +46 -0
  175. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -0
  176. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +132 -0
  177. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -0
  178. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  179. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +34 -6
  180. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  181. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +17 -1
  182. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
  183. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  184. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  185. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  186. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
  187. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +28 -14
  188. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  189. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
  190. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +28 -14
  191. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  192. package/dist/adapters/http/controllers/workflows/token/module.d.ts +2 -1
  193. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  194. package/dist/adapters/http/controllers/workflows/token/module.mjs +28 -8
  195. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  196. package/dist/adapters/http/controllers/workflows/token/types.d.ts +11 -4
  197. package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
  198. package/dist/adapters/http/index.mjs +13 -3
  199. package/dist/adapters/http/middleware/built-in/assets.mjs +1 -1
  200. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +13 -0
  201. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  202. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +52 -2
  203. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  204. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +2 -0
  205. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
  206. package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
  207. package/dist/adapters/http/middleware/built-in/prometheus.d.ts +12 -1
  208. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  209. package/dist/adapters/http/middleware/built-in/prometheus.mjs +75 -6
  210. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  211. package/dist/adapters/http/middleware/index.mjs +2 -2
  212. package/dist/adapters/http/request/client-certificate.d.ts +5 -0
  213. package/dist/adapters/http/request/client-certificate.d.ts.map +1 -0
  214. package/dist/adapters/http/request/client-certificate.mjs +88 -0
  215. package/dist/adapters/http/request/client-certificate.mjs.map +1 -0
  216. package/dist/adapters/http/request/constants.d.ts +1 -0
  217. package/dist/adapters/http/request/constants.d.ts.map +1 -1
  218. package/dist/adapters/http/request/constants.mjs +6 -1
  219. package/dist/adapters/http/request/constants.mjs.map +1 -1
  220. package/dist/adapters/http/request/event-context.d.ts +19 -0
  221. package/dist/adapters/http/request/event-context.d.ts.map +1 -0
  222. package/dist/adapters/http/request/event-context.mjs +37 -0
  223. package/dist/adapters/http/request/event-context.mjs.map +1 -0
  224. package/dist/adapters/http/request/helpers/index.d.ts +1 -0
  225. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  226. package/dist/adapters/http/request/helpers/index.mjs +2 -1
  227. package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts +16 -0
  228. package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts.map +1 -0
  229. package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs +15 -0
  230. package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs.map +1 -0
  231. package/dist/adapters/http/request/index.d.ts +3 -0
  232. package/dist/adapters/http/request/index.d.ts.map +1 -1
  233. package/dist/adapters/http/request/index.mjs +5 -2
  234. package/dist/adapters/http/request/types.d.ts +3 -0
  235. package/dist/adapters/http/request/types.d.ts.map +1 -0
  236. package/dist/adapters/http/ui/render.mjs +2 -2
  237. package/dist/app/index.mjs +11 -5
  238. package/dist/app/modules/components/module.d.ts.map +1 -1
  239. package/dist/app/modules/components/module.mjs +22 -2
  240. package/dist/app/modules/components/module.mjs.map +1 -1
  241. package/dist/app/modules/config/constants.d.ts +14 -0
  242. package/dist/app/modules/config/constants.d.ts.map +1 -1
  243. package/dist/app/modules/config/constants.mjs +14 -0
  244. package/dist/app/modules/config/constants.mjs.map +1 -1
  245. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  246. package/dist/app/modules/config/normalize.mjs +30 -2
  247. package/dist/app/modules/config/normalize.mjs.map +1 -1
  248. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  249. package/dist/app/modules/config/read/env.mjs +57 -0
  250. package/dist/app/modules/config/read/env.mjs.map +1 -1
  251. package/dist/app/modules/config/types.d.ts +101 -0
  252. package/dist/app/modules/config/types.d.ts.map +1 -1
  253. package/dist/app/modules/config/validator.d.ts.map +1 -1
  254. package/dist/app/modules/config/validator.mjs +16 -0
  255. package/dist/app/modules/config/validator.mjs.map +1 -1
  256. package/dist/app/modules/database/constants.d.ts +3 -0
  257. package/dist/app/modules/database/constants.d.ts.map +1 -1
  258. package/dist/app/modules/database/constants.mjs +3 -1
  259. package/dist/app/modules/database/constants.mjs.map +1 -1
  260. package/dist/app/modules/database/index.mjs +7 -3
  261. package/dist/app/modules/database/module.d.ts +1 -0
  262. package/dist/app/modules/database/module.d.ts.map +1 -1
  263. package/dist/app/modules/database/module.mjs +32 -1
  264. package/dist/app/modules/database/module.mjs.map +1 -1
  265. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  266. package/dist/app/modules/database/repositories/client/repository.mjs +8 -4
  267. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  268. package/dist/app/modules/database/repositories/event/index.d.ts.map +1 -0
  269. package/dist/app/modules/database/repositories/event/index.mjs +5 -0
  270. package/dist/app/modules/database/repositories/event/repository.d.ts +15 -0
  271. package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -0
  272. package/dist/app/modules/database/repositories/event/repository.mjs +113 -0
  273. package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -0
  274. package/dist/app/modules/database/repositories/helpers.d.ts +4 -2
  275. package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
  276. package/dist/app/modules/database/repositories/helpers.mjs +7 -3
  277. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  278. package/dist/app/modules/database/repositories/index.d.ts +4 -0
  279. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  280. package/dist/app/modules/database/repositories/index.mjs +9 -1
  281. package/dist/app/modules/database/repositories/key/index.d.ts +2 -0
  282. package/dist/app/modules/database/repositories/key/index.d.ts.map +1 -0
  283. package/dist/app/modules/database/repositories/key/index.mjs +5 -0
  284. package/dist/app/modules/database/repositories/key/repository.d.ts +50 -0
  285. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -0
  286. package/dist/app/modules/database/repositories/key/repository.mjs +273 -0
  287. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -0
  288. package/dist/app/modules/database/repositories/permission-provider/module.mjs +1 -1
  289. package/dist/app/modules/database/repositories/trust-anchor/index.d.ts +2 -0
  290. package/dist/app/modules/database/repositories/trust-anchor/index.d.ts.map +1 -0
  291. package/dist/app/modules/database/repositories/trust-anchor/index.mjs +5 -0
  292. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts +24 -0
  293. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts.map +1 -0
  294. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +113 -0
  295. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -0
  296. package/dist/app/modules/database/repositories/user-authenticator/index.d.ts +2 -0
  297. package/dist/app/modules/database/repositories/user-authenticator/index.d.ts.map +1 -0
  298. package/dist/app/modules/database/repositories/user-authenticator/index.mjs +5 -0
  299. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts +19 -0
  300. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts.map +1 -0
  301. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +92 -0
  302. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -0
  303. package/dist/app/modules/http/module.d.ts +8 -0
  304. package/dist/app/modules/http/module.d.ts.map +1 -1
  305. package/dist/app/modules/http/module.mjs +19 -1
  306. package/dist/app/modules/http/module.mjs.map +1 -1
  307. package/dist/app/modules/http/modules/controller.d.ts +16 -3
  308. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  309. package/dist/app/modules/http/modules/controller.mjs +186 -15
  310. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  311. package/dist/app/modules/http/modules/middleware.d.ts +1 -0
  312. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  313. package/dist/app/modules/http/modules/middleware.mjs +10 -4
  314. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  315. package/dist/app/modules/identity/module.mjs +2 -2
  316. package/dist/app/modules/index.d.ts +1 -0
  317. package/dist/app/modules/index.d.ts.map +1 -1
  318. package/dist/app/modules/index.mjs +13 -6
  319. package/dist/app/modules/mail/module.d.ts.map +1 -1
  320. package/dist/app/modules/mail/module.mjs +2 -1
  321. package/dist/app/modules/mail/module.mjs.map +1 -1
  322. package/dist/app/modules/metrics/constants.d.ts +4 -0
  323. package/dist/app/modules/metrics/constants.d.ts.map +1 -0
  324. package/dist/app/modules/metrics/constants.mjs +10 -0
  325. package/dist/app/modules/metrics/constants.mjs.map +1 -0
  326. package/dist/app/modules/metrics/index.d.ts +3 -0
  327. package/dist/app/modules/metrics/index.d.ts.map +1 -0
  328. package/dist/app/modules/metrics/index.mjs +6 -0
  329. package/dist/app/modules/metrics/prom.d.ts +15 -0
  330. package/dist/app/modules/metrics/prom.d.ts.map +1 -0
  331. package/dist/app/modules/metrics/prom.mjs +42 -0
  332. package/dist/app/modules/metrics/prom.mjs.map +1 -0
  333. package/dist/app/modules/oauth2/constants.d.ts +9 -2
  334. package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
  335. package/dist/app/modules/oauth2/constants.mjs +7 -1
  336. package/dist/app/modules/oauth2/constants.mjs.map +1 -1
  337. package/dist/app/modules/oauth2/module.d.ts.map +1 -1
  338. package/dist/app/modules/oauth2/module.mjs +23 -4
  339. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  340. package/dist/app/modules/oauth2/repositories/consent/index.d.ts +2 -0
  341. package/dist/app/modules/oauth2/repositories/consent/index.d.ts.map +1 -0
  342. package/dist/app/modules/oauth2/repositories/consent/index.mjs +5 -0
  343. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts +20 -0
  344. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -0
  345. package/dist/app/modules/oauth2/repositories/consent/repository.mjs +116 -0
  346. package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -0
  347. package/dist/app/modules/oauth2/repositories/index.d.ts +1 -1
  348. package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
  349. package/dist/app/modules/oauth2/repositories/index.mjs +3 -3
  350. package/dist/app/modules/oauth2/repositories/token/repository.d.ts +1 -0
  351. package/dist/app/modules/oauth2/repositories/token/repository.d.ts.map +1 -1
  352. package/dist/app/modules/oauth2/repositories/token/repository.mjs +8 -0
  353. package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
  354. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  355. package/dist/app/modules/provisioning/module.mjs +16 -5
  356. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  357. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  358. package/dist/app/modules/provisioning/sources/default/module.mjs +22 -7
  359. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  360. package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
  361. package/dist/app/modules/provisioning/sources/file/module.mjs +12 -2
  362. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  363. package/dist/components/event-cleaner/index.d.ts +2 -0
  364. package/dist/components/event-cleaner/index.d.ts.map +1 -0
  365. package/dist/components/event-cleaner/index.mjs +5 -0
  366. package/dist/components/event-cleaner/module.d.ts +5 -0
  367. package/dist/components/event-cleaner/module.d.ts.map +1 -0
  368. package/dist/components/event-cleaner/module.mjs +30 -0
  369. package/dist/components/event-cleaner/module.mjs.map +1 -0
  370. package/dist/components/index.d.ts +1 -0
  371. package/dist/components/index.d.ts.map +1 -1
  372. package/dist/components/index.mjs +3 -1
  373. package/dist/components/oauth2-cleaner/module.d.ts +2 -1
  374. package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
  375. package/dist/components/oauth2-cleaner/module.mjs +9 -4
  376. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  377. package/dist/core/authentication/credential/entities/client/module.d.ts +1 -1
  378. package/dist/core/authentication/credential/entities/client/module.d.ts.map +1 -1
  379. package/dist/core/authentication/credential/entities/client/module.mjs +2 -1
  380. package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
  381. package/dist/core/authentication/entities/client/module.mjs +2 -2
  382. package/dist/core/authentication/entities/client/module.mjs.map +1 -1
  383. package/dist/core/authentication/index.d.ts +1 -0
  384. package/dist/core/authentication/index.d.ts.map +1 -1
  385. package/dist/core/authentication/index.mjs +3 -1
  386. package/dist/core/authentication/login-throttle/index.d.ts +3 -0
  387. package/dist/core/authentication/login-throttle/index.d.ts.map +1 -0
  388. package/dist/core/authentication/login-throttle/index.mjs +5 -0
  389. package/dist/core/authentication/login-throttle/service.d.ts +13 -0
  390. package/dist/core/authentication/login-throttle/service.d.ts.map +1 -0
  391. package/dist/core/authentication/login-throttle/service.mjs +33 -0
  392. package/dist/core/authentication/login-throttle/service.mjs.map +1 -0
  393. package/dist/core/authentication/login-throttle/types.d.ts +34 -0
  394. package/dist/core/authentication/login-throttle/types.d.ts.map +1 -0
  395. package/dist/core/authentication/session/module.d.ts +1 -0
  396. package/dist/core/authentication/session/module.d.ts.map +1 -1
  397. package/dist/core/authentication/session/module.mjs +4 -0
  398. package/dist/core/authentication/session/module.mjs.map +1 -1
  399. package/dist/core/authentication/session/types.d.ts +6 -0
  400. package/dist/core/authentication/session/types.d.ts.map +1 -1
  401. package/dist/core/authentication/session/types.mjs.map +1 -1
  402. package/dist/core/client-certificate/index.d.ts +3 -0
  403. package/dist/core/client-certificate/index.d.ts.map +1 -0
  404. package/dist/core/client-certificate/index.mjs +5 -0
  405. package/dist/core/client-certificate/module.d.ts +18 -0
  406. package/dist/core/client-certificate/module.d.ts.map +1 -0
  407. package/dist/core/client-certificate/module.mjs +195 -0
  408. package/dist/core/client-certificate/module.mjs.map +1 -0
  409. package/dist/core/client-certificate/types.d.ts +22 -0
  410. package/dist/core/client-certificate/types.d.ts.map +1 -0
  411. package/dist/core/client-certificate/types.mjs +4 -0
  412. package/dist/core/entities/client/service.d.ts.map +1 -1
  413. package/dist/core/entities/client/service.mjs +15 -7
  414. package/dist/core/entities/client/service.mjs.map +1 -1
  415. package/dist/core/entities/client/web-client.d.ts.map +1 -1
  416. package/dist/core/entities/client/web-client.mjs +3 -2
  417. package/dist/core/entities/client/web-client.mjs.map +1 -1
  418. package/dist/core/entities/consent/index.d.ts +3 -0
  419. package/dist/core/entities/consent/index.d.ts.map +1 -0
  420. package/dist/core/entities/consent/index.mjs +6 -0
  421. package/dist/core/entities/consent/service.d.ts +19 -0
  422. package/dist/core/entities/consent/service.d.ts.map +1 -0
  423. package/dist/core/entities/consent/service.mjs +122 -0
  424. package/dist/core/entities/consent/service.mjs.map +1 -0
  425. package/dist/core/entities/consent/types.d.ts +97 -0
  426. package/dist/core/entities/consent/types.d.ts.map +1 -0
  427. package/dist/core/entities/consent/types.mjs +25 -0
  428. package/dist/core/entities/consent/types.mjs.map +1 -0
  429. package/dist/core/entities/event/constants.d.ts +7 -0
  430. package/dist/core/entities/event/constants.d.ts.map +1 -0
  431. package/dist/core/entities/event/constants.mjs +13 -0
  432. package/dist/core/entities/event/constants.mjs.map +1 -0
  433. package/dist/core/entities/event/diff.d.ts +20 -0
  434. package/dist/core/entities/event/diff.d.ts.map +1 -0
  435. package/dist/core/entities/event/diff.mjs +45 -0
  436. package/dist/core/entities/event/diff.mjs.map +1 -0
  437. package/dist/core/entities/event/entity-event-handler.d.ts +19 -0
  438. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -0
  439. package/dist/core/entities/event/entity-event-handler.mjs +100 -0
  440. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -0
  441. package/dist/core/entities/event/index.d.ts +7 -0
  442. package/dist/core/entities/event/index.d.ts.map +1 -0
  443. package/dist/core/entities/event/index.mjs +9 -0
  444. package/dist/core/entities/event/sanitize.d.ts +2 -0
  445. package/dist/core/entities/event/sanitize.d.ts.map +1 -0
  446. package/dist/core/entities/event/sanitize.mjs +83 -0
  447. package/dist/core/entities/event/sanitize.mjs.map +1 -0
  448. package/dist/core/entities/event/service.d.ts +22 -0
  449. package/dist/core/entities/event/service.d.ts.map +1 -0
  450. package/dist/core/entities/event/service.mjs +169 -0
  451. package/dist/core/entities/event/service.mjs.map +1 -0
  452. package/dist/core/entities/event/types.d.ts +124 -0
  453. package/dist/core/entities/event/types.d.ts.map +1 -0
  454. package/dist/core/entities/event/types.mjs +4 -0
  455. package/dist/core/entities/identity-provider-role-mapping/service.mjs +2 -2
  456. package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
  457. package/dist/core/entities/index.d.ts +5 -0
  458. package/dist/core/entities/index.d.ts.map +1 -1
  459. package/dist/core/entities/index.mjs +20 -1
  460. package/dist/core/entities/key/index.d.ts +3 -0
  461. package/dist/core/entities/key/index.d.ts.map +1 -0
  462. package/dist/core/entities/key/index.mjs +5 -0
  463. package/dist/core/entities/key/service.d.ts +55 -0
  464. package/dist/core/entities/key/service.d.ts.map +1 -0
  465. package/dist/core/entities/key/service.mjs +301 -0
  466. package/dist/core/entities/key/service.mjs.map +1 -0
  467. package/dist/core/entities/key/types.d.ts +33 -0
  468. package/dist/core/entities/key/types.d.ts.map +1 -0
  469. package/dist/core/entities/key/types.mjs +4 -0
  470. package/dist/core/entities/permission/service.mjs +3 -3
  471. package/dist/core/entities/permission/service.mjs.map +1 -1
  472. package/dist/core/entities/policy/service.mjs +4 -4
  473. package/dist/core/entities/policy/service.mjs.map +1 -1
  474. package/dist/core/entities/realm/service.d.ts +3 -0
  475. package/dist/core/entities/realm/service.d.ts.map +1 -1
  476. package/dist/core/entities/realm/service.mjs +6 -3
  477. package/dist/core/entities/realm/service.mjs.map +1 -1
  478. package/dist/core/entities/role/service.mjs +2 -2
  479. package/dist/core/entities/role/service.mjs.map +1 -1
  480. package/dist/core/entities/role-attribute/service.mjs +3 -3
  481. package/dist/core/entities/role-attribute/service.mjs.map +1 -1
  482. package/dist/core/entities/session/service.mjs +5 -2
  483. package/dist/core/entities/session/service.mjs.map +1 -1
  484. package/dist/core/entities/trust-anchor/index.d.ts +3 -0
  485. package/dist/core/entities/trust-anchor/index.d.ts.map +1 -0
  486. package/dist/core/entities/trust-anchor/index.mjs +5 -0
  487. package/dist/core/entities/trust-anchor/service.d.ts +33 -0
  488. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -0
  489. package/dist/core/entities/trust-anchor/service.mjs +175 -0
  490. package/dist/core/entities/trust-anchor/service.mjs.map +1 -0
  491. package/dist/core/entities/trust-anchor/types.d.ts +14 -0
  492. package/dist/core/entities/trust-anchor/types.d.ts.map +1 -0
  493. package/dist/core/entities/trust-anchor/types.mjs +4 -0
  494. package/dist/core/entities/user/service.mjs +2 -2
  495. package/dist/core/entities/user/service.mjs.map +1 -1
  496. package/dist/core/entities/user-attribute/service.mjs +4 -4
  497. package/dist/core/entities/user-attribute/service.mjs.map +1 -1
  498. package/dist/core/entities/user-authenticator/constants.d.ts +26 -0
  499. package/dist/core/entities/user-authenticator/constants.d.ts.map +1 -0
  500. package/dist/core/entities/user-authenticator/constants.mjs +32 -0
  501. package/dist/core/entities/user-authenticator/constants.mjs.map +1 -0
  502. package/dist/core/entities/user-authenticator/helpers.d.ts +10 -0
  503. package/dist/core/entities/user-authenticator/helpers.d.ts.map +1 -0
  504. package/dist/core/entities/user-authenticator/helpers.mjs +35 -0
  505. package/dist/core/entities/user-authenticator/helpers.mjs.map +1 -0
  506. package/dist/core/entities/user-authenticator/index.d.ts +6 -0
  507. package/dist/core/entities/user-authenticator/index.d.ts.map +1 -0
  508. package/dist/core/entities/user-authenticator/index.mjs +9 -0
  509. package/dist/core/entities/user-authenticator/service.d.ts +89 -0
  510. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -0
  511. package/dist/core/entities/user-authenticator/service.mjs +709 -0
  512. package/dist/core/entities/user-authenticator/service.mjs.map +1 -0
  513. package/dist/core/entities/user-authenticator/types.d.ts +221 -0
  514. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -0
  515. package/dist/core/entities/user-authenticator/types.mjs +15 -0
  516. package/dist/core/entities/user-authenticator/types.mjs.map +1 -0
  517. package/dist/core/entities/user-authenticator/webauthn.d.ts +28 -0
  518. package/dist/core/entities/user-authenticator/webauthn.d.ts.map +1 -0
  519. package/dist/core/entities/user-authenticator/webauthn.mjs +88 -0
  520. package/dist/core/entities/user-authenticator/webauthn.mjs.map +1 -0
  521. package/dist/core/identity/index.mjs +2 -1
  522. package/dist/core/identity/password-recovery/disabled.d.ts +2 -2
  523. package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -1
  524. package/dist/core/identity/password-recovery/disabled.mjs +2 -2
  525. package/dist/core/identity/password-recovery/disabled.mjs.map +1 -1
  526. package/dist/core/identity/password-recovery/email-verification-required.d.ts +2 -2
  527. package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -1
  528. package/dist/core/identity/password-recovery/email-verification-required.mjs +2 -2
  529. package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -1
  530. package/dist/core/identity/password-recovery/service.d.ts +2 -1
  531. package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
  532. package/dist/core/identity/password-recovery/service.mjs +26 -4
  533. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  534. package/dist/core/identity/password-recovery/token-expired.d.ts +2 -2
  535. package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -1
  536. package/dist/core/identity/password-recovery/token-expired.mjs +2 -2
  537. package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -1
  538. package/dist/core/identity/password-recovery/types.d.ts +2 -1
  539. package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
  540. package/dist/core/identity/permission/index.d.ts +1 -0
  541. package/dist/core/identity/permission/index.d.ts.map +1 -1
  542. package/dist/core/identity/permission/index.mjs +2 -1
  543. package/dist/core/identity/policy/checker/service.mjs +1 -1
  544. package/dist/core/identity/policy/checker/service.mjs.map +1 -1
  545. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +2 -2
  546. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  547. package/dist/core/identity/registration/error.d.ts +2 -2
  548. package/dist/core/identity/registration/error.d.ts.map +1 -1
  549. package/dist/core/identity/registration/error.mjs +2 -2
  550. package/dist/core/identity/registration/error.mjs.map +1 -1
  551. package/dist/core/identity/registration/service.d.ts +2 -1
  552. package/dist/core/identity/registration/service.d.ts.map +1 -1
  553. package/dist/core/identity/registration/service.mjs +26 -4
  554. package/dist/core/identity/registration/service.mjs.map +1 -1
  555. package/dist/core/identity/registration/types.d.ts +2 -1
  556. package/dist/core/identity/registration/types.d.ts.map +1 -1
  557. package/dist/core/index.d.ts +3 -0
  558. package/dist/core/index.d.ts.map +1 -1
  559. package/dist/core/index.mjs +39 -8
  560. package/dist/core/key/certificate-error.d.ts +10 -0
  561. package/dist/core/key/certificate-error.d.ts.map +1 -0
  562. package/dist/core/key/certificate-error.mjs +19 -0
  563. package/dist/core/key/certificate-error.mjs.map +1 -0
  564. package/dist/core/key/certificate.d.ts +15 -0
  565. package/dist/core/key/certificate.d.ts.map +1 -0
  566. package/dist/core/key/certificate.mjs +72 -0
  567. package/dist/core/key/certificate.mjs.map +1 -0
  568. package/dist/core/key/check.d.ts +3 -0
  569. package/dist/core/key/check.d.ts.map +1 -0
  570. package/dist/core/key/check.mjs +13 -0
  571. package/dist/core/key/check.mjs.map +1 -0
  572. package/dist/core/key/constants.d.ts +10 -0
  573. package/dist/core/key/constants.d.ts.map +1 -0
  574. package/dist/core/key/constants.mjs +15 -0
  575. package/dist/core/key/constants.mjs.map +1 -0
  576. package/dist/core/key/error.d.ts +14 -0
  577. package/dist/core/key/error.d.ts.map +1 -0
  578. package/dist/core/key/error.mjs +23 -0
  579. package/dist/core/key/error.mjs.map +1 -0
  580. package/dist/core/key/index.d.ts +10 -0
  581. package/dist/core/key/index.d.ts.map +1 -0
  582. package/dist/core/key/index.mjs +12 -0
  583. package/dist/core/key/provisioner.d.ts +22 -0
  584. package/dist/core/key/provisioner.d.ts.map +1 -0
  585. package/dist/core/key/provisioner.mjs +30 -0
  586. package/dist/core/key/provisioner.mjs.map +1 -0
  587. package/dist/core/key/realm-cipher.d.ts +20 -0
  588. package/dist/core/key/realm-cipher.d.ts.map +1 -0
  589. package/dist/core/key/realm-cipher.mjs +60 -0
  590. package/dist/core/key/realm-cipher.mjs.map +1 -0
  591. package/dist/core/key/types.d.ts +59 -0
  592. package/dist/core/key/types.d.ts.map +1 -0
  593. package/dist/core/key/types.mjs +4 -0
  594. package/dist/core/key/wrap.d.ts +5 -0
  595. package/dist/core/key/wrap.d.ts.map +1 -0
  596. package/dist/core/key/wrap.mjs +21 -0
  597. package/dist/core/key/wrap.mjs.map +1 -0
  598. package/dist/core/mail/template/registry.d.ts.map +1 -1
  599. package/dist/core/mail/template/registry.mjs +3 -1
  600. package/dist/core/mail/template/registry.mjs.map +1 -1
  601. package/dist/core/mail/template/templates/mfa-email-otp.d.ts +3 -0
  602. package/dist/core/mail/template/templates/mfa-email-otp.d.ts.map +1 -0
  603. package/dist/core/mail/template/templates/mfa-email-otp.mjs +34 -0
  604. package/dist/core/mail/template/templates/mfa-email-otp.mjs.map +1 -0
  605. package/dist/core/mail/template/types.d.ts +6 -1
  606. package/dist/core/mail/template/types.d.ts.map +1 -1
  607. package/dist/core/mail/template/types.mjs +1 -0
  608. package/dist/core/mail/template/types.mjs.map +1 -1
  609. package/dist/core/metrics/index.d.ts +3 -0
  610. package/dist/core/metrics/index.d.ts.map +1 -0
  611. package/dist/core/metrics/index.mjs +5 -0
  612. package/dist/core/metrics/noop.d.ts +8 -0
  613. package/dist/core/metrics/noop.d.ts.map +1 -0
  614. package/dist/core/metrics/noop.mjs +14 -0
  615. package/dist/core/metrics/noop.mjs.map +1 -0
  616. package/dist/core/metrics/types.d.ts +19 -0
  617. package/dist/core/metrics/types.d.ts.map +1 -0
  618. package/dist/core/metrics/types.mjs +4 -0
  619. package/dist/core/oauth2/access-policy/index.d.ts +3 -0
  620. package/dist/core/oauth2/access-policy/index.d.ts.map +1 -0
  621. package/dist/core/oauth2/access-policy/index.mjs +5 -0
  622. package/dist/core/oauth2/access-policy/module.d.ts +12 -0
  623. package/dist/core/oauth2/access-policy/module.d.ts.map +1 -0
  624. package/dist/core/oauth2/access-policy/module.mjs +32 -0
  625. package/dist/core/oauth2/access-policy/module.mjs.map +1 -0
  626. package/dist/core/oauth2/access-policy/types.d.ts +19 -0
  627. package/dist/core/oauth2/access-policy/types.d.ts.map +1 -0
  628. package/dist/core/oauth2/access-policy/types.mjs +4 -0
  629. package/dist/core/oauth2/authorization/code/issuer/module.d.ts.map +1 -1
  630. package/dist/core/oauth2/authorization/code/issuer/module.mjs +2 -0
  631. package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
  632. package/dist/core/oauth2/authorization/code/issuer/types.d.ts +6 -1
  633. package/dist/core/oauth2/authorization/code/issuer/types.d.ts.map +1 -1
  634. package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
  635. package/dist/core/oauth2/authorization/code-request/validator.d.ts.map +1 -1
  636. package/dist/core/oauth2/authorization/code-request/validator.mjs +1 -0
  637. package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
  638. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +3 -3
  639. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  640. package/dist/core/oauth2/authorization/helpers.d.ts +10 -1
  641. package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
  642. package/dist/core/oauth2/authorization/helpers.mjs +28 -2
  643. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  644. package/dist/core/oauth2/authorization/index.mjs +2 -2
  645. package/dist/core/oauth2/authorization/module.d.ts +9 -0
  646. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  647. package/dist/core/oauth2/authorization/module.mjs +80 -3
  648. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  649. package/dist/core/oauth2/authorization/types.d.ts +36 -0
  650. package/dist/core/oauth2/authorization/types.d.ts.map +1 -1
  651. package/dist/core/oauth2/client/authenticator.d.ts +16 -7
  652. package/dist/core/oauth2/client/authenticator.d.ts.map +1 -1
  653. package/dist/core/oauth2/client/authenticator.mjs +49 -12
  654. package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
  655. package/dist/core/oauth2/end-session/service.d.ts +2 -1
  656. package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
  657. package/dist/core/oauth2/end-session/service.mjs +13 -0
  658. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  659. package/dist/core/oauth2/end-session/types.d.ts +2 -1
  660. package/dist/core/oauth2/end-session/types.d.ts.map +1 -1
  661. package/dist/core/oauth2/grant-types/authorize.d.ts +2 -2
  662. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  663. package/dist/core/oauth2/grant-types/authorize.mjs +12 -8
  664. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  665. package/dist/core/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  666. package/dist/core/oauth2/grant-types/client-credentials.mjs +5 -3
  667. package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
  668. package/dist/core/oauth2/grant-types/identity.d.ts.map +1 -1
  669. package/dist/core/oauth2/grant-types/identity.mjs +10 -3
  670. package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
  671. package/dist/core/oauth2/grant-types/password.d.ts +9 -0
  672. package/dist/core/oauth2/grant-types/password.d.ts.map +1 -1
  673. package/dist/core/oauth2/grant-types/password.mjs +32 -4
  674. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  675. package/dist/core/oauth2/grant-types/refresh-token.d.ts +4 -0
  676. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  677. package/dist/core/oauth2/grant-types/refresh-token.mjs +17 -1
  678. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  679. package/dist/core/oauth2/grant-types/robot-credentials.d.ts.map +1 -1
  680. package/dist/core/oauth2/grant-types/robot-credentials.mjs +3 -2
  681. package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +1 -1
  682. package/dist/core/oauth2/grant-types/types.d.ts +10 -3
  683. package/dist/core/oauth2/grant-types/types.d.ts.map +1 -1
  684. package/dist/core/oauth2/index.d.ts +2 -1
  685. package/dist/core/oauth2/index.d.ts.map +1 -1
  686. package/dist/core/oauth2/index.mjs +7 -2
  687. package/dist/core/oauth2/mfa-login/index.d.ts +3 -0
  688. package/dist/core/oauth2/mfa-login/index.d.ts.map +1 -0
  689. package/dist/core/oauth2/mfa-login/index.mjs +5 -0
  690. package/dist/core/oauth2/mfa-login/module.d.ts +19 -0
  691. package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -0
  692. package/dist/core/oauth2/mfa-login/module.mjs +109 -0
  693. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -0
  694. package/dist/core/oauth2/mfa-login/types.d.ts +64 -0
  695. package/dist/core/oauth2/mfa-login/types.d.ts.map +1 -0
  696. package/dist/core/oauth2/mfa-login/types.mjs +4 -0
  697. package/dist/core/oauth2/token/index.mjs +2 -1
  698. package/dist/core/oauth2/token/issuer/index.d.ts +1 -0
  699. package/dist/core/oauth2/token/issuer/index.d.ts.map +1 -1
  700. package/dist/core/oauth2/token/issuer/index.mjs +3 -1
  701. package/dist/core/oauth2/token/issuer/mfa/index.d.ts +2 -0
  702. package/dist/core/oauth2/token/issuer/mfa/index.d.ts.map +1 -0
  703. package/dist/core/oauth2/token/issuer/mfa/index.mjs +5 -0
  704. package/dist/core/oauth2/token/issuer/mfa/module.d.ts +18 -0
  705. package/dist/core/oauth2/token/issuer/mfa/module.d.ts.map +1 -0
  706. package/dist/core/oauth2/token/issuer/mfa/module.mjs +36 -0
  707. package/dist/core/oauth2/token/issuer/mfa/module.mjs.map +1 -0
  708. package/dist/core/oauth2/token/repository/types.d.ts +10 -0
  709. package/dist/core/oauth2/token/repository/types.d.ts.map +1 -1
  710. package/dist/core/oauth2/token/revoker/module.d.ts.map +1 -1
  711. package/dist/core/oauth2/token/revoker/module.mjs +1 -0
  712. package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
  713. package/dist/core/oauth2/token/signer/module.d.ts +3 -3
  714. package/dist/core/oauth2/token/signer/module.d.ts.map +1 -1
  715. package/dist/core/oauth2/token/signer/module.mjs +5 -6
  716. package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
  717. package/dist/core/oauth2/token/verifier/module.d.ts +3 -3
  718. package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
  719. package/dist/core/oauth2/token/verifier/module.mjs +8 -5
  720. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  721. package/dist/index.mjs +52 -30
  722. package/dist/swagger.json +5431 -2952
  723. package/dist/ui/client/.vite/ssr-manifest.json +3888 -864
  724. package/dist/ui/client/assets/index-BmWsoQro.css +2 -0
  725. package/dist/ui/client/assets/{index-CP9HCHoS.js → index-CT0Nq5pA.js} +18 -17
  726. package/dist/ui/client/index.html +2 -2
  727. package/dist/ui/server/server.js +19470 -18436
  728. package/package.json +22 -16
  729. package/dist/app/modules/oauth2/repositories/key/index.d.ts.map +0 -1
  730. package/dist/app/modules/oauth2/repositories/key/index.mjs +0 -5
  731. package/dist/app/modules/oauth2/repositories/key/repository.d.ts +0 -14
  732. package/dist/app/modules/oauth2/repositories/key/repository.d.ts.map +0 -1
  733. package/dist/app/modules/oauth2/repositories/key/repository.mjs +0 -51
  734. package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +0 -1
  735. package/dist/core/oauth2/key/index.d.ts +0 -2
  736. package/dist/core/oauth2/key/index.d.ts.map +0 -1
  737. package/dist/core/oauth2/key/types.d.ts +0 -16
  738. package/dist/core/oauth2/key/types.d.ts.map +0 -1
  739. package/dist/ui/client/assets/index-VM4JXBXw.css +0 -2
  740. /package/dist/{core/oauth2/key → adapters/http/request}/types.mjs +0 -0
  741. /package/dist/app/modules/{oauth2/repositories/key → database/repositories/event}/index.d.ts +0 -0
  742. /package/dist/core/{oauth2/key/index.mjs → authentication/login-throttle/types.mjs} +0 -0
@@ -0,0 +1,310 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ //#region src/adapters/database/migrations/postgres/1783769340000-Default.ts
5
+ /**
6
+ * Security event log (plan 057), MFA — authenticator devices (plan 049) +
7
+ * auth-method claims (plan 050), application access policy (plan 052) +
8
+ * persisted consent (plan 055), realm key store (plans 069 + 071) and
9
+ * RFC 8705 client authentication (plan 072).
10
+ *
11
+ * - Adds auth_events: append-only, PII-stripped security audit log. No FKs
12
+ * by design: a row must survive deletion of the realm/actor/client it
13
+ * references. Retention is per-row (`expires_at`, stamped at write from
14
+ * `eventLogRetentionDays`; NULL = keep forever) and swept by the
15
+ * event-cleaner component (plan 057).
16
+ * - Adds auth_user_authenticators: polymorphic second-factor device rows
17
+ * (kind: totp/recovery/email/webauthn) hanging off a user. The TOTP seed
18
+ * (secret) is symmetrically encrypted at rest; recovery codes are hashed.
19
+ * FKs to auth_users / auth_realms (ON DELETE CASCADE).
20
+ * - Adds auth_sessions.mfa_at: instant the subject last passed a
21
+ * second-factor challenge for the session (plan 049).
22
+ * - Adds auth_sessions.auth_method: how the subject authenticated
23
+ * (pwd/ldap/ext/client/robot — plan 050); NULL for pre-existing sessions.
24
+ * - Adds auth_clients.access_policy_id: nullable FK to auth_policies
25
+ * (ON DELETE SET NULL) — the policy that must pass for an identity to
26
+ * authorize against the client (null = default-allow; plan 052).
27
+ * - Adds auth_consents: one row per (client_id, sub, sub_kind, scope token)
28
+ * a subject has approved at POST /authorize. Union/keep (missing tokens
29
+ * only, never deleted on re-approval); built_in clients keep zero rows;
30
+ * expires_at is dormant (always null in Stage 1) but honored by the
31
+ * covering check. FKs to auth_clients / auth_realms and a nullable user_id
32
+ * FK (all ON DELETE CASCADE, so a user deletion drops its consents;
33
+ * plan 055).
34
+ * - Adds auth_keys.use: JWK-use discriminator (sig | enc, RFC 7517 §4.2) —
35
+ * generalizes auth_keys into the per-realm key store. enc rows hold the
36
+ * realm's auto-generated symmetric at-rest encryption key (oct) that the
37
+ * MFA seed cipher rides; existing rows default to sig (plan 069).
38
+ * - Adds auth_keys.name (canonical identifier, backfilled from id),
39
+ * auth_keys.status (lifecycle: active/passive/disabled) and the dormant
40
+ * auth_keys.certificate (PEM chain, Stage B) — key management API
41
+ * (plan 071 Stage A).
42
+ * - Adds auth_trust_anchors: realm-scoped public CA certificates used by
43
+ * RFC 8705 PKI client authentication (plan 071 Stage C).
44
+ * - Replaces auth_clients.is_confidential with auth_method
45
+ * (none/secret/tls) and adds token_binding_method (none/tls) for RFC 8705
46
+ * client authentication and sender-constrained tokens (plan 072).
47
+ */ var Default1783769340000 = class {
48
+ name = "Default1783769340000";
49
+ async up(queryRunner) {
50
+ await queryRunner.query(`
51
+ CREATE TABLE "auth_events" (
52
+ "id" uuid NOT NULL,
53
+ "scope" character varying(64) NOT NULL,
54
+ "name" character varying(64) NOT NULL,
55
+ "ref_type" character varying(64),
56
+ "ref_id" character varying(64),
57
+ "client_id" uuid,
58
+ "actor_type" character varying(16),
59
+ "actor_id" uuid,
60
+ "actor_name" character varying(128),
61
+ "request_path" character varying(256),
62
+ "request_method" character varying(10),
63
+ "request_ip_address" character varying(45),
64
+ "request_user_agent" character varying(512),
65
+ "realm_id" uuid,
66
+ "data" text,
67
+ "expiring" boolean NOT NULL DEFAULT false,
68
+ "expires_at" character varying(28),
69
+ "created_at" TIMESTAMP NOT NULL DEFAULT now(),
70
+ CONSTRAINT "PK_auth_events" PRIMARY KEY ("id")
71
+ )
72
+ `);
73
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_name_scope\" ON \"auth_events\" (\"name\", \"scope\")");
74
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_ref_type_ref_id\" ON \"auth_events\" (\"ref_type\", \"ref_id\")");
75
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_client_id\" ON \"auth_events\" (\"client_id\")");
76
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_actor_id\" ON \"auth_events\" (\"actor_id\")");
77
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_actor_name\" ON \"auth_events\" (\"actor_name\")");
78
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_request_ip_address\" ON \"auth_events\" (\"request_ip_address\")");
79
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_realm_id\" ON \"auth_events\" (\"realm_id\")");
80
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_expiring\" ON \"auth_events\" (\"expiring\")");
81
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_expires_at\" ON \"auth_events\" (\"expires_at\")");
82
+ await queryRunner.query("CREATE INDEX \"IDX_auth_events_created_at\" ON \"auth_events\" (\"created_at\")");
83
+ await queryRunner.query(`
84
+ CREATE TABLE "auth_user_authenticators" (
85
+ "id" uuid NOT NULL DEFAULT uuid_generate_v4(),
86
+ "kind" character varying(16) NOT NULL,
87
+ "name" character varying(128),
88
+ "secret" text,
89
+ "parameters" text,
90
+ "codes" text,
91
+ "confirmed" boolean NOT NULL DEFAULT false,
92
+ "last_used_at" character varying(28),
93
+ "created_at" TIMESTAMP NOT NULL DEFAULT now(),
94
+ "updated_at" TIMESTAMP NOT NULL DEFAULT now(),
95
+ "user_id" uuid NOT NULL,
96
+ "realm_id" uuid NOT NULL,
97
+ CONSTRAINT "PK_auth_user_authenticators" PRIMARY KEY ("id")
98
+ )
99
+ `);
100
+ await queryRunner.query("CREATE INDEX \"IDX_auth_user_authenticators_kind\" ON \"auth_user_authenticators\" (\"kind\")");
101
+ await queryRunner.query("CREATE INDEX \"IDX_auth_user_authenticators_user_id\" ON \"auth_user_authenticators\" (\"user_id\")");
102
+ await queryRunner.query(`
103
+ ALTER TABLE "auth_user_authenticators"
104
+ ADD CONSTRAINT "FK_auth_user_authenticators_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
105
+ `);
106
+ await queryRunner.query(`
107
+ ALTER TABLE "auth_user_authenticators"
108
+ ADD CONSTRAINT "FK_auth_user_authenticators_realm_id" FOREIGN KEY ("realm_id") REFERENCES "auth_realms"("id") ON DELETE CASCADE ON UPDATE NO ACTION
109
+ `);
110
+ await queryRunner.query(`
111
+ ALTER TABLE "auth_sessions" ADD "mfa_at" character varying(28)
112
+ `);
113
+ await queryRunner.query(`
114
+ ALTER TABLE "auth_sessions" ADD "auth_method" character varying(16)
115
+ `);
116
+ await queryRunner.query(`
117
+ ALTER TABLE "auth_clients" ADD "access_policy_id" uuid
118
+ `);
119
+ await queryRunner.query(`
120
+ ALTER TABLE "auth_clients"
121
+ ADD CONSTRAINT "FK_auth_clients_access_policy_id" FOREIGN KEY ("access_policy_id") REFERENCES "auth_policies"("id") ON DELETE SET NULL ON UPDATE NO ACTION
122
+ `);
123
+ await queryRunner.query(`
124
+ CREATE TABLE "auth_consents" (
125
+ "id" uuid NOT NULL DEFAULT uuid_generate_v4(),
126
+ "sub" character varying(64) NOT NULL,
127
+ "sub_kind" character varying(64) NOT NULL,
128
+ "scope" character varying(128) NOT NULL,
129
+ "expires_at" character varying(28),
130
+ "created_at" TIMESTAMP NOT NULL DEFAULT now(),
131
+ "updated_at" TIMESTAMP NOT NULL DEFAULT now(),
132
+ "client_id" uuid NOT NULL,
133
+ "realm_id" uuid NOT NULL,
134
+ "user_id" uuid,
135
+ CONSTRAINT "UQ_auth_consents_subject_scope" UNIQUE ("client_id", "sub", "sub_kind", "scope"),
136
+ CONSTRAINT "PK_auth_consents" PRIMARY KEY ("id")
137
+ )
138
+ `);
139
+ await queryRunner.query("CREATE INDEX \"IDX_auth_consents_sub\" ON \"auth_consents\" (\"sub\")");
140
+ await queryRunner.query("CREATE INDEX \"IDX_auth_consents_client_id\" ON \"auth_consents\" (\"client_id\")");
141
+ await queryRunner.query("CREATE INDEX \"IDX_auth_consents_realm_id\" ON \"auth_consents\" (\"realm_id\")");
142
+ await queryRunner.query("CREATE INDEX \"IDX_auth_consents_user_id\" ON \"auth_consents\" (\"user_id\")");
143
+ await queryRunner.query(`
144
+ ALTER TABLE "auth_consents"
145
+ ADD CONSTRAINT "FK_auth_consents_client_id" FOREIGN KEY ("client_id") REFERENCES "auth_clients"("id") ON DELETE CASCADE ON UPDATE NO ACTION
146
+ `);
147
+ await queryRunner.query(`
148
+ ALTER TABLE "auth_consents"
149
+ ADD CONSTRAINT "FK_auth_consents_realm_id" FOREIGN KEY ("realm_id") REFERENCES "auth_realms"("id") ON DELETE CASCADE ON UPDATE NO ACTION
150
+ `);
151
+ await queryRunner.query(`
152
+ ALTER TABLE "auth_consents"
153
+ ADD CONSTRAINT "FK_auth_consents_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
154
+ `);
155
+ await queryRunner.query(`
156
+ ALTER TABLE "auth_keys" ADD "use" character varying(64) NOT NULL DEFAULT 'sig'
157
+ `);
158
+ await queryRunner.query(`
159
+ ALTER TABLE "auth_keys" ADD "name" character varying(128)
160
+ `);
161
+ await queryRunner.query(`
162
+ UPDATE "auth_keys" SET "name" = "id"::text
163
+ `);
164
+ await queryRunner.query(`
165
+ ALTER TABLE "auth_keys" ALTER COLUMN "name" SET NOT NULL
166
+ `);
167
+ await queryRunner.query(`
168
+ ALTER TABLE "auth_keys"
169
+ ADD CONSTRAINT "UQ_auth_keys_name_realm_id" UNIQUE ("name", "realm_id")
170
+ `);
171
+ await queryRunner.query(`
172
+ ALTER TABLE "auth_keys" ADD "status" character varying(64) NOT NULL DEFAULT 'active'
173
+ `);
174
+ await queryRunner.query(`
175
+ ALTER TABLE "auth_keys" ADD "certificate" text
176
+ `);
177
+ await queryRunner.query(`
178
+ ALTER TABLE "auth_keys" ALTER COLUMN "decryption_key" TYPE text
179
+ `);
180
+ await queryRunner.query(`
181
+ ALTER TABLE "auth_keys" ALTER COLUMN "encryption_key" TYPE text
182
+ `);
183
+ await queryRunner.query(`
184
+ CREATE TABLE "auth_trust_anchors" (
185
+ "id" uuid NOT NULL DEFAULT uuid_generate_v4(),
186
+ "name" character varying(128) NOT NULL,
187
+ "certificate" text NOT NULL,
188
+ "enabled" boolean NOT NULL DEFAULT true,
189
+ "created_at" TIMESTAMP NOT NULL DEFAULT now(),
190
+ "updated_at" TIMESTAMP NOT NULL DEFAULT now(),
191
+ "realm_id" uuid NOT NULL,
192
+ CONSTRAINT "UQ_auth_trust_anchors_name_realm_id" UNIQUE ("name", "realm_id"),
193
+ CONSTRAINT "PK_auth_trust_anchors" PRIMARY KEY ("id")
194
+ )
195
+ `);
196
+ await queryRunner.query("CREATE INDEX \"IDX_auth_trust_anchors_realm_id\" ON \"auth_trust_anchors\" (\"realm_id\")");
197
+ await queryRunner.query(`
198
+ ALTER TABLE "auth_trust_anchors"
199
+ ADD CONSTRAINT "FK_auth_trust_anchors_realm_id" FOREIGN KEY ("realm_id") REFERENCES "auth_realms"("id") ON DELETE CASCADE ON UPDATE NO ACTION
200
+ `);
201
+ await queryRunner.query(`
202
+ ALTER TABLE "auth_clients" ADD "auth_method" character varying(16) NOT NULL DEFAULT 'none'
203
+ `);
204
+ await queryRunner.query(`
205
+ UPDATE "auth_clients" SET "auth_method" = 'secret' WHERE "is_confidential" = true
206
+ `);
207
+ await queryRunner.query(`
208
+ ALTER TABLE "auth_clients" ADD "token_binding_method" character varying(16) NOT NULL DEFAULT 'none'
209
+ `);
210
+ await queryRunner.query(`
211
+ ALTER TABLE "auth_clients" DROP COLUMN "is_confidential"
212
+ `);
213
+ }
214
+ async down(queryRunner) {
215
+ await queryRunner.query(`
216
+ ALTER TABLE "auth_clients" ADD "is_confidential" boolean NOT NULL DEFAULT false
217
+ `);
218
+ await queryRunner.query(`
219
+ UPDATE "auth_clients" SET "is_confidential" = true WHERE "auth_method" <> 'none'
220
+ `);
221
+ await queryRunner.query(`
222
+ ALTER TABLE "auth_clients" DROP COLUMN "token_binding_method"
223
+ `);
224
+ await queryRunner.query(`
225
+ ALTER TABLE "auth_clients" DROP COLUMN "auth_method"
226
+ `);
227
+ await queryRunner.query(`
228
+ ALTER TABLE "auth_trust_anchors" DROP CONSTRAINT "FK_auth_trust_anchors_realm_id"
229
+ `);
230
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_trust_anchors_realm_id\"");
231
+ await queryRunner.query(`
232
+ DROP TABLE "auth_trust_anchors"
233
+ `);
234
+ await queryRunner.query(`
235
+ ALTER TABLE "auth_keys" ALTER COLUMN "encryption_key" TYPE character varying(4096)
236
+ `);
237
+ await queryRunner.query(`
238
+ ALTER TABLE "auth_keys" ALTER COLUMN "decryption_key" TYPE character varying(4096)
239
+ `);
240
+ await queryRunner.query(`
241
+ ALTER TABLE "auth_keys" DROP COLUMN "certificate"
242
+ `);
243
+ await queryRunner.query(`
244
+ ALTER TABLE "auth_keys" DROP COLUMN "status"
245
+ `);
246
+ await queryRunner.query(`
247
+ ALTER TABLE "auth_keys" DROP CONSTRAINT "UQ_auth_keys_name_realm_id"
248
+ `);
249
+ await queryRunner.query(`
250
+ ALTER TABLE "auth_keys" DROP COLUMN "name"
251
+ `);
252
+ await queryRunner.query(`
253
+ ALTER TABLE "auth_keys" DROP COLUMN "use"
254
+ `);
255
+ await queryRunner.query(`
256
+ ALTER TABLE "auth_consents" DROP CONSTRAINT "FK_auth_consents_user_id"
257
+ `);
258
+ await queryRunner.query(`
259
+ ALTER TABLE "auth_consents" DROP CONSTRAINT "FK_auth_consents_realm_id"
260
+ `);
261
+ await queryRunner.query(`
262
+ ALTER TABLE "auth_consents" DROP CONSTRAINT "FK_auth_consents_client_id"
263
+ `);
264
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_consents_user_id\"");
265
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_consents_realm_id\"");
266
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_consents_client_id\"");
267
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_consents_sub\"");
268
+ await queryRunner.query(`
269
+ DROP TABLE "auth_consents"
270
+ `);
271
+ await queryRunner.query(`
272
+ ALTER TABLE "auth_clients" DROP CONSTRAINT "FK_auth_clients_access_policy_id"
273
+ `);
274
+ await queryRunner.query(`
275
+ ALTER TABLE "auth_clients" DROP COLUMN "access_policy_id"
276
+ `);
277
+ await queryRunner.query(`
278
+ ALTER TABLE "auth_sessions" DROP COLUMN "auth_method"
279
+ `);
280
+ await queryRunner.query(`
281
+ ALTER TABLE "auth_sessions" DROP COLUMN "mfa_at"
282
+ `);
283
+ await queryRunner.query(`
284
+ ALTER TABLE "auth_user_authenticators" DROP CONSTRAINT "FK_auth_user_authenticators_realm_id"
285
+ `);
286
+ await queryRunner.query(`
287
+ ALTER TABLE "auth_user_authenticators" DROP CONSTRAINT "FK_auth_user_authenticators_user_id"
288
+ `);
289
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_user_authenticators_user_id\"");
290
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_user_authenticators_kind\"");
291
+ await queryRunner.query(`
292
+ DROP TABLE "auth_user_authenticators"
293
+ `);
294
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_created_at\"");
295
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_expires_at\"");
296
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_expiring\"");
297
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_realm_id\"");
298
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_request_ip_address\"");
299
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_actor_name\"");
300
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_actor_id\"");
301
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_client_id\"");
302
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_ref_type_ref_id\"");
303
+ await queryRunner.query("DROP INDEX \"public\".\"IDX_auth_events_name_scope\"");
304
+ await queryRunner.query("DROP TABLE \"auth_events\"");
305
+ }
306
+ };
307
+ //#endregion
308
+ export { Default1783769340000 };
309
+
310
+ //# sourceMappingURL=1783769340000-Default.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1783769340000-Default.mjs","names":["Default1783769340000","name","up","queryRunner","query","down"],"sources":["../../../../../src/adapters/database/migrations/postgres/1783769340000-Default.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 { MigrationInterface, QueryRunner } from 'typeorm';\n\n/**\n * Security event log (plan 057), MFA — authenticator devices (plan 049) +\n * auth-method claims (plan 050), application access policy (plan 052) +\n * persisted consent (plan 055), realm key store (plans 069 + 071) and\n * RFC 8705 client authentication (plan 072).\n *\n * - Adds auth_events: append-only, PII-stripped security audit log. No FKs\n * by design: a row must survive deletion of the realm/actor/client it\n * references. Retention is per-row (`expires_at`, stamped at write from\n * `eventLogRetentionDays`; NULL = keep forever) and swept by the\n * event-cleaner component (plan 057).\n * - Adds auth_user_authenticators: polymorphic second-factor device rows\n * (kind: totp/recovery/email/webauthn) hanging off a user. The TOTP seed\n * (secret) is symmetrically encrypted at rest; recovery codes are hashed.\n * FKs to auth_users / auth_realms (ON DELETE CASCADE).\n * - Adds auth_sessions.mfa_at: instant the subject last passed a\n * second-factor challenge for the session (plan 049).\n * - Adds auth_sessions.auth_method: how the subject authenticated\n * (pwd/ldap/ext/client/robot — plan 050); NULL for pre-existing sessions.\n * - Adds auth_clients.access_policy_id: nullable FK to auth_policies\n * (ON DELETE SET NULL) — the policy that must pass for an identity to\n * authorize against the client (null = default-allow; plan 052).\n * - Adds auth_consents: one row per (client_id, sub, sub_kind, scope token)\n * a subject has approved at POST /authorize. Union/keep (missing tokens\n * only, never deleted on re-approval); built_in clients keep zero rows;\n * expires_at is dormant (always null in Stage 1) but honored by the\n * covering check. FKs to auth_clients / auth_realms and a nullable user_id\n * FK (all ON DELETE CASCADE, so a user deletion drops its consents;\n * plan 055).\n * - Adds auth_keys.use: JWK-use discriminator (sig | enc, RFC 7517 §4.2) —\n * generalizes auth_keys into the per-realm key store. enc rows hold the\n * realm's auto-generated symmetric at-rest encryption key (oct) that the\n * MFA seed cipher rides; existing rows default to sig (plan 069).\n * - Adds auth_keys.name (canonical identifier, backfilled from id),\n * auth_keys.status (lifecycle: active/passive/disabled) and the dormant\n * auth_keys.certificate (PEM chain, Stage B) — key management API\n * (plan 071 Stage A).\n * - Adds auth_trust_anchors: realm-scoped public CA certificates used by\n * RFC 8705 PKI client authentication (plan 071 Stage C).\n * - Replaces auth_clients.is_confidential with auth_method\n * (none/secret/tls) and adds token_binding_method (none/tls) for RFC 8705\n * client authentication and sender-constrained tokens (plan 072).\n */\nexport class Default1783769340000 implements MigrationInterface {\n name = 'Default1783769340000';\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n // security event log (plan 057)\n await queryRunner.query(`\n CREATE TABLE \"auth_events\" (\n \"id\" uuid NOT NULL,\n \"scope\" character varying(64) NOT NULL,\n \"name\" character varying(64) NOT NULL,\n \"ref_type\" character varying(64),\n \"ref_id\" character varying(64),\n \"client_id\" uuid,\n \"actor_type\" character varying(16),\n \"actor_id\" uuid,\n \"actor_name\" character varying(128),\n \"request_path\" character varying(256),\n \"request_method\" character varying(10),\n \"request_ip_address\" character varying(45),\n \"request_user_agent\" character varying(512),\n \"realm_id\" uuid,\n \"data\" text,\n \"expiring\" boolean NOT NULL DEFAULT false,\n \"expires_at\" character varying(28),\n \"created_at\" TIMESTAMP NOT NULL DEFAULT now(),\n CONSTRAINT \"PK_auth_events\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_name_scope\" ON \"auth_events\" (\"name\", \"scope\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_ref_type_ref_id\" ON \"auth_events\" (\"ref_type\", \"ref_id\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_client_id\" ON \"auth_events\" (\"client_id\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_actor_id\" ON \"auth_events\" (\"actor_id\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_actor_name\" ON \"auth_events\" (\"actor_name\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_request_ip_address\" ON \"auth_events\" (\"request_ip_address\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_realm_id\" ON \"auth_events\" (\"realm_id\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_expiring\" ON \"auth_events\" (\"expiring\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_expires_at\" ON \"auth_events\" (\"expires_at\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_events_created_at\" ON \"auth_events\" (\"created_at\")');\n\n // MFA authenticator devices (plan 049)\n await queryRunner.query(`\n CREATE TABLE \"auth_user_authenticators\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"kind\" character varying(16) NOT NULL,\n \"name\" character varying(128),\n \"secret\" text,\n \"parameters\" text,\n \"codes\" text,\n \"confirmed\" boolean NOT NULL DEFAULT false,\n \"last_used_at\" character varying(28),\n \"created_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"user_id\" uuid NOT NULL,\n \"realm_id\" uuid NOT NULL,\n CONSTRAINT \"PK_auth_user_authenticators\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query('CREATE INDEX \"IDX_auth_user_authenticators_kind\" ON \"auth_user_authenticators\" (\"kind\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_user_authenticators_user_id\" ON \"auth_user_authenticators\" (\"user_id\")');\n\n await queryRunner.query(`\n ALTER TABLE \"auth_user_authenticators\"\n ADD CONSTRAINT \"FK_auth_user_authenticators_user_id\" FOREIGN KEY (\"user_id\") REFERENCES \"auth_users\"(\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_user_authenticators\"\n ADD CONSTRAINT \"FK_auth_user_authenticators_realm_id\" FOREIGN KEY (\"realm_id\") REFERENCES \"auth_realms\"(\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n\n await queryRunner.query(`\n ALTER TABLE \"auth_sessions\" ADD \"mfa_at\" character varying(28)\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_sessions\" ADD \"auth_method\" character varying(16)\n `);\n\n // application access policy (plan 052)\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" ADD \"access_policy_id\" uuid\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\"\n ADD CONSTRAINT \"FK_auth_clients_access_policy_id\" FOREIGN KEY (\"access_policy_id\") REFERENCES \"auth_policies\"(\"id\") ON DELETE SET NULL ON UPDATE NO ACTION\n `);\n\n // persisted per-scope consent (plan 055)\n await queryRunner.query(`\n CREATE TABLE \"auth_consents\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"sub\" character varying(64) NOT NULL,\n \"sub_kind\" character varying(64) NOT NULL,\n \"scope\" character varying(128) NOT NULL,\n \"expires_at\" character varying(28),\n \"created_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"client_id\" uuid NOT NULL,\n \"realm_id\" uuid NOT NULL,\n \"user_id\" uuid,\n CONSTRAINT \"UQ_auth_consents_subject_scope\" UNIQUE (\"client_id\", \"sub\", \"sub_kind\", \"scope\"),\n CONSTRAINT \"PK_auth_consents\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query('CREATE INDEX \"IDX_auth_consents_sub\" ON \"auth_consents\" (\"sub\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_consents_client_id\" ON \"auth_consents\" (\"client_id\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_consents_realm_id\" ON \"auth_consents\" (\"realm_id\")');\n await queryRunner.query('CREATE INDEX \"IDX_auth_consents_user_id\" ON \"auth_consents\" (\"user_id\")');\n\n await queryRunner.query(`\n ALTER TABLE \"auth_consents\"\n ADD CONSTRAINT \"FK_auth_consents_client_id\" FOREIGN KEY (\"client_id\") REFERENCES \"auth_clients\"(\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_consents\"\n ADD CONSTRAINT \"FK_auth_consents_realm_id\" FOREIGN KEY (\"realm_id\") REFERENCES \"auth_realms\"(\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_consents\"\n ADD CONSTRAINT \"FK_auth_consents_user_id\" FOREIGN KEY (\"user_id\") REFERENCES \"auth_users\"(\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n\n // realm key store use discriminator (plan 069)\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ADD \"use\" character varying(64) NOT NULL DEFAULT 'sig'\n `);\n\n // key management API (plan 071 Stage A)\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ADD \"name\" character varying(128)\n `);\n await queryRunner.query(`\n UPDATE \"auth_keys\" SET \"name\" = \"id\"::text\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ALTER COLUMN \"name\" SET NOT NULL\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\"\n ADD CONSTRAINT \"UQ_auth_keys_name_realm_id\" UNIQUE (\"name\", \"realm_id\")\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ADD \"status\" character varying(64) NOT NULL DEFAULT 'active'\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ADD \"certificate\" text\n `);\n // Widen the key-material columns: an imported RSA-4096 private key\n // wrapped under a SECRETS_ENCRYPTION_KEY exceeds character varying(4096).\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ALTER COLUMN \"decryption_key\" TYPE text\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ALTER COLUMN \"encryption_key\" TYPE text\n `);\n\n // RFC 8705 realm trust anchors (plan 071 Stage C)\n await queryRunner.query(`\n CREATE TABLE \"auth_trust_anchors\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"name\" character varying(128) NOT NULL,\n \"certificate\" text NOT NULL,\n \"enabled\" boolean NOT NULL DEFAULT true,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"realm_id\" uuid NOT NULL,\n CONSTRAINT \"UQ_auth_trust_anchors_name_realm_id\" UNIQUE (\"name\", \"realm_id\"),\n CONSTRAINT \"PK_auth_trust_anchors\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query('CREATE INDEX \"IDX_auth_trust_anchors_realm_id\" ON \"auth_trust_anchors\" (\"realm_id\")');\n await queryRunner.query(`\n ALTER TABLE \"auth_trust_anchors\"\n ADD CONSTRAINT \"FK_auth_trust_anchors_realm_id\" FOREIGN KEY (\"realm_id\") REFERENCES \"auth_realms\"(\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n\n // RFC 8705 client authentication and token binding (plan 072)\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" ADD \"auth_method\" character varying(16) NOT NULL DEFAULT 'none'\n `);\n await queryRunner.query(`\n UPDATE \"auth_clients\" SET \"auth_method\" = 'secret' WHERE \"is_confidential\" = true\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" ADD \"token_binding_method\" character varying(16) NOT NULL DEFAULT 'none'\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP COLUMN \"is_confidential\"\n `);\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n // RFC 8705 client authentication and token binding (plan 072)\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" ADD \"is_confidential\" boolean NOT NULL DEFAULT false\n `);\n await queryRunner.query(`\n UPDATE \"auth_clients\" SET \"is_confidential\" = true WHERE \"auth_method\" <> 'none'\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP COLUMN \"token_binding_method\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP COLUMN \"auth_method\"\n `);\n\n // RFC 8705 realm trust anchors (plan 071 Stage C)\n await queryRunner.query(`\n ALTER TABLE \"auth_trust_anchors\" DROP CONSTRAINT \"FK_auth_trust_anchors_realm_id\"\n `);\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_trust_anchors_realm_id\"');\n await queryRunner.query(`\n DROP TABLE \"auth_trust_anchors\"\n `);\n\n // key management API (plan 071 Stage A) — reverse last-in-first-out\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ALTER COLUMN \"encryption_key\" TYPE character varying(4096)\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" ALTER COLUMN \"decryption_key\" TYPE character varying(4096)\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" DROP COLUMN \"certificate\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" DROP COLUMN \"status\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" DROP CONSTRAINT \"UQ_auth_keys_name_realm_id\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" DROP COLUMN \"name\"\n `);\n\n // realm key store use discriminator (plan 069)\n await queryRunner.query(`\n ALTER TABLE \"auth_keys\" DROP COLUMN \"use\"\n `);\n\n // persisted per-scope consent (plan 055)\n await queryRunner.query(`\n ALTER TABLE \"auth_consents\" DROP CONSTRAINT \"FK_auth_consents_user_id\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_consents\" DROP CONSTRAINT \"FK_auth_consents_realm_id\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_consents\" DROP CONSTRAINT \"FK_auth_consents_client_id\"\n `);\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_consents_user_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_consents_realm_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_consents_client_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_consents_sub\"');\n await queryRunner.query(`\n DROP TABLE \"auth_consents\"\n `);\n\n // application access policy (plan 052)\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP CONSTRAINT \"FK_auth_clients_access_policy_id\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP COLUMN \"access_policy_id\"\n `);\n\n await queryRunner.query(`\n ALTER TABLE \"auth_sessions\" DROP COLUMN \"auth_method\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_sessions\" DROP COLUMN \"mfa_at\"\n `);\n\n await queryRunner.query(`\n ALTER TABLE \"auth_user_authenticators\" DROP CONSTRAINT \"FK_auth_user_authenticators_realm_id\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_user_authenticators\" DROP CONSTRAINT \"FK_auth_user_authenticators_user_id\"\n `);\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_user_authenticators_user_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_user_authenticators_kind\"');\n await queryRunner.query(`\n DROP TABLE \"auth_user_authenticators\"\n `);\n\n // security event log (plan 057)\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_created_at\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_expires_at\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_expiring\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_realm_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_request_ip_address\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_actor_name\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_actor_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_client_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_ref_type_ref_id\"');\n await queryRunner.query('DROP INDEX \"public\".\"IDX_auth_events_name_scope\"');\n await queryRunner.query('DROP TABLE \"auth_events\"');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDA,IAAaA,uBAAb,MAAaA;CACTC,OAAO;CAEP,MAAaC,GAAGC,aAAyC;EAErD,MAAMA,YAAYC,MAAM;;;;;;;;;;;;;;;;;;;;;;SAsBvB;EACD,MAAMD,YAAYC,MAAM,sFAAA;EACxB,MAAMD,YAAYC,MAAM,gGAAA;EACxB,MAAMD,YAAYC,MAAM,+EAAA;EACxB,MAAMD,YAAYC,MAAM,6EAAA;EACxB,MAAMD,YAAYC,MAAM,iFAAA;EACxB,MAAMD,YAAYC,MAAM,iGAAA;EACxB,MAAMD,YAAYC,MAAM,6EAAA;EACxB,MAAMD,YAAYC,MAAM,6EAAA;EACxB,MAAMD,YAAYC,MAAM,iFAAA;EACxB,MAAMD,YAAYC,MAAM,iFAAA;EAGxB,MAAMD,YAAYC,MAAM;;;;;;;;;;;;;;;;SAgBvB;EACD,MAAMD,YAAYC,MAAM,+FAAA;EACxB,MAAMD,YAAYC,MAAM,qGAAA;EAExB,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EAED,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EAGD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;;;;SAevB;EACD,MAAMD,YAAYC,MAAM,uEAAA;EACxB,MAAMD,YAAYC,MAAM,mFAAA;EACxB,MAAMD,YAAYC,MAAM,iFAAA;EACxB,MAAMD,YAAYC,MAAM,+EAAA;EAExB,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;SAYvB;EACD,MAAMD,YAAYC,MAAM,2FAAA;EACxB,MAAMD,YAAYC,MAAM;;;SAGvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;CACL;CAEA,MAAaC,KAAKF,aAAyC;EAEvD,MAAMA,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM,2DAAA;EACxB,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM,qDAAA;EACxB,MAAMD,YAAYC,MAAM,sDAAA;EACxB,MAAMD,YAAYC,MAAM,uDAAA;EACxB,MAAMD,YAAYC,MAAM,iDAAA;EACxB,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAED,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAED,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM,gEAAA;EACxB,MAAMD,YAAYC,MAAM,6DAAA;EACxB,MAAMD,YAAYC,MAAM;;SAEvB;EAGD,MAAMD,YAAYC,MAAM,sDAAA;EACxB,MAAMD,YAAYC,MAAM,sDAAA;EACxB,MAAMD,YAAYC,MAAM,oDAAA;EACxB,MAAMD,YAAYC,MAAM,oDAAA;EACxB,MAAMD,YAAYC,MAAM,8DAAA;EACxB,MAAMD,YAAYC,MAAM,sDAAA;EACxB,MAAMD,YAAYC,MAAM,oDAAA;EACxB,MAAMD,YAAYC,MAAM,qDAAA;EACxB,MAAMD,YAAYC,MAAM,2DAAA;EACxB,MAAMD,YAAYC,MAAM,sDAAA;EACxB,MAAMD,YAAYC,MAAM,4BAAA;CAC5B;AACJ"}
@@ -14,6 +14,6 @@ export declare class EntitySubscriber<T extends ObjectLiteral> implements Entity
14
14
  afterUpdate(event: UpdateEvent<T>): Promise<any>;
15
15
  afterRemove(event: RemoveEvent<T>): Promise<any>;
16
16
  protected dropCacheKeys(connection: DataSource, data: T): Promise<void>;
17
- protected publish(event: `${EntityDefaultEventName}`, data: T): Promise<void>;
17
+ protected publish(event: `${EntityDefaultEventName}`, data: T, dataPrevious?: T): Promise<void>;
18
18
  }
19
19
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/adapters/database/subscriber/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACH,sBAAsB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EACR,UAAU,EACV,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAC3D,IAAI,EAAE,GAAG,UAAU,EAAE,EACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GACrD,CAAC,IAAI,EAAE,CAAC,KAAK,uBAAuB,CAsBvC;AAED,qBAAa,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAE,YAAW,yBAAyB,CAAC,CAAC,CAAC;IAC1F,SAAS,CAAC,GAAG,EAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,SAAS,CAAC,EAAG,qBAAqB,CAAC;gBAEjC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAK3C,YAAY,CAAC,SAAS,EAAE,qBAAqB,GAAI,IAAI;IAKrD,QAAQ,IAAK,QAAQ,GAAG,MAAM;IAIxB,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAYhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAUhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;cActC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAI,OAAO,CAAC,IAAI,CAAC;cAQ9D,OAAO,CAAC,KAAK,EAAE,GAAG,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC,GAAI,OAAO,CAAC,IAAI,CAAC;CAcvF"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/adapters/database/subscriber/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACH,sBAAsB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EACR,UAAU,EACV,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAC3D,IAAI,EAAE,GAAG,UAAU,EAAE,EACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GACrD,CAAC,IAAI,EAAE,CAAC,KAAK,uBAAuB,CAsBvC;AAED,qBAAa,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAE,YAAW,yBAAyB,CAAC,CAAC,CAAC;IAC1F,SAAS,CAAC,GAAG,EAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,SAAS,CAAC,EAAG,qBAAqB,CAAC;gBAEjC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAK3C,YAAY,CAAC,SAAS,EAAE,qBAAqB,GAAI,IAAI;IAKrD,QAAQ,IAAK,QAAQ,GAAG,MAAM;IAIxB,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAYhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAUhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;cActC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAI,OAAO,CAAC,IAAI,CAAC;cAQ9D,OAAO,CACnB,KAAK,EAAE,GAAG,sBAAsB,EAAE,EAClC,IAAI,EAAE,CAAC,EACP,YAAY,CAAC,EAAE,CAAC,GAChB,OAAO,CAAC,IAAI,CAAC;CAepB"}
@@ -41,7 +41,7 @@ var EntitySubscriber = class {
41
41
  async afterUpdate(event) {
42
42
  if (!event.entity) return;
43
43
  await this.dropCacheKeys(event.connection, event.entity);
44
- await this.publish(EntityDefaultEventName.UPDATED, event.entity);
44
+ await this.publish(EntityDefaultEventName.UPDATED, event.entity, event.databaseEntity);
45
45
  }
46
46
  async afterRemove(event) {
47
47
  const entity = event.databaseEntity ?? event.entity;
@@ -53,7 +53,7 @@ var EntitySubscriber = class {
53
53
  if (!this.ctx.cache || !connection.queryResultCache) return;
54
54
  await connection.queryResultCache.remove(this.ctx.cache.keys(data));
55
55
  }
56
- async publish(event, data) {
56
+ async publish(event, data, dataPrevious) {
57
57
  if (!this.publisher) return;
58
58
  await this.publisher.safePublish({
59
59
  content: {
@@ -61,7 +61,8 @@ var EntitySubscriber = class {
61
61
  event,
62
62
  data
63
63
  },
64
- destinations: this.ctx.destinations(data)
64
+ destinations: this.ctx.destinations(data),
65
+ ...dataPrevious ? { dataPrevious } : {}
65
66
  });
66
67
  }
67
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["EntityDefaultEventName","buildEntityChannelName","buildEntityNamespaceName","buildEntityDestinations","type","realmIds","data","destinations","channel","id","items","seen","Set","realmId","has","add","push","namespace","EntitySubscriber","ctx","publisher","setPublisher","listenTo","target","afterInsert","event","entity","cache","onInsert","dropCacheKeys","connection","publish","CREATED","afterUpdate","UPDATED","afterRemove","databaseEntity","DELETED","queryResultCache","remove","keys","safePublish","content"],"sources":["../../../../src/adapters/database/subscriber/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { EntityType } from '@authup/core-kit';\nimport {\n EntityDefaultEventName,\n buildEntityChannelName,\n buildEntityNamespaceName,\n} from '@authup/core-kit';\nimport type { DomainEventDestinations, IDomainEventPublisher } from '@authup/server-kit';\nimport type {\n DataSource,\n EntitySubscriberInterface,\n InsertEvent,\n ObjectLiteral,\n RemoveEvent,\n UpdateEvent,\n} from 'typeorm';\nimport type { EntitySubscriberContext } from './types.ts';\n\nexport function buildEntityDestinations<T extends ObjectLiteral>(\n type: `${EntityType}`,\n realmIds?: (data: T) => (string | null | undefined)[],\n) : (data: T) => DomainEventDestinations {\n return (data) => {\n const destinations : DomainEventDestinations = [\n { channel: (id) => buildEntityChannelName(type, id) },\n ];\n\n if (realmIds) {\n const items = realmIds(data);\n const seen = new Set<string>();\n for (const realmId of items) {\n if (realmId && !seen.has(realmId)) {\n seen.add(realmId);\n destinations.push({\n channel: (id) => buildEntityChannelName(type, id),\n namespace: buildEntityNamespaceName(realmId),\n });\n }\n }\n }\n\n return destinations;\n };\n}\n\nexport class EntitySubscriber<T extends ObjectLiteral> implements EntitySubscriberInterface<T> {\n protected ctx : EntitySubscriberContext<T>;\n\n protected publisher? : IDomainEventPublisher;\n\n constructor(ctx: EntitySubscriberContext<T>) {\n this.ctx = ctx;\n this.publisher = ctx.publisher;\n }\n\n setPublisher(publisher: IDomainEventPublisher) : void {\n this.publisher = publisher;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n listenTo() : Function | string {\n return this.ctx.target;\n }\n\n async afterInsert(event: InsertEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n if (this.ctx.cache && this.ctx.cache.onInsert) {\n await this.dropCacheKeys(event.connection, event.entity);\n }\n\n await this.publish(EntityDefaultEventName.CREATED, event.entity);\n }\n\n async afterUpdate(event: UpdateEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, event.entity as T);\n\n await this.publish(EntityDefaultEventName.UPDATED, event.entity as T);\n }\n\n async afterRemove(event: RemoveEvent<T>): Promise<any> {\n // remove() strips the primary key from event.entity before the\n // subscriber runs — databaseEntity is the pre-removal row and keeps\n // the id-keyed cache invalidation (and the DELETED payload) intact.\n const entity = event.databaseEntity ?? event.entity;\n if (!entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, entity);\n\n await this.publish(EntityDefaultEventName.DELETED, entity);\n }\n\n protected async dropCacheKeys(connection: DataSource, data: T) : Promise<void> {\n if (!this.ctx.cache || !connection.queryResultCache) {\n return;\n }\n\n await connection.queryResultCache.remove(this.ctx.cache.keys(data));\n }\n\n protected async publish(event: `${EntityDefaultEventName}`, data: T) : Promise<void> {\n if (!this.publisher) {\n return;\n }\n\n await this.publisher.safePublish({\n content: {\n type: this.ctx.type,\n event,\n data,\n },\n destinations: this.ctx.destinations(data),\n });\n }\n}\n"],"mappings":";;;;;AAwBA,SAAgBG,wBACZC,MACAC,UAAqD;CAErD,QAAQC,SAAAA;EACJ,MAAMC,eAAyC,CAC3C,EAAEC,UAAUC,OAAOR,uBAAuBG,MAAMK,EAAAA,EAAI,CAAA;EAGxD,IAAIJ,UAAU;GACV,MAAMK,QAAQL,SAASC,IAAAA;GACvB,MAAMK,uBAAO,IAAIC,IAAAA;GACjB,KAAK,MAAMC,WAAWH,OAClB,IAAIG,WAAW,CAACF,KAAKG,IAAID,OAAAA,GAAU;IAC/BF,KAAKI,IAAIF,OAAAA;IACTN,aAAaS,KAAK;KACdR,UAAUC,OAAOR,uBAAuBG,MAAMK,EAAAA;KAC9CQ,WAAWf,yBAAyBW,OAAAA;IACxC,CAAA;GACJ;EAER;EAEA,OAAON;CACX;AACJ;AAEA,IAAaW,mBAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYD,KAAiC;EACzC,KAAKA,MAAMA;EACX,KAAKC,YAAYD,IAAIC;CACzB;CAEAC,aAAaD,WAAyC;EAClD,KAAKA,YAAYA;CACrB;CAGAE,WAA+B;EAC3B,OAAO,KAAKH,IAAII;CACpB;CAEA,MAAMC,YAAYC,OAAqC;EACnD,IAAI,CAACA,MAAMC,QACP;EAGJ,IAAI,KAAKP,IAAIQ,SAAS,KAAKR,IAAIQ,MAAMC,UACjC,MAAM,KAAKC,cAAcJ,MAAMK,YAAYL,MAAMC,MAAM;EAG3D,MAAM,KAAKK,QAAQ/B,uBAAuBgC,SAASP,MAAMC,MAAM;CACnE;CAEA,MAAMO,YAAYR,OAAqC;EACnD,IAAI,CAACA,MAAMC,QACP;EAGJ,MAAM,KAAKG,cAAcJ,MAAMK,YAAYL,MAAMC,MAAM;EAEvD,MAAM,KAAKK,QAAQ/B,uBAAuBkC,SAAST,MAAMC,MAAM;CACnE;CAEA,MAAMS,YAAYV,OAAqC;EAInD,MAAMC,SAASD,MAAMW,kBAAkBX,MAAMC;EAC7C,IAAI,CAACA,QACD;EAGJ,MAAM,KAAKG,cAAcJ,MAAMK,YAAYJ,MAAAA;EAE3C,MAAM,KAAKK,QAAQ/B,uBAAuBqC,SAASX,MAAAA;CACvD;CAEA,MAAgBG,cAAcC,YAAwBxB,MAAyB;EAC3E,IAAI,CAAC,KAAKa,IAAIQ,SAAS,CAACG,WAAWQ,kBAC/B;EAGJ,MAAMR,WAAWQ,iBAAiBC,OAAO,KAAKpB,IAAIQ,MAAMa,KAAKlC,IAAAA,CAAAA;CACjE;CAEA,MAAgByB,QAAQN,OAAoCnB,MAAyB;EACjF,IAAI,CAAC,KAAKc,WACN;EAGJ,MAAM,KAAKA,UAAUqB,YAAY;GAC7BC,SAAS;IACLtC,MAAM,KAAKe,IAAIf;IACfqB;IACAnB;GACJ;GACAC,cAAc,KAAKY,IAAIZ,aAAaD,IAAAA;EACxC,CAAA;CACJ;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["EntityDefaultEventName","buildEntityChannelName","buildEntityNamespaceName","buildEntityDestinations","type","realmIds","data","destinations","channel","id","items","seen","Set","realmId","has","add","push","namespace","EntitySubscriber","ctx","publisher","setPublisher","listenTo","target","afterInsert","event","entity","cache","onInsert","dropCacheKeys","connection","publish","CREATED","afterUpdate","UPDATED","databaseEntity","afterRemove","DELETED","queryResultCache","remove","keys","dataPrevious","safePublish","content"],"sources":["../../../../src/adapters/database/subscriber/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { EntityType } from '@authup/core-kit';\nimport {\n EntityDefaultEventName,\n buildEntityChannelName,\n buildEntityNamespaceName,\n} from '@authup/core-kit';\nimport type { DomainEventDestinations, IDomainEventPublisher } from '@authup/server-kit';\nimport type {\n DataSource,\n EntitySubscriberInterface,\n InsertEvent,\n ObjectLiteral,\n RemoveEvent,\n UpdateEvent,\n} from 'typeorm';\nimport type { EntitySubscriberContext } from './types.ts';\n\nexport function buildEntityDestinations<T extends ObjectLiteral>(\n type: `${EntityType}`,\n realmIds?: (data: T) => (string | null | undefined)[],\n) : (data: T) => DomainEventDestinations {\n return (data) => {\n const destinations : DomainEventDestinations = [\n { channel: (id) => buildEntityChannelName(type, id) },\n ];\n\n if (realmIds) {\n const items = realmIds(data);\n const seen = new Set<string>();\n for (const realmId of items) {\n if (realmId && !seen.has(realmId)) {\n seen.add(realmId);\n destinations.push({\n channel: (id) => buildEntityChannelName(type, id),\n namespace: buildEntityNamespaceName(realmId),\n });\n }\n }\n }\n\n return destinations;\n };\n}\n\nexport class EntitySubscriber<T extends ObjectLiteral> implements EntitySubscriberInterface<T> {\n protected ctx : EntitySubscriberContext<T>;\n\n protected publisher? : IDomainEventPublisher;\n\n constructor(ctx: EntitySubscriberContext<T>) {\n this.ctx = ctx;\n this.publisher = ctx.publisher;\n }\n\n setPublisher(publisher: IDomainEventPublisher) : void {\n this.publisher = publisher;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n listenTo() : Function | string {\n return this.ctx.target;\n }\n\n async afterInsert(event: InsertEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n if (this.ctx.cache && this.ctx.cache.onInsert) {\n await this.dropCacheKeys(event.connection, event.entity);\n }\n\n await this.publish(EntityDefaultEventName.CREATED, event.entity);\n }\n\n async afterUpdate(event: UpdateEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, event.entity as T);\n\n await this.publish(EntityDefaultEventName.UPDATED, event.entity as T, event.databaseEntity);\n }\n\n async afterRemove(event: RemoveEvent<T>): Promise<any> {\n // remove() strips the primary key from event.entity before the\n // subscriber runs — databaseEntity is the pre-removal row and keeps\n // the id-keyed cache invalidation (and the DELETED payload) intact.\n const entity = event.databaseEntity ?? event.entity;\n if (!entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, entity);\n\n await this.publish(EntityDefaultEventName.DELETED, entity);\n }\n\n protected async dropCacheKeys(connection: DataSource, data: T) : Promise<void> {\n if (!this.ctx.cache || !connection.queryResultCache) {\n return;\n }\n\n await connection.queryResultCache.remove(this.ctx.cache.keys(data));\n }\n\n protected async publish(\n event: `${EntityDefaultEventName}`,\n data: T,\n dataPrevious?: T,\n ) : Promise<void> {\n if (!this.publisher) {\n return;\n }\n\n await this.publisher.safePublish({\n content: {\n type: this.ctx.type,\n event,\n data,\n },\n destinations: this.ctx.destinations(data),\n ...(dataPrevious ? { dataPrevious } : {}),\n });\n }\n}\n"],"mappings":";;;;;AAwBA,SAAgBG,wBACZC,MACAC,UAAqD;CAErD,QAAQC,SAAAA;EACJ,MAAMC,eAAyC,CAC3C,EAAEC,UAAUC,OAAOR,uBAAuBG,MAAMK,EAAAA,EAAI,CAAA;EAGxD,IAAIJ,UAAU;GACV,MAAMK,QAAQL,SAASC,IAAAA;GACvB,MAAMK,uBAAO,IAAIC,IAAAA;GACjB,KAAK,MAAMC,WAAWH,OAClB,IAAIG,WAAW,CAACF,KAAKG,IAAID,OAAAA,GAAU;IAC/BF,KAAKI,IAAIF,OAAAA;IACTN,aAAaS,KAAK;KACdR,UAAUC,OAAOR,uBAAuBG,MAAMK,EAAAA;KAC9CQ,WAAWf,yBAAyBW,OAAAA;IACxC,CAAA;GACJ;EAER;EAEA,OAAON;CACX;AACJ;AAEA,IAAaW,mBAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYD,KAAiC;EACzC,KAAKA,MAAMA;EACX,KAAKC,YAAYD,IAAIC;CACzB;CAEAC,aAAaD,WAAyC;EAClD,KAAKA,YAAYA;CACrB;CAGAE,WAA+B;EAC3B,OAAO,KAAKH,IAAII;CACpB;CAEA,MAAMC,YAAYC,OAAqC;EACnD,IAAI,CAACA,MAAMC,QACP;EAGJ,IAAI,KAAKP,IAAIQ,SAAS,KAAKR,IAAIQ,MAAMC,UACjC,MAAM,KAAKC,cAAcJ,MAAMK,YAAYL,MAAMC,MAAM;EAG3D,MAAM,KAAKK,QAAQ/B,uBAAuBgC,SAASP,MAAMC,MAAM;CACnE;CAEA,MAAMO,YAAYR,OAAqC;EACnD,IAAI,CAACA,MAAMC,QACP;EAGJ,MAAM,KAAKG,cAAcJ,MAAMK,YAAYL,MAAMC,MAAM;EAEvD,MAAM,KAAKK,QAAQ/B,uBAAuBkC,SAAST,MAAMC,QAAaD,MAAMU,cAAc;CAC9F;CAEA,MAAMC,YAAYX,OAAqC;EAInD,MAAMC,SAASD,MAAMU,kBAAkBV,MAAMC;EAC7C,IAAI,CAACA,QACD;EAGJ,MAAM,KAAKG,cAAcJ,MAAMK,YAAYJ,MAAAA;EAE3C,MAAM,KAAKK,QAAQ/B,uBAAuBqC,SAASX,MAAAA;CACvD;CAEA,MAAgBG,cAAcC,YAAwBxB,MAAyB;EAC3E,IAAI,CAAC,KAAKa,IAAIQ,SAAS,CAACG,WAAWQ,kBAC/B;EAGJ,MAAMR,WAAWQ,iBAAiBC,OAAO,KAAKpB,IAAIQ,MAAMa,KAAKlC,IAAAA,CAAAA;CACjE;CAEA,MAAgByB,QACZN,OACAnB,MACAmC,cACc;EACd,IAAI,CAAC,KAAKrB,WACN;EAGJ,MAAM,KAAKA,UAAUsB,YAAY;GAC7BC,SAAS;IACLvC,MAAM,KAAKe,IAAIf;IACfqB;IACAnB;GACJ;GACAC,cAAc,KAAKY,IAAIZ,aAAaD,IAAAA;GACpC,GAAImC,eAAe,EAAEA,aAAa,IAAI,CAAC;EAC3C,CAAA;CACJ;AACJ"}
@@ -2,6 +2,7 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { HTTPOAuth2Authorizer } from "./oauth2/authorization/module.mjs";
5
+ import { extractOAuth2ClientCertificateEvidence } from "./oauth2/grant-types/utils/certificate.mjs";
5
6
  import { extractClientCredentialsFromRequest, readStringField } from "./oauth2/grant-types/utils/credentials.mjs";
6
7
  import { guessOauth2GrantTypeByRequest } from "./oauth2/grant-types/utils/guess.mjs";
7
8
  import { readRealmHint } from "./oauth2/grant-types/utils/realm.mjs";
@@ -12,4 +13,4 @@ import { HTTPPasswordGrant } from "./oauth2/grant-types/password.mjs";
12
13
  import { HTTPOAuth2RefreshTokenGrant } from "./oauth2/grant-types/refresh_token.mjs";
13
14
  import { HTTPRobotCredentialsGrant } from "./oauth2/grant-types/robot-credentials.mjs";
14
15
  import "./oauth2/index.mjs";
15
- export { HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, HTTPRobotCredentialsGrant, extractClientCredentialsFromRequest, guessOauth2GrantTypeByRequest, readRealmHint, readStringField };
16
+ export { HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, HTTPRobotCredentialsGrant, extractClientCredentialsFromRequest, extractOAuth2ClientCertificateEvidence, guessOauth2GrantTypeByRequest, readRealmHint, readStringField };
@@ -1,11 +1,14 @@
1
1
  import type { IAppEvent } from 'routup';
2
+ import type { Logger } from '@authup/server-kit';
2
3
  import type { OAuth2AuthorizationCodeRequest } from '@authup/core-kit';
3
- import type { IOAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationResult } from '../../../../../core/index.ts';
4
+ import type { IConsentService, IOAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationResult } from '../../../../../core/index.ts';
4
5
  import { OAuth2Authorization, OAuth2AuthorizationCodeRequestValidator } from '../../../../../core/index.ts';
5
6
  import type { HTTPOAuth2AuthorizationManagerContext } from './types.ts';
6
7
  export declare class HTTPOAuth2Authorizer extends OAuth2Authorization {
7
8
  protected codeRequestVerifier: IOAuth2AuthorizationCodeRequestVerifier;
8
9
  protected requestValidator: OAuth2AuthorizationCodeRequestValidator;
10
+ protected consentService?: IConsentService;
11
+ protected logger?: Logger;
9
12
  constructor(ctx: HTTPOAuth2AuthorizationManagerContext);
10
13
  authorizeWithRequest(event: IAppEvent): Promise<OAuth2AuthorizationResult>;
11
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/adapters/oauth2/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,uCAAuC,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,MAAM,8BAA8B,CAAC;AAE5G,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAExE,qBAAa,oBAAqB,SAAQ,mBAAmB;IACzD,SAAS,CAAC,mBAAmB,EAAG,uCAAuC,CAAC;IAExE,SAAS,CAAC,gBAAgB,EAAG,uCAAuC,CAAC;gBAEzD,GAAG,EAAE,qCAAqC;IAQhD,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAI,OAAO,CAAC,yBAAyB,CAAC;IAUjF;;;;OAIG;IACG,mBAAmB,CACrB,KAAK,EAAE,SAAS,GAChB,OAAO,CAAC,8BAA8B,CAAC;CAI9C"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/adapters/oauth2/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACxI,OAAO,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,MAAM,8BAA8B,CAAC;AAE5G,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAExE,qBAAa,oBAAqB,SAAQ,mBAAmB;IACzD,SAAS,CAAC,mBAAmB,EAAG,uCAAuC,CAAC;IAExE,SAAS,CAAC,gBAAgB,EAAG,uCAAuC,CAAC;IAErE,SAAS,CAAC,cAAc,CAAC,EAAG,eAAe,CAAC;IAE5C,SAAS,CAAC,MAAM,CAAC,EAAG,MAAM,CAAC;gBAEf,GAAG,EAAE,qCAAqC;IAUhD,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAI,OAAO,CAAC,yBAAyB,CAAC;IA6CjF;;;;OAIG;IACG,mBAAmB,CACrB,KAAK,EAAE,SAAS,GAChB,OAAO,CAAC,8BAA8B,CAAC;CAI9C"}
@@ -12,16 +12,41 @@ import "../../../request/index.mjs";
12
12
  var HTTPOAuth2Authorizer = class extends OAuth2Authorization {
13
13
  codeRequestVerifier;
14
14
  requestValidator;
15
+ consentService;
16
+ logger;
15
17
  constructor(ctx) {
16
18
  super(ctx);
17
19
  this.codeRequestVerifier = ctx.codeRequestVerifier;
20
+ this.consentService = ctx.consentService;
21
+ this.logger = ctx.logger;
18
22
  this.requestValidator = new OAuth2AuthorizationCodeRequestValidator();
19
23
  }
20
24
  async authorizeWithRequest(event) {
21
25
  const codeRequestValidated = await this.validateWithRequest(event);
22
- const { data } = await this.codeRequestVerifier.verify(codeRequestValidated);
26
+ const { data, client, redirectUriVerified } = await this.codeRequestVerifier.verify(codeRequestValidated);
23
27
  const identity = useRequestIdentityOrFail(event);
24
- return this.authorize(data, identity.raw, { sessionId: useRequestSessionId(event) });
28
+ const result = await this.authorize(data, identity.raw, {
29
+ sessionId: useRequestSessionId(event),
30
+ client,
31
+ redirectUriVerified
32
+ });
33
+ if (this.consentService && client && !client.built_in) try {
34
+ await this.consentService.record({
35
+ clientId: client.id,
36
+ realmId: client.realm_id,
37
+ owner: {
38
+ sub: identity.raw.data.id,
39
+ subKind: identity.raw.type
40
+ },
41
+ scope: data.scope ?? null
42
+ });
43
+ } catch (e) {
44
+ this.logger?.warn("Recording the OAuth2 consent grant failed.", {
45
+ clientId: client.id,
46
+ error: e
47
+ });
48
+ }
49
+ return result;
25
50
  }
26
51
  /**
27
52
  * Validate authorization request.
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["OAuth2Authorization","OAuth2AuthorizationCodeRequestValidator","readFromLocations","useRequestIdentityOrFail","useRequestSessionId","HTTPOAuth2Authorizer","codeRequestVerifier","requestValidator","ctx","authorizeWithRequest","event","codeRequestValidated","validateWithRequest","data","verify","identity","authorize","raw","sessionId","run"],"sources":["../../../../../../src/adapters/http/adapters/oauth2/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IAppEvent } from 'routup';\nimport type { OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport type { IOAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationResult } from '../../../../../core/index.ts';\nimport { OAuth2Authorization, OAuth2AuthorizationCodeRequestValidator } from '../../../../../core/index.ts';\nimport { readFromLocations, useRequestIdentityOrFail, useRequestSessionId } from '../../../request/index.ts';\nimport type { HTTPOAuth2AuthorizationManagerContext } from './types.ts';\n\nexport class HTTPOAuth2Authorizer extends OAuth2Authorization {\n protected codeRequestVerifier : IOAuth2AuthorizationCodeRequestVerifier;\n\n protected requestValidator : OAuth2AuthorizationCodeRequestValidator;\n\n constructor(ctx: HTTPOAuth2AuthorizationManagerContext) {\n super(ctx);\n\n this.codeRequestVerifier = ctx.codeRequestVerifier;\n\n this.requestValidator = new OAuth2AuthorizationCodeRequestValidator();\n }\n\n async authorizeWithRequest(event: IAppEvent) : Promise<OAuth2AuthorizationResult> {\n const codeRequestValidated = await this.validateWithRequest(event);\n\n const { data } = await this.codeRequestVerifier.verify(codeRequestValidated);\n\n const identity = useRequestIdentityOrFail(event);\n\n return this.authorize(data, identity.raw, { sessionId: useRequestSessionId(event) });\n }\n\n /**\n * Validate authorization request.\n *\n * @throws OAuth2Error\n */\n async validateWithRequest(\n event: IAppEvent,\n ) : Promise<OAuth2AuthorizationCodeRequest> {\n const data = await readFromLocations(event, ['body', 'query']);\n return this.requestValidator.run(data);\n }\n}\n"],"mappings":";;;;;;;;;;;AAcA,IAAaK,uBAAb,cAA0CL,oBAAAA;CAC5BM;CAEAC;CAEV,YAAYC,KAA4C;EACpD,MAAMA,GAAAA;EAEN,KAAKF,sBAAsBE,IAAIF;EAE/B,KAAKC,mBAAmB,IAAIN,wCAAAA;CAChC;CAEA,MAAMQ,qBAAqBC,OAAuD;EAC9E,MAAMC,uBAAuB,MAAM,KAAKC,oBAAoBF,KAAAA;EAE5D,MAAM,EAAEG,SAAS,MAAM,KAAKP,oBAAoBQ,OAAOH,oBAAAA;EAEvD,MAAMI,WAAWZ,yBAAyBO,KAAAA;EAE1C,OAAO,KAAKM,UAAUH,MAAME,SAASE,KAAK,EAAEC,WAAWd,oBAAoBM,KAAAA,EAAO,CAAA;CACtF;;;;;IAOA,MAAME,oBACFF,OACwC;EACxC,MAAMG,OAAO,MAAMX,kBAAkBQ,OAAO,CAAC,QAAQ,OAAA,CAAQ;EAC7D,OAAO,KAAKH,iBAAiBY,IAAIN,IAAAA;CACrC;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["OAuth2Authorization","OAuth2AuthorizationCodeRequestValidator","readFromLocations","useRequestIdentityOrFail","useRequestSessionId","HTTPOAuth2Authorizer","codeRequestVerifier","requestValidator","consentService","logger","ctx","authorizeWithRequest","event","codeRequestValidated","validateWithRequest","data","client","redirectUriVerified","verify","identity","result","authorize","raw","sessionId","built_in","record","clientId","id","realmId","realm_id","owner","sub","subKind","type","scope","e","warn","error","run"],"sources":["../../../../../../src/adapters/http/adapters/oauth2/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IAppEvent } from 'routup';\nimport type { Logger } from '@authup/server-kit';\nimport type { OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport type { IConsentService, IOAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationResult } from '../../../../../core/index.ts';\nimport { OAuth2Authorization, OAuth2AuthorizationCodeRequestValidator } from '../../../../../core/index.ts';\nimport { readFromLocations, useRequestIdentityOrFail, useRequestSessionId } from '../../../request/index.ts';\nimport type { HTTPOAuth2AuthorizationManagerContext } from './types.ts';\n\nexport class HTTPOAuth2Authorizer extends OAuth2Authorization {\n protected codeRequestVerifier : IOAuth2AuthorizationCodeRequestVerifier;\n\n protected requestValidator : OAuth2AuthorizationCodeRequestValidator;\n\n protected consentService? : IConsentService;\n\n protected logger? : Logger;\n\n constructor(ctx: HTTPOAuth2AuthorizationManagerContext) {\n super(ctx);\n\n this.codeRequestVerifier = ctx.codeRequestVerifier;\n this.consentService = ctx.consentService;\n this.logger = ctx.logger;\n\n this.requestValidator = new OAuth2AuthorizationCodeRequestValidator();\n }\n\n async authorizeWithRequest(event: IAppEvent) : Promise<OAuth2AuthorizationResult> {\n const codeRequestValidated = await this.validateWithRequest(event);\n\n const {\n data,\n client,\n redirectUriVerified,\n } = await this.codeRequestVerifier.verify(codeRequestValidated);\n\n const identity = useRequestIdentityOrFail(event);\n\n const result = await this.authorize(data, identity.raw, {\n sessionId: useRequestSessionId(event),\n client,\n redirectUriVerified,\n });\n\n // Persisted per-scope consent (plan 055): recorded only after a\n // successful approval — an access-policy denial throws inside\n // authorize() above, so a denied identity never writes a row.\n // built_in clients keep zero rows (locked); insert-missing makes\n // re-recording idempotent (union/keep).\n if (this.consentService && client && !client.built_in) {\n try {\n await this.consentService.record({\n clientId: client.id,\n realmId: client.realm_id,\n owner: {\n sub: identity.raw.data.id,\n subKind: identity.raw.type,\n },\n scope: data.scope ?? null,\n });\n } catch (e) {\n // never fail an issued code over a consent-write failure\n this.logger?.warn('Recording the OAuth2 consent grant failed.', {\n clientId: client.id,\n error: e,\n });\n }\n }\n\n return result;\n }\n\n /**\n * Validate authorization request.\n *\n * @throws OAuth2Error\n */\n async validateWithRequest(\n event: IAppEvent,\n ) : Promise<OAuth2AuthorizationCodeRequest> {\n const data = await readFromLocations(event, ['body', 'query']);\n return this.requestValidator.run(data);\n }\n}\n"],"mappings":";;;;;;;;;;;AAeA,IAAaK,uBAAb,cAA0CL,oBAAAA;CAC5BM;CAEAC;CAEAC;CAEAC;CAEV,YAAYC,KAA4C;EACpD,MAAMA,GAAAA;EAEN,KAAKJ,sBAAsBI,IAAIJ;EAC/B,KAAKE,iBAAiBE,IAAIF;EAC1B,KAAKC,SAASC,IAAID;EAElB,KAAKF,mBAAmB,IAAIN,wCAAAA;CAChC;CAEA,MAAMU,qBAAqBC,OAAuD;EAC9E,MAAMC,uBAAuB,MAAM,KAAKC,oBAAoBF,KAAAA;EAE5D,MAAM,EACFG,MACAC,QACAC,wBACA,MAAM,KAAKX,oBAAoBY,OAAOL,oBAAAA;EAE1C,MAAMM,WAAWhB,yBAAyBS,KAAAA;EAE1C,MAAMQ,SAAS,MAAM,KAAKC,UAAUN,MAAMI,SAASG,KAAK;GACpDC,WAAWnB,oBAAoBQ,KAAAA;GAC/BI;GACAC;EACJ,CAAA;EAOA,IAAI,KAAKT,kBAAkBQ,UAAU,CAACA,OAAOQ,UACzC,IAAI;GACA,MAAM,KAAKhB,eAAeiB,OAAO;IAC7BC,UAAUV,OAAOW;IACjBC,SAASZ,OAAOa;IAChBC,OAAO;KACHC,KAAKZ,SAASG,IAAIP,KAAKY;KACvBK,SAASb,SAASG,IAAIW;IAC1B;IACAC,OAAOnB,KAAKmB,SAAS;GACzB,CAAA;EACJ,SAASC,GAAG;GAER,KAAK1B,QAAQ2B,KAAK,8CAA8C;IAC5DV,UAAUV,OAAOW;IACjBU,OAAOF;GACX,CAAA;EACJ;EAGJ,OAAOf;CACX;;;;;IAOA,MAAMN,oBACFF,OACwC;EACxC,MAAMG,OAAO,MAAMb,kBAAkBU,OAAO,CAAC,QAAQ,OAAA,CAAQ;EAC7D,OAAO,KAAKL,iBAAiB+B,IAAIvB,IAAAA;CACrC;AACJ"}
@@ -1,5 +1,13 @@
1
- import type { IOAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationManagerContext } from '../../../../../core/index.ts';
1
+ import type { Logger } from '@authup/server-kit';
2
+ import type { IConsentService, IOAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationManagerContext } from '../../../../../core/index.ts';
2
3
  export type HTTPOAuth2AuthorizationManagerContext = OAuth2AuthorizationManagerContext & {
3
4
  codeRequestVerifier: IOAuth2AuthorizationCodeRequestVerifier;
5
+ /**
6
+ * Persisted per-scope consent (plan 055): records the approved scope
7
+ * tokens after a successful (non-built_in) authorization. Absent =
8
+ * feature inert.
9
+ */
10
+ consentService?: IConsentService;
11
+ logger?: Logger;
4
12
  };
5
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/adapters/oauth2/authorization/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uCAAuC,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AAE/H,MAAM,MAAM,qCAAqC,GAAG,iCAAiC,GAAG;IACpF,mBAAmB,EAAE,uCAAuC,CAAC;CAChE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/adapters/oauth2/authorization/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EACR,eAAe,EACf,uCAAuC,EACvC,iCAAiC,EACpC,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,qCAAqC,GAAG,iCAAiC,GAAG;IACpF,mBAAmB,EAAE,uCAAuC,CAAC;IAC7D;;;;OAIG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -1,12 +1,15 @@
1
1
  import type { OAuth2TokenGrantResponse } from '@authup/specs';
2
2
  import type { IAppEvent } from 'routup';
3
3
  import { OAuth2AuthorizeGrant } from '../../../../../core/index.ts';
4
- import type { IOAuth2AuthorizationCodeVerifier, IRealmRepository, OAuth2ClientAuthenticator } from '../../../../../core/index.ts';
4
+ import type { IOAuth2AccessPolicyEvaluator, IOAuth2AuthorizationCodeVerifier, IRealmRepository, OAuth2ClientAuthenticator } from '../../../../../core/index.ts';
5
5
  import type { HTTPOAuth2AuthorizeGrantContext, IHTTPOAuth2Grant } from './types.ts';
6
+ import type { CertificateSource } from '../../../request/index.ts';
6
7
  export declare class HTTPOAuth2AuthorizeGrant extends OAuth2AuthorizeGrant implements IHTTPOAuth2Grant {
7
8
  protected codeVerifier: IOAuth2AuthorizationCodeVerifier;
8
9
  protected clientAuthenticator: OAuth2ClientAuthenticator;
9
10
  protected realmRepository: IRealmRepository;
11
+ protected accessPolicyEvaluator?: IOAuth2AccessPolicyEvaluator;
12
+ protected certificateSource: CertificateSource;
10
13
  constructor(ctx: HTTPOAuth2AuthorizeGrantContext);
11
14
  runWithRequest(event: IAppEvent): Promise<OAuth2TokenGrantResponse>;
12
15
  protected pickStringParam(body: Record<string, any> | undefined, query: Record<string, any> | undefined, key: string): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/adapters/oauth2/grant-types/authorize.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAA4B,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EACR,gCAAgC,EAChC,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGpF,qBAAa,wBAAyB,SAAQ,oBAAqB,YAAW,gBAAgB;IAC1F,SAAS,CAAC,YAAY,EAAG,gCAAgC,CAAC;IAE1D,SAAS,CAAC,mBAAmB,EAAG,yBAAyB,CAAC;IAE1D,SAAS,CAAC,eAAe,EAAG,gBAAgB,CAAC;gBAEjC,GAAG,EAAE,+BAA+B;IAQ1C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAgCzE,SAAS,CAAC,eAAe,CACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACtC,GAAG,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS;CAIxB"}
1
+ {"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/adapters/oauth2/grant-types/authorize.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAK9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAA4B,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EACR,4BAA4B,EAC5B,gCAAgC,EAChC,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOnE,qBAAa,wBAAyB,SAAQ,oBAAqB,YAAW,gBAAgB;IAC1F,SAAS,CAAC,YAAY,EAAG,gCAAgC,CAAC;IAE1D,SAAS,CAAC,mBAAmB,EAAG,yBAAyB,CAAC;IAE1D,SAAS,CAAC,eAAe,EAAG,gBAAgB,CAAC;IAE7C,SAAS,CAAC,qBAAqB,CAAC,EAAG,4BAA4B,CAAC;IAEhE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBAEnC,GAAG,EAAE,+BAA+B;IAU1C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA8DzE,SAAS,CAAC,eAAe,CACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACtC,GAAG,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS;CAIxB"}