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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  2. package/dist/adapters/database/domains/client/entity.mjs +58 -30
  3. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
  5. package/dist/adapters/database/domains/client-permission/entity.mjs +48 -24
  6. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  7. package/dist/adapters/database/domains/client-role/entity.d.ts.map +1 -1
  8. package/dist/adapters/database/domains/client-role/entity.mjs +37 -17
  9. package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
  10. package/dist/adapters/database/domains/client-scope/entity.d.ts.map +1 -1
  11. package/dist/adapters/database/domains/client-scope/entity.mjs +30 -14
  12. package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
  13. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -1
  14. package/dist/adapters/database/domains/consent/entity.mjs +34 -18
  15. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -1
  16. package/dist/adapters/database/domains/event/entity.d.ts +1 -0
  17. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -1
  18. package/dist/adapters/database/domains/event/entity.mjs +48 -23
  19. package/dist/adapters/database/domains/event/entity.mjs.map +1 -1
  20. package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
  21. package/dist/adapters/database/domains/identity-provider/entity.mjs +43 -23
  22. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  23. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
  24. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +50 -22
  25. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  26. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
  27. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +14 -6
  28. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  29. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
  30. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +5 -1
  31. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  32. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
  33. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +18 -6
  34. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  35. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
  36. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +34 -14
  37. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  38. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  39. package/dist/adapters/database/domains/key/entity.mjs +35 -19
  40. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  41. package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
  42. package/dist/adapters/database/domains/permission/entity.mjs +35 -19
  43. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  44. package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
  45. package/dist/adapters/database/domains/permission-policy/entity.mjs +37 -17
  46. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  47. package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
  48. package/dist/adapters/database/domains/policy/entity.mjs +51 -27
  49. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  50. package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
  51. package/dist/adapters/database/domains/policy-attribute/entity.mjs +14 -6
  52. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  53. package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
  54. package/dist/adapters/database/domains/realm/entity.mjs +36 -20
  55. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  56. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  57. package/dist/adapters/database/domains/role/entity.mjs +44 -24
  58. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  59. package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
  60. package/dist/adapters/database/domains/role-attribute/entity.mjs +30 -14
  61. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  62. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  63. package/dist/adapters/database/domains/role-permission/entity.mjs +45 -21
  64. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  65. package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
  66. package/dist/adapters/database/domains/scope/entity.mjs +35 -19
  67. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  68. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  69. package/dist/adapters/database/domains/session/entity.mjs +63 -31
  70. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  71. package/dist/adapters/database/domains/session-token/entity.d.ts +4 -1
  72. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
  73. package/dist/adapters/database/domains/session-token/entity.mjs +40 -11
  74. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
  75. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -1
  76. package/dist/adapters/database/domains/trust-anchor/entity.mjs +25 -13
  77. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -1
  78. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  79. package/dist/adapters/database/domains/user/entity.mjs +58 -34
  80. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  81. package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
  82. package/dist/adapters/database/domains/user-attribute/entity.mjs +27 -11
  83. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  84. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -1
  85. package/dist/adapters/database/domains/user-authenticator/entity.mjs +43 -23
  86. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -1
  87. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  88. package/dist/adapters/database/domains/user-permission/entity.mjs +45 -21
  89. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  90. package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
  91. package/dist/adapters/database/domains/user-role/entity.mjs +37 -17
  92. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  93. package/dist/adapters/database/errors/driver.d.ts +9 -0
  94. package/dist/adapters/database/errors/driver.d.ts.map +1 -1
  95. package/dist/adapters/database/errors/driver.mjs +20 -1
  96. package/dist/adapters/database/errors/driver.mjs.map +1 -1
  97. package/dist/adapters/database/errors/index.mjs +2 -2
  98. package/dist/adapters/database/helpers/index.mjs +2 -2
  99. package/dist/adapters/database/helpers/is-supported.d.ts +7 -0
  100. package/dist/adapters/database/helpers/is-supported.d.ts.map +1 -1
  101. package/dist/adapters/database/helpers/is-supported.mjs +9 -1
  102. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  103. package/dist/adapters/database/index.mjs +3 -3
  104. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts +66 -0
  105. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  106. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs +181 -0
  107. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  108. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts +44 -0
  109. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts.map +1 -0
  110. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs +1294 -0
  111. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs.map +1 -0
  112. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts +43 -0
  113. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  114. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs +120 -0
  115. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  116. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts +44 -0
  117. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts.map +1 -0
  118. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs +987 -0
  119. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs.map +1 -0
  120. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +14 -2
  121. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  122. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +85 -19
  123. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  124. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +4 -1
  125. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
  126. package/dist/adapters/http/controllers/entities/identity-provider-account/index.d.ts.map +1 -0
  127. package/dist/adapters/http/controllers/entities/identity-provider-account/index.mjs +5 -0
  128. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts +15 -0
  129. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts.map +1 -0
  130. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs +94 -0
  131. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs.map +1 -0
  132. package/dist/adapters/http/controllers/entities/index.d.ts +2 -0
  133. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  134. package/dist/adapters/http/controllers/entities/index.mjs +5 -1
  135. package/dist/adapters/http/controllers/entities/session-token/index.d.ts +2 -0
  136. package/dist/adapters/http/controllers/entities/session-token/index.d.ts.map +1 -0
  137. package/dist/adapters/http/controllers/entities/session-token/index.mjs +5 -0
  138. package/dist/adapters/http/controllers/entities/session-token/module.d.ts +23 -0
  139. package/dist/adapters/http/controllers/entities/session-token/module.d.ts.map +1 -0
  140. package/dist/adapters/http/controllers/entities/session-token/module.mjs +112 -0
  141. package/dist/adapters/http/controllers/entities/session-token/module.mjs.map +1 -0
  142. package/dist/adapters/http/controllers/index.mjs +3 -1
  143. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -1
  144. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -0
  145. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
  146. package/dist/adapters/http/index.mjs +3 -1
  147. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  148. package/dist/adapters/http/middleware/built-in/error.mjs +4 -3
  149. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  150. package/dist/adapters/http/request/event-context.d.ts.map +1 -1
  151. package/dist/adapters/http/request/event-context.mjs +2 -0
  152. package/dist/adapters/http/request/event-context.mjs.map +1 -1
  153. package/dist/app/index.mjs +2 -2
  154. package/dist/app/modules/database/index.mjs +2 -1
  155. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts +2 -0
  156. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts.map +1 -0
  157. package/dist/app/modules/database/repositories/identity-provider-account/index.mjs +5 -0
  158. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts +18 -0
  159. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts.map +1 -0
  160. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +69 -0
  161. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -0
  162. package/dist/app/modules/database/repositories/index.d.ts +1 -0
  163. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  164. package/dist/app/modules/database/repositories/index.mjs +3 -1
  165. package/dist/app/modules/database/repositories/key/repository.d.ts +23 -0
  166. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -1
  167. package/dist/app/modules/database/repositories/key/repository.mjs +39 -3
  168. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  169. package/dist/app/modules/database/repositories/schema-validation.d.ts +14 -6
  170. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
  171. package/dist/app/modules/database/repositories/schema-validation.mjs +18 -6
  172. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -1
  173. package/dist/app/modules/http/modules/controller.d.ts +3 -1
  174. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  175. package/dist/app/modules/http/modules/controller.mjs +37 -1
  176. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  177. package/dist/app/modules/identity/index.mjs +1 -2
  178. package/dist/app/modules/identity/module.d.ts.map +1 -1
  179. package/dist/app/modules/identity/module.mjs +2 -2
  180. package/dist/app/modules/identity/module.mjs.map +1 -1
  181. package/dist/app/modules/identity/repositories/index.mjs +1 -2
  182. package/dist/app/modules/identity/repositories/provider/index.d.ts +0 -1
  183. package/dist/app/modules/identity/repositories/provider/index.d.ts.map +1 -1
  184. package/dist/app/modules/identity/repositories/provider/index.mjs +1 -3
  185. package/dist/app/modules/index.mjs +2 -2
  186. package/dist/app/modules/logger/module.d.ts.map +1 -1
  187. package/dist/app/modules/logger/module.mjs +1 -0
  188. package/dist/app/modules/logger/module.mjs.map +1 -1
  189. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +25 -1
  190. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
  191. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +70 -1
  192. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  193. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  194. package/dist/app/modules/provisioning/module.mjs +3 -1
  195. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  196. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  197. package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
  198. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  199. package/dist/core/entities/client/schema.d.ts.map +1 -1
  200. package/dist/core/entities/client/schema.mjs +29 -10
  201. package/dist/core/entities/client/schema.mjs.map +1 -1
  202. package/dist/core/entities/client-permission/schema.d.ts.map +1 -1
  203. package/dist/core/entities/client-permission/schema.mjs +29 -6
  204. package/dist/core/entities/client-permission/schema.mjs.map +1 -1
  205. package/dist/core/entities/client-role/schema.d.ts.map +1 -1
  206. package/dist/core/entities/client-role/schema.mjs +27 -6
  207. package/dist/core/entities/client-role/schema.mjs.map +1 -1
  208. package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
  209. package/dist/core/entities/client-scope/schema.mjs +19 -5
  210. package/dist/core/entities/client-scope/schema.mjs.map +1 -1
  211. package/dist/core/entities/consent/schema.d.ts.map +1 -1
  212. package/dist/core/entities/consent/schema.mjs +28 -6
  213. package/dist/core/entities/consent/schema.mjs.map +1 -1
  214. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  215. package/dist/core/entities/event/entity-event-handler.mjs +2 -0
  216. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  217. package/dist/core/entities/event/sanitize.d.ts.map +1 -1
  218. package/dist/core/entities/event/sanitize.mjs +7 -4
  219. package/dist/core/entities/event/sanitize.mjs.map +1 -1
  220. package/dist/core/entities/event/schema.d.ts.map +1 -1
  221. package/dist/core/entities/event/schema.mjs +45 -16
  222. package/dist/core/entities/event/schema.mjs.map +1 -1
  223. package/dist/core/entities/event/service.d.ts.map +1 -1
  224. package/dist/core/entities/event/service.mjs +2 -0
  225. package/dist/core/entities/event/service.mjs.map +1 -1
  226. package/dist/core/entities/event/types.d.ts +2 -0
  227. package/dist/core/entities/event/types.d.ts.map +1 -1
  228. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -1
  229. package/dist/core/entities/identity-provider/schema.mjs +29 -11
  230. package/dist/core/entities/identity-provider/schema.mjs.map +1 -1
  231. package/dist/core/entities/identity-provider-account/error.d.ts +7 -0
  232. package/dist/core/entities/identity-provider-account/error.d.ts.map +1 -0
  233. package/dist/core/entities/identity-provider-account/error.mjs +24 -0
  234. package/dist/core/entities/identity-provider-account/error.mjs.map +1 -0
  235. package/dist/core/entities/identity-provider-account/index.d.ts +5 -0
  236. package/dist/core/entities/identity-provider-account/index.d.ts.map +1 -0
  237. package/dist/core/entities/identity-provider-account/index.mjs +8 -0
  238. package/dist/core/entities/identity-provider-account/schema.d.ts +3 -0
  239. package/dist/core/entities/identity-provider-account/schema.d.ts.map +1 -0
  240. package/dist/core/entities/identity-provider-account/schema.mjs +52 -0
  241. package/dist/core/entities/identity-provider-account/schema.mjs.map +1 -0
  242. package/dist/core/entities/identity-provider-account/service.d.ts +24 -0
  243. package/dist/core/entities/identity-provider-account/service.d.ts.map +1 -0
  244. package/dist/core/entities/identity-provider-account/service.mjs +129 -0
  245. package/dist/core/entities/identity-provider-account/service.mjs.map +1 -0
  246. package/dist/core/entities/identity-provider-account/types.d.ts +69 -0
  247. package/dist/core/entities/identity-provider-account/types.d.ts.map +1 -0
  248. package/dist/core/entities/identity-provider-account/types.mjs +17 -0
  249. package/dist/core/entities/identity-provider-account/types.mjs.map +1 -0
  250. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -1
  251. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +27 -6
  252. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -1
  253. package/dist/core/entities/index.d.ts +2 -0
  254. package/dist/core/entities/index.d.ts.map +1 -1
  255. package/dist/core/entities/index.mjs +9 -1
  256. package/dist/core/entities/key/schema.d.ts.map +1 -1
  257. package/dist/core/entities/key/schema.mjs +39 -17
  258. package/dist/core/entities/key/schema.mjs.map +1 -1
  259. package/dist/core/entities/key/service.d.ts.map +1 -1
  260. package/dist/core/entities/key/service.mjs +1 -0
  261. package/dist/core/entities/key/service.mjs.map +1 -1
  262. package/dist/core/entities/permission/schema.d.ts.map +1 -1
  263. package/dist/core/entities/permission/schema.mjs +34 -13
  264. package/dist/core/entities/permission/schema.mjs.map +1 -1
  265. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -1
  266. package/dist/core/entities/permission-policy/schema.mjs +27 -6
  267. package/dist/core/entities/permission-policy/schema.mjs.map +1 -1
  268. package/dist/core/entities/policy/schema.d.ts.map +1 -1
  269. package/dist/core/entities/policy/schema.mjs +31 -12
  270. package/dist/core/entities/policy/schema.mjs.map +1 -1
  271. package/dist/core/entities/realm/schema.d.ts.map +1 -1
  272. package/dist/core/entities/realm/schema.mjs +26 -12
  273. package/dist/core/entities/realm/schema.mjs.map +1 -1
  274. package/dist/core/entities/role/schema.d.ts.map +1 -1
  275. package/dist/core/entities/role/schema.mjs +36 -14
  276. package/dist/core/entities/role/schema.mjs.map +1 -1
  277. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -1
  278. package/dist/core/entities/role-attribute/schema.mjs +28 -14
  279. package/dist/core/entities/role-attribute/schema.mjs.map +1 -1
  280. package/dist/core/entities/role-permission/schema.d.ts.map +1 -1
  281. package/dist/core/entities/role-permission/schema.mjs +29 -6
  282. package/dist/core/entities/role-permission/schema.mjs.map +1 -1
  283. package/dist/core/entities/scope/schema.d.ts.map +1 -1
  284. package/dist/core/entities/scope/schema.mjs +28 -12
  285. package/dist/core/entities/scope/schema.mjs.map +1 -1
  286. package/dist/core/entities/session/schema.d.ts.map +1 -1
  287. package/dist/core/entities/session/schema.mjs +41 -9
  288. package/dist/core/entities/session/schema.mjs.map +1 -1
  289. package/dist/core/entities/session-token/index.d.ts +4 -0
  290. package/dist/core/entities/session-token/index.d.ts.map +1 -0
  291. package/dist/core/entities/session-token/index.mjs +6 -0
  292. package/dist/core/entities/session-token/schema.d.ts +12 -0
  293. package/dist/core/entities/session-token/schema.d.ts.map +1 -0
  294. package/dist/core/entities/session-token/schema.mjs +66 -0
  295. package/dist/core/entities/session-token/schema.mjs.map +1 -0
  296. package/dist/core/entities/session-token/service.d.ts +70 -0
  297. package/dist/core/entities/session-token/service.d.ts.map +1 -0
  298. package/dist/core/entities/session-token/service.mjs +216 -0
  299. package/dist/core/entities/session-token/service.mjs.map +1 -0
  300. package/dist/core/entities/session-token/types.d.ts +37 -0
  301. package/dist/core/entities/session-token/types.d.ts.map +1 -0
  302. package/dist/core/entities/session-token/types.mjs +4 -0
  303. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -1
  304. package/dist/core/entities/trust-anchor/schema.mjs +27 -13
  305. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -1
  306. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
  307. package/dist/core/entities/trust-anchor/service.mjs +1 -0
  308. package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
  309. package/dist/core/entities/user/schema.d.ts.map +1 -1
  310. package/dist/core/entities/user/schema.mjs +29 -12
  311. package/dist/core/entities/user/schema.mjs.map +1 -1
  312. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -1
  313. package/dist/core/entities/user-attribute/schema.mjs +28 -14
  314. package/dist/core/entities/user-attribute/schema.mjs.map +1 -1
  315. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -1
  316. package/dist/core/entities/user-authenticator/schema.mjs +29 -12
  317. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -1
  318. package/dist/core/entities/user-authenticator/service.d.ts +2 -1
  319. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
  320. package/dist/core/entities/user-authenticator/service.mjs +5 -0
  321. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  322. package/dist/core/entities/user-authenticator/types.d.ts +7 -1
  323. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
  324. package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
  325. package/dist/core/entities/user-permission/schema.d.ts.map +1 -1
  326. package/dist/core/entities/user-permission/schema.mjs +29 -6
  327. package/dist/core/entities/user-permission/schema.mjs.map +1 -1
  328. package/dist/core/entities/user-role/schema.d.ts.map +1 -1
  329. package/dist/core/entities/user-role/schema.mjs +27 -6
  330. package/dist/core/entities/user-role/schema.mjs.map +1 -1
  331. package/dist/core/identity/index.mjs +2 -1
  332. package/dist/core/identity/provider/account/error.d.ts +7 -0
  333. package/dist/core/identity/provider/account/error.d.ts.map +1 -0
  334. package/dist/core/identity/provider/account/error.mjs +24 -0
  335. package/dist/core/identity/provider/account/error.mjs.map +1 -0
  336. package/dist/core/identity/provider/account/index.d.ts +1 -0
  337. package/dist/core/identity/provider/account/index.d.ts.map +1 -1
  338. package/dist/core/identity/provider/account/index.mjs +2 -1
  339. package/dist/core/identity/provider/account/module.d.ts +2 -0
  340. package/dist/core/identity/provider/account/module.d.ts.map +1 -1
  341. package/dist/core/identity/provider/account/module.mjs +30 -0
  342. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  343. package/dist/core/identity/provider/account/types.d.ts +12 -10
  344. package/dist/core/identity/provider/account/types.d.ts.map +1 -1
  345. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts +1 -0
  346. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
  347. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +5 -1
  348. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  349. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts +7 -0
  350. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts.map +1 -1
  351. package/dist/core/identity/provider/index.mjs +2 -1
  352. package/dist/core/index.mjs +10 -2
  353. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  354. package/dist/core/oauth2/authorization/module.mjs +2 -0
  355. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  356. package/dist/core/oauth2/authorization/state/types.d.ts +11 -0
  357. package/dist/core/oauth2/authorization/state/types.d.ts.map +1 -1
  358. package/dist/core/oauth2/end-session/service.mjs +2 -2
  359. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  360. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  361. package/dist/core/oauth2/grant-types/authorize.mjs +1 -5
  362. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  363. package/dist/core/oauth2/grant-types/password.mjs +2 -5
  364. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  365. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  366. package/dist/core/oauth2/grant-types/refresh-token.mjs +37 -24
  367. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  368. package/dist/core/oauth2/index.mjs +3 -1
  369. package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -1
  370. package/dist/core/oauth2/mfa-login/module.mjs +4 -7
  371. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
  372. package/dist/core/oauth2/session-token/error.d.ts +36 -0
  373. package/dist/core/oauth2/session-token/error.d.ts.map +1 -0
  374. package/dist/core/oauth2/session-token/error.mjs +49 -0
  375. package/dist/core/oauth2/session-token/error.mjs.map +1 -0
  376. package/dist/core/oauth2/session-token/index.d.ts +1 -0
  377. package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
  378. package/dist/core/oauth2/session-token/index.mjs +2 -1
  379. package/dist/core/oauth2/session-token/types.d.ts +40 -0
  380. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  381. package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
  382. package/dist/core/oauth2/token/issuer/access/module.mjs +1 -0
  383. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  384. package/dist/core/oauth2/token/issuer/base.d.ts +1 -1
  385. package/dist/core/oauth2/token/issuer/base.d.ts.map +1 -1
  386. package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
  387. package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
  388. package/dist/core/oauth2/token/issuer/refresh/module.mjs +1 -0
  389. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  390. package/dist/core/query/index.mjs +2 -2
  391. package/dist/core/query/module.d.ts +19 -9
  392. package/dist/core/query/module.d.ts.map +1 -1
  393. package/dist/core/query/module.mjs +22 -10
  394. package/dist/core/query/module.mjs.map +1 -1
  395. package/dist/index.mjs +6 -4
  396. package/dist/swagger.json +869 -140
  397. package/dist/utils/error.d.ts +20 -3
  398. package/dist/utils/error.d.ts.map +1 -1
  399. package/dist/utils/error.mjs +102 -5
  400. package/dist/utils/error.mjs.map +1 -1
  401. package/dist/utils/index.mjs +2 -2
  402. package/package.json +23 -21
  403. package/dist/app/modules/identity/repositories/provider/account/index.d.ts.map +0 -1
  404. package/dist/app/modules/identity/repositories/provider/account/index.mjs +0 -5
  405. package/dist/app/modules/identity/repositories/provider/account/module.d.ts +0 -10
  406. package/dist/app/modules/identity/repositories/provider/account/module.d.ts.map +0 -1
  407. package/dist/app/modules/identity/repositories/provider/account/module.mjs +0 -28
  408. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +0 -1
  409. /package/dist/{app/modules/identity/repositories/provider/account → adapters/http/controllers/entities/identity-provider-account}/index.d.ts +0 -0
