@authup/server-core 1.0.0-beta.56 → 1.0.0-beta.58

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 (478) hide show
  1. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  2. package/dist/adapters/database/domains/role/entity.mjs +2 -1
  3. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  4. package/dist/adapters/database/logger/module.mjs +2 -4
  5. package/dist/adapters/database/logger/module.mjs.map +1 -1
  6. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.d.ts +25 -0
  7. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.d.ts.map +1 -0
  8. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.mjs +60 -0
  9. package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.mjs.map +1 -0
  10. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.d.ts +25 -0
  11. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.d.ts.map +1 -0
  12. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.mjs +60 -0
  13. package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.mjs.map +1 -0
  14. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +1 -1
  15. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  16. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +1 -1
  17. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  18. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs +1 -1
  19. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
  20. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +1 -1
  21. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  22. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +1 -1
  23. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  24. package/dist/adapters/http/controllers/entities/client/module.d.ts +6 -6
  25. package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
  26. package/dist/adapters/http/controllers/entities/client/module.mjs +30 -7
  27. package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
  28. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts +5 -5
  29. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts.map +1 -1
  30. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +23 -5
  31. package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
  32. package/dist/adapters/http/controllers/entities/client-role/module.d.ts +4 -4
  33. package/dist/adapters/http/controllers/entities/client-role/module.d.ts.map +1 -1
  34. package/dist/adapters/http/controllers/entities/client-role/module.mjs +19 -4
  35. package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
  36. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts +4 -4
  37. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts.map +1 -1
  38. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +19 -4
  39. package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
  40. package/dist/adapters/http/controllers/entities/consent/module.d.ts +3 -3
  41. package/dist/adapters/http/controllers/entities/consent/module.d.ts.map +1 -1
  42. package/dist/adapters/http/controllers/entities/consent/module.mjs +15 -3
  43. package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -1
  44. package/dist/adapters/http/controllers/entities/event/module.d.ts +2 -2
  45. package/dist/adapters/http/controllers/entities/event/module.d.ts.map +1 -1
  46. package/dist/adapters/http/controllers/entities/event/module.mjs +11 -2
  47. package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -1
  48. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts +5 -5
  49. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts.map +1 -1
  50. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +23 -5
  51. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
  52. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +6 -6
  53. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  54. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +24 -8
  55. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  56. package/dist/adapters/http/controllers/entities/key/module.d.ts +5 -5
  57. package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -1
  58. package/dist/adapters/http/controllers/entities/key/module.mjs +23 -5
  59. package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -1
  60. package/dist/adapters/http/controllers/entities/permission/module.d.ts +6 -6
  61. package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
  62. package/dist/adapters/http/controllers/entities/permission/module.mjs +27 -6
  63. package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
  64. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts +4 -4
  65. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts.map +1 -1
  66. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +19 -4
  67. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
  68. package/dist/adapters/http/controllers/entities/policy/module.d.ts +7 -7
  69. package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
  70. package/dist/adapters/http/controllers/entities/policy/module.mjs +27 -6
  71. package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
  72. package/dist/adapters/http/controllers/entities/realm/module.d.ts +6 -6
  73. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  74. package/dist/adapters/http/controllers/entities/realm/module.mjs +29 -8
  75. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  76. package/dist/adapters/http/controllers/entities/role/module.d.ts +6 -6
  77. package/dist/adapters/http/controllers/entities/role/module.d.ts.map +1 -1
  78. package/dist/adapters/http/controllers/entities/role/module.mjs +27 -6
  79. package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
  80. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts +5 -5
  81. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts.map +1 -1
  82. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +23 -5
  83. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
  84. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts +5 -5
  85. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts.map +1 -1
  86. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +23 -5
  87. package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
  88. package/dist/adapters/http/controllers/entities/scope/module.d.ts +6 -6
  89. package/dist/adapters/http/controllers/entities/scope/module.d.ts.map +1 -1
  90. package/dist/adapters/http/controllers/entities/scope/module.mjs +27 -6
  91. package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
  92. package/dist/adapters/http/controllers/entities/session/module.d.ts +3 -3
  93. package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -1
  94. package/dist/adapters/http/controllers/entities/session/module.mjs +15 -3
  95. package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
  96. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts +5 -5
  97. package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -1
  98. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +23 -5
  99. package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -1
  100. package/dist/adapters/http/controllers/entities/user/module.d.ts +6 -6
  101. package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
  102. package/dist/adapters/http/controllers/entities/user/module.mjs +27 -6
  103. package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
  104. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts +5 -5
  105. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts.map +1 -1
  106. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +23 -5
  107. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
  108. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts +4 -4
  109. package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts.map +1 -1
  110. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +19 -4
  111. package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -1
  112. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts +5 -5
  113. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts.map +1 -1
  114. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +23 -5
  115. package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
  116. package/dist/adapters/http/controllers/entities/user-role/module.d.ts +4 -4
  117. package/dist/adapters/http/controllers/entities/user-role/module.d.ts.map +1 -1
  118. package/dist/adapters/http/controllers/entities/user-role/module.mjs +19 -4
  119. package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
  120. package/dist/adapters/http/controllers/index.mjs +2 -1
  121. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -1
  122. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
  123. package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
  124. package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
  125. package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
  126. package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -1
  127. package/dist/adapters/http/controllers/workflows/logout/module.mjs +5 -1
  128. package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
  129. package/dist/adapters/http/controllers/workflows/userinfo/index.d.ts +2 -0
  130. package/dist/adapters/http/controllers/workflows/userinfo/index.d.ts.map +1 -0
  131. package/dist/adapters/http/controllers/workflows/userinfo/index.mjs +5 -0
  132. package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts +18 -0
  133. package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts.map +1 -0
  134. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs +53 -0
  135. package/dist/adapters/http/controllers/workflows/userinfo/module.mjs.map +1 -0
  136. package/dist/adapters/http/index.mjs +2 -1
  137. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +1 -0
  138. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  139. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +10 -1
  140. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  141. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  142. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +4 -2
  143. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  144. package/dist/adapters/http/request/client-certificate.mjs +1 -1
  145. package/dist/adapters/http/request/client-certificate.mjs.map +1 -1
  146. package/dist/adapters/http/request/event-context.mjs +1 -1
  147. package/dist/adapters/http/request/event-context.mjs.map +1 -1
  148. package/dist/adapters/http/request/helpers/locations.mjs +1 -3
  149. package/dist/adapters/http/request/helpers/locations.mjs.map +1 -1
  150. package/dist/app/factory.d.ts +2 -1
  151. package/dist/app/factory.d.ts.map +1 -1
  152. package/dist/app/factory.mjs +2 -2
  153. package/dist/app/factory.mjs.map +1 -1
  154. package/dist/app/index.d.ts +1 -0
  155. package/dist/app/index.d.ts.map +1 -1
  156. package/dist/app/index.mjs +5 -1
  157. package/dist/app/modules/authentication/module.mjs +6 -3
  158. package/dist/app/modules/authentication/module.mjs.map +1 -1
  159. package/dist/app/modules/authentication/repositories/session.mjs +2 -2
  160. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  161. package/dist/app/modules/components/module.d.ts +3 -0
  162. package/dist/app/modules/components/module.d.ts.map +1 -1
  163. package/dist/app/modules/components/module.mjs +17 -2
  164. package/dist/app/modules/components/module.mjs.map +1 -1
  165. package/dist/app/modules/config/constants.d.ts +1 -0
  166. package/dist/app/modules/config/constants.d.ts.map +1 -1
  167. package/dist/app/modules/config/constants.mjs +1 -0
  168. package/dist/app/modules/config/constants.mjs.map +1 -1
  169. package/dist/app/modules/config/helpers.d.ts +9 -0
  170. package/dist/app/modules/config/helpers.d.ts.map +1 -0
  171. package/dist/app/modules/config/helpers.mjs +22 -0
  172. package/dist/app/modules/config/helpers.mjs.map +1 -0
  173. package/dist/app/modules/config/index.d.ts +2 -0
  174. package/dist/app/modules/config/index.d.ts.map +1 -1
  175. package/dist/app/modules/config/index.mjs +6 -1
  176. package/dist/app/modules/config/module.d.ts.map +1 -1
  177. package/dist/app/modules/config/module.mjs +2 -7
  178. package/dist/app/modules/config/module.mjs.map +1 -1
  179. package/dist/app/modules/config/normalize.d.ts.map +1 -1
  180. package/dist/app/modules/config/normalize.mjs +4 -0
  181. package/dist/app/modules/config/normalize.mjs.map +1 -1
  182. package/dist/app/modules/config/read/env.d.ts.map +1 -1
  183. package/dist/app/modules/config/read/env.mjs +2 -0
  184. package/dist/app/modules/config/read/env.mjs.map +1 -1
  185. package/dist/app/modules/config/read/fs.d.ts.map +1 -1
  186. package/dist/app/modules/config/read/fs.mjs +31 -8
  187. package/dist/app/modules/config/read/fs.mjs.map +1 -1
  188. package/dist/app/modules/config/read/module.mjs +8 -3
  189. package/dist/app/modules/config/read/module.mjs.map +1 -1
  190. package/dist/app/modules/config/trust-proxy.d.ts +28 -0
  191. package/dist/app/modules/config/trust-proxy.d.ts.map +1 -0
  192. package/dist/app/modules/config/trust-proxy.mjs +64 -0
  193. package/dist/app/modules/config/trust-proxy.mjs.map +1 -0
  194. package/dist/app/modules/config/types.d.ts +18 -0
  195. package/dist/app/modules/config/types.d.ts.map +1 -1
  196. package/dist/app/modules/config/validator.d.ts.map +1 -1
  197. package/dist/app/modules/config/validator.mjs +7 -0
  198. package/dist/app/modules/config/validator.mjs.map +1 -1
  199. package/dist/app/modules/database/module.mjs +2 -1
  200. package/dist/app/modules/database/module.mjs.map +1 -1
  201. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  202. package/dist/app/modules/database/repositories/client/repository.mjs +3 -4
  203. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  204. package/dist/app/modules/database/repositories/client-permission/repository.mjs +2 -2
  205. package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
  206. package/dist/app/modules/database/repositories/client-role/repository.mjs +2 -2
  207. package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
  208. package/dist/app/modules/database/repositories/client-scope/repository.mjs +2 -2
  209. package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
  210. package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
  211. package/dist/app/modules/database/repositories/event/repository.mjs +4 -3
  212. package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
  213. package/dist/app/modules/database/repositories/identity-provider/repository.mjs +2 -2
  214. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  215. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs +2 -2
  216. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
  217. package/dist/app/modules/database/repositories/key/repository.mjs +2 -2
  218. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  219. package/dist/app/modules/database/repositories/permission/repository.mjs +2 -2
  220. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  221. package/dist/app/modules/database/repositories/permission-policy/repository.mjs +2 -2
  222. package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
  223. package/dist/app/modules/database/repositories/policy/repository.mjs +2 -2
  224. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  225. package/dist/app/modules/database/repositories/query.d.ts +20 -0
  226. package/dist/app/modules/database/repositories/query.d.ts.map +1 -1
  227. package/dist/app/modules/database/repositories/query.mjs +26 -3
  228. package/dist/app/modules/database/repositories/query.mjs.map +1 -1
  229. package/dist/app/modules/database/repositories/realm/repository.mjs +2 -2
  230. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  231. package/dist/app/modules/database/repositories/role/repository.mjs +2 -2
  232. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  233. package/dist/app/modules/database/repositories/role-attribute/repository.mjs +2 -2
  234. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  235. package/dist/app/modules/database/repositories/role-permission/repository.mjs +2 -2
  236. package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
  237. package/dist/app/modules/database/repositories/schema-validation.d.ts +17 -3
  238. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
  239. package/dist/app/modules/database/repositories/schema-validation.mjs +29 -5
  240. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -1
  241. package/dist/app/modules/database/repositories/scope/repository.mjs +2 -2
  242. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  243. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +2 -2
  244. package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -1
  245. package/dist/app/modules/database/repositories/user/repository.mjs +2 -2
  246. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  247. package/dist/app/modules/database/repositories/user-attribute/repository.mjs +2 -2
  248. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  249. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +2 -2
  250. package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -1
  251. package/dist/app/modules/database/repositories/user-permission/repository.mjs +2 -2
  252. package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
  253. package/dist/app/modules/database/repositories/user-role/repository.mjs +2 -2
  254. package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
  255. package/dist/app/modules/http/constants.d.ts +2 -13
  256. package/dist/app/modules/http/constants.d.ts.map +1 -1
  257. package/dist/app/modules/http/constants.mjs.map +1 -1
  258. package/dist/app/modules/http/module.d.ts.map +1 -1
  259. package/dist/app/modules/http/module.mjs +7 -1
  260. package/dist/app/modules/http/module.mjs.map +1 -1
  261. package/dist/app/modules/http/modules/controller.d.ts +4 -2
  262. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  263. package/dist/app/modules/http/modules/controller.mjs +208 -124
  264. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  265. package/dist/app/modules/http/modules/middleware.mjs +10 -5
  266. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  267. package/dist/app/modules/identity/module.mjs +6 -3
  268. package/dist/app/modules/identity/module.mjs.map +1 -1
  269. package/dist/app/modules/index.mjs +5 -1
  270. package/dist/app/modules/oauth2/module.mjs +37 -17
  271. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  272. package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs +1 -1
  273. package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs.map +1 -1
  274. package/dist/app/modules/oauth2/repositories/consent/repository.mjs +2 -2
  275. package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
  276. package/dist/app/modules/oauth2/repositories/token/repository.mjs +1 -1
  277. package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
  278. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  279. package/dist/app/modules/provisioning/module.mjs +21 -12
  280. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  281. package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
  282. package/dist/app/modules/provisioning/sources/file/module.mjs +11 -2
  283. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  284. package/dist/app/types.d.ts +5 -0
  285. package/dist/app/types.d.ts.map +1 -0
  286. package/dist/app/types.mjs +4 -0
  287. package/dist/cli/commands/healthcheck.d.ts +2 -1
  288. package/dist/cli/commands/healthcheck.d.ts.map +1 -1
  289. package/dist/cli/commands/healthcheck.mjs +3 -2
  290. package/dist/cli/commands/healthcheck.mjs.map +1 -1
  291. package/dist/cli/commands/index.d.ts +0 -1
  292. package/dist/cli/commands/index.d.ts.map +1 -1
  293. package/dist/cli/commands/index.mjs +1 -2
  294. package/dist/cli/commands/migration.d.ts +2 -1
  295. package/dist/cli/commands/migration.d.ts.map +1 -1
  296. package/dist/cli/commands/migration.mjs +3 -2
  297. package/dist/cli/commands/migration.mjs.map +1 -1
  298. package/dist/cli/commands/start.d.ts +2 -1
  299. package/dist/cli/commands/start.d.ts.map +1 -1
  300. package/dist/cli/commands/start.mjs +3 -2
  301. package/dist/cli/commands/start.mjs.map +1 -1
  302. package/dist/cli/config.d.ts +18 -0
  303. package/dist/cli/config.d.ts.map +1 -0
  304. package/dist/cli/config.mjs +34 -0
  305. package/dist/cli/config.mjs.map +1 -0
  306. package/dist/cli/module.d.ts +8 -8
  307. package/dist/cli/module.d.ts.map +1 -1
  308. package/dist/cli/module.mjs +8 -28
  309. package/dist/cli/module.mjs.map +1 -1
  310. package/dist/cli/types.d.ts +5 -0
  311. package/dist/cli/types.d.ts.map +1 -0
  312. package/dist/cli/types.mjs +4 -0
  313. package/dist/components/event-cleaner/module.d.ts.map +1 -1
  314. package/dist/components/event-cleaner/module.mjs +26 -14
  315. package/dist/components/event-cleaner/module.mjs.map +1 -1
  316. package/dist/components/index.d.ts +0 -1
  317. package/dist/components/index.d.ts.map +1 -1
  318. package/dist/components/index.mjs +1 -4
  319. package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
  320. package/dist/components/oauth2-cleaner/module.mjs +29 -17
  321. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  322. package/dist/components/types.d.ts +1 -0
  323. package/dist/components/types.d.ts.map +1 -1
  324. package/dist/core/authentication/login-throttle/service.d.ts.map +1 -1
  325. package/dist/core/authentication/login-throttle/service.mjs +2 -1
  326. package/dist/core/authentication/login-throttle/service.mjs.map +1 -1
  327. package/dist/core/authentication/session/module.mjs +2 -4
  328. package/dist/core/authentication/session/module.mjs.map +1 -1
  329. package/dist/core/entities/client/constants.d.ts +10 -0
  330. package/dist/core/entities/client/constants.d.ts.map +1 -0
  331. package/dist/core/entities/client/constants.mjs +20 -0
  332. package/dist/core/entities/client/constants.mjs.map +1 -0
  333. package/dist/core/entities/client/index.d.ts +1 -0
  334. package/dist/core/entities/client/index.d.ts.map +1 -1
  335. package/dist/core/entities/client/index.mjs +3 -2
  336. package/dist/core/entities/client/schema.d.ts.map +1 -1
  337. package/dist/core/entities/client/schema.mjs +40 -3
  338. package/dist/core/entities/client/schema.mjs.map +1 -1
  339. package/dist/core/entities/client/service.d.ts.map +1 -1
  340. package/dist/core/entities/client/service.mjs +9 -61
  341. package/dist/core/entities/client/service.mjs.map +1 -1
  342. package/dist/core/entities/client/web-client.d.ts +39 -3
  343. package/dist/core/entities/client/web-client.d.ts.map +1 -1
  344. package/dist/core/entities/client/web-client.mjs +68 -12
  345. package/dist/core/entities/client/web-client.mjs.map +1 -1
  346. package/dist/core/entities/client-permission/service.mjs +12 -9
  347. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  348. package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
  349. package/dist/core/entities/client-scope/schema.mjs +3 -1
  350. package/dist/core/entities/client-scope/schema.mjs.map +1 -1
  351. package/dist/core/entities/event/constants.d.ts +7 -0
  352. package/dist/core/entities/event/constants.d.ts.map +1 -1
  353. package/dist/core/entities/event/constants.mjs +7 -1
  354. package/dist/core/entities/event/constants.mjs.map +1 -1
  355. package/dist/core/entities/event/index.mjs +2 -2
  356. package/dist/core/entities/event/service.mjs +1 -1
  357. package/dist/core/entities/event/service.mjs.map +1 -1
  358. package/dist/core/entities/index.mjs +4 -3
  359. package/dist/core/entities/key/service.mjs +4 -2
  360. package/dist/core/entities/key/service.mjs.map +1 -1
  361. package/dist/core/entities/permission/service.d.ts.map +1 -1
  362. package/dist/core/entities/permission/service.mjs +1 -1
  363. package/dist/core/entities/permission/service.mjs.map +1 -1
  364. package/dist/core/entities/policy/service.d.ts.map +1 -1
  365. package/dist/core/entities/policy/service.mjs +3 -2
  366. package/dist/core/entities/policy/service.mjs.map +1 -1
  367. package/dist/core/entities/realm/service.d.ts.map +1 -1
  368. package/dist/core/entities/realm/service.mjs +1 -1
  369. package/dist/core/entities/realm/service.mjs.map +1 -1
  370. package/dist/core/entities/role/schema.d.ts.map +1 -1
  371. package/dist/core/entities/role/schema.mjs +4 -0
  372. package/dist/core/entities/role/schema.mjs.map +1 -1
  373. package/dist/core/entities/role/service.d.ts.map +1 -1
  374. package/dist/core/entities/role/service.mjs +1 -1
  375. package/dist/core/entities/role/service.mjs.map +1 -1
  376. package/dist/core/entities/role-permission/service.mjs +12 -9
  377. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  378. package/dist/core/entities/scope/service.d.ts.map +1 -1
  379. package/dist/core/entities/scope/service.mjs +1 -1
  380. package/dist/core/entities/scope/service.mjs.map +1 -1
  381. package/dist/core/entities/session/schema.d.ts.map +1 -1
  382. package/dist/core/entities/session/schema.mjs +2 -0
  383. package/dist/core/entities/session/schema.mjs.map +1 -1
  384. package/dist/core/entities/user/schema.d.ts.map +1 -1
  385. package/dist/core/entities/user/schema.mjs +2 -0
  386. package/dist/core/entities/user/schema.mjs.map +1 -1
  387. package/dist/core/entities/user/service.d.ts.map +1 -1
  388. package/dist/core/entities/user/service.mjs +1 -1
  389. package/dist/core/entities/user/service.mjs.map +1 -1
  390. package/dist/core/entities/user-authenticator/helpers.mjs +1 -1
  391. package/dist/core/entities/user-authenticator/helpers.mjs.map +1 -1
  392. package/dist/core/entities/user-authenticator/service.mjs +7 -7
  393. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  394. package/dist/core/entities/user-permission/service.mjs +12 -9
  395. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  396. package/dist/core/identity/password-recovery/check.mjs +4 -4
  397. package/dist/core/identity/password-recovery/check.mjs.map +1 -1
  398. package/dist/core/identity/password-recovery/service.mjs +1 -1
  399. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  400. package/dist/core/identity/registration/check.mjs +2 -2
  401. package/dist/core/identity/registration/check.mjs.map +1 -1
  402. package/dist/core/index.mjs +5 -3
  403. package/dist/core/key/check.mjs +2 -2
  404. package/dist/core/key/check.mjs.map +1 -1
  405. package/dist/core/provisioning/entities/client/relations-validator.d.ts.map +1 -1
  406. package/dist/core/provisioning/entities/client/relations-validator.mjs +2 -0
  407. package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
  408. package/dist/core/provisioning/entities/client/types.d.ts +8 -0
  409. package/dist/core/provisioning/entities/client/types.d.ts.map +1 -1
  410. package/dist/core/provisioning/synchronizer/client/module.d.ts +3 -1
  411. package/dist/core/provisioning/synchronizer/client/module.d.ts.map +1 -1
  412. package/dist/core/provisioning/synchronizer/client/module.mjs +10 -1
  413. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  414. package/dist/core/provisioning/synchronizer/client/types.d.ts +3 -1
  415. package/dist/core/provisioning/synchronizer/client/types.d.ts.map +1 -1
  416. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts +4 -1
  417. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
  418. package/dist/core/provisioning/synchronizer/entity-resolver.mjs +14 -29
  419. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  420. package/dist/core/provisioning/synchronizer/index.d.ts +1 -0
  421. package/dist/core/provisioning/synchronizer/index.d.ts.map +1 -1
  422. package/dist/core/provisioning/synchronizer/permission/module.mjs +0 -1
  423. package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
  424. package/dist/core/provisioning/synchronizer/realm/module.d.ts.map +1 -1
  425. package/dist/core/provisioning/synchronizer/realm/module.mjs +8 -9
  426. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  427. package/dist/core/provisioning/synchronizer/role/module.mjs +0 -1
  428. package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
  429. package/dist/core/provisioning/synchronizer/scope/module.mjs +0 -1
  430. package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
  431. package/dist/core/provisioning/synchronizer/types.d.ts +11 -0
  432. package/dist/core/provisioning/synchronizer/types.d.ts.map +1 -0
  433. package/dist/core/provisioning/synchronizer/types.mjs +4 -0
  434. package/dist/core/provisioning/synchronizer/user/module.mjs +0 -1
  435. package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
  436. package/dist/core/query/describe.d.ts +25 -0
  437. package/dist/core/query/describe.d.ts.map +1 -0
  438. package/dist/core/query/describe.mjs +50 -0
  439. package/dist/core/query/describe.mjs.map +1 -0
  440. package/dist/core/query/fields.d.ts +44 -0
  441. package/dist/core/query/fields.d.ts.map +1 -0
  442. package/dist/core/query/fields.mjs +46 -0
  443. package/dist/core/query/fields.mjs.map +1 -0
  444. package/dist/core/query/index.d.ts +1 -0
  445. package/dist/core/query/index.d.ts.map +1 -1
  446. package/dist/core/query/index.mjs +2 -1
  447. package/dist/core/query/module.d.ts +1 -1
  448. package/dist/core/query/module.mjs +1 -1
  449. package/dist/core/query/module.mjs.map +1 -1
  450. package/dist/index.mjs +6 -2
  451. package/dist/path.mjs.map +1 -1
  452. package/dist/swagger.json +1324 -193
  453. package/dist/ui/client/.vite/ssr-manifest.json +1030 -760
  454. package/dist/ui/client/assets/index-BTK3GPZZ.js +106 -0
  455. package/dist/ui/client/assets/index-Cx_pI7BS.css +2 -0
  456. package/dist/ui/client/index.html +2 -2
  457. package/dist/ui/server/server.js +4465 -11501
  458. package/package.json +51 -50
  459. package/dist/cli/commands/reset.d.ts +0 -2
  460. package/dist/cli/commands/reset.d.ts.map +0 -1
  461. package/dist/cli/commands/reset.mjs +0 -23
  462. package/dist/cli/commands/reset.mjs.map +0 -1
  463. package/dist/components/database/index.d.ts +0 -2
  464. package/dist/components/database/index.d.ts.map +0 -1
  465. package/dist/components/database/index.mjs +0 -7
  466. package/dist/components/database/unique-entries/factory.d.ts +0 -4
  467. package/dist/components/database/unique-entries/factory.d.ts.map +0 -1
  468. package/dist/components/database/unique-entries/factory.mjs +0 -12
  469. package/dist/components/database/unique-entries/factory.mjs.map +0 -1
  470. package/dist/components/database/unique-entries/index.d.ts +0 -3
  471. package/dist/components/database/unique-entries/index.d.ts.map +0 -1
  472. package/dist/components/database/unique-entries/index.mjs +0 -6
  473. package/dist/components/database/unique-entries/module.d.ts +0 -15
  474. package/dist/components/database/unique-entries/module.d.ts.map +0 -1
  475. package/dist/components/database/unique-entries/module.mjs +0 -69
  476. package/dist/components/database/unique-entries/module.mjs.map +0 -1
  477. package/dist/ui/client/assets/index-C05uGFDe.js +0 -131
  478. package/dist/ui/client/assets/index-CiHrf73J.css +0 -2
