@authup/server-core 1.0.0-beta.53 → 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 (1152) 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 +0 -13
  3. package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client/entity.d.ts +16 -16
  5. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  6. package/dist/adapters/database/domains/client/entity.mjs +52 -34
  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 +40 -21
  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 +7 -7
  27. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -1
  28. package/dist/adapters/database/domains/consent/entity.mjs +33 -18
  29. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -1
  30. package/dist/adapters/database/domains/consent/subscriber.mjs +2 -2
  31. package/dist/adapters/database/domains/consent/subscriber.mjs.map +1 -1
  32. package/dist/adapters/database/domains/constants.d.ts +0 -3
  33. package/dist/adapters/database/domains/constants.d.ts.map +1 -1
  34. package/dist/adapters/database/domains/constants.mjs +0 -3
  35. package/dist/adapters/database/domains/constants.mjs.map +1 -1
  36. package/dist/adapters/database/domains/event/entity.d.ts +13 -13
  37. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -1
  38. package/dist/adapters/database/domains/event/entity.mjs +43 -28
  39. package/dist/adapters/database/domains/event/entity.mjs.map +1 -1
  40. package/dist/adapters/database/domains/identity-provider/entity.d.ts +4 -4
  41. package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
  42. package/dist/adapters/database/domains/identity-provider/entity.mjs +17 -10
  43. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  44. package/dist/adapters/database/domains/identity-provider/repository.mjs +3 -3
  45. package/dist/adapters/database/domains/identity-provider/repository.mjs.map +1 -1
  46. package/dist/adapters/database/domains/identity-provider/subscriber.mjs +1 -1
  47. package/dist/adapters/database/domains/identity-provider/subscriber.mjs.map +1 -1
  48. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts +15 -15
  49. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
  50. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +50 -31
  51. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  52. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts +4 -4
  53. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
  54. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +18 -9
  55. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  56. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts +9 -9
  57. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
  58. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +29 -19
  59. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  60. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts +10 -10
  61. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
  62. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +32 -21
  63. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  64. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts +10 -10
  65. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
  66. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +32 -21
  67. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  68. package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs +1 -1
  69. package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs.map +1 -1
  70. package/dist/adapters/database/domains/index.d.ts +0 -3
  71. package/dist/adapters/database/domains/index.d.ts.map +1 -1
  72. package/dist/adapters/database/domains/index.mjs +1 -10
  73. package/dist/adapters/database/domains/key/entity.d.ts +6 -6
  74. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  75. package/dist/adapters/database/domains/key/entity.mjs +24 -14
  76. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  77. package/dist/adapters/database/domains/permission/entity.d.ts +7 -7
  78. package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
  79. package/dist/adapters/database/domains/permission/entity.mjs +33 -18
  80. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  81. package/dist/adapters/database/domains/permission/subscriber.mjs +2 -2
  82. package/dist/adapters/database/domains/permission/subscriber.mjs.map +1 -1
  83. package/dist/adapters/database/domains/permission-policy/entity.d.ts +8 -8
  84. package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
  85. package/dist/adapters/database/domains/permission-policy/entity.mjs +29 -17
  86. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  87. package/dist/adapters/database/domains/policy/entity.d.ts +6 -6
  88. package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
  89. package/dist/adapters/database/domains/policy/entity.mjs +28 -14
  90. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  91. package/dist/adapters/database/domains/policy/repository.mjs +3 -3
  92. package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
  93. package/dist/adapters/database/domains/policy-attribute/entity.d.ts +4 -4
  94. package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
  95. package/dist/adapters/database/domains/policy-attribute/entity.mjs +18 -9
  96. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  97. package/dist/adapters/database/domains/policy-attribute/subscriber.mjs +2 -2
  98. package/dist/adapters/database/domains/policy-attribute/subscriber.mjs.map +1 -1
  99. package/dist/adapters/database/domains/realm/entity.d.ts +4 -4
  100. package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
  101. package/dist/adapters/database/domains/realm/entity.mjs +16 -8
  102. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  103. package/dist/adapters/database/domains/role/entity.d.ts +6 -6
  104. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  105. package/dist/adapters/database/domains/role/entity.mjs +30 -16
  106. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  107. package/dist/adapters/database/domains/role/repository.mjs +3 -3
  108. package/dist/adapters/database/domains/role/repository.mjs.map +1 -1
  109. package/dist/adapters/database/domains/role/subscriber.mjs +1 -1
  110. package/dist/adapters/database/domains/role/subscriber.mjs.map +1 -1
  111. package/dist/adapters/database/domains/role-attribute/entity.d.ts +4 -4
  112. package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
  113. package/dist/adapters/database/domains/role-attribute/entity.mjs +18 -9
  114. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  115. package/dist/adapters/database/domains/role-attribute/subscriber.mjs +2 -2
  116. package/dist/adapters/database/domains/role-attribute/subscriber.mjs.map +1 -1
  117. package/dist/adapters/database/domains/role-permission/entity.d.ts +10 -10
  118. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  119. package/dist/adapters/database/domains/role-permission/entity.mjs +37 -21
  120. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  121. package/dist/adapters/database/domains/role-permission/subscriber.mjs +2 -2
  122. package/dist/adapters/database/domains/role-permission/subscriber.mjs.map +1 -1
  123. package/dist/adapters/database/domains/scope/entity.d.ts +5 -5
  124. package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
  125. package/dist/adapters/database/domains/scope/entity.mjs +23 -12
  126. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  127. package/dist/adapters/database/domains/scope/subscriber.mjs +1 -1
  128. package/dist/adapters/database/domains/scope/subscriber.mjs.map +1 -1
  129. package/dist/adapters/database/domains/session/entity.d.ts +14 -17
  130. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  131. package/dist/adapters/database/domains/session/entity.mjs +42 -42
  132. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  133. package/dist/adapters/database/domains/session-token/entity.d.ts +9 -9
  134. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
  135. package/dist/adapters/database/domains/session-token/entity.mjs +32 -19
  136. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
  137. package/dist/adapters/database/domains/trust-anchor/entity.d.ts +3 -3
  138. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -1
  139. package/dist/adapters/database/domains/trust-anchor/entity.mjs +14 -8
  140. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -1
  141. package/dist/adapters/database/domains/user/entity.d.ts +12 -12
  142. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  143. package/dist/adapters/database/domains/user/entity.mjs +42 -27
  144. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  145. package/dist/adapters/database/domains/user/repository.mjs +3 -3
  146. package/dist/adapters/database/domains/user/repository.mjs.map +1 -1
  147. package/dist/adapters/database/domains/user/subscriber.mjs +1 -1
  148. package/dist/adapters/database/domains/user/subscriber.mjs.map +1 -1
  149. package/dist/adapters/database/domains/user-attribute/entity.d.ts +4 -4
  150. package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
  151. package/dist/adapters/database/domains/user-attribute/entity.mjs +15 -9
  152. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  153. package/dist/adapters/database/domains/user-attribute/subscriber.mjs +2 -2
  154. package/dist/adapters/database/domains/user-attribute/subscriber.mjs.map +1 -1
  155. package/dist/adapters/database/domains/user-authenticator/entity.d.ts +5 -5
  156. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -1
  157. package/dist/adapters/database/domains/user-authenticator/entity.mjs +24 -11
  158. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -1
  159. package/dist/adapters/database/domains/user-permission/entity.d.ts +10 -10
  160. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  161. package/dist/adapters/database/domains/user-permission/entity.mjs +37 -21
  162. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  163. package/dist/adapters/database/domains/user-permission/subscriber.mjs +2 -2
  164. package/dist/adapters/database/domains/user-permission/subscriber.mjs.map +1 -1
  165. package/dist/adapters/database/domains/user-role/entity.d.ts +8 -8
  166. package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
  167. package/dist/adapters/database/domains/user-role/entity.mjs +29 -17
  168. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  169. package/dist/adapters/database/domains/user-role/subscriber.mjs +2 -2
  170. package/dist/adapters/database/domains/user-role/subscriber.mjs.map +1 -1
  171. package/dist/adapters/database/helpers/is-supported.mjs +1 -1
  172. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  173. package/dist/adapters/database/index.mjs +1 -7
  174. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.d.ts +12 -0
  175. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.d.ts.map +1 -0
  176. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.mjs +42 -0
  177. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.mjs.map +1 -0
  178. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.d.ts +18 -0
  179. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.d.ts.map +1 -0
  180. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.mjs +161 -0
  181. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.mjs.map +1 -0
  182. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.d.ts +12 -0
  183. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.d.ts.map +1 -0
  184. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.mjs +42 -0
  185. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.mjs.map +1 -0
  186. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.d.ts +18 -0
  187. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.d.ts.map +1 -0
  188. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.mjs +167 -0
  189. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.mjs.map +1 -0
  190. package/dist/adapters/http/adapters/index.mjs +1 -2
  191. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +2 -2
  192. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  193. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +3 -3
  194. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  195. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +1 -1
  196. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  197. package/dist/adapters/http/adapters/oauth2/grant-types/index.d.ts +0 -1
  198. package/dist/adapters/http/adapters/oauth2/grant-types/index.d.ts.map +1 -1
  199. package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +1 -2
  200. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +1 -1
  201. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  202. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +1 -1
  203. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  204. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +1 -4
  205. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  206. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts.map +1 -1
  207. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +0 -3
  208. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
  209. package/dist/adapters/http/adapters/oauth2/index.mjs +1 -2
  210. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs +3 -3
  211. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs.map +1 -1
  212. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs +2 -2
  213. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs.map +1 -1
  214. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs +2 -2
  215. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs.map +1 -1
  216. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  217. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +19 -13
  218. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  219. package/dist/adapters/http/controllers/entities/index.d.ts +0 -3
  220. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  221. package/dist/adapters/http/controllers/entities/index.mjs +1 -9
  222. package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -1
  223. package/dist/adapters/http/controllers/entities/key/module.mjs +1 -7
  224. package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -1
  225. package/dist/adapters/http/controllers/entities/policy/utils/validation.d.ts +1 -1
  226. package/dist/adapters/http/controllers/entities/policy/utils/validation.d.ts.map +1 -1
  227. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs +3 -3
  228. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs.map +1 -1
  229. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs +1 -1
  230. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs.map +1 -1
  231. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs +3 -3
  232. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs.map +1 -1
  233. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
  234. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -1
  235. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +1 -7
  236. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -1
  237. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs +1 -1
  238. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs.map +1 -1
  239. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +1 -1
  240. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -1
  241. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs +3 -3
  242. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs.map +1 -1
  243. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs +2 -2
  244. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs.map +1 -1
  245. package/dist/adapters/http/controllers/index.mjs +1 -6
  246. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +4 -4
  247. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  248. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +10 -10
  249. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  250. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +9 -9
  251. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  252. package/dist/adapters/http/controllers/workflows/status/module.mjs +2 -2
  253. package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
  254. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  255. package/dist/adapters/http/controllers/workflows/token/module.mjs +2 -8
  256. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  257. package/dist/adapters/http/controllers/workflows/token/types.d.ts +1 -2
  258. package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
  259. package/dist/adapters/http/index.mjs +1 -7
  260. package/dist/adapters/http/middleware/built-in/assets.mjs +2 -2
  261. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  262. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +1 -2
  263. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  264. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +1 -15
  265. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  266. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +0 -1
  267. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
  268. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  269. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +0 -1
  270. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  271. package/dist/adapters/http/request/client-certificate.d.ts +1 -0
  272. package/dist/adapters/http/request/client-certificate.d.ts.map +1 -1
  273. package/dist/adapters/http/request/client-certificate.mjs +1 -0
  274. package/dist/adapters/http/request/client-certificate.mjs.map +1 -1
  275. package/dist/adapters/http/request/helpers/body-realm-id.mjs +1 -1
  276. package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
  277. package/dist/adapters/http/request/helpers/identity.d.ts +2 -2
  278. package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
  279. package/dist/adapters/http/request/helpers/identity.mjs +2 -2
  280. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  281. package/dist/adapters/http/request/helpers/realm-id.mjs +1 -1
  282. package/dist/adapters/http/request/helpers/realm-id.mjs.map +1 -1
  283. package/dist/adapters/http/request/permission/module.d.ts +3 -2
  284. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  285. package/dist/adapters/http/request/permission/module.mjs +3 -0
  286. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  287. package/dist/adapters/http/ui/render.mjs +2 -2
  288. package/dist/adapters/http/ui/render.mjs.map +1 -1
  289. package/dist/adapters/http/ui/serve.d.ts.map +1 -1
  290. package/dist/adapters/http/ui/serve.mjs +4 -1
  291. package/dist/adapters/http/ui/serve.mjs.map +1 -1
  292. package/dist/app/index.mjs +1 -5
  293. package/dist/app/modules/authentication/repositories/session.d.ts +3 -2
  294. package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
  295. package/dist/app/modules/authentication/repositories/session.mjs +8 -40
  296. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  297. package/dist/app/modules/config/constants.d.ts +0 -4
  298. package/dist/app/modules/config/constants.d.ts.map +1 -1
  299. package/dist/app/modules/config/constants.mjs +0 -4
  300. package/dist/app/modules/config/constants.mjs.map +1 -1
  301. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  302. package/dist/app/modules/config/normalize.mjs +0 -4
  303. package/dist/app/modules/config/normalize.mjs.map +1 -1
  304. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  305. package/dist/app/modules/config/read/env.mjs +0 -8
  306. package/dist/app/modules/config/read/env.mjs.map +1 -1
  307. package/dist/app/modules/config/types.d.ts +0 -19
  308. package/dist/app/modules/config/types.d.ts.map +1 -1
  309. package/dist/app/modules/config/validator.d.ts.map +1 -1
  310. package/dist/app/modules/config/validator.mjs +0 -4
  311. package/dist/app/modules/config/validator.mjs.map +1 -1
  312. package/dist/app/modules/database/index.mjs +1 -4
  313. package/dist/app/modules/database/module.d.ts.map +1 -1
  314. package/dist/app/modules/database/module.mjs +2 -0
  315. package/dist/app/modules/database/module.mjs.map +1 -1
  316. package/dist/app/modules/database/repositories/bindings.d.ts +2 -2
  317. package/dist/app/modules/database/repositories/bindings.d.ts.map +1 -1
  318. package/dist/app/modules/database/repositories/bindings.mjs +3 -3
  319. package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
  320. package/dist/app/modules/database/repositories/client/repository.d.ts +3 -2
  321. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  322. package/dist/app/modules/database/repositories/client/repository.mjs +10 -82
  323. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  324. package/dist/app/modules/database/repositories/client-permission/repository.d.ts +2 -1
  325. package/dist/app/modules/database/repositories/client-permission/repository.d.ts.map +1 -1
  326. package/dist/app/modules/database/repositories/client-permission/repository.mjs +3 -17
  327. package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
  328. package/dist/app/modules/database/repositories/client-role/repository.d.ts +2 -1
  329. package/dist/app/modules/database/repositories/client-role/repository.d.ts.map +1 -1
  330. package/dist/app/modules/database/repositories/client-role/repository.mjs +3 -17
  331. package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
  332. package/dist/app/modules/database/repositories/client-scope/repository.d.ts +2 -1
  333. package/dist/app/modules/database/repositories/client-scope/repository.d.ts.map +1 -1
  334. package/dist/app/modules/database/repositories/client-scope/repository.mjs +3 -17
  335. package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
  336. package/dist/app/modules/database/repositories/event/repository.d.ts +2 -1
  337. package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
  338. package/dist/app/modules/database/repositories/event/repository.mjs +14 -53
  339. package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
  340. package/dist/app/modules/database/repositories/helpers.d.ts +17 -3
  341. package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
  342. package/dist/app/modules/database/repositories/helpers.mjs +40 -5
  343. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  344. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +2 -1
  345. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
  346. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +6 -37
  347. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  348. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts +2 -1
  349. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts.map +1 -1
  350. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs +3 -17
  351. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
  352. package/dist/app/modules/database/repositories/index.d.ts +0 -3
  353. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  354. package/dist/app/modules/database/repositories/index.mjs +1 -7
  355. package/dist/app/modules/database/repositories/key/repository.d.ts +3 -2
  356. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -1
  357. package/dist/app/modules/database/repositories/key/repository.mjs +38 -72
  358. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  359. package/dist/app/modules/database/repositories/permission/repository.d.ts +2 -1
  360. package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
  361. package/dist/app/modules/database/repositories/permission/repository.mjs +5 -20
  362. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  363. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts +2 -1
  364. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts.map +1 -1
  365. package/dist/app/modules/database/repositories/permission-policy/repository.mjs +3 -17
  366. package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
  367. package/dist/app/modules/database/repositories/permission-provider/module.mjs +6 -6
  368. package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
  369. package/dist/app/modules/database/repositories/policy/repository.d.ts +2 -1
  370. package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
  371. package/dist/app/modules/database/repositories/policy/repository.mjs +5 -39
  372. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  373. package/dist/app/modules/database/repositories/query.d.ts +18 -0
  374. package/dist/app/modules/database/repositories/query.d.ts.map +1 -0
  375. package/dist/app/modules/database/repositories/query.mjs +29 -0
  376. package/dist/app/modules/database/repositories/query.mjs.map +1 -0
  377. package/dist/app/modules/database/repositories/realm/repository.d.ts +2 -1
  378. package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
  379. package/dist/app/modules/database/repositories/realm/repository.mjs +3 -25
  380. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  381. package/dist/app/modules/database/repositories/role/repository.d.ts +2 -1
  382. package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
  383. package/dist/app/modules/database/repositories/role/repository.mjs +6 -30
  384. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  385. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts +2 -1
  386. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
  387. package/dist/app/modules/database/repositories/role-attribute/repository.mjs +3 -19
  388. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  389. package/dist/app/modules/database/repositories/role-permission/repository.d.ts +2 -1
  390. package/dist/app/modules/database/repositories/role-permission/repository.d.ts.map +1 -1
  391. package/dist/app/modules/database/repositories/role-permission/repository.mjs +3 -17
  392. package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
  393. package/dist/app/modules/database/repositories/schema-validation.d.ts +11 -0
  394. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -0
  395. package/dist/app/modules/database/repositories/schema-validation.mjs +77 -0
  396. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -0
  397. package/dist/app/modules/database/repositories/scope/repository.d.ts +2 -1
  398. package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
  399. package/dist/app/modules/database/repositories/scope/repository.mjs +5 -29
  400. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  401. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts +2 -1
  402. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts.map +1 -1
  403. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +5 -29
  404. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -1
  405. package/dist/app/modules/database/repositories/user/repository.d.ts +3 -2
  406. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  407. package/dist/app/modules/database/repositories/user/repository.mjs +9 -66
  408. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  409. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts +2 -1
  410. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
  411. package/dist/app/modules/database/repositories/user-attribute/repository.mjs +4 -20
  412. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  413. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts +2 -1
  414. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts.map +1 -1
  415. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +8 -34
  416. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -1
  417. package/dist/app/modules/database/repositories/user-permission/repository.d.ts +2 -1
  418. package/dist/app/modules/database/repositories/user-permission/repository.d.ts.map +1 -1
  419. package/dist/app/modules/database/repositories/user-permission/repository.mjs +3 -17
  420. package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
  421. package/dist/app/modules/database/repositories/user-role/repository.d.ts +2 -1
  422. package/dist/app/modules/database/repositories/user-role/repository.d.ts.map +1 -1
  423. package/dist/app/modules/database/repositories/user-role/repository.mjs +3 -17
  424. package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
  425. package/dist/app/modules/http/modules/controller.d.ts +1 -4
  426. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  427. package/dist/app/modules/http/modules/controller.mjs +0 -52
  428. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  429. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  430. package/dist/app/modules/http/modules/middleware.mjs +0 -1
  431. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  432. package/dist/app/modules/identity/index.mjs +1 -2
  433. package/dist/app/modules/identity/module.d.ts.map +1 -1
  434. package/dist/app/modules/identity/module.mjs +1 -12
  435. package/dist/app/modules/identity/module.mjs.map +1 -1
  436. package/dist/app/modules/identity/repositories/client.mjs +2 -2
  437. package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
  438. package/dist/app/modules/identity/repositories/index.d.ts +0 -1
  439. package/dist/app/modules/identity/repositories/index.d.ts.map +1 -1
  440. package/dist/app/modules/identity/repositories/index.mjs +1 -2
  441. package/dist/app/modules/identity/repositories/provider/account/module.mjs +3 -3
  442. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +1 -1
  443. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs +1 -1
  444. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs.map +1 -1
  445. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs +1 -1
  446. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs.map +1 -1
  447. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs +1 -1
  448. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs.map +1 -1
  449. package/dist/app/modules/identity/repositories/user.mjs +18 -18
  450. package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
  451. package/dist/app/modules/index.mjs +1 -5
  452. package/dist/app/modules/oauth2/repositories/client/repository.mjs +1 -1
  453. package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
  454. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts +2 -1
  455. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -1
  456. package/dist/app/modules/oauth2/repositories/consent/repository.mjs +14 -38
  457. package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
  458. package/dist/app/modules/oauth2/repositories/scope/repository.mjs +1 -1
  459. package/dist/app/modules/oauth2/repositories/scope/repository.mjs.map +1 -1
  460. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +21 -18
  461. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  462. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  463. package/dist/app/modules/provisioning/module.mjs +9 -24
  464. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  465. package/dist/app/modules/provisioning/sources/composite/module.d.ts +17 -0
  466. package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
  467. package/dist/app/modules/provisioning/sources/composite/module.mjs +54 -2
  468. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  469. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  470. package/dist/app/modules/provisioning/sources/default/module.mjs +43 -78
  471. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  472. package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
  473. package/dist/app/modules/provisioning/sources/file/module.mjs +4 -3
  474. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  475. package/dist/app/modules/provisioning/sources/file/types.d.ts +2 -0
  476. package/dist/app/modules/provisioning/sources/file/types.d.ts.map +1 -1
  477. package/dist/app/modules/provisioning/sources/index.mjs +1 -0
  478. package/dist/components/database/unique-entries/module.mjs +6 -6
  479. package/dist/components/database/unique-entries/module.mjs.map +1 -1
  480. package/dist/components/oauth2-cleaner/module.mjs +2 -2
  481. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  482. package/dist/core/authentication/credential/entities/client/module.d.ts +1 -1
  483. package/dist/core/authentication/credential/entities/client/module.d.ts.map +1 -1
  484. package/dist/core/authentication/credential/entities/client/module.mjs +3 -3
  485. package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
  486. package/dist/core/authentication/credential/entities/index.d.ts +0 -1
  487. package/dist/core/authentication/credential/entities/index.d.ts.map +1 -1
  488. package/dist/core/authentication/credential/entities/index.mjs +1 -3
  489. package/dist/core/authentication/credential/index.mjs +1 -2
  490. package/dist/core/authentication/entities/client/module.mjs +1 -1
  491. package/dist/core/authentication/entities/client/module.mjs.map +1 -1
  492. package/dist/core/authentication/entities/index.d.ts +0 -1
  493. package/dist/core/authentication/entities/index.d.ts.map +1 -1
  494. package/dist/core/authentication/entities/index.mjs +1 -3
  495. package/dist/core/authentication/index.mjs +1 -3
  496. package/dist/core/authentication/session/module.d.ts.map +1 -1
  497. package/dist/core/authentication/session/module.mjs +14 -17
  498. package/dist/core/authentication/session/module.mjs.map +1 -1
  499. package/dist/core/authentication/session/types.d.ts +7 -6
  500. package/dist/core/authentication/session/types.d.ts.map +1 -1
  501. package/dist/core/authentication/session/types.mjs +4 -5
  502. package/dist/core/authentication/session/types.mjs.map +1 -1
  503. package/dist/core/client-certificate/module.d.ts +2 -1
  504. package/dist/core/client-certificate/module.d.ts.map +1 -1
  505. package/dist/core/client-certificate/module.mjs +2 -1
  506. package/dist/core/client-certificate/module.mjs.map +1 -1
  507. package/dist/core/client-certificate/reflect.d.ts +2 -0
  508. package/dist/core/client-certificate/reflect.d.ts.map +1 -0
  509. package/dist/core/{identity/entities/robot/index.mjs → client-certificate/reflect.mjs} +1 -0
  510. package/dist/core/client-certificate/types.d.ts +1 -1
  511. package/dist/core/client-certificate/types.d.ts.map +1 -1
  512. package/dist/core/entities/client/index.d.ts +1 -0
  513. package/dist/core/entities/client/index.d.ts.map +1 -1
  514. package/dist/core/entities/client/index.mjs +2 -1
  515. package/dist/core/entities/client/schema.d.ts +3 -0
  516. package/dist/core/entities/client/schema.d.ts.map +1 -0
  517. package/dist/core/entities/client/schema.mjs +59 -0
  518. package/dist/core/entities/client/schema.mjs.map +1 -0
  519. package/dist/core/entities/client/service.d.ts.map +1 -1
  520. package/dist/core/entities/client/service.mjs +42 -19
  521. package/dist/core/entities/client/service.mjs.map +1 -1
  522. package/dist/core/entities/client/types.d.ts +2 -1
  523. package/dist/core/entities/client/types.d.ts.map +1 -1
  524. package/dist/core/entities/client/web-client.d.ts +4 -4
  525. package/dist/core/entities/client/web-client.mjs +13 -13
  526. package/dist/core/entities/client/web-client.mjs.map +1 -1
  527. package/dist/core/entities/client-permission/index.d.ts +1 -0
  528. package/dist/core/entities/client-permission/index.d.ts.map +1 -1
  529. package/dist/core/entities/client-permission/index.mjs +2 -1
  530. package/dist/core/entities/client-permission/schema.d.ts +3 -0
  531. package/dist/core/entities/client-permission/schema.d.ts.map +1 -0
  532. package/dist/core/entities/client-permission/schema.mjs +41 -0
  533. package/dist/core/entities/client-permission/schema.mjs.map +1 -0
  534. package/dist/core/entities/client-permission/service.d.ts +1 -1
  535. package/dist/core/entities/client-permission/service.d.ts.map +1 -1
  536. package/dist/core/entities/client-permission/service.mjs +24 -18
  537. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  538. package/dist/core/entities/client-role/index.d.ts +1 -0
  539. package/dist/core/entities/client-role/index.d.ts.map +1 -1
  540. package/dist/core/entities/client-role/index.mjs +2 -1
  541. package/dist/core/entities/client-role/schema.d.ts +3 -0
  542. package/dist/core/entities/client-role/schema.d.ts.map +1 -0
  543. package/dist/core/entities/client-role/schema.mjs +39 -0
  544. package/dist/core/entities/client-role/schema.mjs.map +1 -0
  545. package/dist/core/entities/client-role/service.d.ts +1 -1
  546. package/dist/core/entities/client-role/service.d.ts.map +1 -1
  547. package/dist/core/entities/client-role/service.mjs +14 -8
  548. package/dist/core/entities/client-role/service.mjs.map +1 -1
  549. package/dist/core/entities/client-scope/index.d.ts +1 -0
  550. package/dist/core/entities/client-scope/index.d.ts.map +1 -1
  551. package/dist/core/entities/client-scope/index.mjs +2 -1
  552. package/dist/core/entities/client-scope/schema.d.ts +3 -0
  553. package/dist/core/entities/client-scope/schema.d.ts.map +1 -0
  554. package/dist/core/entities/client-scope/schema.mjs +37 -0
  555. package/dist/core/entities/client-scope/schema.mjs.map +1 -0
  556. package/dist/core/entities/client-scope/service.d.ts +1 -1
  557. package/dist/core/entities/client-scope/service.d.ts.map +1 -1
  558. package/dist/core/entities/client-scope/service.mjs +12 -6
  559. package/dist/core/entities/client-scope/service.mjs.map +1 -1
  560. package/dist/core/entities/consent/index.d.ts +1 -0
  561. package/dist/core/entities/consent/index.d.ts.map +1 -1
  562. package/dist/core/entities/consent/index.mjs +2 -1
  563. package/dist/core/entities/consent/schema.d.ts +3 -0
  564. package/dist/core/entities/consent/schema.d.ts.map +1 -0
  565. package/dist/core/entities/consent/schema.mjs +40 -0
  566. package/dist/core/entities/consent/schema.mjs.map +1 -0
  567. package/dist/core/entities/consent/service.d.ts.map +1 -1
  568. package/dist/core/entities/consent/service.mjs +22 -6
  569. package/dist/core/entities/consent/service.mjs.map +1 -1
  570. package/dist/core/entities/consent/types.d.ts +3 -2
  571. package/dist/core/entities/consent/types.d.ts.map +1 -1
  572. package/dist/core/entities/consent/types.mjs +3 -3
  573. package/dist/core/entities/consent/types.mjs.map +1 -1
  574. package/dist/core/entities/event/diff.d.ts +4 -4
  575. package/dist/core/entities/event/diff.mjs +5 -5
  576. package/dist/core/entities/event/diff.mjs.map +1 -1
  577. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  578. package/dist/core/entities/event/entity-event-handler.mjs +29 -31
  579. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  580. package/dist/core/entities/event/index.d.ts +1 -0
  581. package/dist/core/entities/event/index.d.ts.map +1 -1
  582. package/dist/core/entities/event/index.mjs +2 -1
  583. package/dist/core/entities/event/sanitize.mjs +8 -8
  584. package/dist/core/entities/event/sanitize.mjs.map +1 -1
  585. package/dist/core/entities/event/schema.d.ts +3 -0
  586. package/dist/core/entities/event/schema.d.ts.map +1 -0
  587. package/dist/core/entities/event/schema.mjs +51 -0
  588. package/dist/core/entities/event/schema.mjs.map +1 -0
  589. package/dist/core/entities/event/service.d.ts.map +1 -1
  590. package/dist/core/entities/event/service.mjs +38 -22
  591. package/dist/core/entities/event/service.mjs.map +1 -1
  592. package/dist/core/entities/event/types.d.ts +6 -5
  593. package/dist/core/entities/event/types.d.ts.map +1 -1
  594. package/dist/core/entities/identity-provider/index.d.ts +1 -0
  595. package/dist/core/entities/identity-provider/index.d.ts.map +1 -1
  596. package/dist/core/entities/identity-provider/index.mjs +2 -1
  597. package/dist/core/entities/identity-provider/schema.d.ts +3 -0
  598. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -0
  599. package/dist/core/entities/identity-provider/schema.mjs +43 -0
  600. package/dist/core/entities/identity-provider/schema.mjs.map +1 -0
  601. package/dist/core/entities/identity-provider-role-mapping/index.d.ts +1 -0
  602. package/dist/core/entities/identity-provider-role-mapping/index.d.ts.map +1 -1
  603. package/dist/core/entities/identity-provider-role-mapping/index.mjs +2 -1
  604. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts +3 -0
  605. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -0
  606. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +43 -0
  607. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -0
  608. package/dist/core/entities/identity-provider-role-mapping/service.d.ts +1 -1
  609. package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
  610. package/dist/core/entities/identity-provider-role-mapping/service.mjs +17 -11
  611. package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
  612. package/dist/core/entities/index.d.ts +0 -3
  613. package/dist/core/entities/index.d.ts.map +1 -1
  614. package/dist/core/entities/index.mjs +26 -7
  615. package/dist/core/entities/key/index.d.ts +1 -0
  616. package/dist/core/entities/key/index.d.ts.map +1 -1
  617. package/dist/core/entities/key/index.mjs +2 -1
  618. package/dist/core/entities/key/schema.d.ts +3 -0
  619. package/dist/core/entities/key/schema.d.ts.map +1 -0
  620. package/dist/core/entities/key/schema.mjs +53 -0
  621. package/dist/core/entities/key/schema.mjs.map +1 -0
  622. package/dist/core/entities/key/service.d.ts +2 -2
  623. package/dist/core/entities/key/service.d.ts.map +1 -1
  624. package/dist/core/entities/key/service.mjs +47 -28
  625. package/dist/core/entities/key/service.mjs.map +1 -1
  626. package/dist/core/entities/key/types.d.ts +9 -1
  627. package/dist/core/entities/key/types.d.ts.map +1 -1
  628. package/dist/core/entities/permission/index.d.ts +1 -0
  629. package/dist/core/entities/permission/index.d.ts.map +1 -1
  630. package/dist/core/entities/permission/index.mjs +2 -1
  631. package/dist/core/entities/permission/schema.d.ts +3 -0
  632. package/dist/core/entities/permission/schema.d.ts.map +1 -0
  633. package/dist/core/entities/permission/schema.mjs +28 -0
  634. package/dist/core/entities/permission/schema.mjs.map +1 -0
  635. package/dist/core/entities/permission/service.d.ts +7 -2
  636. package/dist/core/entities/permission/service.d.ts.map +1 -1
  637. package/dist/core/entities/permission/service.mjs +53 -40
  638. package/dist/core/entities/permission/service.mjs.map +1 -1
  639. package/dist/core/entities/permission-policy/index.d.ts +1 -0
  640. package/dist/core/entities/permission-policy/index.d.ts.map +1 -1
  641. package/dist/core/entities/permission-policy/index.mjs +2 -1
  642. package/dist/core/entities/permission-policy/schema.d.ts +3 -0
  643. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -0
  644. package/dist/core/entities/permission-policy/schema.mjs +39 -0
  645. package/dist/core/entities/permission-policy/schema.mjs.map +1 -0
  646. package/dist/core/entities/permission-policy/service.d.ts +1 -1
  647. package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
  648. package/dist/core/entities/permission-policy/service.mjs +12 -6
  649. package/dist/core/entities/permission-policy/service.mjs.map +1 -1
  650. package/dist/core/entities/policy/index.d.ts +1 -0
  651. package/dist/core/entities/policy/index.d.ts.map +1 -1
  652. package/dist/core/entities/policy/index.mjs +2 -1
  653. package/dist/core/entities/policy/schema.d.ts +3 -0
  654. package/dist/core/entities/policy/schema.d.ts.map +1 -0
  655. package/dist/core/entities/policy/schema.mjs +49 -0
  656. package/dist/core/entities/policy/schema.mjs.map +1 -0
  657. package/dist/core/entities/policy/service.d.ts.map +1 -1
  658. package/dist/core/entities/policy/service.mjs +13 -7
  659. package/dist/core/entities/policy/service.mjs.map +1 -1
  660. package/dist/core/entities/realm/index.d.ts +1 -0
  661. package/dist/core/entities/realm/index.d.ts.map +1 -1
  662. package/dist/core/entities/realm/index.mjs +2 -1
  663. package/dist/core/entities/realm/schema.d.ts +3 -0
  664. package/dist/core/entities/realm/schema.d.ts.map +1 -0
  665. package/dist/core/entities/realm/schema.mjs +36 -0
  666. package/dist/core/entities/realm/schema.mjs.map +1 -0
  667. package/dist/core/entities/realm/service.d.ts.map +1 -1
  668. package/dist/core/entities/realm/service.mjs +5 -2
  669. package/dist/core/entities/realm/service.mjs.map +1 -1
  670. package/dist/core/entities/realm/types.d.ts +1 -1
  671. package/dist/core/entities/role/index.d.ts +1 -0
  672. package/dist/core/entities/role/index.d.ts.map +1 -1
  673. package/dist/core/entities/role/index.mjs +2 -1
  674. package/dist/core/entities/role/schema.d.ts +3 -0
  675. package/dist/core/entities/role/schema.d.ts.map +1 -0
  676. package/dist/core/entities/role/schema.mjs +43 -0
  677. package/dist/core/entities/role/schema.mjs.map +1 -0
  678. package/dist/core/entities/role/service.d.ts.map +1 -1
  679. package/dist/core/entities/role/service.mjs +11 -5
  680. package/dist/core/entities/role/service.mjs.map +1 -1
  681. package/dist/core/entities/role-attribute/index.d.ts +1 -0
  682. package/dist/core/entities/role-attribute/index.d.ts.map +1 -1
  683. package/dist/core/entities/role-attribute/index.mjs +2 -1
  684. package/dist/core/entities/role-attribute/schema.d.ts +3 -0
  685. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -0
  686. package/dist/core/entities/role-attribute/schema.mjs +47 -0
  687. package/dist/core/entities/role-attribute/schema.mjs.map +1 -0
  688. package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
  689. package/dist/core/entities/role-attribute/service.mjs +19 -6
  690. package/dist/core/entities/role-attribute/service.mjs.map +1 -1
  691. package/dist/core/entities/role-permission/index.d.ts +1 -0
  692. package/dist/core/entities/role-permission/index.d.ts.map +1 -1
  693. package/dist/core/entities/role-permission/index.mjs +2 -1
  694. package/dist/core/entities/role-permission/schema.d.ts +3 -0
  695. package/dist/core/entities/role-permission/schema.d.ts.map +1 -0
  696. package/dist/core/entities/role-permission/schema.mjs +41 -0
  697. package/dist/core/entities/role-permission/schema.mjs.map +1 -0
  698. package/dist/core/entities/role-permission/service.d.ts +1 -1
  699. package/dist/core/entities/role-permission/service.d.ts.map +1 -1
  700. package/dist/core/entities/role-permission/service.mjs +24 -18
  701. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  702. package/dist/core/entities/scope/index.d.ts +1 -0
  703. package/dist/core/entities/scope/index.d.ts.map +1 -1
  704. package/dist/core/entities/scope/index.mjs +2 -1
  705. package/dist/core/entities/scope/schema.d.ts +3 -0
  706. package/dist/core/entities/scope/schema.d.ts.map +1 -0
  707. package/dist/core/entities/scope/schema.mjs +43 -0
  708. package/dist/core/entities/scope/schema.mjs.map +1 -0
  709. package/dist/core/entities/scope/service.d.ts.map +1 -1
  710. package/dist/core/entities/scope/service.mjs +11 -5
  711. package/dist/core/entities/scope/service.mjs.map +1 -1
  712. package/dist/core/entities/session/index.d.ts +1 -0
  713. package/dist/core/entities/session/index.d.ts.map +1 -1
  714. package/dist/core/entities/session/index.mjs +2 -1
  715. package/dist/core/entities/session/schema.d.ts +3 -0
  716. package/dist/core/entities/session/schema.d.ts.map +1 -0
  717. package/dist/core/entities/session/schema.mjs +44 -0
  718. package/dist/core/entities/session/schema.mjs.map +1 -0
  719. package/dist/core/entities/session/service.d.ts +11 -0
  720. package/dist/core/entities/session/service.d.ts.map +1 -1
  721. package/dist/core/entities/session/service.mjs +48 -11
  722. package/dist/core/entities/session/service.mjs.map +1 -1
  723. package/dist/core/entities/session/types.d.ts +2 -2
  724. package/dist/core/entities/trust-anchor/index.d.ts +1 -0
  725. package/dist/core/entities/trust-anchor/index.d.ts.map +1 -1
  726. package/dist/core/entities/trust-anchor/index.mjs +2 -1
  727. package/dist/core/entities/trust-anchor/schema.d.ts +3 -0
  728. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -0
  729. package/dist/core/entities/trust-anchor/schema.mjs +43 -0
  730. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -0
  731. package/dist/core/entities/trust-anchor/service.d.ts +2 -2
  732. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
  733. package/dist/core/entities/trust-anchor/service.mjs +23 -7
  734. package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
  735. package/dist/core/entities/trust-anchor/types.d.ts +9 -1
  736. package/dist/core/entities/trust-anchor/types.d.ts.map +1 -1
  737. package/dist/core/entities/user/index.d.ts +1 -0
  738. package/dist/core/entities/user/index.d.ts.map +1 -1
  739. package/dist/core/entities/user/index.mjs +2 -1
  740. package/dist/core/entities/user/schema.d.ts +3 -0
  741. package/dist/core/entities/user/schema.d.ts.map +1 -0
  742. package/dist/core/entities/user/schema.mjs +50 -0
  743. package/dist/core/entities/user/schema.mjs.map +1 -0
  744. package/dist/core/entities/user/service.d.ts.map +1 -1
  745. package/dist/core/entities/user/service.mjs +33 -12
  746. package/dist/core/entities/user/service.mjs.map +1 -1
  747. package/dist/core/entities/user/types.d.ts +2 -1
  748. package/dist/core/entities/user/types.d.ts.map +1 -1
  749. package/dist/core/entities/user-attribute/index.d.ts +1 -0
  750. package/dist/core/entities/user-attribute/index.d.ts.map +1 -1
  751. package/dist/core/entities/user-attribute/index.mjs +2 -1
  752. package/dist/core/entities/user-attribute/schema.d.ts +3 -0
  753. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -0
  754. package/dist/core/entities/user-attribute/schema.mjs +47 -0
  755. package/dist/core/entities/user-attribute/schema.mjs.map +1 -0
  756. package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
  757. package/dist/core/entities/user-attribute/service.mjs +26 -10
  758. package/dist/core/entities/user-attribute/service.mjs.map +1 -1
  759. package/dist/core/entities/user-authenticator/index.d.ts +1 -0
  760. package/dist/core/entities/user-authenticator/index.d.ts.map +1 -1
  761. package/dist/core/entities/user-authenticator/index.mjs +2 -1
  762. package/dist/core/entities/user-authenticator/schema.d.ts +3 -0
  763. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -0
  764. package/dist/core/entities/user-authenticator/schema.mjs +47 -0
  765. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -0
  766. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
  767. package/dist/core/entities/user-authenticator/service.mjs +49 -27
  768. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  769. package/dist/core/entities/user-authenticator/types.d.ts +4 -3
  770. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
  771. package/dist/core/entities/user-authenticator/types.mjs +2 -2
  772. package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
  773. package/dist/core/entities/user-permission/index.d.ts +1 -0
  774. package/dist/core/entities/user-permission/index.d.ts.map +1 -1
  775. package/dist/core/entities/user-permission/index.mjs +2 -1
  776. package/dist/core/entities/user-permission/schema.d.ts +3 -0
  777. package/dist/core/entities/user-permission/schema.d.ts.map +1 -0
  778. package/dist/core/entities/user-permission/schema.mjs +41 -0
  779. package/dist/core/entities/user-permission/schema.mjs.map +1 -0
  780. package/dist/core/entities/user-permission/service.d.ts +1 -1
  781. package/dist/core/entities/user-permission/service.d.ts.map +1 -1
  782. package/dist/core/entities/user-permission/service.mjs +24 -18
  783. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  784. package/dist/core/entities/user-role/index.d.ts +1 -0
  785. package/dist/core/entities/user-role/index.d.ts.map +1 -1
  786. package/dist/core/entities/user-role/index.mjs +2 -1
  787. package/dist/core/entities/user-role/schema.d.ts +3 -0
  788. package/dist/core/entities/user-role/schema.d.ts.map +1 -0
  789. package/dist/core/entities/user-role/schema.mjs +39 -0
  790. package/dist/core/entities/user-role/schema.mjs.map +1 -0
  791. package/dist/core/entities/user-role/service.d.ts +1 -1
  792. package/dist/core/entities/user-role/service.d.ts.map +1 -1
  793. package/dist/core/entities/user-role/service.mjs +14 -8
  794. package/dist/core/entities/user-role/service.mjs.map +1 -1
  795. package/dist/core/identity/entities/index.d.ts +0 -1
  796. package/dist/core/identity/entities/index.d.ts.map +1 -1
  797. package/dist/core/identity/password-recovery/service.mjs +21 -21
  798. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  799. package/dist/core/identity/password-recovery/types.d.ts +2 -2
  800. package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
  801. package/dist/core/identity/permission/checker/service.mjs +2 -2
  802. package/dist/core/identity/permission/checker/service.mjs.map +1 -1
  803. package/dist/core/identity/permission/identity-policy-data.mjs +2 -2
  804. package/dist/core/identity/permission/identity-policy-data.mjs.map +1 -1
  805. package/dist/core/identity/permission/junction-grant.d.ts +6 -6
  806. package/dist/core/identity/permission/junction-grant.mjs +14 -14
  807. package/dist/core/identity/permission/junction-grant.mjs.map +1 -1
  808. package/dist/core/identity/permission/module.d.ts +0 -3
  809. package/dist/core/identity/permission/module.d.ts.map +1 -1
  810. package/dist/core/identity/permission/module.mjs +9 -15
  811. package/dist/core/identity/permission/module.mjs.map +1 -1
  812. package/dist/core/identity/permission/types.d.ts +0 -2
  813. package/dist/core/identity/permission/types.d.ts.map +1 -1
  814. package/dist/core/identity/policy/checker/service.mjs +1 -1
  815. package/dist/core/identity/policy/checker/service.mjs.map +1 -1
  816. package/dist/core/identity/provider/account/module.mjs +9 -9
  817. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  818. package/dist/core/identity/provider/authentication/presets/facebook.mjs +5 -5
  819. package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
  820. package/dist/core/identity/provider/authentication/presets/github.mjs +3 -3
  821. package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
  822. package/dist/core/identity/provider/authentication/presets/google.mjs +5 -5
  823. package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
  824. package/dist/core/identity/provider/authentication/presets/instagram.mjs +3 -3
  825. package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
  826. package/dist/core/identity/provider/authentication/presets/paypal.mjs +3 -3
  827. package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
  828. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs +20 -20
  829. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs.map +1 -1
  830. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +5 -5
  831. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  832. package/dist/core/identity/provider/mapper/attributes/module.mjs +3 -3
  833. package/dist/core/identity/provider/mapper/attributes/module.mjs.map +1 -1
  834. package/dist/core/identity/provider/mapper/base.mjs +2 -2
  835. package/dist/core/identity/provider/mapper/base.mjs.map +1 -1
  836. package/dist/core/identity/provider/mapper/permission/module.mjs +2 -2
  837. package/dist/core/identity/provider/mapper/permission/module.mjs.map +1 -1
  838. package/dist/core/identity/provider/mapper/role/module.mjs +2 -2
  839. package/dist/core/identity/provider/mapper/role/module.mjs.map +1 -1
  840. package/dist/core/identity/registration/service.mjs +9 -9
  841. package/dist/core/identity/registration/service.mjs.map +1 -1
  842. package/dist/core/identity/resolver/module.d.ts +1 -3
  843. package/dist/core/identity/resolver/module.d.ts.map +1 -1
  844. package/dist/core/identity/resolver/module.mjs +0 -13
  845. package/dist/core/identity/resolver/module.mjs.map +1 -1
  846. package/dist/core/identity/resolver/types.d.ts +1 -2
  847. package/dist/core/identity/resolver/types.d.ts.map +1 -1
  848. package/dist/core/identity/role/module.d.ts +0 -2
  849. package/dist/core/identity/role/module.d.ts.map +1 -1
  850. package/dist/core/identity/role/module.mjs +1 -4
  851. package/dist/core/identity/role/module.mjs.map +1 -1
  852. package/dist/core/identity/role/types.d.ts +0 -2
  853. package/dist/core/identity/role/types.d.ts.map +1 -1
  854. package/dist/core/index.d.ts +1 -0
  855. package/dist/core/index.d.ts.map +1 -1
  856. package/dist/core/index.mjs +28 -9
  857. package/dist/core/key/realm-cipher.mjs +5 -5
  858. package/dist/core/key/realm-cipher.mjs.map +1 -1
  859. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +3 -3
  860. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  861. package/dist/core/oauth2/authorization/helpers.d.ts +2 -2
  862. package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
  863. package/dist/core/oauth2/authorization/helpers.mjs +5 -5
  864. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  865. package/dist/core/oauth2/authorization/module.mjs +8 -8
  866. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  867. package/dist/core/oauth2/client/authenticator.d.ts +1 -1
  868. package/dist/core/oauth2/client/authenticator.d.ts.map +1 -1
  869. package/dist/core/oauth2/client/authenticator.mjs +3 -3
  870. package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
  871. package/dist/core/oauth2/client/grant-type.d.ts +1 -1
  872. package/dist/core/oauth2/client/grant-type.d.ts.map +1 -1
  873. package/dist/core/oauth2/client/grant-type.mjs +2 -2
  874. package/dist/core/oauth2/client/grant-type.mjs.map +1 -1
  875. package/dist/core/oauth2/end-session/service.mjs +5 -5
  876. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  877. package/dist/core/oauth2/grant-types/authorize.mjs +9 -9
  878. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  879. package/dist/core/oauth2/grant-types/client-credentials.mjs +7 -7
  880. package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
  881. package/dist/core/oauth2/grant-types/identity.mjs +10 -10
  882. package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
  883. package/dist/core/oauth2/grant-types/index.d.ts +0 -1
  884. package/dist/core/oauth2/grant-types/index.d.ts.map +1 -1
  885. package/dist/core/oauth2/grant-types/index.mjs +1 -2
  886. package/dist/core/oauth2/grant-types/password.d.ts +1 -1
  887. package/dist/core/oauth2/grant-types/password.mjs +13 -13
  888. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  889. package/dist/core/oauth2/grant-types/refresh-token.mjs +12 -12
  890. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  891. package/dist/core/oauth2/index.mjs +1 -2
  892. package/dist/core/oauth2/mfa-login/module.mjs +21 -21
  893. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
  894. package/dist/core/oauth2/mfa-login/types.d.ts +1 -1
  895. package/dist/core/oauth2/openid/claims.d.ts +1 -3
  896. package/dist/core/oauth2/openid/claims.d.ts.map +1 -1
  897. package/dist/core/oauth2/openid/claims.mjs +6 -19
  898. package/dist/core/oauth2/openid/claims.mjs.map +1 -1
  899. package/dist/core/oauth2/scope/resolver.d.ts +1 -3
  900. package/dist/core/oauth2/scope/resolver.d.ts.map +1 -1
  901. package/dist/core/oauth2/scope/resolver.mjs +9 -31
  902. package/dist/core/oauth2/scope/resolver.mjs.map +1 -1
  903. package/dist/core/oauth2/session-token/types.d.ts +8 -8
  904. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  905. package/dist/core/oauth2/token/issuer/access/module.mjs +7 -7
  906. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  907. package/dist/core/oauth2/token/issuer/refresh/module.mjs +5 -5
  908. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  909. package/dist/core/oauth2/token/signer/module.mjs +6 -6
  910. package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
  911. package/dist/core/oauth2/token/verifier/module.mjs +8 -8
  912. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  913. package/dist/core/provisioning/entities/index.d.ts +0 -1
  914. package/dist/core/provisioning/entities/index.d.ts.map +1 -1
  915. package/dist/core/provisioning/entities/index.mjs +1 -3
  916. package/dist/core/provisioning/entities/policy/validator.d.ts +2 -0
  917. package/dist/core/provisioning/entities/policy/validator.d.ts.map +1 -1
  918. package/dist/core/provisioning/entities/policy/validator.mjs +10 -1
  919. package/dist/core/provisioning/entities/policy/validator.mjs.map +1 -1
  920. package/dist/core/provisioning/entities/realm/relations-validator.d.ts.map +1 -1
  921. package/dist/core/provisioning/entities/realm/relations-validator.mjs +0 -4
  922. package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
  923. package/dist/core/provisioning/entities/realm/types.d.ts +0 -2
  924. package/dist/core/provisioning/entities/realm/types.d.ts.map +1 -1
  925. package/dist/core/provisioning/entities/role/types.d.ts +2 -2
  926. package/dist/core/provisioning/index.mjs +1 -3
  927. package/dist/core/provisioning/synchronizer/client/module.mjs +11 -11
  928. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  929. package/dist/core/provisioning/synchronizer/entity-resolver.mjs +12 -12
  930. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  931. package/dist/core/provisioning/synchronizer/index.d.ts +0 -1
  932. package/dist/core/provisioning/synchronizer/index.d.ts.map +1 -1
  933. package/dist/core/provisioning/synchronizer/index.mjs +1 -3
  934. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts +2 -2
  935. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts.map +1 -1
  936. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs +2 -2
  937. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs.map +1 -1
  938. package/dist/core/provisioning/synchronizer/permission/module.mjs +8 -8
  939. package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
  940. package/dist/core/provisioning/synchronizer/policy/module.mjs +11 -11
  941. package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
  942. package/dist/core/provisioning/synchronizer/realm/module.d.ts +0 -2
  943. package/dist/core/provisioning/synchronizer/realm/module.d.ts.map +1 -1
  944. package/dist/core/provisioning/synchronizer/realm/module.mjs +5 -15
  945. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  946. package/dist/core/provisioning/synchronizer/realm/types.d.ts +0 -2
  947. package/dist/core/provisioning/synchronizer/realm/types.d.ts.map +1 -1
  948. package/dist/core/provisioning/synchronizer/role/module.mjs +7 -7
  949. package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
  950. package/dist/core/provisioning/synchronizer/scope/module.mjs +1 -1
  951. package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
  952. package/dist/core/provisioning/synchronizer/user/module.mjs +13 -13
  953. package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
  954. package/dist/core/query/index.d.ts +4 -0
  955. package/dist/core/query/index.d.ts.map +1 -0
  956. package/dist/core/query/index.mjs +6 -0
  957. package/dist/core/query/module.d.ts +60 -0
  958. package/dist/core/query/module.d.ts.map +1 -0
  959. package/dist/core/query/module.mjs +128 -0
  960. package/dist/core/query/module.mjs.map +1 -0
  961. package/dist/core/query/relations.d.ts +39 -0
  962. package/dist/core/query/relations.d.ts.map +1 -0
  963. package/dist/core/query/relations.mjs +103 -0
  964. package/dist/core/query/relations.mjs.map +1 -0
  965. package/dist/core/query/types.d.ts +39 -0
  966. package/dist/core/query/types.d.ts.map +1 -0
  967. package/dist/core/security/policy/evaluator.d.ts +1 -0
  968. package/dist/core/security/policy/evaluator.d.ts.map +1 -1
  969. package/dist/core/security/policy/evaluator.mjs +52 -5
  970. package/dist/core/security/policy/evaluator.mjs.map +1 -1
  971. package/dist/index.mjs +1 -17
  972. package/dist/swagger.json +2552 -3798
  973. package/dist/ui/client/.vite/ssr-manifest.json +1542 -894
  974. package/dist/ui/client/assets/{index-CT0Nq5pA.js → index-BmJ2X468.js} +21 -18
  975. package/dist/ui/client/assets/{index-BmWsoQro.css → index-DiOvW76Q.css} +1 -1
  976. package/dist/ui/client/index.html +2 -2
  977. package/dist/ui/server/server.js +9810 -3361
  978. package/package.json +27 -22
  979. package/dist/adapters/database/domains/robot/entity.d.ts +0 -19
  980. package/dist/adapters/database/domains/robot/entity.d.ts.map +0 -1
  981. package/dist/adapters/database/domains/robot/entity.mjs +0 -112
  982. package/dist/adapters/database/domains/robot/entity.mjs.map +0 -1
  983. package/dist/adapters/database/domains/robot/index.d.ts +0 -3
  984. package/dist/adapters/database/domains/robot/index.d.ts.map +0 -1
  985. package/dist/adapters/database/domains/robot/index.mjs +0 -6
  986. package/dist/adapters/database/domains/robot/subscriber.d.ts +0 -6
  987. package/dist/adapters/database/domains/robot/subscriber.d.ts.map +0 -1
  988. package/dist/adapters/database/domains/robot/subscriber.mjs +0 -42
  989. package/dist/adapters/database/domains/robot/subscriber.mjs.map +0 -1
  990. package/dist/adapters/database/domains/robot-permission/entity.d.ts +0 -18
  991. package/dist/adapters/database/domains/robot-permission/entity.d.ts.map +0 -1
  992. package/dist/adapters/database/domains/robot-permission/entity.mjs +0 -91
  993. package/dist/adapters/database/domains/robot-permission/entity.mjs.map +0 -1
  994. package/dist/adapters/database/domains/robot-permission/index.d.ts +0 -3
  995. package/dist/adapters/database/domains/robot-permission/index.d.ts.map +0 -1
  996. package/dist/adapters/database/domains/robot-permission/index.mjs +0 -6
  997. package/dist/adapters/database/domains/robot-permission/subscriber.d.ts +0 -6
  998. package/dist/adapters/database/domains/robot-permission/subscriber.d.ts.map +0 -1
  999. package/dist/adapters/database/domains/robot-permission/subscriber.mjs +0 -45
  1000. package/dist/adapters/database/domains/robot-permission/subscriber.mjs.map +0 -1
  1001. package/dist/adapters/database/domains/robot-role/entity.d.ts +0 -15
  1002. package/dist/adapters/database/domains/robot-role/entity.d.ts.map +0 -1
  1003. package/dist/adapters/database/domains/robot-role/entity.mjs +0 -72
  1004. package/dist/adapters/database/domains/robot-role/entity.mjs.map +0 -1
  1005. package/dist/adapters/database/domains/robot-role/index.d.ts +0 -3
  1006. package/dist/adapters/database/domains/robot-role/index.d.ts.map +0 -1
  1007. package/dist/adapters/database/domains/robot-role/index.mjs +0 -6
  1008. package/dist/adapters/database/domains/robot-role/subscriber.d.ts +0 -6
  1009. package/dist/adapters/database/domains/robot-role/subscriber.d.ts.map +0 -1
  1010. package/dist/adapters/database/domains/robot-role/subscriber.mjs +0 -45
  1011. package/dist/adapters/database/domains/robot-role/subscriber.mjs.map +0 -1
  1012. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts +0 -12
  1013. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts.map +0 -1
  1014. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs +0 -27
  1015. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +0 -1
  1016. package/dist/adapters/http/controllers/entities/robot/index.d.ts +0 -2
  1017. package/dist/adapters/http/controllers/entities/robot/index.d.ts.map +0 -1
  1018. package/dist/adapters/http/controllers/entities/robot/index.mjs +0 -5
  1019. package/dist/adapters/http/controllers/entities/robot/module.d.ts +0 -25
  1020. package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +0 -1
  1021. package/dist/adapters/http/controllers/entities/robot/module.mjs +0 -180
  1022. package/dist/adapters/http/controllers/entities/robot/module.mjs.map +0 -1
  1023. package/dist/adapters/http/controllers/entities/robot-permission/index.d.ts +0 -3
  1024. package/dist/adapters/http/controllers/entities/robot-permission/index.d.ts.map +0 -1
  1025. package/dist/adapters/http/controllers/entities/robot-permission/index.mjs +0 -7
  1026. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts +0 -17
  1027. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts.map +0 -1
  1028. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +0 -114
  1029. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +0 -1
  1030. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.d.ts +0 -2
  1031. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.d.ts.map +0 -1
  1032. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.mjs +0 -5
  1033. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.d.ts +0 -6
  1034. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.d.ts.map +0 -1
  1035. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs +0 -21
  1036. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs.map +0 -1
  1037. package/dist/adapters/http/controllers/entities/robot-role/index.d.ts +0 -3
  1038. package/dist/adapters/http/controllers/entities/robot-role/index.d.ts.map +0 -1
  1039. package/dist/adapters/http/controllers/entities/robot-role/index.mjs +0 -7
  1040. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts +0 -16
  1041. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts.map +0 -1
  1042. package/dist/adapters/http/controllers/entities/robot-role/module.mjs +0 -95
  1043. package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +0 -1
  1044. package/dist/adapters/http/controllers/entities/robot-role/utils/index.d.ts +0 -2
  1045. package/dist/adapters/http/controllers/entities/robot-role/utils/index.d.ts.map +0 -1
  1046. package/dist/adapters/http/controllers/entities/robot-role/utils/index.mjs +0 -5
  1047. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.d.ts +0 -6
  1048. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.d.ts.map +0 -1
  1049. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs +0 -20
  1050. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs.map +0 -1
  1051. package/dist/app/modules/database/repositories/robot/index.d.ts +0 -2
  1052. package/dist/app/modules/database/repositories/robot/index.d.ts.map +0 -1
  1053. package/dist/app/modules/database/repositories/robot/index.mjs +0 -5
  1054. package/dist/app/modules/database/repositories/robot/repository.d.ts +0 -31
  1055. package/dist/app/modules/database/repositories/robot/repository.d.ts.map +0 -1
  1056. package/dist/app/modules/database/repositories/robot/repository.mjs +0 -190
  1057. package/dist/app/modules/database/repositories/robot/repository.mjs.map +0 -1
  1058. package/dist/app/modules/database/repositories/robot-permission/index.d.ts +0 -2
  1059. package/dist/app/modules/database/repositories/robot-permission/index.d.ts.map +0 -1
  1060. package/dist/app/modules/database/repositories/robot-permission/index.mjs +0 -5
  1061. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts +0 -20
  1062. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts.map +0 -1
  1063. package/dist/app/modules/database/repositories/robot-permission/repository.mjs +0 -79
  1064. package/dist/app/modules/database/repositories/robot-permission/repository.mjs.map +0 -1
  1065. package/dist/app/modules/database/repositories/robot-role/index.d.ts +0 -2
  1066. package/dist/app/modules/database/repositories/robot-role/index.d.ts.map +0 -1
  1067. package/dist/app/modules/database/repositories/robot-role/index.mjs +0 -5
  1068. package/dist/app/modules/database/repositories/robot-role/repository.d.ts +0 -20
  1069. package/dist/app/modules/database/repositories/robot-role/repository.d.ts.map +0 -1
  1070. package/dist/app/modules/database/repositories/robot-role/repository.mjs +0 -79
  1071. package/dist/app/modules/database/repositories/robot-role/repository.mjs.map +0 -1
  1072. package/dist/app/modules/identity/repositories/robot.d.ts +0 -13
  1073. package/dist/app/modules/identity/repositories/robot.d.ts.map +0 -1
  1074. package/dist/app/modules/identity/repositories/robot.mjs +0 -47
  1075. package/dist/app/modules/identity/repositories/robot.mjs.map +0 -1
  1076. package/dist/core/authentication/credential/entities/robot/index.d.ts +0 -2
  1077. package/dist/core/authentication/credential/entities/robot/index.d.ts.map +0 -1
  1078. package/dist/core/authentication/credential/entities/robot/index.mjs +0 -5
  1079. package/dist/core/authentication/credential/entities/robot/module.d.ts +0 -8
  1080. package/dist/core/authentication/credential/entities/robot/module.d.ts.map +0 -1
  1081. package/dist/core/authentication/credential/entities/robot/module.mjs +0 -22
  1082. package/dist/core/authentication/credential/entities/robot/module.mjs.map +0 -1
  1083. package/dist/core/authentication/entities/robot/index.d.ts +0 -2
  1084. package/dist/core/authentication/entities/robot/index.d.ts.map +0 -1
  1085. package/dist/core/authentication/entities/robot/index.mjs +0 -5
  1086. package/dist/core/authentication/entities/robot/module.d.ts +0 -11
  1087. package/dist/core/authentication/entities/robot/module.d.ts.map +0 -1
  1088. package/dist/core/authentication/entities/robot/module.mjs +0 -29
  1089. package/dist/core/authentication/entities/robot/module.mjs.map +0 -1
  1090. package/dist/core/entities/robot/index.d.ts +0 -3
  1091. package/dist/core/entities/robot/index.d.ts.map +0 -1
  1092. package/dist/core/entities/robot/index.mjs +0 -5
  1093. package/dist/core/entities/robot/service.d.ts +0 -28
  1094. package/dist/core/entities/robot/service.d.ts.map +0 -1
  1095. package/dist/core/entities/robot/service.mjs +0 -201
  1096. package/dist/core/entities/robot/service.mjs.map +0 -1
  1097. package/dist/core/entities/robot/types.d.ts +0 -24
  1098. package/dist/core/entities/robot/types.d.ts.map +0 -1
  1099. package/dist/core/entities/robot/types.mjs +0 -4
  1100. package/dist/core/entities/robot-permission/index.d.ts +0 -3
  1101. package/dist/core/entities/robot-permission/index.d.ts.map +0 -1
  1102. package/dist/core/entities/robot-permission/index.mjs +0 -5
  1103. package/dist/core/entities/robot-permission/service.d.ts +0 -25
  1104. package/dist/core/entities/robot-permission/service.d.ts.map +0 -1
  1105. package/dist/core/entities/robot-permission/service.mjs +0 -137
  1106. package/dist/core/entities/robot-permission/service.mjs.map +0 -1
  1107. package/dist/core/entities/robot-permission/types.d.ts +0 -12
  1108. package/dist/core/entities/robot-permission/types.d.ts.map +0 -1
  1109. package/dist/core/entities/robot-role/index.d.ts +0 -3
  1110. package/dist/core/entities/robot-role/index.d.ts.map +0 -1
  1111. package/dist/core/entities/robot-role/index.mjs +0 -5
  1112. package/dist/core/entities/robot-role/service.d.ts +0 -22
  1113. package/dist/core/entities/robot-role/service.d.ts.map +0 -1
  1114. package/dist/core/entities/robot-role/service.mjs +0 -90
  1115. package/dist/core/entities/robot-role/service.mjs.map +0 -1
  1116. package/dist/core/entities/robot-role/types.d.ts +0 -11
  1117. package/dist/core/entities/robot-role/types.d.ts.map +0 -1
  1118. package/dist/core/entities/robot-role/types.mjs +0 -4
  1119. package/dist/core/identity/entities/robot/index.d.ts +0 -2
  1120. package/dist/core/identity/entities/robot/index.d.ts.map +0 -1
  1121. package/dist/core/identity/entities/robot/types.d.ts +0 -8
  1122. package/dist/core/identity/entities/robot/types.d.ts.map +0 -1
  1123. package/dist/core/identity/entities/robot/types.mjs +0 -4
  1124. package/dist/core/oauth2/grant-types/robot-credentials.d.ts +0 -8
  1125. package/dist/core/oauth2/grant-types/robot-credentials.d.ts.map +0 -1
  1126. package/dist/core/oauth2/grant-types/robot-credentials.mjs +0 -39
  1127. package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +0 -1
  1128. package/dist/core/provisioning/entities/robot/index.d.ts +0 -3
  1129. package/dist/core/provisioning/entities/robot/index.d.ts.map +0 -1
  1130. package/dist/core/provisioning/entities/robot/index.mjs +0 -5
  1131. package/dist/core/provisioning/entities/robot/relations-validator.d.ts +0 -6
  1132. package/dist/core/provisioning/entities/robot/relations-validator.d.ts.map +0 -1
  1133. package/dist/core/provisioning/entities/robot/relations-validator.mjs +0 -20
  1134. package/dist/core/provisioning/entities/robot/relations-validator.mjs.map +0 -1
  1135. package/dist/core/provisioning/entities/robot/types.d.ts +0 -25
  1136. package/dist/core/provisioning/entities/robot/types.d.ts.map +0 -1
  1137. package/dist/core/provisioning/entities/robot/types.mjs +0 -4
  1138. package/dist/core/provisioning/entities/robot/validator.d.ts +0 -6
  1139. package/dist/core/provisioning/entities/robot/validator.d.ts.map +0 -1
  1140. package/dist/core/provisioning/entities/robot/validator.mjs +0 -24
  1141. package/dist/core/provisioning/entities/robot/validator.mjs.map +0 -1
  1142. package/dist/core/provisioning/synchronizer/robot/index.d.ts +0 -3
  1143. package/dist/core/provisioning/synchronizer/robot/index.d.ts.map +0 -1
  1144. package/dist/core/provisioning/synchronizer/robot/index.mjs +0 -5
  1145. package/dist/core/provisioning/synchronizer/robot/module.d.ts +0 -17
  1146. package/dist/core/provisioning/synchronizer/robot/module.d.ts.map +0 -1
  1147. package/dist/core/provisioning/synchronizer/robot/module.mjs +0 -72
  1148. package/dist/core/provisioning/synchronizer/robot/module.mjs.map +0 -1
  1149. package/dist/core/provisioning/synchronizer/robot/types.d.ts +0 -9
  1150. package/dist/core/provisioning/synchronizer/robot/types.d.ts.map +0 -1
  1151. package/dist/core/provisioning/synchronizer/robot/types.mjs +0 -4
  1152. /package/dist/core/{entities/robot-permission → query}/types.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["OAuth2GrantTypeError","OAuth2RequestError","OAuth2TokenGrant","DContext","DController","DGet","DPost","DTags","buildPermissionKey","toOAuth2Error","OAuth2OpenIDClaimsBuilder","HTTPClientCredentialsGrant","HTTPOAuth2AuthorizeGrant","HTTPOAuth2RefreshTokenGrant","HTTPPasswordGrant","HTTPRobotCredentialsGrant","guessOauth2GrantTypeByRequest","extractTokenFromRequest","TokenController","refreshTokenIssuer","accessTokenIssuer","tokenVerifier","tokenRevoker","identityResolver","identityPermissionProvider","metrics","tokenGrants","ctx","AUTHORIZATION_CODE","codeVerifier","clientAuthenticator","oauth2ClientAuthenticator","openIdTokenIssuer","keyStore","sessionManager","realmRepository","accessPolicyEvaluator","certificateSource","CLIENT_CREDENTIALS","ROBOT_CREDENTIALS","authenticator","robotAuthenticator","PASSWORD","userAuthenticator","eventService","loginThrottleService","userAuthenticatorService","mfaLoginService","logger","REFRESH_TOKEN","tokenRepository","sessionTokenRepository","options","gracePeriod","tokenRefreshGracePeriod","getIntrospect","event","postIntrospect","token","payload","verify","skipActiveCheck","sub","sub_kind","identityInvalid","permissions","getFor","id","type","clientId","client_id","realmId","realm_id","identity","resolve","claimsBuilder","claims","fromIdentity","active","jti","isInactive","Object","values","reduce","acc","binding","key","permission","name","e","revokeToken","ignoreExpiry","revoke","response","status","createToken","grantType","unsupported","grant","runWithRequest","recordTokenGrant"],"sources":["../../../../../../src/adapters/http/controllers/workflows/token/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { OAuth2TokenGrantResponse, OAuth2TokenIntrospectionResponse, OAuth2TokenPermission } from '@authup/specs';\nimport { OAuth2GrantTypeError, OAuth2RequestError, OAuth2TokenGrant } from '@authup/specs';\nimport {\n DContext,\n DController,\n DGet,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { buildPermissionKey } from '@authup/access';\nimport { toOAuth2Error } from '../../../../../core/oauth2/helpers/index.ts';\nimport type { TokenControllerContext } from './types.ts';\nimport type {\n IAuthFlowMetrics,\n IIdentityPermissionProvider,\n IIdentityResolver,\n IOAuth2TokenIssuer,\n IOAuth2TokenRevoker,\n IOAuth2TokenVerifier,\n} from '../../../../../core/index.ts';\nimport { OAuth2OpenIDClaimsBuilder } from '../../../../../core/index.ts';\nimport type { IHTTPOAuth2Grant } from '../../../adapters/index.ts';\nimport {\n HTTPClientCredentialsGrant,\n HTTPOAuth2AuthorizeGrant,\n HTTPOAuth2RefreshTokenGrant,\n HTTPPasswordGrant,\n HTTPRobotCredentialsGrant,\n guessOauth2GrantTypeByRequest,\n} from '../../../adapters/index.ts';\nimport { extractTokenFromRequest } from './utils/index.ts';\n\n@DTags('auth')\n@DController('/token')\nexport class TokenController {\n protected refreshTokenIssuer: IOAuth2TokenIssuer;\n\n protected accessTokenIssuer: IOAuth2TokenIssuer;\n\n protected tokenVerifier: IOAuth2TokenVerifier;\n\n protected tokenRevoker: IOAuth2TokenRevoker;\n\n protected identityResolver : IIdentityResolver;\n\n protected identityPermissionProvider : IIdentityPermissionProvider;\n\n protected metrics? : IAuthFlowMetrics;\n\n protected tokenGrants : Record<`${OAuth2TokenGrant}`, IHTTPOAuth2Grant>;\n\n // -------------------------------------------\n\n constructor(ctx: TokenControllerContext) {\n this.refreshTokenIssuer = ctx.refreshTokenIssuer;\n this.accessTokenIssuer = ctx.accessTokenIssuer;\n this.tokenVerifier = ctx.tokenVerifier;\n this.tokenRevoker = ctx.tokenRevoker;\n this.identityResolver = ctx.identityResolver;\n this.identityPermissionProvider = ctx.identityPermissionProvider;\n this.metrics = ctx.metrics;\n\n this.tokenGrants = {\n [OAuth2TokenGrant.AUTHORIZATION_CODE]: new HTTPOAuth2AuthorizeGrant({\n codeVerifier: ctx.codeVerifier,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n openIdTokenIssuer: ctx.openIdTokenIssuer,\n keyStore: ctx.keyStore,\n sessionManager: ctx.sessionManager,\n realmRepository: ctx.realmRepository,\n accessPolicyEvaluator: ctx.accessPolicyEvaluator,\n certificateSource: ctx.certificateSource,\n }),\n [OAuth2TokenGrant.CLIENT_CREDENTIALS]: new HTTPClientCredentialsGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n sessionManager: ctx.sessionManager,\n certificateSource: ctx.certificateSource,\n }),\n [OAuth2TokenGrant.ROBOT_CREDENTIALS]: new HTTPRobotCredentialsGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n authenticator: ctx.robotAuthenticator,\n sessionManager: ctx.sessionManager,\n }),\n [OAuth2TokenGrant.PASSWORD]: new HTTPPasswordGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n authenticator: ctx.userAuthenticator,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n sessionManager: ctx.sessionManager,\n realmRepository: ctx.realmRepository,\n eventService: ctx.eventService,\n metrics: ctx.metrics,\n loginThrottleService: ctx.loginThrottleService,\n userAuthenticatorService: ctx.userAuthenticatorService,\n mfaLoginService: ctx.mfaLoginService,\n logger: ctx.logger,\n certificateSource: ctx.certificateSource,\n }),\n [OAuth2TokenGrant.REFRESH_TOKEN]: new HTTPOAuth2RefreshTokenGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n tokenVerifier: ctx.tokenVerifier,\n tokenRepository: ctx.tokenRepository,\n sessionTokenRepository: ctx.sessionTokenRepository,\n sessionManager: ctx.sessionManager,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n realmRepository: ctx.realmRepository,\n eventService: ctx.eventService,\n metrics: ctx.metrics,\n logger: ctx.logger,\n options: { gracePeriod: ctx.tokenRefreshGracePeriod },\n certificateSource: ctx.certificateSource,\n }),\n };\n }\n\n // -------------------------------------------\n\n @DGet('/introspect', [])\n async getIntrospect(@DContext() event: IAppEvent): Promise<OAuth2TokenIntrospectionResponse> {\n return this.postIntrospect(event);\n }\n\n @DPost('/introspect', [])\n async postIntrospect(\n @DContext() event: IAppEvent,\n ): Promise<OAuth2TokenIntrospectionResponse> {\n try {\n const token = await extractTokenFromRequest(event);\n const payload = await this.tokenVerifier.verify(token, { skipActiveCheck: true });\n if (!payload.sub || !payload.sub_kind) {\n throw OAuth2RequestError.identityInvalid();\n }\n\n // todo: only receive client specific permissions\n const permissions = await this.identityPermissionProvider.getFor({\n id: payload.sub,\n type: payload.sub_kind,\n clientId: payload.client_id,\n realmId: payload.realm_id,\n });\n\n const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);\n if (!identity) {\n // todo: differentiate between client, robot & user\n throw OAuth2RequestError.identityInvalid();\n }\n\n const claimsBuilder = new OAuth2OpenIDClaimsBuilder();\n const claims = claimsBuilder.fromIdentity(identity);\n\n let active : boolean;\n if (payload.jti) {\n const isInactive = await this.tokenVerifier.isInactive(payload.jti);\n active = !isInactive;\n } else {\n active = false;\n }\n\n return {\n active,\n // todo: permissions property should be removed.\n permissions: Object.values(\n permissions.reduce((acc, binding) => {\n const key = buildPermissionKey(binding.permission);\n if (!acc[key]) {\n acc[key] = {\n name: binding.permission.name,\n client_id: binding.permission.client_id,\n realm_id: binding.permission.realm_id,\n } as OAuth2TokenPermission;\n }\n return acc;\n }, {} as Record<string, OAuth2TokenPermission>),\n ),\n ...payload,\n ...claims,\n };\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('/revoke', [])\n async revokeToken(\n @DContext() event: IAppEvent,\n ): Promise<null> {\n try {\n const token = await extractTokenFromRequest(event);\n\n // RFC 7009 §2.2: revoking an invalid token — here one that is expired\n // or already inactive — MUST still succeed. The client cannot act on\n // an error, and the token's invalidation (the point of the request)\n // is already achieved. Signature + kind still anchor the token, so a\n // forged/garbage token is rejected; `ignoreExpiry` additionally keeps\n // this exp-bypass out of the shared claims cache (see\n // OAuth2TokenVerifier). Without this, revoking a stale refresh token\n // threw `expired_token`, so the caller's revoke-then-clear-cookie\n // flow aborted, the durable row was never soft-revoked, and the stale\n // refresh cookie survived into the next login.\n const payload = await this.tokenVerifier.verify(token, {\n ignoreExpiry: true,\n skipActiveCheck: true,\n });\n\n await this.tokenRevoker.revoke(payload);\n\n event.response.status = 202;\n return null;\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('', [])\n async createToken(@DContext() event: IAppEvent): Promise<OAuth2TokenGrantResponse> {\n const grantType = await guessOauth2GrantTypeByRequest(event);\n if (!grantType) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n const grant = this.tokenGrants[grantType];\n if (!grant) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n const response = await grant.runWithRequest(event);\n\n this.metrics?.recordTokenGrant(grantType);\n\n return response;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"module.mjs","names":["OAuth2GrantTypeError","OAuth2RequestError","OAuth2TokenGrant","DContext","DController","DGet","DPost","DTags","buildPermissionKey","toOAuth2Error","OAuth2OpenIDClaimsBuilder","HTTPClientCredentialsGrant","HTTPOAuth2AuthorizeGrant","HTTPOAuth2RefreshTokenGrant","HTTPPasswordGrant","guessOauth2GrantTypeByRequest","extractTokenFromRequest","TokenController","refreshTokenIssuer","accessTokenIssuer","tokenVerifier","tokenRevoker","identityResolver","identityPermissionProvider","metrics","tokenGrants","ctx","AUTHORIZATION_CODE","codeVerifier","clientAuthenticator","oauth2ClientAuthenticator","openIdTokenIssuer","keyStore","sessionManager","realmRepository","accessPolicyEvaluator","certificateSource","CLIENT_CREDENTIALS","PASSWORD","authenticator","userAuthenticator","eventService","loginThrottleService","userAuthenticatorService","mfaLoginService","logger","REFRESH_TOKEN","tokenRepository","sessionTokenRepository","options","gracePeriod","tokenRefreshGracePeriod","getIntrospect","event","postIntrospect","token","payload","verify","skipActiveCheck","sub","sub_kind","identityInvalid","permissions","getFor","id","type","clientId","client_id","realmId","realm_id","identity","resolve","claimsBuilder","claims","fromIdentity","active","jti","isInactive","Object","values","reduce","acc","binding","key","permission","name","e","revokeToken","ignoreExpiry","revoke","response","status","createToken","grantType","unsupported","grant","runWithRequest","recordTokenGrant"],"sources":["../../../../../../src/adapters/http/controllers/workflows/token/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { OAuth2TokenGrantResponse, OAuth2TokenIntrospectionResponse, OAuth2TokenPermission } from '@authup/specs';\nimport { OAuth2GrantTypeError, OAuth2RequestError, OAuth2TokenGrant } from '@authup/specs';\nimport {\n DContext,\n DController,\n DGet,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { buildPermissionKey } from '@authup/access';\nimport { toOAuth2Error } from '../../../../../core/oauth2/helpers/index.ts';\nimport type { TokenControllerContext } from './types.ts';\nimport type {\n IAuthFlowMetrics,\n IIdentityPermissionProvider,\n IIdentityResolver,\n IOAuth2TokenIssuer,\n IOAuth2TokenRevoker,\n IOAuth2TokenVerifier,\n} from '../../../../../core/index.ts';\nimport { OAuth2OpenIDClaimsBuilder } from '../../../../../core/index.ts';\nimport type { IHTTPOAuth2Grant } from '../../../adapters/index.ts';\nimport {\n HTTPClientCredentialsGrant,\n HTTPOAuth2AuthorizeGrant,\n HTTPOAuth2RefreshTokenGrant,\n HTTPPasswordGrant,\n guessOauth2GrantTypeByRequest,\n} from '../../../adapters/index.ts';\nimport { extractTokenFromRequest } from './utils/index.ts';\n\n@DTags('auth')\n@DController('/token')\nexport class TokenController {\n protected refreshTokenIssuer: IOAuth2TokenIssuer;\n\n protected accessTokenIssuer: IOAuth2TokenIssuer;\n\n protected tokenVerifier: IOAuth2TokenVerifier;\n\n protected tokenRevoker: IOAuth2TokenRevoker;\n\n protected identityResolver : IIdentityResolver;\n\n protected identityPermissionProvider : IIdentityPermissionProvider;\n\n protected metrics? : IAuthFlowMetrics;\n\n protected tokenGrants : Record<`${OAuth2TokenGrant}`, IHTTPOAuth2Grant>;\n\n // -------------------------------------------\n\n constructor(ctx: TokenControllerContext) {\n this.refreshTokenIssuer = ctx.refreshTokenIssuer;\n this.accessTokenIssuer = ctx.accessTokenIssuer;\n this.tokenVerifier = ctx.tokenVerifier;\n this.tokenRevoker = ctx.tokenRevoker;\n this.identityResolver = ctx.identityResolver;\n this.identityPermissionProvider = ctx.identityPermissionProvider;\n this.metrics = ctx.metrics;\n\n this.tokenGrants = {\n [OAuth2TokenGrant.AUTHORIZATION_CODE]: new HTTPOAuth2AuthorizeGrant({\n codeVerifier: ctx.codeVerifier,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n openIdTokenIssuer: ctx.openIdTokenIssuer,\n keyStore: ctx.keyStore,\n sessionManager: ctx.sessionManager,\n realmRepository: ctx.realmRepository,\n accessPolicyEvaluator: ctx.accessPolicyEvaluator,\n certificateSource: ctx.certificateSource,\n }),\n [OAuth2TokenGrant.CLIENT_CREDENTIALS]: new HTTPClientCredentialsGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n sessionManager: ctx.sessionManager,\n certificateSource: ctx.certificateSource,\n }),\n [OAuth2TokenGrant.PASSWORD]: new HTTPPasswordGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n authenticator: ctx.userAuthenticator,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n sessionManager: ctx.sessionManager,\n realmRepository: ctx.realmRepository,\n eventService: ctx.eventService,\n metrics: ctx.metrics,\n loginThrottleService: ctx.loginThrottleService,\n userAuthenticatorService: ctx.userAuthenticatorService,\n mfaLoginService: ctx.mfaLoginService,\n logger: ctx.logger,\n certificateSource: ctx.certificateSource,\n }),\n [OAuth2TokenGrant.REFRESH_TOKEN]: new HTTPOAuth2RefreshTokenGrant({\n accessTokenIssuer: ctx.accessTokenIssuer,\n refreshTokenIssuer: ctx.refreshTokenIssuer,\n tokenVerifier: ctx.tokenVerifier,\n tokenRepository: ctx.tokenRepository,\n sessionTokenRepository: ctx.sessionTokenRepository,\n sessionManager: ctx.sessionManager,\n clientAuthenticator: ctx.oauth2ClientAuthenticator,\n realmRepository: ctx.realmRepository,\n eventService: ctx.eventService,\n metrics: ctx.metrics,\n logger: ctx.logger,\n options: { gracePeriod: ctx.tokenRefreshGracePeriod },\n certificateSource: ctx.certificateSource,\n }),\n };\n }\n\n // -------------------------------------------\n\n @DGet('/introspect', [])\n async getIntrospect(@DContext() event: IAppEvent): Promise<OAuth2TokenIntrospectionResponse> {\n return this.postIntrospect(event);\n }\n\n @DPost('/introspect', [])\n async postIntrospect(\n @DContext() event: IAppEvent,\n ): Promise<OAuth2TokenIntrospectionResponse> {\n try {\n const token = await extractTokenFromRequest(event);\n const payload = await this.tokenVerifier.verify(token, { skipActiveCheck: true });\n if (!payload.sub || !payload.sub_kind) {\n throw OAuth2RequestError.identityInvalid();\n }\n\n // todo: only receive client specific permissions\n const permissions = await this.identityPermissionProvider.getFor({\n id: payload.sub,\n type: payload.sub_kind,\n clientId: payload.client_id,\n realmId: payload.realm_id,\n });\n\n const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);\n if (!identity) {\n // todo: differentiate between client & user\n throw OAuth2RequestError.identityInvalid();\n }\n\n const claimsBuilder = new OAuth2OpenIDClaimsBuilder();\n const claims = claimsBuilder.fromIdentity(identity);\n\n let active : boolean;\n if (payload.jti) {\n const isInactive = await this.tokenVerifier.isInactive(payload.jti);\n active = !isInactive;\n } else {\n active = false;\n }\n\n return {\n active,\n // todo: permissions property should be removed.\n permissions: Object.values(\n permissions.reduce((acc, binding) => {\n const key = buildPermissionKey(binding.permission);\n if (!acc[key]) {\n acc[key] = {\n name: binding.permission.name,\n client_id: binding.permission.clientId,\n realm_id: binding.permission.realmId,\n } as OAuth2TokenPermission;\n }\n return acc;\n }, {} as Record<string, OAuth2TokenPermission>),\n ),\n ...payload,\n ...claims,\n };\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('/revoke', [])\n async revokeToken(\n @DContext() event: IAppEvent,\n ): Promise<null> {\n try {\n const token = await extractTokenFromRequest(event);\n\n // RFC 7009 §2.2: revoking an invalid token — here one that is expired\n // or already inactive — MUST still succeed. The client cannot act on\n // an error, and the token's invalidation (the point of the request)\n // is already achieved. Signature + kind still anchor the token, so a\n // forged/garbage token is rejected; `ignoreExpiry` additionally keeps\n // this exp-bypass out of the shared claims cache (see\n // OAuth2TokenVerifier). Without this, revoking a stale refresh token\n // threw `expired_token`, so the caller's revoke-then-clear-cookie\n // flow aborted, the durable row was never soft-revoked, and the stale\n // refresh cookie survived into the next login.\n const payload = await this.tokenVerifier.verify(token, {\n ignoreExpiry: true,\n skipActiveCheck: true,\n });\n\n await this.tokenRevoker.revoke(payload);\n\n event.response.status = 202;\n return null;\n } catch (e) {\n throw toOAuth2Error(e);\n }\n }\n\n // ----------------------------------------------------------\n\n @DPost('', [])\n async createToken(@DContext() event: IAppEvent): Promise<OAuth2TokenGrantResponse> {\n const grantType = await guessOauth2GrantTypeByRequest(event);\n if (!grantType) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n const grant = this.tokenGrants[grantType];\n if (!grant) {\n throw OAuth2GrantTypeError.unsupported();\n }\n\n const response = await grant.runWithRequest(event);\n\n this.metrics?.recordTokenGrant(grantType);\n\n return response;\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Robot, User } from '@authup/core-kit';
1
+ import type { User } from '@authup/core-kit';
2
2
  import type { Logger } from '@authup/server-kit';
3
3
  import type { IAuthFlowMetrics, ICredentialsAuthenticator, IEventService, IIdentityPermissionProvider, IIdentityResolver, IKeyStore, ILoginThrottleService, IOAuth2AccessPolicyEvaluator, IOAuth2AuthorizationCodeVerifier, IOAuth2MfaLoginService, IOAuth2OpenIDTokenIssuer, IOAuth2TokenIssuer, IOAuth2TokenRepository, IOAuth2TokenRevoker, IOAuth2TokenVerifier, IRealmRepository, ISessionManager, ISessionTokenRepository, IUserAuthenticatorService, OAuth2ClientAuthenticator } from '../../../../../core/index.ts';
4
4
  import type { CertificateSource } from '../../../request/index.ts';
@@ -23,7 +23,6 @@ export type TokenControllerContext = {
23
23
  sessionManager: ISessionManager;
24
24
  identityResolver: IIdentityResolver;
25
25
  identityPermissionProvider: IIdentityPermissionProvider;
26
- robotAuthenticator: ICredentialsAuthenticator<Robot>;
27
26
  userAuthenticator: ICredentialsAuthenticator<User>;
28
27
  oauth2ClientAuthenticator: OAuth2ClientAuthenticator;
29
28
  realmRepository: IRealmRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/token/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EACR,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACjC,YAAY,EAAE,gCAAgC,CAAC;IAE/C,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,eAAe,EAAE,sBAAsB,CAAC;IACxC,sBAAsB,EAAE,uBAAuB,CAAC;IAEhD,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,wBAAwB,CAAC,EAAE,yBAAyB,CAAC;IACrD,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,qBAAqB,CAAC,EAAE,4BAA4B,CAAC;IAErD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,cAAc,EAAE,eAAe,CAAC;IAEhC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,0BAA0B,EAAE,2BAA2B,CAAC;IAExD,kBAAkB,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACpD,iBAAiB,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAElD,yBAAyB,EAAE,yBAAyB,CAAA;IAEpD,eAAe,EAAE,gBAAgB,CAAC;IAClC,iBAAiB,EAAE,iBAAiB,CAAC;CACxC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/token/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EACR,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACjC,YAAY,EAAE,gCAAgC,CAAC;IAE/C,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,eAAe,EAAE,sBAAsB,CAAC;IACxC,sBAAsB,EAAE,uBAAuB,CAAC;IAEhD,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,wBAAwB,CAAC,EAAE,yBAAyB,CAAC;IACrD,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,qBAAqB,CAAC,EAAE,4BAA4B,CAAC;IAErD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,cAAc,EAAE,eAAe,CAAC;IAEhC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,0BAA0B,EAAE,2BAA2B,CAAC;IAExD,iBAAiB,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAElD,yBAAyB,EAAE,yBAAyB,CAAA;IAEpD,eAAe,EAAE,gBAAgB,CAAC;IAClC,iBAAiB,EAAE,iBAAiB,CAAC;CACxC,CAAC"}
@@ -45,7 +45,6 @@ import { HTTPClientCredentialsGrant } from "./adapters/oauth2/grant-types/client
45
45
  import { HTTPOAuth2IdentityGrantType } from "./adapters/oauth2/grant-types/identity.mjs";
46
46
  import { HTTPPasswordGrant } from "./adapters/oauth2/grant-types/password.mjs";
47
47
  import { HTTPOAuth2RefreshTokenGrant } from "./adapters/oauth2/grant-types/refresh_token.mjs";
48
- import { HTTPRobotCredentialsGrant } from "./adapters/oauth2/grant-types/robot-credentials.mjs";
49
48
  import "./adapters/index.mjs";
50
49
  import { ClientController } from "./controllers/entities/client/module.mjs";
51
50
  import { ClientPermissionController } from "./controllers/entities/client-permission/module.mjs";
@@ -74,11 +73,6 @@ import { RegisterController } from "./controllers/workflows/register/module.mjs"
74
73
  import { StatusController } from "./controllers/workflows/status/module.mjs";
75
74
  import { TokenController } from "./controllers/workflows/token/module.mjs";
76
75
  import { RealmController } from "./controllers/entities/realm/module.mjs";
77
- import { RobotController } from "./controllers/entities/robot/module.mjs";
78
- import { RobotPermissionController } from "./controllers/entities/robot-permission/module.mjs";
79
- import { RobotPermissionRequestValidator } from "./controllers/entities/robot-permission/utils/validation.mjs";
80
- import { RobotRoleController } from "./controllers/entities/robot-role/module.mjs";
81
- import { RobotRoleRequestValidator } from "./controllers/entities/robot-role/utils/validation.mjs";
82
76
  import { RoleController } from "./controllers/entities/role/module.mjs";
83
77
  import { RoleAttributeController } from "./controllers/entities/role-attribute/module.mjs";
84
78
  import { RoleAttributeRequestValidator } from "./controllers/entities/role-attribute/utils/validation.mjs";
@@ -99,4 +93,4 @@ import { UserPermissionRequestValidator } from "./controllers/entities/user-perm
99
93
  import { UserRoleController } from "./controllers/entities/user-role/module.mjs";
100
94
  import { UserRoleRequestValidator } from "./controllers/entities/user-role/utils/validation.mjs";
101
95
  import "./controllers/index.mjs";
102
- export { ActivateController, AuthenticatorChallengeController, AuthorizationMiddleware, AuthorizeController, CERTIFICATE_SOURCES, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, HTTPRobotCredentialsGrant, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, KeyController, LOCALE_COOKIE, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RealmResolverMiddleware, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RobotController, RobotPermissionController, RobotPermissionRequestValidator, RobotRoleController, RobotRoleRequestValidator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, StatusController, TokenController, TrustAnchorController, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createRequestEventContextMiddleware, createRouteTemplateNormalizePath, createSwaggerMiddleware, extractClientCertificateEvidence, extractClientCredentialsFromRequest, extractOAuth2ClientCertificateEvidence, getBodyRealmID, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, readFromLocations, readRealmHint, readStringField, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware, runWithRequestEventContext, sanitizeRelativeRedirect, setRequestIdentity, setRequestMfaLoginTicket, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestEventContext, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestToken };
96
+ export { ActivateController, AuthenticatorChallengeController, AuthorizationMiddleware, AuthorizeController, CERTIFICATE_SOURCES, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, KeyController, LOCALE_COOKIE, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RealmResolverMiddleware, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, StatusController, TokenController, TrustAnchorController, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createRequestEventContextMiddleware, createRouteTemplateNormalizePath, createSwaggerMiddleware, extractClientCertificateEvidence, extractClientCredentialsFromRequest, extractOAuth2ClientCertificateEvidence, getBodyRealmID, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, readFromLocations, readRealmHint, readStringField, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerUIHttpClientMiddleware, runWithRequestEventContext, sanitizeRelativeRedirect, setRequestIdentity, setRequestMfaLoginTicket, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestEventContext, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestToken };
@@ -6,7 +6,7 @@ import path from "node:path";
6
6
  import { defineCoreHandler } from "routup";
7
7
  import { CodeTransformation, isCodeTransformation } from "typeorm-extension";
8
8
  import { fromNodeMiddleware } from "routup/node";
9
- import { load } from "locter";
9
+ import { read } from "locter";
10
10
  import { createHandler } from "@routup/assets";
11
11
  //#region src/adapters/http/middleware/built-in/assets.ts
12
12
  const VITE_SERVER_STORE_KEY = Symbol("ViteServer");
@@ -22,7 +22,7 @@ async function registerAssetsMiddleware(router) {
22
22
  }));
23
23
  return;
24
24
  }
25
- const server = await (await load("vite")).createServer({
25
+ const server = await (await read("vite")).createServer({
26
26
  root: UI_SOURCE_PATH,
27
27
  base: "/public/",
28
28
  logLevel: "error",
@@ -1 +1 @@
1
- {"version":3,"file":"assets.mjs","names":["load","CodeTransformation","isCodeTransformation","createHandler","path","defineCoreHandler","fromNodeMiddleware","PACKAGE_PATH","UI_DIST_PATH","UI_SOURCE_PATH","VITE_SERVER_STORE_KEY","Symbol","registerAssetsMiddleware","router","JUST_IN_TIME","use","posix","join","fallthrough","scan","vite","server","createServer","root","base","logLevel","middlewareMode","watch","usePolling","interval","appType","middlewares","event","store","next"],"sources":["../../../../../src/adapters/http/middleware/built-in/assets.ts"],"sourcesContent":["/*\n * Copyright (c) 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 { load } from 'locter';\nimport { CodeTransformation, isCodeTransformation } from 'typeorm-extension';\nimport { createHandler } from '@routup/assets';\nimport path from 'node:path';\nimport type { App } from 'routup';\nimport { defineCoreHandler } from 'routup';\nimport { fromNodeMiddleware } from 'routup/node';\nimport type * as Vite from 'vite';\nimport type { ViteDevServer } from 'vite';\nimport { PACKAGE_PATH, UI_DIST_PATH, UI_SOURCE_PATH } from '../../../../path.ts';\n\nexport const VITE_SERVER_STORE_KEY = Symbol('ViteServer');\n\nexport async function registerAssetsMiddleware(router: App) {\n if (!isCodeTransformation(CodeTransformation.JUST_IN_TIME)) {\n router.use('public', createHandler(\n path.posix.join(PACKAGE_PATH, 'public'),\n {\n fallthrough: true,\n scan: false,\n },\n ));\n\n router.use('public', createHandler(\n path.posix.join(UI_DIST_PATH, 'client'),\n {\n fallthrough: false,\n scan: false,\n },\n ));\n return;\n }\n\n const vite = await load('vite') as typeof Vite;\n\n const server: ViteDevServer = await vite.createServer({\n root: UI_SOURCE_PATH,\n base: '/public/',\n logLevel: 'error',\n server: {\n middlewareMode: true,\n watch: {\n usePolling: true,\n interval: 100,\n },\n },\n appType: 'custom',\n });\n\n router.use('public', fromNodeMiddleware(server.middlewares));\n router.use(defineCoreHandler((event) => {\n event.store[VITE_SERVER_STORE_KEY] = server;\n return event.next();\n }));\n}\n"],"mappings":";;;;;;;;;;;AAkBA,MAAaU,wBAAwBC,OAAO,YAAA;AAE5C,eAAsBC,yBAAyBC,QAAW;CACtD,IAAI,CAACX,qBAAqBD,mBAAmBa,YAAY,GAAG;EACxDD,OAAOE,IAAI,UAAUZ,cACjBC,KAAKY,MAAMC,KAAKV,cAAc,QAAA,GAC9B;GACIW,aAAa;GACbC,MAAM;EACV,CAAA,CAAA;EAGJN,OAAOE,IAAI,UAAUZ,cACjBC,KAAKY,MAAMC,KAAKT,cAAc,QAAA,GAC9B;GACIU,aAAa;GACbC,MAAM;EACV,CAAA,CAAA;EAEJ;CACJ;CAIA,MAAME,SAAwB,OAAMD,MAFjBpB,KAAK,MAAA,EAAA,CAEiBsB,aAAa;EAClDC,MAAMd;EACNe,MAAM;EACNC,UAAU;EACVJ,QAAQ;GACJK,gBAAgB;GAChBC,OAAO;IACHC,YAAY;IACZC,UAAU;GACd;EACJ;EACAC,SAAS;CACb,CAAA;CAEAjB,OAAOE,IAAI,UAAUT,mBAAmBe,OAAOU,WAAW,CAAA;CAC1DlB,OAAOE,IAAIV,mBAAmB2B,UAAAA;EAC1BA,MAAMC,MAAMvB,yBAAyBW;EACrC,OAAOW,MAAME,KAAI;CACrB,CAAA,CAAA;AACJ"}
1
+ {"version":3,"file":"assets.mjs","names":["read","CodeTransformation","isCodeTransformation","createHandler","path","defineCoreHandler","fromNodeMiddleware","PACKAGE_PATH","UI_DIST_PATH","UI_SOURCE_PATH","VITE_SERVER_STORE_KEY","Symbol","registerAssetsMiddleware","router","JUST_IN_TIME","use","posix","join","fallthrough","scan","vite","server","createServer","root","base","logLevel","middlewareMode","watch","usePolling","interval","appType","middlewares","event","store","next"],"sources":["../../../../../src/adapters/http/middleware/built-in/assets.ts"],"sourcesContent":["/*\n * Copyright (c) 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 { read } from 'locter';\nimport { CodeTransformation, isCodeTransformation } from 'typeorm-extension';\nimport { createHandler } from '@routup/assets';\nimport path from 'node:path';\nimport type { App } from 'routup';\nimport { defineCoreHandler } from 'routup';\nimport { fromNodeMiddleware } from 'routup/node';\nimport type * as Vite from 'vite';\nimport type { ViteDevServer } from 'vite';\nimport { PACKAGE_PATH, UI_DIST_PATH, UI_SOURCE_PATH } from '../../../../path.ts';\n\nexport const VITE_SERVER_STORE_KEY = Symbol('ViteServer');\n\nexport async function registerAssetsMiddleware(router: App) {\n if (!isCodeTransformation(CodeTransformation.JUST_IN_TIME)) {\n router.use('public', createHandler(\n path.posix.join(PACKAGE_PATH, 'public'),\n {\n fallthrough: true,\n scan: false,\n },\n ));\n\n router.use('public', createHandler(\n path.posix.join(UI_DIST_PATH, 'client'),\n {\n fallthrough: false,\n scan: false,\n },\n ));\n return;\n }\n\n const vite = await read('vite') as typeof Vite;\n\n const server: ViteDevServer = await vite.createServer({\n root: UI_SOURCE_PATH,\n base: '/public/',\n logLevel: 'error',\n server: {\n middlewareMode: true,\n watch: {\n usePolling: true,\n interval: 100,\n },\n },\n appType: 'custom',\n });\n\n router.use('public', fromNodeMiddleware(server.middlewares));\n router.use(defineCoreHandler((event) => {\n event.store[VITE_SERVER_STORE_KEY] = server;\n return event.next();\n }));\n}\n"],"mappings":";;;;;;;;;;;AAkBA,MAAaU,wBAAwBC,OAAO,YAAA;AAE5C,eAAsBC,yBAAyBC,QAAW;CACtD,IAAI,CAACX,qBAAqBD,mBAAmBa,YAAY,GAAG;EACxDD,OAAOE,IAAI,UAAUZ,cACjBC,KAAKY,MAAMC,KAAKV,cAAc,QAAA,GAC9B;GACIW,aAAa;GACbC,MAAM;EACV,CAAA,CAAA;EAGJN,OAAOE,IAAI,UAAUZ,cACjBC,KAAKY,MAAMC,KAAKT,cAAc,QAAA,GAC9B;GACIU,aAAa;GACbC,MAAM;EACV,CAAA,CAAA;EAEJ;CACJ;CAIA,MAAME,SAAwB,OAAMD,MAFjBpB,KAAK,MAAA,EAAA,CAEiBsB,aAAa;EAClDC,MAAMd;EACNe,MAAM;EACNC,UAAU;EACVJ,QAAQ;GACJK,gBAAgB;GAChBC,OAAO;IACHC,YAAY;IACZC,UAAU;GACd;EACJ;EACAC,SAAS;CACb,CAAA;CAEAjB,OAAOE,IAAI,UAAUT,mBAAmBe,OAAOU,WAAW,CAAA;CAC1DlB,OAAOE,IAAIV,mBAAmB2B,UAAAA;EAC1BA,MAAMC,MAAMvB,yBAAyBW;EACrC,OAAOW,MAAME,KAAI;CACrB,CAAA,CAAA;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import type { IPermissionEvaluator } from '@authup/access';
2
- import type { Client, Robot, User } from '@authup/core-kit';
2
+ import type { Client, User } from '@authup/core-kit';
3
3
  import type { OAuth2TokenPayload } from '@authup/specs';
4
4
  import type { IAppEvent } from 'routup';
5
5
  import { type BasicAuthorizationHeader, type BearerAuthorizationHeader } from 'hapic';
@@ -12,7 +12,6 @@ export declare class AuthorizationMiddleware {
12
12
  protected identityResolver: IIdentityResolver;
13
13
  protected sessionManager: ISessionManager;
14
14
  protected clientAuthenticator: ICredentialsAuthenticator<Client>;
15
- protected robotAuthenticator: ICredentialsAuthenticator<Robot>;
16
15
  protected userAuthenticator: ICredentialsAuthenticator<User>;
17
16
  constructor(ctx: HTTPAuthorizationMiddlewareContext);
18
17
  run(event: IAppEvent): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAEjC,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EACR,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAYtC,OAAO,KAAK,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAEzG,qBAAa,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,kCAAkC,CAAC;IAItD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAEpD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAIpD,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAE9C,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAI3C,SAAS,CAAC,mBAAmB,EAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElE,SAAS,CAAC,kBAAkB,EAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAEhE,SAAS,CAAC,iBAAiB,EAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAIlD,GAAG,EAAE,kCAAkC;IAsB7C,GAAG,CAAC,KAAK,EAAE,SAAS;IA2B1B;;OAEG;cACa,+BAA+B,CAC3C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,yBAAyB;cAgErB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtG;;;;;;;;;OASG;cACa,oBAAoB,CAChC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,kBAAkB;cAsDf,8BAA8B,CAC1C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB;CA+CvC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAMrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAEjC,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EACR,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAYtC,OAAO,KAAK,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAEzG,qBAAa,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,kCAAkC,CAAC;IAItD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAEpD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAIpD,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAE9C,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAI3C,SAAS,CAAC,mBAAmB,EAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElE,SAAS,CAAC,iBAAiB,EAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAIlD,GAAG,EAAE,kCAAkC;IAqB7C,GAAG,CAAC,KAAK,EAAE,SAAS;IA2B1B;;OAEG;cACa,+BAA+B,CAC3C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,yBAAyB;cAgErB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtG;;;;;;;;;OASG;cACa,oBAAoB,CAChC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,kBAAkB;cAsDf,8BAA8B,CAC1C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB;CA+BvC"}
@@ -2,7 +2,6 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { ClientAuthenticator } from "../../../../../core/authentication/entities/client/module.mjs";
5
- import { RobotAuthenticator } from "../../../../../core/authentication/entities/robot/module.mjs";
6
5
  import { UserAuthenticator } from "../../../../../core/authentication/entities/user/module.mjs";
7
6
  import { assertClientCertificateEvidenceValidForBinding } from "../../../../../core/client-certificate/module.mjs";
8
7
  import { PolicyEngine as PolicyEngine$1 } from "../../../../../core/security/policy/engine.mjs";
@@ -29,14 +28,12 @@ var AuthorizationMiddleware = class {
29
28
  identityResolver;
30
29
  sessionManager;
31
30
  clientAuthenticator;
32
- robotAuthenticator;
33
31
  userAuthenticator;
34
32
  constructor(ctx) {
35
33
  this.options = ctx.options || {};
36
34
  this.identityResolver = ctx.identityResolver;
37
35
  this.sessionManager = ctx.sessionManager;
38
36
  this.clientAuthenticator = new ClientAuthenticator(ctx.identityResolver);
39
- this.robotAuthenticator = new RobotAuthenticator(ctx.identityResolver);
40
37
  this.userAuthenticator = new UserAuthenticator(ctx.identityResolver);
41
38
  this.oauth2TokenVerifier = ctx.oauth2TokenVerifier;
42
39
  this.permissionEvaluator = new PermissionEvaluator({
@@ -122,7 +119,7 @@ var AuthorizationMiddleware = class {
122
119
  } catch {
123
120
  throw JWTError.expired();
124
121
  }
125
- if (session.sub !== payload.sub || session.sub_kind !== IdentityType.USER) throw JWTError.expired();
122
+ if (session.sub !== payload.sub || session.subKind !== IdentityType.USER) throw JWTError.expired();
126
123
  await this.sessionManager.ping(session);
127
124
  const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);
128
125
  if (!identity) throw JWTError.expired();
@@ -150,17 +147,6 @@ var AuthorizationMiddleware = class {
150
147
  type: IdentityType.USER,
151
148
  data: authenticated.data
152
149
  });
153
- return;
154
- }
155
- }
156
- if (this.options.robotAuthBasic) {
157
- const authenticated = await this.robotAuthenticator.safeAuthenticate(header.username, header.password);
158
- if (authenticated.success) {
159
- setRequestScopes(event, [ScopeName.GLOBAL]);
160
- setRequestIdentity(event, {
161
- type: IdentityType.ROBOT,
162
- data: authenticated.data
163
- });
164
150
  }
165
151
  }
166
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","AuthHeaderError","JWTError","OAuth2SubKind","OAuth2TokenKind","deserializeOAuth2Scope","AuthorizationHeaderType","parseAuthorizationHeader","ClientAuthenticator","PolicyEngine","RobotAuthenticator","UserAuthenticator","assertClientCertificateEvidenceValidForBinding","RequestIdentity","RequestPermissionEvaluator","extractClientCertificateEvidence","setRequestIdentity","setRequestMfaLoginTicket","setRequestPermissionEvaluator","setRequestScopes","setRequestSessionId","setRequestToken","AuthorizationMiddleware","options","oauth2TokenVerifier","permissionEvaluator","identityResolver","sessionManager","clientAuthenticator","robotAuthenticator","userAuthenticator","ctx","provider","permissionProvider","policyEngine","identityPermissionProvider","realmId","clientId","run","event","requestAccessContext","headerValue","headers","get","header","type","BEARER","verifyBearerAuthorizationHeader","BASIC","verifyBasicAuthorizationHeader","unsupportedType","payload","verify","token","verifyCertificateBinding","kind","MFA","verifyMfaLoginTicket","ACCESS","payloadPropertyInvalid","realm_id","scope","session_id","session","findOneById","expired","ping","sub_kind","sub","identity","resolve","cnf","expectedThumbprint","length","invalid","evidence","certificateSource","thumbprint","USER","clientAuthBasic","authenticator","safeAuthenticate","username","password","success","GLOBAL","CLIENT","data","userAuthBasic","authenticated","robotAuthBasic","ROBOT"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IPermissionEvaluator } from '@authup/access';\nimport { PermissionEvaluator } from '@authup/access';\nimport type { Client, Robot, User } from '@authup/core-kit';\nimport {\n IdentityType,\n ScopeName,\n} from '@authup/core-kit';\nimport { AuthHeaderError } from '@authup/errors';\nimport type { OAuth2TokenPayload } from '@authup/specs';\nimport {\n JWTError,\n OAuth2SubKind,\n OAuth2TokenKind,\n deserializeOAuth2Scope,\n} from '@authup/specs';\nimport type { IAppEvent } from 'routup';\nimport {\n AuthorizationHeaderType,\n type BasicAuthorizationHeader,\n type BearerAuthorizationHeader,\n parseAuthorizationHeader,\n} from 'hapic';\nimport {\n ClientAuthenticator,\n PolicyEngine,\n RobotAuthenticator,\n UserAuthenticator,\n assertClientCertificateEvidenceValidForBinding,\n} from '../../../../../core/index.ts';\nimport type {\n ICredentialsAuthenticator,\n IIdentityResolver,\n IOAuth2TokenVerifier,\n ISessionManager,\n} from '../../../../../core/index.ts';\nimport {\n RequestIdentity,\n RequestPermissionEvaluator,\n extractClientCertificateEvidence,\n setRequestIdentity,\n setRequestMfaLoginTicket,\n setRequestPermissionEvaluator,\n setRequestScopes,\n setRequestSessionId,\n setRequestToken,\n} from '../../../request/index.ts';\nimport type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';\n\nexport class AuthorizationMiddleware {\n protected options: HTTPAuthorizationMiddlewareOptions;\n\n // --------------------------------------\n\n protected oauth2TokenVerifier: IOAuth2TokenVerifier;\n\n protected permissionEvaluator: IPermissionEvaluator;\n\n // --------------------------------------\n\n protected identityResolver: IIdentityResolver;\n\n protected sessionManager : ISessionManager;\n\n // --------------------------------------\n\n protected clientAuthenticator : ICredentialsAuthenticator<Client>;\n\n protected robotAuthenticator : ICredentialsAuthenticator<Robot>;\n\n protected userAuthenticator : ICredentialsAuthenticator<User>;\n\n // --------------------------------------\n\n constructor(ctx: HTTPAuthorizationMiddlewareContext) {\n this.options = ctx.options || {};\n\n this.identityResolver = ctx.identityResolver;\n this.sessionManager = ctx.sessionManager;\n\n this.clientAuthenticator = new ClientAuthenticator(ctx.identityResolver);\n this.robotAuthenticator = new RobotAuthenticator(ctx.identityResolver);\n this.userAuthenticator = new UserAuthenticator(ctx.identityResolver);\n\n this.oauth2TokenVerifier = ctx.oauth2TokenVerifier;\n\n this.permissionEvaluator = new PermissionEvaluator({\n provider: ctx.permissionProvider,\n policyEngine: new PolicyEngine(ctx.identityPermissionProvider),\n realmId: null,\n clientId: null,\n });\n }\n\n // --------------------------------------\n\n async run(event: IAppEvent) {\n const requestAccessContext = new RequestPermissionEvaluator(\n event,\n this.permissionEvaluator,\n );\n setRequestPermissionEvaluator(event, requestAccessContext);\n\n const headerValue = event.headers.get('authorization');\n if (!headerValue) {\n return;\n }\n\n const header = parseAuthorizationHeader(headerValue);\n\n if (header.type === AuthorizationHeaderType.BEARER) {\n await this.verifyBearerAuthorizationHeader(event, header);\n return;\n }\n\n if (header.type === AuthorizationHeaderType.BASIC) {\n await this.verifyBasicAuthorizationHeader(event, header);\n return;\n }\n\n throw AuthHeaderError.unsupportedType(header.type);\n }\n\n /**\n * @throws JWTError\n */\n protected async verifyBearerAuthorizationHeader(\n event: IAppEvent,\n header: BearerAuthorizationHeader,\n ) {\n const payload = await this.oauth2TokenVerifier.verify(header.token);\n await this.verifyCertificateBinding(event, payload);\n if (payload.kind === OAuth2TokenKind.MFA) {\n await this.verifyMfaLoginTicket(event, payload);\n return;\n }\n\n if (payload.kind !== OAuth2TokenKind.ACCESS) {\n throw JWTError.payloadPropertyInvalid('kind');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n setRequestToken(event, header.token);\n\n if (payload.scope) {\n setRequestScopes(event, deserializeOAuth2Scope(payload.scope));\n }\n\n // -------------------------------------------------------\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n setRequestSessionId(event, payload.session_id);\n\n // -------------------------------------------------------\n\n if (!payload.sub_kind) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n\n if (identity) {\n setRequestIdentity(event, identity);\n }\n }\n\n protected async verifyCertificateBinding(event: IAppEvent, payload: OAuth2TokenPayload): Promise<void> {\n if (!payload.cnf) {\n return;\n }\n\n const expectedThumbprint = payload.cnf['x5t#S256'];\n if (typeof expectedThumbprint !== 'string' || expectedThumbprint.length === 0) {\n throw JWTError.invalid();\n }\n\n try {\n const evidence = await extractClientCertificateEvidence(\n event,\n this.options.certificateSource ?? 'disabled',\n );\n if (!evidence || evidence.thumbprint !== expectedThumbprint) {\n throw JWTError.invalid();\n }\n\n assertClientCertificateEvidenceValidForBinding(evidence);\n } catch {\n throw JWTError.invalid();\n }\n }\n\n /**\n * An \"MFA-pending\" login ticket (issue #3242). Verified with the same\n * rigor as an access token (session existence + subject match), but\n * stashed on a DEDICATED request slot — the main identity / scope /\n * session slots stay empty, so every identity-gated route rejects a\n * ticket bearer (default-deny); only the challenge routes opt in via\n * useRequestMfaLoginTicket.\n *\n * @throws JWTError\n */\n protected async verifyMfaLoginTicket(\n event: IAppEvent,\n payload: OAuth2TokenPayload,\n ) {\n if (payload.sub_kind !== OAuth2SubKind.USER) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n // defense in depth — the pending session must still belong to the\n // ticket subject.\n if (\n session.sub !== payload.sub ||\n session.sub_kind !== IdentityType.USER\n ) {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n if (!identity) {\n throw JWTError.expired();\n }\n\n setRequestMfaLoginTicket(event, {\n identity: new RequestIdentity(identity),\n payload,\n });\n }\n\n protected async verifyBasicAuthorizationHeader(\n event: IAppEvent,\n header: BasicAuthorizationHeader,\n ) {\n if (this.options.clientAuthBasic) {\n const authenticator = await this.clientAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticator.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.CLIENT,\n data: authenticator.data,\n });\n }\n }\n\n if (this.options.userAuthBasic) {\n const authenticated = await this.userAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n\n if (authenticated.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.USER,\n data: authenticated.data,\n });\n\n return;\n }\n }\n\n if (this.options.robotAuthBasic) {\n const authenticated = await this.robotAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticated.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.ROBOT,\n data: authenticated.data,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","AuthHeaderError","JWTError","OAuth2SubKind","OAuth2TokenKind","deserializeOAuth2Scope","AuthorizationHeaderType","parseAuthorizationHeader","ClientAuthenticator","PolicyEngine","UserAuthenticator","assertClientCertificateEvidenceValidForBinding","RequestIdentity","RequestPermissionEvaluator","extractClientCertificateEvidence","setRequestIdentity","setRequestMfaLoginTicket","setRequestPermissionEvaluator","setRequestScopes","setRequestSessionId","setRequestToken","AuthorizationMiddleware","options","oauth2TokenVerifier","permissionEvaluator","identityResolver","sessionManager","clientAuthenticator","userAuthenticator","ctx","provider","permissionProvider","policyEngine","identityPermissionProvider","realmId","clientId","run","event","requestAccessContext","headerValue","headers","get","header","type","BEARER","verifyBearerAuthorizationHeader","BASIC","verifyBasicAuthorizationHeader","unsupportedType","payload","verify","token","verifyCertificateBinding","kind","MFA","verifyMfaLoginTicket","ACCESS","payloadPropertyInvalid","realm_id","scope","session_id","session","findOneById","expired","ping","sub_kind","sub","identity","resolve","cnf","expectedThumbprint","length","invalid","evidence","certificateSource","thumbprint","USER","subKind","clientAuthBasic","authenticator","safeAuthenticate","username","password","success","GLOBAL","CLIENT","data","userAuthBasic","authenticated"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IPermissionEvaluator } from '@authup/access';\nimport { PermissionEvaluator } from '@authup/access';\nimport type { Client, User } from '@authup/core-kit';\nimport {\n IdentityType,\n ScopeName,\n} from '@authup/core-kit';\nimport { AuthHeaderError } from '@authup/errors';\nimport type { OAuth2TokenPayload } from '@authup/specs';\nimport {\n JWTError,\n OAuth2SubKind,\n OAuth2TokenKind,\n deserializeOAuth2Scope,\n} from '@authup/specs';\nimport type { IAppEvent } from 'routup';\nimport {\n AuthorizationHeaderType,\n type BasicAuthorizationHeader,\n type BearerAuthorizationHeader,\n parseAuthorizationHeader,\n} from 'hapic';\nimport {\n ClientAuthenticator,\n PolicyEngine,\n UserAuthenticator,\n assertClientCertificateEvidenceValidForBinding,\n} from '../../../../../core/index.ts';\nimport type {\n ICredentialsAuthenticator,\n IIdentityResolver,\n IOAuth2TokenVerifier,\n ISessionManager,\n} from '../../../../../core/index.ts';\nimport {\n RequestIdentity,\n RequestPermissionEvaluator,\n extractClientCertificateEvidence,\n setRequestIdentity,\n setRequestMfaLoginTicket,\n setRequestPermissionEvaluator,\n setRequestScopes,\n setRequestSessionId,\n setRequestToken,\n} from '../../../request/index.ts';\nimport type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';\n\nexport class AuthorizationMiddleware {\n protected options: HTTPAuthorizationMiddlewareOptions;\n\n // --------------------------------------\n\n protected oauth2TokenVerifier: IOAuth2TokenVerifier;\n\n protected permissionEvaluator: IPermissionEvaluator;\n\n // --------------------------------------\n\n protected identityResolver: IIdentityResolver;\n\n protected sessionManager : ISessionManager;\n\n // --------------------------------------\n\n protected clientAuthenticator : ICredentialsAuthenticator<Client>;\n\n protected userAuthenticator : ICredentialsAuthenticator<User>;\n\n // --------------------------------------\n\n constructor(ctx: HTTPAuthorizationMiddlewareContext) {\n this.options = ctx.options || {};\n\n this.identityResolver = ctx.identityResolver;\n this.sessionManager = ctx.sessionManager;\n\n this.clientAuthenticator = new ClientAuthenticator(ctx.identityResolver);\n this.userAuthenticator = new UserAuthenticator(ctx.identityResolver);\n\n this.oauth2TokenVerifier = ctx.oauth2TokenVerifier;\n\n this.permissionEvaluator = new PermissionEvaluator({\n provider: ctx.permissionProvider,\n policyEngine: new PolicyEngine(ctx.identityPermissionProvider),\n realmId: null,\n clientId: null,\n });\n }\n\n // --------------------------------------\n\n async run(event: IAppEvent) {\n const requestAccessContext = new RequestPermissionEvaluator(\n event,\n this.permissionEvaluator,\n );\n setRequestPermissionEvaluator(event, requestAccessContext);\n\n const headerValue = event.headers.get('authorization');\n if (!headerValue) {\n return;\n }\n\n const header = parseAuthorizationHeader(headerValue);\n\n if (header.type === AuthorizationHeaderType.BEARER) {\n await this.verifyBearerAuthorizationHeader(event, header);\n return;\n }\n\n if (header.type === AuthorizationHeaderType.BASIC) {\n await this.verifyBasicAuthorizationHeader(event, header);\n return;\n }\n\n throw AuthHeaderError.unsupportedType(header.type);\n }\n\n /**\n * @throws JWTError\n */\n protected async verifyBearerAuthorizationHeader(\n event: IAppEvent,\n header: BearerAuthorizationHeader,\n ) {\n const payload = await this.oauth2TokenVerifier.verify(header.token);\n await this.verifyCertificateBinding(event, payload);\n if (payload.kind === OAuth2TokenKind.MFA) {\n await this.verifyMfaLoginTicket(event, payload);\n return;\n }\n\n if (payload.kind !== OAuth2TokenKind.ACCESS) {\n throw JWTError.payloadPropertyInvalid('kind');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n setRequestToken(event, header.token);\n\n if (payload.scope) {\n setRequestScopes(event, deserializeOAuth2Scope(payload.scope));\n }\n\n // -------------------------------------------------------\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n setRequestSessionId(event, payload.session_id);\n\n // -------------------------------------------------------\n\n if (!payload.sub_kind) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n\n if (identity) {\n setRequestIdentity(event, identity);\n }\n }\n\n protected async verifyCertificateBinding(event: IAppEvent, payload: OAuth2TokenPayload): Promise<void> {\n if (!payload.cnf) {\n return;\n }\n\n const expectedThumbprint = payload.cnf['x5t#S256'];\n if (typeof expectedThumbprint !== 'string' || expectedThumbprint.length === 0) {\n throw JWTError.invalid();\n }\n\n try {\n const evidence = await extractClientCertificateEvidence(\n event,\n this.options.certificateSource ?? 'disabled',\n );\n if (!evidence || evidence.thumbprint !== expectedThumbprint) {\n throw JWTError.invalid();\n }\n\n assertClientCertificateEvidenceValidForBinding(evidence);\n } catch {\n throw JWTError.invalid();\n }\n }\n\n /**\n * An \"MFA-pending\" login ticket (issue #3242). Verified with the same\n * rigor as an access token (session existence + subject match), but\n * stashed on a DEDICATED request slot — the main identity / scope /\n * session slots stay empty, so every identity-gated route rejects a\n * ticket bearer (default-deny); only the challenge routes opt in via\n * useRequestMfaLoginTicket.\n *\n * @throws JWTError\n */\n protected async verifyMfaLoginTicket(\n event: IAppEvent,\n payload: OAuth2TokenPayload,\n ) {\n if (payload.sub_kind !== OAuth2SubKind.USER) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n // defense in depth — the pending session must still belong to the\n // ticket subject.\n if (\n session.sub !== payload.sub ||\n session.subKind !== IdentityType.USER\n ) {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n if (!identity) {\n throw JWTError.expired();\n }\n\n setRequestMfaLoginTicket(event, {\n identity: new RequestIdentity(identity),\n payload,\n });\n }\n\n protected async verifyBasicAuthorizationHeader(\n event: IAppEvent,\n header: BasicAuthorizationHeader,\n ) {\n if (this.options.clientAuthBasic) {\n const authenticator = await this.clientAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticator.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.CLIENT,\n data: authenticator.data,\n });\n }\n }\n\n if (this.options.userAuthBasic) {\n const authenticated = await this.userAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n\n if (authenticated.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.USER,\n data: authenticated.data,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ import type { IIdentityPermissionProvider, IIdentityResolver, IOAuth2TokenVerifi
3
3
  import type { CertificateSource } from '../../../request/index.ts';
4
4
  export type HTTPAuthorizationMiddlewareOptions = {
5
5
  clientAuthBasic?: boolean;
6
- robotAuthBasic?: boolean;
7
6
  userAuthBasic?: boolean;
8
7
  certificateSource?: CertificateSource;
9
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAER,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,kCAAkC,GAAG;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,0BAA0B,EAAE,2BAA2B,CAAC;IACxD,cAAc,EAAE,eAAe,CAAC;IAChC,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,kBAAkB,EAAE,mBAAmB,CAAC;IAExC,OAAO,CAAC,EAAE,kCAAkC,CAAA;CAC/C,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAER,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,kCAAkC,GAAG;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,0BAA0B,EAAE,2BAA2B,CAAC;IACxD,cAAc,EAAE,eAAe,CAAC;IAChC,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,kBAAkB,EAAE,mBAAmB,CAAC;IAExC,OAAO,CAAC,EAAE,kCAAkC,CAAA;CAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAIlC,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,QAyB5E"}
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAIlC,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,QAwB5E"}
@@ -12,7 +12,6 @@ function registerRateLimitMiddleware(router, input) {
12
12
  const identity = useRequestIdentity(event);
13
13
  if (!identity) return 1200;
14
14
  switch (identity.type) {
15
- case "robot":
16
15
  case "client": return 60 * 5e3;
17
16
  default: return 6e3;
18
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.mjs","names":["rateLimit","merge","useRequestIdentity","registerRateLimitMiddleware","router","input","options","max","event","identity","type","windowMs","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"sourcesContent":["/*\n * Copyright (c) 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 { OptionsInput } from '@routup/rate-limit';\nimport { rateLimit } from '@routup/rate-limit';\nimport type { App } from 'routup';\nimport { merge } from 'smob';\nimport { useRequestIdentity } from '../../request/index.ts';\n\nexport function registerRateLimitMiddleware(router: App, input?: OptionsInput) {\n let options : OptionsInput = {\n max(event) {\n const identity = useRequestIdentity(event);\n if (!identity) {\n return 60 * 20; // 20 req. p. sec\n }\n\n switch (identity.type) {\n case 'robot':\n case 'client': {\n return 60 * 5_000; // 1000 req p. sec\n }\n case 'user':\n default: {\n return 60 * 100; // 100 req p. sec\n }\n }\n },\n windowMs: 60 * 1000, // 60 sec\n };\n\n options = merge(input || {}, options);\n\n router.use(rateLimit(options));\n}\n"],"mappings":";;;;;;;;AAaA,SAAgBG,4BAA4BC,QAAaC,OAAoB;CACzE,IAAIC,UAAyB;EACzBC,IAAIC,OAAK;GACL,MAAMC,WAAWP,mBAAmBM,KAAAA;GACpC,IAAI,CAACC,UACD,OAAO;GAGX,QAAQA,SAASC,MAAjB;IACI,KAAK;IACL,KAAK,UACD,OAAO,KAAK;IAGhB,SACI,OAAO;GAEf;EACJ;EACAC,UAAU,KAAK;CACnB;CAEAL,UAAUL,MAAMI,SAAS,CAAC,GAAGC,OAAAA;CAE7BF,OAAOQ,IAAIZ,UAAUM,OAAAA,CAAAA;AACzB"}
1
+ {"version":3,"file":"rate-limit.mjs","names":["rateLimit","merge","useRequestIdentity","registerRateLimitMiddleware","router","input","options","max","event","identity","type","windowMs","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"sourcesContent":["/*\n * Copyright (c) 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 { OptionsInput } from '@routup/rate-limit';\nimport { rateLimit } from '@routup/rate-limit';\nimport type { App } from 'routup';\nimport { merge } from 'smob';\nimport { useRequestIdentity } from '../../request/index.ts';\n\nexport function registerRateLimitMiddleware(router: App, input?: OptionsInput) {\n let options : OptionsInput = {\n max(event) {\n const identity = useRequestIdentity(event);\n if (!identity) {\n return 60 * 20; // 20 req. p. sec\n }\n\n switch (identity.type) {\n case 'client': {\n return 60 * 5_000; // 1000 req p. sec\n }\n case 'user':\n default: {\n return 60 * 100; // 100 req p. sec\n }\n }\n },\n windowMs: 60 * 1000, // 60 sec\n };\n\n options = merge(input || {}, options);\n\n router.use(rateLimit(options));\n}\n"],"mappings":";;;;;;;;AAaA,SAAgBG,4BAA4BC,QAAaC,OAAoB;CACzE,IAAIC,UAAyB;EACzBC,IAAIC,OAAK;GACL,MAAMC,WAAWP,mBAAmBM,KAAAA;GACpC,IAAI,CAACC,UACD,OAAO;GAGX,QAAQA,SAASC,MAAjB;IACI,KAAK,UACD,OAAO,KAAK;IAGhB,SACI,OAAO;GAEf;EACJ;EACAC,UAAU,KAAK;CACnB;CAEAL,UAAUL,MAAMI,SAAS,CAAC,GAAGC,OAAAA;CAE7BF,OAAOQ,IAAIZ,UAAUM,OAAAA,CAAAA;AACzB"}
@@ -1,3 +1,4 @@
1
+ import '../../../core/client-certificate/reflect.ts';
1
2
  import type { IAppEvent } from 'routup';
2
3
  import type { ClientCertificateEvidence } from '../../../core/index.ts';
3
4
  import type { CertificateSource } from './types.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"client-certificate.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/client-certificate.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAKxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,wBAAsB,gCAAgC,CAClD,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,iBAAiB,GAC1B,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAqBhD"}
1
+ {"version":3,"file":"client-certificate.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/client-certificate.ts"],"names":[],"mappings":"AAOA,OAAO,6CAA6C,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAKxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,wBAAsB,gCAAgC,CAClD,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,iBAAiB,GAC1B,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAqBhD"}
@@ -1,6 +1,7 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import "../../../core/client-certificate/reflect.mjs";
4
5
  import { buildClientCertificateThumbprint, parseClientCertificateChain } from "../../../core/client-certificate/module.mjs";
5
6
  import "../../../core/index.mjs";
6
7
  import { base64ToArrayBuffer } from "@authup/kit";
@@ -1 +1 @@
1
- {"version":3,"file":"client-certificate.mjs","names":["X509Certificate","BadRequestError","base64ToArrayBuffer","buildClientCertificateThumbprint","parseClientCertificateChain","MAX_CERTIFICATE_HEADER_LENGTH","MAX_CERTIFICATE_CHAIN_LENGTH","STRUCTURED_BINARY_PATTERN","extractClientCertificateEvidence","event","source","undefined","result","extractStandardEvidence","extractForwardedEvidence","thumbprint","certificate","leafHeader","headers","get","chainHeader","certificateHeaderError","assertHeaderLength","parseStructuredCertificate","chain","parseStructuredCertificateList","value","pem","includes","decodeURIComponent","replace","certificates","length","items","split","map","item","trim","some","match","exec","raw","byteLength","toString"],"sources":["../../../../src/adapters/http/request/client-certificate.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 { X509Certificate } from '@peculiar/x509';\nimport { BadRequestError } from '@authup/errors';\nimport { base64ToArrayBuffer } from '@authup/kit';\nimport type { IAppEvent } from 'routup';\nimport type { ClientCertificateEvidence } from '../../../core/index.ts';\nimport {\n buildClientCertificateThumbprint,\n parseClientCertificateChain,\n} from '../../../core/index.ts';\nimport type { CertificateSource } from './types.ts';\n\nconst MAX_CERTIFICATE_HEADER_LENGTH = 128 * 1024;\nconst MAX_CERTIFICATE_CHAIN_LENGTH = 10;\nconst STRUCTURED_BINARY_PATTERN = /^:([A-Za-z0-9+/]*={0,2}):$/;\n\nexport async function extractClientCertificateEvidence(\n event: IAppEvent,\n source: CertificateSource,\n): Promise<ClientCertificateEvidence | undefined> {\n if (source === 'disabled') {\n return undefined;\n }\n\n let result: Omit<ClientCertificateEvidence, 'thumbprint'> | undefined;\n if (source === 'standard') {\n result = extractStandardEvidence(event);\n } else if (source === 'forwarded') {\n result = extractForwardedEvidence(event);\n } else {\n throw new BadRequestError('The client certificate source is not configured correctly.');\n }\n if (!result) {\n return undefined;\n }\n\n return {\n ...result,\n thumbprint: await buildClientCertificateThumbprint(result.certificate),\n };\n}\n\nfunction extractStandardEvidence(\n event: IAppEvent,\n): Omit<ClientCertificateEvidence, 'thumbprint'> | undefined {\n const leafHeader = event.headers.get('client-cert');\n const chainHeader = event.headers.get('client-cert-chain');\n\n if (!leafHeader) {\n if (chainHeader) {\n throw certificateHeaderError();\n }\n return undefined;\n }\n\n assertHeaderLength(leafHeader);\n const certificate = parseStructuredCertificate(leafHeader);\n const chain = chainHeader ? parseStructuredCertificateList(chainHeader) : [];\n\n return { certificate, chain };\n}\n\nfunction extractForwardedEvidence(\n event: IAppEvent,\n): Omit<ClientCertificateEvidence, 'thumbprint'> | undefined {\n const value = event.headers.get('x-forwarded-tls-client-cert');\n if (!value) {\n return undefined;\n }\n\n assertHeaderLength(value);\n\n let pem: string;\n try {\n // Native raw PEM is useful in tests and a few proxy integrations. The\n // NGINX/Traefik contract is escaped PEM: query-style `+` represents a\n // space, while literal base64 plus signs arrive as `%2B`.\n pem = value.includes('-----BEGIN CERTIFICATE-----') ?\n value :\n decodeURIComponent(value.replace(/\\+/g, '%20'));\n } catch {\n throw certificateHeaderError();\n }\n\n let certificates: X509Certificate[];\n try {\n certificates = parseClientCertificateChain(pem);\n } catch {\n throw certificateHeaderError();\n }\n\n if (certificates.length !== 1 || !certificates[0]) {\n throw certificateHeaderError();\n }\n\n return {\n certificate: certificates[0],\n chain: [],\n };\n}\n\nfunction parseStructuredCertificateList(value: string): X509Certificate[] {\n assertHeaderLength(value);\n const items = value.split(',').map((item) => item.trim());\n if (items.length > MAX_CERTIFICATE_CHAIN_LENGTH || items.some((item) => item.length === 0)) {\n throw certificateHeaderError();\n }\n\n return items.map(parseStructuredCertificate);\n}\n\nfunction parseStructuredCertificate(value: string): X509Certificate {\n const match = STRUCTURED_BINARY_PATTERN.exec(value.trim());\n if (!match?.[1]) {\n throw certificateHeaderError();\n }\n\n try {\n const raw = base64ToArrayBuffer(match[1]);\n if (raw.byteLength === 0) {\n throw certificateHeaderError();\n }\n\n const certificate = new X509Certificate(raw);\n if (\n certificate.toString('base64').replace(/=+$/, '') !==\n match[1].replace(/=+$/, '')\n ) {\n throw certificateHeaderError();\n }\n\n return certificate;\n } catch {\n throw certificateHeaderError();\n }\n}\n\nfunction assertHeaderLength(value: string): void {\n if (value.length > MAX_CERTIFICATE_HEADER_LENGTH) {\n throw certificateHeaderError();\n }\n}\n\nfunction certificateHeaderError(): BadRequestError {\n return new BadRequestError('The forwarded client certificate header is malformed.');\n}\n"],"mappings":";;;;;;;;;AAkBA,MAAMK,gCAAgC,MAAM;AAC5C,MAAMC,+BAA+B;AACrC,MAAMC,4BAA4B;AAElC,eAAsBC,iCAClBC,OACAC,QAAyB;CAEzB,IAAIA,WAAW,YACX;CAGJ,IAAIE;CACJ,IAAIF,WAAW,YACXE,SAASC,wBAAwBJ,KAAAA;MAC9B,IAAIC,WAAW,aAClBE,SAASE,yBAAyBL,KAAAA;MAElC,MAAM,IAAIR,gBAAgB,4DAAA;CAE9B,IAAI,CAACW,QACD;CAGJ,OAAO;EACH,GAAGA;EACHG,YAAY,MAAMZ,iCAAiCS,OAAOI,WAAW;CACzE;AACJ;AAEA,SAASH,wBACLJ,OAAgB;CAEhB,MAAMQ,aAAaR,MAAMS,QAAQC,IAAI,aAAA;CACrC,MAAMC,cAAcX,MAAMS,QAAQC,IAAI,mBAAA;CAEtC,IAAI,CAACF,YAAY;EACb,IAAIG,aACA,MAAMC,uBAAAA;EAEV;CACJ;CAEAC,mBAAmBL,UAAAA;CAInB,OAAO;EAAED,aAHWO,2BAA2BN,UAGtCD;EAAaQ,OAFRJ,cAAcK,+BAA+BL,WAAAA,IAAe,CAAA;CAE9C;AAChC;AAEA,SAASN,yBACLL,OAAgB;CAEhB,MAAMiB,QAAQjB,MAAMS,QAAQC,IAAI,6BAAA;CAChC,IAAI,CAACO,OACD;CAGJJ,mBAAmBI,KAAAA;CAEnB,IAAIC;CACJ,IAAI;EAIAA,MAAMD,MAAME,SAAS,6BAAA,IACjBF,QACAG,mBAAmBH,MAAMI,QAAQ,OAAO,KAAA,CAAA;CAChD,QAAQ;EACJ,MAAMT,uBAAAA;CACV;CAEA,IAAIU;CACJ,IAAI;EACAA,eAAe3B,4BAA4BuB,GAAAA;CAC/C,QAAQ;EACJ,MAAMN,uBAAAA;CACV;CAEA,IAAIU,aAAaC,WAAW,KAAK,CAACD,aAAa,IAC3C,MAAMV,uBAAAA;CAGV,OAAO;EACHL,aAAae,aAAa;EAC1BP,OAAO,CAAA;CACX;AACJ;AAEA,SAASC,+BAA+BC,OAAa;CACjDJ,mBAAmBI,KAAAA;CACnB,MAAMO,QAAQP,MAAMQ,MAAM,GAAA,CAAA,CAAKC,KAAKC,SAASA,KAAKC,KAAI,CAAA;CACtD,IAAIJ,MAAMD,SAAS1B,gCAAgC2B,MAAMK,MAAMF,SAASA,KAAKJ,WAAW,CAAA,GACpF,MAAMX,uBAAAA;CAGV,OAAOY,MAAME,IAAIZ,0BAAAA;AACrB;AAEA,SAASA,2BAA2BG,OAAa;CAC7C,MAAMa,QAAQhC,0BAA0BiC,KAAKd,MAAMW,KAAI,CAAA;CACvD,IAAI,CAACE,QAAQ,IACT,MAAMlB,uBAAAA;CAGV,IAAI;EACA,MAAMoB,MAAMvC,oBAAoBqC,MAAM,EAAE;EACxC,IAAIE,IAAIC,eAAe,GACnB,MAAMrB,uBAAAA;EAGV,MAAML,cAAc,IAAIhB,gBAAgByC,GAAAA;EACxC,IACIzB,YAAY2B,SAAS,QAAA,CAAA,CAAUb,QAAQ,OAAO,EAAA,MAC9CS,MAAM,EAAE,CAACT,QAAQ,OAAO,EAAA,GAExB,MAAMT,uBAAAA;EAGV,OAAOL;CACX,QAAQ;EACJ,MAAMK,uBAAAA;CACV;AACJ;AAEA,SAASC,mBAAmBI,OAAa;CACrC,IAAIA,MAAMM,SAAS3B,+BACf,MAAMgB,uBAAAA;AAEd;AAEA,SAASA,yBAAAA;CACL,OAAO,IAAIpB,gBAAgB,uDAAA;AAC/B"}
1
+ {"version":3,"file":"client-certificate.mjs","names":["X509Certificate","BadRequestError","base64ToArrayBuffer","buildClientCertificateThumbprint","parseClientCertificateChain","MAX_CERTIFICATE_HEADER_LENGTH","MAX_CERTIFICATE_CHAIN_LENGTH","STRUCTURED_BINARY_PATTERN","extractClientCertificateEvidence","event","source","undefined","result","extractStandardEvidence","extractForwardedEvidence","thumbprint","certificate","leafHeader","headers","get","chainHeader","certificateHeaderError","assertHeaderLength","parseStructuredCertificate","chain","parseStructuredCertificateList","value","pem","includes","decodeURIComponent","replace","certificates","length","items","split","map","item","trim","some","match","exec","raw","byteLength","toString"],"sources":["../../../../src/adapters/http/request/client-certificate.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 '../../../core/client-certificate/reflect.ts';\nimport { X509Certificate } from '@peculiar/x509';\nimport { BadRequestError } from '@authup/errors';\nimport { base64ToArrayBuffer } from '@authup/kit';\nimport type { IAppEvent } from 'routup';\nimport type { ClientCertificateEvidence } from '../../../core/index.ts';\nimport {\n buildClientCertificateThumbprint,\n parseClientCertificateChain,\n} from '../../../core/index.ts';\nimport type { CertificateSource } from './types.ts';\n\nconst MAX_CERTIFICATE_HEADER_LENGTH = 128 * 1024;\nconst MAX_CERTIFICATE_CHAIN_LENGTH = 10;\nconst STRUCTURED_BINARY_PATTERN = /^:([A-Za-z0-9+/]*={0,2}):$/;\n\nexport async function extractClientCertificateEvidence(\n event: IAppEvent,\n source: CertificateSource,\n): Promise<ClientCertificateEvidence | undefined> {\n if (source === 'disabled') {\n return undefined;\n }\n\n let result: Omit<ClientCertificateEvidence, 'thumbprint'> | undefined;\n if (source === 'standard') {\n result = extractStandardEvidence(event);\n } else if (source === 'forwarded') {\n result = extractForwardedEvidence(event);\n } else {\n throw new BadRequestError('The client certificate source is not configured correctly.');\n }\n if (!result) {\n return undefined;\n }\n\n return {\n ...result,\n thumbprint: await buildClientCertificateThumbprint(result.certificate),\n };\n}\n\nfunction extractStandardEvidence(\n event: IAppEvent,\n): Omit<ClientCertificateEvidence, 'thumbprint'> | undefined {\n const leafHeader = event.headers.get('client-cert');\n const chainHeader = event.headers.get('client-cert-chain');\n\n if (!leafHeader) {\n if (chainHeader) {\n throw certificateHeaderError();\n }\n return undefined;\n }\n\n assertHeaderLength(leafHeader);\n const certificate = parseStructuredCertificate(leafHeader);\n const chain = chainHeader ? parseStructuredCertificateList(chainHeader) : [];\n\n return { certificate, chain };\n}\n\nfunction extractForwardedEvidence(\n event: IAppEvent,\n): Omit<ClientCertificateEvidence, 'thumbprint'> | undefined {\n const value = event.headers.get('x-forwarded-tls-client-cert');\n if (!value) {\n return undefined;\n }\n\n assertHeaderLength(value);\n\n let pem: string;\n try {\n // Native raw PEM is useful in tests and a few proxy integrations. The\n // NGINX/Traefik contract is escaped PEM: query-style `+` represents a\n // space, while literal base64 plus signs arrive as `%2B`.\n pem = value.includes('-----BEGIN CERTIFICATE-----') ?\n value :\n decodeURIComponent(value.replace(/\\+/g, '%20'));\n } catch {\n throw certificateHeaderError();\n }\n\n let certificates: X509Certificate[];\n try {\n certificates = parseClientCertificateChain(pem);\n } catch {\n throw certificateHeaderError();\n }\n\n if (certificates.length !== 1 || !certificates[0]) {\n throw certificateHeaderError();\n }\n\n return {\n certificate: certificates[0],\n chain: [],\n };\n}\n\nfunction parseStructuredCertificateList(value: string): X509Certificate[] {\n assertHeaderLength(value);\n const items = value.split(',').map((item) => item.trim());\n if (items.length > MAX_CERTIFICATE_CHAIN_LENGTH || items.some((item) => item.length === 0)) {\n throw certificateHeaderError();\n }\n\n return items.map(parseStructuredCertificate);\n}\n\nfunction parseStructuredCertificate(value: string): X509Certificate {\n const match = STRUCTURED_BINARY_PATTERN.exec(value.trim());\n if (!match?.[1]) {\n throw certificateHeaderError();\n }\n\n try {\n const raw = base64ToArrayBuffer(match[1]);\n if (raw.byteLength === 0) {\n throw certificateHeaderError();\n }\n\n const certificate = new X509Certificate(raw);\n if (\n certificate.toString('base64').replace(/=+$/, '') !==\n match[1].replace(/=+$/, '')\n ) {\n throw certificateHeaderError();\n }\n\n return certificate;\n } catch {\n throw certificateHeaderError();\n }\n}\n\nfunction assertHeaderLength(value: string): void {\n if (value.length > MAX_CERTIFICATE_HEADER_LENGTH) {\n throw certificateHeaderError();\n }\n}\n\nfunction certificateHeaderError(): BadRequestError {\n return new BadRequestError('The forwarded client certificate header is malformed.');\n}\n"],"mappings":";;;;;;;;;;AAmBA,MAAMK,gCAAgC,MAAM;AAC5C,MAAMC,+BAA+B;AACrC,MAAMC,4BAA4B;AAElC,eAAsBC,iCAClBC,OACAC,QAAyB;CAEzB,IAAIA,WAAW,YACX;CAGJ,IAAIE;CACJ,IAAIF,WAAW,YACXE,SAASC,wBAAwBJ,KAAAA;MAC9B,IAAIC,WAAW,aAClBE,SAASE,yBAAyBL,KAAAA;MAElC,MAAM,IAAIR,gBAAgB,4DAAA;CAE9B,IAAI,CAACW,QACD;CAGJ,OAAO;EACH,GAAGA;EACHG,YAAY,MAAMZ,iCAAiCS,OAAOI,WAAW;CACzE;AACJ;AAEA,SAASH,wBACLJ,OAAgB;CAEhB,MAAMQ,aAAaR,MAAMS,QAAQC,IAAI,aAAA;CACrC,MAAMC,cAAcX,MAAMS,QAAQC,IAAI,mBAAA;CAEtC,IAAI,CAACF,YAAY;EACb,IAAIG,aACA,MAAMC,uBAAAA;EAEV;CACJ;CAEAC,mBAAmBL,UAAAA;CAInB,OAAO;EAAED,aAHWO,2BAA2BN,UAGtCD;EAAaQ,OAFRJ,cAAcK,+BAA+BL,WAAAA,IAAe,CAAA;CAE9C;AAChC;AAEA,SAASN,yBACLL,OAAgB;CAEhB,MAAMiB,QAAQjB,MAAMS,QAAQC,IAAI,6BAAA;CAChC,IAAI,CAACO,OACD;CAGJJ,mBAAmBI,KAAAA;CAEnB,IAAIC;CACJ,IAAI;EAIAA,MAAMD,MAAME,SAAS,6BAAA,IACjBF,QACAG,mBAAmBH,MAAMI,QAAQ,OAAO,KAAA,CAAA;CAChD,QAAQ;EACJ,MAAMT,uBAAAA;CACV;CAEA,IAAIU;CACJ,IAAI;EACAA,eAAe3B,4BAA4BuB,GAAAA;CAC/C,QAAQ;EACJ,MAAMN,uBAAAA;CACV;CAEA,IAAIU,aAAaC,WAAW,KAAK,CAACD,aAAa,IAC3C,MAAMV,uBAAAA;CAGV,OAAO;EACHL,aAAae,aAAa;EAC1BP,OAAO,CAAA;CACX;AACJ;AAEA,SAASC,+BAA+BC,OAAa;CACjDJ,mBAAmBI,KAAAA;CACnB,MAAMO,QAAQP,MAAMQ,MAAM,GAAA,CAAA,CAAKC,KAAKC,SAASA,KAAKC,KAAI,CAAA;CACtD,IAAIJ,MAAMD,SAAS1B,gCAAgC2B,MAAMK,MAAMF,SAASA,KAAKJ,WAAW,CAAA,GACpF,MAAMX,uBAAAA;CAGV,OAAOY,MAAME,IAAIZ,0BAAAA;AACrB;AAEA,SAASA,2BAA2BG,OAAa;CAC7C,MAAMa,QAAQhC,0BAA0BiC,KAAKd,MAAMW,KAAI,CAAA;CACvD,IAAI,CAACE,QAAQ,IACT,MAAMlB,uBAAAA;CAGV,IAAI;EACA,MAAMoB,MAAMvC,oBAAoBqC,MAAM,EAAE;EACxC,IAAIE,IAAIC,eAAe,GACnB,MAAMrB,uBAAAA;EAGV,MAAML,cAAc,IAAIhB,gBAAgByC,GAAAA;EACxC,IACIzB,YAAY2B,SAAS,QAAA,CAAA,CAAUb,QAAQ,OAAO,EAAA,MAC9CS,MAAM,EAAE,CAACT,QAAQ,OAAO,EAAA,GAExB,MAAMT,uBAAAA;EAGV,OAAOL;CACX,QAAQ;EACJ,MAAMK,uBAAAA;CACV;AACJ;AAEA,SAASC,mBAAmBI,OAAa;CACrC,IAAIA,MAAMM,SAAS3B,+BACf,MAAMgB,uBAAAA;AAEd;AAEA,SAASA,yBAAAA;CACL,OAAO,IAAIpB,gBAAgB,uDAAA;AAC/B"}
@@ -4,7 +4,7 @@ import.meta.url;
4
4
  import { isUUID } from "@authup/kit";
5
5
  //#region src/adapters/http/request/helpers/body-realm-id.ts
6
6
  function getBodyRealmID(body) {
7
- const realmId = body?.realm_id;
7
+ const realmId = body?.realmId;
8
8
  if (typeof realmId !== "string") return;
9
9
  if (!isUUID(realmId)) return;
10
10
  return realmId;
@@ -1 +1 @@
1
- {"version":3,"file":"body-realm-id.mjs","names":["isUUID","getBodyRealmID","body","realmId","realm_id","undefined"],"sources":["../../../../../src/adapters/http/request/helpers/body-realm-id.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 { isUUID } from '@authup/kit';\n\nexport function getBodyRealmID(body: Record<string, any> | undefined) : string | undefined {\n const realmId = body?.realm_id;\n if (typeof realmId !== 'string') {\n return undefined;\n }\n\n if (!isUUID(realmId)) {\n return undefined;\n }\n\n return realmId;\n}\n"],"mappings":";;;;;AASA,SAAgBC,eAAeC,MAAqC;CAChE,MAAMC,UAAUD,MAAME;CACtB,IAAI,OAAOD,YAAY,UACnB;CAGJ,IAAI,CAACH,OAAOG,OAAAA,GACR;CAGJ,OAAOA;AACX"}
1
+ {"version":3,"file":"body-realm-id.mjs","names":["isUUID","getBodyRealmID","body","realmId","undefined"],"sources":["../../../../../src/adapters/http/request/helpers/body-realm-id.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 { isUUID } from '@authup/kit';\n\nexport function getBodyRealmID(body: Record<string, any> | undefined) : string | undefined {\n const realmId = body?.realmId;\n if (typeof realmId !== 'string') {\n return undefined;\n }\n\n if (!isUUID(realmId)) {\n return undefined;\n }\n\n return realmId;\n}\n"],"mappings":";;;;;AASA,SAAgBC,eAAeC,MAAqC;CAChE,MAAMC,UAAUD,MAAMC;CACtB,IAAI,OAAOA,YAAY,UACnB;CAGJ,IAAI,CAACH,OAAOG,OAAAA,GACR;CAGJ,OAAOA;AACX"}
@@ -4,8 +4,8 @@ export declare class RequestIdentity {
4
4
  readonly raw: Identity;
5
5
  constructor(identity: Identity);
6
6
  get clientId(): any;
7
- get data(): import("@authup/core-kit").Client | import("@authup/core-kit").Robot | import("@authup/core-kit").User;
8
- get type(): "user" | "client" | "robot";
7
+ get data(): import("@authup/core-kit").Client | import("@authup/core-kit").User;
8
+ get type(): "user" | "client";
9
9
  get id(): string;
10
10
  get realmId(): string;
11
11
  get realmName(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/identity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,qBAAa,eAAe;IACxB,SAAgB,GAAG,EAAG,QAAQ,CAAC;gBAEnB,QAAQ,EAAE,QAAQ;IAI9B,IAAI,QAAQ,QAOX;IAED,IAAI,IAAI,2GAEP;IAED,IAAI,IAAI,gCAEP;IAED,IAAI,EAAE,WAEL;IAED,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,WAEZ;CACJ;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAI,eAAe,GAAG,SAAS,CAEjF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAI,IAAI,CAU7F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAI,eAAe,CAO3E"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/identity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,qBAAa,eAAe;IACxB,SAAgB,GAAG,EAAG,QAAQ,CAAC;gBAEnB,QAAQ,EAAE,QAAQ;IAI9B,IAAI,QAAQ,QAOX;IAED,IAAI,IAAI,wEAEP;IAED,IAAI,IAAI,sBAEP;IAED,IAAI,EAAE,WAEL;IAED,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,WAEZ;CACJ;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAI,eAAe,GAAG,SAAS,CAEjF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAI,IAAI,CAU7F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAI,eAAe,CAO3E"}
@@ -13,7 +13,7 @@ var RequestIdentity = class {
13
13
  get clientId() {
14
14
  const { raw } = this;
15
15
  if (raw.type === IdentityType.CLIENT) return raw.data.id;
16
- return raw.data.client_id || null;
16
+ return raw.data.clientId || null;
17
17
  }
18
18
  get data() {
19
19
  return this.raw.data;
@@ -25,7 +25,7 @@ var RequestIdentity = class {
25
25
  return this.raw.data.id;
26
26
  }
27
27
  get realmId() {
28
- return this.raw.data.realm_id || this.raw.data.realm?.id;
28
+ return this.raw.data.realmId || this.raw.data.realm?.id;
29
29
  }
30
30
  get realmName() {
31
31
  return this.raw.data.realm?.name;
@@ -1 +1 @@
1
- {"version":3,"file":"identity.mjs","names":["IdentityType","UnauthorizedError","sym","Symbol","RequestIdentity","raw","identity","clientId","type","CLIENT","data","id","client_id","realmId","realm_id","realm","realmName","name","useRequestIdentity","event","store","setRequestIdentity","input","useRequestIdentityOrFail"],"sources":["../../../../../src/adapters/http/request/helpers/identity.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 { Identity } from '@authup/core-kit';\nimport { IdentityType } from '@authup/core-kit';\nimport { UnauthorizedError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\n\nconst sym = Symbol('RIdentity');\n\nexport class RequestIdentity {\n public readonly raw : Identity;\n\n constructor(identity: Identity) {\n this.raw = identity;\n }\n\n get clientId() {\n const { raw } = this;\n if (raw.type === IdentityType.CLIENT) {\n return raw.data.id;\n }\n\n return raw.data.client_id || null;\n }\n\n get data() {\n return this.raw.data;\n }\n\n get type() {\n return this.raw.type;\n }\n\n get id() {\n return this.raw.data.id;\n }\n\n get realmId() {\n return this.raw.data.realm_id || this.raw.data.realm?.id;\n }\n\n get realmName() {\n return this.raw.data.realm?.name;\n }\n}\n\nexport function useRequestIdentity(event: IAppEvent) : RequestIdentity | undefined {\n return event.store[sym] as RequestIdentity | undefined;\n}\n\nexport function setRequestIdentity(event: IAppEvent, input: Identity | RequestIdentity) : void {\n let data : RequestIdentity;\n\n if (input instanceof RequestIdentity) {\n data = input;\n } else {\n data = new RequestIdentity(input);\n }\n\n event.store[sym] = data;\n}\n\nexport function useRequestIdentityOrFail(event: IAppEvent) : RequestIdentity {\n const identity = useRequestIdentity(event);\n if (!identity) {\n throw new UnauthorizedError();\n }\n\n return identity;\n}\n"],"mappings":";;;;;;AAYA,MAAME,MAAMC,OAAO,WAAA;AAEnB,IAAaC,kBAAb,MAAaA;CACOC;CAEhB,YAAYC,UAAoB;EAC5B,KAAKD,MAAMC;CACf;CAEA,IAAIC,WAAW;EACX,MAAM,EAAEF,QAAQ;EAChB,IAAIA,IAAIG,SAASR,aAAaS,QAC1B,OAAOJ,IAAIK,KAAKC;EAGpB,OAAON,IAAIK,KAAKE,aAAa;CACjC;CAEA,IAAIF,OAAO;EACP,OAAO,KAAKL,IAAIK;CACpB;CAEA,IAAIF,OAAO;EACP,OAAO,KAAKH,IAAIG;CACpB;CAEA,IAAIG,KAAK;EACL,OAAO,KAAKN,IAAIK,KAAKC;CACzB;CAEA,IAAIE,UAAU;EACV,OAAO,KAAKR,IAAIK,KAAKI,YAAY,KAAKT,IAAIK,KAAKK,OAAOJ;CAC1D;CAEA,IAAIK,YAAY;EACZ,OAAO,KAAKX,IAAIK,KAAKK,OAAOE;CAChC;AACJ;AAEA,SAAgBC,mBAAmBC,OAAgB;CAC/C,OAAOA,MAAMC,MAAMlB;AACvB;AAEA,SAAgBmB,mBAAmBF,OAAkBG,OAAiC;CAClF,IAAIZ;CAEJ,IAAIY,iBAAiBlB,iBACjBM,OAAOY;MAEPZ,OAAO,IAAIN,gBAAgBkB,KAAAA;CAG/BH,MAAMC,MAAMlB,OAAOQ;AACvB;AAEA,SAAgBa,yBAAyBJ,OAAgB;CACrD,MAAMb,WAAWY,mBAAmBC,KAAAA;CACpC,IAAI,CAACb,UACD,MAAM,IAAIL,kBAAAA;CAGd,OAAOK;AACX"}
1
+ {"version":3,"file":"identity.mjs","names":["IdentityType","UnauthorizedError","sym","Symbol","RequestIdentity","raw","identity","clientId","type","CLIENT","data","id","realmId","realm","realmName","name","useRequestIdentity","event","store","setRequestIdentity","input","useRequestIdentityOrFail"],"sources":["../../../../../src/adapters/http/request/helpers/identity.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 { Identity } from '@authup/core-kit';\nimport { IdentityType } from '@authup/core-kit';\nimport { UnauthorizedError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\n\nconst sym = Symbol('RIdentity');\n\nexport class RequestIdentity {\n public readonly raw : Identity;\n\n constructor(identity: Identity) {\n this.raw = identity;\n }\n\n get clientId() {\n const { raw } = this;\n if (raw.type === IdentityType.CLIENT) {\n return raw.data.id;\n }\n\n return raw.data.clientId || null;\n }\n\n get data() {\n return this.raw.data;\n }\n\n get type() {\n return this.raw.type;\n }\n\n get id() {\n return this.raw.data.id;\n }\n\n get realmId() {\n return this.raw.data.realmId || this.raw.data.realm?.id;\n }\n\n get realmName() {\n return this.raw.data.realm?.name;\n }\n}\n\nexport function useRequestIdentity(event: IAppEvent) : RequestIdentity | undefined {\n return event.store[sym] as RequestIdentity | undefined;\n}\n\nexport function setRequestIdentity(event: IAppEvent, input: Identity | RequestIdentity) : void {\n let data : RequestIdentity;\n\n if (input instanceof RequestIdentity) {\n data = input;\n } else {\n data = new RequestIdentity(input);\n }\n\n event.store[sym] = data;\n}\n\nexport function useRequestIdentityOrFail(event: IAppEvent) : RequestIdentity {\n const identity = useRequestIdentity(event);\n if (!identity) {\n throw new UnauthorizedError();\n }\n\n return identity;\n}\n"],"mappings":";;;;;;AAYA,MAAME,MAAMC,OAAO,WAAA;AAEnB,IAAaC,kBAAb,MAAaA;CACOC;CAEhB,YAAYC,UAAoB;EAC5B,KAAKD,MAAMC;CACf;CAEA,IAAIC,WAAW;EACX,MAAM,EAAEF,QAAQ;EAChB,IAAIA,IAAIG,SAASR,aAAaS,QAC1B,OAAOJ,IAAIK,KAAKC;EAGpB,OAAON,IAAIK,KAAKH,YAAY;CAChC;CAEA,IAAIG,OAAO;EACP,OAAO,KAAKL,IAAIK;CACpB;CAEA,IAAIF,OAAO;EACP,OAAO,KAAKH,IAAIG;CACpB;CAEA,IAAIG,KAAK;EACL,OAAO,KAAKN,IAAIK,KAAKC;CACzB;CAEA,IAAIC,UAAU;EACV,OAAO,KAAKP,IAAIK,KAAKE,WAAW,KAAKP,IAAIK,KAAKG,OAAOF;CACzD;CAEA,IAAIG,YAAY;EACZ,OAAO,KAAKT,IAAIK,KAAKG,OAAOE;CAChC;AACJ;AAEA,SAAgBC,mBAAmBC,OAAgB;CAC/C,OAAOA,MAAMC,MAAMhB;AACvB;AAEA,SAAgBiB,mBAAmBF,OAAkBG,OAAiC;CAClF,IAAIV;CAEJ,IAAIU,iBAAiBhB,iBACjBM,OAAOU;MAEPV,OAAO,IAAIN,gBAAgBgB,KAAAA;CAG/BH,MAAMC,MAAMhB,OAAOQ;AACvB;AAEA,SAAgBW,yBAAyBJ,OAAgB;CACrD,MAAMX,WAAWU,mBAAmBC,KAAAA;CACpC,IAAI,CAACX,UACD,MAAM,IAAIL,kBAAAA;CAGd,OAAOK;AACX"}
@@ -14,7 +14,7 @@ function getRequestRealmID(event) {
14
14
  }
15
15
  function applyRouteRealmIDToBody(event, data) {
16
16
  const routeRealmId = getRequestRealmID(event);
17
- if (routeRealmId) data.realm_id = routeRealmId;
17
+ if (routeRealmId) data.realmId = routeRealmId;
18
18
  }
19
19
  //#endregion
20
20
  export { applyRouteRealmIDToBody, getRequestRealmID, setRequestRealmID };
@@ -1 +1 @@
1
- {"version":3,"file":"realm-id.mjs","names":["getRequestStringParam","sym","Symbol","setRequestRealmID","event","id","store","getRequestRealmID","stored","applyRouteRealmIDToBody","data","routeRealmId","realm_id"],"sources":["../../../../../src/adapters/http/request/helpers/realm-id.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IAppEvent } from 'routup';\nimport { getRequestStringParam } from './param-id.ts';\n\nconst sym = Symbol('RRealmID');\n\nexport function setRequestRealmID(event: IAppEvent, id: string): void {\n event.store[sym] = id;\n}\n\nexport function getRequestRealmID(event: IAppEvent): string | undefined {\n const stored = event.store[sym] as string | undefined;\n if (stored) {\n return stored;\n }\n return getRequestStringParam(event, 'realmId');\n}\n\nexport function applyRouteRealmIDToBody(event: IAppEvent, data: Record<string, any>): void {\n const routeRealmId = getRequestRealmID(event);\n if (routeRealmId) {\n data.realm_id = routeRealmId;\n }\n}\n"],"mappings":";;;;;AAUA,MAAMC,MAAMC,OAAO,UAAA;AAEnB,SAAgBC,kBAAkBC,OAAkBC,IAAU;CAC1DD,MAAME,MAAML,OAAOI;AACvB;AAEA,SAAgBE,kBAAkBH,OAAgB;CAC9C,MAAMI,SAASJ,MAAME,MAAML;CAC3B,IAAIO,QACA,OAAOA;CAEX,OAAOR,sBAAsBI,OAAO,SAAA;AACxC;AAEA,SAAgBK,wBAAwBL,OAAkBM,MAAyB;CAC/E,MAAMC,eAAeJ,kBAAkBH,KAAAA;CACvC,IAAIO,cACAD,KAAKE,WAAWD;AAExB"}
1
+ {"version":3,"file":"realm-id.mjs","names":["getRequestStringParam","sym","Symbol","setRequestRealmID","event","id","store","getRequestRealmID","stored","applyRouteRealmIDToBody","data","routeRealmId","realmId"],"sources":["../../../../../src/adapters/http/request/helpers/realm-id.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IAppEvent } from 'routup';\nimport { getRequestStringParam } from './param-id.ts';\n\nconst sym = Symbol('RRealmID');\n\nexport function setRequestRealmID(event: IAppEvent, id: string): void {\n event.store[sym] = id;\n}\n\nexport function getRequestRealmID(event: IAppEvent): string | undefined {\n const stored = event.store[sym] as string | undefined;\n if (stored) {\n return stored;\n }\n return getRequestStringParam(event, 'realmId');\n}\n\nexport function applyRouteRealmIDToBody(event: IAppEvent, data: Record<string, any>): void {\n const routeRealmId = getRequestRealmID(event);\n if (routeRealmId) {\n data.realmId = routeRealmId;\n }\n}\n"],"mappings":";;;;;AAUA,MAAMC,MAAMC,OAAO,UAAA;AAEnB,SAAgBC,kBAAkBC,OAAkBC,IAAU;CAC1DD,MAAME,MAAML,OAAOI;AACvB;AAEA,SAAgBE,kBAAkBH,OAAgB;CAC9C,MAAMI,SAASJ,MAAME,MAAML;CAC3B,IAAIO,QACA,OAAOA;CAEX,OAAOR,sBAAsBI,OAAO,SAAA;AACxC;AAEA,SAAgBK,wBAAwBL,OAAkBM,MAAyB;CAC/E,MAAMC,eAAeJ,kBAAkBH,KAAAA;CACvC,IAAIO,cACAD,KAAKE,UAAUD;AAEvB"}
@@ -1,4 +1,4 @@
1
- import type { IPermissionEvaluator, PermissionEvaluationContext } from '@authup/access';
1
+ import type { IPermissionEvaluator, PermissionCompileContext, PermissionCompileResult, PermissionEvaluationContext } from '@authup/access';
2
2
  import type { IAppEvent } from 'routup';
3
3
  export declare class RequestPermissionEvaluator implements IPermissionEvaluator {
4
4
  protected event: IAppEvent;
@@ -8,6 +8,7 @@ export declare class RequestPermissionEvaluator implements IPermissionEvaluator
8
8
  preEvaluate(ctx: PermissionEvaluationContext): Promise<void>;
9
9
  preEvaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
10
10
  evaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
11
- protected extendContext(ctx: PermissionEvaluationContext): PermissionEvaluationContext;
11
+ compile(ctx: PermissionCompileContext): Promise<PermissionCompileResult>;
12
+ protected extendContext<T extends PermissionEvaluationContext | PermissionCompileContext>(ctx: T): T;
12
13
  }
13
14
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/permission/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACR,oBAAoB,EACpB,2BAA2B,EAC9B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,qBAAa,0BAA2B,YAAW,oBAAoB;IACnE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAE3B,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC;gBAE9B,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB;IAOvD,QAAQ,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAI1D,WAAW,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAM7D,gBAAgB,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAIlE,aAAa,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAMrE,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,2BAA2B;CAiB3D"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/permission/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACR,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC9B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,qBAAa,0BAA2B,YAAW,oBAAoB;IACnE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAE3B,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC;gBAE9B,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB;IAOvD,QAAQ,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAI1D,WAAW,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAM7D,gBAAgB,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAIlE,aAAa,CAAC,GAAG,EAAE,2BAA2B,GAAI,OAAO,CAAC,IAAI,CAAC;IAM/D,OAAO,CAAC,GAAG,EAAE,wBAAwB,GAAI,OAAO,CAAC,uBAAuB,CAAC;IAM/E,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,2BAA2B,GAAG,wBAAwB,EAAE,GAAG,EAAE,CAAC,GAAI,CAAC;CAiBxG"}
@@ -26,6 +26,9 @@ var RequestPermissionEvaluator = class {
26
26
  async evaluateOneOf(ctx) {
27
27
  return this.evaluator.evaluateOneOf(this.extendContext(ctx));
28
28
  }
29
+ async compile(ctx) {
30
+ return this.evaluator.compile(this.extendContext(ctx));
31
+ }
29
32
  extendContext(ctx) {
30
33
  const scopes = useRequestScopes(this.event);
31
34
  const identity = useRequestIdentity(this.event);