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

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 (1255) 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 +54 -36
  7. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  8. package/dist/adapters/database/domains/client/subscriber.mjs +3 -3
  9. package/dist/adapters/database/domains/client/subscriber.mjs.map +1 -1
  10. package/dist/adapters/database/domains/client-permission/entity.d.ts +10 -10
  11. package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
  12. package/dist/adapters/database/domains/client-permission/entity.mjs +42 -23
  13. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  14. package/dist/adapters/database/domains/client-permission/subscriber.mjs +4 -4
  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 +31 -19
  19. package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
  20. package/dist/adapters/database/domains/client-role/subscriber.mjs +4 -4
  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 +31 -19
  25. package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
  26. package/dist/adapters/database/domains/client-scope/subscriber.mjs +2 -2
  27. package/dist/adapters/database/domains/client-scope/subscriber.mjs.map +1 -1
  28. package/dist/adapters/database/domains/consent/entity.d.ts +7 -7
  29. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -1
  30. package/dist/adapters/database/domains/consent/entity.mjs +35 -20
  31. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -1
  32. package/dist/adapters/database/domains/consent/subscriber.mjs +4 -4
  33. package/dist/adapters/database/domains/consent/subscriber.mjs.map +1 -1
  34. package/dist/adapters/database/domains/constants.d.ts +0 -3
  35. package/dist/adapters/database/domains/constants.d.ts.map +1 -1
  36. package/dist/adapters/database/domains/constants.mjs +0 -3
  37. package/dist/adapters/database/domains/constants.mjs.map +1 -1
  38. package/dist/adapters/database/domains/event/entity.d.ts +13 -13
  39. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -1
  40. package/dist/adapters/database/domains/event/entity.mjs +45 -30
  41. package/dist/adapters/database/domains/event/entity.mjs.map +1 -1
  42. package/dist/adapters/database/domains/identity-provider/entity.d.ts +4 -4
  43. package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
  44. package/dist/adapters/database/domains/identity-provider/entity.mjs +19 -12
  45. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  46. package/dist/adapters/database/domains/identity-provider/repository.mjs +3 -3
  47. package/dist/adapters/database/domains/identity-provider/repository.mjs.map +1 -1
  48. package/dist/adapters/database/domains/identity-provider/subscriber.mjs +3 -3
  49. package/dist/adapters/database/domains/identity-provider/subscriber.mjs.map +1 -1
  50. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts +15 -15
  51. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
  52. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +52 -33
  53. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  54. package/dist/adapters/database/domains/identity-provider-account/subscriber.mjs +2 -2
  55. package/dist/adapters/database/domains/identity-provider-account/subscriber.mjs.map +1 -1
  56. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts +4 -4
  57. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
  58. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +20 -11
  59. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  60. package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs +2 -2
  61. package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
  62. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts +9 -9
  63. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
  64. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +31 -21
  65. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  66. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts +10 -10
  67. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
  68. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +34 -23
  69. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  70. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts +10 -10
  71. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
  72. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +34 -23
  73. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  74. package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs +3 -3
  75. package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs.map +1 -1
  76. package/dist/adapters/database/domains/index.d.ts +0 -3
  77. package/dist/adapters/database/domains/index.d.ts.map +1 -1
  78. package/dist/adapters/database/domains/index.mjs +1 -10
  79. package/dist/adapters/database/domains/key/entity.d.ts +6 -6
  80. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  81. package/dist/adapters/database/domains/key/entity.mjs +26 -16
  82. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  83. package/dist/adapters/database/domains/permission/entity.d.ts +7 -7
  84. package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
  85. package/dist/adapters/database/domains/permission/entity.mjs +35 -20
  86. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  87. package/dist/adapters/database/domains/permission/subscriber.mjs +4 -4
  88. package/dist/adapters/database/domains/permission/subscriber.mjs.map +1 -1
  89. package/dist/adapters/database/domains/permission-policy/entity.d.ts +8 -8
  90. package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
  91. package/dist/adapters/database/domains/permission-policy/entity.mjs +31 -19
  92. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  93. package/dist/adapters/database/domains/policy/entity.d.ts +6 -6
  94. package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
  95. package/dist/adapters/database/domains/policy/entity.mjs +30 -16
  96. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  97. package/dist/adapters/database/domains/policy/repository.mjs +3 -3
  98. package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
  99. package/dist/adapters/database/domains/policy/subscriber.mjs +2 -2
  100. package/dist/adapters/database/domains/policy/subscriber.mjs.map +1 -1
  101. package/dist/adapters/database/domains/policy-attribute/entity.d.ts +4 -4
  102. package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
  103. package/dist/adapters/database/domains/policy-attribute/entity.mjs +20 -11
  104. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  105. package/dist/adapters/database/domains/policy-attribute/subscriber.mjs +4 -4
  106. package/dist/adapters/database/domains/policy-attribute/subscriber.mjs.map +1 -1
  107. package/dist/adapters/database/domains/realm/entity.d.ts +4 -4
  108. package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
  109. package/dist/adapters/database/domains/realm/entity.mjs +18 -10
  110. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  111. package/dist/adapters/database/domains/realm/subscriber.mjs +2 -2
  112. package/dist/adapters/database/domains/realm/subscriber.mjs.map +1 -1
  113. package/dist/adapters/database/domains/role/entity.d.ts +6 -6
  114. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  115. package/dist/adapters/database/domains/role/entity.mjs +32 -18
  116. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  117. package/dist/adapters/database/domains/role/repository.mjs +3 -3
  118. package/dist/adapters/database/domains/role/repository.mjs.map +1 -1
  119. package/dist/adapters/database/domains/role/subscriber.mjs +3 -3
  120. package/dist/adapters/database/domains/role/subscriber.mjs.map +1 -1
  121. package/dist/adapters/database/domains/role-attribute/entity.d.ts +4 -4
  122. package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
  123. package/dist/adapters/database/domains/role-attribute/entity.mjs +20 -11
  124. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  125. package/dist/adapters/database/domains/role-attribute/subscriber.mjs +4 -4
  126. package/dist/adapters/database/domains/role-attribute/subscriber.mjs.map +1 -1
  127. package/dist/adapters/database/domains/role-permission/entity.d.ts +10 -10
  128. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  129. package/dist/adapters/database/domains/role-permission/entity.mjs +39 -23
  130. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  131. package/dist/adapters/database/domains/role-permission/subscriber.mjs +4 -4
  132. package/dist/adapters/database/domains/role-permission/subscriber.mjs.map +1 -1
  133. package/dist/adapters/database/domains/scope/entity.d.ts +5 -5
  134. package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
  135. package/dist/adapters/database/domains/scope/entity.mjs +25 -14
  136. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  137. package/dist/adapters/database/domains/scope/subscriber.mjs +3 -3
  138. package/dist/adapters/database/domains/scope/subscriber.mjs.map +1 -1
  139. package/dist/adapters/database/domains/session/entity.d.ts +14 -17
  140. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  141. package/dist/adapters/database/domains/session/entity.mjs +44 -44
  142. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  143. package/dist/adapters/database/domains/session-token/entity.d.ts +9 -9
  144. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
  145. package/dist/adapters/database/domains/session-token/entity.mjs +34 -21
  146. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
  147. package/dist/adapters/database/domains/trust-anchor/entity.d.ts +3 -3
  148. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -1
  149. package/dist/adapters/database/domains/trust-anchor/entity.mjs +16 -10
  150. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -1
  151. package/dist/adapters/database/domains/user/entity.d.ts +12 -12
  152. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  153. package/dist/adapters/database/domains/user/entity.mjs +44 -29
  154. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  155. package/dist/adapters/database/domains/user/repository.mjs +3 -3
  156. package/dist/adapters/database/domains/user/repository.mjs.map +1 -1
  157. package/dist/adapters/database/domains/user/subscriber.mjs +3 -3
  158. package/dist/adapters/database/domains/user/subscriber.mjs.map +1 -1
  159. package/dist/adapters/database/domains/user-attribute/entity.d.ts +4 -4
  160. package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
  161. package/dist/adapters/database/domains/user-attribute/entity.mjs +17 -11
  162. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  163. package/dist/adapters/database/domains/user-attribute/subscriber.mjs +4 -4
  164. package/dist/adapters/database/domains/user-attribute/subscriber.mjs.map +1 -1
  165. package/dist/adapters/database/domains/user-authenticator/entity.d.ts +5 -5
  166. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -1
  167. package/dist/adapters/database/domains/user-authenticator/entity.mjs +26 -13
  168. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -1
  169. package/dist/adapters/database/domains/user-permission/entity.d.ts +10 -10
  170. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  171. package/dist/adapters/database/domains/user-permission/entity.mjs +39 -23
  172. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  173. package/dist/adapters/database/domains/user-permission/subscriber.mjs +4 -4
  174. package/dist/adapters/database/domains/user-permission/subscriber.mjs.map +1 -1
  175. package/dist/adapters/database/domains/user-role/entity.d.ts +8 -8
  176. package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
  177. package/dist/adapters/database/domains/user-role/entity.mjs +31 -19
  178. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  179. package/dist/adapters/database/domains/user-role/subscriber.mjs +4 -4
  180. package/dist/adapters/database/domains/user-role/subscriber.mjs.map +1 -1
  181. package/dist/adapters/database/errors/driver.mjs.map +1 -1
  182. package/dist/adapters/database/extra-attribute-repository/adapter.mjs.map +1 -1
  183. package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
  184. package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
  185. package/dist/adapters/database/helpers/is-supported.mjs +1 -1
  186. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  187. package/dist/adapters/database/index.mjs +1 -7
  188. package/dist/adapters/database/migrations/mysql/1779267068441-Default.mjs.map +1 -1
  189. package/dist/adapters/database/migrations/mysql/1779300000000-Default.mjs.map +1 -1
  190. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.d.ts +12 -0
  191. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.d.ts.map +1 -0
  192. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.mjs +42 -0
  193. package/dist/adapters/database/migrations/mysql/1784289540000-CamelCaseAttributes.mjs.map +1 -0
  194. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.d.ts +18 -0
  195. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.d.ts.map +1 -0
  196. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.mjs +161 -0
  197. package/dist/adapters/database/migrations/mysql/1784460916000-RemoveRobots.mjs.map +1 -0
  198. package/dist/adapters/database/migrations/postgres/1779267068441-Default.mjs.map +1 -1
  199. package/dist/adapters/database/migrations/postgres/1779300000000-Default.mjs.map +1 -1
  200. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.d.ts +12 -0
  201. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.d.ts.map +1 -0
  202. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.mjs +42 -0
  203. package/dist/adapters/database/migrations/postgres/1784289540000-CamelCaseAttributes.mjs.map +1 -0
  204. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.d.ts +18 -0
  205. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.d.ts.map +1 -0
  206. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.mjs +167 -0
  207. package/dist/adapters/database/migrations/postgres/1784460916000-RemoveRobots.mjs.map +1 -0
  208. package/dist/adapters/database/subscriber/module.mjs.map +1 -1
  209. package/dist/adapters/http/adapters/index.mjs +1 -2
  210. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +2 -2
  211. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  212. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +3 -3
  213. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  214. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +1 -1
  215. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  216. package/dist/adapters/http/adapters/oauth2/grant-types/index.d.ts +0 -1
  217. package/dist/adapters/http/adapters/oauth2/grant-types/index.d.ts.map +1 -1
  218. package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +1 -2
  219. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +1 -1
  220. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  221. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +1 -1
  222. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  223. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +1 -4
  224. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  225. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts.map +1 -1
  226. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +0 -3
  227. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
  228. package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.mjs.map +1 -1
  229. package/dist/adapters/http/adapters/oauth2/index.mjs +1 -2
  230. package/dist/adapters/http/controllers/entities/client/module.mjs +2 -2
  231. package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
  232. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +2 -2
  233. package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
  234. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs +3 -3
  235. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs.map +1 -1
  236. package/dist/adapters/http/controllers/entities/client-role/module.mjs +2 -2
  237. package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
  238. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs +2 -2
  239. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs.map +1 -1
  240. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +2 -2
  241. package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
  242. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs +2 -2
  243. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs.map +1 -1
  244. package/dist/adapters/http/controllers/entities/consent/module.mjs +2 -2
  245. package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -1
  246. package/dist/adapters/http/controllers/entities/event/module.mjs +2 -2
  247. package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -1
  248. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +2 -2
  249. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
  250. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  251. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +21 -15
  252. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  253. package/dist/adapters/http/controllers/entities/index.d.ts +0 -3
  254. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  255. package/dist/adapters/http/controllers/entities/index.mjs +1 -9
  256. package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -1
  257. package/dist/adapters/http/controllers/entities/key/module.mjs +3 -9
  258. package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -1
  259. package/dist/adapters/http/controllers/entities/permission/module.mjs +2 -2
  260. package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
  261. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +2 -2
  262. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
  263. package/dist/adapters/http/controllers/entities/policy/module.mjs +2 -2
  264. package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
  265. package/dist/adapters/http/controllers/entities/policy/utils/validation.d.ts +1 -1
  266. package/dist/adapters/http/controllers/entities/policy/utils/validation.d.ts.map +1 -1
  267. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs +3 -3
  268. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs.map +1 -1
  269. package/dist/adapters/http/controllers/entities/realm/module.mjs +2 -2
  270. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  271. package/dist/adapters/http/controllers/entities/role/module.mjs +2 -2
  272. package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
  273. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +2 -2
  274. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
  275. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs +1 -1
  276. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs.map +1 -1
  277. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +2 -2
  278. package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
  279. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs +3 -3
  280. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs.map +1 -1
  281. package/dist/adapters/http/controllers/entities/scope/module.mjs +2 -2
  282. package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
  283. package/dist/adapters/http/controllers/entities/session/module.mjs +2 -2
  284. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
  285. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -1
  286. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +3 -9
  287. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -1
  288. package/dist/adapters/http/controllers/entities/user/module.mjs +2 -2
  289. package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
  290. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +2 -2
  291. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
  292. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs +1 -1
  293. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs.map +1 -1
  294. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +3 -3
  295. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -1
  296. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +2 -2
  297. package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
  298. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs +3 -3
  299. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs.map +1 -1
  300. package/dist/adapters/http/controllers/entities/user-role/module.mjs +2 -2
  301. package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
  302. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs +2 -2
  303. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs.map +1 -1
  304. package/dist/adapters/http/controllers/index.mjs +1 -6
  305. package/dist/adapters/http/controllers/workflows/activate/module.mjs +2 -2
  306. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +2 -2
  307. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +6 -6
  308. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  309. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +10 -10
  310. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  311. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +11 -11
  312. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  313. package/dist/adapters/http/controllers/workflows/logout/module.mjs +2 -2
  314. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
  315. package/dist/adapters/http/controllers/workflows/openid/module.mjs +2 -2
  316. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +2 -2
  317. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +2 -2
  318. package/dist/adapters/http/controllers/workflows/register/module.mjs +2 -2
  319. package/dist/adapters/http/controllers/workflows/status/module.mjs +4 -4
  320. package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
  321. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  322. package/dist/adapters/http/controllers/workflows/token/module.mjs +4 -10
  323. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  324. package/dist/adapters/http/controllers/workflows/token/types.d.ts +1 -2
  325. package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
  326. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs.map +1 -1
  327. package/dist/adapters/http/index.mjs +1 -7
  328. package/dist/adapters/http/middleware/built-in/assets.mjs +2 -2
  329. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  330. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +1 -2
  331. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  332. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +1 -15
  333. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  334. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +0 -1
  335. package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
  336. package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
  337. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  338. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  339. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +0 -1
  340. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  341. package/dist/adapters/http/request/client-certificate.d.ts +1 -0
  342. package/dist/adapters/http/request/client-certificate.d.ts.map +1 -1
  343. package/dist/adapters/http/request/client-certificate.mjs +1 -0
  344. package/dist/adapters/http/request/client-certificate.mjs.map +1 -1
  345. package/dist/adapters/http/request/constants.mjs.map +1 -1
  346. package/dist/adapters/http/request/helpers/body-realm-id.mjs +1 -1
  347. package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
  348. package/dist/adapters/http/request/helpers/identity.d.ts +2 -2
  349. package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
  350. package/dist/adapters/http/request/helpers/identity.mjs +2 -2
  351. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  352. package/dist/adapters/http/request/helpers/param-id.mjs.map +1 -1
  353. package/dist/adapters/http/request/helpers/realm-id.mjs +1 -1
  354. package/dist/adapters/http/request/helpers/realm-id.mjs.map +1 -1
  355. package/dist/adapters/http/request/helpers/redirect.mjs.map +1 -1
  356. package/dist/adapters/http/request/permission/module.d.ts +3 -2
  357. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  358. package/dist/adapters/http/request/permission/module.mjs +3 -0
  359. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  360. package/dist/adapters/http/ui/render.mjs +2 -2
  361. package/dist/adapters/http/ui/render.mjs.map +1 -1
  362. package/dist/adapters/http/ui/serve.d.ts.map +1 -1
  363. package/dist/adapters/http/ui/serve.mjs +4 -1
  364. package/dist/adapters/http/ui/serve.mjs.map +1 -1
  365. package/dist/app/factory.mjs.map +1 -1
  366. package/dist/app/index.mjs +1 -5
  367. package/dist/app/modules/authentication/module.mjs.map +1 -1
  368. package/dist/app/modules/authentication/repositories/constants.mjs.map +1 -1
  369. package/dist/app/modules/authentication/repositories/session.d.ts +3 -2
  370. package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
  371. package/dist/app/modules/authentication/repositories/session.mjs +8 -40
  372. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  373. package/dist/app/modules/cache/module.mjs.map +1 -1
  374. package/dist/app/modules/components/module.mjs.map +1 -1
  375. package/dist/app/modules/config/constants.d.ts +0 -4
  376. package/dist/app/modules/config/constants.d.ts.map +1 -1
  377. package/dist/app/modules/config/constants.mjs +0 -4
  378. package/dist/app/modules/config/constants.mjs.map +1 -1
  379. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  380. package/dist/app/modules/config/normalize.mjs +0 -4
  381. package/dist/app/modules/config/normalize.mjs.map +1 -1
  382. package/dist/app/modules/config/origins.mjs.map +1 -1
  383. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  384. package/dist/app/modules/config/read/env.mjs +0 -8
  385. package/dist/app/modules/config/read/env.mjs.map +1 -1
  386. package/dist/app/modules/config/read/fs.mjs.map +1 -1
  387. package/dist/app/modules/config/types.d.ts +0 -19
  388. package/dist/app/modules/config/types.d.ts.map +1 -1
  389. package/dist/app/modules/config/validator.d.ts.map +1 -1
  390. package/dist/app/modules/config/validator.mjs +0 -4
  391. package/dist/app/modules/config/validator.mjs.map +1 -1
  392. package/dist/app/modules/database/index.mjs +1 -4
  393. package/dist/app/modules/database/module.d.ts.map +1 -1
  394. package/dist/app/modules/database/module.mjs +2 -0
  395. package/dist/app/modules/database/module.mjs.map +1 -1
  396. package/dist/app/modules/database/repositories/bindings.d.ts +2 -2
  397. package/dist/app/modules/database/repositories/bindings.d.ts.map +1 -1
  398. package/dist/app/modules/database/repositories/bindings.mjs +3 -3
  399. package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
  400. package/dist/app/modules/database/repositories/client/repository.d.ts +3 -2
  401. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  402. package/dist/app/modules/database/repositories/client/repository.mjs +10 -82
  403. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  404. package/dist/app/modules/database/repositories/client-permission/repository.d.ts +2 -1
  405. package/dist/app/modules/database/repositories/client-permission/repository.d.ts.map +1 -1
  406. package/dist/app/modules/database/repositories/client-permission/repository.mjs +3 -17
  407. package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
  408. package/dist/app/modules/database/repositories/client-role/repository.d.ts +2 -1
  409. package/dist/app/modules/database/repositories/client-role/repository.d.ts.map +1 -1
  410. package/dist/app/modules/database/repositories/client-role/repository.mjs +3 -17
  411. package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
  412. package/dist/app/modules/database/repositories/client-scope/repository.d.ts +2 -1
  413. package/dist/app/modules/database/repositories/client-scope/repository.d.ts.map +1 -1
  414. package/dist/app/modules/database/repositories/client-scope/repository.mjs +3 -17
  415. package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
  416. package/dist/app/modules/database/repositories/event/repository.d.ts +2 -1
  417. package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
  418. package/dist/app/modules/database/repositories/event/repository.mjs +14 -53
  419. package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
  420. package/dist/app/modules/database/repositories/helpers.d.ts +17 -3
  421. package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
  422. package/dist/app/modules/database/repositories/helpers.mjs +40 -5
  423. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  424. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +2 -1
  425. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
  426. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +6 -37
  427. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  428. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts +2 -1
  429. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts.map +1 -1
  430. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs +3 -17
  431. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
  432. package/dist/app/modules/database/repositories/index.d.ts +0 -3
  433. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  434. package/dist/app/modules/database/repositories/index.mjs +1 -7
  435. package/dist/app/modules/database/repositories/key/repository.d.ts +3 -2
  436. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -1
  437. package/dist/app/modules/database/repositories/key/repository.mjs +38 -72
  438. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  439. package/dist/app/modules/database/repositories/permission/repository.d.ts +2 -1
  440. package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
  441. package/dist/app/modules/database/repositories/permission/repository.mjs +5 -20
  442. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  443. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts +2 -1
  444. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts.map +1 -1
  445. package/dist/app/modules/database/repositories/permission-policy/repository.mjs +3 -17
  446. package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
  447. package/dist/app/modules/database/repositories/permission-provider/module.mjs +6 -6
  448. package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
  449. package/dist/app/modules/database/repositories/policy/repository.d.ts +2 -1
  450. package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
  451. package/dist/app/modules/database/repositories/policy/repository.mjs +5 -39
  452. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  453. package/dist/app/modules/database/repositories/query.d.ts +18 -0
  454. package/dist/app/modules/database/repositories/query.d.ts.map +1 -0
  455. package/dist/app/modules/database/repositories/query.mjs +29 -0
  456. package/dist/app/modules/database/repositories/query.mjs.map +1 -0
  457. package/dist/app/modules/database/repositories/realm/repository.d.ts +2 -1
  458. package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
  459. package/dist/app/modules/database/repositories/realm/repository.mjs +3 -25
  460. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  461. package/dist/app/modules/database/repositories/role/repository.d.ts +2 -1
  462. package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
  463. package/dist/app/modules/database/repositories/role/repository.mjs +6 -30
  464. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  465. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts +2 -1
  466. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
  467. package/dist/app/modules/database/repositories/role-attribute/repository.mjs +3 -19
  468. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  469. package/dist/app/modules/database/repositories/role-permission/repository.d.ts +2 -1
  470. package/dist/app/modules/database/repositories/role-permission/repository.d.ts.map +1 -1
  471. package/dist/app/modules/database/repositories/role-permission/repository.mjs +3 -17
  472. package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
  473. package/dist/app/modules/database/repositories/schema-validation.d.ts +11 -0
  474. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -0
  475. package/dist/app/modules/database/repositories/schema-validation.mjs +77 -0
  476. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -0
  477. package/dist/app/modules/database/repositories/scope/repository.d.ts +2 -1
  478. package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
  479. package/dist/app/modules/database/repositories/scope/repository.mjs +5 -29
  480. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  481. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts +2 -1
  482. package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts.map +1 -1
  483. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +5 -29
  484. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -1
  485. package/dist/app/modules/database/repositories/user/repository.d.ts +3 -2
  486. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  487. package/dist/app/modules/database/repositories/user/repository.mjs +9 -66
  488. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  489. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts +2 -1
  490. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
  491. package/dist/app/modules/database/repositories/user-attribute/repository.mjs +4 -20
  492. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  493. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts +2 -1
  494. package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts.map +1 -1
  495. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +8 -34
  496. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -1
  497. package/dist/app/modules/database/repositories/user-permission/repository.d.ts +2 -1
  498. package/dist/app/modules/database/repositories/user-permission/repository.d.ts.map +1 -1
  499. package/dist/app/modules/database/repositories/user-permission/repository.mjs +3 -17
  500. package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
  501. package/dist/app/modules/database/repositories/user-role/repository.d.ts +2 -1
  502. package/dist/app/modules/database/repositories/user-role/repository.d.ts.map +1 -1
  503. package/dist/app/modules/database/repositories/user-role/repository.mjs +3 -17
  504. package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
  505. package/dist/app/modules/http/module.mjs.map +1 -1
  506. package/dist/app/modules/http/modules/controller.d.ts +1 -4
  507. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  508. package/dist/app/modules/http/modules/controller.mjs +0 -52
  509. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  510. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  511. package/dist/app/modules/http/modules/middleware.mjs +0 -1
  512. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  513. package/dist/app/modules/identity/index.mjs +1 -2
  514. package/dist/app/modules/identity/module.d.ts.map +1 -1
  515. package/dist/app/modules/identity/module.mjs +1 -12
  516. package/dist/app/modules/identity/module.mjs.map +1 -1
  517. package/dist/app/modules/identity/repositories/client.mjs +2 -2
  518. package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
  519. package/dist/app/modules/identity/repositories/index.d.ts +0 -1
  520. package/dist/app/modules/identity/repositories/index.d.ts.map +1 -1
  521. package/dist/app/modules/identity/repositories/index.mjs +1 -2
  522. package/dist/app/modules/identity/repositories/provider/account/module.mjs +3 -3
  523. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +1 -1
  524. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs +1 -1
  525. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs.map +1 -1
  526. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs +1 -1
  527. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs.map +1 -1
  528. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs +1 -1
  529. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs.map +1 -1
  530. package/dist/app/modules/identity/repositories/user.mjs +18 -18
  531. package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
  532. package/dist/app/modules/index.mjs +1 -5
  533. package/dist/app/modules/logger/module.mjs.map +1 -1
  534. package/dist/app/modules/mail/module.mjs.map +1 -1
  535. package/dist/app/modules/metrics/prom.mjs.map +1 -1
  536. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  537. package/dist/app/modules/oauth2/repositories/client/repository.mjs +1 -1
  538. package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
  539. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts +2 -1
  540. package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -1
  541. package/dist/app/modules/oauth2/repositories/consent/repository.mjs +14 -38
  542. package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
  543. package/dist/app/modules/oauth2/repositories/constants.mjs.map +1 -1
  544. package/dist/app/modules/oauth2/repositories/scope/repository.mjs +1 -1
  545. package/dist/app/modules/oauth2/repositories/scope/repository.mjs.map +1 -1
  546. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +21 -18
  547. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  548. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  549. package/dist/app/modules/provisioning/module.mjs +9 -24
  550. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  551. package/dist/app/modules/provisioning/sources/composite/module.d.ts +17 -0
  552. package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
  553. package/dist/app/modules/provisioning/sources/composite/module.mjs +54 -2
  554. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  555. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  556. package/dist/app/modules/provisioning/sources/default/module.mjs +43 -78
  557. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  558. package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
  559. package/dist/app/modules/provisioning/sources/file/module.mjs +4 -3
  560. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  561. package/dist/app/modules/provisioning/sources/file/types.d.ts +2 -0
  562. package/dist/app/modules/provisioning/sources/file/types.d.ts.map +1 -1
  563. package/dist/app/modules/provisioning/sources/index.mjs +1 -0
  564. package/dist/app/modules/runtime/module.mjs.map +1 -1
  565. package/dist/cli/commands/migration.mjs.map +1 -1
  566. package/dist/components/database/unique-entries/module.mjs +6 -6
  567. package/dist/components/database/unique-entries/module.mjs.map +1 -1
  568. package/dist/components/oauth2-cleaner/module.mjs +2 -2
  569. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  570. package/dist/core/authentication/credential/entities/client/module.d.ts +1 -1
  571. package/dist/core/authentication/credential/entities/client/module.d.ts.map +1 -1
  572. package/dist/core/authentication/credential/entities/client/module.mjs +3 -3
  573. package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
  574. package/dist/core/authentication/credential/entities/index.d.ts +0 -1
  575. package/dist/core/authentication/credential/entities/index.d.ts.map +1 -1
  576. package/dist/core/authentication/credential/entities/index.mjs +1 -3
  577. package/dist/core/authentication/credential/index.mjs +1 -2
  578. package/dist/core/authentication/entities/client/module.mjs +1 -1
  579. package/dist/core/authentication/entities/client/module.mjs.map +1 -1
  580. package/dist/core/authentication/entities/index.d.ts +0 -1
  581. package/dist/core/authentication/entities/index.d.ts.map +1 -1
  582. package/dist/core/authentication/entities/index.mjs +1 -3
  583. package/dist/core/authentication/index.mjs +1 -3
  584. package/dist/core/authentication/session/module.d.ts.map +1 -1
  585. package/dist/core/authentication/session/module.mjs +14 -17
  586. package/dist/core/authentication/session/module.mjs.map +1 -1
  587. package/dist/core/authentication/session/types.d.ts +7 -6
  588. package/dist/core/authentication/session/types.d.ts.map +1 -1
  589. package/dist/core/authentication/session/types.mjs +4 -5
  590. package/dist/core/authentication/session/types.mjs.map +1 -1
  591. package/dist/core/client-certificate/module.d.ts +2 -1
  592. package/dist/core/client-certificate/module.d.ts.map +1 -1
  593. package/dist/core/client-certificate/module.mjs +2 -1
  594. package/dist/core/client-certificate/module.mjs.map +1 -1
  595. package/dist/core/client-certificate/reflect.d.ts +2 -0
  596. package/dist/core/client-certificate/reflect.d.ts.map +1 -0
  597. package/dist/core/{identity/entities/robot/index.mjs → client-certificate/reflect.mjs} +1 -0
  598. package/dist/core/client-certificate/types.d.ts +1 -1
  599. package/dist/core/client-certificate/types.d.ts.map +1 -1
  600. package/dist/core/entities/client/index.d.ts +1 -0
  601. package/dist/core/entities/client/index.d.ts.map +1 -1
  602. package/dist/core/entities/client/index.mjs +2 -1
  603. package/dist/core/entities/client/schema.d.ts +3 -0
  604. package/dist/core/entities/client/schema.d.ts.map +1 -0
  605. package/dist/core/entities/client/schema.mjs +59 -0
  606. package/dist/core/entities/client/schema.mjs.map +1 -0
  607. package/dist/core/entities/client/service.d.ts.map +1 -1
  608. package/dist/core/entities/client/service.mjs +42 -19
  609. package/dist/core/entities/client/service.mjs.map +1 -1
  610. package/dist/core/entities/client/types.d.ts +2 -1
  611. package/dist/core/entities/client/types.d.ts.map +1 -1
  612. package/dist/core/entities/client/web-client.d.ts +4 -4
  613. package/dist/core/entities/client/web-client.mjs +13 -13
  614. package/dist/core/entities/client/web-client.mjs.map +1 -1
  615. package/dist/core/entities/client-permission/index.d.ts +1 -0
  616. package/dist/core/entities/client-permission/index.d.ts.map +1 -1
  617. package/dist/core/entities/client-permission/index.mjs +2 -1
  618. package/dist/core/entities/client-permission/schema.d.ts +3 -0
  619. package/dist/core/entities/client-permission/schema.d.ts.map +1 -0
  620. package/dist/core/entities/client-permission/schema.mjs +41 -0
  621. package/dist/core/entities/client-permission/schema.mjs.map +1 -0
  622. package/dist/core/entities/client-permission/service.d.ts +1 -1
  623. package/dist/core/entities/client-permission/service.d.ts.map +1 -1
  624. package/dist/core/entities/client-permission/service.mjs +24 -18
  625. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  626. package/dist/core/entities/client-role/index.d.ts +1 -0
  627. package/dist/core/entities/client-role/index.d.ts.map +1 -1
  628. package/dist/core/entities/client-role/index.mjs +2 -1
  629. package/dist/core/entities/client-role/schema.d.ts +3 -0
  630. package/dist/core/entities/client-role/schema.d.ts.map +1 -0
  631. package/dist/core/entities/client-role/schema.mjs +39 -0
  632. package/dist/core/entities/client-role/schema.mjs.map +1 -0
  633. package/dist/core/entities/client-role/service.d.ts +1 -1
  634. package/dist/core/entities/client-role/service.d.ts.map +1 -1
  635. package/dist/core/entities/client-role/service.mjs +14 -8
  636. package/dist/core/entities/client-role/service.mjs.map +1 -1
  637. package/dist/core/entities/client-scope/index.d.ts +1 -0
  638. package/dist/core/entities/client-scope/index.d.ts.map +1 -1
  639. package/dist/core/entities/client-scope/index.mjs +2 -1
  640. package/dist/core/entities/client-scope/schema.d.ts +3 -0
  641. package/dist/core/entities/client-scope/schema.d.ts.map +1 -0
  642. package/dist/core/entities/client-scope/schema.mjs +37 -0
  643. package/dist/core/entities/client-scope/schema.mjs.map +1 -0
  644. package/dist/core/entities/client-scope/service.d.ts +1 -1
  645. package/dist/core/entities/client-scope/service.d.ts.map +1 -1
  646. package/dist/core/entities/client-scope/service.mjs +12 -6
  647. package/dist/core/entities/client-scope/service.mjs.map +1 -1
  648. package/dist/core/entities/consent/index.d.ts +1 -0
  649. package/dist/core/entities/consent/index.d.ts.map +1 -1
  650. package/dist/core/entities/consent/index.mjs +2 -1
  651. package/dist/core/entities/consent/schema.d.ts +3 -0
  652. package/dist/core/entities/consent/schema.d.ts.map +1 -0
  653. package/dist/core/entities/consent/schema.mjs +40 -0
  654. package/dist/core/entities/consent/schema.mjs.map +1 -0
  655. package/dist/core/entities/consent/service.d.ts.map +1 -1
  656. package/dist/core/entities/consent/service.mjs +22 -6
  657. package/dist/core/entities/consent/service.mjs.map +1 -1
  658. package/dist/core/entities/consent/types.d.ts +3 -2
  659. package/dist/core/entities/consent/types.d.ts.map +1 -1
  660. package/dist/core/entities/consent/types.mjs +3 -3
  661. package/dist/core/entities/consent/types.mjs.map +1 -1
  662. package/dist/core/entities/event/diff.d.ts +4 -4
  663. package/dist/core/entities/event/diff.mjs +5 -5
  664. package/dist/core/entities/event/diff.mjs.map +1 -1
  665. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  666. package/dist/core/entities/event/entity-event-handler.mjs +29 -31
  667. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  668. package/dist/core/entities/event/index.d.ts +1 -0
  669. package/dist/core/entities/event/index.d.ts.map +1 -1
  670. package/dist/core/entities/event/index.mjs +2 -1
  671. package/dist/core/entities/event/sanitize.mjs +8 -8
  672. package/dist/core/entities/event/sanitize.mjs.map +1 -1
  673. package/dist/core/entities/event/schema.d.ts +3 -0
  674. package/dist/core/entities/event/schema.d.ts.map +1 -0
  675. package/dist/core/entities/event/schema.mjs +51 -0
  676. package/dist/core/entities/event/schema.mjs.map +1 -0
  677. package/dist/core/entities/event/service.d.ts.map +1 -1
  678. package/dist/core/entities/event/service.mjs +38 -22
  679. package/dist/core/entities/event/service.mjs.map +1 -1
  680. package/dist/core/entities/event/types.d.ts +6 -5
  681. package/dist/core/entities/event/types.d.ts.map +1 -1
  682. package/dist/core/entities/identity-provider/index.d.ts +1 -0
  683. package/dist/core/entities/identity-provider/index.d.ts.map +1 -1
  684. package/dist/core/entities/identity-provider/index.mjs +2 -1
  685. package/dist/core/entities/identity-provider/schema.d.ts +3 -0
  686. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -0
  687. package/dist/core/entities/identity-provider/schema.mjs +43 -0
  688. package/dist/core/entities/identity-provider/schema.mjs.map +1 -0
  689. package/dist/core/entities/identity-provider-role-mapping/index.d.ts +1 -0
  690. package/dist/core/entities/identity-provider-role-mapping/index.d.ts.map +1 -1
  691. package/dist/core/entities/identity-provider-role-mapping/index.mjs +2 -1
  692. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts +3 -0
  693. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -0
  694. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +43 -0
  695. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -0
  696. package/dist/core/entities/identity-provider-role-mapping/service.d.ts +1 -1
  697. package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
  698. package/dist/core/entities/identity-provider-role-mapping/service.mjs +17 -11
  699. package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
  700. package/dist/core/entities/index.d.ts +0 -3
  701. package/dist/core/entities/index.d.ts.map +1 -1
  702. package/dist/core/entities/index.mjs +26 -7
  703. package/dist/core/entities/key/index.d.ts +1 -0
  704. package/dist/core/entities/key/index.d.ts.map +1 -1
  705. package/dist/core/entities/key/index.mjs +2 -1
  706. package/dist/core/entities/key/schema.d.ts +3 -0
  707. package/dist/core/entities/key/schema.d.ts.map +1 -0
  708. package/dist/core/entities/key/schema.mjs +53 -0
  709. package/dist/core/entities/key/schema.mjs.map +1 -0
  710. package/dist/core/entities/key/service.d.ts +2 -2
  711. package/dist/core/entities/key/service.d.ts.map +1 -1
  712. package/dist/core/entities/key/service.mjs +47 -28
  713. package/dist/core/entities/key/service.mjs.map +1 -1
  714. package/dist/core/entities/key/types.d.ts +9 -1
  715. package/dist/core/entities/key/types.d.ts.map +1 -1
  716. package/dist/core/entities/permission/index.d.ts +1 -0
  717. package/dist/core/entities/permission/index.d.ts.map +1 -1
  718. package/dist/core/entities/permission/index.mjs +2 -1
  719. package/dist/core/entities/permission/schema.d.ts +3 -0
  720. package/dist/core/entities/permission/schema.d.ts.map +1 -0
  721. package/dist/core/entities/permission/schema.mjs +40 -0
  722. package/dist/core/entities/permission/schema.mjs.map +1 -0
  723. package/dist/core/entities/permission/service.d.ts +7 -2
  724. package/dist/core/entities/permission/service.d.ts.map +1 -1
  725. package/dist/core/entities/permission/service.mjs +53 -40
  726. package/dist/core/entities/permission/service.mjs.map +1 -1
  727. package/dist/core/entities/permission-policy/index.d.ts +1 -0
  728. package/dist/core/entities/permission-policy/index.d.ts.map +1 -1
  729. package/dist/core/entities/permission-policy/index.mjs +2 -1
  730. package/dist/core/entities/permission-policy/schema.d.ts +3 -0
  731. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -0
  732. package/dist/core/entities/permission-policy/schema.mjs +39 -0
  733. package/dist/core/entities/permission-policy/schema.mjs.map +1 -0
  734. package/dist/core/entities/permission-policy/service.d.ts +1 -1
  735. package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
  736. package/dist/core/entities/permission-policy/service.mjs +12 -6
  737. package/dist/core/entities/permission-policy/service.mjs.map +1 -1
  738. package/dist/core/entities/policy/index.d.ts +1 -0
  739. package/dist/core/entities/policy/index.d.ts.map +1 -1
  740. package/dist/core/entities/policy/index.mjs +2 -1
  741. package/dist/core/entities/policy/schema.d.ts +3 -0
  742. package/dist/core/entities/policy/schema.d.ts.map +1 -0
  743. package/dist/core/entities/policy/schema.mjs +49 -0
  744. package/dist/core/entities/policy/schema.mjs.map +1 -0
  745. package/dist/core/entities/policy/service.d.ts.map +1 -1
  746. package/dist/core/entities/policy/service.mjs +13 -7
  747. package/dist/core/entities/policy/service.mjs.map +1 -1
  748. package/dist/core/entities/realm/index.d.ts +1 -0
  749. package/dist/core/entities/realm/index.d.ts.map +1 -1
  750. package/dist/core/entities/realm/index.mjs +2 -1
  751. package/dist/core/entities/realm/schema.d.ts +3 -0
  752. package/dist/core/entities/realm/schema.d.ts.map +1 -0
  753. package/dist/core/entities/realm/schema.mjs +36 -0
  754. package/dist/core/entities/realm/schema.mjs.map +1 -0
  755. package/dist/core/entities/realm/service.d.ts.map +1 -1
  756. package/dist/core/entities/realm/service.mjs +5 -2
  757. package/dist/core/entities/realm/service.mjs.map +1 -1
  758. package/dist/core/entities/realm/types.d.ts +1 -1
  759. package/dist/core/entities/role/index.d.ts +1 -0
  760. package/dist/core/entities/role/index.d.ts.map +1 -1
  761. package/dist/core/entities/role/index.mjs +2 -1
  762. package/dist/core/entities/role/schema.d.ts +3 -0
  763. package/dist/core/entities/role/schema.d.ts.map +1 -0
  764. package/dist/core/entities/role/schema.mjs +43 -0
  765. package/dist/core/entities/role/schema.mjs.map +1 -0
  766. package/dist/core/entities/role/service.d.ts.map +1 -1
  767. package/dist/core/entities/role/service.mjs +11 -5
  768. package/dist/core/entities/role/service.mjs.map +1 -1
  769. package/dist/core/entities/role-attribute/index.d.ts +1 -0
  770. package/dist/core/entities/role-attribute/index.d.ts.map +1 -1
  771. package/dist/core/entities/role-attribute/index.mjs +2 -1
  772. package/dist/core/entities/role-attribute/schema.d.ts +3 -0
  773. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -0
  774. package/dist/core/entities/role-attribute/schema.mjs +47 -0
  775. package/dist/core/entities/role-attribute/schema.mjs.map +1 -0
  776. package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
  777. package/dist/core/entities/role-attribute/service.mjs +19 -6
  778. package/dist/core/entities/role-attribute/service.mjs.map +1 -1
  779. package/dist/core/entities/role-permission/index.d.ts +1 -0
  780. package/dist/core/entities/role-permission/index.d.ts.map +1 -1
  781. package/dist/core/entities/role-permission/index.mjs +2 -1
  782. package/dist/core/entities/role-permission/schema.d.ts +3 -0
  783. package/dist/core/entities/role-permission/schema.d.ts.map +1 -0
  784. package/dist/core/entities/role-permission/schema.mjs +41 -0
  785. package/dist/core/entities/role-permission/schema.mjs.map +1 -0
  786. package/dist/core/entities/role-permission/service.d.ts +1 -1
  787. package/dist/core/entities/role-permission/service.d.ts.map +1 -1
  788. package/dist/core/entities/role-permission/service.mjs +24 -18
  789. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  790. package/dist/core/entities/scope/index.d.ts +1 -0
  791. package/dist/core/entities/scope/index.d.ts.map +1 -1
  792. package/dist/core/entities/scope/index.mjs +2 -1
  793. package/dist/core/entities/scope/schema.d.ts +3 -0
  794. package/dist/core/entities/scope/schema.d.ts.map +1 -0
  795. package/dist/core/entities/scope/schema.mjs +43 -0
  796. package/dist/core/entities/scope/schema.mjs.map +1 -0
  797. package/dist/core/entities/scope/service.d.ts.map +1 -1
  798. package/dist/core/entities/scope/service.mjs +11 -5
  799. package/dist/core/entities/scope/service.mjs.map +1 -1
  800. package/dist/core/entities/session/index.d.ts +1 -0
  801. package/dist/core/entities/session/index.d.ts.map +1 -1
  802. package/dist/core/entities/session/index.mjs +2 -1
  803. package/dist/core/entities/session/schema.d.ts +3 -0
  804. package/dist/core/entities/session/schema.d.ts.map +1 -0
  805. package/dist/core/entities/session/schema.mjs +44 -0
  806. package/dist/core/entities/session/schema.mjs.map +1 -0
  807. package/dist/core/entities/session/service.d.ts +11 -0
  808. package/dist/core/entities/session/service.d.ts.map +1 -1
  809. package/dist/core/entities/session/service.mjs +48 -11
  810. package/dist/core/entities/session/service.mjs.map +1 -1
  811. package/dist/core/entities/session/types.d.ts +2 -2
  812. package/dist/core/entities/trust-anchor/index.d.ts +1 -0
  813. package/dist/core/entities/trust-anchor/index.d.ts.map +1 -1
  814. package/dist/core/entities/trust-anchor/index.mjs +2 -1
  815. package/dist/core/entities/trust-anchor/schema.d.ts +3 -0
  816. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -0
  817. package/dist/core/entities/trust-anchor/schema.mjs +43 -0
  818. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -0
  819. package/dist/core/entities/trust-anchor/service.d.ts +2 -2
  820. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
  821. package/dist/core/entities/trust-anchor/service.mjs +23 -7
  822. package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
  823. package/dist/core/entities/trust-anchor/types.d.ts +9 -1
  824. package/dist/core/entities/trust-anchor/types.d.ts.map +1 -1
  825. package/dist/core/entities/user/index.d.ts +1 -0
  826. package/dist/core/entities/user/index.d.ts.map +1 -1
  827. package/dist/core/entities/user/index.mjs +2 -1
  828. package/dist/core/entities/user/schema.d.ts +3 -0
  829. package/dist/core/entities/user/schema.d.ts.map +1 -0
  830. package/dist/core/entities/user/schema.mjs +50 -0
  831. package/dist/core/entities/user/schema.mjs.map +1 -0
  832. package/dist/core/entities/user/service.d.ts.map +1 -1
  833. package/dist/core/entities/user/service.mjs +33 -12
  834. package/dist/core/entities/user/service.mjs.map +1 -1
  835. package/dist/core/entities/user/types.d.ts +2 -1
  836. package/dist/core/entities/user/types.d.ts.map +1 -1
  837. package/dist/core/entities/user-attribute/index.d.ts +1 -0
  838. package/dist/core/entities/user-attribute/index.d.ts.map +1 -1
  839. package/dist/core/entities/user-attribute/index.mjs +2 -1
  840. package/dist/core/entities/user-attribute/schema.d.ts +3 -0
  841. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -0
  842. package/dist/core/entities/user-attribute/schema.mjs +47 -0
  843. package/dist/core/entities/user-attribute/schema.mjs.map +1 -0
  844. package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
  845. package/dist/core/entities/user-attribute/service.mjs +26 -10
  846. package/dist/core/entities/user-attribute/service.mjs.map +1 -1
  847. package/dist/core/entities/user-authenticator/index.d.ts +1 -0
  848. package/dist/core/entities/user-authenticator/index.d.ts.map +1 -1
  849. package/dist/core/entities/user-authenticator/index.mjs +2 -1
  850. package/dist/core/entities/user-authenticator/schema.d.ts +3 -0
  851. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -0
  852. package/dist/core/entities/user-authenticator/schema.mjs +47 -0
  853. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -0
  854. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
  855. package/dist/core/entities/user-authenticator/service.mjs +49 -27
  856. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  857. package/dist/core/entities/user-authenticator/types.d.ts +4 -3
  858. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
  859. package/dist/core/entities/user-authenticator/types.mjs +2 -2
  860. package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
  861. package/dist/core/entities/user-permission/index.d.ts +1 -0
  862. package/dist/core/entities/user-permission/index.d.ts.map +1 -1
  863. package/dist/core/entities/user-permission/index.mjs +2 -1
  864. package/dist/core/entities/user-permission/schema.d.ts +3 -0
  865. package/dist/core/entities/user-permission/schema.d.ts.map +1 -0
  866. package/dist/core/entities/user-permission/schema.mjs +41 -0
  867. package/dist/core/entities/user-permission/schema.mjs.map +1 -0
  868. package/dist/core/entities/user-permission/service.d.ts +1 -1
  869. package/dist/core/entities/user-permission/service.d.ts.map +1 -1
  870. package/dist/core/entities/user-permission/service.mjs +24 -18
  871. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  872. package/dist/core/entities/user-role/index.d.ts +1 -0
  873. package/dist/core/entities/user-role/index.d.ts.map +1 -1
  874. package/dist/core/entities/user-role/index.mjs +2 -1
  875. package/dist/core/entities/user-role/schema.d.ts +3 -0
  876. package/dist/core/entities/user-role/schema.d.ts.map +1 -0
  877. package/dist/core/entities/user-role/schema.mjs +39 -0
  878. package/dist/core/entities/user-role/schema.mjs.map +1 -0
  879. package/dist/core/entities/user-role/service.d.ts +1 -1
  880. package/dist/core/entities/user-role/service.d.ts.map +1 -1
  881. package/dist/core/entities/user-role/service.mjs +14 -8
  882. package/dist/core/entities/user-role/service.mjs.map +1 -1
  883. package/dist/core/identity/entities/index.d.ts +0 -1
  884. package/dist/core/identity/entities/index.d.ts.map +1 -1
  885. package/dist/core/identity/password-recovery/service.mjs +21 -21
  886. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  887. package/dist/core/identity/password-recovery/types.d.ts +2 -2
  888. package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
  889. package/dist/core/identity/permission/checker/service.mjs +2 -2
  890. package/dist/core/identity/permission/checker/service.mjs.map +1 -1
  891. package/dist/core/identity/permission/identity-policy-data.mjs +2 -2
  892. package/dist/core/identity/permission/identity-policy-data.mjs.map +1 -1
  893. package/dist/core/identity/permission/junction-grant.d.ts +6 -6
  894. package/dist/core/identity/permission/junction-grant.mjs +14 -14
  895. package/dist/core/identity/permission/junction-grant.mjs.map +1 -1
  896. package/dist/core/identity/permission/module.d.ts +0 -3
  897. package/dist/core/identity/permission/module.d.ts.map +1 -1
  898. package/dist/core/identity/permission/module.mjs +9 -15
  899. package/dist/core/identity/permission/module.mjs.map +1 -1
  900. package/dist/core/identity/permission/types.d.ts +0 -2
  901. package/dist/core/identity/permission/types.d.ts.map +1 -1
  902. package/dist/core/identity/policy/checker/service.mjs +1 -1
  903. package/dist/core/identity/policy/checker/service.mjs.map +1 -1
  904. package/dist/core/identity/provider/account/module.mjs +9 -9
  905. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  906. package/dist/core/identity/provider/authentication/presets/facebook.mjs +5 -5
  907. package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
  908. package/dist/core/identity/provider/authentication/presets/github.mjs +3 -3
  909. package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
  910. package/dist/core/identity/provider/authentication/presets/google.mjs +5 -5
  911. package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
  912. package/dist/core/identity/provider/authentication/presets/instagram.mjs +3 -3
  913. package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
  914. package/dist/core/identity/provider/authentication/presets/paypal.mjs +3 -3
  915. package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
  916. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs +20 -20
  917. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs.map +1 -1
  918. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +5 -5
  919. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  920. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
  921. package/dist/core/identity/provider/constants.mjs.map +1 -1
  922. package/dist/core/identity/provider/mapper/attributes/module.mjs +3 -3
  923. package/dist/core/identity/provider/mapper/attributes/module.mjs.map +1 -1
  924. package/dist/core/identity/provider/mapper/base.mjs +2 -2
  925. package/dist/core/identity/provider/mapper/base.mjs.map +1 -1
  926. package/dist/core/identity/provider/mapper/constants.mjs.map +1 -1
  927. package/dist/core/identity/provider/mapper/permission/module.mjs +2 -2
  928. package/dist/core/identity/provider/mapper/permission/module.mjs.map +1 -1
  929. package/dist/core/identity/provider/mapper/role/module.mjs +2 -2
  930. package/dist/core/identity/provider/mapper/role/module.mjs.map +1 -1
  931. package/dist/core/identity/registration/service.mjs +9 -9
  932. package/dist/core/identity/registration/service.mjs.map +1 -1
  933. package/dist/core/identity/resolver/module.d.ts +1 -3
  934. package/dist/core/identity/resolver/module.d.ts.map +1 -1
  935. package/dist/core/identity/resolver/module.mjs +0 -13
  936. package/dist/core/identity/resolver/module.mjs.map +1 -1
  937. package/dist/core/identity/resolver/types.d.ts +1 -2
  938. package/dist/core/identity/resolver/types.d.ts.map +1 -1
  939. package/dist/core/identity/role/module.d.ts +0 -2
  940. package/dist/core/identity/role/module.d.ts.map +1 -1
  941. package/dist/core/identity/role/module.mjs +1 -4
  942. package/dist/core/identity/role/module.mjs.map +1 -1
  943. package/dist/core/identity/role/types.d.ts +0 -2
  944. package/dist/core/identity/role/types.d.ts.map +1 -1
  945. package/dist/core/index.d.ts +1 -0
  946. package/dist/core/index.d.ts.map +1 -1
  947. package/dist/core/index.mjs +28 -9
  948. package/dist/core/key/provisioner.mjs.map +1 -1
  949. package/dist/core/key/realm-cipher.mjs +5 -5
  950. package/dist/core/key/realm-cipher.mjs.map +1 -1
  951. package/dist/core/mail/template/templates/mfa-email-otp.mjs.map +1 -1
  952. package/dist/core/mail/template/templates/password-reset.mjs.map +1 -1
  953. package/dist/core/mail/template/templates/registration-activation.mjs.map +1 -1
  954. package/dist/core/mail/template/types.mjs.map +1 -1
  955. package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
  956. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +3 -3
  957. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  958. package/dist/core/oauth2/authorization/helpers.d.ts +2 -2
  959. package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
  960. package/dist/core/oauth2/authorization/helpers.mjs +5 -5
  961. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  962. package/dist/core/oauth2/authorization/module.mjs +8 -8
  963. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  964. package/dist/core/oauth2/client/authenticator.d.ts +1 -1
  965. package/dist/core/oauth2/client/authenticator.d.ts.map +1 -1
  966. package/dist/core/oauth2/client/authenticator.mjs +3 -3
  967. package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
  968. package/dist/core/oauth2/client/grant-type.d.ts +1 -1
  969. package/dist/core/oauth2/client/grant-type.d.ts.map +1 -1
  970. package/dist/core/oauth2/client/grant-type.mjs +2 -2
  971. package/dist/core/oauth2/client/grant-type.mjs.map +1 -1
  972. package/dist/core/oauth2/end-session/service.mjs +5 -5
  973. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  974. package/dist/core/oauth2/grant-types/authorize.mjs +9 -9
  975. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  976. package/dist/core/oauth2/grant-types/client-credentials.mjs +7 -7
  977. package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
  978. package/dist/core/oauth2/grant-types/identity.mjs +10 -10
  979. package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
  980. package/dist/core/oauth2/grant-types/index.d.ts +0 -1
  981. package/dist/core/oauth2/grant-types/index.d.ts.map +1 -1
  982. package/dist/core/oauth2/grant-types/index.mjs +1 -2
  983. package/dist/core/oauth2/grant-types/password.d.ts +1 -1
  984. package/dist/core/oauth2/grant-types/password.mjs +13 -13
  985. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  986. package/dist/core/oauth2/grant-types/refresh-token.mjs +12 -12
  987. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  988. package/dist/core/oauth2/index.mjs +1 -2
  989. package/dist/core/oauth2/mfa-login/module.mjs +21 -21
  990. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
  991. package/dist/core/oauth2/mfa-login/types.d.ts +1 -1
  992. package/dist/core/oauth2/openid/claims.d.ts +1 -3
  993. package/dist/core/oauth2/openid/claims.d.ts.map +1 -1
  994. package/dist/core/oauth2/openid/claims.mjs +6 -19
  995. package/dist/core/oauth2/openid/claims.mjs.map +1 -1
  996. package/dist/core/oauth2/scope/resolver.d.ts +1 -3
  997. package/dist/core/oauth2/scope/resolver.d.ts.map +1 -1
  998. package/dist/core/oauth2/scope/resolver.mjs +9 -31
  999. package/dist/core/oauth2/scope/resolver.mjs.map +1 -1
  1000. package/dist/core/oauth2/session-token/types.d.ts +8 -8
  1001. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  1002. package/dist/core/oauth2/token/issuer/access/module.mjs +7 -7
  1003. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  1004. package/dist/core/oauth2/token/issuer/mfa/module.mjs.map +1 -1
  1005. package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
  1006. package/dist/core/oauth2/token/issuer/refresh/module.mjs +5 -5
  1007. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  1008. package/dist/core/oauth2/token/signer/module.mjs +6 -6
  1009. package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
  1010. package/dist/core/oauth2/token/verifier/module.mjs +8 -8
  1011. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  1012. package/dist/core/provisioning/entities/index.d.ts +0 -1
  1013. package/dist/core/provisioning/entities/index.d.ts.map +1 -1
  1014. package/dist/core/provisioning/entities/index.mjs +1 -3
  1015. package/dist/core/provisioning/entities/policy/validator.d.ts +2 -0
  1016. package/dist/core/provisioning/entities/policy/validator.d.ts.map +1 -1
  1017. package/dist/core/provisioning/entities/policy/validator.mjs +10 -1
  1018. package/dist/core/provisioning/entities/policy/validator.mjs.map +1 -1
  1019. package/dist/core/provisioning/entities/realm/relations-validator.d.ts.map +1 -1
  1020. package/dist/core/provisioning/entities/realm/relations-validator.mjs +0 -4
  1021. package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
  1022. package/dist/core/provisioning/entities/realm/types.d.ts +0 -2
  1023. package/dist/core/provisioning/entities/realm/types.d.ts.map +1 -1
  1024. package/dist/core/provisioning/entities/role/types.d.ts +2 -2
  1025. package/dist/core/provisioning/entities/utils.mjs.map +1 -1
  1026. package/dist/core/provisioning/index.mjs +1 -3
  1027. package/dist/core/provisioning/strategy/constants.mjs.map +1 -1
  1028. package/dist/core/provisioning/strategy/validator.mjs.map +1 -1
  1029. package/dist/core/provisioning/synchronizer/client/module.mjs +11 -11
  1030. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  1031. package/dist/core/provisioning/synchronizer/entity-resolver.mjs +12 -12
  1032. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  1033. package/dist/core/provisioning/synchronizer/index.d.ts +0 -1
  1034. package/dist/core/provisioning/synchronizer/index.d.ts.map +1 -1
  1035. package/dist/core/provisioning/synchronizer/index.mjs +1 -3
  1036. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts +2 -2
  1037. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts.map +1 -1
  1038. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs +2 -2
  1039. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs.map +1 -1
  1040. package/dist/core/provisioning/synchronizer/permission/module.mjs +8 -8
  1041. package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
  1042. package/dist/core/provisioning/synchronizer/policy/module.mjs +11 -11
  1043. package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
  1044. package/dist/core/provisioning/synchronizer/realm/module.d.ts +0 -2
  1045. package/dist/core/provisioning/synchronizer/realm/module.d.ts.map +1 -1
  1046. package/dist/core/provisioning/synchronizer/realm/module.mjs +5 -15
  1047. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  1048. package/dist/core/provisioning/synchronizer/realm/types.d.ts +0 -2
  1049. package/dist/core/provisioning/synchronizer/realm/types.d.ts.map +1 -1
  1050. package/dist/core/provisioning/synchronizer/role/module.mjs +7 -7
  1051. package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
  1052. package/dist/core/provisioning/synchronizer/scope/module.mjs +1 -1
  1053. package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
  1054. package/dist/core/provisioning/synchronizer/user/module.mjs +13 -13
  1055. package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
  1056. package/dist/core/query/index.d.ts +4 -0
  1057. package/dist/core/query/index.d.ts.map +1 -0
  1058. package/dist/core/query/index.mjs +6 -0
  1059. package/dist/core/query/module.d.ts +60 -0
  1060. package/dist/core/query/module.d.ts.map +1 -0
  1061. package/dist/core/query/module.mjs +128 -0
  1062. package/dist/core/query/module.mjs.map +1 -0
  1063. package/dist/core/query/relations.d.ts +39 -0
  1064. package/dist/core/query/relations.d.ts.map +1 -0
  1065. package/dist/core/query/relations.mjs +103 -0
  1066. package/dist/core/query/relations.mjs.map +1 -0
  1067. package/dist/core/query/types.d.ts +39 -0
  1068. package/dist/core/query/types.d.ts.map +1 -0
  1069. package/dist/core/security/policy/evaluator.d.ts +1 -0
  1070. package/dist/core/security/policy/evaluator.d.ts.map +1 -1
  1071. package/dist/core/security/policy/evaluator.mjs +52 -5
  1072. package/dist/core/security/policy/evaluator.mjs.map +1 -1
  1073. package/dist/index.mjs +1 -17
  1074. package/dist/swagger.json +2552 -3798
  1075. package/dist/ui/client/.vite/ssr-manifest.json +1542 -894
  1076. package/dist/ui/client/assets/index-CiHrf73J.css +2 -0
  1077. package/dist/ui/client/assets/{index-CT0Nq5pA.js → index-mtJngmng.js} +21 -18
  1078. package/dist/ui/client/index.html +2 -2
  1079. package/dist/ui/server/server.js +10344 -3440
  1080. package/package.json +35 -30
  1081. package/dist/adapters/database/domains/robot/entity.d.ts +0 -19
  1082. package/dist/adapters/database/domains/robot/entity.d.ts.map +0 -1
  1083. package/dist/adapters/database/domains/robot/entity.mjs +0 -112
  1084. package/dist/adapters/database/domains/robot/entity.mjs.map +0 -1
  1085. package/dist/adapters/database/domains/robot/index.d.ts +0 -3
  1086. package/dist/adapters/database/domains/robot/index.d.ts.map +0 -1
  1087. package/dist/adapters/database/domains/robot/index.mjs +0 -6
  1088. package/dist/adapters/database/domains/robot/subscriber.d.ts +0 -6
  1089. package/dist/adapters/database/domains/robot/subscriber.d.ts.map +0 -1
  1090. package/dist/adapters/database/domains/robot/subscriber.mjs +0 -42
  1091. package/dist/adapters/database/domains/robot/subscriber.mjs.map +0 -1
  1092. package/dist/adapters/database/domains/robot-permission/entity.d.ts +0 -18
  1093. package/dist/adapters/database/domains/robot-permission/entity.d.ts.map +0 -1
  1094. package/dist/adapters/database/domains/robot-permission/entity.mjs +0 -91
  1095. package/dist/adapters/database/domains/robot-permission/entity.mjs.map +0 -1
  1096. package/dist/adapters/database/domains/robot-permission/index.d.ts +0 -3
  1097. package/dist/adapters/database/domains/robot-permission/index.d.ts.map +0 -1
  1098. package/dist/adapters/database/domains/robot-permission/index.mjs +0 -6
  1099. package/dist/adapters/database/domains/robot-permission/subscriber.d.ts +0 -6
  1100. package/dist/adapters/database/domains/robot-permission/subscriber.d.ts.map +0 -1
  1101. package/dist/adapters/database/domains/robot-permission/subscriber.mjs +0 -45
  1102. package/dist/adapters/database/domains/robot-permission/subscriber.mjs.map +0 -1
  1103. package/dist/adapters/database/domains/robot-role/entity.d.ts +0 -15
  1104. package/dist/adapters/database/domains/robot-role/entity.d.ts.map +0 -1
  1105. package/dist/adapters/database/domains/robot-role/entity.mjs +0 -72
  1106. package/dist/adapters/database/domains/robot-role/entity.mjs.map +0 -1
  1107. package/dist/adapters/database/domains/robot-role/index.d.ts +0 -3
  1108. package/dist/adapters/database/domains/robot-role/index.d.ts.map +0 -1
  1109. package/dist/adapters/database/domains/robot-role/index.mjs +0 -6
  1110. package/dist/adapters/database/domains/robot-role/subscriber.d.ts +0 -6
  1111. package/dist/adapters/database/domains/robot-role/subscriber.d.ts.map +0 -1
  1112. package/dist/adapters/database/domains/robot-role/subscriber.mjs +0 -45
  1113. package/dist/adapters/database/domains/robot-role/subscriber.mjs.map +0 -1
  1114. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts +0 -12
  1115. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts.map +0 -1
  1116. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs +0 -27
  1117. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +0 -1
  1118. package/dist/adapters/http/controllers/entities/robot/index.d.ts +0 -2
  1119. package/dist/adapters/http/controllers/entities/robot/index.d.ts.map +0 -1
  1120. package/dist/adapters/http/controllers/entities/robot/index.mjs +0 -5
  1121. package/dist/adapters/http/controllers/entities/robot/module.d.ts +0 -25
  1122. package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +0 -1
  1123. package/dist/adapters/http/controllers/entities/robot/module.mjs +0 -180
  1124. package/dist/adapters/http/controllers/entities/robot/module.mjs.map +0 -1
  1125. package/dist/adapters/http/controllers/entities/robot-permission/index.d.ts +0 -3
  1126. package/dist/adapters/http/controllers/entities/robot-permission/index.d.ts.map +0 -1
  1127. package/dist/adapters/http/controllers/entities/robot-permission/index.mjs +0 -7
  1128. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts +0 -17
  1129. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts.map +0 -1
  1130. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +0 -114
  1131. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +0 -1
  1132. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.d.ts +0 -2
  1133. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.d.ts.map +0 -1
  1134. package/dist/adapters/http/controllers/entities/robot-permission/utils/index.mjs +0 -5
  1135. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.d.ts +0 -6
  1136. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.d.ts.map +0 -1
  1137. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs +0 -21
  1138. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs.map +0 -1
  1139. package/dist/adapters/http/controllers/entities/robot-role/index.d.ts +0 -3
  1140. package/dist/adapters/http/controllers/entities/robot-role/index.d.ts.map +0 -1
  1141. package/dist/adapters/http/controllers/entities/robot-role/index.mjs +0 -7
  1142. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts +0 -16
  1143. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts.map +0 -1
  1144. package/dist/adapters/http/controllers/entities/robot-role/module.mjs +0 -95
  1145. package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +0 -1
  1146. package/dist/adapters/http/controllers/entities/robot-role/utils/index.d.ts +0 -2
  1147. package/dist/adapters/http/controllers/entities/robot-role/utils/index.d.ts.map +0 -1
  1148. package/dist/adapters/http/controllers/entities/robot-role/utils/index.mjs +0 -5
  1149. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.d.ts +0 -6
  1150. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.d.ts.map +0 -1
  1151. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs +0 -20
  1152. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs.map +0 -1
  1153. package/dist/app/modules/database/repositories/robot/index.d.ts +0 -2
  1154. package/dist/app/modules/database/repositories/robot/index.d.ts.map +0 -1
  1155. package/dist/app/modules/database/repositories/robot/index.mjs +0 -5
  1156. package/dist/app/modules/database/repositories/robot/repository.d.ts +0 -31
  1157. package/dist/app/modules/database/repositories/robot/repository.d.ts.map +0 -1
  1158. package/dist/app/modules/database/repositories/robot/repository.mjs +0 -190
  1159. package/dist/app/modules/database/repositories/robot/repository.mjs.map +0 -1
  1160. package/dist/app/modules/database/repositories/robot-permission/index.d.ts +0 -2
  1161. package/dist/app/modules/database/repositories/robot-permission/index.d.ts.map +0 -1
  1162. package/dist/app/modules/database/repositories/robot-permission/index.mjs +0 -5
  1163. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts +0 -20
  1164. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts.map +0 -1
  1165. package/dist/app/modules/database/repositories/robot-permission/repository.mjs +0 -79
  1166. package/dist/app/modules/database/repositories/robot-permission/repository.mjs.map +0 -1
  1167. package/dist/app/modules/database/repositories/robot-role/index.d.ts +0 -2
  1168. package/dist/app/modules/database/repositories/robot-role/index.d.ts.map +0 -1
  1169. package/dist/app/modules/database/repositories/robot-role/index.mjs +0 -5
  1170. package/dist/app/modules/database/repositories/robot-role/repository.d.ts +0 -20
  1171. package/dist/app/modules/database/repositories/robot-role/repository.d.ts.map +0 -1
  1172. package/dist/app/modules/database/repositories/robot-role/repository.mjs +0 -79
  1173. package/dist/app/modules/database/repositories/robot-role/repository.mjs.map +0 -1
  1174. package/dist/app/modules/identity/repositories/robot.d.ts +0 -13
  1175. package/dist/app/modules/identity/repositories/robot.d.ts.map +0 -1
  1176. package/dist/app/modules/identity/repositories/robot.mjs +0 -47
  1177. package/dist/app/modules/identity/repositories/robot.mjs.map +0 -1
  1178. package/dist/core/authentication/credential/entities/robot/index.d.ts +0 -2
  1179. package/dist/core/authentication/credential/entities/robot/index.d.ts.map +0 -1
  1180. package/dist/core/authentication/credential/entities/robot/index.mjs +0 -5
  1181. package/dist/core/authentication/credential/entities/robot/module.d.ts +0 -8
  1182. package/dist/core/authentication/credential/entities/robot/module.d.ts.map +0 -1
  1183. package/dist/core/authentication/credential/entities/robot/module.mjs +0 -22
  1184. package/dist/core/authentication/credential/entities/robot/module.mjs.map +0 -1
  1185. package/dist/core/authentication/entities/robot/index.d.ts +0 -2
  1186. package/dist/core/authentication/entities/robot/index.d.ts.map +0 -1
  1187. package/dist/core/authentication/entities/robot/index.mjs +0 -5
  1188. package/dist/core/authentication/entities/robot/module.d.ts +0 -11
  1189. package/dist/core/authentication/entities/robot/module.d.ts.map +0 -1
  1190. package/dist/core/authentication/entities/robot/module.mjs +0 -29
  1191. package/dist/core/authentication/entities/robot/module.mjs.map +0 -1
  1192. package/dist/core/entities/robot/index.d.ts +0 -3
  1193. package/dist/core/entities/robot/index.d.ts.map +0 -1
  1194. package/dist/core/entities/robot/index.mjs +0 -5
  1195. package/dist/core/entities/robot/service.d.ts +0 -28
  1196. package/dist/core/entities/robot/service.d.ts.map +0 -1
  1197. package/dist/core/entities/robot/service.mjs +0 -201
  1198. package/dist/core/entities/robot/service.mjs.map +0 -1
  1199. package/dist/core/entities/robot/types.d.ts +0 -24
  1200. package/dist/core/entities/robot/types.d.ts.map +0 -1
  1201. package/dist/core/entities/robot/types.mjs +0 -4
  1202. package/dist/core/entities/robot-permission/index.d.ts +0 -3
  1203. package/dist/core/entities/robot-permission/index.d.ts.map +0 -1
  1204. package/dist/core/entities/robot-permission/index.mjs +0 -5
  1205. package/dist/core/entities/robot-permission/service.d.ts +0 -25
  1206. package/dist/core/entities/robot-permission/service.d.ts.map +0 -1
  1207. package/dist/core/entities/robot-permission/service.mjs +0 -137
  1208. package/dist/core/entities/robot-permission/service.mjs.map +0 -1
  1209. package/dist/core/entities/robot-permission/types.d.ts +0 -12
  1210. package/dist/core/entities/robot-permission/types.d.ts.map +0 -1
  1211. package/dist/core/entities/robot-role/index.d.ts +0 -3
  1212. package/dist/core/entities/robot-role/index.d.ts.map +0 -1
  1213. package/dist/core/entities/robot-role/index.mjs +0 -5
  1214. package/dist/core/entities/robot-role/service.d.ts +0 -22
  1215. package/dist/core/entities/robot-role/service.d.ts.map +0 -1
  1216. package/dist/core/entities/robot-role/service.mjs +0 -90
  1217. package/dist/core/entities/robot-role/service.mjs.map +0 -1
  1218. package/dist/core/entities/robot-role/types.d.ts +0 -11
  1219. package/dist/core/entities/robot-role/types.d.ts.map +0 -1
  1220. package/dist/core/entities/robot-role/types.mjs +0 -4
  1221. package/dist/core/identity/entities/robot/index.d.ts +0 -2
  1222. package/dist/core/identity/entities/robot/index.d.ts.map +0 -1
  1223. package/dist/core/identity/entities/robot/types.d.ts +0 -8
  1224. package/dist/core/identity/entities/robot/types.d.ts.map +0 -1
  1225. package/dist/core/identity/entities/robot/types.mjs +0 -4
  1226. package/dist/core/oauth2/grant-types/robot-credentials.d.ts +0 -8
  1227. package/dist/core/oauth2/grant-types/robot-credentials.d.ts.map +0 -1
  1228. package/dist/core/oauth2/grant-types/robot-credentials.mjs +0 -39
  1229. package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +0 -1
  1230. package/dist/core/provisioning/entities/robot/index.d.ts +0 -3
  1231. package/dist/core/provisioning/entities/robot/index.d.ts.map +0 -1
  1232. package/dist/core/provisioning/entities/robot/index.mjs +0 -5
  1233. package/dist/core/provisioning/entities/robot/relations-validator.d.ts +0 -6
  1234. package/dist/core/provisioning/entities/robot/relations-validator.d.ts.map +0 -1
  1235. package/dist/core/provisioning/entities/robot/relations-validator.mjs +0 -20
  1236. package/dist/core/provisioning/entities/robot/relations-validator.mjs.map +0 -1
  1237. package/dist/core/provisioning/entities/robot/types.d.ts +0 -25
  1238. package/dist/core/provisioning/entities/robot/types.d.ts.map +0 -1
  1239. package/dist/core/provisioning/entities/robot/types.mjs +0 -4
  1240. package/dist/core/provisioning/entities/robot/validator.d.ts +0 -6
  1241. package/dist/core/provisioning/entities/robot/validator.d.ts.map +0 -1
  1242. package/dist/core/provisioning/entities/robot/validator.mjs +0 -24
  1243. package/dist/core/provisioning/entities/robot/validator.mjs.map +0 -1
  1244. package/dist/core/provisioning/synchronizer/robot/index.d.ts +0 -3
  1245. package/dist/core/provisioning/synchronizer/robot/index.d.ts.map +0 -1
  1246. package/dist/core/provisioning/synchronizer/robot/index.mjs +0 -5
  1247. package/dist/core/provisioning/synchronizer/robot/module.d.ts +0 -17
  1248. package/dist/core/provisioning/synchronizer/robot/module.d.ts.map +0 -1
  1249. package/dist/core/provisioning/synchronizer/robot/module.mjs +0 -72
  1250. package/dist/core/provisioning/synchronizer/robot/module.mjs.map +0 -1
  1251. package/dist/core/provisioning/synchronizer/robot/types.d.ts +0 -9
  1252. package/dist/core/provisioning/synchronizer/robot/types.d.ts.map +0 -1
  1253. package/dist/core/provisioning/synchronizer/robot/types.mjs +0 -4
  1254. package/dist/ui/client/assets/index-BmWsoQro.css +0 -2
  1255. /package/dist/core/{entities/robot-permission → query}/types.mjs +0 -0