@@ -1,4 +1,4 @@
1
- import type { EntityCollectionResponse, TrustAnchorCreatePayload, TrustAnchorUpdatePayload } from '@authup/core-http-kit';
1
+ import type { EntityCollectionResponse, EntityRecordResponse, TrustAnchorCreatePayload, TrustAnchorUpdatePayload } from '@authup/core-http-kit';
2
2
  import type { TrustAnchor } from '@authup/core-kit';
3
3
  import type { IAppEvent } from 'routup';
4
4
  import type { ITrustAnchorService } from '../../../../../core/index.ts';
@@ -9,9 +9,9 @@ export declare class TrustAnchorController {
9
9
  protected service: ITrustAnchorService;
10
10
  constructor(ctx: TrustAnchorControllerContext);
11
11
  getMany(event: IAppEvent): Promise<EntityCollectionResponse<TrustAnchor>>;
12
- getOne(id: string, event: IAppEvent): Promise<TrustAnchor>;
13
- add(data: TrustAnchorCreatePayload, event: IAppEvent): Promise<TrustAnchor>;
14
- edit(id: string, data: TrustAnchorUpdatePayload, event: IAppEvent): Promise<TrustAnchor>;
15
- drop(id: string, event: IAppEvent): Promise<TrustAnchor>;
12
+ getOne(id: string, event: IAppEvent): Promise<EntityRecordResponse<TrustAnchor>>;
13
+ add(data: TrustAnchorCreatePayload, event: IAppEvent): Promise<EntityRecordResponse<TrustAnchor>>;
14
+ edit(id: string, data: TrustAnchorUpdatePayload, event: IAppEvent): Promise<EntityRecordResponse<TrustAnchor>>;
15
+ drop(id: string, event: IAppEvent): Promise<EntityRecordResponse<TrustAnchor>>;
16
16
  }