@@ -1 +1 @@
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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"}
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","sessionId","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 sessionId: requestContext?.sessionId ?? 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 +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,yCA0BrB,CAAC"}
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,yCAmCrB,CAAC"}
@@ -8,6 +8,15 @@ import { defineSchema } from "@rapiq/core";
8
8
  const schemaMapping = { realm: EntityType.REALM };
9
9
  const userSchema = defineSchema({
10
10
  name: EntityType.USER,
11
+ indexes: [
12
+ ["id"],
13
+ ["name", "realmId"],
14
+ ["displayName"],
15
+ ["realmId"],
16
+ ["active"],
17
+ ["createdAt"],
18
+ ["updatedAt"]
19
+ ],
11
20
  fields: {
12
21
  default: [
13
22
  "id",
@@ -27,22 +36,30 @@ const userSchema = defineSchema({
27
36
  ],
28
37
  allowed: ["email"]
29
38
  },
30
- filters: { allowed: [
31
- "id",
32
- "name",
33
- "realmId"
34
- ] },
39
+ filters: {
40
+ allowed: [
41
+ "id",
42
+ "name",
43
+ "displayName",
44
+ "realmId",
45
+ "active"
46
+ ],
47
+ indexed: true
48
+ },
35
49
  relations: {
36
50
  allowed: ["realm"],
37
51
  validate: createRelationsReadGate(schemaMapping)
38
52
  },
39
- sort: { allowed: [
40
- "id",
41
- "name",
42
- "displayName",
43
- "createdAt",
44
- "updatedAt"
45
- ] },
53
+ sorts: {
54
+ allowed: [
55
+ "id",
56
+ "name",
57
+ "displayName",
58
+ "createdAt",
59
+ "updatedAt"
60
+ ],
61
+ indexed: true
62
+ },
46
63
  pagination: { maxLimit: 50 },
47
64
  schemaMapping
48
65
  });
@@ -1 +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 'status',\n 'statusMessage',\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;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
+ {"version":3,"file":"schema.mjs","names":["defineSchema","EntityType","createRelationsReadGate","schemaMapping","realm","REALM","userSchema","name","USER","indexes","fields","default","allowed","filters","indexed","relations","validate","sorts","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 indexes: [\n ['id'],\n ['name', 'realmId'],\n ['displayName'],\n ['realmId'],\n ['active'],\n ['createdAt'],\n ['updatedAt'],\n ],\n fields: {\n default: [\n 'id',\n 'name',\n 'nameLocked',\n 'firstName',\n 'lastName',\n 'displayName',\n 'avatar',\n 'cover',\n 'active',\n 'status',\n 'statusMessage',\n 'createdAt',\n 'updatedAt',\n 'realmId',\n ],\n allowed: ['email'],\n },\n filters: { allowed: ['id', 'name', 'displayName', 'realmId', 'active'], indexed: true },\n relations: { allowed: ['realm'], validate: createRelationsReadGate(schemaMapping) },\n sorts: { allowed: ['id', 'name', 'displayName', 'createdAt', 'updatedAt'], indexed: true },\n pagination: { maxLimit: 50 },\n schemaMapping,\n});\n"],"mappings":";;;;;;;AAYA,MAAMG,gBAAgB,EAAEC,OAAOH,WAAWI,MAAM;AAEhD,MAAaC,aAAaN,aAAmB;CACzCO,MAAMN,WAAWO;CACjBC,SAAS;EACL,CAAC,IAAK;EACN,CAAC,QAAQ,SAAU;EACnB,CAAC,aAAc;EACf,CAAC,SAAU;EACX,CAAC,QAAS;EACV,CAAC,WAAY;EACb,CAAC,WAAY;CAChB;CACDC,QAAQ;EACJC,SAAS;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACH;EACDC,SAAS,CAAC,OAAQ;CACtB;CACAC,SAAS;EAAED,SAAS;GAAC;GAAM;GAAQ;GAAe;GAAW;EAAS;EAAEE,SAAS;CAAK;CACtFC,WAAW;EAAEH,SAAS,CAAC,OAAQ;EAAEI,UAAUd,wBAAwBC,aAAAA;CAAe;CAClFc,OAAO;EAAEL,SAAS;GAAC;GAAM;GAAQ;GAAe;GAAa;EAAY;EAAEE,SAAS;CAAK;CACzFI,YAAY,EAAEC,UAAU,GAAG;CAC3BhB;AACJ,CAAA"}
@@ -1 +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"}
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,kDAqC9B,CAAC"}
@@ -11,6 +11,14 @@ const schemaMapping = {
11
11
  };
12
12
  const userAttributeSchema = defineSchema({
13
13
  name: EntityType.USER_ATTRIBUTE,
14
+ indexes: [
15
+ ["id"],
16
+ ["name", "userId"],
17
+ ["userId"],
18
+ ["realmId"],
19
+ ["createdAt"],
20
+ ["updatedAt"]
21
+ ],
14
22
  fields: { default: [
15
23
  "id",
16
24
  "name",
@@ -20,24 +28,30 @@ const userAttributeSchema = defineSchema({
20
28
  "createdAt",
21
29
  "updatedAt"
22
30
  ] },
23
- filters: { allowed: [
24
- "id",
25
- "name",
26
- "userId",
27
- "realmId"
28
- ] },
31
+ filters: {
32
+ allowed: [
33
+ "id",
34
+ "name",
35
+ "userId",
36
+ "realmId"
37
+ ],
38
+ indexed: true
39
+ },
29
40
  relations: {
30
41
  allowed: ["user", "realm"],
31
42
  validate: createRelationsReadGate(schemaMapping)
32
43
  },
33
- sort: { allowed: [
34
- "id",
35
- "name",
36
- "userId",
37
- "realmId",
38
- "createdAt",
39
- "updatedAt"
40
- ] },
44
+ sorts: {
45
+ allowed: [
46
+ "id",
47
+ "name",
48
+ "userId",
49
+ "realmId",
50
+ "createdAt",
51
+ "updatedAt"
52
+ ],
53
+ indexed: true
54
+ },
41
55
  pagination: { maxLimit: 50 },
42
56
  schemaMapping
43
57
  });
@@ -1 +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
+ {"version":3,"file":"schema.mjs","names":["defineSchema","EntityType","createRelationsReadGate","schemaMapping","user","USER","realm","REALM","userAttributeSchema","name","USER_ATTRIBUTE","indexes","fields","default","filters","allowed","indexed","relations","validate","sorts","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 indexes: [\n ['id'],\n ['name', 'userId'],\n ['userId'],\n ['realmId'],\n ['createdAt'],\n ['updatedAt'],\n ],\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'], indexed: true },\n relations: { allowed: ['user', 'realm'], validate: createRelationsReadGate(schemaMapping) },\n sorts: {\n allowed: [\n 'id',\n 'name',\n 'userId',\n 'realmId',\n 'createdAt',\n 'updatedAt',\n ],\n indexed: true,\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;CACjBC,SAAS;EACL,CAAC,IAAK;EACN,CAAC,QAAQ,QAAS;EAClB,CAAC,QAAS;EACV,CAAC,SAAU;EACX,CAAC,WAAY;EACb,CAAC,WAAY;CAChB;CAEDC,QAAQ,EACJC,SAAS;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACH,EACL;CACAC,SAAS;EAAEC,SAAS;GAAC;GAAM;GAAQ;GAAU;EAAU;EAAEC,SAAS;CAAK;CACvEC,WAAW;EAAEF,SAAS,CAAC,QAAQ,OAAQ;EAAEG,UAAUhB,wBAAwBC,aAAAA;CAAe;CAC1FgB,OAAO;EACHJ,SAAS;GACL;GACA;GACA;GACA;GACA;GACA;EACH;EACDC,SAAS;CACb;CACAI,YAAY,EAAEC,UAAU,GAAG;CAC3BlB;AACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-authenticator/schema.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,eAAO,MAAM,uBAAuB,sDAoBlC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-authenticator/schema.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,eAAO,MAAM,uBAAuB,sDA8BlC,CAAC"}
@@ -11,6 +11,16 @@ const schemaMapping = {
11
11
  };
12
12
  const userAuthenticatorSchema = defineSchema({
13
13
  name: EntityType.USER_AUTHENTICATOR,
14
+ indexes: [
15
+ ["id"],
16
+ ["kind"],
17
+ ["confirmed"],
18
+ ["userId"],
19
+ ["realmId"],
20
+ ["createdAt"],
21
+ ["updatedAt"],
22
+ ["lastUsedAt"]
23
+ ],
14
24
  fields: { allowed: [
15
25
  "id",
16
26
  "kind",
@@ -22,22 +32,29 @@ const userAuthenticatorSchema = defineSchema({
22
32
  "userId",
23
33
  "realmId"
24
34
  ] },
25
- filters: { allowed: [
26
- "id",
27
- "kind",
28
- "confirmed",
29
- "userId",
30
- "realmId"
31
- ] },
35
+ filters: {
36
+ allowed: [
37
+ "id",
38
+ "kind",
39
+ "confirmed",
40
+ "userId",
41
+ "realmId",
42
+ "lastUsedAt"
43
+ ],
44
+ indexed: true
45
+ },
32
46
  relations: {
33
47
  allowed: ["user", "realm"],
34
48
  validate: createRelationsReadGate(schemaMapping)
35
49
  },
36
- sort: { allowed: [
37
- "createdAt",
38
- "updatedAt",
39
- "lastUsedAt"
40
- ] },
50
+ sorts: {
51
+ allowed: [
52
+ "createdAt",
53
+ "updatedAt",
54
+ "lastUsedAt"
55
+ ],
56
+ indexed: true
57
+ },
41
58
  pagination: { maxLimit: 50 },
42
59
  schemaMapping
43
60
  });
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","names":["defineSchema","EntityType","createRelationsReadGate","schemaMapping","user","USER","realm","REALM","userAuthenticatorSchema","name","USER_AUTHENTICATOR","fields","allowed","filters","relations","validate","sort","pagination","maxLimit"],"sources":["../../../../src/core/entities/user-authenticator/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 { UserAuthenticator } 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 userAuthenticatorSchema = defineSchema<UserAuthenticator>({\n name: EntityType.USER_AUTHENTICATOR,\n fields: {\n allowed: [\n 'id',\n 'kind',\n 'name',\n 'confirmed',\n 'lastUsedAt',\n 'createdAt',\n 'updatedAt',\n 'userId',\n 'realmId',\n ],\n },\n filters: { allowed: ['id', 'kind', 'confirmed', 'userId', 'realmId'] },\n relations: { allowed: ['user', 'realm'], validate: createRelationsReadGate(schemaMapping) },\n sort: { allowed: ['createdAt', 'updatedAt', 'lastUsedAt'] },\n pagination: { maxLimit: 50 },\n schemaMapping,\n});\n"],"mappings":";;;;;;;AAYA,MAAMG,gBAAgB;CAAEC,MAAMH,WAAWI;CAAMC,OAAOL,WAAWM;AAAM;AAEvE,MAAaC,0BAA0BR,aAAgC;CACnES,MAAMR,WAAWS;CACjBC,QAAQ,EACJC,SAAS;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACH,EACL;CACAC,SAAS,EAAED,SAAS;EAAC;EAAM;EAAQ;EAAa;EAAU;CAAU,EAAC;CACrEE,WAAW;EAAEF,SAAS,CAAC,QAAQ,OAAQ;EAAEG,UAAUb,wBAAwBC,aAAAA;CAAe;CAC1Fa,MAAM,EAAEJ,SAAS;EAAC;EAAa;EAAa;CAAa,EAAC;CAC1DK,YAAY,EAAEC,UAAU,GAAG;CAC3Bf;AACJ,CAAA"}
1
+ {"version":3,"file":"schema.mjs","names":["defineSchema","EntityType","createRelationsReadGate","schemaMapping","user","USER","realm","REALM","userAuthenticatorSchema","name","USER_AUTHENTICATOR","indexes","fields","allowed","filters","indexed","relations","validate","sorts","pagination","maxLimit"],"sources":["../../../../src/core/entities/user-authenticator/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 { UserAuthenticator } 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 userAuthenticatorSchema = defineSchema<UserAuthenticator>({\n name: EntityType.USER_AUTHENTICATOR,\n indexes: [\n ['id'],\n ['kind'],\n ['confirmed'],\n ['userId'],\n ['realmId'],\n ['createdAt'],\n ['updatedAt'],\n ['lastUsedAt'],\n ],\n fields: {\n allowed: [\n 'id',\n 'kind',\n 'name',\n 'confirmed',\n 'lastUsedAt',\n 'createdAt',\n 'updatedAt',\n 'userId',\n 'realmId',\n ],\n },\n filters: { allowed: ['id', 'kind', 'confirmed', 'userId', 'realmId', 'lastUsedAt'], indexed: true },\n relations: { allowed: ['user', 'realm'], validate: createRelationsReadGate(schemaMapping) },\n sorts: { allowed: ['createdAt', 'updatedAt', 'lastUsedAt'], indexed: true },\n pagination: { maxLimit: 50 },\n schemaMapping,\n});\n"],"mappings":";;;;;;;AAYA,MAAMG,gBAAgB;CAAEC,MAAMH,WAAWI;CAAMC,OAAOL,WAAWM;AAAM;AAEvE,MAAaC,0BAA0BR,aAAgC;CACnES,MAAMR,WAAWS;CACjBC,SAAS;EACL,CAAC,IAAK;EACN,CAAC,MAAO;EACR,CAAC,WAAY;EACb,CAAC,QAAS;EACV,CAAC,SAAU;EACX,CAAC,WAAY;EACb,CAAC,WAAY;EACb,CAAC,YAAa;CACjB;CACDC,QAAQ,EACJC,SAAS;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACH,EACL;CACAC,SAAS;EAAED,SAAS;GAAC;GAAM;GAAQ;GAAa;GAAU;GAAW;EAAa;EAAEE,SAAS;CAAK;CAClGC,WAAW;EAAEH,SAAS,CAAC,QAAQ,OAAQ;EAAEI,UAAUf,wBAAwBC,aAAAA;CAAe;CAC1Fe,OAAO;EAAEL,SAAS;GAAC;GAAa;GAAa;EAAa;EAAEE,SAAS;CAAK;CAC1EI,YAAY,EAAEC,UAAU,GAAG;CAC3BjB;AACJ,CAAA"}
@@ -3,7 +3,7 @@ import type { User, UserAuthenticator } from '@authup/core-kit';
3
3
  import { AbstractEntityService } from '@authup/server-kit';
4
4
  import type { ActorContext, EntityRepositoryFindManyResult, ICache } from '@authup/server-kit';
5
5
  import type { IRealmCipher } from '../../key/index.ts';
6
- import type { IEventService } from '../event/index.ts';
6
+ import type { EventRequestContext, IEventService } from '../event/index.ts';
7
7
  import type { IMailClient, IMailTemplateRenderer } from '../../mail/index.ts';
8
8
  import type { IUserRepository } from '../user/index.ts';
9
9
  import type { IUserAuthenticatorRepository, IUserAuthenticatorService, UserAuthenticatorChallengeStatus, UserAuthenticatorEnrollResult, UserAuthenticatorSendContext, UserAuthenticatorServiceContext, UserAuthenticatorServiceOptions, UserAuthenticatorVerifyContext, UserAuthenticatorVerifyInput, UserAuthenticatorWebauthnParameters } from './types.ts';
@@ -24,6 +24,7 @@ export declare class UserAuthenticatorService extends AbstractEntityService impl
24
24
  protected cache: ICache;
25
25
  protected cipher: IRealmCipher;
26
26
  protected eventService?: IEventService;
27
+ protected requestContext?: () => EventRequestContext | undefined;
27
28
  protected mailClient?: IMailClient;
28
29
  protected mailTemplateRenderer?: IMailTemplateRenderer;
29
30
  protected options: UserAuthenticatorServiceOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-authenticator/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-authenticator/service.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ var UserAuthenticatorService = class extends AbstractEntityService {
27
27
  cache;
28
28
  cipher;
29
29
  eventService;
30
+ requestContext;
30
31
  mailClient;
31
32
  mailTemplateRenderer;
32
33
  options;
@@ -38,6 +39,7 @@ var UserAuthenticatorService = class extends AbstractEntityService {
38
39
  this.cache = ctx.cache;
39
40
  this.cipher = ctx.cipher;
40
41
  this.eventService = ctx.eventService;
42
+ this.requestContext = ctx.requestContext;
41
43
  this.mailClient = ctx.mailClient;
42
44
  this.mailTemplateRenderer = ctx.mailTemplateRenderer;
43
45
  this.options = ctx.options ?? {};
@@ -698,6 +700,7 @@ var UserAuthenticatorService = class extends AbstractEntityService {
698
700
  await this.cache.dropMany([this.buildAttemptCacheKey(userId), this.buildThrottleCacheKey(userId)]);
699
701
  }
700
702
  async recordEvent(name, entity) {
703
+ const requestContext = this.requestContext ? this.requestContext() : void 0;
701
704
  await this.eventService?.record({
702
705
  scope: EventScope.IDENTITY,
703
706
  name,
@@ -706,6 +709,7 @@ var UserAuthenticatorService = class extends AbstractEntityService {
706
709
  actorType: IdentityType.USER,
707
710
  actorId: entity.userId,
708
711
  realmId: entity.realmId,
712
+ sessionId: requestContext?.sessionId ?? null,
709
713
  data: { kind: entity.kind }
710
714
  });
711
715
  }
@@ -719,6 +723,7 @@ var UserAuthenticatorService = class extends AbstractEntityService {
719
723
  actorId: userId,
720
724
  clientId: ctx.clientId ?? null,
721
725
  realmId: entity?.realmId ?? null,
726
+ sessionId: ctx.sessionId ?? null,
722
727
  requestIpAddress: ctx.ipAddress ?? null,
723
728
  requestUserAgent: ctx.userAgent ?? null,
724
729
  data: { kind }