@@ -1,6 +1,9 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { trustAnchorSchema } from "./schema.mjs";
5
+ import { appendQueryConditions, decodeQuery } from "../../query/module.mjs";
6
+ import "../../query/index.mjs";
4
7
  import { buildEntityDiff } from "../event/diff.mjs";
5
8
  import "../event/index.mjs";
6
9
  import { parseCertificateChain } from "../../key/certificate.mjs";
@@ -10,6 +13,7 @@ import { EntityType, EventName, EventScope, PermissionName, TrustAnchorValidator
10
13
  import { AbstractEntityService } from "@authup/server-kit";
11
14
  import { BuiltInPolicyType, definePolicyData } from "@authup/access";
12
15
  import { EntityNotFoundError, ValidationError } from "@authup/errors";
16
+ import { eq, inArray } from "@rapiq/core";
13
17
  //#region src/core/entities/trust-anchor/service.ts
14
18
  const PERMISSION_NAMES = [
15
19
  PermissionName.KEY_READ,
@@ -28,9 +32,21 @@ var TrustAnchorService = class extends AbstractEntityService {
28
32
  this.eventService = ctx.eventService;
29
33
  this.requestContext = ctx.requestContext;
30
34
  }
31
- async getMany(query, actor) {
35
+ async getMany(query, actor, options = {}) {
32
36
  await actor.permissionEvaluator.preEvaluateOneOf({ name: PERMISSION_NAMES });
33
- const { data: entities, meta } = await this.repository.findMany(query);
37
+ let parsed = await decodeQuery(query, {
38
+ schema: trustAnchorSchema,
39
+ actor
40
+ });
41
+ if (options.realmId) parsed = appendQueryConditions(parsed, eq("realmId", options.realmId));
42
+ const compiled = await actor.permissionEvaluator.compile({ name: PERMISSION_NAMES });
43
+ if (compiled.verdict === "deny") parsed = appendQueryConditions(parsed, inArray("id", []));
44
+ else if (compiled.verdict === "conditional") parsed = appendQueryConditions(parsed, compiled.condition);
45
+ const { data: entities, meta } = await this.repository.findMany(parsed);
46
+ if (compiled.verdict !== "post") return {
47
+ data: entities,
48
+ meta
49
+ };
34
50
  const data = [];
35
51
  let { total } = meta;
36
52
  for (const entity of entities) try {
@@ -69,11 +85,11 @@ var TrustAnchorService = class extends AbstractEntityService {
69
85
  async create(data, actor) {
70
86
  await actor.permissionEvaluator.preEvaluate({ name: PermissionName.KEY_CREATE });
71
87
  const validated = await this.validator.run(data, { group: ValidatorGroup.CREATE });
72
- if (!validated.realm_id && actor.identity) {
88
+ if (!validated.realmId && actor.identity) {
73
89
  const actorRealmId = this.getActorRealmId(actor);
74
- if (actorRealmId) validated.realm_id = actorRealmId;
90
+ if (actorRealmId) validated.realmId = actorRealmId;
75
91
  }
76
- if (!validated.realm_id) throw new ValidationError("A realm must be specified.");
92
+ if (!validated.realmId) throw new ValidationError("A realm must be specified.");
77
93
  await this.repository.validateJoinColumns(validated);
78
94
  await actor.permissionEvaluator.evaluate({
79
95
  name: PermissionName.KEY_CREATE,
@@ -108,7 +124,7 @@ var TrustAnchorService = class extends AbstractEntityService {
108
124
  });
109
125
  if (validated.name && validated.name !== entity.name) await this.repository.checkUniqueness({
110
126
  name: validated.name,
111
- realm_id: entity.realm_id
127
+ realmId: entity.realmId
112
128
  }, entity);
113
129
  const previous = this.pickAuditFields(entity);
114
130
  entity = this.repository.merge(entity, validated);
@@ -147,7 +163,7 @@ var TrustAnchorService = class extends AbstractEntityService {
147
163
  name,
148
164
  refType: EntityType.TRUST_ANCHOR,
149
165
  refId: entity.id,
150
- realmId: entity.realm_id ?? null,
166
+ realmId: entity.realmId ?? null,
151
167
  actorType: actor.identity?.type ?? null,
152
168
  actorId: actor.identity?.data.id ?? null,
153
169
  actorName: actor.identity?.data.name ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"service.mjs","names":["BuiltInPolicyType","definePolicyData","EntityType","EventName","EventScope","PermissionName","TrustAnchorValidator","EntityNotFoundError","ValidationError","ValidatorGroup","AbstractEntityService","buildEntityDiff","parseCertificateChain","PERMISSION_NAMES","KEY_READ","KEY_UPDATE","KEY_DELETE","TrustAnchorService","repository","validator","eventService","requestContext","ctx","getMany","query","actor","permissionEvaluator","preEvaluateOneOf","name","data","entities","meta","findMany","total","entity","evaluateOneOf","ATTRIBUTES","resourceRealmMatch","push","getOne","idOrName","realmId","findOneByIdOrName","create","preEvaluate","KEY_CREATE","validated","run","group","CREATE","realm_id","identity","actorRealmId","getActorRealmId","validateJoinColumns","evaluate","checkUniqueness","chain","certificate","ca","enabled","save","recordEvent","CREATED","update","UPDATE","previous","pickAuditFields","merge","diff","UPDATED","Object","keys","length","delete","id","findOneBy","entityId","remove","DELETED","undefined","record","scope","ENTITY","refType","TRUST_ANCHOR","refId","actorType","type","actorId","actorName","requestPath","requestMethod","requestIpAddress","requestUserAgent"],"sources":["../../../../src/core/entities/trust-anchor/service.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 { BuiltInPolicyType, definePolicyData } from '@authup/access';\nimport type { TrustAnchor } from '@authup/core-kit';\nimport {\n EntityType,\n EventName,\n EventScope,\n PermissionName,\n TrustAnchorValidator,\n} from '@authup/core-kit';\nimport { EntityNotFoundError, ValidationError } from '@authup/errors';\nimport { ValidatorGroup } from '@authup/kit';\nimport type { ActorContext, EntityRepositoryFindManyResult } from '@authup/server-kit';\nimport { AbstractEntityService } from '@authup/server-kit';\nimport { buildEntityDiff } from '../event/index.ts';\nimport type { EventRequestContext, IEventService } from '../event/index.ts';\nimport { parseCertificateChain } from '../../key/index.ts';\nimport type { ITrustAnchorRepository, ITrustAnchorService } from './types.ts';\n\nexport type TrustAnchorServiceContext = {\n repository: ITrustAnchorRepository,\n eventService?: IEventService,\n requestContext?: () => EventRequestContext | undefined,\n};\n\nconst PERMISSION_NAMES = [\n PermissionName.KEY_READ,\n PermissionName.KEY_UPDATE,\n PermissionName.KEY_DELETE,\n];\n\nexport class TrustAnchorService extends AbstractEntityService implements ITrustAnchorService {\n protected repository: ITrustAnchorRepository;\n\n protected validator: TrustAnchorValidator;\n\n protected eventService?: IEventService;\n\n protected requestContext?: () => EventRequestContext | undefined;\n\n constructor(ctx: TrustAnchorServiceContext) {\n super();\n this.repository = ctx.repository;\n this.validator = new TrustAnchorValidator();\n this.eventService = ctx.eventService;\n this.requestContext = ctx.requestContext;\n }\n\n async getMany(\n query: Record<string, any>,\n actor: ActorContext,\n ): Promise<EntityRepositoryFindManyResult<TrustAnchor>> {\n await actor.permissionEvaluator.preEvaluateOneOf({ name: PERMISSION_NAMES });\n\n const { data: entities, meta } = await this.repository.findMany(query);\n\n const data: TrustAnchor[] = [];\n let { total } = meta;\n\n for (const entity of entities) {\n try {\n await actor.permissionEvaluator.evaluateOneOf({\n name: PERMISSION_NAMES,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: entity,\n ...this.resourceRealmMatch(entity),\n }),\n });\n data.push(entity);\n } catch {\n total -= 1;\n }\n }\n\n return {\n data,\n meta: {\n ...meta,\n total,\n },\n };\n }\n\n async getOne(\n idOrName: string,\n actor: ActorContext,\n realmId?: string,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluateOneOf({ name: PERMISSION_NAMES });\n\n const entity = await this.repository.findOneByIdOrName(idOrName, realmId);\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await actor.permissionEvaluator.evaluateOneOf({\n name: PERMISSION_NAMES,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: entity,\n ...this.resourceRealmMatch(entity),\n }),\n });\n\n return entity;\n }\n\n async create(\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.KEY_CREATE });\n\n const validated = await this.validator.run(data, { group: ValidatorGroup.CREATE });\n\n if (!validated.realm_id && actor.identity) {\n const actorRealmId = this.getActorRealmId(actor);\n if (actorRealmId) {\n validated.realm_id = actorRealmId;\n }\n }\n\n if (!validated.realm_id) {\n throw new ValidationError('A realm must be specified.');\n }\n\n await this.repository.validateJoinColumns(validated);\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.KEY_CREATE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: validated,\n ...this.resourceRealmMatch(validated),\n }),\n });\n\n await this.repository.checkUniqueness(validated);\n\n const chain = parseCertificateChain(validated.certificate as string);\n if (!chain[0] || !chain[0].ca) {\n throw new ValidationError('A trust anchor must contain a CA certificate.');\n }\n\n if (typeof validated.enabled !== 'boolean') {\n validated.enabled = true;\n }\n\n let entity = this.repository.create(validated);\n entity = await this.repository.save(entity);\n\n await this.recordEvent(EventName.CREATED, entity, actor);\n\n return entity;\n }\n\n async update(\n idOrName: string,\n data: Record<string, any>,\n actor: ActorContext,\n realmId?: string,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.KEY_UPDATE });\n\n let entity = await this.repository.findOneByIdOrName(idOrName, realmId);\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n const validated = await this.validator.run(data, { group: ValidatorGroup.UPDATE });\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.KEY_UPDATE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...validated,\n },\n ...this.resourceRealmMatch(entity),\n }),\n });\n\n if (validated.name && validated.name !== entity.name) {\n await this.repository.checkUniqueness({\n name: validated.name,\n realm_id: entity.realm_id,\n }, entity);\n }\n\n const previous = this.pickAuditFields(entity);\n\n entity = this.repository.merge(entity, validated);\n entity = await this.repository.save(entity);\n\n const diff = buildEntityDiff(this.pickAuditFields(entity), previous);\n await this.recordEvent(EventName.UPDATED, entity, actor, { ...(Object.keys(diff).length > 0 ? { diff } : {}) });\n\n return entity;\n }\n\n async delete(\n id: string,\n actor: ActorContext,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.KEY_DELETE });\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.KEY_DELETE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: entity,\n ...this.resourceRealmMatch(entity),\n }),\n });\n\n const { id: entityId } = entity;\n await this.repository.remove(entity);\n entity.id = entityId;\n\n await this.recordEvent(EventName.DELETED, entity, actor);\n\n return entity;\n }\n\n // ------------------------------------------------------------------\n\n /**\n * Metadata-only audit trail for trust-anchor lifecycle operations\n * (issue #3269) — trust anchors have no entity subscriber, so the\n * security-relevant mutations (an enabled CA anchor turns on mTLS client\n * auth for a realm) are recorded explicitly. The payload never carries\n * certificate bytes.\n */\n protected async recordEvent(\n name: `${EventName}`,\n entity: TrustAnchor,\n actor: ActorContext,\n data: Record<string, any> = {},\n ): Promise<void> {\n const requestContext = this.requestContext ?\n this.requestContext() :\n undefined;\n\n await this.eventService?.record({\n scope: EventScope.ENTITY,\n name,\n refType: EntityType.TRUST_ANCHOR,\n refId: entity.id,\n realmId: entity.realm_id ?? null,\n actorType: actor.identity?.type ?? null,\n actorId: actor.identity?.data.id ?? null,\n actorName: actor.identity?.data.name ?? null,\n requestPath: requestContext?.requestPath ?? null,\n requestMethod: requestContext?.requestMethod ?? null,\n requestIpAddress: requestContext?.requestIpAddress ?? null,\n requestUserAgent: requestContext?.requestUserAgent ?? null,\n data: {\n name: entity.name,\n enabled: entity.enabled,\n ...data,\n },\n });\n }\n\n protected pickAuditFields(entity: TrustAnchor): Record<string, any> {\n return {\n name: entity.name,\n enabled: entity.enabled,\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"service.mjs","names":["BuiltInPolicyType","definePolicyData","eq","inArray","EntityType","EventName","EventScope","PermissionName","TrustAnchorValidator","EntityNotFoundError","ValidationError","ValidatorGroup","AbstractEntityService","buildEntityDiff","parseCertificateChain","appendQueryConditions","decodeQuery","trustAnchorSchema","PERMISSION_NAMES","KEY_READ","KEY_UPDATE","KEY_DELETE","TrustAnchorService","repository","validator","eventService","requestContext","ctx","getMany","query","actor","options","permissionEvaluator","preEvaluateOneOf","name","parsed","schema","realmId","compiled","compile","verdict","condition","data","entities","meta","findMany","total","entity","evaluateOneOf","ATTRIBUTES","resourceRealmMatch","push","getOne","idOrName","findOneByIdOrName","create","preEvaluate","KEY_CREATE","validated","run","group","CREATE","identity","actorRealmId","getActorRealmId","validateJoinColumns","evaluate","checkUniqueness","chain","certificate","ca","enabled","save","recordEvent","CREATED","update","UPDATE","previous","pickAuditFields","merge","diff","UPDATED","Object","keys","length","delete","id","findOneBy","entityId","remove","DELETED","undefined","record","scope","ENTITY","refType","TRUST_ANCHOR","refId","actorType","type","actorId","actorName","requestPath","requestMethod","requestIpAddress","requestUserAgent"],"sources":["../../../../src/core/entities/trust-anchor/service.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 { BuiltInPolicyType, definePolicyData } from '@authup/access';\nimport { eq, inArray } from '@rapiq/core';\nimport type { TrustAnchor } from '@authup/core-kit';\nimport {\n EntityType,\n EventName,\n EventScope,\n PermissionName,\n TrustAnchorValidator,\n} from '@authup/core-kit';\nimport { EntityNotFoundError, ValidationError } from '@authup/errors';\nimport { ValidatorGroup } from '@authup/kit';\nimport type { ActorContext, EntityRepositoryFindManyResult } from '@authup/server-kit';\nimport { AbstractEntityService } from '@authup/server-kit';\nimport { buildEntityDiff } from '../event/index.ts';\nimport type { EventRequestContext, IEventService } from '../event/index.ts';\nimport { parseCertificateChain } from '../../key/index.ts';\nimport type {\n ITrustAnchorRepository, \n ITrustAnchorService, \n TrustAnchorServiceReadOptions,\n} from './types.ts';\nimport { appendQueryConditions, decodeQuery } from '../../query/index.ts';\nimport { trustAnchorSchema } from './schema.ts';\n\nexport type TrustAnchorServiceContext = {\n repository: ITrustAnchorRepository,\n eventService?: IEventService,\n requestContext?: () => EventRequestContext | undefined,\n};\n\nconst PERMISSION_NAMES = [\n PermissionName.KEY_READ,\n PermissionName.KEY_UPDATE,\n PermissionName.KEY_DELETE,\n];\n\nexport class TrustAnchorService extends AbstractEntityService implements ITrustAnchorService {\n protected repository: ITrustAnchorRepository;\n\n protected validator: TrustAnchorValidator;\n\n protected eventService?: IEventService;\n\n protected requestContext?: () => EventRequestContext | undefined;\n\n constructor(ctx: TrustAnchorServiceContext) {\n super();\n this.repository = ctx.repository;\n this.validator = new TrustAnchorValidator();\n this.eventService = ctx.eventService;\n this.requestContext = ctx.requestContext;\n }\n\n async getMany(\n query: Record<string, any>,\n actor: ActorContext,\n options: TrustAnchorServiceReadOptions = {},\n ): Promise<EntityRepositoryFindManyResult<TrustAnchor>> {\n await actor.permissionEvaluator.preEvaluateOneOf({ name: PERMISSION_NAMES });\n\n let parsed = await decodeQuery(query, { schema: trustAnchorSchema, actor });\n if (options.realmId) {\n parsed = appendQueryConditions(parsed, eq('realmId', options.realmId));\n }\n\n // Compile the read permissions against the knowns (actor identity) into a\n // row condition (issue #3286 phase 3): the authorization runs as WHERE, so\n // pagination and totals stay exact. Non-expressible policies fall back to\n // the per-row post-evaluation below.\n const compiled = await actor.permissionEvaluator.compile({ name: PERMISSION_NAMES });\n if (compiled.verdict === 'deny') {\n // no row can pass — a constant-false condition keeps the meta shape\n parsed = appendQueryConditions(parsed, inArray('id', []));\n } else if (compiled.verdict === 'conditional') {\n parsed = appendQueryConditions(parsed, compiled.condition);\n }\n\n const { data: entities, meta } = await this.repository.findMany(parsed);\n\n if (compiled.verdict !== 'post') {\n return { data: entities, meta };\n }\n\n const data: TrustAnchor[] = [];\n let { total } = meta;\n\n for (const entity of entities) {\n try {\n await actor.permissionEvaluator.evaluateOneOf({\n name: PERMISSION_NAMES,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: entity,\n ...this.resourceRealmMatch(entity),\n }),\n });\n data.push(entity);\n } catch {\n total -= 1;\n }\n }\n\n return {\n data,\n meta: {\n ...meta,\n total,\n },\n };\n }\n\n async getOne(\n idOrName: string,\n actor: ActorContext,\n realmId?: string,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluateOneOf({ name: PERMISSION_NAMES });\n\n const entity = await this.repository.findOneByIdOrName(idOrName, realmId);\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await actor.permissionEvaluator.evaluateOneOf({\n name: PERMISSION_NAMES,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: entity,\n ...this.resourceRealmMatch(entity),\n }),\n });\n\n return entity;\n }\n\n async create(\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.KEY_CREATE });\n\n const validated = await this.validator.run(data, { group: ValidatorGroup.CREATE });\n\n if (!validated.realmId && actor.identity) {\n const actorRealmId = this.getActorRealmId(actor);\n if (actorRealmId) {\n validated.realmId = actorRealmId;\n }\n }\n\n if (!validated.realmId) {\n throw new ValidationError('A realm must be specified.');\n }\n\n await this.repository.validateJoinColumns(validated);\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.KEY_CREATE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: validated,\n ...this.resourceRealmMatch(validated),\n }),\n });\n\n await this.repository.checkUniqueness(validated);\n\n const chain = parseCertificateChain(validated.certificate as string);\n if (!chain[0] || !chain[0].ca) {\n throw new ValidationError('A trust anchor must contain a CA certificate.');\n }\n\n if (typeof validated.enabled !== 'boolean') {\n validated.enabled = true;\n }\n\n let entity = this.repository.create(validated);\n entity = await this.repository.save(entity);\n\n await this.recordEvent(EventName.CREATED, entity, actor);\n\n return entity;\n }\n\n async update(\n idOrName: string,\n data: Record<string, any>,\n actor: ActorContext,\n realmId?: string,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.KEY_UPDATE });\n\n let entity = await this.repository.findOneByIdOrName(idOrName, realmId);\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n const validated = await this.validator.run(data, { group: ValidatorGroup.UPDATE });\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.KEY_UPDATE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...validated,\n },\n ...this.resourceRealmMatch(entity),\n }),\n });\n\n if (validated.name && validated.name !== entity.name) {\n await this.repository.checkUniqueness({\n name: validated.name,\n realmId: entity.realmId,\n }, entity);\n }\n\n const previous = this.pickAuditFields(entity);\n\n entity = this.repository.merge(entity, validated);\n entity = await this.repository.save(entity);\n\n const diff = buildEntityDiff(this.pickAuditFields(entity), previous);\n await this.recordEvent(EventName.UPDATED, entity, actor, { ...(Object.keys(diff).length > 0 ? { diff } : {}) });\n\n return entity;\n }\n\n async delete(\n id: string,\n actor: ActorContext,\n ): Promise<TrustAnchor> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.KEY_DELETE });\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.KEY_DELETE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: entity,\n ...this.resourceRealmMatch(entity),\n }),\n });\n\n const { id: entityId } = entity;\n await this.repository.remove(entity);\n entity.id = entityId;\n\n await this.recordEvent(EventName.DELETED, entity, actor);\n\n return entity;\n }\n\n // ------------------------------------------------------------------\n\n /**\n * Metadata-only audit trail for trust-anchor lifecycle operations\n * (issue #3269) — trust anchors have no entity subscriber, so the\n * security-relevant mutations (an enabled CA anchor turns on mTLS client\n * auth for a realm) are recorded explicitly. The payload never carries\n * certificate bytes.\n */\n protected async recordEvent(\n name: `${EventName}`,\n entity: TrustAnchor,\n actor: ActorContext,\n data: Record<string, any> = {},\n ): Promise<void> {\n const requestContext = this.requestContext ?\n this.requestContext() :\n undefined;\n\n await this.eventService?.record({\n scope: EventScope.ENTITY,\n name,\n refType: EntityType.TRUST_ANCHOR,\n refId: entity.id,\n realmId: entity.realmId ?? null,\n actorType: actor.identity?.type ?? null,\n actorId: actor.identity?.data.id ?? null,\n actorName: actor.identity?.data.name ?? null,\n requestPath: requestContext?.requestPath ?? null,\n requestMethod: requestContext?.requestMethod ?? null,\n requestIpAddress: requestContext?.requestIpAddress ?? null,\n requestUserAgent: requestContext?.requestUserAgent ?? null,\n data: {\n name: entity.name,\n enabled: entity.enabled,\n ...data,\n },\n });\n }\n\n protected pickAuditFields(entity: TrustAnchor): Record<string, any> {\n return {\n name: entity.name,\n enabled: entity.enabled,\n };\n }\n}\n"],"mappings":"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"}
@@ -4,8 +4,16 @@ export interface ITrustAnchorRepository extends IEntityRepository<TrustAnchor> {
4
4
  checkUniqueness(data: Partial<TrustAnchor>, existing?: TrustAnchor): Promise<void>;
5
5
  findOneByIdOrName(idOrName: string, realm?: string): Promise<TrustAnchor | null>;
6
6
  }
7
+ export type TrustAnchorServiceReadOptions = {
8
+ /**
9
+ * Route-scoped realm (nested `/realms/:realmId/trust-anchors`
10
+ * mount) — appended onto the decoded query IR as a
11
+ * non-displaceable `realmId` condition.
12
+ */
13
+ realmId?: string;
14
+ };
7
15
  export interface ITrustAnchorService {
8
- getMany(query: Record<string, any>, actor: ActorContext): Promise<EntityRepositoryFindManyResult<TrustAnchor>>;
16
+ getMany(query: Record<string, any>, actor: ActorContext, options?: TrustAnchorServiceReadOptions): Promise<EntityRepositoryFindManyResult<TrustAnchor>>;
9
17
  getOne(idOrName: string, actor: ActorContext, realmId?: string): Promise<TrustAnchor>;
10
18
  create(data: Record<string, any>, actor: ActorContext): Promise<TrustAnchor>;
11
19
  update(idOrName: string, data: Record<string, any>, actor: ActorContext, realmId?: string): Promise<TrustAnchor>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/trust-anchor/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE1G,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC1E,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACpF;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/G,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/trust-anchor/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE1G,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC1E,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACpF;AAED,MAAM,MAAM,6BAA6B,GAAG;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAChC,OAAO,CACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,6BAA6B,GACxC,OAAO,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE"}
@@ -1,3 +1,4 @@
1
1
  export * from './service.ts';
2
2
  export * from './types.ts';
3
+ export * from './schema.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { userSchema } from "./schema.mjs";
4
5
  import { UserService } from "./service.mjs";
5
- export { UserService };
6
+ export { UserService, userSchema };
@@ -0,0 +1,3 @@
1
+ import type { User } from '@authup/core-kit';
2
+ export declare const userSchema: import("@rapiq/core").Schema<User, any>;
3
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user/schema.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM7C,eAAO,MAAM,UAAU,yCAwBrB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { createRelationsReadGate } from "../../query/relations.mjs";
5
+ import { EntityType } from "@authup/core-kit";
6
+ import { defineSchema } from "@rapiq/core";
7
+ //#region src/core/entities/user/schema.ts
8
+ const schemaMapping = { realm: EntityType.REALM };
9
+ const userSchema = defineSchema({
10
+ name: EntityType.USER,
11
+ fields: {
12
+ default: [
13
+ "id",
14
+ "name",
15
+ "nameLocked",
16
+ "firstName",
17
+ "lastName",
18
+ "displayName",
19
+ "avatar",
20
+ "cover",
21
+ "active",
22
+ "createdAt",
23
+ "updatedAt",
24
+ "realmId"
25
+ ],
26
+ allowed: ["email"]
27
+ },
28
+ filters: { allowed: [
29
+ "id",
30
+ "name",
31
+ "realmId"
32
+ ] },
33
+ relations: {
34
+ allowed: ["realm"],
35
+ validate: createRelationsReadGate(schemaMapping)
36
+ },
37
+ sort: { allowed: [
38
+ "id",
39
+ "name",
40
+ "displayName",
41
+ "createdAt",
42
+ "updatedAt"
43
+ ] },
44
+ pagination: { maxLimit: 50 },
45
+ schemaMapping
46
+ });
47
+ //#endregion
48
+ export { userSchema };
49
+
50
+ //# sourceMappingURL=schema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.mjs","names":["defineSchema","EntityType","createRelationsReadGate","schemaMapping","realm","REALM","userSchema","name","USER","fields","default","allowed","filters","relations","validate","sort","pagination","maxLimit"],"sources":["../../../../src/core/entities/user/schema.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 { defineSchema } from '@rapiq/core';\nimport type { User } from '@authup/core-kit';\nimport { EntityType } from '@authup/core-kit';\nimport { createRelationsReadGate } from '../../query/relations.ts';\n\nconst schemaMapping = { realm: EntityType.REALM };\n\nexport const userSchema = defineSchema<User>({\n name: EntityType.USER,\n fields: {\n default: [\n 'id',\n 'name',\n 'nameLocked',\n 'firstName',\n 'lastName',\n 'displayName',\n 'avatar',\n 'cover',\n 'active',\n 'createdAt',\n 'updatedAt',\n 'realmId',\n ],\n allowed: ['email'],\n },\n filters: { allowed: ['id', 'name', 'realmId'] },\n relations: { allowed: ['realm'], validate: createRelationsReadGate(schemaMapping) },\n sort: { allowed: ['id', 'name', 'displayName', 'createdAt', 'updatedAt'] },\n pagination: { maxLimit: 50 },\n schemaMapping,\n});\n"],"mappings":";;;;;;;AAYA,MAAMG,gBAAgB,EAAEC,OAAOH,WAAWI,MAAM;AAEhD,MAAaC,aAAaN,aAAmB;CACzCO,MAAMN,WAAWO;CACjBC,QAAQ;EACJC,SAAS;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACH;EACDC,SAAS,CAAC,OAAQ;CACtB;CACAC,SAAS,EAAED,SAAS;EAAC;EAAM;EAAQ;CAAU,EAAC;CAC9CE,WAAW;EAAEF,SAAS,CAAC,OAAQ;EAAEG,UAAUZ,wBAAwBC,aAAAA;CAAe;CAClFY,MAAM,EAAEJ,SAAS;EAAC;EAAM;EAAQ;EAAe;EAAa;CAAY,EAAC;CACzEK,YAAY,EAAEC,UAAU,GAAG;CAC3Bd;AACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user/service.ts"],"names":[],"mappings":"AAUA,OAAO,EAEH,aAAa,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAG,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,qBAAa,WAAY,SAAQ,qBAAsB,YAAW,YAAY;IAC1E,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC;IAEtC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;gBAEvB,GAAG,EAAE,kBAAkB;IAO7B,OAAO,CACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAoD1C,MAAM,CACR,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAsCV,MAAM,CACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC;IAKV,MAAM,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC;IAKV,IAAI,CACN,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GACvC,OAAO,CAAC;QACP,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,OAAO,CAAA;KACnB,CAAC;IAsII,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC;CA2BnB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user/service.ts"],"names":[],"mappings":"AAWA,OAAO,EAEH,aAAa,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAG,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIhE,MAAM,MAAM,kBAAkB,GAAG;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,qBAAa,WAAY,SAAQ,qBAAsB,YAAW,YAAY;IAC1E,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC;IAEtC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;gBAEvB,GAAG,EAAE,kBAAkB;IAO7B,OAAO,CACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;IA8E1C,MAAM,CACR,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IA8CV,MAAM,CACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC;IAKV,MAAM,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC;IAKV,IAAI,CACN,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GACvC,OAAO,CAAC;QACP,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,OAAO,CAAA;KACnB,CAAC;IAsII,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC;CA2BnB"}
@@ -2,11 +2,15 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { UserCredentialsService } from "../../authentication/credential/entities/user/module.mjs";
5
+ import { userSchema } from "./schema.mjs";
6
+ import { appendQueryConditions, decodeQuery } from "../../query/module.mjs";
7
+ import "../../query/index.mjs";
5
8
  import { ValidatorGroup, isUUID } from "@authup/kit";
6
9
  import { PermissionName, UserValidator } from "@authup/core-kit";
7
10
  import { AbstractEntityService } from "@authup/server-kit";
8
11
  import { BuiltInPolicyType, definePolicyData } from "@authup/access";
9
12
  import { EntityNotFoundError, ValidationError } from "@authup/errors";
13
+ import { eq, inArray, or } from "@rapiq/core";
10
14
  //#region src/core/entities/user/service.ts
11
15
  var UserService = class extends AbstractEntityService {
12
16
  repository;
@@ -19,12 +23,25 @@ var UserService = class extends AbstractEntityService {
19
23
  this.validator = new UserValidator({ passwordMinLength: ctx.passwordMinLength });
20
24
  }
21
25
  async getMany(query, actor) {
22
- await actor.permissionEvaluator.preEvaluateOneOf({ name: [
26
+ const permissionNames = [
23
27
  PermissionName.USER_READ,
24
28
  PermissionName.USER_UPDATE,
25
29
  PermissionName.USER_DELETE
26
- ] });
27
- const { data: entities, meta } = await this.repository.findMany(query);
30
+ ];
31
+ await actor.permissionEvaluator.preEvaluateOneOf({ name: permissionNames });
32
+ const parsed = await decodeQuery(query, {
33
+ schema: userSchema,
34
+ actor
35
+ });
36
+ const compiled = await actor.permissionEvaluator.compile({ name: permissionNames });
37
+ if (compiled.verdict !== "post") {
38
+ const self = actor.identity && actor.identity.type === "user" ? eq("id", actor.identity.data.id) : null;
39
+ let scoped = parsed;
40
+ if (compiled.verdict === "deny") scoped = appendQueryConditions(parsed, self ?? inArray("id", []));
41
+ else if (compiled.verdict === "conditional") scoped = appendQueryConditions(parsed, self ? or(self, compiled.condition) : compiled.condition);
42
+ return this.repository.findMany(scoped);
43
+ }
44
+ const { data: entities, meta } = await this.repository.findMany(parsed);
28
45
  const data = [];
29
46
  let { total } = meta;
30
47
  for (const entity of entities) {
@@ -65,7 +82,11 @@ var UserService = class extends AbstractEntityService {
65
82
  ];
66
83
  let isMe = !!actor.identity && actor.identity.type === "user" && (actor.identity.data.id === idOrName || actor.identity.data.name === idOrName);
67
84
  if (!isMe) await actor.permissionEvaluator.preEvaluateOneOf({ name: permissionNames });
68
- const entity = await this.repository.findOne(idOrName, query, realmId);
85
+ const entity = await this.repository.findOne(idOrName, await decodeQuery(query, {
86
+ schema: userSchema,
87
+ parameters: ["fields", "relations"],
88
+ actor
89
+ }), realmId);
69
90
  if (!entity) throw new EntityNotFoundError();
70
91
  if (isMe && actor.identity.data.id !== entity.id) {
71
92
  isMe = false;
@@ -90,13 +111,13 @@ var UserService = class extends AbstractEntityService {
90
111
  }
91
112
  async save(idOrName, data, actor, options = {}) {
92
113
  let group;
93
- const realm = typeof data.realm_id === "string" ? await this.realmRepository.resolve(data.realm_id) : void 0;
114
+ const realm = typeof data.realmId === "string" ? await this.realmRepository.resolve(data.realmId) : void 0;
94
115
  let entity;
95
116
  if (idOrName) {
96
117
  const where = {};
97
118
  if (isUUID(idOrName)) where.id = idOrName;
98
119
  else where.name = idOrName;
99
- if (realm) where.realm_id = realm.id;
120
+ if (realm) where.realmId = realm.id;
100
121
  entity = await this.repository.findOneBy(where);
101
122
  if (!entity && options.updateOnly) throw new EntityNotFoundError();
102
123
  } else if (options.updateOnly) throw new EntityNotFoundError();
@@ -119,7 +140,7 @@ var UserService = class extends AbstractEntityService {
119
140
  const credentialsService = new UserCredentialsService();
120
141
  if (entity) {
121
142
  const originalName = entity.name;
122
- const originalNameLocked = entity.name_locked;
143
+ const originalNameLocked = entity.nameLocked;
123
144
  if (isSelfEdit) await actor.permissionEvaluator.evaluate({
124
145
  name: PermissionName.USER_SELF_MANAGE,
125
146
  data: definePolicyData({
@@ -129,8 +150,8 @@ var UserService = class extends AbstractEntityService {
129
150
  });
130
151
  entity = this.repository.merge(entity, validated);
131
152
  if (validated.name && validated.name !== originalName) {
132
- if (validated.name_locked) entity.name_locked = validated.name_locked;
133
- if (originalNameLocked && validated.name_locked !== false) entity.name = originalName;
153
+ if (validated.nameLocked) entity.nameLocked = validated.nameLocked;
154
+ if (originalNameLocked && validated.nameLocked !== false) entity.name = originalName;
134
155
  }
135
156
  if (!isSelfEdit) await actor.permissionEvaluator.evaluate({
136
157
  name: PermissionName.USER_UPDATE,
@@ -139,7 +160,7 @@ var UserService = class extends AbstractEntityService {
139
160
  ...entity,
140
161
  ...validated
141
162
  },
142
- [BuiltInPolicyType.REALM_MATCH]: validated.realm_id ?? entity.realm_id ?? null
163
+ [BuiltInPolicyType.REALM_MATCH]: validated.realmId ?? entity.realmId ?? null
143
164
  })
144
165
  });
145
166
  if (validated.password) entity.password = await credentialsService.protect(validated.password);
@@ -149,9 +170,9 @@ var UserService = class extends AbstractEntityService {
149
170
  created: false
150
171
  };
151
172
  }
152
- if (!validated.realm_id) {
173
+ if (!validated.realmId) {
153
174
  const actorRealmId = this.getActorRealmId(actor);
154
- if (actorRealmId) validated.realm_id = actorRealmId;
175
+ if (actorRealmId) validated.realmId = actorRealmId;
155
176
  }
156
177
  entity = this.repository.create(validated);
157
178
  await actor.permissionEvaluator.evaluate({
@@ -1 +1 @@
1
- {"version":3,"file":"service.mjs","names":["BuiltInPolicyType","definePolicyData","ValidatorGroup","isUUID","EntityNotFoundError","ValidationError","PermissionName","UserValidator","AbstractEntityService","UserCredentialsService","UserService","repository","realmRepository","validator","ctx","passwordMinLength","getMany","query","actor","permissionEvaluator","preEvaluateOneOf","name","USER_READ","USER_UPDATE","USER_DELETE","data","entities","meta","findMany","total","entity","identity","type","id","push","evaluateOneOf","ATTRIBUTES","resourceRealmMatch","getOne","idOrName","realmId","permissionNames","isMe","findOne","create","save","undefined","update","updateOnly","options","group","realm","realm_id","resolve","where","findOneBy","isSelfEdit","preEvaluate","e","USER_SELF_MANAGE","UPDATE","USER_CREATE","CREATE","validated","run","validateJoinColumns","credentialsService","originalName","originalNameLocked","name_locked","evaluate","merge","REALM_MATCH","password","protect","created","actorRealmId","getActorRealmId","delete","entityId","remove"],"sources":["../../../../src/core/entities/user/service.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 { BuiltInPolicyType, definePolicyData } from '@authup/access';\nimport { ValidatorGroup, isUUID } from '@authup/kit';\nimport { EntityNotFoundError, ValidationError } from '@authup/errors';\nimport {\n PermissionName,\n UserValidator,\n} from '@authup/core-kit';\nimport type { User } from '@authup/core-kit';\nimport type { ActorContext, EntityRepositoryFindManyResult } from '@authup/server-kit';\nimport type { IRealmRepository } from '../realm/types.ts';\nimport { AbstractEntityService } from '@authup/server-kit';\nimport { UserCredentialsService } from '../../authentication/credential/entities/user/module.ts';\nimport type { IUserRepository, IUserService } from './types.ts';\n\nexport type UserServiceContext = {\n repository: IUserRepository;\n realmRepository: IRealmRepository;\n passwordMinLength?: number;\n};\n\nexport class UserService extends AbstractEntityService implements IUserService {\n protected repository: IUserRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected validator: UserValidator;\n\n constructor(ctx: UserServiceContext) {\n super();\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.validator = new UserValidator({ passwordMinLength: ctx.passwordMinLength });\n }\n\n async getMany(\n query: Record<string, any>,\n actor: ActorContext,\n ): Promise<EntityRepositoryFindManyResult<User>> {\n await actor.permissionEvaluator.preEvaluateOneOf({\n name: [\n PermissionName.USER_READ,\n PermissionName.USER_UPDATE,\n PermissionName.USER_DELETE,\n ],\n });\n\n const {\n data: entities, \n meta, \n } = await this.repository.findMany(query);\n\n const data: User[] = [];\n let { total } = meta;\n\n for (const entity of entities) {\n if (\n actor.identity &&\n actor.identity.type === 'user' &&\n actor.identity.data.id === entity.id\n ) {\n data.push(entity);\n continue;\n }\n\n try {\n await actor.permissionEvaluator.evaluateOneOf({\n name: [\n PermissionName.USER_READ,\n PermissionName.USER_UPDATE,\n PermissionName.USER_DELETE,\n ],\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n\n data.push(entity);\n } catch {\n total -= 1;\n }\n }\n\n return {\n data,\n meta: {\n ...meta,\n total, \n }, \n };\n }\n\n async getOne(\n idOrName: string,\n actor: ActorContext,\n query?: Record<string, any>,\n realmId?: string,\n ): Promise<User> {\n const permissionNames = [\n PermissionName.USER_READ,\n PermissionName.USER_UPDATE,\n PermissionName.USER_DELETE,\n ];\n\n let isMe = !!actor.identity &&\n actor.identity.type === 'user' &&\n (\n actor.identity.data.id === idOrName ||\n actor.identity.data.name === idOrName\n );\n\n if (!isMe) {\n await actor.permissionEvaluator.preEvaluateOneOf({ name: permissionNames });\n }\n\n const entity = await this.repository.findOne(idOrName, query, realmId);\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n if (isMe && actor.identity!.data.id !== entity.id) {\n isMe = false;\n await actor.permissionEvaluator.preEvaluateOneOf({ name: permissionNames });\n }\n\n if (!isMe) {\n await actor.permissionEvaluator.evaluateOneOf({\n name: permissionNames,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n }\n\n return entity;\n }\n\n async create(\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<User> {\n const { entity } = await this.save(undefined, data, actor);\n return entity;\n }\n\n async update(\n idOrName: string,\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<User> {\n const { entity } = await this.save(idOrName, data, actor, { updateOnly: true });\n return entity;\n }\n\n async save(\n idOrName: string | undefined,\n data: Record<string, any>,\n actor: ActorContext,\n options: { updateOnly?: boolean } = {},\n ): Promise<{\n entity: User,\n created: boolean \n }> {\n let group: string;\n\n const realm = typeof data.realm_id === 'string' ?\n await this.realmRepository.resolve(data.realm_id) :\n undefined;\n\n let entity: User | null | undefined;\n if (idOrName) {\n const where: Record<string, any> = {};\n if (isUUID(idOrName)) {\n where.id = idOrName;\n } else {\n where.name = idOrName;\n }\n\n if (realm) {\n where.realm_id = realm.id;\n }\n\n entity = await this.repository.findOneBy(where);\n if (!entity && options.updateOnly) {\n throw new EntityNotFoundError();\n }\n } else if (options.updateOnly) {\n throw new EntityNotFoundError();\n }\n\n let isSelfEdit = false;\n if (entity) {\n try {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_UPDATE });\n } catch (e) {\n if (\n !actor.identity ||\n actor.identity.type !== 'user' ||\n actor.identity.data.id !== entity.id\n ) {\n throw e;\n }\n isSelfEdit = true;\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_SELF_MANAGE });\n }\n\n group = ValidatorGroup.UPDATE;\n } else {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_CREATE });\n\n group = ValidatorGroup.CREATE;\n }\n\n const validated = await this.validator.run(data, { group });\n\n await this.repository.validateJoinColumns(validated);\n\n const credentialsService = new UserCredentialsService();\n\n if (entity) {\n const originalName = entity.name;\n const originalNameLocked = entity.name_locked;\n\n if (isSelfEdit) {\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_SELF_MANAGE,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: validated, ...this.resourceRealmMatch(validated) }),\n });\n }\n\n entity = this.repository.merge(entity, validated);\n\n if (\n validated.name &&\n validated.name !== originalName\n ) {\n if (validated.name_locked) {\n entity.name_locked = validated.name_locked;\n }\n\n if (originalNameLocked && validated.name_locked !== false) {\n entity.name = originalName;\n }\n }\n\n if (!isSelfEdit) {\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_UPDATE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...validated,\n },\n [BuiltInPolicyType.REALM_MATCH]: validated.realm_id ?? entity.realm_id ?? null,\n }),\n });\n }\n\n if (validated.password) {\n entity.password = await credentialsService.protect(validated.password);\n }\n\n await this.repository.save(entity);\n\n return {\n entity,\n created: false, \n };\n }\n\n if (!validated.realm_id) {\n const actorRealmId = this.getActorRealmId(actor);\n if (actorRealmId) {\n validated.realm_id = actorRealmId;\n }\n }\n\n entity = this.repository.create(validated);\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_CREATE,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n\n if (validated.password) {\n entity.password = await credentialsService.protect(validated.password);\n }\n\n await this.repository.save(entity);\n\n return {\n entity,\n created: true, \n };\n }\n\n async delete(\n id: string,\n actor: ActorContext,\n ): Promise<User> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_DELETE });\n\n if (\n actor.identity &&\n actor.identity.type === 'user' &&\n actor.identity.data.id === id\n ) {\n throw new ValidationError('The own user can not be deleted.');\n }\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_DELETE,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n\n const { id: entityId } = entity;\n await this.repository.remove(entity);\n entity.id = entityId;\n\n return entity;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"service.mjs","names":["BuiltInPolicyType","definePolicyData","ValidatorGroup","isUUID","EntityNotFoundError","ValidationError","eq","inArray","or","PermissionName","UserValidator","AbstractEntityService","UserCredentialsService","appendQueryConditions","decodeQuery","userSchema","UserService","repository","realmRepository","validator","ctx","passwordMinLength","getMany","query","actor","permissionNames","USER_READ","USER_UPDATE","USER_DELETE","permissionEvaluator","preEvaluateOneOf","name","parsed","schema","compiled","compile","verdict","self","identity","type","data","id","scoped","condition","findMany","entities","meta","total","entity","push","evaluateOneOf","ATTRIBUTES","resourceRealmMatch","getOne","idOrName","realmId","isMe","findOne","parameters","create","save","undefined","update","updateOnly","options","group","realm","resolve","where","findOneBy","isSelfEdit","preEvaluate","e","USER_SELF_MANAGE","UPDATE","USER_CREATE","CREATE","validated","run","validateJoinColumns","credentialsService","originalName","originalNameLocked","nameLocked","evaluate","merge","REALM_MATCH","password","protect","created","actorRealmId","getActorRealmId","delete","entityId","remove"],"sources":["../../../../src/core/entities/user/service.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 { BuiltInPolicyType, definePolicyData } from '@authup/access';\nimport { ValidatorGroup, isUUID } from '@authup/kit';\nimport { EntityNotFoundError, ValidationError } from '@authup/errors';\nimport { eq, inArray, or } from '@rapiq/core';\nimport {\n PermissionName,\n UserValidator,\n} from '@authup/core-kit';\nimport type { User } from '@authup/core-kit';\nimport type { ActorContext, EntityRepositoryFindManyResult } from '@authup/server-kit';\nimport type { IRealmRepository } from '../realm/types.ts';\nimport { AbstractEntityService } from '@authup/server-kit';\nimport { UserCredentialsService } from '../../authentication/credential/entities/user/module.ts';\nimport type { IUserRepository, IUserService } from './types.ts';\nimport { appendQueryConditions, decodeQuery } from '../../query/index.ts';\nimport { userSchema } from './schema.ts';\n\nexport type UserServiceContext = {\n repository: IUserRepository;\n realmRepository: IRealmRepository;\n passwordMinLength?: number;\n};\n\nexport class UserService extends AbstractEntityService implements IUserService {\n protected repository: IUserRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected validator: UserValidator;\n\n constructor(ctx: UserServiceContext) {\n super();\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.validator = new UserValidator({ passwordMinLength: ctx.passwordMinLength });\n }\n\n async getMany(\n query: Record<string, any>,\n actor: ActorContext,\n ): Promise<EntityRepositoryFindManyResult<User>> {\n const permissionNames = [\n PermissionName.USER_READ,\n PermissionName.USER_UPDATE,\n PermissionName.USER_DELETE,\n ];\n\n await actor.permissionEvaluator.preEvaluateOneOf({ name: permissionNames });\n\n const parsed = await decodeQuery(query, { schema: userSchema, actor });\n\n // Compile the read permissions into a row condition (#3286 phase 3). The\n // own row is always readable, so the self short-circuit composes as an\n // OR-alternative — the whole gate runs as WHERE and pagination/totals\n // stay exact. A non-expressible policy falls back to the per-row loop\n // below.\n const compiled = await actor.permissionEvaluator.compile({ name: permissionNames });\n if (compiled.verdict !== 'post') {\n const self = actor.identity && actor.identity.type === 'user' ?\n eq('id', actor.identity.data.id) :\n null;\n\n let scoped = parsed;\n if (compiled.verdict === 'deny') {\n scoped = appendQueryConditions(parsed, self ?? inArray('id', []));\n } else if (compiled.verdict === 'conditional') {\n scoped = appendQueryConditions(\n parsed,\n self ? or(self, compiled.condition) : compiled.condition,\n );\n }\n\n return this.repository.findMany(scoped);\n }\n\n const {\n data: entities,\n meta,\n } = await this.repository.findMany(parsed);\n\n const data: User[] = [];\n let { total } = meta;\n\n for (const entity of entities) {\n if (\n actor.identity &&\n actor.identity.type === 'user' &&\n actor.identity.data.id === entity.id\n ) {\n data.push(entity);\n continue;\n }\n\n try {\n await actor.permissionEvaluator.evaluateOneOf({\n name: [\n PermissionName.USER_READ,\n PermissionName.USER_UPDATE,\n PermissionName.USER_DELETE,\n ],\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n\n data.push(entity);\n } catch {\n total -= 1;\n }\n }\n\n return {\n data,\n meta: {\n ...meta,\n total, \n }, \n };\n }\n\n async getOne(\n idOrName: string,\n actor: ActorContext,\n query?: Record<string, any>,\n realmId?: string,\n ): Promise<User> {\n const permissionNames = [\n PermissionName.USER_READ,\n PermissionName.USER_UPDATE,\n PermissionName.USER_DELETE,\n ];\n\n let isMe = !!actor.identity &&\n actor.identity.type === 'user' &&\n (\n actor.identity.data.id === idOrName ||\n actor.identity.data.name === idOrName\n );\n\n if (!isMe) {\n await actor.permissionEvaluator.preEvaluateOneOf({ name: permissionNames });\n }\n\n const entity = await this.repository.findOne(\n idOrName,\n await decodeQuery(query, {\n schema: userSchema, \n parameters: ['fields', 'relations'], \n actor, \n }),\n realmId,\n );\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n if (isMe && actor.identity!.data.id !== entity.id) {\n isMe = false;\n await actor.permissionEvaluator.preEvaluateOneOf({ name: permissionNames });\n }\n\n if (!isMe) {\n await actor.permissionEvaluator.evaluateOneOf({\n name: permissionNames,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n }\n\n return entity;\n }\n\n async create(\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<User> {\n const { entity } = await this.save(undefined, data, actor);\n return entity;\n }\n\n async update(\n idOrName: string,\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<User> {\n const { entity } = await this.save(idOrName, data, actor, { updateOnly: true });\n return entity;\n }\n\n async save(\n idOrName: string | undefined,\n data: Record<string, any>,\n actor: ActorContext,\n options: { updateOnly?: boolean } = {},\n ): Promise<{\n entity: User,\n created: boolean \n }> {\n let group: string;\n\n const realm = typeof data.realmId === 'string' ?\n await this.realmRepository.resolve(data.realmId) :\n undefined;\n\n let entity: User | null | undefined;\n if (idOrName) {\n const where: Record<string, any> = {};\n if (isUUID(idOrName)) {\n where.id = idOrName;\n } else {\n where.name = idOrName;\n }\n\n if (realm) {\n where.realmId = realm.id;\n }\n\n entity = await this.repository.findOneBy(where);\n if (!entity && options.updateOnly) {\n throw new EntityNotFoundError();\n }\n } else if (options.updateOnly) {\n throw new EntityNotFoundError();\n }\n\n let isSelfEdit = false;\n if (entity) {\n try {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_UPDATE });\n } catch (e) {\n if (\n !actor.identity ||\n actor.identity.type !== 'user' ||\n actor.identity.data.id !== entity.id\n ) {\n throw e;\n }\n isSelfEdit = true;\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_SELF_MANAGE });\n }\n\n group = ValidatorGroup.UPDATE;\n } else {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_CREATE });\n\n group = ValidatorGroup.CREATE;\n }\n\n const validated = await this.validator.run(data, { group });\n\n await this.repository.validateJoinColumns(validated);\n\n const credentialsService = new UserCredentialsService();\n\n if (entity) {\n const originalName = entity.name;\n const originalNameLocked = entity.nameLocked;\n\n if (isSelfEdit) {\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_SELF_MANAGE,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: validated, ...this.resourceRealmMatch(validated) }),\n });\n }\n\n entity = this.repository.merge(entity, validated);\n\n if (\n validated.name &&\n validated.name !== originalName\n ) {\n if (validated.nameLocked) {\n entity.nameLocked = validated.nameLocked;\n }\n\n if (originalNameLocked && validated.nameLocked !== false) {\n entity.name = originalName;\n }\n }\n\n if (!isSelfEdit) {\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_UPDATE,\n data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...validated,\n },\n [BuiltInPolicyType.REALM_MATCH]: validated.realmId ?? entity.realmId ?? null,\n }),\n });\n }\n\n if (validated.password) {\n entity.password = await credentialsService.protect(validated.password);\n }\n\n await this.repository.save(entity);\n\n return {\n entity,\n created: false, \n };\n }\n\n if (!validated.realmId) {\n const actorRealmId = this.getActorRealmId(actor);\n if (actorRealmId) {\n validated.realmId = actorRealmId;\n }\n }\n\n entity = this.repository.create(validated);\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_CREATE,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n\n if (validated.password) {\n entity.password = await credentialsService.protect(validated.password);\n }\n\n await this.repository.save(entity);\n\n return {\n entity,\n created: true, \n };\n }\n\n async delete(\n id: string,\n actor: ActorContext,\n ): Promise<User> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_DELETE });\n\n if (\n actor.identity &&\n actor.identity.type === 'user' &&\n actor.identity.data.id === id\n ) {\n throw new ValidationError('The own user can not be deleted.');\n }\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_DELETE,\n data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, ...this.resourceRealmMatch(entity) }),\n });\n\n const { id: entityId } = entity;\n await this.repository.remove(entity);\n entity.id = entityId;\n\n return entity;\n }\n}\n"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import type { Role, User } from '@authup/core-kit';
2
+ import type { IQuery } from '@rapiq/core';
2
3
  import type { PermissionPolicyBinding } from '@authup/access';
3
4
  import type { ActorContext, EntityRepositoryFindManyResult, IEntityRepository } from '@authup/server-kit';
4
5
  export interface IUserRepository extends IEntityRepository<User> {
5
6
  checkUniqueness(data: Partial<User>, existing?: User): Promise<void>;
6
- findOne(id: string, query?: Record<string, any>, realm?: string): Promise<User | null>;
7
+ findOne(id: string, query?: IQuery, realm?: string): Promise<User | null>;
7
8
  findOneByWithEmail(where: Record<string, any>): Promise<User | null>;
8
9
  getBoundRoles(entity: string | User): Promise<Role[]>;
9
10
  getBoundPermissions(entity: string | User): Promise<PermissionPolicyBinding[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAE,iBAAiB,EAAG,MAAM,oBAAoB,CAAC;AAE3G,MAAM,WAAW,eAAgB,SAAQ,iBAAiB,CAAC,IAAI,CAAC;IAC5D,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAEvF,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAErE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;IACxG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,IAAI,CACA,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC;QACP,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,OAAO,CAAA;KACnB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAE,iBAAiB,EAAG,MAAM,oBAAoB,CAAC;AAE3G,MAAM,WAAW,eAAgB,SAAQ,iBAAiB,CAAC,IAAI,CAAC;IAC5D,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAE1E,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAErE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;IACxG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,IAAI,CACA,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC;QACP,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,OAAO,CAAA;KACnB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
@@ -1,3 +1,4 @@
1
1
  export * from './service.ts';
2
2
  export * from './types.ts';
3
+ export * from './schema.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-attribute/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-attribute/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { userAttributeSchema } from "./schema.mjs";
4
5
  import { UserAttributeService } from "./service.mjs";
5
- export { UserAttributeService };
6
+ export { UserAttributeService, userAttributeSchema };
@@ -0,0 +1,3 @@
1
+ import type { UserAttribute } from '@authup/core-kit';
2
+ export declare const userAttributeSchema: import("@rapiq/core").Schema<UserAttribute, any>;
3
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-attribute/schema.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,eAAO,MAAM,mBAAmB,kDA4B9B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { createRelationsReadGate } from "../../query/relations.mjs";
5
+ import { EntityType } from "@authup/core-kit";
6
+ import { defineSchema } from "@rapiq/core";
7
+ //#region src/core/entities/user-attribute/schema.ts
8
+ const schemaMapping = {
9
+ user: EntityType.USER,
10
+ realm: EntityType.REALM
11
+ };
12
+ const userAttributeSchema = defineSchema({
13
+ name: EntityType.USER_ATTRIBUTE,
14
+ fields: { default: [
15
+ "id",
16
+ "name",
17
+ "value",
18
+ "userId",
19
+ "realmId",
20
+ "createdAt",
21
+ "updatedAt"
22
+ ] },
23
+ filters: { allowed: [
24
+ "id",
25
+ "name",
26
+ "userId",
27
+ "realmId"
28
+ ] },
29
+ relations: {
30
+ allowed: ["user", "realm"],
31
+ validate: createRelationsReadGate(schemaMapping)
32
+ },
33
+ sort: { allowed: [
34
+ "id",
35
+ "name",
36
+ "userId",
37
+ "realmId",
38
+ "createdAt",
39
+ "updatedAt"
40
+ ] },
41
+ pagination: { maxLimit: 50 },
42
+ schemaMapping
43
+ });
44
+ //#endregion
45
+ export { userAttributeSchema };
46
+
47
+ //# sourceMappingURL=schema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.mjs","names":["defineSchema","EntityType","createRelationsReadGate","schemaMapping","user","USER","realm","REALM","userAttributeSchema","name","USER_ATTRIBUTE","fields","default","filters","allowed","relations","validate","sort","pagination","maxLimit"],"sources":["../../../../src/core/entities/user-attribute/schema.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 { defineSchema } from '@rapiq/core';\nimport type { UserAttribute } from '@authup/core-kit';\nimport { EntityType } from '@authup/core-kit';\nimport { createRelationsReadGate } from '../../query/relations.ts';\n\nconst schemaMapping = { user: EntityType.USER, realm: EntityType.REALM };\n\nexport const userAttributeSchema = defineSchema<UserAttribute>({\n name: EntityType.USER_ATTRIBUTE,\n // see user-role schema — explicit root projection for include= decodes\n fields: {\n default: [\n 'id',\n 'name',\n 'value',\n 'userId',\n 'realmId',\n 'createdAt',\n 'updatedAt',\n ],\n },\n filters: { allowed: ['id', 'name', 'userId', 'realmId'] },\n relations: { allowed: ['user', 'realm'], validate: createRelationsReadGate(schemaMapping) },\n sort: {\n allowed: [\n 'id',\n 'name',\n 'userId',\n 'realmId',\n 'createdAt',\n 'updatedAt',\n ],\n },\n pagination: { maxLimit: 50 },\n schemaMapping,\n});\n"],"mappings":";;;;;;;AAYA,MAAMG,gBAAgB;CAAEC,MAAMH,WAAWI;CAAMC,OAAOL,WAAWM;AAAM;AAEvE,MAAaC,sBAAsBR,aAA4B;CAC3DS,MAAMR,WAAWS;CAEjBC,QAAQ,EACJC,SAAS;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACH,EACL;CACAC,SAAS,EAAEC,SAAS;EAAC;EAAM;EAAQ;EAAU;CAAU,EAAC;CACxDC,WAAW;EAAED,SAAS,CAAC,QAAQ,OAAQ;EAAEE,UAAUd,wBAAwBC,aAAAA;CAAe;CAC1Fc,MAAM,EACFH,SAAS;EACL;EACA;EACA;EACA;EACA;EACA;CACH,EACL;CACAI,YAAY,EAAEC,UAAU,GAAG;CAC3BhB;AACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-attribute/service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAG,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,MAAM,2BAA2B,GAAG;IACtC,UAAU,EAAE,wBAAwB,CAAC;IACrC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,qBAAsB,YAAW,qBAAqB;IAC5F,SAAS,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAE/C,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEjC,GAAG,EAAE,2BAA2B;IAMtC,OAAO,CACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAkCnD,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;IAqBnB,MAAM,CACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;IAwDnB,MAAM,CACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;IAuDnB,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;YAyBX,oBAAoB;CAuBrC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-attribute/service.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAG,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIlF,MAAM,MAAM,2BAA2B,GAAG;IACtC,UAAU,EAAE,wBAAwB,CAAC;IACrC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,qBAAsB,YAAW,qBAAqB;IAC5F,SAAS,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAE/C,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEjC,GAAG,EAAE,2BAA2B;IAMtC,OAAO,CACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;IA6DnD,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;IAqBnB,MAAM,CACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;IAwDnB,MAAM,CACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;IAuDnB,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;YAyBX,oBAAoB;CAuBrC"}