17
17
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/trust-anchor/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAYpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQxE,MAAM,MAAM,4BAA4B,GAAG;IACvC,OAAO,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,qBAEa,qBAAqB;IAC9B,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE3B,GAAG,EAAE,4BAA4B;IAKvC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAY3C,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;IAOjB,GAAG,CACI,IAAI,EAAE,wBAAwB,EAC3B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;IAWjB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,EAC3B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;IAOjB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;CAQ1B"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/trust-anchor/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAYpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAaxE,MAAM,MAAM,4BAA4B,GAAG;IACvC,OAAO,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,qBAEa,qBAAqB;IAC9B,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE3B,GAAG,EAAE,4BAA4B;IAKvC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAe3C,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IASvC,GAAG,CACI,IAAI,EAAE,wBAAwB,EAC3B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAWvC,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,EAC3B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IASvC,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;CAQhD"}
@@ -1,6 +1,9 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { RECORD_QUERY_PARAMETERS, describeQuerySchema } from "../../../../../core/query/describe.mjs";
5
+ import { trustAnchorSchema } from "../../../../../core/entities/trust-anchor/schema.mjs";
6
+ import "../../../../../core/index.mjs";
4
7
  import { buildActorContext } from "../../../request/helpers/actor.mjs";
5
8
  import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
6
9
  import "../../../request/index.mjs";
@@ -33,29 +36,44 @@ var TrustAnchorController = class {
33
36
  const { data, meta } = await this.service.getMany(useRequestQuery(event), actor, { realmId: getRequestRealmID(event) });
34
37
  return {
35
38
  data,
36
- meta
39
+ meta: {
40
+ ...meta,
41
+ schema: describeQuerySchema(trustAnchorSchema)
42
+ }
37
43
  };
38
44
  }
39
45
  async getOne(id, event) {
40
46
  const actor = buildActorContext(event);
41
- return this.service.getOne(id, actor, getRequestRealmID(event));
47
+ return {
48
+ data: await this.service.getOne(id, actor, getRequestRealmID(event)),
49
+ meta: { schema: describeQuerySchema(trustAnchorSchema, RECORD_QUERY_PARAMETERS) }
50
+ };
42
51
  }
43
52
  async add(data, event) {
44
53
  applyRouteRealmIDToBody(event, data);
45
54
  const actor = buildActorContext(event);
46
55
  const entity = await this.service.create(data, actor);
47
56
  event.response.status = 201;
48
- return entity;
57
+ return {
58
+ data: entity,
59
+ meta: {}
60
+ };
49
61
  }
50
62
  async edit(id, data, event) {
51
63
  const actor = buildActorContext(event);
52
- return this.service.update(id, data, actor, getRequestRealmID(event));
64
+ return {
65
+ data: await this.service.update(id, data, actor, getRequestRealmID(event)),
66
+ meta: {}
67
+ };
53
68
  }
54
69
  async drop(id, event) {
55
70
  const actor = buildActorContext(event);
56
71
  const entity = await this.service.delete(id, actor);
57
72
  event.response.status = 202;
58
- return entity;
73
+ return {
74
+ data: entity,
75
+ meta: {}
76
+ };
59
77
  }
60
78
  };
