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

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 (1541) 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 -21
  3. package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client/entity.d.ts +17 -14
  5. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  6. package/dist/adapters/database/domains/client/entity.mjs +72 -30
  7. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  8. package/dist/adapters/database/domains/client/subscriber.mjs +1 -1
  9. package/dist/adapters/database/domains/client/subscriber.mjs.map +1 -1
  10. package/dist/adapters/database/domains/client-permission/entity.d.ts +10 -10
  11. package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
  12. package/dist/adapters/database/domains/client-permission/entity.mjs +42 -23
  13. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  14. package/dist/adapters/database/domains/client-permission/subscriber.mjs +2 -2
  15. package/dist/adapters/database/domains/client-permission/subscriber.mjs.map +1 -1
  16. package/dist/adapters/database/domains/client-role/entity.d.ts +8 -8
  17. package/dist/adapters/database/domains/client-role/entity.d.ts.map +1 -1
  18. package/dist/adapters/database/domains/client-role/entity.mjs +29 -17
  19. package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
  20. package/dist/adapters/database/domains/client-role/subscriber.mjs +2 -2
  21. package/dist/adapters/database/domains/client-role/subscriber.mjs.map +1 -1
  22. package/dist/adapters/database/domains/client-scope/entity.d.ts +8 -8
  23. package/dist/adapters/database/domains/client-scope/entity.d.ts.map +1 -1
  24. package/dist/adapters/database/domains/client-scope/entity.mjs +29 -17
  25. package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
  26. package/dist/adapters/database/domains/consent/entity.d.ts +20 -0
  27. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -0
  28. package/dist/adapters/database/domains/consent/entity.mjs +125 -0
  29. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -0
  30. package/dist/adapters/database/domains/consent/index.d.ts.map +1 -0
  31. package/dist/adapters/database/domains/consent/index.mjs +6 -0
  32. package/dist/adapters/database/domains/consent/subscriber.d.ts +6 -0
  33. package/dist/adapters/database/domains/consent/subscriber.d.ts.map +1 -0
  34. package/dist/adapters/database/domains/{robot-role → consent}/subscriber.mjs +11 -11
  35. package/dist/adapters/database/domains/consent/subscriber.mjs.map +1 -0
  36. package/dist/adapters/database/domains/constants.d.ts +1 -3
  37. package/dist/adapters/database/domains/constants.d.ts.map +1 -1
  38. package/dist/adapters/database/domains/constants.mjs +1 -3
  39. package/dist/adapters/database/domains/constants.mjs.map +1 -1
  40. package/dist/adapters/database/domains/event/entity.d.ts +22 -0
  41. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -0
  42. package/dist/adapters/database/domains/event/entity.mjs +189 -0
  43. package/dist/adapters/database/domains/event/entity.mjs.map +1 -0
  44. package/dist/adapters/database/domains/event/index.d.ts +2 -0
  45. package/dist/adapters/database/domains/event/index.d.ts.map +1 -0
  46. package/dist/adapters/database/domains/event/index.mjs +5 -0
  47. package/dist/adapters/database/domains/identity-provider/entity.d.ts +4 -4
  48. package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
  49. package/dist/adapters/database/domains/identity-provider/entity.mjs +17 -10
  50. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  51. package/dist/adapters/database/domains/identity-provider/repository.mjs +3 -3
  52. package/dist/adapters/database/domains/identity-provider/repository.mjs.map +1 -1
  53. package/dist/adapters/database/domains/identity-provider/subscriber.mjs +1 -1
  54. package/dist/adapters/database/domains/identity-provider/subscriber.mjs.map +1 -1
  55. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts +15 -15
  56. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
  57. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +52 -33
  58. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  59. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts +4 -4
  60. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
  61. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +18 -9
  62. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  63. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts +9 -9
  64. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
  65. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +29 -19
  66. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  67. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts +10 -10
  68. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
  69. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +32 -21
  70. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  71. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts +10 -10
  72. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
  73. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +32 -21
  74. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  75. package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs +1 -1
  76. package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs.map +1 -1
  77. package/dist/adapters/database/domains/index.d.ts +4 -3
  78. package/dist/adapters/database/domains/index.d.ts.map +1 -1
  79. package/dist/adapters/database/domains/index.mjs +24 -24
  80. package/dist/adapters/database/domains/key/entity.d.ts +12 -8
  81. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  82. package/dist/adapters/database/domains/key/entity.mjs +56 -21
  83. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  84. package/dist/adapters/database/domains/permission/entity.d.ts +7 -7
  85. package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
  86. package/dist/adapters/database/domains/permission/entity.mjs +33 -18
  87. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  88. package/dist/adapters/database/domains/permission/subscriber.mjs +2 -2
  89. package/dist/adapters/database/domains/permission/subscriber.mjs.map +1 -1
  90. package/dist/adapters/database/domains/permission-policy/entity.d.ts +8 -8
  91. package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
  92. package/dist/adapters/database/domains/permission-policy/entity.mjs +31 -19
  93. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  94. package/dist/adapters/database/domains/policy/entity.d.ts +6 -6
  95. package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
  96. package/dist/adapters/database/domains/policy/entity.mjs +28 -14
  97. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  98. package/dist/adapters/database/domains/policy/repository.d.ts.map +1 -1
  99. package/dist/adapters/database/domains/policy/repository.mjs +6 -6
  100. package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
  101. package/dist/adapters/database/domains/policy-attribute/entity.d.ts +4 -4
  102. package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
  103. package/dist/adapters/database/domains/policy-attribute/entity.mjs +18 -9
  104. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  105. package/dist/adapters/database/domains/policy-attribute/subscriber.mjs +2 -2
  106. package/dist/adapters/database/domains/policy-attribute/subscriber.mjs.map +1 -1
  107. package/dist/adapters/database/domains/realm/entity.d.ts +4 -4
  108. package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
  109. package/dist/adapters/database/domains/realm/entity.mjs +16 -8
  110. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  111. package/dist/adapters/database/domains/role/entity.d.ts +6 -6
  112. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  113. package/dist/adapters/database/domains/role/entity.mjs +30 -16
  114. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  115. package/dist/adapters/database/domains/role/repository.mjs +4 -4
  116. package/dist/adapters/database/domains/role/repository.mjs.map +1 -1
  117. package/dist/adapters/database/domains/role/subscriber.mjs +1 -1
  118. package/dist/adapters/database/domains/role/subscriber.mjs.map +1 -1
  119. package/dist/adapters/database/domains/role-attribute/entity.d.ts +4 -4
  120. package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
  121. package/dist/adapters/database/domains/role-attribute/entity.mjs +18 -9
  122. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  123. package/dist/adapters/database/domains/role-attribute/subscriber.mjs +2 -2
  124. package/dist/adapters/database/domains/role-attribute/subscriber.mjs.map +1 -1
  125. package/dist/adapters/database/domains/role-permission/entity.d.ts +10 -10
  126. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  127. package/dist/adapters/database/domains/role-permission/entity.mjs +39 -23
  128. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  129. package/dist/adapters/database/domains/role-permission/subscriber.mjs +2 -2
  130. package/dist/adapters/database/domains/role-permission/subscriber.mjs.map +1 -1
  131. package/dist/adapters/database/domains/scope/entity.d.ts +5 -5
  132. package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
  133. package/dist/adapters/database/domains/scope/entity.mjs +23 -12
  134. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  135. package/dist/adapters/database/domains/scope/subscriber.mjs +1 -1
  136. package/dist/adapters/database/domains/scope/subscriber.mjs.map +1 -1
  137. package/dist/adapters/database/domains/session/entity.d.ts +14 -15
  138. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  139. package/dist/adapters/database/domains/session/entity.mjs +50 -38
  140. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  141. package/dist/adapters/database/domains/session-token/entity.d.ts +9 -9
  142. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
  143. package/dist/adapters/database/domains/session-token/entity.mjs +32 -19
  144. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
  145. package/dist/adapters/database/domains/trust-anchor/entity.d.ts +13 -0
  146. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -0
  147. package/dist/adapters/database/domains/trust-anchor/entity.mjs +61 -0
  148. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -0
  149. package/dist/adapters/database/domains/trust-anchor/index.d.ts +2 -0
  150. package/dist/adapters/database/domains/trust-anchor/index.d.ts.map +1 -0
  151. package/dist/adapters/database/domains/trust-anchor/index.mjs +5 -0
  152. package/dist/adapters/database/domains/user/entity.d.ts +12 -12
  153. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  154. package/dist/adapters/database/domains/user/entity.mjs +42 -27
  155. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  156. package/dist/adapters/database/domains/user/repository.mjs +3 -3
  157. package/dist/adapters/database/domains/user/repository.mjs.map +1 -1
  158. package/dist/adapters/database/domains/user/subscriber.mjs +1 -1
  159. package/dist/adapters/database/domains/user/subscriber.mjs.map +1 -1
  160. package/dist/adapters/database/domains/user-attribute/entity.d.ts +4 -4
  161. package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
  162. package/dist/adapters/database/domains/user-attribute/entity.mjs +15 -9
  163. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  164. package/dist/adapters/database/domains/user-attribute/subscriber.mjs +2 -2
  165. package/dist/adapters/database/domains/user-attribute/subscriber.mjs.map +1 -1
  166. package/dist/adapters/database/domains/user-authenticator/entity.d.ts +20 -0
  167. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -0
  168. package/dist/adapters/database/domains/user-authenticator/entity.mjs +111 -0
  169. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -0
  170. package/dist/adapters/database/domains/user-authenticator/index.d.ts +2 -0
  171. package/dist/adapters/database/domains/user-authenticator/index.d.ts.map +1 -0
  172. package/dist/adapters/database/domains/user-authenticator/index.mjs +5 -0
  173. package/dist/adapters/database/domains/user-permission/entity.d.ts +10 -10
  174. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  175. package/dist/adapters/database/domains/user-permission/entity.mjs +38 -22
  176. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  177. package/dist/adapters/database/domains/user-permission/subscriber.mjs +2 -2
  178. package/dist/adapters/database/domains/user-permission/subscriber.mjs.map +1 -1
  179. package/dist/adapters/database/domains/user-role/entity.d.ts +8 -8
  180. package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
  181. package/dist/adapters/database/domains/user-role/entity.mjs +29 -17
  182. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  183. package/dist/adapters/database/domains/user-role/subscriber.mjs +2 -2
  184. package/dist/adapters/database/domains/user-role/subscriber.mjs.map +1 -1
  185. package/dist/adapters/database/errors/driver.d.ts +14 -0
  186. package/dist/adapters/database/errors/driver.d.ts.map +1 -0
  187. package/dist/adapters/database/errors/driver.mjs +32 -0
  188. package/dist/adapters/database/errors/driver.mjs.map +1 -0
  189. package/dist/adapters/database/errors/index.d.ts +1 -0
  190. package/dist/adapters/database/errors/index.d.ts.map +1 -1
  191. package/dist/adapters/database/errors/index.mjs +2 -1
  192. package/dist/adapters/database/helpers/is-supported.mjs +1 -1
  193. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  194. package/dist/adapters/database/index.mjs +17 -17
  195. package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts +50 -0
  196. package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts.map +1 -0
  197. package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs +320 -0
  198. package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs.map +1 -0
  199. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.d.ts +12 -0
  200. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.d.ts.map +1 -0
  201. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.mjs +42 -0
  202. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.mjs.map +1 -0
  203. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.d.ts +18 -0
  204. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.d.ts.map +1 -0
  205. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.mjs +161 -0
  206. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.mjs.map +1 -0
  207. package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts +50 -0
  208. package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts.map +1 -0
  209. package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs +310 -0
  210. package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs.map +1 -0
  211. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.d.ts +12 -0
  212. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.d.ts.map +1 -0
  213. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.mjs +42 -0
  214. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.mjs.map +1 -0
  215. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.d.ts +18 -0
  216. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.d.ts.map +1 -0
  217. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.mjs +167 -0
  218. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.mjs.map +1 -0
  219. package/dist/adapters/database/subscriber/module.d.ts +1 -1
  220. package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
  221. package/dist/adapters/database/subscriber/module.mjs +4 -3
  222. package/dist/adapters/database/subscriber/module.mjs.map +1 -1
  223. package/dist/adapters/http/adapters/index.mjs +2 -2
  224. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +4 -1
  225. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
  226. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +27 -2
  227. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  228. package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts +9 -1
  229. package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts.map +1 -1
  230. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +4 -1
  231. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
  232. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +24 -4
  233. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  234. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts +4 -3
  235. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  236. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +13 -6
  237. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  238. package/dist/adapters/http/adapters/oauth2/grant-types/index.d.ts +0 -1
  239. package/dist/adapters/http/adapters/oauth2/grant-types/index.d.ts.map +1 -1
  240. package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +2 -2
  241. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +38 -2
  242. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
  243. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +119 -6
  244. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  245. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -0
  246. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
  247. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +16 -3
  248. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  249. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +14 -6
  250. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  251. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts +5 -0
  252. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts.map +1 -0
  253. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs +18 -0
  254. package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs.map +1 -0
  255. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +1 -1
  256. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts.map +1 -1
  257. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +1 -4
  258. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
  259. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts +1 -0
  260. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts.map +1 -1
  261. package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.mjs +2 -1
  262. package/dist/adapters/http/adapters/oauth2/index.mjs +2 -2
  263. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs +3 -3
  264. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs.map +1 -1
  265. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs +2 -2
  266. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs.map +1 -1
  267. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs +2 -2
  268. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs.map +1 -1
  269. package/dist/adapters/http/controllers/entities/consent/index.d.ts.map +1 -0
  270. package/dist/adapters/http/controllers/entities/consent/index.mjs +5 -0
  271. package/dist/adapters/http/controllers/entities/consent/module.d.ts +15 -0
  272. package/dist/adapters/http/controllers/entities/consent/module.d.ts.map +1 -0
  273. package/dist/adapters/http/controllers/entities/{robot-role → consent}/module.mjs +16 -29
  274. package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -0
  275. package/dist/adapters/http/controllers/entities/event/index.d.ts.map +1 -0
  276. package/dist/adapters/http/controllers/entities/event/index.mjs +5 -0
  277. package/dist/adapters/http/controllers/entities/event/module.d.ts +14 -0
  278. package/dist/adapters/http/controllers/entities/event/module.d.ts.map +1 -0
  279. package/dist/adapters/http/controllers/entities/event/module.mjs +68 -0
  280. package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -0
  281. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +4 -1
  282. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  283. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +55 -21
  284. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  285. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +3 -1
  286. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
  287. package/dist/adapters/http/controllers/entities/index.d.ts +5 -3
  288. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  289. package/dist/adapters/http/controllers/entities/index.mjs +11 -9
  290. package/dist/adapters/http/controllers/entities/key/index.d.ts.map +1 -0
  291. package/dist/adapters/http/controllers/entities/key/index.mjs +5 -0
  292. package/dist/adapters/http/controllers/entities/key/module.d.ts +17 -0
  293. package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -0
  294. package/dist/adapters/http/controllers/entities/key/module.mjs +116 -0
  295. package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -0
  296. package/dist/adapters/http/controllers/entities/policy/utils/validation.d.ts +1 -1
  297. package/dist/adapters/http/controllers/entities/policy/utils/validation.d.ts.map +1 -1
  298. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs +4 -4
  299. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs.map +1 -1
  300. package/dist/adapters/http/controllers/entities/realm/module.d.ts +2 -0
  301. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  302. package/dist/adapters/http/controllers/entities/realm/module.mjs +16 -1
  303. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  304. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs +1 -1
  305. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs.map +1 -1
  306. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs +3 -3
  307. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs.map +1 -1
  308. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
  309. package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts +2 -0
  310. package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts.map +1 -0
  311. package/dist/adapters/http/controllers/entities/trust-anchor/index.mjs +5 -0
  312. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts +17 -0
  313. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -0
  314. package/dist/adapters/http/controllers/entities/{robot-permission → trust-anchor}/module.mjs +30 -30
  315. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -0
  316. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs +1 -1
  317. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs.map +1 -1
  318. package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts +2 -0
  319. package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts.map +1 -0
  320. package/dist/adapters/http/controllers/entities/user-authenticator/index.mjs +5 -0
  321. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts +21 -0
  322. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts.map +1 -0
  323. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +154 -0
  324. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -0
  325. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs +3 -3
  326. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs.map +1 -1
  327. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs +2 -2
  328. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs.map +1 -1
  329. package/dist/adapters/http/controllers/index.mjs +7 -6
  330. package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts +2 -0
  331. package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts.map +1 -0
  332. package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.mjs +5 -0
  333. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts +46 -0
  334. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -0
  335. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +132 -0
  336. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -0
  337. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  338. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +38 -10
  339. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  340. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +17 -1
  341. package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
  342. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  343. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  344. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  345. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
  346. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +32 -18
  347. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  348. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
  349. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +31 -17
  350. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  351. package/dist/adapters/http/controllers/workflows/status/module.mjs +2 -2
  352. package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
  353. package/dist/adapters/http/controllers/workflows/token/module.d.ts +2 -1
  354. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  355. package/dist/adapters/http/controllers/workflows/token/module.mjs +30 -16
  356. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  357. package/dist/adapters/http/controllers/workflows/token/types.d.ts +11 -5
  358. package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
  359. package/dist/adapters/http/index.mjs +13 -9
  360. package/dist/adapters/http/middleware/built-in/assets.mjs +3 -3
  361. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  362. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +14 -2
  363. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  364. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +52 -16
  365. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  366. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +2 -1
  367. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
  368. package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
  369. package/dist/adapters/http/middleware/built-in/prometheus.d.ts +12 -1
  370. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  371. package/dist/adapters/http/middleware/built-in/prometheus.mjs +75 -6
  372. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  373. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  374. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +0 -1
  375. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  376. package/dist/adapters/http/middleware/index.mjs +2 -2
  377. package/dist/adapters/http/request/client-certificate.d.ts +6 -0
  378. package/dist/adapters/http/request/client-certificate.d.ts.map +1 -0
  379. package/dist/adapters/http/request/client-certificate.mjs +89 -0
  380. package/dist/adapters/http/request/client-certificate.mjs.map +1 -0
  381. package/dist/adapters/http/request/constants.d.ts +1 -0
  382. package/dist/adapters/http/request/constants.d.ts.map +1 -1
  383. package/dist/adapters/http/request/constants.mjs +6 -1
  384. package/dist/adapters/http/request/constants.mjs.map +1 -1
  385. package/dist/adapters/http/request/event-context.d.ts +19 -0
  386. package/dist/adapters/http/request/event-context.d.ts.map +1 -0
  387. package/dist/adapters/http/request/event-context.mjs +37 -0
  388. package/dist/adapters/http/request/event-context.mjs.map +1 -0
  389. package/dist/adapters/http/request/helpers/body-realm-id.mjs +1 -1
  390. package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
  391. package/dist/adapters/http/request/helpers/identity.d.ts +2 -2
  392. package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
  393. package/dist/adapters/http/request/helpers/identity.mjs +2 -2
  394. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  395. package/dist/adapters/http/request/helpers/index.d.ts +1 -0
  396. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  397. package/dist/adapters/http/request/helpers/index.mjs +2 -1
  398. package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts +16 -0
  399. package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts.map +1 -0
  400. package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs +15 -0
  401. package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs.map +1 -0
  402. package/dist/adapters/http/request/helpers/realm-id.mjs +1 -1
  403. package/dist/adapters/http/request/helpers/realm-id.mjs.map +1 -1
  404. package/dist/adapters/http/request/index.d.ts +3 -0
  405. package/dist/adapters/http/request/index.d.ts.map +1 -1
  406. package/dist/adapters/http/request/index.mjs +5 -2
  407. package/dist/adapters/http/request/permission/module.d.ts +3 -2
  408. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  409. package/dist/adapters/http/request/permission/module.mjs +3 -0
  410. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  411. package/dist/adapters/http/request/types.d.ts +3 -0
  412. package/dist/adapters/http/request/types.d.ts.map +1 -0
  413. package/dist/adapters/http/ui/render.mjs +4 -4
  414. package/dist/adapters/http/ui/render.mjs.map +1 -1
  415. package/dist/adapters/http/ui/serve.d.ts.map +1 -1
  416. package/dist/adapters/http/ui/serve.mjs +4 -1
  417. package/dist/adapters/http/ui/serve.mjs.map +1 -1
  418. package/dist/app/index.mjs +11 -9
  419. package/dist/app/modules/authentication/repositories/session.d.ts +3 -2
  420. package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
  421. package/dist/app/modules/authentication/repositories/session.mjs +8 -40
  422. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  423. package/dist/app/modules/components/module.d.ts.map +1 -1
  424. package/dist/app/modules/components/module.mjs +22 -2
  425. package/dist/app/modules/components/module.mjs.map +1 -1
  426. package/dist/app/modules/config/constants.d.ts +14 -4
  427. package/dist/app/modules/config/constants.d.ts.map +1 -1
  428. package/dist/app/modules/config/constants.mjs +14 -4
  429. package/dist/app/modules/config/constants.mjs.map +1 -1
  430. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  431. package/dist/app/modules/config/normalize.mjs +30 -6
  432. package/dist/app/modules/config/normalize.mjs.map +1 -1
  433. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  434. package/dist/app/modules/config/read/env.mjs +57 -8
  435. package/dist/app/modules/config/read/env.mjs.map +1 -1
  436. package/dist/app/modules/config/types.d.ts +101 -19
  437. package/dist/app/modules/config/types.d.ts.map +1 -1
  438. package/dist/app/modules/config/validator.d.ts.map +1 -1
  439. package/dist/app/modules/config/validator.mjs +16 -4
  440. package/dist/app/modules/config/validator.mjs.map +1 -1
  441. package/dist/app/modules/database/constants.d.ts +3 -0
  442. package/dist/app/modules/database/constants.d.ts.map +1 -1
  443. package/dist/app/modules/database/constants.mjs +3 -1
  444. package/dist/app/modules/database/constants.mjs.map +1 -1
  445. package/dist/app/modules/database/index.mjs +7 -6
  446. package/dist/app/modules/database/module.d.ts +1 -0
  447. package/dist/app/modules/database/module.d.ts.map +1 -1
  448. package/dist/app/modules/database/module.mjs +34 -1
  449. package/dist/app/modules/database/module.mjs.map +1 -1
  450. package/dist/app/modules/database/repositories/bindings.d.ts +2 -2
  451. package/dist/app/modules/database/repositories/bindings.d.ts.map +1 -1
  452. package/dist/app/modules/database/repositories/bindings.mjs +3 -3
  453. package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
  454. package/dist/app/modules/database/repositories/client/repository.d.ts +3 -2
  455. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  456. package/dist/app/modules/database/repositories/client/repository.mjs +10 -78
  457. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  458. package/dist/app/modules/database/repositories/client-permission/repository.d.ts +2 -1
  459. package/dist/app/modules/database/repositories/client-permission/repository.d.ts.map +1 -1
  460. package/dist/app/modules/database/repositories/client-permission/repository.mjs +3 -17
  461. package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
  462. package/dist/app/modules/database/repositories/client-role/repository.d.ts +2 -1
  463. package/dist/app/modules/database/repositories/client-role/repository.d.ts.map +1 -1
  464. package/dist/app/modules/database/repositories/client-role/repository.mjs +3 -17
  465. package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
  466. package/dist/app/modules/database/repositories/client-scope/repository.d.ts +2 -1
  467. package/dist/app/modules/database/repositories/client-scope/repository.d.ts.map +1 -1
  468. package/dist/app/modules/database/repositories/client-scope/repository.mjs +3 -17
  469. package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
  470. package/dist/app/modules/database/repositories/event/index.d.ts.map +1 -0
  471. package/dist/app/modules/database/repositories/event/index.mjs +5 -0
  472. package/dist/app/modules/database/repositories/event/repository.d.ts +16 -0
  473. package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -0
  474. package/dist/app/modules/database/repositories/event/repository.mjs +74 -0
  475. package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -0
  476. package/dist/app/modules/database/repositories/helpers.d.ts +21 -5
  477. package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
  478. package/dist/app/modules/database/repositories/helpers.mjs +46 -7
  479. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  480. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +2 -1
  481. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
  482. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +6 -37
  483. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  484. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts +2 -1
  485. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts.map +1 -1
  486. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs +3 -17
  487. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
  488. package/dist/app/modules/database/repositories/index.d.ts +4 -3
  489. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  490. package/dist/app/modules/database/repositories/index.mjs +9 -7
  491. package/dist/app/modules/database/repositories/key/index.d.ts.map +1 -0
  492. package/dist/app/modules/database/repositories/key/index.mjs +5 -0
  493. package/dist/app/modules/database/repositories/key/repository.d.ts +51 -0
  494. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -0
  495. package/dist/app/modules/database/repositories/key/repository.mjs +239 -0
  496. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -0
  497. package/dist/app/modules/database/repositories/permission/repository.d.ts +2 -1
  498. package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
  499. package/dist/app/modules/database/repositories/permission/repository.mjs +5 -20
  500. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  501. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts +2 -1
  502. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts.map +1 -1
  503. package/dist/app/modules/database/repositories/permission-policy/repository.mjs +3 -17
  504. package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
  505. package/dist/app/modules/database/repositories/permission-provider/module.mjs +7 -7
  506. package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
  507. package/dist/app/modules/database/repositories/policy/repository.d.ts +2 -1
  508. package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
  509. package/dist/app/modules/database/repositories/policy/repository.mjs +5 -39
  510. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  511. package/dist/app/modules/database/repositories/query.d.ts +18 -0
  512. package/dist/app/modules/database/repositories/query.d.ts.map +1 -0
  513. package/dist/app/modules/database/repositories/query.mjs +29 -0
  514. package/dist/app/modules/database/repositories/query.mjs.map +1 -0
  515. package/dist/app/modules/database/repositories/realm/repository.d.ts +2 -1
  516. package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
  517. package/dist/app/modules/database/repositories/realm/repository.mjs +3 -25
  518. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  519. package/dist/app/modules/database/repositories/role/repository.d.ts +2 -1
  520. package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
  521. package/dist/app/modules/database/repositories/role/repository.mjs +6 -30
  522. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  523. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts +2 -1
  524. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
  525. package/dist/app/modules/database/repositories/role-attribute/repository.mjs +3 -19
  526. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  527. package/dist/app/modules/database/repositories/role-permission/repository.d.ts +2 -1
  528. package/dist/app/modules/database/repositories/role-permission/repository.d.ts.map +1 -1
  529. package/dist/app/modules/database/repositories/role-permission/repository.mjs +3 -17
  530. package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
  531. package/dist/app/modules/database/repositories/schema-validation.d.ts +11 -0
  532. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -0
  533. package/dist/app/modules/database/repositories/schema-validation.mjs +77 -0
  534. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -0
  535. package/dist/app/modules/database/repositories/scope/repository.d.ts +2 -1
  536. package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
  537. package/dist/app/modules/database/repositories/scope/repository.mjs +5 -29
  538. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  539. package/dist/app/modules/database/repositories/trust-anchor/index.d.ts.map +1 -0
  540. package/dist/app/modules/database/repositories/trust-anchor/index.mjs +5 -0
  541. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts +25 -0
  542. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts.map +1 -0
  543. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +89 -0
  544. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -0
  545. package/dist/app/modules/database/repositories/user/repository.d.ts +3 -2
  546. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  547. package/dist/app/modules/database/repositories/user/repository.mjs +9 -66
  548. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  549. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts +2 -1
  550. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
  551. package/dist/app/modules/database/repositories/user-attribute/repository.mjs +4 -20
  552. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  553. package/dist/app/modules/database/repositories/user-authenticator/index.d.ts.map +1 -0
  554. package/dist/app/modules/database/repositories/user-authenticator/index.mjs +5 -0
  555. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts +20 -0
  556. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts.map +1 -0
  557. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +66 -0
  558. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -0
  559. package/dist/app/modules/database/repositories/user-permission/repository.d.ts +2 -1
  560. package/dist/app/modules/database/repositories/user-permission/repository.d.ts.map +1 -1
  561. package/dist/app/modules/database/repositories/user-permission/repository.mjs +3 -17
  562. package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
  563. package/dist/app/modules/database/repositories/user-role/repository.d.ts +2 -1
  564. package/dist/app/modules/database/repositories/user-role/repository.d.ts.map +1 -1
  565. package/dist/app/modules/database/repositories/user-role/repository.mjs +3 -17
  566. package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
  567. package/dist/app/modules/http/module.d.ts +8 -0
  568. package/dist/app/modules/http/module.d.ts.map +1 -1
  569. package/dist/app/modules/http/module.mjs +19 -1
  570. package/dist/app/modules/http/module.mjs.map +1 -1
  571. package/dist/app/modules/http/modules/controller.d.ts +16 -6
  572. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  573. package/dist/app/modules/http/modules/controller.mjs +186 -67
  574. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  575. package/dist/app/modules/http/modules/middleware.d.ts +1 -0
  576. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  577. package/dist/app/modules/http/modules/middleware.mjs +10 -5
  578. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  579. package/dist/app/modules/identity/index.mjs +1 -2
  580. package/dist/app/modules/identity/module.d.ts.map +1 -1
  581. package/dist/app/modules/identity/module.mjs +3 -14
  582. package/dist/app/modules/identity/module.mjs.map +1 -1
  583. package/dist/app/modules/identity/repositories/client.mjs +2 -2
  584. package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
  585. package/dist/app/modules/identity/repositories/index.d.ts +0 -1
  586. package/dist/app/modules/identity/repositories/index.d.ts.map +1 -1
  587. package/dist/app/modules/identity/repositories/index.mjs +1 -2
  588. package/dist/app/modules/identity/repositories/provider/account/module.mjs +3 -3
  589. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +1 -1
  590. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs +1 -1
  591. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs.map +1 -1
  592. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs +1 -1
  593. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs.map +1 -1
  594. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs +1 -1
  595. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs.map +1 -1
  596. package/dist/app/modules/identity/repositories/user.mjs +18 -18
  597. package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
  598. package/dist/app/modules/index.d.ts +1 -0
  599. package/dist/app/modules/index.d.ts.map +1 -1
  600. package/dist/app/modules/index.mjs +13 -10
  601. package/dist/app/modules/mail/module.d.ts.map +1 -1
  602. package/dist/app/modules/mail/module.mjs +2 -1
  603. package/dist/app/modules/mail/module.mjs.map +1 -1
  604. package/dist/app/modules/metrics/constants.d.ts +4 -0
  605. package/dist/app/modules/metrics/constants.d.ts.map +1 -0
  606. package/dist/app/modules/metrics/constants.mjs +10 -0
  607. package/dist/app/modules/metrics/constants.mjs.map +1 -0
  608. package/dist/app/modules/metrics/index.d.ts +3 -0
  609. package/dist/app/modules/metrics/index.d.ts.map +1 -0
  610. package/dist/app/modules/metrics/index.mjs +6 -0
  611. package/dist/app/modules/metrics/prom.d.ts +15 -0
  612. package/dist/app/modules/metrics/prom.d.ts.map +1 -0
  613. package/dist/app/modules/metrics/prom.mjs +42 -0
  614. package/dist/app/modules/metrics/prom.mjs.map +1 -0
  615. package/dist/app/modules/oauth2/constants.d.ts +9 -2
  616. package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
  617. package/dist/app/modules/oauth2/constants.mjs +7 -1
  618. package/dist/app/modules/oauth2/constants.mjs.map +1 -1
  619. package/dist/app/modules/oauth2/module.d.ts.map +1 -1
  620. package/dist/app/modules/oauth2/module.mjs +23 -4
  621. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  622. package/dist/app/modules/oauth2/repositories/client/repository.mjs +1 -1
  623. package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
  624. package/dist/app/modules/oauth2/repositories/consent/index.d.ts +2 -0
  625. package/dist/app/modules/oauth2/repositories/consent/index.d.ts.map +1 -0
  626. package/dist/app/modules/oauth2/repositories/consent/index.mjs +5 -0
  627. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts +21 -0
  628. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -0
  629. package/dist/app/modules/oauth2/repositories/consent/repository.mjs +92 -0
  630. package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -0
  631. package/dist/app/modules/oauth2/repositories/index.d.ts +1 -1
  632. package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
  633. package/dist/app/modules/oauth2/repositories/index.mjs +3 -3
  634. package/dist/app/modules/oauth2/repositories/scope/repository.mjs +1 -1
  635. package/dist/app/modules/oauth2/repositories/scope/repository.mjs.map +1 -1
  636. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +21 -18
  637. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  638. package/dist/app/modules/oauth2/repositories/token/repository.d.ts +1 -0
  639. package/dist/app/modules/oauth2/repositories/token/repository.d.ts.map +1 -1
  640. package/dist/app/modules/oauth2/repositories/token/repository.mjs +8 -0
  641. package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
  642. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  643. package/dist/app/modules/provisioning/module.mjs +25 -29
  644. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  645. package/dist/app/modules/provisioning/sources/composite/module.d.ts +17 -0
  646. package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
  647. package/dist/app/modules/provisioning/sources/composite/module.mjs +54 -2
  648. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  649. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  650. package/dist/app/modules/provisioning/sources/default/module.mjs +54 -74
  651. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  652. package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
  653. package/dist/app/modules/provisioning/sources/file/module.mjs +16 -5
  654. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  655. package/dist/app/modules/provisioning/sources/file/types.d.ts +2 -0
  656. package/dist/app/modules/provisioning/sources/file/types.d.ts.map +1 -1
  657. package/dist/app/modules/provisioning/sources/index.mjs +1 -0
  658. package/dist/components/database/unique-entries/module.mjs +6 -6
  659. package/dist/components/database/unique-entries/module.mjs.map +1 -1
  660. package/dist/components/event-cleaner/index.d.ts +2 -0
  661. package/dist/components/event-cleaner/index.d.ts.map +1 -0
  662. package/dist/components/event-cleaner/index.mjs +5 -0
  663. package/dist/components/event-cleaner/module.d.ts +5 -0
  664. package/dist/components/event-cleaner/module.d.ts.map +1 -0
  665. package/dist/components/event-cleaner/module.mjs +30 -0
  666. package/dist/components/event-cleaner/module.mjs.map +1 -0
  667. package/dist/components/index.d.ts +1 -0
  668. package/dist/components/index.d.ts.map +1 -1
  669. package/dist/components/index.mjs +3 -1
  670. package/dist/components/oauth2-cleaner/module.d.ts +2 -1
  671. package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
  672. package/dist/components/oauth2-cleaner/module.mjs +9 -4
  673. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  674. package/dist/core/authentication/credential/entities/client/module.d.ts +2 -2
  675. package/dist/core/authentication/credential/entities/client/module.d.ts.map +1 -1
  676. package/dist/core/authentication/credential/entities/client/module.mjs +4 -3
  677. package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
  678. package/dist/core/authentication/credential/entities/index.d.ts +0 -1
  679. package/dist/core/authentication/credential/entities/index.d.ts.map +1 -1
  680. package/dist/core/authentication/credential/entities/index.mjs +1 -3
  681. package/dist/core/authentication/credential/index.mjs +1 -2
  682. package/dist/core/authentication/entities/client/module.mjs +2 -2
  683. package/dist/core/authentication/entities/client/module.mjs.map +1 -1
  684. package/dist/core/authentication/entities/index.d.ts +0 -1
  685. package/dist/core/authentication/entities/index.d.ts.map +1 -1
  686. package/dist/core/authentication/entities/index.mjs +1 -3
  687. package/dist/core/authentication/index.d.ts +1 -0
  688. package/dist/core/authentication/index.d.ts.map +1 -1
  689. package/dist/core/authentication/index.mjs +3 -3
  690. package/dist/core/authentication/login-throttle/index.d.ts.map +1 -0
  691. package/dist/core/authentication/login-throttle/index.mjs +5 -0
  692. package/dist/core/authentication/login-throttle/service.d.ts +13 -0
  693. package/dist/core/authentication/login-throttle/service.d.ts.map +1 -0
  694. package/dist/core/authentication/login-throttle/service.mjs +33 -0
  695. package/dist/core/authentication/login-throttle/service.mjs.map +1 -0
  696. package/dist/core/authentication/login-throttle/types.d.ts +34 -0
  697. package/dist/core/authentication/login-throttle/types.d.ts.map +1 -0
  698. package/dist/core/authentication/session/module.d.ts +1 -0
  699. package/dist/core/authentication/session/module.d.ts.map +1 -1
  700. package/dist/core/authentication/session/module.mjs +17 -16
  701. package/dist/core/authentication/session/module.mjs.map +1 -1
  702. package/dist/core/authentication/session/types.d.ts +12 -5
  703. package/dist/core/authentication/session/types.d.ts.map +1 -1
  704. package/dist/core/authentication/session/types.mjs +4 -5
  705. package/dist/core/authentication/session/types.mjs.map +1 -1
  706. package/dist/core/client-certificate/index.d.ts.map +1 -0
  707. package/dist/core/client-certificate/index.mjs +5 -0
  708. package/dist/core/client-certificate/module.d.ts +19 -0
  709. package/dist/core/client-certificate/module.d.ts.map +1 -0
  710. package/dist/core/client-certificate/module.mjs +196 -0
  711. package/dist/core/client-certificate/module.mjs.map +1 -0
  712. package/dist/core/client-certificate/reflect.d.ts +2 -0
  713. package/dist/core/client-certificate/reflect.d.ts.map +1 -0
  714. package/dist/core/client-certificate/reflect.mjs +5 -0
  715. package/dist/core/client-certificate/types.d.ts +22 -0
  716. package/dist/core/client-certificate/types.d.ts.map +1 -0
  717. package/dist/core/entities/client/index.d.ts +1 -0
  718. package/dist/core/entities/client/index.d.ts.map +1 -1
  719. package/dist/core/entities/client/index.mjs +2 -1
  720. package/dist/core/entities/client/schema.d.ts +3 -0
  721. package/dist/core/entities/client/schema.d.ts.map +1 -0
  722. package/dist/core/entities/client/schema.mjs +59 -0
  723. package/dist/core/entities/client/schema.mjs.map +1 -0
  724. package/dist/core/entities/client/service.d.ts.map +1 -1
  725. package/dist/core/entities/client/service.mjs +50 -19
  726. package/dist/core/entities/client/service.mjs.map +1 -1
  727. package/dist/core/entities/client/types.d.ts +2 -1
  728. package/dist/core/entities/client/types.d.ts.map +1 -1
  729. package/dist/core/entities/client/web-client.d.ts +4 -4
  730. package/dist/core/entities/client/web-client.d.ts.map +1 -1
  731. package/dist/core/entities/client/web-client.mjs +14 -13
  732. package/dist/core/entities/client/web-client.mjs.map +1 -1
  733. package/dist/core/entities/client-permission/index.d.ts +1 -0
  734. package/dist/core/entities/client-permission/index.d.ts.map +1 -1
  735. package/dist/core/entities/client-permission/index.mjs +2 -1
  736. package/dist/core/entities/client-permission/schema.d.ts +3 -0
  737. package/dist/core/entities/client-permission/schema.d.ts.map +1 -0
  738. package/dist/core/entities/client-permission/schema.mjs +41 -0
  739. package/dist/core/entities/client-permission/schema.mjs.map +1 -0
  740. package/dist/core/entities/client-permission/service.d.ts +1 -1
  741. package/dist/core/entities/client-permission/service.d.ts.map +1 -1
  742. package/dist/core/entities/client-permission/service.mjs +24 -18
  743. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  744. package/dist/core/entities/client-role/index.d.ts +1 -0
  745. package/dist/core/entities/client-role/index.d.ts.map +1 -1
  746. package/dist/core/entities/client-role/index.mjs +2 -1
  747. package/dist/core/entities/client-role/schema.d.ts +3 -0
  748. package/dist/core/entities/client-role/schema.d.ts.map +1 -0
  749. package/dist/core/entities/client-role/schema.mjs +39 -0
  750. package/dist/core/entities/client-role/schema.mjs.map +1 -0
  751. package/dist/core/entities/client-role/service.d.ts +1 -1
  752. package/dist/core/entities/client-role/service.d.ts.map +1 -1
  753. package/dist/core/entities/client-role/service.mjs +14 -8
  754. package/dist/core/entities/client-role/service.mjs.map +1 -1
  755. package/dist/core/entities/client-scope/index.d.ts +1 -0
  756. package/dist/core/entities/client-scope/index.d.ts.map +1 -1
  757. package/dist/core/entities/client-scope/index.mjs +2 -1
  758. package/dist/core/entities/client-scope/schema.d.ts +3 -0
  759. package/dist/core/entities/client-scope/schema.d.ts.map +1 -0
  760. package/dist/core/entities/client-scope/schema.mjs +37 -0
  761. package/dist/core/entities/client-scope/schema.mjs.map +1 -0
  762. package/dist/core/entities/client-scope/service.d.ts +1 -1
  763. package/dist/core/entities/client-scope/service.d.ts.map +1 -1
  764. package/dist/core/entities/client-scope/service.mjs +12 -6
  765. package/dist/core/entities/client-scope/service.mjs.map +1 -1
  766. package/dist/core/entities/consent/index.d.ts +4 -0
  767. package/dist/core/entities/consent/index.d.ts.map +1 -0
  768. package/dist/core/entities/consent/index.mjs +7 -0
  769. package/dist/core/entities/consent/schema.d.ts +3 -0
  770. package/dist/core/entities/consent/schema.d.ts.map +1 -0
  771. package/dist/core/entities/consent/schema.mjs +40 -0
  772. package/dist/core/entities/consent/schema.mjs.map +1 -0
  773. package/dist/core/entities/consent/service.d.ts +19 -0
  774. package/dist/core/entities/consent/service.d.ts.map +1 -0
  775. package/dist/core/entities/consent/service.mjs +138 -0
  776. package/dist/core/entities/consent/service.mjs.map +1 -0
  777. package/dist/core/entities/consent/types.d.ts +98 -0
  778. package/dist/core/entities/consent/types.d.ts.map +1 -0
  779. package/dist/core/entities/consent/types.mjs +25 -0
  780. package/dist/core/entities/consent/types.mjs.map +1 -0
  781. package/dist/core/entities/event/constants.d.ts +7 -0
  782. package/dist/core/entities/event/constants.d.ts.map +1 -0
  783. package/dist/core/entities/event/constants.mjs +13 -0
  784. package/dist/core/entities/event/constants.mjs.map +1 -0
  785. package/dist/core/entities/event/diff.d.ts +20 -0
  786. package/dist/core/entities/event/diff.d.ts.map +1 -0
  787. package/dist/core/entities/event/diff.mjs +45 -0
  788. package/dist/core/entities/event/diff.mjs.map +1 -0
  789. package/dist/core/entities/event/entity-event-handler.d.ts +19 -0
  790. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -0
  791. package/dist/core/entities/event/entity-event-handler.mjs +98 -0
  792. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -0
  793. package/dist/core/entities/event/index.d.ts +8 -0
  794. package/dist/core/entities/event/index.d.ts.map +1 -0
  795. package/dist/core/entities/event/index.mjs +10 -0
  796. package/dist/core/entities/event/sanitize.d.ts +2 -0
  797. package/dist/core/entities/event/sanitize.d.ts.map +1 -0
  798. package/dist/core/entities/event/sanitize.mjs +83 -0
  799. package/dist/core/entities/event/sanitize.mjs.map +1 -0
  800. package/dist/core/entities/event/schema.d.ts +3 -0
  801. package/dist/core/entities/event/schema.d.ts.map +1 -0
  802. package/dist/core/entities/event/schema.mjs +51 -0
  803. package/dist/core/entities/event/schema.mjs.map +1 -0
  804. package/dist/core/entities/event/service.d.ts +22 -0
  805. package/dist/core/entities/event/service.d.ts.map +1 -0
  806. package/dist/core/entities/event/service.mjs +185 -0
  807. package/dist/core/entities/event/service.mjs.map +1 -0
  808. package/dist/core/entities/event/types.d.ts +125 -0
  809. package/dist/core/entities/event/types.d.ts.map +1 -0
  810. package/dist/core/entities/identity-provider/index.d.ts +1 -0
  811. package/dist/core/entities/identity-provider/index.d.ts.map +1 -1
  812. package/dist/core/entities/identity-provider/index.mjs +2 -1
  813. package/dist/core/entities/identity-provider/schema.d.ts +3 -0
  814. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -0
  815. package/dist/core/entities/identity-provider/schema.mjs +43 -0
  816. package/dist/core/entities/identity-provider/schema.mjs.map +1 -0
  817. package/dist/core/entities/identity-provider-role-mapping/index.d.ts +1 -0
  818. package/dist/core/entities/identity-provider-role-mapping/index.d.ts.map +1 -1
  819. package/dist/core/entities/identity-provider-role-mapping/index.mjs +2 -1
  820. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts +3 -0
  821. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -0
  822. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +43 -0
  823. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -0
  824. package/dist/core/entities/identity-provider-role-mapping/service.d.ts +1 -1
  825. package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
  826. package/dist/core/entities/identity-provider-role-mapping/service.mjs +18 -12
  827. package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
  828. package/dist/core/entities/index.d.ts +5 -3
  829. package/dist/core/entities/index.d.ts.map +1 -1
  830. package/dist/core/entities/index.mjs +45 -7
  831. package/dist/core/entities/key/index.d.ts +4 -0
  832. package/dist/core/entities/key/index.d.ts.map +1 -0
  833. package/dist/core/entities/key/index.mjs +6 -0
  834. package/dist/core/entities/key/schema.d.ts +3 -0
  835. package/dist/core/entities/key/schema.d.ts.map +1 -0
  836. package/dist/core/entities/key/schema.mjs +53 -0
  837. package/dist/core/entities/key/schema.mjs.map +1 -0
  838. package/dist/core/entities/key/service.d.ts +55 -0
  839. package/dist/core/entities/key/service.d.ts.map +1 -0
  840. package/dist/core/entities/key/service.mjs +320 -0
  841. package/dist/core/entities/key/service.mjs.map +1 -0
  842. package/dist/core/entities/key/types.d.ts +41 -0
  843. package/dist/core/entities/key/types.d.ts.map +1 -0
  844. package/dist/core/entities/permission/index.d.ts +1 -0
  845. package/dist/core/entities/permission/index.d.ts.map +1 -1
  846. package/dist/core/entities/permission/index.mjs +2 -1
  847. package/dist/core/entities/permission/schema.d.ts +3 -0
  848. package/dist/core/entities/permission/schema.d.ts.map +1 -0
  849. package/dist/core/entities/permission/schema.mjs +28 -0
  850. package/dist/core/entities/permission/schema.mjs.map +1 -0
  851. package/dist/core/entities/permission/service.d.ts +7 -2
  852. package/dist/core/entities/permission/service.d.ts.map +1 -1
  853. package/dist/core/entities/permission/service.mjs +54 -41
  854. package/dist/core/entities/permission/service.mjs.map +1 -1
  855. package/dist/core/entities/permission-policy/index.d.ts +1 -0
  856. package/dist/core/entities/permission-policy/index.d.ts.map +1 -1
  857. package/dist/core/entities/permission-policy/index.mjs +2 -1
  858. package/dist/core/entities/permission-policy/schema.d.ts +3 -0
  859. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -0
  860. package/dist/core/entities/permission-policy/schema.mjs +39 -0
  861. package/dist/core/entities/permission-policy/schema.mjs.map +1 -0
  862. package/dist/core/entities/permission-policy/service.d.ts +1 -1
  863. package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
  864. package/dist/core/entities/permission-policy/service.mjs +12 -6
  865. package/dist/core/entities/permission-policy/service.mjs.map +1 -1
  866. package/dist/core/entities/policy/index.d.ts +1 -0
  867. package/dist/core/entities/policy/index.d.ts.map +1 -1
  868. package/dist/core/entities/policy/index.mjs +2 -1
  869. package/dist/core/entities/policy/schema.d.ts +3 -0
  870. package/dist/core/entities/policy/schema.d.ts.map +1 -0
  871. package/dist/core/entities/policy/schema.mjs +49 -0
  872. package/dist/core/entities/policy/schema.mjs.map +1 -0
  873. package/dist/core/entities/policy/service.d.ts.map +1 -1
  874. package/dist/core/entities/policy/service.mjs +15 -9
  875. package/dist/core/entities/policy/service.mjs.map +1 -1
  876. package/dist/core/entities/realm/index.d.ts +1 -0
  877. package/dist/core/entities/realm/index.d.ts.map +1 -1
  878. package/dist/core/entities/realm/index.mjs +2 -1
  879. package/dist/core/entities/realm/schema.d.ts +3 -0
  880. package/dist/core/entities/realm/schema.d.ts.map +1 -0
  881. package/dist/core/entities/realm/schema.mjs +36 -0
  882. package/dist/core/entities/realm/schema.mjs.map +1 -0
  883. package/dist/core/entities/realm/service.d.ts +3 -0
  884. package/dist/core/entities/realm/service.d.ts.map +1 -1
  885. package/dist/core/entities/realm/service.mjs +10 -4
  886. package/dist/core/entities/realm/service.mjs.map +1 -1
  887. package/dist/core/entities/realm/types.d.ts +1 -1
  888. package/dist/core/entities/role/index.d.ts +1 -0
  889. package/dist/core/entities/role/index.d.ts.map +1 -1
  890. package/dist/core/entities/role/index.mjs +2 -1
  891. package/dist/core/entities/role/schema.d.ts +3 -0
  892. package/dist/core/entities/role/schema.d.ts.map +1 -0
  893. package/dist/core/entities/role/schema.mjs +43 -0
  894. package/dist/core/entities/role/schema.mjs.map +1 -0
  895. package/dist/core/entities/role/service.d.ts.map +1 -1
  896. package/dist/core/entities/role/service.mjs +13 -7
  897. package/dist/core/entities/role/service.mjs.map +1 -1
  898. package/dist/core/entities/role-attribute/index.d.ts +1 -0
  899. package/dist/core/entities/role-attribute/index.d.ts.map +1 -1
  900. package/dist/core/entities/role-attribute/index.mjs +2 -1
  901. package/dist/core/entities/role-attribute/schema.d.ts +3 -0
  902. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -0
  903. package/dist/core/entities/role-attribute/schema.mjs +47 -0
  904. package/dist/core/entities/role-attribute/schema.mjs.map +1 -0
  905. package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
  906. package/dist/core/entities/role-attribute/service.mjs +22 -9
  907. package/dist/core/entities/role-attribute/service.mjs.map +1 -1
  908. package/dist/core/entities/role-permission/index.d.ts +1 -0
  909. package/dist/core/entities/role-permission/index.d.ts.map +1 -1
  910. package/dist/core/entities/role-permission/index.mjs +2 -1
  911. package/dist/core/entities/role-permission/schema.d.ts +3 -0
  912. package/dist/core/entities/role-permission/schema.d.ts.map +1 -0
  913. package/dist/core/entities/role-permission/schema.mjs +41 -0
  914. package/dist/core/entities/role-permission/schema.mjs.map +1 -0
  915. package/dist/core/entities/role-permission/service.d.ts +1 -1
  916. package/dist/core/entities/role-permission/service.d.ts.map +1 -1
  917. package/dist/core/entities/role-permission/service.mjs +24 -18
  918. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  919. package/dist/core/entities/scope/index.d.ts +1 -0
  920. package/dist/core/entities/scope/index.d.ts.map +1 -1
  921. package/dist/core/entities/scope/index.mjs +2 -1
  922. package/dist/core/entities/scope/schema.d.ts +3 -0
  923. package/dist/core/entities/scope/schema.d.ts.map +1 -0
  924. package/dist/core/entities/scope/schema.mjs +43 -0
  925. package/dist/core/entities/scope/schema.mjs.map +1 -0
  926. package/dist/core/entities/scope/service.d.ts.map +1 -1
  927. package/dist/core/entities/scope/service.mjs +11 -5
  928. package/dist/core/entities/scope/service.mjs.map +1 -1
  929. package/dist/core/entities/session/index.d.ts +1 -0
  930. package/dist/core/entities/session/index.d.ts.map +1 -1
  931. package/dist/core/entities/session/index.mjs +2 -1
  932. package/dist/core/entities/session/schema.d.ts +3 -0
  933. package/dist/core/entities/session/schema.d.ts.map +1 -0
  934. package/dist/core/entities/session/schema.mjs +44 -0
  935. package/dist/core/entities/session/schema.mjs.map +1 -0
  936. package/dist/core/entities/session/service.d.ts +11 -0
  937. package/dist/core/entities/session/service.d.ts.map +1 -1
  938. package/dist/core/entities/session/service.mjs +53 -13
  939. package/dist/core/entities/session/service.mjs.map +1 -1
  940. package/dist/core/entities/session/types.d.ts +2 -2
  941. package/dist/core/entities/trust-anchor/index.d.ts +4 -0
  942. package/dist/core/entities/trust-anchor/index.d.ts.map +1 -0
  943. package/dist/core/entities/trust-anchor/index.mjs +6 -0
  944. package/dist/core/entities/trust-anchor/schema.d.ts +3 -0
  945. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -0
  946. package/dist/core/entities/trust-anchor/schema.mjs +43 -0
  947. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -0
  948. package/dist/core/entities/trust-anchor/service.d.ts +33 -0
  949. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -0
  950. package/dist/core/entities/trust-anchor/service.mjs +191 -0
  951. package/dist/core/entities/trust-anchor/service.mjs.map +1 -0
  952. package/dist/core/entities/trust-anchor/types.d.ts +22 -0
  953. package/dist/core/entities/trust-anchor/types.d.ts.map +1 -0
  954. package/dist/core/entities/user/index.d.ts +1 -0
  955. package/dist/core/entities/user/index.d.ts.map +1 -1
  956. package/dist/core/entities/user/index.mjs +2 -1
  957. package/dist/core/entities/user/schema.d.ts +3 -0
  958. package/dist/core/entities/user/schema.d.ts.map +1 -0
  959. package/dist/core/entities/user/schema.mjs +50 -0
  960. package/dist/core/entities/user/schema.mjs.map +1 -0
  961. package/dist/core/entities/user/service.d.ts.map +1 -1
  962. package/dist/core/entities/user/service.mjs +35 -14
  963. package/dist/core/entities/user/service.mjs.map +1 -1
  964. package/dist/core/entities/user/types.d.ts +2 -1
  965. package/dist/core/entities/user/types.d.ts.map +1 -1
  966. package/dist/core/entities/user-attribute/index.d.ts +1 -0
  967. package/dist/core/entities/user-attribute/index.d.ts.map +1 -1
  968. package/dist/core/entities/user-attribute/index.mjs +2 -1
  969. package/dist/core/entities/user-attribute/schema.d.ts +3 -0
  970. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -0
  971. package/dist/core/entities/user-attribute/schema.mjs +47 -0
  972. package/dist/core/entities/user-attribute/schema.mjs.map +1 -0
  973. package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
  974. package/dist/core/entities/user-attribute/service.mjs +29 -13
  975. package/dist/core/entities/user-attribute/service.mjs.map +1 -1
  976. package/dist/core/entities/user-authenticator/constants.d.ts +26 -0
  977. package/dist/core/entities/user-authenticator/constants.d.ts.map +1 -0
  978. package/dist/core/entities/user-authenticator/constants.mjs +32 -0
  979. package/dist/core/entities/user-authenticator/constants.mjs.map +1 -0
  980. package/dist/core/entities/user-authenticator/helpers.d.ts +10 -0
  981. package/dist/core/entities/user-authenticator/helpers.d.ts.map +1 -0
  982. package/dist/core/entities/user-authenticator/helpers.mjs +35 -0
  983. package/dist/core/entities/user-authenticator/helpers.mjs.map +1 -0
  984. package/dist/core/entities/user-authenticator/index.d.ts +7 -0
  985. package/dist/core/entities/user-authenticator/index.d.ts.map +1 -0
  986. package/dist/core/entities/user-authenticator/index.mjs +10 -0
  987. package/dist/core/entities/user-authenticator/schema.d.ts +3 -0
  988. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -0
  989. package/dist/core/entities/user-authenticator/schema.mjs +47 -0
  990. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -0
  991. package/dist/core/entities/user-authenticator/service.d.ts +89 -0
  992. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -0
  993. package/dist/core/entities/user-authenticator/service.mjs +731 -0
  994. package/dist/core/entities/user-authenticator/service.mjs.map +1 -0
  995. package/dist/core/entities/user-authenticator/types.d.ts +222 -0
  996. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -0
  997. package/dist/core/entities/user-authenticator/types.mjs +15 -0
  998. package/dist/core/entities/user-authenticator/types.mjs.map +1 -0
  999. package/dist/core/entities/user-authenticator/webauthn.d.ts +28 -0
  1000. package/dist/core/entities/user-authenticator/webauthn.d.ts.map +1 -0
  1001. package/dist/core/entities/user-authenticator/webauthn.mjs +88 -0
  1002. package/dist/core/entities/user-authenticator/webauthn.mjs.map +1 -0
  1003. package/dist/core/entities/user-permission/index.d.ts +1 -0
  1004. package/dist/core/entities/user-permission/index.d.ts.map +1 -1
  1005. package/dist/core/entities/user-permission/index.mjs +2 -1
  1006. package/dist/core/entities/user-permission/schema.d.ts +3 -0
  1007. package/dist/core/entities/user-permission/schema.d.ts.map +1 -0
  1008. package/dist/core/entities/user-permission/schema.mjs +41 -0
  1009. package/dist/core/entities/user-permission/schema.mjs.map +1 -0
  1010. package/dist/core/entities/user-permission/service.d.ts +1 -1
  1011. package/dist/core/entities/user-permission/service.d.ts.map +1 -1
  1012. package/dist/core/entities/user-permission/service.mjs +24 -18
  1013. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  1014. package/dist/core/entities/user-role/index.d.ts +1 -0
  1015. package/dist/core/entities/user-role/index.d.ts.map +1 -1
  1016. package/dist/core/entities/user-role/index.mjs +2 -1
  1017. package/dist/core/entities/user-role/schema.d.ts +3 -0
  1018. package/dist/core/entities/user-role/schema.d.ts.map +1 -0
  1019. package/dist/core/entities/user-role/schema.mjs +39 -0
  1020. package/dist/core/entities/user-role/schema.mjs.map +1 -0
  1021. package/dist/core/entities/user-role/service.d.ts +1 -1
  1022. package/dist/core/entities/user-role/service.d.ts.map +1 -1
  1023. package/dist/core/entities/user-role/service.mjs +14 -8
  1024. package/dist/core/entities/user-role/service.mjs.map +1 -1
  1025. package/dist/core/identity/entities/index.d.ts +0 -1
  1026. package/dist/core/identity/entities/index.d.ts.map +1 -1
  1027. package/dist/core/identity/index.mjs +2 -1
  1028. package/dist/core/identity/password-recovery/disabled.d.ts +2 -2
  1029. package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -1
  1030. package/dist/core/identity/password-recovery/disabled.mjs +2 -2
  1031. package/dist/core/identity/password-recovery/disabled.mjs.map +1 -1
  1032. package/dist/core/identity/password-recovery/email-verification-required.d.ts +2 -2
  1033. package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -1
  1034. package/dist/core/identity/password-recovery/email-verification-required.mjs +2 -2
  1035. package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -1
  1036. package/dist/core/identity/password-recovery/service.d.ts +2 -1
  1037. package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
  1038. package/dist/core/identity/password-recovery/service.mjs +45 -23
  1039. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  1040. package/dist/core/identity/password-recovery/token-expired.d.ts +2 -2
  1041. package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -1
  1042. package/dist/core/identity/password-recovery/token-expired.mjs +2 -2
  1043. package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -1
  1044. package/dist/core/identity/password-recovery/types.d.ts +4 -3
  1045. package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
  1046. package/dist/core/identity/permission/checker/service.mjs +2 -2
  1047. package/dist/core/identity/permission/checker/service.mjs.map +1 -1
  1048. package/dist/core/identity/permission/identity-policy-data.mjs +2 -2
  1049. package/dist/core/identity/permission/identity-policy-data.mjs.map +1 -1
  1050. package/dist/core/identity/permission/index.d.ts +1 -0
  1051. package/dist/core/identity/permission/index.d.ts.map +1 -1
  1052. package/dist/core/identity/permission/index.mjs +2 -1
  1053. package/dist/core/identity/permission/junction-grant.d.ts +6 -6
  1054. package/dist/core/identity/permission/junction-grant.mjs +14 -14
  1055. package/dist/core/identity/permission/junction-grant.mjs.map +1 -1
  1056. package/dist/core/identity/permission/module.d.ts +0 -3
  1057. package/dist/core/identity/permission/module.d.ts.map +1 -1
  1058. package/dist/core/identity/permission/module.mjs +9 -15
  1059. package/dist/core/identity/permission/module.mjs.map +1 -1
  1060. package/dist/core/identity/permission/types.d.ts +0 -2
  1061. package/dist/core/identity/permission/types.d.ts.map +1 -1
  1062. package/dist/core/identity/policy/checker/service.mjs +2 -2
  1063. package/dist/core/identity/policy/checker/service.mjs.map +1 -1
  1064. package/dist/core/identity/provider/account/module.mjs +9 -9
  1065. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  1066. package/dist/core/identity/provider/authentication/presets/facebook.mjs +5 -5
  1067. package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
  1068. package/dist/core/identity/provider/authentication/presets/github.mjs +3 -3
  1069. package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
  1070. package/dist/core/identity/provider/authentication/presets/google.mjs +5 -5
  1071. package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
  1072. package/dist/core/identity/provider/authentication/presets/instagram.mjs +3 -3
  1073. package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
  1074. package/dist/core/identity/provider/authentication/presets/paypal.mjs +3 -3
  1075. package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
  1076. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs +20 -20
  1077. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs.map +1 -1
  1078. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +7 -7
  1079. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  1080. package/dist/core/identity/provider/mapper/attributes/module.mjs +3 -3
  1081. package/dist/core/identity/provider/mapper/attributes/module.mjs.map +1 -1
  1082. package/dist/core/identity/provider/mapper/base.mjs +2 -2
  1083. package/dist/core/identity/provider/mapper/base.mjs.map +1 -1
  1084. package/dist/core/identity/provider/mapper/permission/module.mjs +2 -2
  1085. package/dist/core/identity/provider/mapper/permission/module.mjs.map +1 -1
  1086. package/dist/core/identity/provider/mapper/role/module.mjs +2 -2
  1087. package/dist/core/identity/provider/mapper/role/module.mjs.map +1 -1
  1088. package/dist/core/identity/registration/error.d.ts +2 -2
  1089. package/dist/core/identity/registration/error.d.ts.map +1 -1
  1090. package/dist/core/identity/registration/error.mjs +2 -2
  1091. package/dist/core/identity/registration/error.mjs.map +1 -1
  1092. package/dist/core/identity/registration/service.d.ts +2 -1
  1093. package/dist/core/identity/registration/service.d.ts.map +1 -1
  1094. package/dist/core/identity/registration/service.mjs +33 -11
  1095. package/dist/core/identity/registration/service.mjs.map +1 -1
  1096. package/dist/core/identity/registration/types.d.ts +2 -1
  1097. package/dist/core/identity/registration/types.d.ts.map +1 -1
  1098. package/dist/core/identity/resolver/module.d.ts +1 -3
  1099. package/dist/core/identity/resolver/module.d.ts.map +1 -1
  1100. package/dist/core/identity/resolver/module.mjs +0 -13
  1101. package/dist/core/identity/resolver/module.mjs.map +1 -1
  1102. package/dist/core/identity/resolver/types.d.ts +1 -2
  1103. package/dist/core/identity/resolver/types.d.ts.map +1 -1
  1104. package/dist/core/identity/role/module.d.ts +0 -2
  1105. package/dist/core/identity/role/module.d.ts.map +1 -1
  1106. package/dist/core/identity/role/module.mjs +1 -4
  1107. package/dist/core/identity/role/module.mjs.map +1 -1
  1108. package/dist/core/identity/role/types.d.ts +0 -2
  1109. package/dist/core/identity/role/types.d.ts.map +1 -1
  1110. package/dist/core/index.d.ts +4 -0
  1111. package/dist/core/index.d.ts.map +1 -1
  1112. package/dist/core/index.mjs +66 -16
  1113. package/dist/core/key/certificate-error.d.ts +10 -0
  1114. package/dist/core/key/certificate-error.d.ts.map +1 -0
  1115. package/dist/core/key/certificate-error.mjs +19 -0
  1116. package/dist/core/key/certificate-error.mjs.map +1 -0
  1117. package/dist/core/key/certificate.d.ts +15 -0
  1118. package/dist/core/key/certificate.d.ts.map +1 -0
  1119. package/dist/core/key/certificate.mjs +72 -0
  1120. package/dist/core/key/certificate.mjs.map +1 -0
  1121. package/dist/core/key/check.d.ts +3 -0
  1122. package/dist/core/key/check.d.ts.map +1 -0
  1123. package/dist/core/key/check.mjs +13 -0
  1124. package/dist/core/key/check.mjs.map +1 -0
  1125. package/dist/core/key/constants.d.ts +10 -0
  1126. package/dist/core/key/constants.d.ts.map +1 -0
  1127. package/dist/core/key/constants.mjs +15 -0
  1128. package/dist/core/key/constants.mjs.map +1 -0
  1129. package/dist/core/key/error.d.ts +14 -0
  1130. package/dist/core/key/error.d.ts.map +1 -0
  1131. package/dist/core/key/error.mjs +23 -0
  1132. package/dist/core/key/error.mjs.map +1 -0
  1133. package/dist/core/key/index.d.ts +10 -0
  1134. package/dist/core/key/index.d.ts.map +1 -0
  1135. package/dist/core/key/index.mjs +12 -0
  1136. package/dist/core/key/provisioner.d.ts +22 -0
  1137. package/dist/core/key/provisioner.d.ts.map +1 -0
  1138. package/dist/core/key/provisioner.mjs +30 -0
  1139. package/dist/core/key/provisioner.mjs.map +1 -0
  1140. package/dist/core/key/realm-cipher.d.ts +20 -0
  1141. package/dist/core/key/realm-cipher.d.ts.map +1 -0
  1142. package/dist/core/key/realm-cipher.mjs +60 -0
  1143. package/dist/core/key/realm-cipher.mjs.map +1 -0
  1144. package/dist/core/key/types.d.ts +59 -0
  1145. package/dist/core/key/types.d.ts.map +1 -0
  1146. package/dist/core/key/wrap.d.ts +5 -0
  1147. package/dist/core/key/wrap.d.ts.map +1 -0
  1148. package/dist/core/key/wrap.mjs +21 -0
  1149. package/dist/core/key/wrap.mjs.map +1 -0
  1150. package/dist/core/mail/template/registry.d.ts.map +1 -1
  1151. package/dist/core/mail/template/registry.mjs +3 -1
  1152. package/dist/core/mail/template/registry.mjs.map +1 -1
  1153. package/dist/core/mail/template/templates/mfa-email-otp.d.ts +3 -0
  1154. package/dist/core/mail/template/templates/mfa-email-otp.d.ts.map +1 -0
  1155. package/dist/core/mail/template/templates/mfa-email-otp.mjs +34 -0
  1156. package/dist/core/mail/template/templates/mfa-email-otp.mjs.map +1 -0
  1157. package/dist/core/mail/template/types.d.ts +6 -1
  1158. package/dist/core/mail/template/types.d.ts.map +1 -1
  1159. package/dist/core/mail/template/types.mjs +1 -0
  1160. package/dist/core/mail/template/types.mjs.map +1 -1
  1161. package/dist/core/metrics/index.d.ts +3 -0
  1162. package/dist/core/metrics/index.d.ts.map +1 -0
  1163. package/dist/core/metrics/index.mjs +5 -0
  1164. package/dist/core/metrics/noop.d.ts +8 -0
  1165. package/dist/core/metrics/noop.d.ts.map +1 -0
  1166. package/dist/core/metrics/noop.mjs +14 -0
  1167. package/dist/core/metrics/noop.mjs.map +1 -0
  1168. package/dist/core/metrics/types.d.ts +19 -0
  1169. package/dist/core/metrics/types.d.ts.map +1 -0
  1170. package/dist/core/oauth2/access-policy/index.d.ts +3 -0
  1171. package/dist/core/oauth2/access-policy/index.d.ts.map +1 -0
  1172. package/dist/core/oauth2/access-policy/index.mjs +5 -0
  1173. package/dist/core/oauth2/access-policy/module.d.ts +12 -0
  1174. package/dist/core/oauth2/access-policy/module.d.ts.map +1 -0
  1175. package/dist/core/oauth2/access-policy/module.mjs +32 -0
  1176. package/dist/core/oauth2/access-policy/module.mjs.map +1 -0
  1177. package/dist/core/oauth2/access-policy/types.d.ts +19 -0
  1178. package/dist/core/oauth2/access-policy/types.d.ts.map +1 -0
  1179. package/dist/core/oauth2/authorization/code/issuer/module.d.ts.map +1 -1
  1180. package/dist/core/oauth2/authorization/code/issuer/module.mjs +2 -0
  1181. package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
  1182. package/dist/core/oauth2/authorization/code/issuer/types.d.ts +6 -1
  1183. package/dist/core/oauth2/authorization/code/issuer/types.d.ts.map +1 -1
  1184. package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
  1185. package/dist/core/oauth2/authorization/code-request/validator.d.ts.map +1 -1
  1186. package/dist/core/oauth2/authorization/code-request/validator.mjs +1 -0
  1187. package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
  1188. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +6 -6
  1189. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  1190. package/dist/core/oauth2/authorization/helpers.d.ts +10 -1
  1191. package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
  1192. package/dist/core/oauth2/authorization/helpers.mjs +28 -2
  1193. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  1194. package/dist/core/oauth2/authorization/index.mjs +2 -2
  1195. package/dist/core/oauth2/authorization/module.d.ts +9 -0
  1196. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  1197. package/dist/core/oauth2/authorization/module.mjs +82 -5
  1198. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  1199. package/dist/core/oauth2/authorization/types.d.ts +36 -0
  1200. package/dist/core/oauth2/authorization/types.d.ts.map +1 -1
  1201. package/dist/core/oauth2/client/authenticator.d.ts +16 -7
  1202. package/dist/core/oauth2/client/authenticator.d.ts.map +1 -1
  1203. package/dist/core/oauth2/client/authenticator.mjs +49 -12
  1204. package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
  1205. package/dist/core/oauth2/client/grant-type.d.ts +1 -1
  1206. package/dist/core/oauth2/client/grant-type.d.ts.map +1 -1
  1207. package/dist/core/oauth2/client/grant-type.mjs +2 -2
  1208. package/dist/core/oauth2/client/grant-type.mjs.map +1 -1
  1209. package/dist/core/oauth2/end-session/service.d.ts +2 -1
  1210. package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
  1211. package/dist/core/oauth2/end-session/service.mjs +15 -2
  1212. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  1213. package/dist/core/oauth2/end-session/types.d.ts +2 -1
  1214. package/dist/core/oauth2/end-session/types.d.ts.map +1 -1
  1215. package/dist/core/oauth2/grant-types/authorize.d.ts +2 -2
  1216. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  1217. package/dist/core/oauth2/grant-types/authorize.mjs +20 -16
  1218. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  1219. package/dist/core/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  1220. package/dist/core/oauth2/grant-types/client-credentials.mjs +10 -8
  1221. package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
  1222. package/dist/core/oauth2/grant-types/identity.d.ts.map +1 -1
  1223. package/dist/core/oauth2/grant-types/identity.mjs +16 -9
  1224. package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
  1225. package/dist/core/oauth2/grant-types/index.d.ts +0 -1
  1226. package/dist/core/oauth2/grant-types/index.d.ts.map +1 -1
  1227. package/dist/core/oauth2/grant-types/index.mjs +1 -2
  1228. package/dist/core/oauth2/grant-types/password.d.ts +9 -0
  1229. package/dist/core/oauth2/grant-types/password.d.ts.map +1 -1
  1230. package/dist/core/oauth2/grant-types/password.mjs +39 -11
  1231. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  1232. package/dist/core/oauth2/grant-types/refresh-token.d.ts +4 -0
  1233. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  1234. package/dist/core/oauth2/grant-types/refresh-token.mjs +29 -13
  1235. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  1236. package/dist/core/oauth2/grant-types/types.d.ts +10 -3
  1237. package/dist/core/oauth2/grant-types/types.d.ts.map +1 -1
  1238. package/dist/core/oauth2/index.d.ts +2 -1
  1239. package/dist/core/oauth2/index.d.ts.map +1 -1
  1240. package/dist/core/oauth2/index.mjs +7 -3
  1241. package/dist/core/oauth2/mfa-login/index.d.ts +3 -0
  1242. package/dist/core/oauth2/mfa-login/index.d.ts.map +1 -0
  1243. package/dist/core/oauth2/mfa-login/index.mjs +5 -0
  1244. package/dist/core/oauth2/mfa-login/module.d.ts +19 -0
  1245. package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -0
  1246. package/dist/core/oauth2/mfa-login/module.mjs +109 -0
  1247. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -0
  1248. package/dist/core/oauth2/mfa-login/types.d.ts +64 -0
  1249. package/dist/core/oauth2/mfa-login/types.d.ts.map +1 -0
  1250. package/dist/core/oauth2/mfa-login/types.mjs +4 -0
  1251. package/dist/core/oauth2/openid/claims.d.ts +1 -3
  1252. package/dist/core/oauth2/openid/claims.d.ts.map +1 -1
  1253. package/dist/core/oauth2/openid/claims.mjs +6 -19
  1254. package/dist/core/oauth2/openid/claims.mjs.map +1 -1
  1255. package/dist/core/oauth2/scope/resolver.d.ts +1 -3
  1256. package/dist/core/oauth2/scope/resolver.d.ts.map +1 -1
  1257. package/dist/core/oauth2/scope/resolver.mjs +9 -31
  1258. package/dist/core/oauth2/scope/resolver.mjs.map +1 -1
  1259. package/dist/core/oauth2/session-token/types.d.ts +8 -8
  1260. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  1261. package/dist/core/oauth2/token/index.mjs +2 -1
  1262. package/dist/core/oauth2/token/issuer/access/module.mjs +7 -7
  1263. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  1264. package/dist/core/oauth2/token/issuer/index.d.ts +1 -0
  1265. package/dist/core/oauth2/token/issuer/index.d.ts.map +1 -1
  1266. package/dist/core/oauth2/token/issuer/index.mjs +3 -1
  1267. package/dist/core/oauth2/token/issuer/mfa/index.d.ts +2 -0
  1268. package/dist/core/oauth2/token/issuer/mfa/index.d.ts.map +1 -0
  1269. package/dist/core/oauth2/token/issuer/mfa/index.mjs +5 -0
  1270. package/dist/core/oauth2/token/issuer/mfa/module.d.ts +18 -0
  1271. package/dist/core/oauth2/token/issuer/mfa/module.d.ts.map +1 -0
  1272. package/dist/core/oauth2/token/issuer/mfa/module.mjs +36 -0
  1273. package/dist/core/oauth2/token/issuer/mfa/module.mjs.map +1 -0
  1274. package/dist/core/oauth2/token/issuer/refresh/module.mjs +5 -5
  1275. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  1276. package/dist/core/oauth2/token/repository/types.d.ts +10 -0
  1277. package/dist/core/oauth2/token/repository/types.d.ts.map +1 -1
  1278. package/dist/core/oauth2/token/revoker/module.d.ts.map +1 -1
  1279. package/dist/core/oauth2/token/revoker/module.mjs +1 -0
  1280. package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
  1281. package/dist/core/oauth2/token/signer/module.d.ts +3 -3
  1282. package/dist/core/oauth2/token/signer/module.d.ts.map +1 -1
  1283. package/dist/core/oauth2/token/signer/module.mjs +11 -12
  1284. package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
  1285. package/dist/core/oauth2/token/verifier/module.d.ts +3 -3
  1286. package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
  1287. package/dist/core/oauth2/token/verifier/module.mjs +16 -13
  1288. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  1289. package/dist/core/provisioning/entities/index.d.ts +0 -1
  1290. package/dist/core/provisioning/entities/index.d.ts.map +1 -1
  1291. package/dist/core/provisioning/entities/index.mjs +1 -3
  1292. package/dist/core/provisioning/entities/policy/validator.d.ts +2 -0
  1293. package/dist/core/provisioning/entities/policy/validator.d.ts.map +1 -1
  1294. package/dist/core/provisioning/entities/policy/validator.mjs +10 -1
  1295. package/dist/core/provisioning/entities/policy/validator.mjs.map +1 -1
  1296. package/dist/core/provisioning/entities/realm/relations-validator.d.ts.map +1 -1
  1297. package/dist/core/provisioning/entities/realm/relations-validator.mjs +0 -4
  1298. package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
  1299. package/dist/core/provisioning/entities/realm/types.d.ts +0 -2
  1300. package/dist/core/provisioning/entities/realm/types.d.ts.map +1 -1
  1301. package/dist/core/provisioning/entities/role/types.d.ts +2 -2
  1302. package/dist/core/provisioning/index.mjs +1 -3
  1303. package/dist/core/provisioning/synchronizer/client/module.mjs +11 -11
  1304. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  1305. package/dist/core/provisioning/synchronizer/entity-resolver.mjs +12 -12
  1306. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  1307. package/dist/core/provisioning/synchronizer/index.d.ts +0 -1
  1308. package/dist/core/provisioning/synchronizer/index.d.ts.map +1 -1
  1309. package/dist/core/provisioning/synchronizer/index.mjs +1 -3
  1310. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts +2 -2
  1311. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts.map +1 -1
  1312. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs +2 -2
  1313. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs.map +1 -1
  1314. package/dist/core/provisioning/synchronizer/permission/module.mjs +8 -8
  1315. package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
  1316. package/dist/core/provisioning/synchronizer/policy/module.mjs +11 -11
  1317. package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
  1318. package/dist/core/provisioning/synchronizer/realm/module.d.ts +0 -2
  1319. package/dist/core/provisioning/synchronizer/realm/module.d.ts.map +1 -1
  1320. package/dist/core/provisioning/synchronizer/realm/module.mjs +5 -15
  1321. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  1322. package/dist/core/provisioning/synchronizer/realm/types.d.ts +0 -2
  1323. package/dist/core/provisioning/synchronizer/realm/types.d.ts.map +1 -1
  1324. package/dist/core/provisioning/synchronizer/role/module.mjs +7 -7
  1325. package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
  1326. package/dist/core/provisioning/synchronizer/scope/module.mjs +1 -1
  1327. package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
  1328. package/dist/core/provisioning/synchronizer/user/module.mjs +13 -13
  1329. package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
  1330. package/dist/core/query/index.d.ts +4 -0
  1331. package/dist/core/query/index.d.ts.map +1 -0
  1332. package/dist/core/query/index.mjs +6 -0
  1333. package/dist/core/query/module.d.ts +60 -0
  1334. package/dist/core/query/module.d.ts.map +1 -0
  1335. package/dist/core/query/module.mjs +128 -0
  1336. package/dist/core/query/module.mjs.map +1 -0
  1337. package/dist/core/query/relations.d.ts +39 -0
  1338. package/dist/core/query/relations.d.ts.map +1 -0
  1339. package/dist/core/query/relations.mjs +103 -0
  1340. package/dist/core/query/relations.mjs.map +1 -0
  1341. package/dist/core/query/types.d.ts +39 -0
  1342. package/dist/core/query/types.d.ts.map +1 -0
  1343. package/dist/core/query/types.mjs +4 -0
  1344. package/dist/core/security/policy/evaluator.d.ts +1 -0
  1345. package/dist/core/security/policy/evaluator.d.ts.map +1 -1
  1346. package/dist/core/security/policy/evaluator.mjs +52 -5
  1347. package/dist/core/security/policy/evaluator.mjs.map +1 -1
  1348. package/dist/index.mjs +52 -46
  1349. package/dist/swagger.json +4524 -3291
  1350. package/dist/ui/client/.vite/ssr-manifest.json +4606 -934
  1351. package/dist/ui/client/assets/{index-CP9HCHoS.js → index-BmJ2X468.js} +21 -17
  1352. package/dist/ui/client/assets/index-DiOvW76Q.css +2 -0
  1353. package/dist/ui/client/index.html +2 -2
  1354. package/dist/ui/server/server.js +64002 -56519
  1355. package/package.json +35 -24
  1356. package/dist/adapters/database/domains/robot/entity.d.ts +0 -19
  1357. package/dist/adapters/database/domains/robot/entity.d.ts.map +0 -1
  1358. package/dist/adapters/database/domains/robot/entity.mjs +0 -112
  1359. package/dist/adapters/database/domains/robot/entity.mjs.map +0 -1
  1360. package/dist/adapters/database/domains/robot/index.d.ts +0 -3
  1361. package/dist/adapters/database/domains/robot/index.d.ts.map +0 -1
  1362. package/dist/adapters/database/domains/robot/index.mjs +0 -6
  1363. package/dist/adapters/database/domains/robot/subscriber.d.ts +0 -6
  1364. package/dist/adapters/database/domains/robot/subscriber.d.ts.map +0 -1
  1365. package/dist/adapters/database/domains/robot/subscriber.mjs +0 -42
  1366. package/dist/adapters/database/domains/robot/subscriber.mjs.map +0 -1
  1367. package/dist/adapters/database/domains/robot-permission/entity.d.ts +0 -18
  1368. package/dist/adapters/database/domains/robot-permission/entity.d.ts.map +0 -1
  1369. package/dist/adapters/database/domains/robot-permission/entity.mjs +0 -91
  1370. package/dist/adapters/database/domains/robot-permission/entity.mjs.map +0 -1
  1371. package/dist/adapters/database/domains/robot-permission/index.d.ts.map +0 -1
  1372. package/dist/adapters/database/domains/robot-permission/index.mjs +0 -6
  1373. package/dist/adapters/database/domains/robot-permission/subscriber.d.ts +0 -6
  1374. package/dist/adapters/database/domains/robot-permission/subscriber.d.ts.map +0 -1
  1375. package/dist/adapters/database/domains/robot-permission/subscriber.mjs +0 -45
  1376. package/dist/adapters/database/domains/robot-permission/subscriber.mjs.map +0 -1
  1377. package/dist/adapters/database/domains/robot-role/entity.d.ts +0 -15
  1378. package/dist/adapters/database/domains/robot-role/entity.d.ts.map +0 -1
  1379. package/dist/adapters/database/domains/robot-role/entity.mjs +0 -72
  1380. package/dist/adapters/database/domains/robot-role/entity.mjs.map +0 -1
  1381. package/dist/adapters/database/domains/robot-role/index.d.ts +0 -3
  1382. package/dist/adapters/database/domains/robot-role/index.d.ts.map +0 -1
  1383. package/dist/adapters/database/domains/robot-role/index.mjs +0 -6
  1384. package/dist/adapters/database/domains/robot-role/subscriber.d.ts +0 -6
  1385. package/dist/adapters/database/domains/robot-role/subscriber.d.ts.map +0 -1
  1386. package/dist/adapters/database/domains/robot-role/subscriber.mjs.map +0 -1
  1387. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts +0 -12
  1388. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts.map +0 -1
  1389. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs +0 -27
  1390. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +0 -1
  1391. package/dist/adapters/http/controllers/entities/robot/index.d.ts.map +0 -1
  1392. package/dist/adapters/http/controllers/entities/robot/index.mjs +0 -5
  1393. package/dist/adapters/http/controllers/entities/robot/module.d.ts +0 -25
  1394. package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +0 -1
  1395. package/dist/adapters/http/controllers/entities/robot/module.mjs +0 -180
  1396. package/dist/adapters/http/controllers/entities/robot/module.mjs.map +0 -1
  1397. package/dist/adapters/http/controllers/entities/robot-permission/index.d.ts +0 -3
  1398. package/dist/adapters/http/controllers/entities/robot-permission/index.d.ts.map +0 -1
  1399. package/dist/adapters/http/controllers/entities/robot-permission/index.mjs +0 -7
  1400. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts +0 -17
  1401. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts.map +0 -1
  1402. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +0 -1
  1403. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.d.ts +0 -2
  1404. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.d.ts.map +0 -1
  1405. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.mjs +0 -5
  1406. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.d.ts +0 -6
  1407. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.d.ts.map +0 -1
  1408. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs +0 -21
  1409. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs.map +0 -1
  1410. package/dist/adapters/http/controllers/entities/robot-role/index.d.ts +0 -3
  1411. package/dist/adapters/http/controllers/entities/robot-role/index.d.ts.map +0 -1
  1412. package/dist/adapters/http/controllers/entities/robot-role/index.mjs +0 -7
  1413. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts +0 -16
  1414. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts.map +0 -1
  1415. package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +0 -1
  1416. package/dist/adapters/http/controllers/entities/robot-role/utils/index.d.ts +0 -2
  1417. package/dist/adapters/http/controllers/entities/robot-role/utils/index.d.ts.map +0 -1
  1418. package/dist/adapters/http/controllers/entities/robot-role/utils/index.mjs +0 -5
  1419. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.d.ts +0 -6
  1420. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.d.ts.map +0 -1
  1421. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs +0 -20
  1422. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs.map +0 -1
  1423. package/dist/app/modules/database/repositories/robot/index.d.ts.map +0 -1
  1424. package/dist/app/modules/database/repositories/robot/index.mjs +0 -5
  1425. package/dist/app/modules/database/repositories/robot/repository.d.ts +0 -31
  1426. package/dist/app/modules/database/repositories/robot/repository.d.ts.map +0 -1
  1427. package/dist/app/modules/database/repositories/robot/repository.mjs +0 -190
  1428. package/dist/app/modules/database/repositories/robot/repository.mjs.map +0 -1
  1429. package/dist/app/modules/database/repositories/robot-permission/index.d.ts.map +0 -1
  1430. package/dist/app/modules/database/repositories/robot-permission/index.mjs +0 -5
  1431. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts +0 -20
  1432. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts.map +0 -1
  1433. package/dist/app/modules/database/repositories/robot-permission/repository.mjs +0 -79
  1434. package/dist/app/modules/database/repositories/robot-permission/repository.mjs.map +0 -1
  1435. package/dist/app/modules/database/repositories/robot-role/index.d.ts.map +0 -1
  1436. package/dist/app/modules/database/repositories/robot-role/index.mjs +0 -5
  1437. package/dist/app/modules/database/repositories/robot-role/repository.d.ts +0 -20
  1438. package/dist/app/modules/database/repositories/robot-role/repository.d.ts.map +0 -1
  1439. package/dist/app/modules/database/repositories/robot-role/repository.mjs +0 -79
  1440. package/dist/app/modules/database/repositories/robot-role/repository.mjs.map +0 -1
  1441. package/dist/app/modules/identity/repositories/robot.d.ts +0 -13
  1442. package/dist/app/modules/identity/repositories/robot.d.ts.map +0 -1
  1443. package/dist/app/modules/identity/repositories/robot.mjs +0 -47
  1444. package/dist/app/modules/identity/repositories/robot.mjs.map +0 -1
  1445. package/dist/app/modules/oauth2/repositories/key/index.d.ts.map +0 -1
  1446. package/dist/app/modules/oauth2/repositories/key/index.mjs +0 -5
  1447. package/dist/app/modules/oauth2/repositories/key/repository.d.ts +0 -14
  1448. package/dist/app/modules/oauth2/repositories/key/repository.d.ts.map +0 -1
  1449. package/dist/app/modules/oauth2/repositories/key/repository.mjs +0 -51
  1450. package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +0 -1
  1451. package/dist/core/authentication/credential/entities/robot/index.d.ts.map +0 -1
  1452. package/dist/core/authentication/credential/entities/robot/index.mjs +0 -5
  1453. package/dist/core/authentication/credential/entities/robot/module.d.ts +0 -8
  1454. package/dist/core/authentication/credential/entities/robot/module.d.ts.map +0 -1
  1455. package/dist/core/authentication/credential/entities/robot/module.mjs +0 -22
  1456. package/dist/core/authentication/credential/entities/robot/module.mjs.map +0 -1
  1457. package/dist/core/authentication/entities/robot/index.d.ts.map +0 -1
  1458. package/dist/core/authentication/entities/robot/index.mjs +0 -5
  1459. package/dist/core/authentication/entities/robot/module.d.ts +0 -11
  1460. package/dist/core/authentication/entities/robot/module.d.ts.map +0 -1
  1461. package/dist/core/authentication/entities/robot/module.mjs +0 -29
  1462. package/dist/core/authentication/entities/robot/module.mjs.map +0 -1
  1463. package/dist/core/entities/robot/index.d.ts +0 -3
  1464. package/dist/core/entities/robot/index.d.ts.map +0 -1
  1465. package/dist/core/entities/robot/index.mjs +0 -5
  1466. package/dist/core/entities/robot/service.d.ts +0 -28
  1467. package/dist/core/entities/robot/service.d.ts.map +0 -1
  1468. package/dist/core/entities/robot/service.mjs +0 -201
  1469. package/dist/core/entities/robot/service.mjs.map +0 -1
  1470. package/dist/core/entities/robot/types.d.ts +0 -24
  1471. package/dist/core/entities/robot/types.d.ts.map +0 -1
  1472. package/dist/core/entities/robot-permission/index.d.ts.map +0 -1
  1473. package/dist/core/entities/robot-permission/index.mjs +0 -5
  1474. package/dist/core/entities/robot-permission/service.d.ts +0 -25
  1475. package/dist/core/entities/robot-permission/service.d.ts.map +0 -1
  1476. package/dist/core/entities/robot-permission/service.mjs +0 -137
  1477. package/dist/core/entities/robot-permission/service.mjs.map +0 -1
  1478. package/dist/core/entities/robot-permission/types.d.ts +0 -12
  1479. package/dist/core/entities/robot-permission/types.d.ts.map +0 -1
  1480. package/dist/core/entities/robot-role/index.d.ts +0 -3
  1481. package/dist/core/entities/robot-role/index.d.ts.map +0 -1
  1482. package/dist/core/entities/robot-role/index.mjs +0 -5
  1483. package/dist/core/entities/robot-role/service.d.ts +0 -22
  1484. package/dist/core/entities/robot-role/service.d.ts.map +0 -1
  1485. package/dist/core/entities/robot-role/service.mjs +0 -90
  1486. package/dist/core/entities/robot-role/service.mjs.map +0 -1
  1487. package/dist/core/entities/robot-role/types.d.ts +0 -11
  1488. package/dist/core/entities/robot-role/types.d.ts.map +0 -1
  1489. package/dist/core/identity/entities/robot/index.d.ts +0 -2
  1490. package/dist/core/identity/entities/robot/index.d.ts.map +0 -1
  1491. package/dist/core/identity/entities/robot/types.d.ts +0 -8
  1492. package/dist/core/identity/entities/robot/types.d.ts.map +0 -1
  1493. package/dist/core/oauth2/grant-types/robot-credentials.d.ts +0 -8
  1494. package/dist/core/oauth2/grant-types/robot-credentials.d.ts.map +0 -1
  1495. package/dist/core/oauth2/grant-types/robot-credentials.mjs +0 -38
  1496. package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +0 -1
  1497. package/dist/core/oauth2/key/index.d.ts +0 -2
  1498. package/dist/core/oauth2/key/index.d.ts.map +0 -1
  1499. package/dist/core/oauth2/key/types.d.ts +0 -16
  1500. package/dist/core/oauth2/key/types.d.ts.map +0 -1
  1501. package/dist/core/provisioning/entities/robot/index.d.ts +0 -3
  1502. package/dist/core/provisioning/entities/robot/index.d.ts.map +0 -1
  1503. package/dist/core/provisioning/entities/robot/index.mjs +0 -5
  1504. package/dist/core/provisioning/entities/robot/relations-validator.d.ts +0 -6
  1505. package/dist/core/provisioning/entities/robot/relations-validator.d.ts.map +0 -1
  1506. package/dist/core/provisioning/entities/robot/relations-validator.mjs +0 -20
  1507. package/dist/core/provisioning/entities/robot/relations-validator.mjs.map +0 -1
  1508. package/dist/core/provisioning/entities/robot/types.d.ts +0 -25
  1509. package/dist/core/provisioning/entities/robot/types.d.ts.map +0 -1
  1510. package/dist/core/provisioning/entities/robot/validator.d.ts +0 -6
  1511. package/dist/core/provisioning/entities/robot/validator.d.ts.map +0 -1
  1512. package/dist/core/provisioning/entities/robot/validator.mjs +0 -24
  1513. package/dist/core/provisioning/entities/robot/validator.mjs.map +0 -1
  1514. package/dist/core/provisioning/synchronizer/robot/index.d.ts.map +0 -1
  1515. package/dist/core/provisioning/synchronizer/robot/index.mjs +0 -5
  1516. package/dist/core/provisioning/synchronizer/robot/module.d.ts +0 -17
  1517. package/dist/core/provisioning/synchronizer/robot/module.d.ts.map +0 -1
  1518. package/dist/core/provisioning/synchronizer/robot/module.mjs +0 -72
  1519. package/dist/core/provisioning/synchronizer/robot/module.mjs.map +0 -1
  1520. package/dist/core/provisioning/synchronizer/robot/types.d.ts +0 -9
  1521. package/dist/core/provisioning/synchronizer/robot/types.d.ts.map +0 -1
  1522. package/dist/ui/client/assets/index-VM4JXBXw.css +0 -2
  1523. /package/dist/adapters/database/domains/{robot-permission → consent}/index.d.ts +0 -0
  1524. /package/dist/adapters/http/controllers/entities/{robot → consent}/index.d.ts +0 -0
  1525. /package/dist/{core/authentication/credential/entities/robot → adapters/http/controllers/entities/event}/index.d.ts +0 -0
  1526. /package/dist/{core/authentication/entities/robot → adapters/http/controllers/entities/key}/index.d.ts +0 -0
  1527. /package/dist/{core/entities/robot-permission → adapters/http/request}/types.mjs +0 -0
  1528. /package/dist/app/modules/database/repositories/{robot-permission → event}/index.d.ts +0 -0
  1529. /package/dist/app/modules/database/repositories/{robot-role → key}/index.d.ts +0 -0
  1530. /package/dist/app/modules/database/repositories/{robot → trust-anchor}/index.d.ts +0 -0
  1531. /package/dist/app/modules/{oauth2/repositories/key → database/repositories/user-authenticator}/index.d.ts +0 -0
  1532. /package/dist/core/{entities/robot-permission → authentication/login-throttle}/index.d.ts +0 -0
  1533. /package/dist/core/{entities/robot-role → authentication/login-throttle}/types.mjs +0 -0
  1534. /package/dist/core/{provisioning/synchronizer/robot → client-certificate}/index.d.ts +0 -0
  1535. /package/dist/core/{entities/robot → client-certificate}/types.mjs +0 -0
  1536. /package/dist/core/{identity/entities/robot → entities/event}/types.mjs +0 -0
  1537. /package/dist/core/{oauth2 → entities}/key/types.mjs +0 -0
  1538. /package/dist/core/{provisioning/entities/robot → entities/trust-anchor}/types.mjs +0 -0
  1539. /package/dist/core/{provisioning/synchronizer/robot → key}/types.mjs +0 -0
  1540. /package/dist/core/{identity/entities/robot/index.mjs → metrics/types.mjs} +0 -0
  1541. /package/dist/core/oauth2/{key/index.mjs → access-policy/types.mjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/core/oauth2/access-policy/module.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EACR,4BAA4B,EAC5B,2BAA2B,EAC3B,kCAAkC,EACrC,MAAM,YAAY,CAAC;AAEpB,qBAAa,2BAA4B,YAAW,4BAA4B;IAC5E,SAAS,CAAC,cAAc,EAAG,2BAA2B,CAAC;IAEvD,SAAS,CAAC,MAAM,EAAG,YAAY,CAAC;IAEhC,SAAS,CAAC,MAAM,CAAC,EAAG,MAAM,CAAC;gBAEf,GAAG,EAAE,kCAAkC;IAM7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBlF"}
@@ -0,0 +1,32 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { PolicyEngine as PolicyEngine$1 } from "../../security/policy/engine.mjs";
5
+ import { BuiltInPolicyType, PolicyData, definePolicyEvaluationContext } from "@authup/access";
6
+ //#region src/core/oauth2/access-policy/module.ts
7
+ var OAuth2AccessPolicyEvaluator = class {
8
+ policyProvider;
9
+ engine;
10
+ logger;
11
+ constructor(ctx) {
12
+ this.policyProvider = ctx.policyProvider;
13
+ this.engine = new PolicyEngine$1(ctx.identityPermissionProvider);
14
+ this.logger = ctx.logger;
15
+ }
16
+ async evaluate(policyId, subject) {
17
+ let tree;
18
+ try {
19
+ tree = await this.policyProvider.findDescendantsTreeById(policyId);
20
+ } catch (e) {
21
+ this.logger?.warn(`Loading the access policy ${policyId} failed.`, { error: e });
22
+ return false;
23
+ }
24
+ if (!tree) return false;
25
+ const ctx = definePolicyEvaluationContext({ data: new PolicyData({ [BuiltInPolicyType.IDENTITY]: subject }) });
26
+ return (await this.engine.evaluate(tree, ctx)).success;
27
+ }
28
+ };
29
+ //#endregion
30
+ export { OAuth2AccessPolicyEvaluator };
31
+
32
+ //# sourceMappingURL=module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.mjs","names":["BuiltInPolicyType","PolicyData","definePolicyEvaluationContext","PolicyEngine","OAuth2AccessPolicyEvaluator","policyProvider","engine","logger","ctx","identityPermissionProvider","evaluate","policyId","subject","tree","findDescendantsTreeById","e","warn","error","data","IDENTITY","result","success"],"sources":["../../../../src/core/oauth2/access-policy/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 {\n BuiltInPolicyType,\n PolicyData,\n definePolicyEvaluationContext,\n} from '@authup/access';\nimport type { BasePolicy, IdentityPolicyData } from '@authup/access';\nimport type { Logger } from '@authup/server-kit';\nimport { PolicyEngine } from '../../security/policy/engine.ts';\nimport type {\n IOAuth2AccessPolicyEvaluator,\n IOAuth2AccessPolicyProvider,\n OAuth2AccessPolicyEvaluatorContext,\n} from './types.ts';\n\nexport class OAuth2AccessPolicyEvaluator implements IOAuth2AccessPolicyEvaluator {\n protected policyProvider : IOAuth2AccessPolicyProvider;\n\n protected engine : PolicyEngine;\n\n protected logger? : Logger;\n\n constructor(ctx: OAuth2AccessPolicyEvaluatorContext) {\n this.policyProvider = ctx.policyProvider;\n this.engine = new PolicyEngine(ctx.identityPermissionProvider);\n this.logger = ctx.logger;\n }\n\n async evaluate(policyId: string, subject: IdentityPolicyData): Promise<boolean> {\n let tree : BasePolicy | null;\n\n try {\n tree = await this.policyProvider.findDescendantsTreeById(policyId);\n } catch (e) {\n this.logger?.warn(`Loading the access policy ${policyId} failed.`, { error: e });\n return false;\n }\n\n if (!tree) {\n return false;\n }\n\n const ctx = definePolicyEvaluationContext({ data: new PolicyData({ [BuiltInPolicyType.IDENTITY]: subject }) });\n\n const result = await this.engine.evaluate(tree, ctx);\n\n return result.success;\n }\n}\n"],"mappings":";;;;;;AAqBA,IAAaI,8BAAb,MAAaA;CACCC;CAEAC;CAEAC;CAEV,YAAYC,KAAyC;EACjD,KAAKH,iBAAiBG,IAAIH;EAC1B,KAAKC,SAAS,IAAIH,eAAaK,IAAIC,0BAA0B;EAC7D,KAAKF,SAASC,IAAID;CACtB;CAEA,MAAMG,SAASC,UAAkBC,SAA+C;EAC5E,IAAIC;EAEJ,IAAI;GACAA,OAAO,MAAM,KAAKR,eAAeS,wBAAwBH,QAAAA;EAC7D,SAASI,GAAG;GACR,KAAKR,QAAQS,KAAK,6BAA6BL,SAAS,WAAW,EAAEM,OAAOF,EAAE,CAAA;GAC9E,OAAO;EACX;EAEA,IAAI,CAACF,MACD,OAAO;EAGX,MAAML,MAAMN,8BAA8B,EAAEgB,MAAM,IAAIjB,WAAW,GAAGD,kBAAkBmB,WAAWP,QAAQ,CAAA,EAAG,CAAA;EAI5G,QAAOQ,MAFc,KAAKd,OAAOI,SAASG,MAAML,GAAAA,EAAAA,CAElCa;CAClB;AACJ"}
@@ -0,0 +1,19 @@
1
+ import type { BasePolicy, IdentityPolicyData } from '@authup/access';
2
+ import type { Logger } from '@authup/server-kit';
3
+ import type { IIdentityPermissionProvider } from '../../identity/permission/types.ts';
4
+ export interface IOAuth2AccessPolicyEvaluator {
5
+ /**
6
+ * true = access permitted. A present-but-unresolvable policy id,
7
+ * a load failure, or an evaluation failure all yield false (fail closed).
8
+ */
9
+ evaluate(policyId: string, subject: IdentityPolicyData): Promise<boolean>;
10
+ }
11
+ export interface IOAuth2AccessPolicyProvider {
12
+ findDescendantsTreeById(id: string): Promise<BasePolicy | null>;
13
+ }
14
+ export type OAuth2AccessPolicyEvaluatorContext = {
15
+ policyProvider: IOAuth2AccessPolicyProvider;
16
+ identityPermissionProvider: IIdentityPermissionProvider;
17
+ logger?: Logger;
18
+ };
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/oauth2/access-policy/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEtF,MAAM,WAAW,4BAA4B;IACzC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,2BAA2B;IACxC,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CACnE;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC7C,cAAc,EAAE,2BAA2B,CAAC;IAC5C,0BAA0B,EAAE,2BAA2B,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/core/oauth2/authorization/code/issuer/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAE1G,OAAO,KAAK,EAAE,kCAAkC,EAAgC,MAAM,wBAAwB,CAAC;AAC/G,OAAO,KAAK,EAAE,8BAA8B,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAEvG,qBAAa,6BAA8B,YAAW,8BAA8B;IAChF,SAAS,CAAC,UAAU,EAAE,kCAAkC,CAAC;IAEzD,SAAS,CAAC,OAAO,EAAE,oCAAoC,CAAC;gBAGpD,UAAU,EAAE,kCAAkC,EAC9C,OAAO,GAAE,oCAAyC;IAMhD,KAAK,CACP,KAAK,EAAE,8BAA8B,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,oCAAyC,GAClD,OAAO,CAAC,uBAAuB,CAAC;CA+BvC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/core/oauth2/authorization/code/issuer/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAE1G,OAAO,KAAK,EAAE,kCAAkC,EAAgC,MAAM,wBAAwB,CAAC;AAC/G,OAAO,KAAK,EAAE,8BAA8B,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAEvG,qBAAa,6BAA8B,YAAW,8BAA8B;IAChF,SAAS,CAAC,UAAU,EAAE,kCAAkC,CAAC;IAEzD,SAAS,CAAC,OAAO,EAAE,oCAAoC,CAAC;gBAGpD,UAAU,EAAE,kCAAkC,EAC9C,OAAO,GAAE,oCAAyC;IAMhD,KAAK,CACP,KAAK,EAAE,8BAA8B,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,oCAAyC,GAClD,OAAO,CAAC,uBAAuB,CAAC;CAiCvC"}
@@ -20,7 +20,9 @@ var OAuth2AuthorizationCodeIssuer = class {
20
20
  nonce: input.nonce,
21
21
  code_challenge: input.code_challenge,
22
22
  code_challenge_method: input.code_challenge_method,
23
+ acr_values: input.acr_values ?? null,
23
24
  auth_time: options.authTime ?? Math.floor(Date.now() / 1e3),
25
+ auth_method: options.authMethod ?? null,
24
26
  realm_id: realm.id,
25
27
  realm_name: realm.name,
26
28
  sub: identity.data.id,
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["OAuth2RequestError","OAuth2AuthorizationCodeIssuer","repository","options","issue","input","identity","realm","data","identityInvalid","entity","redirect_uri","client_id","scope","nonce","code_challenge","code_challenge_method","auth_time","authTime","Math","floor","Date","now","realm_id","id","realm_name","name","sub","sub_kind","type","sessionId","session_id","save","maxAge"],"sources":["../../../../../../src/core/oauth2/authorization/code/issuer/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 { Identity, OAuth2AuthorizationCode, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport { OAuth2RequestError } from '@authup/specs';\nimport type { IOAuth2AuthorizationCodeRepository, OAuth2AuthorizationCodeInput } from '../repository/index.ts';\nimport type { IOAuth2AuthorizationCodeIssuer, OAuth2AuthorizationCodeIssuerOptions } from './types.ts';\n\nexport class OAuth2AuthorizationCodeIssuer implements IOAuth2AuthorizationCodeIssuer {\n protected repository: IOAuth2AuthorizationCodeRepository;\n\n protected options: OAuth2AuthorizationCodeIssuerOptions;\n\n constructor(\n repository: IOAuth2AuthorizationCodeRepository,\n options: OAuth2AuthorizationCodeIssuerOptions = {},\n ) {\n this.repository = repository;\n this.options = options;\n }\n\n async issue(\n input: OAuth2AuthorizationCodeRequest,\n identity: Identity,\n options: OAuth2AuthorizationCodeIssuerOptions = {},\n ) : Promise<OAuth2AuthorizationCode> {\n // The code carries the identity's realm id + name. A dangling realm\n // relation (realm row deleted without cascade) must fail closed as a\n // clean OAuth2 error — never a TypeError → 500.\n const { realm } = identity.data;\n if (!realm) {\n throw OAuth2RequestError.identityInvalid();\n }\n\n const entity: OAuth2AuthorizationCodeInput = {\n redirect_uri: input.redirect_uri,\n client_id: input.client_id,\n scope: input.scope,\n nonce: input.nonce,\n code_challenge: input.code_challenge,\n code_challenge_method: input.code_challenge_method,\n\n auth_time: options.authTime ?? Math.floor(Date.now() / 1000),\n\n realm_id: realm.id,\n realm_name: realm.name,\n sub: identity.data.id,\n sub_kind: identity.type,\n };\n\n if (options.sessionId) {\n entity.session_id = options.sessionId;\n }\n\n return this.repository.save(entity, { maxAge: options.maxAge ?? this.options.maxAge });\n }\n}\n"],"mappings":";;;;;AAYA,IAAaC,gCAAb,MAAaA;CACCC;CAEAC;CAEV,YACID,YACAC,UAAgD,CAAC,GACnD;EACE,KAAKD,aAAaA;EAClB,KAAKC,UAAUA;CACnB;CAEA,MAAMC,MACFC,OACAC,UACAH,UAAgD,CAAC,GAChB;EAIjC,MAAM,EAAEI,UAAUD,SAASE;EAC3B,IAAI,CAACD,OACD,MAAMP,mBAAmBS,gBAAe;EAG5C,MAAMC,SAAuC;GACzCC,cAAcN,MAAMM;GACpBC,WAAWP,MAAMO;GACjBC,OAAOR,MAAMQ;GACbC,OAAOT,MAAMS;GACbC,gBAAgBV,MAAMU;GACtBC,uBAAuBX,MAAMW;GAE7BC,WAAWd,QAAQe,YAAYC,KAAKC,MAAMC,KAAKC,IAAG,IAAK,GAAA;GAEvDC,UAAUhB,MAAMiB;GAChBC,YAAYlB,MAAMmB;GAClBC,KAAKrB,SAASE,KAAKgB;GACnBI,UAAUtB,SAASuB;EACvB;EAEA,IAAI1B,QAAQ2B,WACRpB,OAAOqB,aAAa5B,QAAQ2B;EAGhC,OAAO,KAAK5B,WAAW8B,KAAKtB,QAAQ,EAAEuB,QAAQ9B,QAAQ8B,UAAU,KAAK9B,QAAQ8B,OAAO,CAAA;CACxF;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["OAuth2RequestError","OAuth2AuthorizationCodeIssuer","repository","options","issue","input","identity","realm","data","identityInvalid","entity","redirect_uri","client_id","scope","nonce","code_challenge","code_challenge_method","acr_values","auth_time","authTime","Math","floor","Date","now","auth_method","authMethod","realm_id","id","realm_name","name","sub","sub_kind","type","sessionId","session_id","save","maxAge"],"sources":["../../../../../../src/core/oauth2/authorization/code/issuer/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 { Identity, OAuth2AuthorizationCode, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport { OAuth2RequestError } from '@authup/specs';\nimport type { IOAuth2AuthorizationCodeRepository, OAuth2AuthorizationCodeInput } from '../repository/index.ts';\nimport type { IOAuth2AuthorizationCodeIssuer, OAuth2AuthorizationCodeIssuerOptions } from './types.ts';\n\nexport class OAuth2AuthorizationCodeIssuer implements IOAuth2AuthorizationCodeIssuer {\n protected repository: IOAuth2AuthorizationCodeRepository;\n\n protected options: OAuth2AuthorizationCodeIssuerOptions;\n\n constructor(\n repository: IOAuth2AuthorizationCodeRepository,\n options: OAuth2AuthorizationCodeIssuerOptions = {},\n ) {\n this.repository = repository;\n this.options = options;\n }\n\n async issue(\n input: OAuth2AuthorizationCodeRequest,\n identity: Identity,\n options: OAuth2AuthorizationCodeIssuerOptions = {},\n ) : Promise<OAuth2AuthorizationCode> {\n // The code carries the identity's realm id + name. A dangling realm\n // relation (realm row deleted without cascade) must fail closed as a\n // clean OAuth2 error — never a TypeError → 500.\n const { realm } = identity.data;\n if (!realm) {\n throw OAuth2RequestError.identityInvalid();\n }\n\n const entity: OAuth2AuthorizationCodeInput = {\n redirect_uri: input.redirect_uri,\n client_id: input.client_id,\n scope: input.scope,\n nonce: input.nonce,\n code_challenge: input.code_challenge,\n code_challenge_method: input.code_challenge_method,\n acr_values: input.acr_values ?? null,\n\n auth_time: options.authTime ?? Math.floor(Date.now() / 1000),\n auth_method: options.authMethod ?? null,\n\n realm_id: realm.id,\n realm_name: realm.name,\n sub: identity.data.id,\n sub_kind: identity.type,\n };\n\n if (options.sessionId) {\n entity.session_id = options.sessionId;\n }\n\n return this.repository.save(entity, { maxAge: options.maxAge ?? this.options.maxAge });\n }\n}\n"],"mappings":";;;;;AAYA,IAAaC,gCAAb,MAAaA;CACCC;CAEAC;CAEV,YACID,YACAC,UAAgD,CAAC,GACnD;EACE,KAAKD,aAAaA;EAClB,KAAKC,UAAUA;CACnB;CAEA,MAAMC,MACFC,OACAC,UACAH,UAAgD,CAAC,GAChB;EAIjC,MAAM,EAAEI,UAAUD,SAASE;EAC3B,IAAI,CAACD,OACD,MAAMP,mBAAmBS,gBAAe;EAG5C,MAAMC,SAAuC;GACzCC,cAAcN,MAAMM;GACpBC,WAAWP,MAAMO;GACjBC,OAAOR,MAAMQ;GACbC,OAAOT,MAAMS;GACbC,gBAAgBV,MAAMU;GACtBC,uBAAuBX,MAAMW;GAC7BC,YAAYZ,MAAMY,cAAc;GAEhCC,WAAWf,QAAQgB,YAAYC,KAAKC,MAAMC,KAAKC,IAAG,IAAK,GAAA;GACvDC,aAAarB,QAAQsB,cAAc;GAEnCC,UAAUnB,MAAMoB;GAChBC,YAAYrB,MAAMsB;GAClBC,KAAKxB,SAASE,KAAKmB;GACnBI,UAAUzB,SAAS0B;EACvB;EAEA,IAAI7B,QAAQ8B,WACRvB,OAAOwB,aAAa/B,QAAQ8B;EAGhC,OAAO,KAAK/B,WAAWiC,KAAKzB,QAAQ,EAAE0B,QAAQjC,QAAQiC,UAAU,KAAKjC,QAAQiC,OAAO,CAAA;CACxF;AACJ"}
@@ -1,4 +1,4 @@
1
- import type { Identity, OAuth2AuthorizationCode, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';
1
+ import type { Identity, OAuth2AuthorizationCode, OAuth2AuthorizationCodeRequest, SessionAuthMethod } from '@authup/core-kit';
2
2
  export type OAuth2AuthorizationCodeIssuerOptions = {
3
3
  /**
4
4
  * Max duration in seconds
@@ -15,6 +15,11 @@ export type OAuth2AuthorizationCodeIssuerOptions = {
15
15
  * Defaults to the issuance instant (session-less flows authenticate now).
16
16
  */
17
17
  authTime?: number;
18
+ /**
19
+ * How the subject authenticated (SessionAuthMethod) — persisted on the
20
+ * code so a session created at the /token exchange inherits it.
21
+ */
22
+ authMethod?: `${SessionAuthMethod}` | null;
18
23
  };
19
24
  export interface IOAuth2AuthorizationCodeIssuer {
20
25
  issue(input: OAuth2AuthorizationCodeRequest, identity: Identity, options?: OAuth2AuthorizationCodeIssuerOptions): Promise<OAuth2AuthorizationCode>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/oauth2/authorization/code/issuer/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAE1G,MAAM,MAAM,oCAAoC,GAAG;IAC/C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC3C,KAAK,CACD,KAAK,EAAE,8BAA8B,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,oCAAoC,GAC9C,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACxC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/oauth2/authorization/code/issuer/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,QAAQ,EACR,uBAAuB,EACvB,8BAA8B,EAC9B,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,oCAAoC,GAAG;IAC/C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC3C,KAAK,CACD,KAAK,EAAE,8BAA8B,EACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,oCAAoC,GAC9C,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["OAuth2AuthorizationCodeChallengeMethod","OAuth2GrantError","buildOAuth2CodeChallenge","OAuth2AuthorizationCodeVerifier","repository","verify","code","options","entity","popOneById","invalid","client_id","clientId","realmId","realm_id","redirect_uri","redirectUri","redirectUriMismatch","clientIsPublic","code_challenge","codeVerifier","code_challenge_method","SHA_256","codeVerifierHash"],"sources":["../../../../../../src/core/oauth2/authorization/code/verifier/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 { OAuth2AuthorizationCode } from '@authup/core-kit';\nimport { OAuth2AuthorizationCodeChallengeMethod, OAuth2GrantError } from '@authup/specs';\nimport { buildOAuth2CodeChallenge } from '../../helpers.ts';\n\nimport type { IOAuth2AuthorizationCodeRepository } from '../repository/index.ts';\nimport type { IOAuth2AuthorizationCodeVerifier, IOAuth2AuthorizationCodeVerifyOptions } from './types.ts';\n\nexport class OAuth2AuthorizationCodeVerifier implements IOAuth2AuthorizationCodeVerifier {\n protected repository : IOAuth2AuthorizationCodeRepository;\n\n constructor(repository: IOAuth2AuthorizationCodeRepository) {\n this.repository = repository;\n }\n\n async verify(code: string, options: IOAuth2AuthorizationCodeVerifyOptions) : Promise<OAuth2AuthorizationCode> {\n const entity = await this.repository.popOneById(code);\n if (!entity) {\n throw OAuth2GrantError.invalid();\n }\n\n // RFC 6749 §4.1.3: if the client was issued a client_id, verify the\n // authorization code was issued to the authenticated client. Always\n // require a clientId to be supplied so a malformed token request can't\n // bypass the binding by omitting it.\n if (entity.client_id) {\n if (!options.clientId || options.clientId !== entity.client_id) {\n throw OAuth2GrantError.invalid();\n }\n }\n\n // Realm binding (defense in depth): the code's realm (the authorizing\n // identity's realm) must match the authenticated client's realm. Blocks\n // redeeming a realm-A identity's code against a realm-B client — covers\n // codes minted outside OAuth2Authorization.authorize() (identity-provider\n // callback) and any in-flight codes issued before the authorize-side gate.\n if (options.realmId && entity.realm_id && entity.realm_id !== options.realmId) {\n throw OAuth2GrantError.invalid();\n }\n\n if (entity.redirect_uri) {\n if (!options.redirectUri || entity.redirect_uri !== options.redirectUri) {\n throw OAuth2GrantError.redirectUriMismatch();\n }\n }\n\n // Public clients MUST use PKCE (RFC 7636). Defense in depth in case\n // the authorize-side check was bypassed or the client's\n // is_confidential flag changed between authorize and token.\n if (options.clientIsPublic && !entity.code_challenge) {\n throw OAuth2GrantError.invalid('PKCE is required for public clients.');\n }\n\n if (entity.code_challenge) {\n if (!options.codeVerifier) {\n throw OAuth2GrantError.invalid('Code verifier invalid.');\n }\n\n // RFC 7636 §4.3: code_challenge_method defaults to \"plain\" when\n // absent. Only treat the challenge as S256 when the client\n // explicitly sent code_challenge_method=S256.\n if (entity.code_challenge_method === OAuth2AuthorizationCodeChallengeMethod.SHA_256) {\n const codeVerifierHash = await buildOAuth2CodeChallenge(options.codeVerifier);\n if (codeVerifierHash !== entity.code_challenge) {\n throw OAuth2GrantError.invalid('PKCE code_verifier mismatch.');\n }\n } else if (options.codeVerifier !== entity.code_challenge) {\n throw OAuth2GrantError.invalid('PKCE code_verifier mismatch.');\n }\n }\n\n return entity;\n }\n}\n"],"mappings":";;;;;;AAcA,IAAaG,kCAAb,MAAaA;CACCC;CAEV,YAAYA,YAAgD;EACxD,KAAKA,aAAaA;CACtB;CAEA,MAAMC,OAAOC,MAAcC,SAAmF;EAC1G,MAAMC,SAAS,MAAM,KAAKJ,WAAWK,WAAWH,IAAAA;EAChD,IAAI,CAACE,QACD,MAAMP,iBAAiBS,QAAO;EAOlC,IAAIF,OAAOG;OACH,CAACJ,QAAQK,YAAYL,QAAQK,aAAaJ,OAAOG,WACjD,MAAMV,iBAAiBS,QAAO;EAAA;EAStC,IAAIH,QAAQM,WAAWL,OAAOM,YAAYN,OAAOM,aAAaP,QAAQM,SAClE,MAAMZ,iBAAiBS,QAAO;EAGlC,IAAIF,OAAOO;OACH,CAACR,QAAQS,eAAeR,OAAOO,iBAAiBR,QAAQS,aACxD,MAAMf,iBAAiBgB,oBAAmB;EAAA;EAOlD,IAAIV,QAAQW,kBAAkB,CAACV,OAAOW,gBAClC,MAAMlB,iBAAiBS,QAAQ,sCAAA;EAGnC,IAAIF,OAAOW,gBAAgB;GACvB,IAAI,CAACZ,QAAQa,cACT,MAAMnB,iBAAiBS,QAAQ,wBAAA;GAMnC,IAAIF,OAAOa,0BAA0BrB,uCAAuCsB;QAEpEC,MAD2BrB,yBAAyBK,QAAQa,YAAY,MACnDZ,OAAOW,gBAC5B,MAAMlB,iBAAiBS,QAAQ,8BAAA;GAAA,OAEhC,IAAIH,QAAQa,iBAAiBZ,OAAOW,gBACvC,MAAMlB,iBAAiBS,QAAQ,8BAAA;EAEvC;EAEA,OAAOF;CACX;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["OAuth2AuthorizationCodeChallengeMethod","OAuth2GrantError","buildOAuth2CodeChallenge","OAuth2AuthorizationCodeVerifier","repository","verify","code","options","entity","popOneById","invalid","client_id","clientId","realmId","realm_id","redirect_uri","redirectUri","redirectUriMismatch","clientIsPublic","code_challenge","codeVerifier","code_challenge_method","SHA_256","codeVerifierHash"],"sources":["../../../../../../src/core/oauth2/authorization/code/verifier/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 { OAuth2AuthorizationCode } from '@authup/core-kit';\nimport { OAuth2AuthorizationCodeChallengeMethod, OAuth2GrantError } from '@authup/specs';\nimport { buildOAuth2CodeChallenge } from '../../helpers.ts';\n\nimport type { IOAuth2AuthorizationCodeRepository } from '../repository/index.ts';\nimport type { IOAuth2AuthorizationCodeVerifier, IOAuth2AuthorizationCodeVerifyOptions } from './types.ts';\n\nexport class OAuth2AuthorizationCodeVerifier implements IOAuth2AuthorizationCodeVerifier {\n protected repository : IOAuth2AuthorizationCodeRepository;\n\n constructor(repository: IOAuth2AuthorizationCodeRepository) {\n this.repository = repository;\n }\n\n async verify(code: string, options: IOAuth2AuthorizationCodeVerifyOptions) : Promise<OAuth2AuthorizationCode> {\n const entity = await this.repository.popOneById(code);\n if (!entity) {\n throw OAuth2GrantError.invalid();\n }\n\n // RFC 6749 §4.1.3: if the client was issued a client_id, verify the\n // authorization code was issued to the authenticated client. Always\n // require a clientId to be supplied so a malformed token request can't\n // bypass the binding by omitting it.\n if (entity.client_id) {\n if (!options.clientId || options.clientId !== entity.client_id) {\n throw OAuth2GrantError.invalid();\n }\n }\n\n // Realm binding (defense in depth): the code's realm (the authorizing\n // identity's realm) must match the authenticated client's realm. Blocks\n // redeeming a realm-A identity's code against a realm-B client — covers\n // codes minted outside OAuth2Authorization.authorize() (identity-provider\n // callback) and any in-flight codes issued before the authorize-side gate.\n if (options.realmId && entity.realm_id && entity.realm_id !== options.realmId) {\n throw OAuth2GrantError.invalid();\n }\n\n if (entity.redirect_uri) {\n if (!options.redirectUri || entity.redirect_uri !== options.redirectUri) {\n throw OAuth2GrantError.redirectUriMismatch();\n }\n }\n\n // Public clients MUST use PKCE (RFC 7636). Defense in depth in case\n // the authorize-side check was bypassed or the client's\n // auth_method changed between authorize and token.\n if (options.clientIsPublic && !entity.code_challenge) {\n throw OAuth2GrantError.invalid('PKCE is required for public clients.');\n }\n\n if (entity.code_challenge) {\n if (!options.codeVerifier) {\n throw OAuth2GrantError.invalid('Code verifier invalid.');\n }\n\n // RFC 7636 §4.3: code_challenge_method defaults to \"plain\" when\n // absent. Only treat the challenge as S256 when the client\n // explicitly sent code_challenge_method=S256.\n if (entity.code_challenge_method === OAuth2AuthorizationCodeChallengeMethod.SHA_256) {\n const codeVerifierHash = await buildOAuth2CodeChallenge(options.codeVerifier);\n if (codeVerifierHash !== entity.code_challenge) {\n throw OAuth2GrantError.invalid('PKCE code_verifier mismatch.');\n }\n } else if (options.codeVerifier !== entity.code_challenge) {\n throw OAuth2GrantError.invalid('PKCE code_verifier mismatch.');\n }\n }\n\n return entity;\n }\n}\n"],"mappings":";;;;;;AAcA,IAAaG,kCAAb,MAAaA;CACCC;CAEV,YAAYA,YAAgD;EACxD,KAAKA,aAAaA;CACtB;CAEA,MAAMC,OAAOC,MAAcC,SAAmF;EAC1G,MAAMC,SAAS,MAAM,KAAKJ,WAAWK,WAAWH,IAAAA;EAChD,IAAI,CAACE,QACD,MAAMP,iBAAiBS,QAAO;EAOlC,IAAIF,OAAOG;OACH,CAACJ,QAAQK,YAAYL,QAAQK,aAAaJ,OAAOG,WACjD,MAAMV,iBAAiBS,QAAO;EAAA;EAStC,IAAIH,QAAQM,WAAWL,OAAOM,YAAYN,OAAOM,aAAaP,QAAQM,SAClE,MAAMZ,iBAAiBS,QAAO;EAGlC,IAAIF,OAAOO;OACH,CAACR,QAAQS,eAAeR,OAAOO,iBAAiBR,QAAQS,aACxD,MAAMf,iBAAiBgB,oBAAmB;EAAA;EAOlD,IAAIV,QAAQW,kBAAkB,CAACV,OAAOW,gBAClC,MAAMlB,iBAAiBS,QAAQ,sCAAA;EAGnC,IAAIF,OAAOW,gBAAgB;GACvB,IAAI,CAACZ,QAAQa,cACT,MAAMnB,iBAAiBS,QAAQ,wBAAA;GAMnC,IAAIF,OAAOa,0BAA0BrB,uCAAuCsB;QAEpEC,MAD2BrB,yBAAyBK,QAAQa,YAAY,MACnDZ,OAAOW,gBAC5B,MAAMlB,iBAAiBS,QAAQ,8BAAA;GAAA,OAEhC,IAAIH,QAAQa,iBAAiBZ,OAAOW,gBACvC,MAAMlB,iBAAiBS,QAAQ,8BAAA;EAEvC;EAEA,OAAOF;CACX;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../src/core/oauth2/authorization/code-request/validator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAUvE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,qBAAa,uCAAwC,SAAQ,SAAS,CAAC,8BAA8B,CAAC;IAClG,SAAS,CAAC,UAAU;CAsIvB"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../src/core/oauth2/authorization/code-request/validator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAUvE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,qBAAa,uCAAwC,SAAQ,SAAS,CAAC,8BAA8B,CAAC;IAClG,SAAS,CAAC,UAAU;CA6IvB"}
@@ -42,6 +42,7 @@ var OAuth2AuthorizationCodeRequestValidator = class extends Container {
42
42
  })));
43
43
  this.mount("max_age", { optional: true }, createValidator(z.preprocess((value) => typeof value === "string" && value.trim() === "" ? void 0 : value, z.coerce.number().int().min(0).nullable().optional())));
44
44
  this.mount("login_hint", { optional: true }, createValidator(z.string().trim().toLowerCase().min(1).max(256).nullable()));
45
+ this.mount("acr_values", { optional: true }, createValidator(z.string().trim().min(1).max(256).nullable()));
45
46
  this.mount("realm_id", { optional: true }, createValidator(z.string().nonempty()));
46
47
  this.mount("client_id", createValidator(z.string().nonempty()));
47
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validator.mjs","names":["OAuth2AuthorizationCodeChallengeMethod","OAuth2AuthorizationPrompt","OAuth2AuthorizationResponseType","OAuth2RequestError","OAuth2ResponseTypeError","createValidator","Container","z","OAuth2AuthorizationCodeRequestValidator","initialize","mount","string","nonempty","check","ctx","responseTypes","value","split","filter","Boolean","invalid","length","CODE","error","unsupported","issues","push","input","code","message","NEVER","url","min","max","optional","nullable","enum","values","includes","NONE","malformed","preprocess","trim","undefined","coerce","number","int","toLowerCase"],"sources":["../../../../../src/core/oauth2/authorization/code-request/validator.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport {\n OAuth2AuthorizationCodeChallengeMethod,\n OAuth2AuthorizationPrompt,\n OAuth2AuthorizationResponseType,\n OAuth2RequestError,\n OAuth2ResponseTypeError,\n} from '@authup/specs';\n\nimport { createValidator } from '@validup/zod';\nimport { Container } from 'validup';\nimport { z } from 'zod';\n\nexport class OAuth2AuthorizationCodeRequestValidator extends Container<OAuth2AuthorizationCodeRequest> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'response_type',\n createValidator(\n z\n .string()\n .nonempty()\n .check((ctx) => {\n // OAuth 2.1 posture: the authorization endpoint issues\n // codes only — the implicit/hybrid response types\n // (token, id_token, none) are not supported.\n const responseTypes = ctx.value.split(' ').filter(Boolean);\n\n const invalid = responseTypes.length !== 1 ||\n responseTypes[0] !== OAuth2AuthorizationResponseType.CODE;\n\n if (invalid) {\n const error = OAuth2ResponseTypeError.unsupported();\n ctx.issues.push({\n input: ctx.value,\n code: 'custom',\n message: error.message,\n });\n }\n\n return z.NEVER;\n }),\n ),\n );\n\n this.mount(\n 'redirect_uri',\n createValidator(z.string().url()),\n );\n\n this.mount(\n 'scope',\n createValidator(z.string().min(3).max(512)),\n );\n\n this.mount(\n 'state',\n { optional: true },\n createValidator(z.string().min(5).max(2048).nullable()),\n );\n\n this.mount(\n 'code_challenge',\n { optional: true },\n createValidator(z.string().min(1).max(256).nullable()),\n );\n\n this.mount(\n 'code_challenge_method',\n { optional: true },\n createValidator(z.enum(OAuth2AuthorizationCodeChallengeMethod).nullable()),\n );\n\n this.mount(\n 'nonce',\n { optional: true },\n createValidator(z.string().min(1).max(512).nullable()),\n );\n\n this.mount(\n 'prompt',\n { optional: true },\n createValidator(\n z\n .string()\n .min(1)\n .max(128)\n .nullable()\n .check((ctx) => {\n if (!ctx.value) {\n return z.NEVER;\n }\n\n // Unknown tokens are ignored (forward-compat). Only the\n // OIDC §3.1.2.1 rule \"none must not be combined\" is enforced.\n const values = ctx.value.split(' ').filter(Boolean);\n if (\n values.includes(OAuth2AuthorizationPrompt.NONE) &&\n values.length > 1\n ) {\n const error = OAuth2RequestError.malformed(\n 'prompt=none must not be combined with other prompt values.',\n );\n ctx.issues.push({\n input: ctx.value,\n code: 'custom',\n message: error.message,\n });\n }\n\n return z.NEVER;\n }),\n ),\n );\n\n this.mount(\n 'max_age',\n { optional: true },\n createValidator(\n z.preprocess(\n // An empty / blank max_age (e.g. a stray `?max_age=` from an\n // RP template) is absent, not `max_age=0` — without this\n // z.coerce.number('') === 0 would silently force\n // re-authentication on every request for that RP.\n (value) => (typeof value === 'string' && value.trim() === '' ? undefined : value),\n z.coerce.number().int().min(0).nullable().optional(),\n ),\n ),\n );\n\n this.mount(\n 'login_hint',\n { optional: true },\n createValidator(z.string().trim().toLowerCase().min(1).max(256).nullable()),\n );\n\n this.mount(\n 'realm_id',\n { optional: true },\n createValidator(z.string().nonempty()),\n );\n\n this.mount(\n 'client_id',\n createValidator(z.string().nonempty()),\n );\n }\n}\n"],"mappings":";;;;;;;;AAoBA,IAAaQ,0CAAb,cAA6DF,UAAAA;CAC/CG,aAAa;EACnB,MAAMA,WAAAA;EAEN,KAAKC,MACD,iBACAL,gBACIE,EACKI,OAAM,CAAA,CACNC,SAAQ,CAAA,CACRC,OAAOC,QAAAA;GAIJ,MAAMC,gBAAgBD,IAAIE,MAAMC,MAAM,GAAA,CAAA,CAAKC,OAAOC,OAAAA;GAKlD,IAHgBJ,cAAcM,WAAW,KACrCN,cAAc,OAAOb,gCAAgCoB,MAE5C;IACT,MAAMC,QAAQnB,wBAAwBoB,YAAW;IACjDV,IAAIW,OAAOC,KAAK;KACZC,OAAOb,IAAIE;KACXY,MAAM;KACNC,SAASN,MAAMM;IACnB,CAAA;GACJ;GAEA,OAAOtB,EAAEuB;EACb,CAAA,CAAA,CAAA;EAIZ,KAAKpB,MACD,gBACAL,gBAAgBE,EAAEI,OAAM,CAAA,CAAGoB,IAAG,CAAA,CAAA;EAGlC,KAAKrB,MACD,SACAL,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAA;EAG1C,KAAKvB,MACD,SACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,IAAA,CAAA,CAAME,SAAQ,CAAA,CAAA;EAGxD,KAAKzB,MACD,kBACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAKE,SAAQ,CAAA,CAAA;EAGvD,KAAKzB,MACD,yBACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAE6B,KAAKpC,sCAAAA,CAAAA,CAAwCmC,SAAQ,CAAA,CAAA;EAG3E,KAAKzB,MACD,SACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAKE,SAAQ,CAAA,CAAA;EAGvD,KAAKzB,MACD,UACA,EAAEwB,UAAU,KAAK,GACjB7B,gBACIE,EACKI,OAAM,CAAA,CACNqB,IAAI,CAAA,CAAA,CACJC,IAAI,GAAA,CAAA,CACJE,SAAQ,CAAA,CACRtB,OAAOC,QAAAA;GACJ,IAAI,CAACA,IAAIE,OACL,OAAOT,EAAEuB;GAKb,MAAMO,SAASvB,IAAIE,MAAMC,MAAM,GAAA,CAAA,CAAKC,OAAOC,OAAAA;GAC3C,IACIkB,OAAOC,SAASrC,0BAA0BsC,IAAI,KAC9CF,OAAOhB,SAAS,GAClB;IACE,MAAME,QAAQpB,mBAAmBqC,UAC7B,4DAAA;IAEJ1B,IAAIW,OAAOC,KAAK;KACZC,OAAOb,IAAIE;KACXY,MAAM;KACNC,SAASN,MAAMM;IACnB,CAAA;GACJ;GAEA,OAAOtB,EAAEuB;EACb,CAAA,CAAA,CAAA;EAIZ,KAAKpB,MACD,WACA,EAAEwB,UAAU,KAAK,GACjB7B,gBACIE,EAAEkC,YAKGzB,UAAW,OAAOA,UAAU,YAAYA,MAAM0B,KAAI,MAAO,KAAKC,KAAAA,IAAY3B,OAC3ET,EAAEqC,OAAOC,OAAM,CAAA,CAAGC,IAAG,CAAA,CAAGd,IAAI,CAAA,CAAA,CAAGG,SAAQ,CAAA,CAAGD,SAAQ,CAAA,CAAA,CAAA;EAK9D,KAAKxB,MACD,cACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAG+B,KAAI,CAAA,CAAGK,YAAW,CAAA,CAAGf,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAKE,SAAQ,CAAA,CAAA;EAG5E,KAAKzB,MACD,YACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGC,SAAQ,CAAA,CAAA;EAGvC,KAAKF,MACD,aACAL,gBAAgBE,EAAEI,OAAM,CAAA,CAAGC,SAAQ,CAAA,CAAA;CAE3C;AACJ"}
1
+ {"version":3,"file":"validator.mjs","names":["OAuth2AuthorizationCodeChallengeMethod","OAuth2AuthorizationPrompt","OAuth2AuthorizationResponseType","OAuth2RequestError","OAuth2ResponseTypeError","createValidator","Container","z","OAuth2AuthorizationCodeRequestValidator","initialize","mount","string","nonempty","check","ctx","responseTypes","value","split","filter","Boolean","invalid","length","CODE","error","unsupported","issues","push","input","code","message","NEVER","url","min","max","optional","nullable","enum","values","includes","NONE","malformed","preprocess","trim","undefined","coerce","number","int","toLowerCase"],"sources":["../../../../../src/core/oauth2/authorization/code-request/validator.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport {\n OAuth2AuthorizationCodeChallengeMethod,\n OAuth2AuthorizationPrompt,\n OAuth2AuthorizationResponseType,\n OAuth2RequestError,\n OAuth2ResponseTypeError,\n} from '@authup/specs';\n\nimport { createValidator } from '@validup/zod';\nimport { Container } from 'validup';\nimport { z } from 'zod';\n\nexport class OAuth2AuthorizationCodeRequestValidator extends Container<OAuth2AuthorizationCodeRequest> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'response_type',\n createValidator(\n z\n .string()\n .nonempty()\n .check((ctx) => {\n // OAuth 2.1 posture: the authorization endpoint issues\n // codes only — the implicit/hybrid response types\n // (token, id_token, none) are not supported.\n const responseTypes = ctx.value.split(' ').filter(Boolean);\n\n const invalid = responseTypes.length !== 1 ||\n responseTypes[0] !== OAuth2AuthorizationResponseType.CODE;\n\n if (invalid) {\n const error = OAuth2ResponseTypeError.unsupported();\n ctx.issues.push({\n input: ctx.value,\n code: 'custom',\n message: error.message,\n });\n }\n\n return z.NEVER;\n }),\n ),\n );\n\n this.mount(\n 'redirect_uri',\n createValidator(z.string().url()),\n );\n\n this.mount(\n 'scope',\n createValidator(z.string().min(3).max(512)),\n );\n\n this.mount(\n 'state',\n { optional: true },\n createValidator(z.string().min(5).max(2048).nullable()),\n );\n\n this.mount(\n 'code_challenge',\n { optional: true },\n createValidator(z.string().min(1).max(256).nullable()),\n );\n\n this.mount(\n 'code_challenge_method',\n { optional: true },\n createValidator(z.enum(OAuth2AuthorizationCodeChallengeMethod).nullable()),\n );\n\n this.mount(\n 'nonce',\n { optional: true },\n createValidator(z.string().min(1).max(512).nullable()),\n );\n\n this.mount(\n 'prompt',\n { optional: true },\n createValidator(\n z\n .string()\n .min(1)\n .max(128)\n .nullable()\n .check((ctx) => {\n if (!ctx.value) {\n return z.NEVER;\n }\n\n // Unknown tokens are ignored (forward-compat). Only the\n // OIDC §3.1.2.1 rule \"none must not be combined\" is enforced.\n const values = ctx.value.split(' ').filter(Boolean);\n if (\n values.includes(OAuth2AuthorizationPrompt.NONE) &&\n values.length > 1\n ) {\n const error = OAuth2RequestError.malformed(\n 'prompt=none must not be combined with other prompt values.',\n );\n ctx.issues.push({\n input: ctx.value,\n code: 'custom',\n message: error.message,\n });\n }\n\n return z.NEVER;\n }),\n ),\n );\n\n this.mount(\n 'max_age',\n { optional: true },\n createValidator(\n z.preprocess(\n // An empty / blank max_age (e.g. a stray `?max_age=` from an\n // RP template) is absent, not `max_age=0` — without this\n // z.coerce.number('') === 0 would silently force\n // re-authentication on every request for that RP.\n (value) => (typeof value === 'string' && value.trim() === '' ? undefined : value),\n z.coerce.number().int().min(0).nullable().optional(),\n ),\n ),\n );\n\n this.mount(\n 'login_hint',\n { optional: true },\n createValidator(z.string().trim().toLowerCase().min(1).max(256).nullable()),\n );\n\n // case-sensitive (urn values) — no toLowerCase, unlike login_hint\n this.mount(\n 'acr_values',\n { optional: true },\n createValidator(z.string().trim().min(1).max(256).nullable()),\n );\n\n this.mount(\n 'realm_id',\n { optional: true },\n createValidator(z.string().nonempty()),\n );\n\n this.mount(\n 'client_id',\n createValidator(z.string().nonempty()),\n );\n }\n}\n"],"mappings":";;;;;;;;AAoBA,IAAaQ,0CAAb,cAA6DF,UAAAA;CAC/CG,aAAa;EACnB,MAAMA,WAAAA;EAEN,KAAKC,MACD,iBACAL,gBACIE,EACKI,OAAM,CAAA,CACNC,SAAQ,CAAA,CACRC,OAAOC,QAAAA;GAIJ,MAAMC,gBAAgBD,IAAIE,MAAMC,MAAM,GAAA,CAAA,CAAKC,OAAOC,OAAAA;GAKlD,IAHgBJ,cAAcM,WAAW,KACrCN,cAAc,OAAOb,gCAAgCoB,MAE5C;IACT,MAAMC,QAAQnB,wBAAwBoB,YAAW;IACjDV,IAAIW,OAAOC,KAAK;KACZC,OAAOb,IAAIE;KACXY,MAAM;KACNC,SAASN,MAAMM;IACnB,CAAA;GACJ;GAEA,OAAOtB,EAAEuB;EACb,CAAA,CAAA,CAAA;EAIZ,KAAKpB,MACD,gBACAL,gBAAgBE,EAAEI,OAAM,CAAA,CAAGoB,IAAG,CAAA,CAAA;EAGlC,KAAKrB,MACD,SACAL,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAA;EAG1C,KAAKvB,MACD,SACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,IAAA,CAAA,CAAME,SAAQ,CAAA,CAAA;EAGxD,KAAKzB,MACD,kBACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAKE,SAAQ,CAAA,CAAA;EAGvD,KAAKzB,MACD,yBACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAE6B,KAAKpC,sCAAAA,CAAAA,CAAwCmC,SAAQ,CAAA,CAAA;EAG3E,KAAKzB,MACD,SACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGqB,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAKE,SAAQ,CAAA,CAAA;EAGvD,KAAKzB,MACD,UACA,EAAEwB,UAAU,KAAK,GACjB7B,gBACIE,EACKI,OAAM,CAAA,CACNqB,IAAI,CAAA,CAAA,CACJC,IAAI,GAAA,CAAA,CACJE,SAAQ,CAAA,CACRtB,OAAOC,QAAAA;GACJ,IAAI,CAACA,IAAIE,OACL,OAAOT,EAAEuB;GAKb,MAAMO,SAASvB,IAAIE,MAAMC,MAAM,GAAA,CAAA,CAAKC,OAAOC,OAAAA;GAC3C,IACIkB,OAAOC,SAASrC,0BAA0BsC,IAAI,KAC9CF,OAAOhB,SAAS,GAClB;IACE,MAAME,QAAQpB,mBAAmBqC,UAC7B,4DAAA;IAEJ1B,IAAIW,OAAOC,KAAK;KACZC,OAAOb,IAAIE;KACXY,MAAM;KACNC,SAASN,MAAMM;IACnB,CAAA;GACJ;GAEA,OAAOtB,EAAEuB;EACb,CAAA,CAAA,CAAA;EAIZ,KAAKpB,MACD,WACA,EAAEwB,UAAU,KAAK,GACjB7B,gBACIE,EAAEkC,YAKGzB,UAAW,OAAOA,UAAU,YAAYA,MAAM0B,KAAI,MAAO,KAAKC,KAAAA,IAAY3B,OAC3ET,EAAEqC,OAAOC,OAAM,CAAA,CAAGC,IAAG,CAAA,CAAGd,IAAI,CAAA,CAAA,CAAGG,SAAQ,CAAA,CAAGD,SAAQ,CAAA,CAAA,CAAA;EAK9D,KAAKxB,MACD,cACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAG+B,KAAI,CAAA,CAAGK,YAAW,CAAA,CAAGf,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAKE,SAAQ,CAAA,CAAA;EAI5E,KAAKzB,MACD,cACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAG+B,KAAI,CAAA,CAAGV,IAAI,CAAA,CAAA,CAAGC,IAAI,GAAA,CAAA,CAAKE,SAAQ,CAAA,CAAA;EAG9D,KAAKzB,MACD,YACA,EAAEwB,UAAU,KAAK,GACjB7B,gBAAgBE,EAAEI,OAAM,CAAA,CAAGC,SAAQ,CAAA,CAAA;EAGvC,KAAKF,MACD,aACAL,gBAAgBE,EAAEI,OAAM,CAAA,CAAGC,SAAQ,CAAA,CAAA;CAE3C;AACJ"}
@@ -4,7 +4,7 @@ import.meta.url;
4
4
  import { assertClientGrantAllowed } from "../../../client/grant-type.mjs";
5
5
  import "../../../client/index.mjs";
6
6
  import { isSimpleMatch, isUUID } from "@authup/kit";
7
- import { ScopeName } from "@authup/core-kit";
7
+ import { ScopeName, isClientPublic } from "@authup/core-kit";
8
8
  import { OAuth2ClientError, OAuth2GrantError, OAuth2RequestError, OAuth2ScopeError, OAuth2TokenGrant, hasOAuth2Scopes } from "@authup/specs";
9
9
  //#region src/core/oauth2/authorization/code-request/verifier/module.ts
10
10
  var OAuth2AuthorizationCodeRequestVerifier = class {
@@ -24,11 +24,11 @@ var OAuth2AuthorizationCodeRequestVerifier = class {
24
24
  if (!client) throw OAuth2ClientError.invalid();
25
25
  if (!client.active) throw OAuth2ClientError.inactive();
26
26
  assertClientGrantAllowed(client, OAuth2TokenGrant.AUTHORIZATION_CODE);
27
- if (!client.redirect_uri) throw OAuth2GrantError.redirectUriMismatch();
28
- if (!client.is_confidential && !data.code_challenge) throw OAuth2RequestError.malformed("PKCE code_challenge is required for public clients.");
29
- if (!client.is_confidential && !data.state) throw OAuth2RequestError.malformed("state is required for public clients in the code flow.");
27
+ if (!client.redirectUri) throw OAuth2GrantError.redirectUriMismatch();
28
+ if (isClientPublic(client) && !data.code_challenge) throw OAuth2RequestError.malformed("PKCE code_challenge is required for public clients.");
29
+ if (isClientPublic(client) && !data.state) throw OAuth2RequestError.malformed("state is required for public clients in the code flow.");
30
30
  data.client_id = client.id;
31
- data.realm_id = client.realm_id;
31
+ data.realm_id = client.realmId;
32
32
  const scopes = await this.scopeRepository.findByClientId(client.id);
33
33
  const scopeNames = scopes.map((scope) => scope.name);
34
34
  if (data.scope) {
@@ -36,7 +36,7 @@ var OAuth2AuthorizationCodeRequestVerifier = class {
36
36
  } else data.scope = scopeNames.join(" ");
37
37
  const redirectUriVerified = !!data.redirect_uri;
38
38
  if (data.redirect_uri) {
39
- const redirectUris = client.redirect_uri.split(",");
39
+ const redirectUris = client.redirectUri.split(",");
40
40
  if (!isSimpleMatch(data.redirect_uri, redirectUris)) throw OAuth2GrantError.redirectUriMismatch();
41
41
  }
42
42
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["ScopeName","isSimpleMatch","isUUID","OAuth2ClientError","OAuth2GrantError","OAuth2RequestError","OAuth2ScopeError","OAuth2TokenGrant","hasOAuth2Scopes","assertClientGrantAllowed","OAuth2AuthorizationCodeRequestVerifier","clientRepository","scopeRepository","ctx","verify","data","client_id","invalid","realm_id","malformed","client","findOneByIdOrName","active","inactive","AUTHORIZATION_CODE","redirect_uri","redirectUriMismatch","is_confidential","code_challenge","state","id","scopes","findByClientId","scopeNames","map","scope","name","GLOBAL","insufficient","join","redirectUriVerified","redirectUris","split"],"sources":["../../../../../../src/core/oauth2/authorization/code-request/verifier/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 { OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport { ScopeName } from '@authup/core-kit';\nimport { isSimpleMatch, isUUID } from '@authup/kit';\nimport {\n OAuth2ClientError,\n OAuth2GrantError,\n OAuth2RequestError,\n OAuth2ScopeError,\n OAuth2TokenGrant,\n hasOAuth2Scopes,\n} from '@authup/specs';\nimport type { IOAuth2ClientRepository } from '../../../client/index.ts';\nimport { assertClientGrantAllowed } from '../../../client/index.ts';\nimport type { IOAuth2ScopeRepository } from '../../../scope/index.ts';\nimport type {\n IOAuth2AuthorizationCodeRequestVerifier,\n OAuth2AuthorizationCodeRequestVerificationResult,\n OAuth2AuthorizationCodeRequestVerifierContext,\n} from './types.ts';\n\nexport class OAuth2AuthorizationCodeRequestVerifier implements IOAuth2AuthorizationCodeRequestVerifier {\n protected clientRepository: IOAuth2ClientRepository;\n\n protected scopeRepository: IOAuth2ScopeRepository;\n\n constructor(ctx: OAuth2AuthorizationCodeRequestVerifierContext) {\n this.clientRepository = ctx.clientRepository;\n this.scopeRepository = ctx.scopeRepository;\n }\n\n /**\n * Verify validated authorization code request.\n * @param data\n */\n async verify(\n data: OAuth2AuthorizationCodeRequest,\n ) : Promise<OAuth2AuthorizationCodeRequestVerificationResult> {\n if (!data.client_id) {\n throw OAuth2ClientError.invalid();\n }\n\n // A name-identified client needs a realm hint to resolve deterministically\n // — every realm has a built-in `web` client, so `client_id=web` without a\n // realm would bind to an arbitrary realm's client (and, post realm-gate,\n // produce a confusing mismatch against a random realm). Require the hint.\n if (!isUUID(data.client_id) && !data.realm_id) {\n throw OAuth2RequestError.malformed('A realm is required to resolve a client by name.');\n }\n\n const client = await this.clientRepository.findOneByIdOrName(data.client_id, data.realm_id);\n if (!client) {\n throw OAuth2ClientError.invalid();\n }\n\n if (!client.active) {\n throw OAuth2ClientError.inactive();\n }\n\n // A non-null grant_types allowlist must cover the code flow — an RP\n // misconfiguration fails at the front door, not at code redemption.\n assertClientGrantAllowed(client, OAuth2TokenGrant.AUTHORIZATION_CODE);\n\n // OAuth 2.1 posture: a client with no registered redirect_uri pattern\n // can never be matched — reject outright instead of trusting whatever\n // redirect_uri the request carries (the server would otherwise issue a\n // code to an attacker-supplied URI).\n if (!client.redirect_uri) {\n throw OAuth2GrantError.redirectUriMismatch();\n }\n\n // Public clients MUST use PKCE (RFC 7636 §4.4.1, OAuth 2.1). Without\n // PKCE a public client's code flow has no second factor — anyone who\n // intercepts the redirect can redeem the code at /token. The code flow\n // is the only supported response type, so this holds unconditionally.\n if (!client.is_confidential && !data.code_challenge) {\n throw OAuth2RequestError.malformed('PKCE code_challenge is required for public clients.');\n }\n\n // Public clients SHOULD include state to bind the redirect to the\n // initiating session and prevent CSRF (RFC 6749 §10.12). Confidential\n // clients are exempt because the /token exchange already authenticates\n // them via client_secret.\n if (!client.is_confidential && !data.state) {\n throw OAuth2RequestError.malformed('state is required for public clients in the code flow.');\n }\n\n data.client_id = client.id;\n data.realm_id = client.realm_id;\n\n const scopes = await this.scopeRepository.findByClientId(client.id);\n const scopeNames = scopes.map((scope) => scope.name);\n if (data.scope) {\n if (\n !hasOAuth2Scopes(scopeNames, data.scope) &&\n !hasOAuth2Scopes(data.scope, ScopeName.GLOBAL)\n ) {\n throw OAuth2ScopeError.insufficient();\n }\n } else {\n data.scope = scopeNames.join(' ');\n }\n\n // Verified only when the request's redirect_uri matched a registered\n // pattern (pattern-less clients were rejected above). A request without\n // a redirect_uri (e.g. the GET page render) stays unverified so\n // consumers never auto-redirect without a match.\n const redirectUriVerified = !!data.redirect_uri;\n if (data.redirect_uri) {\n const redirectUris = client.redirect_uri.split(',');\n\n if (!isSimpleMatch(data.redirect_uri, redirectUris)) {\n throw OAuth2GrantError.redirectUriMismatch();\n }\n }\n\n return {\n data,\n client,\n scopes,\n redirectUriVerified,\n };\n }\n}\n"],"mappings":";;;;;;;;;AA2BA,IAAaU,yCAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYC,KAAoD;EAC5D,KAAKF,mBAAmBE,IAAIF;EAC5B,KAAKC,kBAAkBC,IAAID;CAC/B;;;;IAMA,MAAME,OACFC,MAC0D;EAC1D,IAAI,CAACA,KAAKC,WACN,MAAMb,kBAAkBc,QAAO;EAOnC,IAAI,CAACf,OAAOa,KAAKC,SAAS,KAAK,CAACD,KAAKG,UACjC,MAAMb,mBAAmBc,UAAU,kDAAA;EAGvC,MAAMC,SAAS,MAAM,KAAKT,iBAAiBU,kBAAkBN,KAAKC,WAAWD,KAAKG,QAAQ;EAC1F,IAAI,CAACE,QACD,MAAMjB,kBAAkBc,QAAO;EAGnC,IAAI,CAACG,OAAOE,QACR,MAAMnB,kBAAkBoB,SAAQ;EAKpCd,yBAAyBW,QAAQb,iBAAiBiB,kBAAkB;EAMpE,IAAI,CAACJ,OAAOK,cACR,MAAMrB,iBAAiBsB,oBAAmB;EAO9C,IAAI,CAACN,OAAOO,mBAAmB,CAACZ,KAAKa,gBACjC,MAAMvB,mBAAmBc,UAAU,qDAAA;EAOvC,IAAI,CAACC,OAAOO,mBAAmB,CAACZ,KAAKc,OACjC,MAAMxB,mBAAmBc,UAAU,wDAAA;EAGvCJ,KAAKC,YAAYI,OAAOU;EACxBf,KAAKG,WAAWE,OAAOF;EAEvB,MAAMa,SAAS,MAAM,KAAKnB,gBAAgBoB,eAAeZ,OAAOU,EAAE;EAClE,MAAMG,aAAaF,OAAOG,KAAKC,UAAUA,MAAMC,IAAI;EACnD,IAAIrB,KAAKoB;OAED,CAAC3B,gBAAgByB,YAAYlB,KAAKoB,KAAK,KACvC,CAAC3B,gBAAgBO,KAAKoB,OAAOnC,UAAUqC,MAAM,GAE7C,MAAM/B,iBAAiBgC,aAAY;EAAA,OAGvCvB,KAAKoB,QAAQF,WAAWM,KAAK,GAAA;EAOjC,MAAMC,sBAAsB,CAAC,CAACzB,KAAKU;EACnC,IAAIV,KAAKU,cAAc;GACnB,MAAMgB,eAAerB,OAAOK,aAAaiB,MAAM,GAAA;GAE/C,IAAI,CAACzC,cAAcc,KAAKU,cAAcgB,YAAAA,GAClC,MAAMrC,iBAAiBsB,oBAAmB;EAElD;EAEA,OAAO;GACHX;GACAK;GACAW;GACAS;EACJ;CACJ;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["ScopeName","isClientPublic","isSimpleMatch","isUUID","OAuth2ClientError","OAuth2GrantError","OAuth2RequestError","OAuth2ScopeError","OAuth2TokenGrant","hasOAuth2Scopes","assertClientGrantAllowed","OAuth2AuthorizationCodeRequestVerifier","clientRepository","scopeRepository","ctx","verify","data","client_id","invalid","realm_id","malformed","client","findOneByIdOrName","active","inactive","AUTHORIZATION_CODE","redirectUri","redirectUriMismatch","code_challenge","state","id","realmId","scopes","findByClientId","scopeNames","map","scope","name","GLOBAL","insufficient","join","redirectUriVerified","redirect_uri","redirectUris","split"],"sources":["../../../../../../src/core/oauth2/authorization/code-request/verifier/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 { OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport { ScopeName, isClientPublic } from '@authup/core-kit';\nimport { isSimpleMatch, isUUID } from '@authup/kit';\nimport {\n OAuth2ClientError,\n OAuth2GrantError,\n OAuth2RequestError,\n OAuth2ScopeError,\n OAuth2TokenGrant,\n hasOAuth2Scopes,\n} from '@authup/specs';\nimport type { IOAuth2ClientRepository } from '../../../client/index.ts';\nimport { assertClientGrantAllowed } from '../../../client/index.ts';\nimport type { IOAuth2ScopeRepository } from '../../../scope/index.ts';\nimport type {\n IOAuth2AuthorizationCodeRequestVerifier,\n OAuth2AuthorizationCodeRequestVerificationResult,\n OAuth2AuthorizationCodeRequestVerifierContext,\n} from './types.ts';\n\nexport class OAuth2AuthorizationCodeRequestVerifier implements IOAuth2AuthorizationCodeRequestVerifier {\n protected clientRepository: IOAuth2ClientRepository;\n\n protected scopeRepository: IOAuth2ScopeRepository;\n\n constructor(ctx: OAuth2AuthorizationCodeRequestVerifierContext) {\n this.clientRepository = ctx.clientRepository;\n this.scopeRepository = ctx.scopeRepository;\n }\n\n /**\n * Verify validated authorization code request.\n * @param data\n */\n async verify(\n data: OAuth2AuthorizationCodeRequest,\n ) : Promise<OAuth2AuthorizationCodeRequestVerificationResult> {\n if (!data.client_id) {\n throw OAuth2ClientError.invalid();\n }\n\n // A name-identified client needs a realm hint to resolve deterministically\n // — every realm has a built-in `web` client, so `client_id=web` without a\n // realm would bind to an arbitrary realm's client (and, post realm-gate,\n // produce a confusing mismatch against a random realm). Require the hint.\n if (!isUUID(data.client_id) && !data.realm_id) {\n throw OAuth2RequestError.malformed('A realm is required to resolve a client by name.');\n }\n\n const client = await this.clientRepository.findOneByIdOrName(data.client_id, data.realm_id);\n if (!client) {\n throw OAuth2ClientError.invalid();\n }\n\n if (!client.active) {\n throw OAuth2ClientError.inactive();\n }\n\n // A non-null grant_types allowlist must cover the code flow — an RP\n // misconfiguration fails at the front door, not at code redemption.\n assertClientGrantAllowed(client, OAuth2TokenGrant.AUTHORIZATION_CODE);\n\n // OAuth 2.1 posture: a client with no registered redirect_uri pattern\n // can never be matched — reject outright instead of trusting whatever\n // redirect_uri the request carries (the server would otherwise issue a\n // code to an attacker-supplied URI).\n if (!client.redirectUri) {\n throw OAuth2GrantError.redirectUriMismatch();\n }\n\n // Public clients MUST use PKCE (RFC 7636 §4.4.1, OAuth 2.1). Without\n // PKCE a public client's code flow has no second factor — anyone who\n // intercepts the redirect can redeem the code at /token. The code flow\n // is the only supported response type, so this holds unconditionally.\n if (isClientPublic(client) && !data.code_challenge) {\n throw OAuth2RequestError.malformed('PKCE code_challenge is required for public clients.');\n }\n\n // Public clients SHOULD include state to bind the redirect to the\n // initiating session and prevent CSRF (RFC 6749 §10.12). Confidential\n // clients are exempt because the /token exchange already authenticates\n // them via client_secret.\n if (isClientPublic(client) && !data.state) {\n throw OAuth2RequestError.malformed('state is required for public clients in the code flow.');\n }\n\n data.client_id = client.id;\n data.realm_id = client.realmId;\n\n const scopes = await this.scopeRepository.findByClientId(client.id);\n const scopeNames = scopes.map((scope) => scope.name);\n if (data.scope) {\n if (\n !hasOAuth2Scopes(scopeNames, data.scope) &&\n !hasOAuth2Scopes(data.scope, ScopeName.GLOBAL)\n ) {\n throw OAuth2ScopeError.insufficient();\n }\n } else {\n data.scope = scopeNames.join(' ');\n }\n\n // Verified only when the request's redirect_uri matched a registered\n // pattern (pattern-less clients were rejected above). A request without\n // a redirect_uri (e.g. the GET page render) stays unverified so\n // consumers never auto-redirect without a match.\n const redirectUriVerified = !!data.redirect_uri;\n if (data.redirect_uri) {\n const redirectUris = client.redirectUri.split(',');\n\n if (!isSimpleMatch(data.redirect_uri, redirectUris)) {\n throw OAuth2GrantError.redirectUriMismatch();\n }\n }\n\n return {\n data,\n client,\n scopes,\n redirectUriVerified,\n };\n }\n}\n"],"mappings":";;;;;;;;;AA2BA,IAAaW,yCAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYC,KAAoD;EAC5D,KAAKF,mBAAmBE,IAAIF;EAC5B,KAAKC,kBAAkBC,IAAID;CAC/B;;;;IAMA,MAAME,OACFC,MAC0D;EAC1D,IAAI,CAACA,KAAKC,WACN,MAAMb,kBAAkBc,QAAO;EAOnC,IAAI,CAACf,OAAOa,KAAKC,SAAS,KAAK,CAACD,KAAKG,UACjC,MAAMb,mBAAmBc,UAAU,kDAAA;EAGvC,MAAMC,SAAS,MAAM,KAAKT,iBAAiBU,kBAAkBN,KAAKC,WAAWD,KAAKG,QAAQ;EAC1F,IAAI,CAACE,QACD,MAAMjB,kBAAkBc,QAAO;EAGnC,IAAI,CAACG,OAAOE,QACR,MAAMnB,kBAAkBoB,SAAQ;EAKpCd,yBAAyBW,QAAQb,iBAAiBiB,kBAAkB;EAMpE,IAAI,CAACJ,OAAOK,aACR,MAAMrB,iBAAiBsB,oBAAmB;EAO9C,IAAI1B,eAAeoB,MAAAA,KAAW,CAACL,KAAKY,gBAChC,MAAMtB,mBAAmBc,UAAU,qDAAA;EAOvC,IAAInB,eAAeoB,MAAAA,KAAW,CAACL,KAAKa,OAChC,MAAMvB,mBAAmBc,UAAU,wDAAA;EAGvCJ,KAAKC,YAAYI,OAAOS;EACxBd,KAAKG,WAAWE,OAAOU;EAEvB,MAAMC,SAAS,MAAM,KAAKnB,gBAAgBoB,eAAeZ,OAAOS,EAAE;EAClE,MAAMI,aAAaF,OAAOG,KAAKC,UAAUA,MAAMC,IAAI;EACnD,IAAIrB,KAAKoB;OAED,CAAC3B,gBAAgByB,YAAYlB,KAAKoB,KAAK,KACvC,CAAC3B,gBAAgBO,KAAKoB,OAAOpC,UAAUsC,MAAM,GAE7C,MAAM/B,iBAAiBgC,aAAY;EAAA,OAGvCvB,KAAKoB,QAAQF,WAAWM,KAAK,GAAA;EAOjC,MAAMC,sBAAsB,CAAC,CAACzB,KAAK0B;EACnC,IAAI1B,KAAK0B,cAAc;GACnB,MAAMC,eAAetB,OAAOK,YAAYkB,MAAM,GAAA;GAE9C,IAAI,CAAC1C,cAAcc,KAAK0B,cAAcC,YAAAA,GAClC,MAAMtC,iBAAiBsB,oBAAmB;EAElD;EAEA,OAAO;GACHX;GACAK;GACAW;GACAS;EACJ;CACJ;AACJ"}
@@ -1,4 +1,13 @@
1
- import type { JWTAlgorithm } from '@authup/specs';
1
+ import type { JWTAlgorithm, OAuth2TokenPayload } from '@authup/specs';
2
+ import type { Session } from '@authup/core-kit';
3
+ /**
4
+ * Derive the OIDC `amr` / `acr` claims from the backing session's
5
+ * authMethod + mfaAt (plan 050). Pre-column sessions (null authMethod)
6
+ * yield no claims — authup cannot retroactively know how an old session
7
+ * authenticated. M2M methods yield none either (amr/acr are user-flow
8
+ * claims; those grants mint no id_token).
9
+ */
10
+ export declare function deriveAmrAcr(session: Pick<Session, 'authMethod' | 'mfaAt'> | null): Pick<OAuth2TokenPayload, 'amr' | 'acr'>;
2
11
  export declare function generateOAuth2CodeVerifier(): string;
3
12
  export declare function base64URLEncode(arrayBuffer: ArrayBuffer): string;
4
13
  export declare function buildOAuth2TokenHash(value: string, alg?: `${JWTAlgorithm}` | null): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/core/oauth2/authorization/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIlD,wBAAgB,0BAA0B,WAazC;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,UAWvD;AAWD,wBAAsB,oBAAoB,CACtC,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,GAC9B,OAAO,CAAC,MAAM,CAAC,CAkBlB;AAED,wBAAsB,wBAAwB,CAAC,YAAY,EAAE,MAAM,mBAMlE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/core/oauth2/authorization/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,IAAI,GACtD,IAAI,CAAC,kBAAkB,EAAE,KAAK,GAAG,KAAK,CAAC,CAiCzC;AAED,wBAAgB,0BAA0B,WAazC;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,UAWvD;AAWD,wBAAsB,oBAAoB,CACtC,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,GAC9B,OAAO,CAAC,MAAM,CAAC,CAkBlB;AAED,wBAAsB,wBAAwB,CAAC,YAAY,EAAE,MAAM,mBAMlE"}
@@ -1,9 +1,35 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- import { JWTError } from "@authup/specs";
4
+ import { SessionAuthMethod } from "@authup/core-kit";
5
+ import { JWTError, OAuth2AuthenticationContextClass, OAuth2AuthenticationMethodReference } from "@authup/specs";
5
6
  import { subtle } from "uncrypto";
6
7
  //#region src/core/oauth2/authorization/helpers.ts
8
+ /**
9
+ * Derive the OIDC `amr` / `acr` claims from the backing session's
10
+ * authMethod + mfaAt (plan 050). Pre-column sessions (null authMethod)
11
+ * yield no claims — authup cannot retroactively know how an old session
12
+ * authenticated. M2M methods yield none either (amr/acr are user-flow
13
+ * claims; those grants mint no id_token).
14
+ */ function deriveAmrAcr(session) {
15
+ if (!session || !session.authMethod) return {};
16
+ const amr = [];
17
+ switch (session.authMethod) {
18
+ case SessionAuthMethod.PASSWORD:
19
+ case SessionAuthMethod.LDAP:
20
+ amr.push(OAuth2AuthenticationMethodReference.PASSWORD);
21
+ break;
22
+ case SessionAuthMethod.EXTERNAL:
23
+ amr.push(OAuth2AuthenticationMethodReference.EXTERNAL);
24
+ break;
25
+ default: return {};
26
+ }
27
+ if (session.mfaAt) amr.push(OAuth2AuthenticationMethodReference.OTP);
28
+ return {
29
+ amr,
30
+ acr: session.mfaAt ? OAuth2AuthenticationContextClass.MFA : OAuth2AuthenticationContextClass.PASSWORD
31
+ };
32
+ }
7
33
  function generateOAuth2CodeVerifier() {
8
34
  const length = 64;
9
35
  const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";
@@ -42,6 +68,6 @@ async function buildOAuth2CodeChallenge(codeVerifier) {
42
68
  return base64URLEncode(await subtle.digest("SHA-256", data));
43
69
  }
44
70
  //#endregion
45
- export { base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, generateOAuth2CodeVerifier };
71
+ export { base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, deriveAmrAcr, generateOAuth2CodeVerifier };
46
72
 
47
73
  //# sourceMappingURL=helpers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","names":["JWTError","subtle","generateOAuth2CodeVerifier","length","charset","codeVerifier","randomValues","Uint8Array","crypto","getRandomValues","i","base64URLEncode","arrayBuffer","charCode","Array","from","btoa","String","fromCharCode","apply","replace","TOKEN_HASH_DIGESTS","name","halfLength","buildOAuth2TokenHash","value","alg","digest","slice","headerPropertyInvalid","encoder","TextEncoder","data","encode","hashBuffer","halfHash","buildOAuth2CodeChallenge"],"sources":["../../../../src/core/oauth2/authorization/helpers.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\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 { JWTAlgorithm } from '@authup/specs';\nimport { JWTError } from '@authup/specs';\nimport { subtle } from 'uncrypto';\n\nexport function generateOAuth2CodeVerifier() {\n const length = 64;\n const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n\n let codeVerifier = '';\n const randomValues = new Uint8Array(length);\n crypto.getRandomValues(randomValues);\n\n for (let i = 0; i < length; i++) {\n codeVerifier += charset[randomValues[i] % charset.length];\n }\n\n return codeVerifier;\n}\n\nexport function base64URLEncode(arrayBuffer: ArrayBuffer) {\n // Convert the ArrayBuffer to string using Uint8 array.\n // btoa takes chars from 0-255 and base64 encodes.\n // Then convert the base64 encoded to base64url encoded.\n // (replace + with -, replace / with _, trim trailing =)\n const charCode = Array.from(new Uint8Array(arrayBuffer));\n\n return btoa(String.fromCharCode.apply(null, charCode))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n}\n\n// OIDC Core §3.1.3.6: at_hash / c_hash use the hash algorithm of the id_token's\n// JWS alg (…S256 → SHA-256, …S384 → SHA-384, …S512 → SHA-512) and keep the LEFT\n// HALF of the digest — so the half-length follows the digest (16/24/32 bytes).\nconst TOKEN_HASH_DIGESTS : Record<string, { name: string, halfLength: number }> = {\n 256: { name: 'SHA-256', halfLength: 16 },\n 384: { name: 'SHA-384', halfLength: 24 },\n 512: { name: 'SHA-512', halfLength: 32 },\n};\n\nexport async function buildOAuth2TokenHash(\n value: string,\n alg?: `${JWTAlgorithm}` | null,\n) : Promise<string> {\n // A key row without a persisted alg (nullable legacy column) signs with\n // the signer's *256 default (RS256/ES256/HS256) — derive the matching\n // SHA-256 digest. An unrecognized alg still fails loud — silently\n // defaulting there would mint a hash no conforming verifier accepts.\n const digest = alg ?\n TOKEN_HASH_DIGESTS[alg.slice(-3)] :\n TOKEN_HASH_DIGESTS['256'];\n if (!digest) {\n throw JWTError.headerPropertyInvalid('alg');\n }\n\n const encoder = new TextEncoder();\n const data = encoder.encode(value);\n const hashBuffer = await subtle.digest(digest.name, data);\n const halfHash = hashBuffer.slice(0, digest.halfLength);\n\n return base64URLEncode(halfHash);\n}\n\nexport async function buildOAuth2CodeChallenge(codeVerifier: string) {\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const arrayBuffer = await subtle.digest('SHA-256', data);\n\n return base64URLEncode(arrayBuffer);\n}\n"],"mappings":";;;;;;AAWA,SAAgBE,6BAAAA;CACZ,MAAMC,SAAS;CACf,MAAMC,UAAU;CAEhB,IAAIC,eAAe;CACnB,MAAMC,eAAe,IAAIC,WAAWJ,MAAAA;CACpCK,OAAOC,gBAAgBH,YAAAA;CAEvB,KAAK,IAAII,IAAI,GAAGA,IAAIP,QAAQO,KACxBL,gBAAgBD,QAAQE,aAAaI,KAAKN;CAG9C,OAAOC;AACX;AAEA,SAAgBM,gBAAgBC,aAAwB;CAKpD,MAAMC,WAAWC,MAAMC,KAAK,IAAIR,WAAWK,WAAAA,CAAAA;CAE3C,OAAOI,KAAKC,OAAOC,aAAaC,MAAM,MAAMN,QAAAA,CAAAA,CAAAA,CACvCO,QAAQ,OAAO,GAAA,CAAA,CACfA,QAAQ,OAAO,GAAA,CAAA,CACfA,QAAQ,OAAO,EAAA;AACxB;AAKA,MAAMC,qBAA4E;CAC9E,KAAK;EAAEC,MAAM;EAAWC,YAAY;CAAG;CACvC,KAAK;EAAED,MAAM;EAAWC,YAAY;CAAG;CACvC,KAAK;EAAED,MAAM;EAAWC,YAAY;CAAG;AAC3C;AAEA,eAAsBC,qBAClBC,OACAC,KAA8B;CAM9B,MAAMC,SAASD,MACXL,mBAAmBK,IAAIE,MAAM,EAAC,KAC9BP,mBAAmB;CACvB,IAAI,CAACM,QACD,MAAM3B,SAAS6B,sBAAsB,KAAA;CAIzC,MAAMG,OAAOF,IADOC,YACPD,CAAAA,CAAQG,OAAOR,KAAAA;CAI5B,OAAOd,iBAFUuB,MADQjC,OAAO0B,OAAOA,OAAOL,MAAMU,IAAAA,EAAAA,CACxBJ,MAAM,GAAGD,OAAOJ,UAErBY,CAAAA;AAC3B;AAEA,eAAsBC,yBAAyB/B,cAAoB;CAE/D,MAAM2B,OAAOF,IADOC,YACPD,CAAAA,CAAQG,OAAO5B,YAAAA;CAG5B,OAAOM,gBAAgBC,MAFGX,OAAO0B,OAAO,WAAWK,IAAAA,CAE5BpB;AAC3B"}
1
+ {"version":3,"file":"helpers.mjs","names":["JWTError","OAuth2AuthenticationContextClass","OAuth2AuthenticationMethodReference","SessionAuthMethod","subtle","deriveAmrAcr","session","authMethod","amr","PASSWORD","LDAP","push","EXTERNAL","mfaAt","OTP","acr","MFA","generateOAuth2CodeVerifier","length","charset","codeVerifier","randomValues","Uint8Array","crypto","getRandomValues","i","base64URLEncode","arrayBuffer","charCode","Array","from","btoa","String","fromCharCode","apply","replace","TOKEN_HASH_DIGESTS","name","halfLength","buildOAuth2TokenHash","value","alg","digest","slice","headerPropertyInvalid","encoder","TextEncoder","data","encode","hashBuffer","halfHash","buildOAuth2CodeChallenge"],"sources":["../../../../src/core/oauth2/authorization/helpers.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\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 { JWTAlgorithm, OAuth2TokenPayload } from '@authup/specs';\nimport {\n JWTError,\n OAuth2AuthenticationContextClass,\n OAuth2AuthenticationMethodReference,\n} from '@authup/specs';\nimport type { Session } from '@authup/core-kit';\nimport { SessionAuthMethod } from '@authup/core-kit';\nimport { subtle } from 'uncrypto';\n\n/**\n * Derive the OIDC `amr` / `acr` claims from the backing session's\n * authMethod + mfaAt (plan 050). Pre-column sessions (null authMethod)\n * yield no claims — authup cannot retroactively know how an old session\n * authenticated. M2M methods yield none either (amr/acr are user-flow\n * claims; those grants mint no id_token).\n */\nexport function deriveAmrAcr(\n session: Pick<Session, 'authMethod' | 'mfaAt'> | null,\n): Pick<OAuth2TokenPayload, 'amr' | 'acr'> {\n if (!session || !session.authMethod) {\n return {};\n }\n\n const amr : string[] = [];\n switch (session.authMethod) {\n case SessionAuthMethod.PASSWORD:\n case SessionAuthMethod.LDAP: {\n // LDAP is still a password factor for amr — the finer\n // distinction lives in the authup-local authMethod.\n amr.push(OAuth2AuthenticationMethodReference.PASSWORD);\n break;\n }\n case SessionAuthMethod.EXTERNAL: {\n amr.push(OAuth2AuthenticationMethodReference.EXTERNAL);\n break;\n }\n default: {\n return {};\n }\n }\n\n if (session.mfaAt) {\n amr.push(OAuth2AuthenticationMethodReference.OTP);\n }\n\n return {\n amr,\n acr: session.mfaAt ?\n OAuth2AuthenticationContextClass.MFA :\n OAuth2AuthenticationContextClass.PASSWORD,\n };\n}\n\nexport function generateOAuth2CodeVerifier() {\n const length = 64;\n const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n\n let codeVerifier = '';\n const randomValues = new Uint8Array(length);\n crypto.getRandomValues(randomValues);\n\n for (let i = 0; i < length; i++) {\n codeVerifier += charset[randomValues[i] % charset.length];\n }\n\n return codeVerifier;\n}\n\nexport function base64URLEncode(arrayBuffer: ArrayBuffer) {\n // Convert the ArrayBuffer to string using Uint8 array.\n // btoa takes chars from 0-255 and base64 encodes.\n // Then convert the base64 encoded to base64url encoded.\n // (replace + with -, replace / with _, trim trailing =)\n const charCode = Array.from(new Uint8Array(arrayBuffer));\n\n return btoa(String.fromCharCode.apply(null, charCode))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n}\n\n// OIDC Core §3.1.3.6: at_hash / c_hash use the hash algorithm of the id_token's\n// JWS alg (…S256 → SHA-256, …S384 → SHA-384, …S512 → SHA-512) and keep the LEFT\n// HALF of the digest — so the half-length follows the digest (16/24/32 bytes).\nconst TOKEN_HASH_DIGESTS : Record<string, { name: string, halfLength: number }> = {\n 256: { name: 'SHA-256', halfLength: 16 },\n 384: { name: 'SHA-384', halfLength: 24 },\n 512: { name: 'SHA-512', halfLength: 32 },\n};\n\nexport async function buildOAuth2TokenHash(\n value: string,\n alg?: `${JWTAlgorithm}` | null,\n) : Promise<string> {\n // A key row without a persisted alg (nullable legacy column) signs with\n // the signer's *256 default (RS256/ES256/HS256) — derive the matching\n // SHA-256 digest. An unrecognized alg still fails loud — silently\n // defaulting there would mint a hash no conforming verifier accepts.\n const digest = alg ?\n TOKEN_HASH_DIGESTS[alg.slice(-3)] :\n TOKEN_HASH_DIGESTS['256'];\n if (!digest) {\n throw JWTError.headerPropertyInvalid('alg');\n }\n\n const encoder = new TextEncoder();\n const data = encoder.encode(value);\n const hashBuffer = await subtle.digest(digest.name, data);\n const halfHash = hashBuffer.slice(0, digest.halfLength);\n\n return base64URLEncode(halfHash);\n}\n\nexport async function buildOAuth2CodeChallenge(codeVerifier: string) {\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const arrayBuffer = await subtle.digest('SHA-256', data);\n\n return base64URLEncode(arrayBuffer);\n}\n"],"mappings":";;;;;;;;;;;;;GAwBA,SAAgBK,aACZC,SAAqD;CAErD,IAAI,CAACA,WAAW,CAACA,QAAQC,YACrB,OAAO,CAAC;CAGZ,MAAMC,MAAiB,CAAA;CACvB,QAAQF,QAAQC,YAAhB;EACI,KAAKJ,kBAAkBM;EACvB,KAAKN,kBAAkBO;GAGnBF,IAAIG,KAAKT,oCAAoCO,QAAQ;GACrD;EAEJ,KAAKN,kBAAkBS;GACnBJ,IAAIG,KAAKT,oCAAoCU,QAAQ;GACrD;EAEJ,SACI,OAAO,CAAC;CAEhB;CAEA,IAAIN,QAAQO,OACRL,IAAIG,KAAKT,oCAAoCY,GAAG;CAGpD,OAAO;EACHN;EACAO,KAAKT,QAAQO,QACTZ,iCAAiCe,MACjCf,iCAAiCQ;CACzC;AACJ;AAEA,SAAgBQ,6BAAAA;CACZ,MAAMC,SAAS;CACf,MAAMC,UAAU;CAEhB,IAAIC,eAAe;CACnB,MAAMC,eAAe,IAAIC,WAAWJ,MAAAA;CACpCK,OAAOC,gBAAgBH,YAAAA;CAEvB,KAAK,IAAII,IAAI,GAAGA,IAAIP,QAAQO,KACxBL,gBAAgBD,QAAQE,aAAaI,KAAKN;CAG9C,OAAOC;AACX;AAEA,SAAgBM,gBAAgBC,aAAwB;CAKpD,MAAMC,WAAWC,MAAMC,KAAK,IAAIR,WAAWK,WAAAA,CAAAA;CAE3C,OAAOI,KAAKC,OAAOC,aAAaC,MAAM,MAAMN,QAAAA,CAAAA,CAAAA,CACvCO,QAAQ,OAAO,GAAA,CAAA,CACfA,QAAQ,OAAO,GAAA,CAAA,CACfA,QAAQ,OAAO,EAAA;AACxB;AAKA,MAAMC,qBAA4E;CAC9E,KAAK;EAAEC,MAAM;EAAWC,YAAY;CAAG;CACvC,KAAK;EAAED,MAAM;EAAWC,YAAY;CAAG;CACvC,KAAK;EAAED,MAAM;EAAWC,YAAY;CAAG;AAC3C;AAEA,eAAsBC,qBAClBC,OACAC,KAA8B;CAM9B,MAAMC,SAASD,MACXL,mBAAmBK,IAAIE,MAAM,EAAC,KAC9BP,mBAAmB;CACvB,IAAI,CAACM,QACD,MAAM1C,SAAS4C,sBAAsB,KAAA;CAIzC,MAAMG,OAAOF,IADOC,YACPD,CAAAA,CAAQG,OAAOR,KAAAA;CAI5B,OAAOd,iBAFUuB,MADQ7C,OAAOsC,OAAOA,OAAOL,MAAMU,IAAAA,EAAAA,CACxBJ,MAAM,GAAGD,OAAOJ,UAErBY,CAAAA;AAC3B;AAEA,eAAsBC,yBAAyB/B,cAAoB;CAE/D,MAAM2B,OAAOF,IADOC,YACPD,CAAAA,CAAQG,OAAO5B,YAAAA;CAG5B,OAAOM,gBAAgBC,MAFGvB,OAAOsC,OAAO,WAAWK,IAAAA,CAE5BpB;AAC3B"}
@@ -2,7 +2,7 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { OAuth2AuthorizationCodeIssuer } from "./code/issuer/module.mjs";
5
- import { base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, generateOAuth2CodeVerifier } from "./helpers.mjs";
5
+ import { base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, deriveAmrAcr, generateOAuth2CodeVerifier } from "./helpers.mjs";
6
6
  import { OAuth2AuthorizationCodeVerifier } from "./code/verifier/module.mjs";
7
7
  import "./code/index.mjs";
8
8
  import { OAuth2AuthorizationCodeRequestVerifier } from "./code-request/verifier/module.mjs";
@@ -11,4 +11,4 @@ import "./code-request/index.mjs";
11
11
  import { OAuth2AuthorizationStateManager } from "./state/module.mjs";
12
12
  import "./state/index.mjs";
13
13
  import { OAuth2Authorization } from "./module.mjs";
14
- export { OAuth2Authorization, OAuth2AuthorizationCodeIssuer, OAuth2AuthorizationCodeRequestValidator, OAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationCodeVerifier, OAuth2AuthorizationStateManager, base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, generateOAuth2CodeVerifier };
14
+ export { OAuth2Authorization, OAuth2AuthorizationCodeIssuer, OAuth2AuthorizationCodeRequestValidator, OAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationCodeVerifier, OAuth2AuthorizationStateManager, base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, deriveAmrAcr, generateOAuth2CodeVerifier };
@@ -1,11 +1,19 @@
1
1
  import type { Identity, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';
2
2
  import type { IOAuth2AuthorizationCodeIssuer } from './code/index.ts';
3
+ import type { IOAuth2AccessPolicyEvaluator } from '../access-policy/index.ts';
3
4
  import type { OAuth2AuthorizationManagerContext, OAuth2AuthorizationOptions, OAuth2AuthorizationResult } from './types.ts';
4
5
  import type { ISessionManager } from '../../authentication/index.ts';
6
+ import type { IEventService, IUserAuthenticatorChallengeProvider } from '../../entities/index.ts';
7
+ import type { IAuthFlowMetrics } from '../../metrics/index.ts';
5
8
  export declare class OAuth2Authorization {
6
9
  protected codeIssuer: IOAuth2AuthorizationCodeIssuer;
7
10
  protected sessionManager: ISessionManager;
11
+ protected eventService?: IEventService;
12
+ protected metrics?: IAuthFlowMetrics;
8
13
  protected promptLoginMaxAge: number;
14
+ protected mfaFreshnessMaxAge: number;
15
+ protected mfaChallengeProvider?: IUserAuthenticatorChallengeProvider;
16
+ protected accessPolicyEvaluator?: IOAuth2AccessPolicyEvaluator;
9
17
  constructor(ctx: OAuth2AuthorizationManagerContext);
10
18
  /**
11
19
  * Authorize with validated codeRequest.
@@ -15,5 +23,6 @@ export declare class OAuth2Authorization {
15
23
  * @param options
16
24
  */
17
25
  authorize(data: OAuth2AuthorizationCodeRequest, identity: Identity, options?: OAuth2AuthorizationOptions): Promise<OAuth2AuthorizationResult>;
26
+ protected authorizeInner(data: OAuth2AuthorizationCodeRequest, identity: Identity, options?: OAuth2AuthorizationOptions): Promise<OAuth2AuthorizationResult>;
18
27
  }
19
28
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/core/oauth2/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAA2B,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAS1G,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EACR,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIrE,qBAAa,mBAAmB;IAC5B,SAAS,CAAC,UAAU,EAAG,8BAA8B,CAAC;IAEtD,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAE3C,SAAS,CAAC,iBAAiB,EAAG,MAAM,CAAC;gBAEzB,GAAG,EAAE,iCAAiC;IAMlD;;;;;;OAMG;IACG,SAAS,CACX,IAAI,EAAE,8BAA8B,EACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,0BAA+B,GACxC,OAAO,CAAC,yBAAyB,CAAC;CAoGzC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/core/oauth2/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,QAAQ,EAER,8BAA8B,EAEjC,MAAM,kBAAkB,CAAC;AAsB1B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAE9E,OAAO,KAAK,EACR,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS/D,qBAAa,mBAAmB;IAC5B,SAAS,CAAC,UAAU,EAAG,8BAA8B,CAAC;IAEtD,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAE3C,SAAS,CAAC,YAAY,CAAC,EAAG,aAAa,CAAC;IAExC,SAAS,CAAC,OAAO,CAAC,EAAG,gBAAgB,CAAC;IAEtC,SAAS,CAAC,iBAAiB,EAAG,MAAM,CAAC;IAErC,SAAS,CAAC,kBAAkB,EAAG,MAAM,CAAC;IAEtC,SAAS,CAAC,oBAAoB,CAAC,EAAG,mCAAmC,CAAC;IAEtE,SAAS,CAAC,qBAAqB,CAAC,EAAG,4BAA4B,CAAC;gBAEpD,GAAG,EAAE,iCAAiC;IAWlD;;;;;;OAMG;IACG,SAAS,CACX,IAAI,EAAE,8BAA8B,EACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,0BAA+B,GACxC,OAAO,CAAC,yBAAyB,CAAC;cAiDtB,cAAc,CAC1B,IAAI,EAAE,8BAA8B,EACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,0BAA+B,GACxC,OAAO,CAAC,yBAAyB,CAAC;CA4KzC"}
@@ -1,17 +1,31 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- import { OAuth2AuthorizationPrompt, OAuth2AuthorizationResponseType, OAuth2GrantError, OAuth2LoginRequiredError, OAuth2RequestError, OAuth2ResponseTypeError } from "@authup/specs";
4
+ import { toIdentityPolicyData } from "../../identity/permission/identity-policy-data.mjs";
5
+ import { EventName, EventRefType, EventScope, IdentityType } from "@authup/core-kit";
6
+ import { hasInstanceof } from "@authup/errors";
7
+ import { OAUTH2_ACCESS_DENIED_ERROR_INSTANCE, OAUTH2_LOGIN_REQUIRED_ERROR_INSTANCE, OAUTH2_MFA_REQUIRED_ERROR_INSTANCE, OAuth2AccessDeniedError, OAuth2AuthenticationContextClass, OAuth2AuthorizationPrompt, OAuth2AuthorizationResponseType, OAuth2GrantError, OAuth2LoginRequiredError, OAuth2MfaRequiredError, OAuth2RequestError, OAuth2ResponseTypeError } from "@authup/specs";
5
8
  //#region src/core/oauth2/authorization/module.ts
6
9
  const DEFAULT_PROMPT_LOGIN_MAX_AGE = 60;
10
+ const DEFAULT_MFA_FRESHNESS_MAX_AGE = 60;
7
11
  var OAuth2Authorization = class {
8
12
  codeIssuer;
9
13
  sessionManager;
14
+ eventService;
15
+ metrics;
10
16
  promptLoginMaxAge;
17
+ mfaFreshnessMaxAge;
18
+ mfaChallengeProvider;
19
+ accessPolicyEvaluator;
11
20
  constructor(ctx) {
12
21
  this.codeIssuer = ctx.codeIssuer;
13
22
  this.sessionManager = ctx.sessionManager;
23
+ this.eventService = ctx.eventService;
24
+ this.metrics = ctx.metrics;
25
+ this.accessPolicyEvaluator = ctx.accessPolicyEvaluator;
14
26
  this.promptLoginMaxAge = ctx.promptLoginMaxAge ?? DEFAULT_PROMPT_LOGIN_MAX_AGE;
27
+ this.mfaFreshnessMaxAge = ctx.mfaFreshnessMaxAge ?? DEFAULT_MFA_FRESHNESS_MAX_AGE;
28
+ this.mfaChallengeProvider = ctx.mfaChallengeProvider;
15
29
  }
16
30
  /**
17
31
  * Authorize with validated codeRequest.
@@ -20,6 +34,47 @@ var OAuth2Authorization = class {
20
34
  * @param identity
21
35
  * @param options
22
36
  */ async authorize(data, identity, options = {}) {
37
+ try {
38
+ const result = await this.authorizeInner(data, identity, options);
39
+ await this.eventService?.record({
40
+ scope: EventScope.OAUTH2,
41
+ name: EventName.AUTHORIZE,
42
+ refType: EventRefType.CLIENT,
43
+ refId: options.client?.id ?? data.client_id ?? null,
44
+ clientId: options.client?.id ?? data.client_id ?? null,
45
+ actorType: identity.type,
46
+ actorId: identity.data.id,
47
+ actorName: identity.data.name,
48
+ realmId: data.realm_id ?? null,
49
+ data: {
50
+ reason: options.client?.builtIn ? "autoConsent" : "consent",
51
+ ...data.scope ? { scope: data.scope } : {}
52
+ }
53
+ });
54
+ this.metrics?.recordAuthorize("issued");
55
+ return result;
56
+ } catch (e) {
57
+ if (hasInstanceof(e, OAUTH2_ACCESS_DENIED_ERROR_INSTANCE)) {
58
+ await this.eventService?.record({
59
+ scope: EventScope.OAUTH2,
60
+ name: EventName.AUTHORIZE_FAILED,
61
+ refType: EventRefType.CLIENT,
62
+ refId: options.client?.id ?? data.client_id ?? null,
63
+ clientId: options.client?.id ?? data.client_id ?? null,
64
+ actorType: identity.type,
65
+ actorId: identity.data.id,
66
+ actorName: identity.data.name,
67
+ realmId: data.realm_id ?? null,
68
+ data: { reason: "accessPolicy" }
69
+ });
70
+ this.metrics?.recordAuthorize("denied");
71
+ } else if (hasInstanceof(e, OAUTH2_LOGIN_REQUIRED_ERROR_INSTANCE)) this.metrics?.recordAuthorize("login_required");
72
+ else if (hasInstanceof(e, OAUTH2_MFA_REQUIRED_ERROR_INSTANCE)) this.metrics?.recordAuthorize("mfa_required");
73
+ else this.metrics?.recordAuthorize("error");
74
+ throw e;
75
+ }
76
+ }
77
+ async authorizeInner(data, identity, options = {}) {
23
78
  let responseTypes = [];
24
79
  if (data.response_type) responseTypes = Array.isArray(data.response_type) ? data.response_type : data.response_type.split(" ");
25
80
  for (const responseType of responseTypes) if (responseType !== OAuth2AuthorizationResponseType.CODE) throw OAuth2ResponseTypeError.unsupported();
@@ -30,21 +85,43 @@ var OAuth2Authorization = class {
30
85
  ...data.state ? { state: data.state } : {}
31
86
  };
32
87
  if (!identity) throw OAuth2RequestError.identityInvalid();
33
- if (data.realm_id && identity.data.realm_id !== data.realm_id) throw OAuth2LoginRequiredError.realmMismatch();
88
+ if (data.realm_id && identity.data.realmId !== data.realm_id) throw OAuth2LoginRequiredError.realmMismatch();
34
89
  const nowSeconds = Math.floor(Date.now() / 1e3);
35
90
  let authTime = nowSeconds;
91
+ let session = null;
36
92
  if (options.sessionId) {
37
- const session = await this.sessionManager.findOneById(options.sessionId);
38
- if (session && session.created_at) authTime = Math.floor(new Date(session.created_at).getTime() / 1e3);
93
+ session = await this.sessionManager.findOneById(options.sessionId);
94
+ if (session && session.createdAt) authTime = Math.floor(new Date(session.createdAt).getTime() / 1e3);
95
+ }
96
+ if (this.mfaChallengeProvider && identity.type === IdentityType.USER) {
97
+ const challenge = await this.mfaChallengeProvider.challenge(identity.data.id, { issueMaterial: false });
98
+ if (challenge.required && !session?.mfaAt) throw OAuth2MfaRequiredError.challengeRequired();
99
+ if (challenge.enrollmentRequired) throw OAuth2MfaRequiredError.enrollmentRequired();
100
+ if (challenge.required && data.acr_values) {
101
+ if (data.acr_values.split(" ").includes(OAuth2AuthenticationContextClass.MFA)) {
102
+ const mfaAtSeconds = session?.mfaAt ? Math.floor(new Date(session.mfaAt).getTime() / 1e3) : null;
103
+ if (mfaAtSeconds === null || nowSeconds - mfaAtSeconds > this.mfaFreshnessMaxAge) throw OAuth2MfaRequiredError.stepUpRequired();
104
+ }
105
+ }
39
106
  }
40
107
  if ((data.prompt ? data.prompt.split(" ") : []).includes(OAuth2AuthorizationPrompt.LOGIN) && nowSeconds - authTime > this.promptLoginMaxAge) throw OAuth2LoginRequiredError.reauthenticationRequired();
41
108
  if (typeof data.max_age !== "undefined" && data.max_age !== null) {
42
109
  const maxAge = Number(data.max_age);
43
110
  if (Number.isFinite(maxAge) && nowSeconds - authTime > maxAge) throw OAuth2LoginRequiredError.reauthenticationRequired();
44
111
  }
112
+ if (options.client?.accessPolicyId) {
113
+ let allowed = false;
114
+ const subject = toIdentityPolicyData(identity);
115
+ if (this.accessPolicyEvaluator && subject) allowed = await this.accessPolicyEvaluator.evaluate(options.client.accessPolicyId, subject);
116
+ if (!allowed) throw OAuth2AccessDeniedError.forClient(options.redirectUriVerified && data.redirect_uri ? {
117
+ redirectUri: data.redirect_uri,
118
+ state: data.state ?? null
119
+ } : void 0);
120
+ }
45
121
  output.authorizationCode = (await this.codeIssuer.issue(data, identity, {
46
122
  sessionId: options.sessionId,
47
- authTime
123
+ authTime,
124
+ authMethod: session?.authMethod ?? null
48
125
  })).id;
49
126
  return output;
50
127
  }