61
79
  _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["useRequestQuery","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","ForceLoggedInMiddleware","applyRouteRealmIDToBody","buildActorContext","getRequestRealmID","TrustAnchorController","service","ctx","getMany","event","actor","data","meta","realmId","getOne","id","add","entity","create","response","status","edit","update","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/trust-anchor/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n EntityCollectionResponse,\n TrustAnchorCreatePayload,\n TrustAnchorUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { TrustAnchor } from '@authup/core-kit';\nimport { useRequestQuery } from '@routup/basic/query';\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport type { ITrustAnchorService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n applyRouteRealmIDToBody,\n buildActorContext,\n getRequestRealmID,\n} from '../../../request/index.ts';\n\nexport type TrustAnchorControllerContext = {\n service: ITrustAnchorService,\n};\n\n@DTags('trust-anchor')\n@DController(['/trust-anchors', '/realms/:realmId/trust-anchors'])\nexport class TrustAnchorController {\n protected service: ITrustAnchorService;\n\n constructor(ctx: TrustAnchorControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<TrustAnchor>> {\n const actor = buildActorContext(event);\n\n const { data, meta } = await this.service.getMany(useRequestQuery(event), actor, { realmId: getRequestRealmID(event) });\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<TrustAnchor> {\n const actor = buildActorContext(event);\n\n return this.service.getOne(id, actor, getRequestRealmID(event));\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: TrustAnchorCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<TrustAnchor> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: TrustAnchorUpdatePayload,\n @DContext() event: IAppEvent,\n ): Promise<TrustAnchor> {\n const actor = buildActorContext(event);\n\n return this.service.update(id, data, actor, getRequestRealmID(event));\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<TrustAnchor> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;AAKC,SAAA,aAAA,YAAA,QAAA,KAAA,MAAA;;;;;;;;;;;;;;AAkCD,IAAaa,wBAAb,MAAaA;CACCC;CAEV,YAAYC,KAAmC;EAC3C,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OAC8C;EAC9C,MAAME,QAAQP,kBAAkBM,KAAAA;EAEhC,MAAM,EAAEE,MAAMC,SAAS,MAAM,KAAKN,QAAQE,QAAQhB,gBAAgBiB,KAAAA,GAAQC,OAAO,EAAEG,SAAST,kBAAkBK,KAAAA,EAAO,CAAA;EAErH,OAAO;GACHE;GACAC;EACJ;CACJ;CAEA,MACME,OACF,IACA,OACoB;EACpB,MAAMJ,QAAQP,kBAAkBM,KAAAA;EAEhC,OAAO,KAAKH,QAAQQ,OAAOC,IAAIL,OAAON,kBAAkBK,KAAAA,CAAAA;CAC5D;CAEA,MACMO,IACF,MACA,OACoB;EACpBd,wBAAwBO,OAAOE,IAAAA;EAC/B,MAAMD,QAAQP,kBAAkBM,KAAAA;EAChC,MAAMQ,SAAS,MAAM,KAAKX,QAAQY,OAAOP,MAAMD,KAAAA;EAE/CD,MAAMU,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMI,KACF,IACA,MACA,OACoB;EACpB,MAAMX,QAAQP,kBAAkBM,KAAAA;EAEhC,OAAO,KAAKH,QAAQgB,OAAOP,IAAIJ,MAAMD,OAAON,kBAAkBK,KAAAA,CAAAA;CAClE;CAEA,MACMc,KACF,IACA,OACoB;EACpB,MAAMb,QAAQP,kBAAkBM,KAAAA;EAChC,MAAMQ,SAAS,MAAM,KAAKX,QAAQkB,OAAOT,IAAIL,KAAAA;EAE7CD,MAAMU,SAASC,SAAS;EAExB,OAAOH;CACX;AACJ;;CA7DehB,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAcIA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAUHA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAcIA,MAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAWEA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;CAzDR,YAAA,CAAA,kBAAkB,gCAAA,CAAA"}
1
+ {"version":3,"file":"module.mjs","names":["useRequestQuery","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","RECORD_QUERY_PARAMETERS","describeQuerySchema","trustAnchorSchema","ForceLoggedInMiddleware","applyRouteRealmIDToBody","buildActorContext","getRequestRealmID","TrustAnchorController","service","ctx","getMany","event","actor","data","meta","realmId","schema","getOne","id","entity","add","create","response","status","edit","update","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/trust-anchor/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n EntityCollectionResponse,\n EntityRecordResponse,\n TrustAnchorCreatePayload,\n TrustAnchorUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { TrustAnchor } from '@authup/core-kit';\nimport { useRequestQuery } from '@routup/basic/query';\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport type { ITrustAnchorService } from '../../../../../core/index.ts';\nimport {\n RECORD_QUERY_PARAMETERS,\n describeQuerySchema,\n trustAnchorSchema,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n applyRouteRealmIDToBody,\n buildActorContext,\n getRequestRealmID,\n} from '../../../request/index.ts';\n\nexport type TrustAnchorControllerContext = {\n service: ITrustAnchorService,\n};\n\n@DTags('trust-anchor')\n@DController(['/trust-anchors', '/realms/:realmId/trust-anchors'])\nexport class TrustAnchorController {\n protected service: ITrustAnchorService;\n\n constructor(ctx: TrustAnchorControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<TrustAnchor>> {\n const actor = buildActorContext(event);\n\n const { data, meta } = await this.service.getMany(useRequestQuery(event), actor, { realmId: getRequestRealmID(event) });\n\n return {\n data,\n meta: {\n ...meta,\n schema: describeQuerySchema(trustAnchorSchema),\n },\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<TrustAnchor>> {\n const actor = buildActorContext(event);\n\n const entity = await this.service.getOne(id, actor, getRequestRealmID(event));\n\n return { data: entity, meta: { schema: describeQuerySchema(trustAnchorSchema, RECORD_QUERY_PARAMETERS) } };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: TrustAnchorCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<TrustAnchor>> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return { data: entity, meta: {} };\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: TrustAnchorUpdatePayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<TrustAnchor>> {\n const actor = buildActorContext(event);\n\n const entity = await this.service.update(id, data, actor, getRequestRealmID(event));\n\n return { data: entity, meta: {} };\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<TrustAnchor>> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return { data: entity, meta: {} };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAKC,SAAA,aAAA,YAAA,QAAA,KAAA,MAAA;;;;;;;;;;;;;;AAwCD,IAAagB,wBAAb,MAAaA;CACCC;CAEV,YAAYC,KAAmC;EAC3C,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OAC8C;EAC9C,MAAME,QAAQP,kBAAkBM,KAAAA;EAEhC,MAAM,EAAEE,MAAMC,SAAS,MAAM,KAAKN,QAAQE,QAAQnB,gBAAgBoB,KAAAA,GAAQC,OAAO,EAAEG,SAAST,kBAAkBK,KAAAA,EAAO,CAAA;EAErH,OAAO;GACHE;GACAC,MAAM;IACF,GAAGA;IACHE,QAAQf,oBAAoBC,iBAAAA;GAChC;EACJ;CACJ;CAEA,MACMe,OACF,IACA,OAC0C;EAC1C,MAAML,QAAQP,kBAAkBM,KAAAA;EAIhC,OAAO;GAAEE,MAAMM,MAFM,KAAKX,QAAQS,OAAOC,IAAIN,OAAON,kBAAkBK,KAAAA,CAAAA;GAE/CG,MAAM,EAAEE,QAAQf,oBAAoBC,mBAAmBF,uBAAAA,EAAyB;EAAE;CAC7G;CAEA,MACMoB,IACF,MACA,OAC0C;EAC1ChB,wBAAwBO,OAAOE,IAAAA;EAC/B,MAAMD,QAAQP,kBAAkBM,KAAAA;EAChC,MAAMQ,SAAS,MAAM,KAAKX,QAAQa,OAAOR,MAAMD,KAAAA;EAE/CD,MAAMW,SAASC,SAAS;EAExB,OAAO;GAAEV,MAAMM;GAAQL,MAAM,CAAC;EAAE;CACpC;CAEA,MACMU,KACF,IACA,MACA,OAC0C;EAC1C,MAAMZ,QAAQP,kBAAkBM,KAAAA;EAIhC,OAAO;GAAEE,MAAMM,MAFM,KAAKX,QAAQiB,OAAOP,IAAIL,MAAMD,OAAON,kBAAkBK,KAAAA,CAAAA;GAErDG,MAAM,CAAC;EAAE;CACpC;CAEA,MACMY,KACF,IACA,OAC0C;EAC1C,MAAMd,QAAQP,kBAAkBM,KAAAA;EAChC,MAAMQ,SAAS,MAAM,KAAKX,QAAQmB,OAAOT,IAAIN,KAAAA;EAE7CD,MAAMW,SAASC,SAAS;EAExB,OAAO;GAAEV,MAAMM;GAAQL,MAAM,CAAC;EAAE;CACpC;AACJ;;CApEeX,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAiBIA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAYHA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAcIA,MAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAaEA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;CAhER,YAAA,CAAA,kBAAkB,gCAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { IAppEvent } from 'routup';
2
- import type { EntityCollectionResponse, UserCreatePayload, UserSavePayload, UserUpdatePayload } from '@authup/core-http-kit';
2
+ import type { EntityCollectionResponse, EntityRecordResponse, UserCreatePayload, UserSavePayload, UserUpdatePayload } from '@authup/core-http-kit';
3
3
  import type { User } from '@authup/core-kit';
4
4
  import type { IUserService } from '../../../../../core/index.ts';
5
5
  export type UserControllerContext = {
@@ -9,10 +9,10 @@ export declare class UserController {
9
9
  protected service: IUserService;
10
10
  constructor(ctx: UserControllerContext);
11
11
  getMany(event: IAppEvent): Promise<EntityCollectionResponse<User>>;
12
- get(id: string, event: IAppEvent): Promise<User>;
13
- add(data: UserCreatePayload, event: IAppEvent): Promise<User>;
14
- edit(id: string, data: UserUpdatePayload, event: IAppEvent): Promise<User>;
15
- put(id: string, data: UserSavePayload, event: IAppEvent): Promise<User>;
16
- drop(id: string, event: IAppEvent): Promise<User>;
12
+ get(id: string, event: IAppEvent): Promise<EntityRecordResponse<User>>;
13
+ add(data: UserCreatePayload, event: IAppEvent): Promise<EntityRecordResponse<User>>;
14
+ edit(id: string, data: UserUpdatePayload, event: IAppEvent): Promise<EntityRecordResponse<User>>;
15
+ put(id: string, data: UserSavePayload, event: IAppEvent): Promise<EntityRecordResponse<User>>;
16
+ drop(id: string, event: IAppEvent): Promise<EntityRecordResponse<User>>;
17
17
  }
18
18
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AASjE,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,qBAEa,cAAc;IACvB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;gBAEpB,GAAG,EAAE,qBAAqB;IAKhC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAcpC,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAuBV,GAAG,CACI,IAAI,EAAE,iBAAiB,EACpB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAWV,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACpB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAeV,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,eAAe,EAClB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAiBV,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;CAQnB"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAcjE,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,qBAEa,cAAc;IACvB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;gBAEpB,GAAG,EAAE,qBAAqB;IAKhC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAiBpC,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAuBhC,GAAG,CACI,IAAI,EAAE,iBAAiB,EACpB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAWhC,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACpB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAehC,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,eAAe,EAClB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAiBhC,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;CAQzC"}
@@ -1,6 +1,9 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { RECORD_QUERY_PARAMETERS, describeQuerySchema } from "../../../../../core/query/describe.mjs";
5
+ import { userSchema } from "../../../../../core/entities/user/schema.mjs";
6
+ import "../../../../../core/index.mjs";
4
7
  import { buildActorContext } from "../../../request/helpers/actor.mjs";
5
8
  import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
6
9
  import "../../../request/index.mjs";
@@ -35,41 +38,59 @@ var UserController = class {
35
38
  const { data, meta } = await this.service.getMany(useRequestQuery(event), actor);
36
39
  return {
37
40
  data,
38
- meta
41
+ meta: {
42
+ ...meta,
43
+ schema: describeQuerySchema(userSchema)
44
+ }
39
45
  };
40
46
  }
41
47
  async get(id, event) {
42
48
  const actor = buildActorContext(event);
43
49
  let paramId = id;
44
50
  if (isSelfToken(paramId) && actor.identity && actor.identity.type === "user") paramId = actor.identity.data.id;
45
- return await this.service.getOne(paramId, actor, useRequestQuery(event), getRequestRealmID(event));
51
+ return {
52
+ data: await this.service.getOne(paramId, actor, useRequestQuery(event), getRequestRealmID(event)),
53
+ meta: { schema: describeQuerySchema(userSchema, RECORD_QUERY_PARAMETERS) }
54
+ };
46
55
  }
47
56
  async add(data, event) {
48
57
  applyRouteRealmIDToBody(event, data);
49
58
  const actor = buildActorContext(event);
50
59
  const entity = await this.service.create(data, actor);
51
60
  event.response.status = 201;
52
- return entity;
61
+ return {
62
+ data: entity,
63
+ meta: {}
64
+ };
53
65
  }
54
66
  async edit(id, data, event) {
55
67
  applyRouteRealmIDToBody(event, data);
56
68
  const actor = buildActorContext(event);
57
69
  const entity = await this.service.update(id, data, actor);
58
70
  event.response.status = 202;
59
- return entity;
71
+ return {
72
+ data: entity,
73
+ meta: {}
74
+ };
60
75
  }
61
76
  async put(id, data, event) {
62
77
  applyRouteRealmIDToBody(event, data);
63
78
  const actor = buildActorContext(event);
64
79
  const { entity, created } = await this.service.save(id || void 0, data, actor);
65
80
  event.response.status = created ? 201 : 202;
66
- return entity;
81
+ return {
82
+ data: entity,
83
+ meta: {}
84
+ };
67
85
  }
68
86
  async drop(id, event) {
69
87
  const actor = buildActorContext(event);
70
88
  const entity = await this.service.delete(id, actor);
71
89
  event.response.status = 202;
72
- return entity;
90
+ return {
91
+ data: entity,
92
+ meta: {}
93
+ };
73
94
  }
74
95
  };
75
96
  _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","useRequestQuery","ForceLoggedInMiddleware","applyRouteRealmIDToBody","buildActorContext","getRequestRealmID","isSelfToken","UserController","service","ctx","getMany","event","actor","data","meta","get","id","paramId","identity","type","entity","getOne","add","create","response","status","edit","update","put","created","save","undefined","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/user/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n UserCreatePayload,\n UserSavePayload,\n UserUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { User } from '@authup/core-kit';\nimport type { IUserService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n applyRouteRealmIDToBody,\n buildActorContext,\n getRequestRealmID,\n} from '../../../request/index.ts';\nimport { isSelfToken } from '../../../../../utils/index.ts';\n\nexport type UserControllerContext = {\n service: IUserService,\n};\n\n@DTags('user')\n@DController(['/users', '/realms/:realmId/users'])\nexport class UserController {\n protected service: IUserService;\n\n constructor(ctx: UserControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<User>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async get(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<User> {\n const actor = buildActorContext(event);\n let paramId = id;\n\n if (\n isSelfToken(paramId) &&\n actor.identity &&\n actor.identity.type === 'user'\n ) {\n paramId = actor.identity.data.id;\n }\n\n const entity = await this.service.getOne(\n paramId,\n actor,\n useRequestQuery(event),\n getRequestRealmID(event),\n );\n\n return entity;\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: UserCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<User> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: UserUpdatePayload,\n @DContext() event: IAppEvent,\n ): Promise<User> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.update(\n id,\n data,\n actor,\n );\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() data: UserSavePayload,\n @DContext() event: IAppEvent,\n ): Promise<User> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const {\n entity,\n created,\n } = await this.service.save(\n id || undefined,\n data,\n actor,\n );\n\n event.response.status = created ? 201 : 202;\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<User> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,IAAae,iBAAb,MAAaA;CACCC;CAEV,YAAYC,KAA4B;EACpC,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OACuC;EACvC,MAAME,QAAQR,kBAAkBO,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQT,gBAAgBU,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC;EACJ;CACJ;CAEA,MACMC,IACF,IACA,OACa;EACb,MAAMH,QAAQR,kBAAkBO,KAAAA;EAChC,IAAIM,UAAUD;EAEd,IACIV,YAAYW,OAAAA,KACZL,MAAMM,YACNN,MAAMM,SAASC,SAAS,QAExBF,UAAUL,MAAMM,SAASL,KAAKG;EAUlC,OAAOI,MAPc,KAAKZ,QAAQa,OAC9BJ,SACAL,OACAX,gBAAgBU,KAAAA,GAChBN,kBAAkBM,KAAAA,CAAAA;CAI1B;CAEA,MACMW,IACF,MACA,OACa;EACbnB,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMS,SAAS,MAAM,KAAKZ,QAAQe,OAAOV,MAAMD,KAAAA;EAE/CD,MAAMa,SAASC,SAAS;EAExB,OAAOL;CACX;CAEA,MACMM,KACF,IACA,MACA,OACa;EACbvB,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMS,SAAS,MAAM,KAAKZ,QAAQmB,OAC9BX,IACAH,MACAD,KAAAA;EAGJD,MAAMa,SAASC,SAAS;EAExB,OAAOL;CACX;CAEA,MACMQ,IACF,IACA,MACA,OACa;EACbzB,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAM,EACFS,QACAS,YACA,MAAM,KAAKrB,QAAQsB,KACnBd,MAAMe,KAAAA,GACNlB,MACAD,KAAAA;EAGJD,MAAMa,SAASC,SAASI,UAAU,MAAM;EACxC,OAAOT;CACX;CAEA,MACMY,KACF,IACA,OACa;EACb,MAAMpB,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMS,SAAS,MAAM,KAAKZ,QAAQyB,OAAOjB,IAAIJ,KAAAA;EAE7CD,MAAMa,SAASC,SAAS;EAExB,OAAOL;CACX;AACJ;;CA5GelB,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAgBIA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CA0BHA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAcIA,MAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAmBDA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAqBGA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;CAxGR,YAAA,CAAA,UAAU,wBAAA,CAAA"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","useRequestQuery","RECORD_QUERY_PARAMETERS","describeQuerySchema","userSchema","ForceLoggedInMiddleware","applyRouteRealmIDToBody","buildActorContext","getRequestRealmID","isSelfToken","UserController","service","ctx","getMany","event","actor","data","meta","schema","get","id","paramId","identity","type","entity","getOne","add","create","response","status","edit","update","put","created","save","undefined","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/user/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n EntityRecordResponse,\n UserCreatePayload,\n UserSavePayload,\n UserUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { User } from '@authup/core-kit';\nimport type { IUserService } from '../../../../../core/index.ts';\nimport {\n RECORD_QUERY_PARAMETERS,\n describeQuerySchema,\n userSchema,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n applyRouteRealmIDToBody,\n buildActorContext,\n getRequestRealmID,\n} from '../../../request/index.ts';\nimport { isSelfToken } from '../../../../../utils/index.ts';\n\nexport type UserControllerContext = {\n service: IUserService,\n};\n\n@DTags('user')\n@DController(['/users', '/realms/:realmId/users'])\nexport class UserController {\n protected service: IUserService;\n\n constructor(ctx: UserControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<User>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta: {\n ...meta,\n schema: describeQuerySchema(userSchema),\n },\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async get(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<User>> {\n const actor = buildActorContext(event);\n let paramId = id;\n\n if (\n isSelfToken(paramId) &&\n actor.identity &&\n actor.identity.type === 'user'\n ) {\n paramId = actor.identity.data.id;\n }\n\n const entity = await this.service.getOne(\n paramId,\n actor,\n useRequestQuery(event),\n getRequestRealmID(event),\n );\n\n return { data: entity, meta: { schema: describeQuerySchema(userSchema, RECORD_QUERY_PARAMETERS) } };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: UserCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<User>> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return { data: entity, meta: {} };\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: UserUpdatePayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<User>> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.update(\n id,\n data,\n actor,\n );\n\n event.response.status = 202;\n\n return { data: entity, meta: {} };\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() data: UserSavePayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<User>> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const {\n entity,\n created,\n } = await this.service.save(\n id || undefined,\n data,\n actor,\n );\n\n event.response.status = created ? 201 : 202;\n return { data: entity, meta: {} };\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<User>> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return { data: entity, meta: {} };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,IAAakB,iBAAb,MAAaA;CACCC;CAEV,YAAYC,KAA4B;EACpC,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OACuC;EACvC,MAAME,QAAQR,kBAAkBO,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQZ,gBAAgBa,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC,MAAM;IACF,GAAGA;IACHC,QAAQf,oBAAoBC,UAAAA;GAChC;EACJ;CACJ;CAEA,MACMe,IACF,IACA,OACmC;EACnC,MAAMJ,QAAQR,kBAAkBO,KAAAA;EAChC,IAAIO,UAAUD;EAEd,IACIX,YAAYY,OAAAA,KACZN,MAAMO,YACNP,MAAMO,SAASC,SAAS,QAExBF,UAAUN,MAAMO,SAASN,KAAKI;EAUlC,OAAO;GAAEJ,MAAMQ,MAPM,KAAKb,QAAQc,OAC9BJ,SACAN,OACAd,gBAAgBa,KAAAA,GAChBN,kBAAkBM,KAAAA,CAAAA;GAGCG,MAAM,EAAEC,QAAQf,oBAAoBC,YAAYF,uBAAAA,EAAyB;EAAE;CACtG;CAEA,MACMwB,IACF,MACA,OACmC;EACnCpB,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMU,SAAS,MAAM,KAAKb,QAAQgB,OAAOX,MAAMD,KAAAA;EAE/CD,MAAMc,SAASC,SAAS;EAExB,OAAO;GAAEb,MAAMQ;GAAQP,MAAM,CAAC;EAAE;CACpC;CAEA,MACMa,KACF,IACA,MACA,OACmC;EACnCxB,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMU,SAAS,MAAM,KAAKb,QAAQoB,OAC9BX,IACAJ,MACAD,KAAAA;EAGJD,MAAMc,SAASC,SAAS;EAExB,OAAO;GAAEb,MAAMQ;GAAQP,MAAM,CAAC;EAAE;CACpC;CAEA,MACMe,IACF,IACA,MACA,OACmC;EACnC1B,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAM,EACFU,QACAS,YACA,MAAM,KAAKtB,QAAQuB,KACnBd,MAAMe,KAAAA,GACNnB,MACAD,KAAAA;EAGJD,MAAMc,SAASC,SAASI,UAAU,MAAM;EACxC,OAAO;GAAEjB,MAAMQ;GAAQP,MAAM,CAAC;EAAE;CACpC;CAEA,MACMmB,KACF,IACA,OACmC;EACnC,MAAMrB,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMU,SAAS,MAAM,KAAKb,QAAQ0B,OAAOjB,IAAIL,KAAAA;EAE7CD,MAAMc,SAASC,SAAS;EAExB,OAAO;GAAEb,MAAMQ;GAAQP,MAAM,CAAC;EAAE;CACpC;AACJ;;CA/GeZ,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAmBIA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CA0BHA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAcIA,MAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAmBDA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAqBGA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;CA3GR,YAAA,CAAA,UAAU,wBAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { IAppEvent } from 'routup';
2
- import type { EntityCollectionResponse, UserAttributeCreatePayload, UserAttributeUpdatePayload } from '@authup/core-http-kit';
2
+ import type { EntityCollectionResponse, EntityRecordResponse, UserAttributeCreatePayload, UserAttributeUpdatePayload } from '@authup/core-http-kit';
3
3
  import type { UserAttribute } from '@authup/core-kit';
4
4
  import type { IUserAttributeService } from '../../../../../core/index.ts';
5
5
  export type UserAttributeControllerContext = {
@@ -9,9 +9,9 @@ export declare class UserAttributeController {
9
9
  protected service: IUserAttributeService;
10
10
  constructor(ctx: UserAttributeControllerContext);
11
11
  getMany(event: IAppEvent): Promise<EntityCollectionResponse<UserAttribute>>;
12
- add(data: UserAttributeCreatePayload, event: IAppEvent): Promise<UserAttribute>;
13
- get(id: string, event: IAppEvent): Promise<UserAttribute>;
14
- edit(id: string, data: UserAttributeUpdatePayload, event: IAppEvent): Promise<UserAttribute>;
15
- drop(id: string, event: IAppEvent): Promise<UserAttribute>;
12
+ add(data: UserAttributeCreatePayload, event: IAppEvent): Promise<EntityRecordResponse<UserAttribute>>;
13
+ get(id: string, event: IAppEvent): Promise<EntityRecordResponse<UserAttribute>>;
14
+ edit(id: string, data: UserAttributeUpdatePayload, event: IAppEvent): Promise<EntityRecordResponse<UserAttribute>>;
15
+ drop(id: string, event: IAppEvent): Promise<EntityRecordResponse<UserAttribute>>;
16
16
  }
17
17
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user-attribute/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF,qBAEa,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC;gBAE7B,GAAG,EAAE,8BAA8B;IAKzC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAc7C,GAAG,CACI,IAAI,EAAE,0BAA0B,EAC7B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,aAAa,CAAC;IAUnB,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,aAAa,CAAC;IAQnB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,0BAA0B,EAC7B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,aAAa,CAAC;IAUnB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,aAAa,CAAC;CAQ5B"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user-attribute/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAS1E,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF,qBAEa,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC;gBAE7B,GAAG,EAAE,8BAA8B;IAKzC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAiB7C,GAAG,CACI,IAAI,EAAE,0BAA0B,EAC7B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAUzC,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAQzC,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,0BAA0B,EAC7B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAUzC,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;CAQlD"}
@@ -1,6 +1,9 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { RECORD_QUERY_PARAMETERS, describeQuerySchema } from "../../../../../core/query/describe.mjs";
5
+ import { userAttributeSchema } from "../../../../../core/entities/user-attribute/schema.mjs";
6
+ import "../../../../../core/index.mjs";
4
7
  import { buildActorContext } from "../../../request/helpers/actor.mjs";
5
8
  import "../../../request/index.mjs";
6
9
  import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
@@ -32,30 +35,45 @@ var UserAttributeController = class {
32
35
  const { data, meta } = await this.service.getMany(useRequestQuery(event), actor);
33
36
  return {
34
37
  data,
35
- meta
38
+ meta: {
39
+ ...meta,
40
+ schema: describeQuerySchema(userAttributeSchema)
41
+ }
36
42
  };
37
43
  }
38
44
  async add(data, event) {
39
45
  const actor = buildActorContext(event);
40
46
  const entity = await this.service.create(data, actor);
41
47
  event.response.status = 201;
42
- return entity;
48
+ return {
49
+ data: entity,
50
+ meta: {}
51
+ };
43
52
  }
44
53
  async get(id, event) {
45
54
  const actor = buildActorContext(event);
46
- return await this.service.getOne(id, actor);
55
+ return {
56
+ data: await this.service.getOne(id, actor),
57
+ meta: { schema: describeQuerySchema(userAttributeSchema, RECORD_QUERY_PARAMETERS) }
58
+ };
47
59
  }
48
60
  async edit(id, data, event) {
49
61
  const actor = buildActorContext(event);
50
62
  const entity = await this.service.update(id, data, actor);
51
63
  event.response.status = 202;
52
- return entity;
64
+ return {
65
+ data: entity,
66
+ meta: {}
67
+ };
53
68
  }
54
69
  async drop(id, event) {
55
70
  const actor = buildActorContext(event);
56
71
  const entity = await this.service.delete(id, actor);
57
72
  event.response.status = 202;
58
- return entity;
73
+ return {
74
+ data: entity,
75
+ meta: {}
76
+ };
59
77
  }
60
78
  };
61
79
  _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","UserAttributeController","service","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","get","id","getOne","edit","update","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/user-attribute/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n UserAttributeCreatePayload,\n UserAttributeUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { UserAttribute } from '@authup/core-kit';\nimport type { IUserAttributeService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\n\nexport type UserAttributeControllerContext = {\n service: IUserAttributeService,\n};\n\n@DTags('user')\n@DController('/user-attributes')\nexport class UserAttributeController {\n protected service: IUserAttributeService;\n\n constructor(ctx: UserAttributeControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<UserAttribute>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: UserAttributeCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<UserAttribute> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async get(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<UserAttribute> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: UserAttributeUpdatePayload,\n @DContext() event: IAppEvent,\n ): Promise<UserAttribute> {\n const actor = buildActorContext(event);\n const entity = await this.service.update(id, data, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<UserAttribute> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmCA,IAAaW,0BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAqC;EAC7C,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OACgD;EAChD,MAAME,QAAQN,kBAAkBK,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQN,gBAAgBO,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC;EACJ;CACJ;CAEA,MACMC,IACF,MACA,OACsB;EACtB,MAAMH,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQS,OAAOJ,MAAMD,KAAAA;EAE/CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMI,IACF,IACA,OACsB;EACtB,MAAMR,QAAQN,kBAAkBK,KAAAA;EAGhC,OAAOK,MAFc,KAAKR,QAAQc,OAAOD,IAAIT,KAAAA;CAGjD;CAEA,MACMW,KACF,IACA,MACA,OACsB;EACtB,MAAMX,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQgB,OAAOH,IAAIR,MAAMD,KAAAA;EAEnDD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMS,KACF,IACA,OACsB;EACtB,MAAMb,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQkB,OAAOL,IAAIT,KAAAA;EAE7CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;AACJ;;CAlEeX,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAgBCA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAaGA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAWCA,MAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAcEA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","RECORD_QUERY_PARAMETERS","describeQuerySchema","userAttributeSchema","ForceLoggedInMiddleware","buildActorContext","UserAttributeController","service","ctx","getMany","event","actor","data","meta","schema","add","entity","create","response","status","get","id","getOne","edit","update","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/user-attribute/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n EntityRecordResponse,\n UserAttributeCreatePayload,\n UserAttributeUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { UserAttribute } from '@authup/core-kit';\nimport type { IUserAttributeService } from '../../../../../core/index.ts';\nimport {\n RECORD_QUERY_PARAMETERS,\n describeQuerySchema,\n userAttributeSchema,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\n\nexport type UserAttributeControllerContext = {\n service: IUserAttributeService,\n};\n\n@DTags('user')\n@DController('/user-attributes')\nexport class UserAttributeController {\n protected service: IUserAttributeService;\n\n constructor(ctx: UserAttributeControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<UserAttribute>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta: {\n ...meta,\n schema: describeQuerySchema(userAttributeSchema),\n },\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: UserAttributeCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<UserAttribute>> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return { data: entity, meta: {} };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async get(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<UserAttribute>> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return { data: entity, meta: { schema: describeQuerySchema(userAttributeSchema, RECORD_QUERY_PARAMETERS) } };\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: UserAttributeUpdatePayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<UserAttribute>> {\n const actor = buildActorContext(event);\n const entity = await this.service.update(id, data, actor);\n\n event.response.status = 202;\n\n return { data: entity, meta: {} };\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<UserAttribute>> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return { data: entity, meta: {} };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,IAAac,0BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAqC;EAC7C,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OACgD;EAChD,MAAME,QAAQN,kBAAkBK,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQT,gBAAgBU,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC,MAAM;IACF,GAAGA;IACHC,QAAQZ,oBAAoBC,mBAAAA;GAChC;EACJ;CACJ;CAEA,MACMY,IACF,MACA,OAC4C;EAC5C,MAAMJ,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQU,OAAOL,MAAMD,KAAAA;EAE/CD,MAAMQ,SAASC,SAAS;EAExB,OAAO;GAAEP,MAAMI;GAAQH,MAAM,CAAC;EAAE;CACpC;CAEA,MACMO,IACF,IACA,OAC4C;EAC5C,MAAMT,QAAQN,kBAAkBK,KAAAA;EAGhC,OAAO;GAAEE,MAAMI,MAFM,KAAKT,QAAQe,OAAOD,IAAIV,KAAAA;GAEtBE,MAAM,EAAEC,QAAQZ,oBAAoBC,qBAAqBF,uBAAAA,EAAyB;EAAE;CAC/G;CAEA,MACMsB,KACF,IACA,MACA,OAC4C;EAC5C,MAAMZ,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQiB,OAAOH,IAAIT,MAAMD,KAAAA;EAEnDD,MAAMQ,SAASC,SAAS;EAExB,OAAO;GAAEP,MAAMI;GAAQH,MAAM,CAAC;EAAE;CACpC;CAEA,MACMY,KACF,IACA,OAC4C;EAC5C,MAAMd,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQmB,OAAOL,IAAIV,KAAAA;EAE7CD,MAAMQ,SAASC,SAAS;EAExB,OAAO;GAAEP,MAAMI;GAAQH,MAAM,CAAC;EAAE;CACpC;AACJ;;CArEeT,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAmBCA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAaGA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAWCA,MAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAcEA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { UserAuthenticator } from '@authup/core-kit';
2
2
  import type { IAppEvent } from 'routup';
3
- import type { EntityCollectionResponse, UserAuthenticatorConfirmPayload, UserAuthenticatorCreatePayload, UserAuthenticatorEnrollResponse } from '@authup/core-http-kit';
3
+ import type { EntityCollectionResponse, EntityRecordResponse, UserAuthenticatorConfirmPayload, UserAuthenticatorCreatePayload, UserAuthenticatorEnrollResponse } from '@authup/core-http-kit';
4
4
  import type { IUserAuthenticatorService } from '../../../../../core/index.ts';
5
5
  export type UserAuthenticatorControllerContext = {
6
6
  service: IUserAuthenticatorService;
@@ -14,8 +14,8 @@ export declare class UserAuthenticatorController {
14
14
  protected resolveUserId(id: string, event: IAppEvent): string;
15
15
  getMany(id: string, event: IAppEvent): Promise<EntityCollectionResponse<UserAuthenticator>>;
16
16
  enroll(id: string, data: UserAuthenticatorCreatePayload, event: IAppEvent): Promise<UserAuthenticatorEnrollResponse>;
17
- getOne(id: string, deviceId: string, event: IAppEvent): Promise<UserAuthenticator>;
18
- confirm(id: string, deviceId: string, data: UserAuthenticatorConfirmPayload, event: IAppEvent): Promise<UserAuthenticator>;
19
- drop(id: string, deviceId: string, event: IAppEvent): Promise<UserAuthenticator>;
17
+ getOne(id: string, deviceId: string, event: IAppEvent): Promise<EntityRecordResponse<UserAuthenticator>>;
18
+ confirm(id: string, deviceId: string, data: UserAuthenticatorConfirmPayload, event: IAppEvent): Promise<EntityRecordResponse<UserAuthenticator>>;
19
+ drop(id: string, deviceId: string, event: IAppEvent): Promise<EntityRecordResponse<UserAuthenticator>>;
20
20
  }
21
21
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user-authenticator/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAClC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAI9E,MAAM,MAAM,kCAAkC,GAAG;IAC7C,OAAO,EAAE,yBAAyB,CAAC;CACtC,CAAC;AAEF,qBAEa,2BAA2B;IACpC,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC;gBAEjC,GAAG,EAAE,kCAAkC;IAInD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM;IAiBvD,OAAO,CACI,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAajD,MAAM,CACK,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,8BAA8B,EACjC,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,+BAA+B,CAAC;IAYrC,MAAM,CACK,EAAE,EAAE,MAAM,EACJ,QAAQ,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAQvB,OAAO,CACI,EAAE,EAAE,MAAM,EACJ,QAAQ,EAAE,MAAM,EAC1B,IAAI,EAAE,+BAA+B,EAClC,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAYvB,IAAI,CACO,EAAE,EAAE,MAAM,EACJ,QAAQ,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,iBAAiB,CAAC;CAShC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user-authenticator/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAClC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAS9E,MAAM,MAAM,kCAAkC,GAAG;IAC7C,OAAO,EAAE,yBAAyB,CAAC;CACtC,CAAC;AAEF,qBAEa,2BAA2B;IACpC,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC;gBAEjC,GAAG,EAAE,kCAAkC;IAInD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM;IAiBvD,OAAO,CACI,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAgBjD,MAAM,CACK,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,8BAA8B,EACjC,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,+BAA+B,CAAC;IAYrC,MAAM,CACK,EAAE,EAAE,MAAM,EACJ,QAAQ,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAU7C,OAAO,CACI,EAAE,EAAE,MAAM,EACJ,QAAQ,EAAE,MAAM,EAC1B,IAAI,EAAE,+BAA+B,EAClC,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAc7C,IAAI,CACO,EAAE,EAAE,MAAM,EACJ,QAAQ,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAStD"}
@@ -1,6 +1,9 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { RECORD_QUERY_PARAMETERS, describeQuerySchema } from "../../../../../core/query/describe.mjs";
5
+ import { userAuthenticatorSchema } from "../../../../../core/entities/user-authenticator/schema.mjs";
6
+ import "../../../../../core/index.mjs";
4
7
  import { useRequestIdentity } from "../../../request/helpers/identity.mjs";
5
8
  import { buildActorContext } from "../../../request/helpers/actor.mjs";
6
9
  import "../../../request/index.mjs";
@@ -48,7 +51,10 @@ var UserAuthenticatorController = class {
48
51
  const { data, meta } = await this.service.getMany(useRequestQuery(event), actor, { userId });
49
52
  return {
50
53
  data,
51
- meta
54
+ meta: {
55
+ ...meta,
56
+ schema: describeQuerySchema(userAuthenticatorSchema)
57
+ }
52
58
  };
53
59
  }
54
60
  async enroll(id, data, event) {
@@ -64,20 +70,29 @@ var UserAuthenticatorController = class {
64
70
  async getOne(id, deviceId, event) {
65
71
  const actor = buildActorContext(event);
66
72
  const userId = this.resolveUserId(id, event);
67
- return this.service.getOne(deviceId, actor, { userId });
73
+ return {
74
+ data: await this.service.getOne(deviceId, actor, { userId }),
75
+ meta: { schema: describeQuerySchema(userAuthenticatorSchema, RECORD_QUERY_PARAMETERS) }
76
+ };
68
77
  }
69
78
  async confirm(id, deviceId, data, event) {
70
79
  const actor = buildActorContext(event);
71
80
  const userId = this.resolveUserId(id, event);
72
81
  if (!data || typeof data.code !== "string" || !data.code) throw new BadRequestError("A code must be provided.");
73
- return this.service.confirm(deviceId, data.code, actor, { userId });
82
+ return {
83
+ data: await this.service.confirm(deviceId, data.code, actor, { userId }),
84
+ meta: {}
85
+ };
74
86
  }
75
87
  async drop(id, deviceId, event) {
76
88
  const actor = buildActorContext(event);
77
89
  const userId = this.resolveUserId(id, event);
78
90
  const entity = await this.service.delete(deviceId, actor, { userId });
79
91
  event.response.status = 202;
80
- return entity;
92
+ return {
93
+ data: entity,
94
+ meta: {}
95
+ };
81
96
  }
82
97
  };
83
98
  _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","IdentityType","BadRequestError","useRequestQuery","isSelfToken","ForceLoggedInMiddleware","buildActorContext","useRequestIdentity","UserAuthenticatorController","service","ctx","resolveUserId","id","event","identity","type","USER","getMany","actor","userId","data","meta","enroll","result","response","status","getOne","deviceId","confirm","code","drop","entity","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/user-authenticator/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport { IdentityType } from '@authup/core-kit';\nimport type { UserAuthenticator } from '@authup/core-kit';\nimport { BadRequestError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n UserAuthenticatorConfirmPayload,\n UserAuthenticatorCreatePayload,\n UserAuthenticatorEnrollResponse,\n} from '@authup/core-http-kit';\nimport { isSelfToken } from '../../../../../utils/index.ts';\nimport type { IUserAuthenticatorService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext, useRequestIdentity } from '../../../request/index.ts';\n\nexport type UserAuthenticatorControllerContext = {\n service: IUserAuthenticatorService,\n};\n\n@DTags('userAuthenticator')\n@DController('/users/:id/authenticators')\nexport class UserAuthenticatorController {\n protected service: IUserAuthenticatorService;\n\n constructor(ctx: UserAuthenticatorControllerContext) {\n this.service = ctx.service;\n }\n\n /**\n * `@me` / `@self` resolve to the calling user identity.\n */\n protected resolveUserId(id: string, event: IAppEvent): string {\n if (isSelfToken(id)) {\n const identity = useRequestIdentity(event);\n if (identity && identity.type === IdentityType.USER) {\n return identity.id;\n }\n\n // A non-user identity (client) has no authenticator\n // namespace — fail loud instead of letting the literal token\n // fall through and silently match zero rows.\n throw new BadRequestError('The @me/@self token can only be used by a user identity.');\n }\n\n return id;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<UserAuthenticator>> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n const { data, meta } = await this.service.getMany(useRequestQuery(event), actor, { userId });\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async enroll(\n @DPath('id') id: string,\n @DBody() data: UserAuthenticatorCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticatorEnrollResponse> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n // route wins silently over body\n const result = await this.service.enroll({ ...data, userId }, actor);\n\n event.response.status = 201;\n return result;\n }\n\n @DGet('/:deviceId', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DPath('deviceId') deviceId: string,\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticator> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n return this.service.getOne(deviceId, actor, { userId });\n }\n\n @DPost('/:deviceId/confirm', [ForceLoggedInMiddleware])\n async confirm(\n @DPath('id') id: string,\n @DPath('deviceId') deviceId: string,\n @DBody() data: UserAuthenticatorConfirmPayload,\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticator> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n if (!data || typeof data.code !== 'string' || !data.code) {\n throw new BadRequestError('A code must be provided.');\n }\n\n return this.service.confirm(deviceId, data.code, actor, { userId });\n }\n\n @DDelete('/:deviceId', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DPath('deviceId') deviceId: string,\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticator> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n const entity = await this.service.delete(deviceId, actor, { userId });\n\n event.response.status = 202;\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAae,8BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAyC;EACjD,KAAKD,UAAUC,IAAID;CACvB;;;IAKA,cAAwBG,IAAYC,OAA0B;EAC1D,IAAIT,YAAYQ,EAAAA,GAAK;GACjB,MAAME,WAAWP,mBAAmBM,KAAAA;GACpC,IAAIC,YAAYA,SAASC,SAASd,aAAae,MAC3C,OAAOF,SAASF;GAMpB,MAAM,IAAIV,gBAAgB,0DAAA;EAC9B;EAEA,OAAOU;CACX;CAEA,MACMK,QACF,IACA,OACoD;EACpD,MAAMC,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAEtC,MAAM,EAAEO,MAAMC,SAAS,MAAM,KAAKZ,QAAQQ,QAAQd,gBAAgBU,KAAAA,GAAQK,OAAO,EAAEC,OAAO,CAAA;EAE1F,OAAO;GACHC;GACAC;EACJ;CACJ;CAEA,MACMC,OACF,IACA,MACA,OACwC;EACxC,MAAMJ,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAGtC,MAAMU,SAAS,MAAM,KAAKd,QAAQa,OAAO;GAAE,GAAGF;GAAMD;EAAO,GAAGD,KAAAA;EAE9DL,MAAMW,SAASC,SAAS;EACxB,OAAOF;CACX;CAEA,MACMG,OACF,IACA,UACA,OAC0B;EAC1B,MAAMR,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAEtC,OAAO,KAAKJ,QAAQiB,OAAOC,UAAUT,OAAO,EAAEC,OAAO,CAAA;CACzD;CAEA,MACMS,QACF,IACA,UACA,MACA,OAC0B;EAC1B,MAAMV,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAEtC,IAAI,CAACO,QAAQ,OAAOA,KAAKS,SAAS,YAAY,CAACT,KAAKS,MAChD,MAAM,IAAI3B,gBAAgB,0BAAA;EAG9B,OAAO,KAAKO,QAAQmB,QAAQD,UAAUP,KAAKS,MAAMX,OAAO,EAAEC,OAAO,CAAA;CACrE;CAEA,MACMW,KACF,IACA,UACA,OAC0B;EAC1B,MAAMZ,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAEtC,MAAMkB,SAAS,MAAM,KAAKtB,QAAQuB,OAAOL,UAAUT,OAAO,EAAEC,OAAO,CAAA;EAEnEN,MAAMW,SAASC,SAAS;EACxB,OAAOM;CACX;AACJ;;CA3Ee1B,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAgBCA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAgBSA,KAAAA,cAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAYSA,MAAAA,sBAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;;;CAiBNA,QAAAA,cAAAA,CAAAA,uBAAAA,CAAAA"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","IdentityType","BadRequestError","useRequestQuery","isSelfToken","RECORD_QUERY_PARAMETERS","describeQuerySchema","userAuthenticatorSchema","ForceLoggedInMiddleware","buildActorContext","useRequestIdentity","UserAuthenticatorController","service","ctx","resolveUserId","id","event","identity","type","USER","getMany","actor","userId","data","meta","schema","enroll","result","response","status","getOne","deviceId","entity","confirm","code","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/user-authenticator/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport { IdentityType } from '@authup/core-kit';\nimport type { UserAuthenticator } from '@authup/core-kit';\nimport { BadRequestError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n EntityRecordResponse,\n UserAuthenticatorConfirmPayload,\n UserAuthenticatorCreatePayload,\n UserAuthenticatorEnrollResponse,\n} from '@authup/core-http-kit';\nimport { isSelfToken } from '../../../../../utils/index.ts';\nimport type { IUserAuthenticatorService } from '../../../../../core/index.ts';\nimport {\n RECORD_QUERY_PARAMETERS,\n describeQuerySchema,\n userAuthenticatorSchema,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext, useRequestIdentity } from '../../../request/index.ts';\n\nexport type UserAuthenticatorControllerContext = {\n service: IUserAuthenticatorService,\n};\n\n@DTags('userAuthenticator')\n@DController('/users/:id/authenticators')\nexport class UserAuthenticatorController {\n protected service: IUserAuthenticatorService;\n\n constructor(ctx: UserAuthenticatorControllerContext) {\n this.service = ctx.service;\n }\n\n /**\n * `@me` / `@self` resolve to the calling user identity.\n */\n protected resolveUserId(id: string, event: IAppEvent): string {\n if (isSelfToken(id)) {\n const identity = useRequestIdentity(event);\n if (identity && identity.type === IdentityType.USER) {\n return identity.id;\n }\n\n // A non-user identity (client) has no authenticator\n // namespace — fail loud instead of letting the literal token\n // fall through and silently match zero rows.\n throw new BadRequestError('The @me/@self token can only be used by a user identity.');\n }\n\n return id;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<UserAuthenticator>> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n const { data, meta } = await this.service.getMany(useRequestQuery(event), actor, { userId });\n\n return {\n data,\n meta: {\n ...meta,\n schema: describeQuerySchema(userAuthenticatorSchema),\n },\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async enroll(\n @DPath('id') id: string,\n @DBody() data: UserAuthenticatorCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticatorEnrollResponse> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n // route wins silently over body\n const result = await this.service.enroll({ ...data, userId }, actor);\n\n event.response.status = 201;\n return result;\n }\n\n @DGet('/:deviceId', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DPath('deviceId') deviceId: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<UserAuthenticator>> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n const entity = await this.service.getOne(deviceId, actor, { userId });\n\n return { data: entity, meta: { schema: describeQuerySchema(userAuthenticatorSchema, RECORD_QUERY_PARAMETERS) } };\n }\n\n @DPost('/:deviceId/confirm', [ForceLoggedInMiddleware])\n async confirm(\n @DPath('id') id: string,\n @DPath('deviceId') deviceId: string,\n @DBody() data: UserAuthenticatorConfirmPayload,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<UserAuthenticator>> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n if (!data || typeof data.code !== 'string' || !data.code) {\n throw new BadRequestError('A code must be provided.');\n }\n\n const entity = await this.service.confirm(deviceId, data.code, actor, { userId });\n\n return { data: entity, meta: {} };\n }\n\n @DDelete('/:deviceId', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DPath('deviceId') deviceId: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<UserAuthenticator>> {\n const actor = buildActorContext(event);\n const userId = this.resolveUserId(id, event);\n\n const entity = await this.service.delete(deviceId, actor, { userId });\n\n event.response.status = 202;\n return { data: entity, meta: {} };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,IAAakB,8BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAyC;EACjD,KAAKD,UAAUC,IAAID;CACvB;;;IAKA,cAAwBG,IAAYC,OAA0B;EAC1D,IAAIZ,YAAYW,EAAAA,GAAK;GACjB,MAAME,WAAWP,mBAAmBM,KAAAA;GACpC,IAAIC,YAAYA,SAASC,SAASjB,aAAakB,MAC3C,OAAOF,SAASF;GAMpB,MAAM,IAAIb,gBAAgB,0DAAA;EAC9B;EAEA,OAAOa;CACX;CAEA,MACMK,QACF,IACA,OACoD;EACpD,MAAMC,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAEtC,MAAM,EAAEO,MAAMC,SAAS,MAAM,KAAKZ,QAAQQ,QAAQjB,gBAAgBa,KAAAA,GAAQK,OAAO,EAAEC,OAAO,CAAA;EAE1F,OAAO;GACHC;GACAC,MAAM;IACF,GAAGA;IACHC,QAAQnB,oBAAoBC,uBAAAA;GAChC;EACJ;CACJ;CAEA,MACMmB,OACF,IACA,MACA,OACwC;EACxC,MAAML,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAGtC,MAAMW,SAAS,MAAM,KAAKf,QAAQc,OAAO;GAAE,GAAGH;GAAMD;EAAO,GAAGD,KAAAA;EAE9DL,MAAMY,SAASC,SAAS;EACxB,OAAOF;CACX;CAEA,MACMG,OACF,IACA,UACA,OACgD;EAChD,MAAMT,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAItC,OAAO;GAAEO,MAAMS,MAFM,KAAKpB,QAAQkB,OAAOC,UAAUV,OAAO,EAAEC,OAAO,CAAA;GAE5CE,MAAM,EAAEC,QAAQnB,oBAAoBC,yBAAyBF,uBAAAA,EAAyB;EAAE;CACnH;CAEA,MACM4B,QACF,IACA,UACA,MACA,OACgD;EAChD,MAAMZ,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAEtC,IAAI,CAACO,QAAQ,OAAOA,KAAKW,SAAS,YAAY,CAACX,KAAKW,MAChD,MAAM,IAAIhC,gBAAgB,0BAAA;EAK9B,OAAO;GAAEqB,MAAMS,MAFM,KAAKpB,QAAQqB,QAAQF,UAAUR,KAAKW,MAAMb,OAAO,EAAEC,OAAO,CAAA;GAExDE,MAAM,CAAC;EAAE;CACpC;CAEA,MACMW,KACF,IACA,UACA,OACgD;EAChD,MAAMd,QAAQZ,kBAAkBO,KAAAA;EAChC,MAAMM,SAAS,KAAKR,cAAcC,IAAIC,KAAAA;EAEtC,MAAMgB,SAAS,MAAM,KAAKpB,QAAQwB,OAAOL,UAAUV,OAAO,EAAEC,OAAO,CAAA;EAEnEN,MAAMY,SAASC,SAAS;EACxB,OAAO;GAAEN,MAAMS;GAAQR,MAAM,CAAC;EAAE;CACpC;AACJ;;CAlFehB,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAmBCA,MAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAgBSA,KAAAA,cAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;CAcSA,MAAAA,sBAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;;;;;;;CAmBNA,QAAAA,cAAAA,CAAAA,uBAAAA,CAAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { IAppEvent } from 'routup';
2
- import type { EntityCollectionResponse, UserPermissionCreatePayload, UserPermissionUpdatePayload } from '@authup/core-http-kit';
2
+ import type { EntityCollectionResponse, EntityRecordResponse, UserPermissionCreatePayload, UserPermissionUpdatePayload } from '@authup/core-http-kit';
3
3
  import type { UserPermission } from '@authup/core-kit';
4
4
  import type { IUserPermissionService } from '../../../../../core/index.ts';
5
5
  export type UserPermissionControllerContext = {
@@ -9,9 +9,9 @@ export declare class UserPermissionController {
9
9
  protected service: IUserPermissionService;
10
10
  constructor(ctx: UserPermissionControllerContext);
11
11
  getMany(event: IAppEvent): Promise<EntityCollectionResponse<UserPermission>>;
12
- add(data: UserPermissionCreatePayload, event: IAppEvent): Promise<UserPermission>;
13
- edit(id: string, data: UserPermissionUpdatePayload, event: IAppEvent): Promise<UserPermission>;
14
- getOne(id: string, event: IAppEvent): Promise<UserPermission>;
15
- drop(id: string, event: IAppEvent): Promise<UserPermission>;
12
+ add(data: UserPermissionCreatePayload, event: IAppEvent): Promise<EntityRecordResponse<UserPermission>>;
13
+ edit(id: string, data: UserPermissionUpdatePayload, event: IAppEvent): Promise<EntityRecordResponse<UserPermission>>;
14
+ getOne(id: string, event: IAppEvent): Promise<EntityRecordResponse<UserPermission>>;
15
+ drop(id: string, event: IAppEvent): Promise<EntityRecordResponse<UserPermission>>;
16
16
  }
17
17
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user-permission/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAI3E,MAAM,MAAM,+BAA+B,GAAG;IAC1C,OAAO,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,qBAEa,wBAAwB;IACjC,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC;gBAE9B,GAAG,EAAE,+BAA+B;IAK1C,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAc9C,GAAG,CACI,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,cAAc,CAAC;IAWpB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,cAAc,CAAC;IAUpB,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,cAAc,CAAC;IAQpB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,cAAc,CAAC;CAQ7B"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/user-permission/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAS3E,MAAM,MAAM,+BAA+B,GAAG;IAC1C,OAAO,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,qBAEa,wBAAwB;IACjC,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC;gBAE9B,GAAG,EAAE,+BAA+B;IAK1C,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAiB9C,GAAG,CACI,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAW1C,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAU1C,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAQ1C,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;CAQnD"}
@@ -1,6 +1,9 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
+ import { RECORD_QUERY_PARAMETERS, describeQuerySchema } from "../../../../../core/query/describe.mjs";
5
+ import { userPermissionSchema } from "../../../../../core/entities/user-permission/schema.mjs";
6
+ import "../../../../../core/index.mjs";
4
7
  import { buildActorContext } from "../../../request/helpers/actor.mjs";
5
8
  import "../../../request/index.mjs";
6
9
  import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
@@ -32,30 +35,45 @@ var UserPermissionController = class {
32
35
  const { data, meta } = await this.service.getMany(useRequestQuery(event), actor);
33
36
  return {
34
37
  data,
35
- meta
38
+ meta: {
39
+ ...meta,
40
+ schema: describeQuerySchema(userPermissionSchema)
41
+ }
36
42
  };
37
43
  }
38
44
  async add(data, event) {
39
45
  const actor = buildActorContext(event);
40
46
  const entity = await this.service.create(data, actor);
41
47
  event.response.status = 201;
42
- return entity;
48
+ return {
49
+ data: entity,
50
+ meta: {}
51
+ };
43
52
  }
44
53
  async edit(id, data, event) {
45
54
  const actor = buildActorContext(event);
46
55
  const entity = await this.service.update(id, data, actor);
47
56
  event.response.status = 202;
48
- return entity;
57
+ return {
58
+ data: entity,
59
+ meta: {}
60
+ };
49
61
  }
50
62
  async getOne(id, event) {
51
63
  const actor = buildActorContext(event);
52
- return await this.service.getOne(id, actor);
64
+ return {
65
+ data: await this.service.getOne(id, actor),
66
+ meta: { schema: describeQuerySchema(userPermissionSchema, RECORD_QUERY_PARAMETERS) }
67
+ };
53
68
  }
54
69
  async drop(id, event) {
55
70
  const actor = buildActorContext(event);
56
71
  const entity = await this.service.delete(id, actor);
57
72
  event.response.status = 202;
58
- return entity;
73
+ return {
74
+ data: entity,
75
+ meta: {}
76
+ };
59
77
  }
60
78
  };
61
79
  _ts_decorate([