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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
  2. package/dist/adapters/database/domains/client/entity.mjs +58 -30
  3. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client-permission/entity.d.ts.map +1 -1
  5. package/dist/adapters/database/domains/client-permission/entity.mjs +48 -24
  6. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  7. package/dist/adapters/database/domains/client-role/entity.d.ts.map +1 -1
  8. package/dist/adapters/database/domains/client-role/entity.mjs +37 -17
  9. package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
  10. package/dist/adapters/database/domains/client-scope/entity.d.ts.map +1 -1
  11. package/dist/adapters/database/domains/client-scope/entity.mjs +30 -14
  12. package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
  13. package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -1
  14. package/dist/adapters/database/domains/consent/entity.mjs +34 -18
  15. package/dist/adapters/database/domains/consent/entity.mjs.map +1 -1
  16. package/dist/adapters/database/domains/event/entity.d.ts +1 -0
  17. package/dist/adapters/database/domains/event/entity.d.ts.map +1 -1
  18. package/dist/adapters/database/domains/event/entity.mjs +48 -23
  19. package/dist/adapters/database/domains/event/entity.mjs.map +1 -1
  20. package/dist/adapters/database/domains/identity-provider/entity.d.ts.map +1 -1
  21. package/dist/adapters/database/domains/identity-provider/entity.mjs +43 -23
  22. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  23. package/dist/adapters/database/domains/identity-provider-account/entity.d.ts.map +1 -1
  24. package/dist/adapters/database/domains/identity-provider-account/entity.mjs +50 -22
  25. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  26. package/dist/adapters/database/domains/identity-provider-attribute/entity.d.ts.map +1 -1
  27. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs +14 -6
  28. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  29. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.d.ts.map +1 -1
  30. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs +5 -1
  31. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  32. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.d.ts.map +1 -1
  33. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs +18 -6
  34. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  35. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.d.ts.map +1 -1
  36. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs +34 -14
  37. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  38. package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
  39. package/dist/adapters/database/domains/key/entity.mjs +35 -19
  40. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  41. package/dist/adapters/database/domains/permission/entity.d.ts.map +1 -1
  42. package/dist/adapters/database/domains/permission/entity.mjs +35 -19
  43. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  44. package/dist/adapters/database/domains/permission-policy/entity.d.ts.map +1 -1
  45. package/dist/adapters/database/domains/permission-policy/entity.mjs +37 -17
  46. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  47. package/dist/adapters/database/domains/policy/entity.d.ts.map +1 -1
  48. package/dist/adapters/database/domains/policy/entity.mjs +51 -27
  49. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  50. package/dist/adapters/database/domains/policy-attribute/entity.d.ts.map +1 -1
  51. package/dist/adapters/database/domains/policy-attribute/entity.mjs +14 -6
  52. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  53. package/dist/adapters/database/domains/realm/entity.d.ts.map +1 -1
  54. package/dist/adapters/database/domains/realm/entity.mjs +36 -20
  55. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  56. package/dist/adapters/database/domains/role/entity.d.ts.map +1 -1
  57. package/dist/adapters/database/domains/role/entity.mjs +44 -24
  58. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  59. package/dist/adapters/database/domains/role-attribute/entity.d.ts.map +1 -1
  60. package/dist/adapters/database/domains/role-attribute/entity.mjs +30 -14
  61. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  62. package/dist/adapters/database/domains/role-permission/entity.d.ts.map +1 -1
  63. package/dist/adapters/database/domains/role-permission/entity.mjs +45 -21
  64. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  65. package/dist/adapters/database/domains/scope/entity.d.ts.map +1 -1
  66. package/dist/adapters/database/domains/scope/entity.mjs +35 -19
  67. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  68. package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
  69. package/dist/adapters/database/domains/session/entity.mjs +63 -31
  70. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  71. package/dist/adapters/database/domains/session-token/entity.d.ts +4 -1
  72. package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -1
  73. package/dist/adapters/database/domains/session-token/entity.mjs +40 -11
  74. package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -1
  75. package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -1
  76. package/dist/adapters/database/domains/trust-anchor/entity.mjs +25 -13
  77. package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -1
  78. package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
  79. package/dist/adapters/database/domains/user/entity.mjs +58 -34
  80. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  81. package/dist/adapters/database/domains/user-attribute/entity.d.ts.map +1 -1
  82. package/dist/adapters/database/domains/user-attribute/entity.mjs +27 -11
  83. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  84. package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -1
  85. package/dist/adapters/database/domains/user-authenticator/entity.mjs +43 -23
  86. package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -1
  87. package/dist/adapters/database/domains/user-permission/entity.d.ts.map +1 -1
  88. package/dist/adapters/database/domains/user-permission/entity.mjs +45 -21
  89. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  90. package/dist/adapters/database/domains/user-role/entity.d.ts.map +1 -1
  91. package/dist/adapters/database/domains/user-role/entity.mjs +37 -17
  92. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  93. package/dist/adapters/database/errors/driver.d.ts +9 -0
  94. package/dist/adapters/database/errors/driver.d.ts.map +1 -1
  95. package/dist/adapters/database/errors/driver.mjs +20 -1
  96. package/dist/adapters/database/errors/driver.mjs.map +1 -1
  97. package/dist/adapters/database/errors/index.mjs +2 -2
  98. package/dist/adapters/database/helpers/index.mjs +2 -2
  99. package/dist/adapters/database/helpers/is-supported.d.ts +7 -0
  100. package/dist/adapters/database/helpers/is-supported.d.ts.map +1 -1
  101. package/dist/adapters/database/helpers/is-supported.mjs +9 -1
  102. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  103. package/dist/adapters/database/index.mjs +3 -3
  104. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts +66 -0
  105. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  106. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs +181 -0
  107. package/dist/adapters/database/migrations/mysql/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  108. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts +44 -0
  109. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.d.ts.map +1 -0
  110. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs +1294 -0
  111. package/dist/adapters/database/migrations/mysql/1786436332251-QueryIndexes.mjs.map +1 -0
  112. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts +43 -0
  113. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.d.ts.map +1 -0
  114. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs +120 -0
  115. package/dist/adapters/database/migrations/postgres/1785871780234-AlignSchemaWithEntityMetadata.mjs.map +1 -0
  116. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts +44 -0
  117. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.d.ts.map +1 -0
  118. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs +987 -0
  119. package/dist/adapters/database/migrations/postgres/1786436332251-QueryIndexes.mjs.map +1 -0
  120. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +14 -2
  121. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  122. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +85 -19
  123. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  124. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +4 -1
  125. package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
  126. package/dist/adapters/http/controllers/entities/identity-provider-account/index.d.ts.map +1 -0
  127. package/dist/adapters/http/controllers/entities/identity-provider-account/index.mjs +5 -0
  128. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts +15 -0
  129. package/dist/adapters/http/controllers/entities/identity-provider-account/module.d.ts.map +1 -0
  130. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs +94 -0
  131. package/dist/adapters/http/controllers/entities/identity-provider-account/module.mjs.map +1 -0
  132. package/dist/adapters/http/controllers/entities/index.d.ts +2 -0
  133. package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
  134. package/dist/adapters/http/controllers/entities/index.mjs +5 -1
  135. package/dist/adapters/http/controllers/entities/session-token/index.d.ts +2 -0
  136. package/dist/adapters/http/controllers/entities/session-token/index.d.ts.map +1 -0
  137. package/dist/adapters/http/controllers/entities/session-token/index.mjs +5 -0
  138. package/dist/adapters/http/controllers/entities/session-token/module.d.ts +23 -0
  139. package/dist/adapters/http/controllers/entities/session-token/module.d.ts.map +1 -0
  140. package/dist/adapters/http/controllers/entities/session-token/module.mjs +112 -0
  141. package/dist/adapters/http/controllers/entities/session-token/module.mjs.map +1 -0
  142. package/dist/adapters/http/controllers/index.mjs +3 -1
  143. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -1
  144. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -0
  145. package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
  146. package/dist/adapters/http/index.mjs +3 -1
  147. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  148. package/dist/adapters/http/middleware/built-in/error.mjs +4 -3
  149. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  150. package/dist/adapters/http/request/event-context.d.ts.map +1 -1
  151. package/dist/adapters/http/request/event-context.mjs +2 -0
  152. package/dist/adapters/http/request/event-context.mjs.map +1 -1
  153. package/dist/app/index.mjs +2 -2
  154. package/dist/app/modules/database/index.mjs +2 -1
  155. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts +2 -0
  156. package/dist/app/modules/database/repositories/identity-provider-account/index.d.ts.map +1 -0
  157. package/dist/app/modules/database/repositories/identity-provider-account/index.mjs +5 -0
  158. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts +18 -0
  159. package/dist/app/modules/database/repositories/identity-provider-account/repository.d.ts.map +1 -0
  160. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +69 -0
  161. package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -0
  162. package/dist/app/modules/database/repositories/index.d.ts +1 -0
  163. package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
  164. package/dist/app/modules/database/repositories/index.mjs +3 -1
  165. package/dist/app/modules/database/repositories/key/repository.d.ts +23 -0
  166. package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -1
  167. package/dist/app/modules/database/repositories/key/repository.mjs +39 -3
  168. package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
  169. package/dist/app/modules/database/repositories/schema-validation.d.ts +14 -6
  170. package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
  171. package/dist/app/modules/database/repositories/schema-validation.mjs +18 -6
  172. package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -1
  173. package/dist/app/modules/http/modules/controller.d.ts +3 -1
  174. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  175. package/dist/app/modules/http/modules/controller.mjs +37 -1
  176. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  177. package/dist/app/modules/identity/index.mjs +1 -2
  178. package/dist/app/modules/identity/module.d.ts.map +1 -1
  179. package/dist/app/modules/identity/module.mjs +2 -2
  180. package/dist/app/modules/identity/module.mjs.map +1 -1
  181. package/dist/app/modules/identity/repositories/index.mjs +1 -2
  182. package/dist/app/modules/identity/repositories/provider/index.d.ts +0 -1
  183. package/dist/app/modules/identity/repositories/provider/index.d.ts.map +1 -1
  184. package/dist/app/modules/identity/repositories/provider/index.mjs +1 -3
  185. package/dist/app/modules/index.mjs +2 -2
  186. package/dist/app/modules/logger/module.d.ts.map +1 -1
  187. package/dist/app/modules/logger/module.mjs +1 -0
  188. package/dist/app/modules/logger/module.mjs.map +1 -1
  189. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +25 -1
  190. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
  191. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +70 -1
  192. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  193. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  194. package/dist/app/modules/provisioning/module.mjs +3 -1
  195. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  196. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  197. package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
  198. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  199. package/dist/core/entities/client/schema.d.ts.map +1 -1
  200. package/dist/core/entities/client/schema.mjs +29 -10
  201. package/dist/core/entities/client/schema.mjs.map +1 -1
  202. package/dist/core/entities/client-permission/schema.d.ts.map +1 -1
  203. package/dist/core/entities/client-permission/schema.mjs +29 -6
  204. package/dist/core/entities/client-permission/schema.mjs.map +1 -1
  205. package/dist/core/entities/client-role/schema.d.ts.map +1 -1
  206. package/dist/core/entities/client-role/schema.mjs +27 -6
  207. package/dist/core/entities/client-role/schema.mjs.map +1 -1
  208. package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
  209. package/dist/core/entities/client-scope/schema.mjs +19 -5
  210. package/dist/core/entities/client-scope/schema.mjs.map +1 -1
  211. package/dist/core/entities/consent/schema.d.ts.map +1 -1
  212. package/dist/core/entities/consent/schema.mjs +28 -6
  213. package/dist/core/entities/consent/schema.mjs.map +1 -1
  214. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  215. package/dist/core/entities/event/entity-event-handler.mjs +2 -0
  216. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  217. package/dist/core/entities/event/sanitize.d.ts.map +1 -1
  218. package/dist/core/entities/event/sanitize.mjs +7 -4
  219. package/dist/core/entities/event/sanitize.mjs.map +1 -1
  220. package/dist/core/entities/event/schema.d.ts.map +1 -1
  221. package/dist/core/entities/event/schema.mjs +45 -16
  222. package/dist/core/entities/event/schema.mjs.map +1 -1
  223. package/dist/core/entities/event/service.d.ts.map +1 -1
  224. package/dist/core/entities/event/service.mjs +2 -0
  225. package/dist/core/entities/event/service.mjs.map +1 -1
  226. package/dist/core/entities/event/types.d.ts +2 -0
  227. package/dist/core/entities/event/types.d.ts.map +1 -1
  228. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -1
  229. package/dist/core/entities/identity-provider/schema.mjs +29 -11
  230. package/dist/core/entities/identity-provider/schema.mjs.map +1 -1
  231. package/dist/core/entities/identity-provider-account/error.d.ts +7 -0
  232. package/dist/core/entities/identity-provider-account/error.d.ts.map +1 -0
  233. package/dist/core/entities/identity-provider-account/error.mjs +24 -0
  234. package/dist/core/entities/identity-provider-account/error.mjs.map +1 -0
  235. package/dist/core/entities/identity-provider-account/index.d.ts +5 -0
  236. package/dist/core/entities/identity-provider-account/index.d.ts.map +1 -0
  237. package/dist/core/entities/identity-provider-account/index.mjs +8 -0
  238. package/dist/core/entities/identity-provider-account/schema.d.ts +3 -0
  239. package/dist/core/entities/identity-provider-account/schema.d.ts.map +1 -0
  240. package/dist/core/entities/identity-provider-account/schema.mjs +52 -0
  241. package/dist/core/entities/identity-provider-account/schema.mjs.map +1 -0
  242. package/dist/core/entities/identity-provider-account/service.d.ts +24 -0
  243. package/dist/core/entities/identity-provider-account/service.d.ts.map +1 -0
  244. package/dist/core/entities/identity-provider-account/service.mjs +129 -0
  245. package/dist/core/entities/identity-provider-account/service.mjs.map +1 -0
  246. package/dist/core/entities/identity-provider-account/types.d.ts +69 -0
  247. package/dist/core/entities/identity-provider-account/types.d.ts.map +1 -0
  248. package/dist/core/entities/identity-provider-account/types.mjs +17 -0
  249. package/dist/core/entities/identity-provider-account/types.mjs.map +1 -0
  250. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -1
  251. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +27 -6
  252. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -1
  253. package/dist/core/entities/index.d.ts +2 -0
  254. package/dist/core/entities/index.d.ts.map +1 -1
  255. package/dist/core/entities/index.mjs +9 -1
  256. package/dist/core/entities/key/schema.d.ts.map +1 -1
  257. package/dist/core/entities/key/schema.mjs +39 -17
  258. package/dist/core/entities/key/schema.mjs.map +1 -1
  259. package/dist/core/entities/key/service.d.ts.map +1 -1
  260. package/dist/core/entities/key/service.mjs +1 -0
  261. package/dist/core/entities/key/service.mjs.map +1 -1
  262. package/dist/core/entities/permission/schema.d.ts.map +1 -1
  263. package/dist/core/entities/permission/schema.mjs +34 -13
  264. package/dist/core/entities/permission/schema.mjs.map +1 -1
  265. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -1
  266. package/dist/core/entities/permission-policy/schema.mjs +27 -6
  267. package/dist/core/entities/permission-policy/schema.mjs.map +1 -1
  268. package/dist/core/entities/policy/schema.d.ts.map +1 -1
  269. package/dist/core/entities/policy/schema.mjs +31 -12
  270. package/dist/core/entities/policy/schema.mjs.map +1 -1
  271. package/dist/core/entities/realm/schema.d.ts.map +1 -1
  272. package/dist/core/entities/realm/schema.mjs +26 -12
  273. package/dist/core/entities/realm/schema.mjs.map +1 -1
  274. package/dist/core/entities/role/schema.d.ts.map +1 -1
  275. package/dist/core/entities/role/schema.mjs +36 -14
  276. package/dist/core/entities/role/schema.mjs.map +1 -1
  277. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -1
  278. package/dist/core/entities/role-attribute/schema.mjs +28 -14
  279. package/dist/core/entities/role-attribute/schema.mjs.map +1 -1
  280. package/dist/core/entities/role-permission/schema.d.ts.map +1 -1
  281. package/dist/core/entities/role-permission/schema.mjs +29 -6
  282. package/dist/core/entities/role-permission/schema.mjs.map +1 -1
  283. package/dist/core/entities/scope/schema.d.ts.map +1 -1
  284. package/dist/core/entities/scope/schema.mjs +28 -12
  285. package/dist/core/entities/scope/schema.mjs.map +1 -1
  286. package/dist/core/entities/session/schema.d.ts.map +1 -1
  287. package/dist/core/entities/session/schema.mjs +41 -9
  288. package/dist/core/entities/session/schema.mjs.map +1 -1
  289. package/dist/core/entities/session-token/index.d.ts +4 -0
  290. package/dist/core/entities/session-token/index.d.ts.map +1 -0
  291. package/dist/core/entities/session-token/index.mjs +6 -0
  292. package/dist/core/entities/session-token/schema.d.ts +12 -0
  293. package/dist/core/entities/session-token/schema.d.ts.map +1 -0
  294. package/dist/core/entities/session-token/schema.mjs +66 -0
  295. package/dist/core/entities/session-token/schema.mjs.map +1 -0
  296. package/dist/core/entities/session-token/service.d.ts +70 -0
  297. package/dist/core/entities/session-token/service.d.ts.map +1 -0
  298. package/dist/core/entities/session-token/service.mjs +216 -0
  299. package/dist/core/entities/session-token/service.mjs.map +1 -0
  300. package/dist/core/entities/session-token/types.d.ts +37 -0
  301. package/dist/core/entities/session-token/types.d.ts.map +1 -0
  302. package/dist/core/entities/session-token/types.mjs +4 -0
  303. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -1
  304. package/dist/core/entities/trust-anchor/schema.mjs +27 -13
  305. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -1
  306. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
  307. package/dist/core/entities/trust-anchor/service.mjs +1 -0
  308. package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
  309. package/dist/core/entities/user/schema.d.ts.map +1 -1
  310. package/dist/core/entities/user/schema.mjs +29 -12
  311. package/dist/core/entities/user/schema.mjs.map +1 -1
  312. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -1
  313. package/dist/core/entities/user-attribute/schema.mjs +28 -14
  314. package/dist/core/entities/user-attribute/schema.mjs.map +1 -1
  315. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -1
  316. package/dist/core/entities/user-authenticator/schema.mjs +29 -12
  317. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -1
  318. package/dist/core/entities/user-authenticator/service.d.ts +2 -1
  319. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
  320. package/dist/core/entities/user-authenticator/service.mjs +5 -0
  321. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  322. package/dist/core/entities/user-authenticator/types.d.ts +7 -1
  323. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
  324. package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
  325. package/dist/core/entities/user-permission/schema.d.ts.map +1 -1
  326. package/dist/core/entities/user-permission/schema.mjs +29 -6
  327. package/dist/core/entities/user-permission/schema.mjs.map +1 -1
  328. package/dist/core/entities/user-role/schema.d.ts.map +1 -1
  329. package/dist/core/entities/user-role/schema.mjs +27 -6
  330. package/dist/core/entities/user-role/schema.mjs.map +1 -1
  331. package/dist/core/identity/index.mjs +2 -1
  332. package/dist/core/identity/provider/account/error.d.ts +7 -0
  333. package/dist/core/identity/provider/account/error.d.ts.map +1 -0
  334. package/dist/core/identity/provider/account/error.mjs +24 -0
  335. package/dist/core/identity/provider/account/error.mjs.map +1 -0
  336. package/dist/core/identity/provider/account/index.d.ts +1 -0
  337. package/dist/core/identity/provider/account/index.d.ts.map +1 -1
  338. package/dist/core/identity/provider/account/index.mjs +2 -1
  339. package/dist/core/identity/provider/account/module.d.ts +2 -0
  340. package/dist/core/identity/provider/account/module.d.ts.map +1 -1
  341. package/dist/core/identity/provider/account/module.mjs +30 -0
  342. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  343. package/dist/core/identity/provider/account/types.d.ts +12 -10
  344. package/dist/core/identity/provider/account/types.d.ts.map +1 -1
  345. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts +1 -0
  346. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
  347. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +5 -1
  348. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  349. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts +7 -0
  350. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts.map +1 -1
  351. package/dist/core/identity/provider/index.mjs +2 -1
  352. package/dist/core/index.mjs +10 -2
  353. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  354. package/dist/core/oauth2/authorization/module.mjs +2 -0
  355. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  356. package/dist/core/oauth2/authorization/state/types.d.ts +11 -0
  357. package/dist/core/oauth2/authorization/state/types.d.ts.map +1 -1
  358. package/dist/core/oauth2/end-session/service.mjs +2 -2
  359. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  360. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  361. package/dist/core/oauth2/grant-types/authorize.mjs +1 -5
  362. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  363. package/dist/core/oauth2/grant-types/password.mjs +2 -5
  364. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  365. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  366. package/dist/core/oauth2/grant-types/refresh-token.mjs +37 -24
  367. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  368. package/dist/core/oauth2/index.mjs +3 -1
  369. package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -1
  370. package/dist/core/oauth2/mfa-login/module.mjs +4 -7
  371. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
  372. package/dist/core/oauth2/session-token/error.d.ts +36 -0
  373. package/dist/core/oauth2/session-token/error.d.ts.map +1 -0
  374. package/dist/core/oauth2/session-token/error.mjs +49 -0
  375. package/dist/core/oauth2/session-token/error.mjs.map +1 -0
  376. package/dist/core/oauth2/session-token/index.d.ts +1 -0
  377. package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
  378. package/dist/core/oauth2/session-token/index.mjs +2 -1
  379. package/dist/core/oauth2/session-token/types.d.ts +40 -0
  380. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  381. package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
  382. package/dist/core/oauth2/token/issuer/access/module.mjs +1 -0
  383. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  384. package/dist/core/oauth2/token/issuer/base.d.ts +1 -1
  385. package/dist/core/oauth2/token/issuer/base.d.ts.map +1 -1
  386. package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
  387. package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
  388. package/dist/core/oauth2/token/issuer/refresh/module.mjs +1 -0
  389. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  390. package/dist/core/query/index.mjs +2 -2
  391. package/dist/core/query/module.d.ts +19 -9
  392. package/dist/core/query/module.d.ts.map +1 -1
  393. package/dist/core/query/module.mjs +22 -10
  394. package/dist/core/query/module.mjs.map +1 -1
  395. package/dist/index.mjs +6 -4
  396. package/dist/swagger.json +869 -140
  397. package/dist/utils/error.d.ts +20 -3
  398. package/dist/utils/error.d.ts.map +1 -1
  399. package/dist/utils/error.mjs +102 -5
  400. package/dist/utils/error.mjs.map +1 -1
  401. package/dist/utils/index.mjs +2 -2
  402. package/package.json +23 -21
  403. package/dist/app/modules/identity/repositories/provider/account/index.d.ts.map +0 -1
  404. package/dist/app/modules/identity/repositories/provider/account/index.mjs +0 -5
  405. package/dist/app/modules/identity/repositories/provider/account/module.d.ts +0 -10
  406. package/dist/app/modules/identity/repositories/provider/account/module.d.ts.map +0 -1
  407. package/dist/app/modules/identity/repositories/provider/account/module.mjs +0 -28
  408. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +0 -1
  409. /package/dist/{app/modules/identity/repositories/provider/account → adapters/http/controllers/entities/identity-provider-account}/index.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider-account/module.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AASpF,MAAM,MAAM,wCAAwC,GAAG;IACnD,OAAO,EAAE,+BAA+B,CAAC;CAC5C,CAAC;AAEF,qBAEa,iCAAiC;IAC1C,SAAS,CAAC,OAAO,EAAE,+BAA+B,CAAC;gBAEvC,GAAG,EAAE,wCAAwC;IAKnD,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;IAiBvD,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IASnD,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;CAQ5D"}
@@ -0,0 +1,94 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { RECORD_QUERY_PARAMETERS, describeQuerySchema } from "../../../../../core/query/describe.mjs";
5
+ import { identityProviderAccountSchema } from "../../../../../core/entities/identity-provider-account/schema.mjs";
6
+ import "../../../../../core/index.mjs";
7
+ import { buildActorContext } from "../../../request/helpers/actor.mjs";
8
+ import { getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
9
+ import "../../../request/index.mjs";
10
+ import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
11
+ import "../../../middleware/index.mjs";
12
+ import { useRequestQuery } from "@routup/basic/query";
13
+ import { DContext, DController, DDelete, DGet, DPath, DTags } from "@routup/decorators";
14
+ //#region src/adapters/http/controllers/entities/identity-provider-account/module.ts
15
+ function _ts_decorate(decorators, target, key, desc) {
16
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20
+ }
21
+ function _ts_metadata(metadataKey, metadataValue) {
22
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
23
+ }
24
+ function _ts_param(paramIndex, decorator) {
25
+ return function(target, key) {
26
+ decorator(target, key, paramIndex);
27
+ };
28
+ }
29
+ var IdentityProviderAccountController = class {
30
+ service;
31
+ constructor(ctx) {
32
+ this.service = ctx.service;
33
+ }
34
+ async getMany(event) {
35
+ const actor = buildActorContext(event);
36
+ const { data, meta } = await this.service.getMany(useRequestQuery(event), actor, { realmId: getRequestRealmID(event) });
37
+ return {
38
+ data,
39
+ meta: {
40
+ ...meta,
41
+ schema: describeQuerySchema(identityProviderAccountSchema)
42
+ }
43
+ };
44
+ }
45
+ async getOne(id, event) {
46
+ const actor = buildActorContext(event);
47
+ return {
48
+ data: await this.service.getOne(id, actor, { realmId: getRequestRealmID(event) }),
49
+ meta: { schema: describeQuerySchema(identityProviderAccountSchema, RECORD_QUERY_PARAMETERS) }
50
+ };
51
+ }
52
+ async drop(id, event) {
53
+ const actor = buildActorContext(event);
54
+ const entity = await this.service.delete(id, actor, { realmId: getRequestRealmID(event) });
55
+ event.response.status = 202;
56
+ return {
57
+ data: entity,
58
+ meta: {}
59
+ };
60
+ }
61
+ };
62
+ _ts_decorate([
63
+ DGet("", [ForceLoggedInMiddleware]),
64
+ _ts_param(0, DContext()),
65
+ _ts_metadata("design:type", Function),
66
+ _ts_metadata("design:paramtypes", [typeof IAppEvent === "undefined" ? Object : IAppEvent]),
67
+ _ts_metadata("design:returntype", Promise)
68
+ ], IdentityProviderAccountController.prototype, "getMany", null);
69
+ _ts_decorate([
70
+ DGet("/:id", [ForceLoggedInMiddleware]),
71
+ _ts_param(0, DPath("id")),
72
+ _ts_param(1, DContext()),
73
+ _ts_metadata("design:type", Function),
74
+ _ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
75
+ _ts_metadata("design:returntype", Promise)
76
+ ], IdentityProviderAccountController.prototype, "getOne", null);
77
+ _ts_decorate([
78
+ DDelete("/:id", [ForceLoggedInMiddleware]),
79
+ _ts_param(0, DPath("id")),
80
+ _ts_param(1, DContext()),
81
+ _ts_metadata("design:type", Function),
82
+ _ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
83
+ _ts_metadata("design:returntype", Promise)
84
+ ], IdentityProviderAccountController.prototype, "drop", null);
85
+ IdentityProviderAccountController = _ts_decorate([
86
+ DTags("identity"),
87
+ DController(["/identity-provider-accounts", "/realms/:realmId/identity-provider-accounts"]),
88
+ _ts_metadata("design:type", Function),
89
+ _ts_metadata("design:paramtypes", [typeof IdentityProviderAccountControllerContext === "undefined" ? Object : IdentityProviderAccountControllerContext])
90
+ ], IdentityProviderAccountController);
91
+ //#endregion
92
+ export { IdentityProviderAccountController };
93
+
94
+ //# sourceMappingURL=module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.mjs","names":["DContext","DController","DDelete","DGet","DPath","DTags","useRequestQuery","RECORD_QUERY_PARAMETERS","describeQuerySchema","identityProviderAccountSchema","ForceLoggedInMiddleware","buildActorContext","getRequestRealmID","IdentityProviderAccountController","service","ctx","getMany","event","actor","data","meta","realmId","schema","getOne","id","entity","drop","delete","response","status"],"sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider-account/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 DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DTags,\n} from '@routup/decorators';\nimport type { IdentityProviderAccount } from '@authup/core-kit';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n EntityRecordResponse,\n} from '@authup/core-http-kit';\nimport type { IIdentityProviderAccountService } from '../../../../../core/index.ts';\nimport {\n RECORD_QUERY_PARAMETERS,\n describeQuerySchema,\n identityProviderAccountSchema,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext, getRequestRealmID } from '../../../request/index.ts';\n\nexport type IdentityProviderAccountControllerContext = {\n service: IIdentityProviderAccountService,\n};\n\n@DTags('identity')\n@DController(['/identity-provider-accounts', '/realms/:realmId/identity-provider-accounts'])\nexport class IdentityProviderAccountController {\n protected service: IIdentityProviderAccountService;\n\n constructor(ctx: IdentityProviderAccountControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<IdentityProviderAccount>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor, { realmId: getRequestRealmID(event) });\n\n return {\n data,\n meta: {\n ...meta,\n schema: describeQuerySchema(identityProviderAccountSchema),\n },\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<IdentityProviderAccount>> {\n const actor = buildActorContext(event);\n\n const entity = await this.service.getOne(id, actor, { realmId: getRequestRealmID(event) });\n\n return { data: entity, meta: { schema: describeQuerySchema(identityProviderAccountSchema, RECORD_QUERY_PARAMETERS) } };\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<IdentityProviderAccount>> {\n const actor = buildActorContext(event);\n\n const entity = await this.service.delete(id, actor, { realmId: getRequestRealmID(event) });\n\n event.response.status = 202;\n return { data: entity, meta: {} };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,IAAaa,oCAAb,MAAaA;CACCC;CAEV,YAAYC,KAA+C;EACvD,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OAC0D;EAC1D,MAAME,QAAQP,kBAAkBM,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQV,gBAAgBW,KAAAA,GAAQC,OAAO,EAAEG,SAAST,kBAAkBK,KAAAA,EAAO,CAAA;EAElG,OAAO;GACHE;GACAC,MAAM;IACF,GAAGA;IACHE,QAAQd,oBAAoBC,6BAAAA;GAChC;EACJ;CACJ;CAEA,MACMc,OACF,IACA,OACsD;EACtD,MAAML,QAAQP,kBAAkBM,KAAAA;EAIhC,OAAO;GAAEE,MAAMM,MAFM,KAAKX,QAAQS,OAAOC,IAAIN,OAAO,EAAEG,SAAST,kBAAkBK,KAAAA,EAAO,CAAA;GAEjEG,MAAM,EAAEE,QAAQd,oBAAoBC,+BAA+BF,uBAAAA,EAAyB;EAAE;CACzH;CAEA,MACMmB,KACF,IACA,OACsD;EACtD,MAAMR,QAAQP,kBAAkBM,KAAAA;EAEhC,MAAMQ,SAAS,MAAM,KAAKX,QAAQa,OAAOH,IAAIN,OAAO,EAAEG,SAAST,kBAAkBK,KAAAA,EAAO,CAAA;EAExFA,MAAMW,SAASC,SAAS;EACxB,OAAO;GAAEV,MAAMM;GAAQL,MAAM,CAAC;EAAE;CACpC;AACJ;;CA3CeV,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAmBIA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAYGA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;CAvCR,YAAA,CAAA,+BAA+B,6CAAA,CAAA"}
@@ -5,6 +5,7 @@ export * from './client-scope/index.ts';
5
5
  export * from './consent/index.ts';
6
6
  export * from './event/index.ts';
7
7
  export * from './identity-provider/index.ts';
8
+ export * from './identity-provider-account/index.ts';
8
9
  export * from './identity-provide-role/index.ts';
9
10
  export * from './key/index.ts';
10
11
  export * from './permission/index.ts';
@@ -16,6 +17,7 @@ export * from './role-permission/index.ts';
16
17
  export * from './policy/index.ts';
17
18
  export * from './scope/index.ts';
18
19
  export * from './session/index.ts';
20
+ export * from './session-token/index.ts';
19
21
  export * from './trust-anchor/index.ts';
20
22
  export * from './user/index.ts';
21
23
  export * from './user-attribute/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/controllers/entities/index.ts"],"names":[],"mappings":"AAOA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/controllers/entities/index.ts"],"names":[],"mappings":"AAOA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
@@ -18,6 +18,8 @@ import { EventController } from "./event/module.mjs";
18
18
  import "./event/index.mjs";
19
19
  import { IdentityProviderController } from "./identity-provider/module.mjs";
20
20
  import "./identity-provider/index.mjs";
21
+ import { IdentityProviderAccountController } from "./identity-provider-account/module.mjs";
22
+ import "./identity-provider-account/index.mjs";
21
23
  import { IdentityProviderRoleMappingController } from "./identity-provide-role/module.mjs";
22
24
  import "./identity-provide-role/index.mjs";
23
25
  import { KeyController } from "./key/module.mjs";
@@ -44,6 +46,8 @@ import { ScopeController } from "./scope/module.mjs";
44
46
  import "./scope/index.mjs";
45
47
  import { SessionController } from "./session/module.mjs";
46
48
  import "./session/index.mjs";
49
+ import { SessionTokenController } from "./session-token/module.mjs";
50
+ import "./session-token/index.mjs";
47
51
  import { TrustAnchorController } from "./trust-anchor/module.mjs";
48
52
  import "./trust-anchor/index.mjs";
49
53
  import { UserController } from "./user/module.mjs";
@@ -59,4 +63,4 @@ import "./user-permission/index.mjs";
59
63
  import { UserRoleController } from "./user-role/module.mjs";
60
64
  import { UserRoleRequestValidator } from "./user-role/utils/validation.mjs";
61
65
  import "./user-role/index.mjs";
62
- export { ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, IdentityProviderController, IdentityProviderRoleMappingController, KeyController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, TrustAnchorController, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator };
66
+ export { ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, IdentityProviderAccountController, IdentityProviderController, IdentityProviderRoleMappingController, KeyController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, SessionTokenController, TrustAnchorController, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator };
@@ -0,0 +1,2 @@
1
+ export * from './module.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/session-token/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { SessionTokenController } from "./module.mjs";
5
+ export { SessionTokenController };
@@ -0,0 +1,23 @@
1
+ import type { SessionToken } from '@authup/core-kit';
2
+ import type { IAppEvent } from 'routup';
3
+ import type { EntityCollectionResponse, EntityRecordResponse } from '@authup/core-http-kit';
4
+ import type { ISessionTokenService, SessionTokenDeleteManyResult } from '../../../../../core/index.ts';
5
+ export type SessionTokenControllerContext = {
6
+ service: ISessionTokenService;
7
+ };
8
+ export declare class SessionTokenController {
9
+ protected service: ISessionTokenService;
10
+ constructor(ctx: SessionTokenControllerContext);
11
+ getMany(event: IAppEvent): Promise<EntityCollectionResponse<SessionToken>>;
12
+ getOne(id: string, event: IAppEvent): Promise<EntityRecordResponse<SessionToken>>;
13
+ /**
14
+ * Revoke every token matching the query. Requires a target filter, so it
15
+ * cannot degenerate into an unscoped mass revoke.
16
+ *
17
+ * Scoped to one client this is "sign out of this application": the session
18
+ * itself survives, so the other applications riding it stay signed in.
19
+ */
20
+ dropMany(event: IAppEvent): Promise<SessionTokenDeleteManyResult>;
21
+ drop(id: string, event: IAppEvent): Promise<EntityRecordResponse<SessionToken>>;
22
+ }
23
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/session-token/module.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AASvG,MAAM,MAAM,6BAA6B,GAAG;IACxC,OAAO,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,qBAEa,sBAAsB;IAC/B,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE5B,GAAG,EAAE,6BAA6B;IAKxC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAc5C,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAU9C;;;;;;OAMG;IAEG,QAAQ,CACE,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,4BAA4B,CAAC;IASlC,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;CAOjD"}
@@ -0,0 +1,112 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { RECORD_QUERY_PARAMETERS, describeQuerySchema } from "../../../../../core/query/describe.mjs";
5
+ import { sessionTokenSchema } from "../../../../../core/entities/session-token/schema.mjs";
6
+ import "../../../../../core/index.mjs";
7
+ import { buildActorContext } from "../../../request/helpers/actor.mjs";
8
+ import "../../../request/index.mjs";
9
+ import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
10
+ import "../../../middleware/index.mjs";
11
+ import { useRequestQuery } from "@routup/basic/query";
12
+ import { DContext, DController, DDelete, DGet, DPath, DTags } from "@routup/decorators";
13
+ //#region src/adapters/http/controllers/entities/session-token/module.ts
14
+ function _ts_decorate(decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ }
20
+ function _ts_metadata(metadataKey, metadataValue) {
21
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
22
+ }
23
+ function _ts_param(paramIndex, decorator) {
24
+ return function(target, key) {
25
+ decorator(target, key, paramIndex);
26
+ };
27
+ }
28
+ var SessionTokenController = class {
29
+ service;
30
+ constructor(ctx) {
31
+ this.service = ctx.service;
32
+ }
33
+ async getMany(event) {
34
+ const actor = buildActorContext(event);
35
+ const { data, meta } = await this.service.getMany(useRequestQuery(event), actor);
36
+ return {
37
+ data,
38
+ meta: {
39
+ ...meta,
40
+ schema: describeQuerySchema(sessionTokenSchema)
41
+ }
42
+ };
43
+ }
44
+ async getOne(id, event) {
45
+ const actor = buildActorContext(event);
46
+ return {
47
+ data: await this.service.getOne(id, actor),
48
+ meta: { schema: describeQuerySchema(sessionTokenSchema, RECORD_QUERY_PARAMETERS) }
49
+ };
50
+ }
51
+ /**
52
+ * Revoke every token matching the query. Requires a target filter, so it
53
+ * cannot degenerate into an unscoped mass revoke.
54
+ *
55
+ * Scoped to one client this is "sign out of this application": the session
56
+ * itself survives, so the other applications riding it stay signed in.
57
+ */ async dropMany(event) {
58
+ const actor = buildActorContext(event);
59
+ const result = await this.service.deleteMany(useRequestQuery(event), actor);
60
+ event.response.status = 202;
61
+ return result;
62
+ }
63
+ async drop(id, event) {
64
+ const actor = buildActorContext(event);
65
+ const entity = await this.service.delete(id, actor);
66
+ event.response.status = 202;
67
+ return {
68
+ data: entity,
69
+ meta: {}
70
+ };
71
+ }
72
+ };
73
+ _ts_decorate([
74
+ DGet("", [ForceLoggedInMiddleware]),
75
+ _ts_param(0, DContext()),
76
+ _ts_metadata("design:type", Function),
77
+ _ts_metadata("design:paramtypes", [typeof IAppEvent === "undefined" ? Object : IAppEvent]),
78
+ _ts_metadata("design:returntype", Promise)
79
+ ], SessionTokenController.prototype, "getMany", null);
80
+ _ts_decorate([
81
+ DGet("/:id", [ForceLoggedInMiddleware]),
82
+ _ts_param(0, DPath("id")),
83
+ _ts_param(1, DContext()),
84
+ _ts_metadata("design:type", Function),
85
+ _ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
86
+ _ts_metadata("design:returntype", Promise)
87
+ ], SessionTokenController.prototype, "getOne", null);
88
+ _ts_decorate([
89
+ DDelete("", [ForceLoggedInMiddleware]),
90
+ _ts_param(0, DContext()),
91
+ _ts_metadata("design:type", Function),
92
+ _ts_metadata("design:paramtypes", [typeof IAppEvent === "undefined" ? Object : IAppEvent]),
93
+ _ts_metadata("design:returntype", Promise)
94
+ ], SessionTokenController.prototype, "dropMany", null);
95
+ _ts_decorate([
96
+ DDelete("/:id", [ForceLoggedInMiddleware]),
97
+ _ts_param(0, DPath("id")),
98
+ _ts_param(1, DContext()),
99
+ _ts_metadata("design:type", Function),
100
+ _ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
101
+ _ts_metadata("design:returntype", Promise)
102
+ ], SessionTokenController.prototype, "drop", null);
103
+ SessionTokenController = _ts_decorate([
104
+ DTags("session-token"),
105
+ DController(["/session-tokens"]),
106
+ _ts_metadata("design:type", Function),
107
+ _ts_metadata("design:paramtypes", [typeof SessionTokenControllerContext === "undefined" ? Object : SessionTokenControllerContext])
108
+ ], SessionTokenController);
109
+ //#endregion
110
+ export { SessionTokenController };
111
+
112
+ //# sourceMappingURL=module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.mjs","names":["DContext","DController","DDelete","DGet","DPath","DTags","useRequestQuery","RECORD_QUERY_PARAMETERS","describeQuerySchema","sessionTokenSchema","ForceLoggedInMiddleware","buildActorContext","SessionTokenController","service","ctx","getMany","event","actor","data","meta","schema","getOne","id","entity","dropMany","result","deleteMany","response","status","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/session-token/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 DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DTags,\n} from '@routup/decorators';\nimport type { SessionToken } from '@authup/core-kit';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type { EntityCollectionResponse, EntityRecordResponse } from '@authup/core-http-kit';\nimport type { ISessionTokenService, SessionTokenDeleteManyResult } from '../../../../../core/index.ts';\nimport {\n RECORD_QUERY_PARAMETERS,\n describeQuerySchema,\n sessionTokenSchema,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\n\nexport type SessionTokenControllerContext = {\n service: ISessionTokenService,\n};\n\n@DTags('session-token')\n@DController(['/session-tokens'])\nexport class SessionTokenController {\n protected service: ISessionTokenService;\n\n constructor(ctx: SessionTokenControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<SessionToken>> {\n const actor = buildActorContext(event);\n const { data, meta } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta: {\n ...meta,\n schema: describeQuerySchema(sessionTokenSchema),\n },\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<SessionToken>> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return {\n data: entity,\n meta: { schema: describeQuerySchema(sessionTokenSchema, RECORD_QUERY_PARAMETERS) },\n };\n }\n\n /**\n * Revoke every token matching the query. Requires a target filter, so it\n * cannot degenerate into an unscoped mass revoke.\n *\n * Scoped to one client this is \"sign out of this application\": the session\n * itself survives, so the other applications riding it stay signed in.\n */\n @DDelete('', [ForceLoggedInMiddleware])\n async dropMany(\n @DContext() event: IAppEvent,\n ): Promise<SessionTokenDeleteManyResult> {\n const actor = buildActorContext(event);\n const result = await this.service.deleteMany(useRequestQuery(event), actor);\n\n event.response.status = 202;\n return result;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<EntityRecordResponse<SessionToken>> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n return { data: entity, meta: {} };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAaY,yBAAb,MAAaA;CACCC;CAEV,YAAYC,KAAoC;EAC5C,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OAC+C;EAC/C,MAAME,QAAQN,kBAAkBK,KAAAA;EAChC,MAAM,EAAEE,MAAMC,SAAS,MAAM,KAAKN,QAAQE,QAAQT,gBAAgBU,KAAAA,GAAQC,KAAAA;EAE1E,OAAO;GACHC;GACAC,MAAM;IACF,GAAGA;IACHC,QAAQZ,oBAAoBC,kBAAAA;GAChC;EACJ;CACJ;CAEA,MACMY,OACF,IACA,OAC2C;EAC3C,MAAMJ,QAAQN,kBAAkBK,KAAAA;EAGhC,OAAO;GACHE,MAAMK,MAHW,KAAKV,QAAQQ,OAAOC,IAAIL,KAAAA;GAIzCE,MAAM,EAAEC,QAAQZ,oBAAoBC,oBAAoBF,uBAAAA,EAAyB;EACrF;CACJ;;;;;;;IASA,MACMiB,SACF,OACqC;EACrC,MAAMP,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMS,SAAS,MAAM,KAAKZ,QAAQa,WAAWpB,gBAAgBU,KAAAA,GAAQC,KAAAA;EAErED,MAAMW,SAASC,SAAS;EACxB,OAAOH;CACX;CAEA,MACMI,KACF,IACA,OAC2C;EAC3C,MAAMZ,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMO,SAAS,MAAM,KAAKV,QAAQiB,OAAOR,IAAIL,KAAAA;EAE7CD,MAAMW,SAASC,SAAS;EACxB,OAAO;GAAEV,MAAMK;GAAQJ,MAAM,CAAC;EAAE;CACpC;AACJ;;CA3DeT,KAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAgBIA,KAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;CAqBDA,QAAAA,IAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;CAWIA,QAAAA,QAAAA,CAAAA,uBAAAA,CAAAA;;;;;;;;;CAxDR,YAAA,CAAA,iBAAA,CAAA"}
@@ -11,6 +11,7 @@ import { ClientScopeRequestValidator } from "./entities/client-scope/utils/valid
11
11
  import { ConsentController } from "./entities/consent/module.mjs";
12
12
  import { EventController } from "./entities/event/module.mjs";
13
13
  import { IdentityProviderController } from "./entities/identity-provider/module.mjs";
14
+ import { IdentityProviderAccountController } from "./entities/identity-provider-account/module.mjs";
14
15
  import { IdentityProviderRoleMappingController } from "./entities/identity-provide-role/module.mjs";
15
16
  import { KeyController } from "./entities/key/module.mjs";
16
17
  import { PermissionController } from "./entities/permission/module.mjs";
@@ -41,6 +42,7 @@ import { PolicyAttributesValidator } from "./entities/policy/utils/attributes-va
41
42
  import { PolicyValidator } from "./entities/policy/utils/validation.mjs";
42
43
  import { ScopeController } from "./entities/scope/module.mjs";
43
44
  import { SessionController } from "./entities/session/module.mjs";
45
+ import { SessionTokenController } from "./entities/session-token/module.mjs";
44
46
  import { TrustAnchorController } from "./entities/trust-anchor/module.mjs";
45
47
  import { UserController } from "./entities/user/module.mjs";
46
48
  import { UserAttributeController } from "./entities/user-attribute/module.mjs";
@@ -51,4 +53,4 @@ import { UserPermissionRequestValidator } from "./entities/user-permission/utils
51
53
  import { UserRoleController } from "./entities/user-role/module.mjs";
52
54
  import { UserRoleRequestValidator } from "./entities/user-role/utils/validation.mjs";
53
55
  import "./entities/index.mjs";
54
- export { AccountController, ActivateController, AuthenticatorChallengeController, AuthorizeController, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, KeyController, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RegisterController, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, StatusController, TokenController, TrustAnchorController, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserInfoController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, getJwkRouteHandler, getJwksRouteHandler };
56
+ export { AccountController, ActivateController, AuthenticatorChallengeController, AuthorizeController, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, IdentityProviderAccountController, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, KeyController, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RegisterController, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, SessionTokenController, StatusController, TokenController, TrustAnchorController, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserInfoController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, getJwkRouteHandler, getJwksRouteHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/authenticator-challenge/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,kCAAkC,EAClC,qCAAqC,EACrC,uCAAuC,EACvC,wCAAwC,EAC3C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACvH,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAQxF,MAAM,MAAM,uCAAuC,GAAG;IAClD,OAAO,EAAE,yBAAyB,CAAC;IACnC,cAAc,EAAE,eAAe,CAAC;IAChC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC5C,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAEa,gCAAgC;IACzC,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAE7C,SAAS,CAAC,cAAc,EAAE,eAAe,CAAC;IAE1C,SAAS,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;gBAEvC,GAAG,EAAE,uCAAuC;IAMxD;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,GAAI,cAAc;IAenD,MAAM,CACI,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,kCAAkC,CAAC;IAcxC,IAAI,CACG,IAAI,EAAE,qCAAqC,EACxC,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAqBvB,MAAM,CACC,IAAI,EAAE,uCAAuC,EAC1C,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wCAAwC,CAAC;CAsEvD"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/workflows/authenticator-challenge/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,kCAAkC,EAClC,qCAAqC,EACrC,uCAAuC,EACvC,wCAAwC,EAC3C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACvH,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAQxF,MAAM,MAAM,uCAAuC,GAAG;IAClD,OAAO,EAAE,yBAAyB,CAAC;IACnC,cAAc,EAAE,eAAe,CAAC;IAChC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC5C,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAEa,gCAAgC;IACzC,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAE7C,SAAS,CAAC,cAAc,EAAE,eAAe,CAAC;IAE1C,SAAS,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;gBAEvC,GAAG,EAAE,uCAAuC;IAMxD;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,GAAI,cAAc;IAenD,MAAM,CACI,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,kCAAkC,CAAC;IAcxC,IAAI,CACG,IAAI,EAAE,qCAAqC,EACxC,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAqBvB,MAAM,CACC,IAAI,EAAE,uCAAuC,EAC1C,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wCAAwC,CAAC;CAuEvD"}
@@ -82,6 +82,7 @@ var AuthenticatorChallengeController = class {
82
82
  ipAddress: getRequestIP(event) ?? null,
83
83
  userAgent: getRequestHeader(event, "user-agent") ?? null,
84
84
  clientId: identity.clientId,
85
+ sessionId: sessionId ?? null,
85
86
  ...session ? { onVerified: async () => {
86
87
  await this.sessionManager.markMfaVerified(session);
87
88
  } } : {}
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DGet","DPost","DTags","IdentityType","UserAuthenticatorKind","BadRequestError","EntityCredentialsInvalidError","UnauthorizedError","getRequestHeader","getRequestIP","useRequestIdentity","useRequestLocale","useRequestMfaLoginTicket","useRequestSessionId","AuthenticatorChallengeController","service","sessionManager","mfaLoginService","ctx","resolveActor","event","identity","ticket","status","type","USER","required","enrollmentRequired","kinds","challenge","id","send","data","Object","values","includes","kind","sendChallenge","locale","success","verify","response","sessionId","payload","session_id","session","findOneById","verified","ipAddress","userAgent","clientId","onVerified","markMfaVerified","token","complete","userName","name"],"sources":["../../../../../../src/adapters/http/controllers/workflows/authenticator-challenge/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 DGet,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport { IdentityType, UserAuthenticatorKind } from '@authup/core-kit';\nimport { BadRequestError, EntityCredentialsInvalidError, UnauthorizedError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\nimport { getRequestHeader, getRequestIP } from 'routup';\nimport type {\n UserAuthenticatorChallengeResponse,\n UserAuthenticatorChallengeSendPayload,\n UserAuthenticatorChallengeVerifyPayload,\n UserAuthenticatorChallengeVerifyResponse,\n} from '@authup/core-http-kit';\nimport type { IOAuth2MfaLoginService, ISessionManager, IUserAuthenticatorService } from '../../../../../core/index.ts';\nimport type { RequestIdentity, RequestMfaLoginTicket } from '../../../request/index.ts';\nimport {\n useRequestIdentity,\n useRequestLocale,\n useRequestMfaLoginTicket,\n useRequestSessionId,\n} from '../../../request/index.ts';\n\nexport type AuthenticatorChallengeControllerContext = {\n service: IUserAuthenticatorService,\n sessionManager: ISessionManager,\n mfaLoginService?: IOAuth2MfaLoginService,\n};\n\ntype ChallengeActor = {\n identity: RequestIdentity,\n ticket: RequestMfaLoginTicket | null,\n};\n\n/**\n * Login-time challenge surface, scoped to the CURRENT bearer identity.\n * GET reports whether (and how) the caller must present a second factor;\n * POST verifies a factor and stamps mfa_at onto the backing session so\n * the /authorize backstop passes.\n *\n * Besides a regular access bearer, these routes accept the \"MFA-pending\"\n * login ticket (kind: mfa_token, issue #3242) the password grant issues\n * for factor kinds that cannot ride the single grant POST (email /\n * WebAuthn). A ticket-authenticated verify additionally completes the\n * login: the response carries the full token grant for the now-MFA'd\n * pending session.\n */\n@DTags('userAuthenticator')\n@DController('/authenticators/challenge')\nexport class AuthenticatorChallengeController {\n protected service: IUserAuthenticatorService;\n\n protected sessionManager: ISessionManager;\n\n protected mfaLoginService?: IOAuth2MfaLoginService;\n\n constructor(ctx: AuthenticatorChallengeControllerContext) {\n this.service = ctx.service;\n this.sessionManager = ctx.sessionManager;\n this.mfaLoginService = ctx.mfaLoginService;\n }\n\n /**\n * Resolve the acting subject: the regular request identity (access\n * bearer — the middleware never sets it for a ticket) or the stashed\n * MFA-pending ticket. Anything else is unauthorized — the previous\n * ForceLoggedInMiddleware contract, widened by exactly one bearer kind.\n */\n protected resolveActor(event: IAppEvent) : ChallengeActor {\n const identity = useRequestIdentity(event);\n if (identity) {\n return { identity, ticket: null };\n }\n\n const ticket = useRequestMfaLoginTicket(event);\n if (ticket) {\n return { identity: ticket.identity, ticket };\n }\n\n throw new UnauthorizedError();\n }\n\n @DGet('')\n async status(\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticatorChallengeResponse> {\n const { identity } = this.resolveActor(event);\n if (identity.type !== IdentityType.USER) {\n return {\n required: false,\n enrollmentRequired: false,\n kinds: [],\n };\n }\n\n return this.service.challenge(identity.id);\n }\n\n @DPost('/send')\n async send(\n @DBody() data: UserAuthenticatorChallengeSendPayload,\n @DContext() event: IAppEvent,\n ): Promise<{ success: true }> {\n const { identity } = this.resolveActor(event);\n if (identity.type !== IdentityType.USER) {\n throw new BadRequestError('Only user identities can request a challenge.');\n }\n\n if (\n !data ||\n !Object.values(UserAuthenticatorKind).includes(data.kind as UserAuthenticatorKind)\n ) {\n throw new BadRequestError('A kind must be provided.');\n }\n\n await this.service.sendChallenge(identity.id, data.kind, { locale: useRequestLocale(event) });\n\n // uniform 200 regardless of whether a code was actually mailed —\n // no enrollment-status oracle for the caller.\n return { success: true };\n }\n\n @DPost('')\n async verify(\n @DBody() data: UserAuthenticatorChallengeVerifyPayload,\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticatorChallengeVerifyResponse> {\n const { identity, ticket } = this.resolveActor(event);\n if (identity.type !== IdentityType.USER) {\n throw new BadRequestError('Only user identities can complete a challenge.');\n }\n\n if (\n !data ||\n typeof data.response !== 'string' ||\n !data.response ||\n !Object.values(UserAuthenticatorKind).includes(data.kind as UserAuthenticatorKind)\n ) {\n throw new BadRequestError('A kind and response must be provided.');\n }\n\n // Bind the proof to the backing session — the /authorize backstop\n // reads session.mfa_at. The session id is server-derived (stashed\n // by the authorization middleware / carried by the verified ticket),\n // never client input. The stamp runs INSIDE the verify unit of work\n // (before the code consumption persists), so a stamp failure never\n // burns a single-use code.\n const sessionId = ticket ?\n ticket.payload.session_id :\n useRequestSessionId(event);\n const session = sessionId ?\n await this.sessionManager.findOneById(sessionId) :\n null;\n\n // a ticket references exactly one pending session — without it\n // (swept / expired mid-flight) the login can not complete.\n if (ticket && !session) {\n throw new UnauthorizedError();\n }\n\n const verified = await this.service.verify(\n identity.id,\n {\n kind: data.kind,\n response: data.response,\n },\n {\n ipAddress: getRequestIP(event) ?? null,\n userAgent: getRequestHeader(event, 'user-agent') ?? null,\n clientId: identity.clientId,\n ...(session ? {\n onVerified: async () => {\n await this.sessionManager.markMfaVerified(session);\n },\n } : {}),\n },\n );\n if (!verified) {\n throw new EntityCredentialsInvalidError();\n }\n\n // Ticket flow: the factor is verified and mfa_at stamped — complete\n // the login by minting the full grant for the pending session and\n // consuming the ticket (single use).\n if (ticket && session && this.mfaLoginService) {\n const token = await this.mfaLoginService.complete({\n session,\n ticket: ticket.payload,\n userName: identity.data.name,\n });\n\n return { verified: true, token };\n }\n\n return { verified: true };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,IAAaiB,mCAAb,MAAaA;CACCC;CAEAC;CAEAC;CAEV,YAAYC,KAA8C;EACtD,KAAKH,UAAUG,IAAIH;EACnB,KAAKC,iBAAiBE,IAAIF;EAC1B,KAAKC,kBAAkBC,IAAID;CAC/B;;;;;;IAQA,aAAuBG,OAAmC;EACtD,MAAMC,WAAWX,mBAAmBU,KAAAA;EACpC,IAAIC,UACA,OAAO;GAAEA;GAAUC,QAAQ;EAAK;EAGpC,MAAMA,SAASV,yBAAyBQ,KAAAA;EACxC,IAAIE,QACA,OAAO;GAAED,UAAUC,OAAOD;GAAUC;EAAO;EAG/C,MAAM,IAAIf,kBAAAA;CACd;CAEA,MACMgB,OACF,OAC2C;EAC3C,MAAM,EAAEF,aAAa,KAAKF,aAAaC,KAAAA;EACvC,IAAIC,SAASG,SAASrB,aAAasB,MAC/B,OAAO;GACHC,UAAU;GACVC,oBAAoB;GACpBC,OAAO,CAAA;EACX;EAGJ,OAAO,KAAKb,QAAQc,UAAUR,SAASS,EAAE;CAC7C;CAEA,MACMC,KACF,MACA,OAC0B;EAC1B,MAAM,EAAEV,aAAa,KAAKF,aAAaC,KAAAA;EACvC,IAAIC,SAASG,SAASrB,aAAasB,MAC/B,MAAM,IAAIpB,gBAAgB,+CAAA;EAG9B,IACI,CAAC2B,QACD,CAACC,OAAOC,OAAO9B,qBAAAA,CAAAA,CAAuB+B,SAASH,KAAKI,IAAI,GAExD,MAAM,IAAI/B,gBAAgB,0BAAA;EAG9B,MAAM,KAAKU,QAAQsB,cAAchB,SAASS,IAAIE,KAAKI,MAAM,EAAEE,QAAQ3B,iBAAiBS,KAAAA,EAAO,CAAA;EAI3F,OAAO,EAAEmB,SAAS,KAAK;CAC3B;CAEA,MACMC,OACF,MACA,OACiD;EACjD,MAAM,EAAEnB,UAAUC,WAAW,KAAKH,aAAaC,KAAAA;EAC/C,IAAIC,SAASG,SAASrB,aAAasB,MAC/B,MAAM,IAAIpB,gBAAgB,gDAAA;EAG9B,IACI,CAAC2B,QACD,OAAOA,KAAKS,aAAa,YACzB,CAACT,KAAKS,YACN,CAACR,OAAOC,OAAO9B,qBAAAA,CAAAA,CAAuB+B,SAASH,KAAKI,IAAI,GAExD,MAAM,IAAI/B,gBAAgB,uCAAA;EAS9B,MAAMqC,YAAYpB,SACdA,OAAOqB,QAAQC,aACf/B,oBAAoBO,KAAAA;EACxB,MAAMyB,UAAUH,YACZ,MAAM,KAAK1B,eAAe8B,YAAYJ,SAAAA,IACtC;EAIJ,IAAIpB,UAAU,CAACuB,SACX,MAAM,IAAItC,kBAAAA;EAoBd,IAAI,CAACwC,MAjBkB,KAAKhC,QAAQyB,OAChCnB,SAASS,IACT;GACIM,MAAMJ,KAAKI;GACXK,UAAUT,KAAKS;EACnB,GACA;GACIO,WAAWvC,aAAaW,KAAAA,KAAU;GAClC6B,WAAWzC,iBAAiBY,OAAO,YAAA,KAAiB;GACpD8B,UAAU7B,SAAS6B;GACnB,GAAIL,UAAU,EACVM,YAAY,YAAA;IACR,MAAM,KAAKnC,eAAeoC,gBAAgBP,OAAAA;GAC9C,EACJ,IAAI,CAAC;EACT,CAAA,GAGA,MAAM,IAAIvC,8BAAAA;EAMd,IAAIgB,UAAUuB,WAAW,KAAK5B,iBAO1B,OAAO;GAAE8B,UAAU;GAAMM,OAAAA,MANL,KAAKpC,gBAAgBqC,SAAS;IAC9CT;IACAvB,QAAQA,OAAOqB;IACfY,UAAUlC,SAASW,KAAKwB;GAC5B,CAAA;EAE+B;EAGnC,OAAO,EAAET,UAAU,KAAK;CAC5B;AACJ"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DGet","DPost","DTags","IdentityType","UserAuthenticatorKind","BadRequestError","EntityCredentialsInvalidError","UnauthorizedError","getRequestHeader","getRequestIP","useRequestIdentity","useRequestLocale","useRequestMfaLoginTicket","useRequestSessionId","AuthenticatorChallengeController","service","sessionManager","mfaLoginService","ctx","resolveActor","event","identity","ticket","status","type","USER","required","enrollmentRequired","kinds","challenge","id","send","data","Object","values","includes","kind","sendChallenge","locale","success","verify","response","sessionId","payload","session_id","session","findOneById","verified","ipAddress","userAgent","clientId","onVerified","markMfaVerified","token","complete","userName","name"],"sources":["../../../../../../src/adapters/http/controllers/workflows/authenticator-challenge/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 DGet,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport { IdentityType, UserAuthenticatorKind } from '@authup/core-kit';\nimport { BadRequestError, EntityCredentialsInvalidError, UnauthorizedError } from '@authup/errors';\nimport type { IAppEvent } from 'routup';\nimport { getRequestHeader, getRequestIP } from 'routup';\nimport type {\n UserAuthenticatorChallengeResponse,\n UserAuthenticatorChallengeSendPayload,\n UserAuthenticatorChallengeVerifyPayload,\n UserAuthenticatorChallengeVerifyResponse,\n} from '@authup/core-http-kit';\nimport type { IOAuth2MfaLoginService, ISessionManager, IUserAuthenticatorService } from '../../../../../core/index.ts';\nimport type { RequestIdentity, RequestMfaLoginTicket } from '../../../request/index.ts';\nimport {\n useRequestIdentity,\n useRequestLocale,\n useRequestMfaLoginTicket,\n useRequestSessionId,\n} from '../../../request/index.ts';\n\nexport type AuthenticatorChallengeControllerContext = {\n service: IUserAuthenticatorService,\n sessionManager: ISessionManager,\n mfaLoginService?: IOAuth2MfaLoginService,\n};\n\ntype ChallengeActor = {\n identity: RequestIdentity,\n ticket: RequestMfaLoginTicket | null,\n};\n\n/**\n * Login-time challenge surface, scoped to the CURRENT bearer identity.\n * GET reports whether (and how) the caller must present a second factor;\n * POST verifies a factor and stamps mfa_at onto the backing session so\n * the /authorize backstop passes.\n *\n * Besides a regular access bearer, these routes accept the \"MFA-pending\"\n * login ticket (kind: mfa_token, issue #3242) the password grant issues\n * for factor kinds that cannot ride the single grant POST (email /\n * WebAuthn). A ticket-authenticated verify additionally completes the\n * login: the response carries the full token grant for the now-MFA'd\n * pending session.\n */\n@DTags('userAuthenticator')\n@DController('/authenticators/challenge')\nexport class AuthenticatorChallengeController {\n protected service: IUserAuthenticatorService;\n\n protected sessionManager: ISessionManager;\n\n protected mfaLoginService?: IOAuth2MfaLoginService;\n\n constructor(ctx: AuthenticatorChallengeControllerContext) {\n this.service = ctx.service;\n this.sessionManager = ctx.sessionManager;\n this.mfaLoginService = ctx.mfaLoginService;\n }\n\n /**\n * Resolve the acting subject: the regular request identity (access\n * bearer — the middleware never sets it for a ticket) or the stashed\n * MFA-pending ticket. Anything else is unauthorized — the previous\n * ForceLoggedInMiddleware contract, widened by exactly one bearer kind.\n */\n protected resolveActor(event: IAppEvent) : ChallengeActor {\n const identity = useRequestIdentity(event);\n if (identity) {\n return { identity, ticket: null };\n }\n\n const ticket = useRequestMfaLoginTicket(event);\n if (ticket) {\n return { identity: ticket.identity, ticket };\n }\n\n throw new UnauthorizedError();\n }\n\n @DGet('')\n async status(\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticatorChallengeResponse> {\n const { identity } = this.resolveActor(event);\n if (identity.type !== IdentityType.USER) {\n return {\n required: false,\n enrollmentRequired: false,\n kinds: [],\n };\n }\n\n return this.service.challenge(identity.id);\n }\n\n @DPost('/send')\n async send(\n @DBody() data: UserAuthenticatorChallengeSendPayload,\n @DContext() event: IAppEvent,\n ): Promise<{ success: true }> {\n const { identity } = this.resolveActor(event);\n if (identity.type !== IdentityType.USER) {\n throw new BadRequestError('Only user identities can request a challenge.');\n }\n\n if (\n !data ||\n !Object.values(UserAuthenticatorKind).includes(data.kind as UserAuthenticatorKind)\n ) {\n throw new BadRequestError('A kind must be provided.');\n }\n\n await this.service.sendChallenge(identity.id, data.kind, { locale: useRequestLocale(event) });\n\n // uniform 200 regardless of whether a code was actually mailed —\n // no enrollment-status oracle for the caller.\n return { success: true };\n }\n\n @DPost('')\n async verify(\n @DBody() data: UserAuthenticatorChallengeVerifyPayload,\n @DContext() event: IAppEvent,\n ): Promise<UserAuthenticatorChallengeVerifyResponse> {\n const { identity, ticket } = this.resolveActor(event);\n if (identity.type !== IdentityType.USER) {\n throw new BadRequestError('Only user identities can complete a challenge.');\n }\n\n if (\n !data ||\n typeof data.response !== 'string' ||\n !data.response ||\n !Object.values(UserAuthenticatorKind).includes(data.kind as UserAuthenticatorKind)\n ) {\n throw new BadRequestError('A kind and response must be provided.');\n }\n\n // Bind the proof to the backing session — the /authorize backstop\n // reads session.mfa_at. The session id is server-derived (stashed\n // by the authorization middleware / carried by the verified ticket),\n // never client input. The stamp runs INSIDE the verify unit of work\n // (before the code consumption persists), so a stamp failure never\n // burns a single-use code.\n const sessionId = ticket ?\n ticket.payload.session_id :\n useRequestSessionId(event);\n const session = sessionId ?\n await this.sessionManager.findOneById(sessionId) :\n null;\n\n // a ticket references exactly one pending session — without it\n // (swept / expired mid-flight) the login can not complete.\n if (ticket && !session) {\n throw new UnauthorizedError();\n }\n\n const verified = await this.service.verify(\n identity.id,\n {\n kind: data.kind,\n response: data.response,\n },\n {\n ipAddress: getRequestIP(event) ?? null,\n userAgent: getRequestHeader(event, 'user-agent') ?? null,\n clientId: identity.clientId,\n sessionId: sessionId ?? null,\n ...(session ? {\n onVerified: async () => {\n await this.sessionManager.markMfaVerified(session);\n },\n } : {}),\n },\n );\n if (!verified) {\n throw new EntityCredentialsInvalidError();\n }\n\n // Ticket flow: the factor is verified and mfa_at stamped — complete\n // the login by minting the full grant for the pending session and\n // consuming the ticket (single use).\n if (ticket && session && this.mfaLoginService) {\n const token = await this.mfaLoginService.complete({\n session,\n ticket: ticket.payload,\n userName: identity.data.name,\n });\n\n return { verified: true, token };\n }\n\n return { verified: true };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,IAAaiB,mCAAb,MAAaA;CACCC;CAEAC;CAEAC;CAEV,YAAYC,KAA8C;EACtD,KAAKH,UAAUG,IAAIH;EACnB,KAAKC,iBAAiBE,IAAIF;EAC1B,KAAKC,kBAAkBC,IAAID;CAC/B;;;;;;IAQA,aAAuBG,OAAmC;EACtD,MAAMC,WAAWX,mBAAmBU,KAAAA;EACpC,IAAIC,UACA,OAAO;GAAEA;GAAUC,QAAQ;EAAK;EAGpC,MAAMA,SAASV,yBAAyBQ,KAAAA;EACxC,IAAIE,QACA,OAAO;GAAED,UAAUC,OAAOD;GAAUC;EAAO;EAG/C,MAAM,IAAIf,kBAAAA;CACd;CAEA,MACMgB,OACF,OAC2C;EAC3C,MAAM,EAAEF,aAAa,KAAKF,aAAaC,KAAAA;EACvC,IAAIC,SAASG,SAASrB,aAAasB,MAC/B,OAAO;GACHC,UAAU;GACVC,oBAAoB;GACpBC,OAAO,CAAA;EACX;EAGJ,OAAO,KAAKb,QAAQc,UAAUR,SAASS,EAAE;CAC7C;CAEA,MACMC,KACF,MACA,OAC0B;EAC1B,MAAM,EAAEV,aAAa,KAAKF,aAAaC,KAAAA;EACvC,IAAIC,SAASG,SAASrB,aAAasB,MAC/B,MAAM,IAAIpB,gBAAgB,+CAAA;EAG9B,IACI,CAAC2B,QACD,CAACC,OAAOC,OAAO9B,qBAAAA,CAAAA,CAAuB+B,SAASH,KAAKI,IAAI,GAExD,MAAM,IAAI/B,gBAAgB,0BAAA;EAG9B,MAAM,KAAKU,QAAQsB,cAAchB,SAASS,IAAIE,KAAKI,MAAM,EAAEE,QAAQ3B,iBAAiBS,KAAAA,EAAO,CAAA;EAI3F,OAAO,EAAEmB,SAAS,KAAK;CAC3B;CAEA,MACMC,OACF,MACA,OACiD;EACjD,MAAM,EAAEnB,UAAUC,WAAW,KAAKH,aAAaC,KAAAA;EAC/C,IAAIC,SAASG,SAASrB,aAAasB,MAC/B,MAAM,IAAIpB,gBAAgB,gDAAA;EAG9B,IACI,CAAC2B,QACD,OAAOA,KAAKS,aAAa,YACzB,CAACT,KAAKS,YACN,CAACR,OAAOC,OAAO9B,qBAAAA,CAAAA,CAAuB+B,SAASH,KAAKI,IAAI,GAExD,MAAM,IAAI/B,gBAAgB,uCAAA;EAS9B,MAAMqC,YAAYpB,SACdA,OAAOqB,QAAQC,aACf/B,oBAAoBO,KAAAA;EACxB,MAAMyB,UAAUH,YACZ,MAAM,KAAK1B,eAAe8B,YAAYJ,SAAAA,IACtC;EAIJ,IAAIpB,UAAU,CAACuB,SACX,MAAM,IAAItC,kBAAAA;EAqBd,IAAI,CAACwC,MAlBkB,KAAKhC,QAAQyB,OAChCnB,SAASS,IACT;GACIM,MAAMJ,KAAKI;GACXK,UAAUT,KAAKS;EACnB,GACA;GACIO,WAAWvC,aAAaW,KAAAA,KAAU;GAClC6B,WAAWzC,iBAAiBY,OAAO,YAAA,KAAiB;GACpD8B,UAAU7B,SAAS6B;GACnBR,WAAWA,aAAa;GACxB,GAAIG,UAAU,EACVM,YAAY,YAAA;IACR,MAAM,KAAKnC,eAAeoC,gBAAgBP,OAAAA;GAC9C,EACJ,IAAI,CAAC;EACT,CAAA,GAGA,MAAM,IAAIvC,8BAAAA;EAMd,IAAIgB,UAAUuB,WAAW,KAAK5B,iBAO1B,OAAO;GAAE8B,UAAU;GAAMM,OAAAA,MANL,KAAKpC,gBAAgBqC,SAAS;IAC9CT;IACAvB,QAAQA,OAAOqB;IACfY,UAAUlC,SAASW,KAAKwB;GAC5B,CAAA;EAE+B;EAGnC,OAAO,EAAET,UAAU,KAAK;CAC5B;AACJ"}
@@ -57,6 +57,7 @@ import { ClientScopeRequestValidator } from "./controllers/entities/client-scope
57
57
  import { ConsentController } from "./controllers/entities/consent/module.mjs";
58
58
  import { EventController } from "./controllers/entities/event/module.mjs";
59
59
  import { IdentityProviderController } from "./controllers/entities/identity-provider/module.mjs";
60
+ import { IdentityProviderAccountController } from "./controllers/entities/identity-provider-account/module.mjs";
60
61
  import { IdentityProviderRoleMappingController } from "./controllers/entities/identity-provide-role/module.mjs";
61
62
  import { KeyController } from "./controllers/entities/key/module.mjs";
62
63
  import { PermissionController } from "./controllers/entities/permission/module.mjs";
@@ -86,6 +87,7 @@ import { PolicyAttributesValidator } from "./controllers/entities/policy/utils/a
86
87
  import { PolicyValidator } from "./controllers/entities/policy/utils/validation.mjs";
87
88
  import { ScopeController } from "./controllers/entities/scope/module.mjs";
88
89
  import { SessionController } from "./controllers/entities/session/module.mjs";
90
+ import { SessionTokenController } from "./controllers/entities/session-token/module.mjs";
89
91
  import { TrustAnchorController } from "./controllers/entities/trust-anchor/module.mjs";
90
92
  import { UserController } from "./controllers/entities/user/module.mjs";
91
93
  import { UserAttributeController } from "./controllers/entities/user-attribute/module.mjs";
@@ -96,4 +98,4 @@ import { UserPermissionRequestValidator } from "./controllers/entities/user-perm
96
98
  import { UserRoleController } from "./controllers/entities/user-role/module.mjs";
97
99
  import { UserRoleRequestValidator } from "./controllers/entities/user-role/utils/validation.mjs";
98
100
  import "./controllers/index.mjs";
99
- export { AccountController, ActivateController, AuthenticatorChallengeController, AuthorizationMiddleware, AuthorizeController, CERTIFICATE_SOURCES, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, KeyController, LOCALE_COOKIE, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RealmResolverMiddleware, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, StatusController, THEME_STORE_KEY, TokenController, TrustAnchorController, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserInfoController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createRequestEventContextMiddleware, createRouteTemplateNormalizePath, createSwaggerMiddleware, extractClientCertificateEvidence, extractClientCredentialsFromRequest, extractOAuth2ClientCertificateEvidence, getBodyRealmID, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, readFromLocations, readRealmHint, readStringField, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerThemeMiddleware, registerUIHttpClientMiddleware, runWithRequestEventContext, sanitizeRelativeRedirect, setRequestIdentity, setRequestMfaLoginTicket, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestEventContext, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestTheme, useRequestToken };
101
+ export { AccountController, ActivateController, AuthenticatorChallengeController, AuthorizationMiddleware, AuthorizeController, CERTIFICATE_SOURCES, ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, HTTPClientCredentialsGrant, HTTPOAuth2AuthorizeGrant, HTTPOAuth2Authorizer, HTTPOAuth2IdentityGrantType, HTTPOAuth2RefreshTokenGrant, HTTPPasswordGrant, IdentityProviderAccountController, IdentityProviderController, IdentityProviderRoleMappingController, JwkController, KeyController, LOCALE_COOKIE, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RealmResolverMiddleware, RegisterController, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, SessionTokenController, StatusController, THEME_STORE_KEY, TokenController, TrustAnchorController, UI_HTTP_CLIENT_FACTORY_STORE_KEY, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserInfoController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator, VITE_SERVER_STORE_KEY, applyRouteRealmIDToBody, buildActorContext, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createRequestEventContextMiddleware, createRouteTemplateNormalizePath, createSwaggerMiddleware, extractClientCertificateEvidence, extractClientCredentialsFromRequest, extractOAuth2ClientCertificateEvidence, getBodyRealmID, getJwkRouteHandler, getJwksRouteHandler, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, guessOauth2GrantTypeByRequest, readFromLocations, readRealmHint, readStringField, redactSensitiveURLParams, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware, registerThemeMiddleware, registerUIHttpClientMiddleware, runWithRequestEventContext, sanitizeRelativeRedirect, setRequestIdentity, setRequestMfaLoginTicket, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestEventContext, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestTheme, useRequestToken };
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIjD,KAAK,sBAAsB,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE,sBAA2B,QAiBxF"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIjD,KAAK,sBAAsB,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE,sBAA2B,QAyBxF"}
@@ -1,18 +1,19 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- import { sanitizeError } from "../../../../utils/error.mjs";
4
+ import { describeError, sanitizeError } from "../../../../utils/error.mjs";
5
5
  import "../../../../utils/index.mjs";
6
6
  import { httpStatusFromCode, serializeError } from "@authup/errors";
7
7
  import { defineErrorHandler } from "routup";
8
8
  //#region src/adapters/http/middleware/built-in/error.ts
9
9
  function registerErrorMiddleware(router, options = {}) {
10
10
  router.use(defineErrorHandler((error, event) => {
11
- const next = sanitizeError(error.cause ?? error);
11
+ const original = error.cause ?? error;
12
+ const next = sanitizeError(original);
12
13
  const status = httpStatusFromCode(next.code);
13
14
  const payload = serializeError(next);
14
15
  if (status >= 500) {
15
- if (options.logger) options.logger.error(next);
16
+ if (options.logger) options.logger.error(describeError(original));
16
17
  payload.message = "An internal server error occurred.";
17
18
  }
18
19
  event.response.status = status;
@@ -1 +1 @@
1
- {"version":3,"file":"error.mjs","names":["defineErrorHandler","httpStatusFromCode","serializeError","sanitizeError","registerErrorMiddleware","router","options","use","error","event","next","cause","status","code","payload","logger","message","response"],"sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { App } from 'routup';\nimport { defineErrorHandler } from 'routup';\nimport type { Logger } from '@authup/server-kit';\nimport { httpStatusFromCode, serializeError } from '@authup/errors';\nimport { sanitizeError } from '../../../../utils/index.ts';\n\ntype ErrorMiddlewareOptions = {\n logger?: Logger\n};\n\nexport function registerErrorMiddleware(router: App, options: ErrorMiddlewareOptions = {}) {\n router.use(defineErrorHandler((error, event) => {\n const next = sanitizeError(error.cause ?? error);\n const status = httpStatusFromCode(next.code);\n\n const payload = serializeError(next);\n\n if (status >= 500) {\n if (options.logger) {\n options.logger.error(next);\n }\n payload.message = 'An internal server error occurred.';\n }\n\n event.response.status = status;\n return payload;\n }));\n}\n"],"mappings":";;;;;;;;AAiBA,SAAgBI,wBAAwBC,QAAaC,UAAkC,CAAC,GAAC;CACrFD,OAAOE,IAAIP,oBAAoBQ,OAAOC,UAAAA;EAClC,MAAMC,OAAOP,cAAcK,MAAMG,SAASH,KAAAA;EAC1C,MAAMI,SAASX,mBAAmBS,KAAKG,IAAI;EAE3C,MAAMC,UAAUZ,eAAeQ,IAAAA;EAE/B,IAAIE,UAAU,KAAK;GACf,IAAIN,QAAQS,QACRT,QAAQS,OAAOP,MAAME,IAAAA;GAEzBI,QAAQE,UAAU;EACtB;EAEAP,MAAMQ,SAASL,SAASA;EACxB,OAAOE;CACX,CAAA,CAAA;AACJ"}
1
+ {"version":3,"file":"error.mjs","names":["defineErrorHandler","httpStatusFromCode","serializeError","describeError","sanitizeError","registerErrorMiddleware","router","options","use","error","event","original","cause","next","status","code","payload","logger","message","response"],"sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { App } from 'routup';\nimport { defineErrorHandler } from 'routup';\nimport type { Logger } from '@authup/server-kit';\nimport { httpStatusFromCode, serializeError } from '@authup/errors';\nimport { describeError, sanitizeError } from '../../../../utils/index.ts';\n\ntype ErrorMiddlewareOptions = {\n logger?: Logger\n};\n\nexport function registerErrorMiddleware(router: App, options: ErrorMiddlewareOptions = {}) {\n router.use(defineErrorHandler((error, event) => {\n // routup wraps whatever a handler threw into an AppError carrying it\n // as `cause`, so this is the error as it was actually raised.\n const original = error.cause ?? error;\n\n const next = sanitizeError(original);\n const status = httpStatusFromCode(next.code);\n\n const payload = serializeError(next);\n\n if (status >= 500) {\n if (options.logger) {\n // The ORIGINAL error, never the sanitized copy. Sanitizing\n // discards the transport reason and the upstream response\n // body on purpose, and those are the only things that make\n // an outbound failure diagnosable.\n options.logger.error(describeError(original));\n }\n payload.message = 'An internal server error occurred.';\n }\n\n event.response.status = status;\n return payload;\n }));\n}\n"],"mappings":";;;;;;;;AAiBA,SAAgBK,wBAAwBC,QAAaC,UAAkC,CAAC,GAAC;CACrFD,OAAOE,IAAIR,oBAAoBS,OAAOC,UAAAA;EAGlC,MAAMC,WAAWF,MAAMG,SAASH;EAEhC,MAAMI,OAAOT,cAAcO,QAAAA;EAC3B,MAAMG,SAASb,mBAAmBY,KAAKE,IAAI;EAE3C,MAAMC,UAAUd,eAAeW,IAAAA;EAE/B,IAAIC,UAAU,KAAK;GACf,IAAIP,QAAQU,QAKRV,QAAQU,OAAOR,MAAMN,cAAcQ,QAAAA,CAAAA;GAEvCK,QAAQE,UAAU;EACtB;EAEAR,MAAMS,SAASL,SAASA;EACxB,OAAOE;CACX,CAAA,CAAA;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-context.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/event-context.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,CAAC,EACxC,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,MAAM,CAAC,GACZ,CAAC,CAEH;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,SAAS,CAExE;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,IAAK,OAAO,CAgB9D"}
1
+ {"version":3,"file":"event-context.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/event-context.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,CAAC,EACxC,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,MAAM,CAAC,GACZ,CAAC,CAEH;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,SAAS,CAExE;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,IAAK,OAAO,CAiB9D"}
@@ -2,6 +2,7 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { useRequestIdentity } from "./helpers/identity.mjs";
5
+ import { useRequestSessionId } from "./helpers/session-id.mjs";
5
6
  import "./helpers/index.mjs";
6
7
  import { AsyncLocalStorage } from "node:async_hooks";
7
8
  import { defineCoreHandler, getRequestHeader, getRequestIP } from "routup";
@@ -24,6 +25,7 @@ function useRequestEventContext() {
24
25
  actorType: identity ? identity.type : null,
25
26
  actorId: identity ? identity.id : null,
26
27
  actorName: identity ? identity.data.name ?? null : null,
28
+ sessionId: useRequestSessionId(event) ?? null,
27
29
  requestPath: event.path,
28
30
  requestMethod: event.method,
29
31
  requestIpAddress: getRequestIP(event) ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"event-context.mjs","names":["AsyncLocalStorage","defineCoreHandler","getRequestHeader","getRequestIP","useRequestIdentity","storage","runWithRequestEventContext","ctx","fn","run","useRequestEventContext","getStore","createRequestEventContextMiddleware","event","identity","actorType","type","actorId","id","actorName","data","name","requestPath","path","requestMethod","method","requestIpAddress","requestUserAgent","next"],"sources":["../../../../src/adapters/http/request/event-context.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 { AsyncLocalStorage } from 'node:async_hooks';\nimport { defineCoreHandler, getRequestHeader, getRequestIP } from 'routup';\nimport type { Handler } from 'routup';\nimport type { EventRequestContext } from '../../../core/index.ts';\nimport { useRequestIdentity } from './helpers/index.ts';\n\n/**\n * Actor + request attribution snapshot for entity-CRUD audit rows, carried\n * across the request's async continuation via AsyncLocalStorage so the\n * database subscribers (which have no request handle) can attribute their\n * writes. Writes outside HTTP (provisioning, CLI, cron) have no store —\n * the getter returns undefined, the correct \"system\" semantics.\n */\nexport type RequestEventContext = EventRequestContext;\n\nconst storage = new AsyncLocalStorage<RequestEventContext>();\n\nexport function runWithRequestEventContext<R>(\n ctx: RequestEventContext,\n fn: () => R,\n): R {\n return storage.run(ctx, fn);\n}\n\nexport function useRequestEventContext(): RequestEventContext | undefined {\n return storage.getStore();\n}\n\n/**\n * Builds the {@link RequestEventContext} from the routup event and wraps the\n * downstream pipeline in it. Must be mounted AFTER the authorization\n * middleware — the identity has to be resolved for actor attribution.\n */\nexport function createRequestEventContextMiddleware() : Handler {\n return defineCoreHandler(async (event) => {\n const identity = useRequestIdentity(event);\n\n const ctx : RequestEventContext = {\n actorType: identity ? identity.type : null,\n actorId: identity ? identity.id : null,\n actorName: identity ? identity.data.name ?? null : null,\n requestPath: event.path,\n requestMethod: event.method,\n requestIpAddress: getRequestIP(event) ?? null,\n requestUserAgent: getRequestHeader(event, 'user-agent') ?? null,\n };\n\n return runWithRequestEventContext(ctx, () => event.next());\n });\n}\n"],"mappings":";;;;;;;;AAsBA,MAAMK,UAAU,IAAIL,kBAAAA;AAEpB,SAAgBM,2BACZC,KACAC,IAAW;CAEX,OAAOH,QAAQI,IAAIF,KAAKC,EAAAA;AAC5B;AAEA,SAAgBE,yBAAAA;CACZ,OAAOL,QAAQM,SAAQ;AAC3B;;;;;GAOA,SAAgBC,sCAAAA;CACZ,OAAOX,kBAAkB,OAAOY,UAAAA;EAC5B,MAAMC,WAAWV,mBAAmBS,KAAAA;EAYpC,OAAOP,2BAA2BC;GAT9BQ,WAAWD,WAAWA,SAASE,OAAO;GACtCC,SAASH,WAAWA,SAASI,KAAK;GAClCC,WAAWL,WAAWA,SAASM,KAAKC,QAAQ,OAAO;GACnDC,aAAaT,MAAMU;GACnBC,eAAeX,MAAMY;GACrBC,kBAAkBvB,aAAaU,KAAAA,KAAU;GACzCc,kBAAkBzB,iBAAiBW,OAAO,YAAA,KAAiB;EAG7BN,SAAWM,MAAMe,KAAI,CAAA;CAC3D,CAAA;AACJ"}
1
+ {"version":3,"file":"event-context.mjs","names":["AsyncLocalStorage","defineCoreHandler","getRequestHeader","getRequestIP","useRequestIdentity","useRequestSessionId","storage","runWithRequestEventContext","ctx","fn","run","useRequestEventContext","getStore","createRequestEventContextMiddleware","event","identity","actorType","type","actorId","id","actorName","data","name","sessionId","requestPath","path","requestMethod","method","requestIpAddress","requestUserAgent","next"],"sources":["../../../../src/adapters/http/request/event-context.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 { AsyncLocalStorage } from 'node:async_hooks';\nimport { defineCoreHandler, getRequestHeader, getRequestIP } from 'routup';\nimport type { Handler } from 'routup';\nimport type { EventRequestContext } from '../../../core/index.ts';\nimport { useRequestIdentity, useRequestSessionId } from './helpers/index.ts';\n\n/**\n * Actor + request attribution snapshot for entity-CRUD audit rows, carried\n * across the request's async continuation via AsyncLocalStorage so the\n * database subscribers (which have no request handle) can attribute their\n * writes. Writes outside HTTP (provisioning, CLI, cron) have no store —\n * the getter returns undefined, the correct \"system\" semantics.\n */\nexport type RequestEventContext = EventRequestContext;\n\nconst storage = new AsyncLocalStorage<RequestEventContext>();\n\nexport function runWithRequestEventContext<R>(\n ctx: RequestEventContext,\n fn: () => R,\n): R {\n return storage.run(ctx, fn);\n}\n\nexport function useRequestEventContext(): RequestEventContext | undefined {\n return storage.getStore();\n}\n\n/**\n * Builds the {@link RequestEventContext} from the routup event and wraps the\n * downstream pipeline in it. Must be mounted AFTER the authorization\n * middleware — the identity has to be resolved for actor attribution.\n */\nexport function createRequestEventContextMiddleware() : Handler {\n return defineCoreHandler(async (event) => {\n const identity = useRequestIdentity(event);\n\n const ctx : RequestEventContext = {\n actorType: identity ? identity.type : null,\n actorId: identity ? identity.id : null,\n actorName: identity ? identity.data.name ?? null : null,\n sessionId: useRequestSessionId(event) ?? null,\n requestPath: event.path,\n requestMethod: event.method,\n requestIpAddress: getRequestIP(event) ?? null,\n requestUserAgent: getRequestHeader(event, 'user-agent') ?? null,\n };\n\n return runWithRequestEventContext(ctx, () => event.next());\n });\n}\n"],"mappings":";;;;;;;;;AAsBA,MAAMM,UAAU,IAAIN,kBAAAA;AAEpB,SAAgBO,2BACZC,KACAC,IAAW;CAEX,OAAOH,QAAQI,IAAIF,KAAKC,EAAAA;AAC5B;AAEA,SAAgBE,yBAAAA;CACZ,OAAOL,QAAQM,SAAQ;AAC3B;;;;;GAOA,SAAgBC,sCAAAA;CACZ,OAAOZ,kBAAkB,OAAOa,UAAAA;EAC5B,MAAMC,WAAWX,mBAAmBU,KAAAA;EAapC,OAAOP,2BAA2BC;GAV9BQ,WAAWD,WAAWA,SAASE,OAAO;GACtCC,SAASH,WAAWA,SAASI,KAAK;GAClCC,WAAWL,WAAWA,SAASM,KAAKC,QAAQ,OAAO;GACnDC,WAAWlB,oBAAoBS,KAAAA,KAAU;GACzCU,aAAaV,MAAMW;GACnBC,eAAeZ,MAAMa;GACrBC,kBAAkBzB,aAAaW,KAAAA,KAAU;GACzCe,kBAAkB3B,iBAAiBY,OAAO,YAAA,KAAiB;EAG7BN,SAAWM,MAAMgB,KAAI,CAAA;CAC3D,CAAA;AACJ"}
@@ -21,6 +21,7 @@ import { ClientRoleRepositoryAdapter } from "./modules/database/repositories/cli
21
21
  import { ClientScopeRepositoryAdapter } from "./modules/database/repositories/client-scope/repository.mjs";
22
22
  import { EventRepositoryAdapter } from "./modules/database/repositories/event/repository.mjs";
23
23
  import { IdentityProviderRepositoryAdapter } from "./modules/database/repositories/identity-provider/repository.mjs";
24
+ import { IdentityProviderAccountRepositoryAdapter } from "./modules/database/repositories/identity-provider-account/repository.mjs";
24
25
  import { KeyRepositoryAdapter } from "./modules/database/repositories/key/repository.mjs";
25
26
  import { PermissionRepositoryAdapter } from "./modules/database/repositories/permission/repository.mjs";
26
27
  import { PermissionPolicyRepositoryAdapter } from "./modules/database/repositories/permission-policy/repository.mjs";
@@ -47,7 +48,6 @@ import { MetricsInjectionKey } from "./modules/metrics/constants.mjs";
47
48
  import { PromAuthFlowMetrics } from "./modules/metrics/prom.mjs";
48
49
  import { OAuth2InjectionToken } from "./modules/oauth2/constants.mjs";
49
50
  import { IdentityInjectionKey } from "./modules/identity/constants.mjs";
50
- import { IdentityProviderAccountRepository } from "./modules/identity/repositories/provider/account/module.mjs";
51
51
  import { IdentityProviderAttributeMappingRepository } from "./modules/identity/repositories/provider/mapper/attribute.mjs";
52
52
  import { IdentityProviderPermissionMappingRepository } from "./modules/identity/repositories/provider/mapper/permission.mjs";
53
53
  import { IdentityProviderRoleMappingRepository } from "./modules/identity/repositories/provider/mapper/role.mjs";
@@ -70,4 +70,4 @@ import { RuntimeModule } from "./modules/runtime/module.mjs";
70
70
  import "./modules/index.mjs";
71
71
  import { ApplicationBuilder } from "./builder.mjs";
72
72
  import { createApplication } from "./factory.mjs";
73
- export { ApplicationBuilder, AuthenticationInjectionKey, AuthenticationModule, CacheInjectionKey, CacheModule, ClientIdentityRepository, ClientPermissionRepositoryAdapter, ClientRepositoryAdapter, ClientRoleRepositoryAdapter, ClientScopeRepositoryAdapter, ComponentsModule, CompositeProvisioningSource, ConfigEnvironmentVariableName, ConfigInjectionKey, ConfigModule, DatabaseInjectionKey, DatabaseModule, DefaultProvisioningSource, EventRepositoryAdapter, FileProvisioningSource, HTTPInjectionKey, HTTPModule, IdentityInjectionKey, IdentityModule, IdentityProviderAccountRepository, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRepositoryAdapter, IdentityProviderRoleMappingRepository, IdentityProviderRoleMappingRepositoryAdapter, KeyRepositoryAdapter, LDAPInjectionKey, LazyWildcardRealmProvisioner, LdapModule, LoggerInjectionKey, LoggerModule, MailInjectionKey, MailModule, MailTemplateRendererInjectionKey, MetricsInjectionKey, ModuleName, OAuth2InjectionToken, OAuth2Module, PermissionDatabaseProvider, PermissionPolicyRepositoryAdapter, PermissionRepositoryAdapter, PolicyRepositoryAdapter, PromAuthFlowMetrics, ProvisionerModule, ProvisioningInjectionKey, RealmRepositoryAdapter, RoleAttributeRepositoryAdapter, RolePermissionRepositoryAdapter, RoleRepositoryAdapter, RuntimeModule, ScopeRepositoryAdapter, SessionRepository, TrustAnchorRepositoryAdapter, UserAttributeRepositoryAdapter, UserAuthenticatorRepositoryAdapter, UserIdentityRepository, UserPermissionRepositoryAdapter, UserRepositoryAdapter, UserRoleRepositoryAdapter, createApplication, expandToOrigins, getAppOrigins, readConfig, readConfigRaw, readConfigRawFromEnv, readConfigRawFromFS };
73
+ export { ApplicationBuilder, AuthenticationInjectionKey, AuthenticationModule, CacheInjectionKey, CacheModule, ClientIdentityRepository, ClientPermissionRepositoryAdapter, ClientRepositoryAdapter, ClientRoleRepositoryAdapter, ClientScopeRepositoryAdapter, ComponentsModule, CompositeProvisioningSource, ConfigEnvironmentVariableName, ConfigInjectionKey, ConfigModule, DatabaseInjectionKey, DatabaseModule, DefaultProvisioningSource, EventRepositoryAdapter, FileProvisioningSource, HTTPInjectionKey, HTTPModule, IdentityInjectionKey, IdentityModule, IdentityProviderAccountRepositoryAdapter, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRepositoryAdapter, IdentityProviderRoleMappingRepository, IdentityProviderRoleMappingRepositoryAdapter, KeyRepositoryAdapter, LDAPInjectionKey, LazyWildcardRealmProvisioner, LdapModule, LoggerInjectionKey, LoggerModule, MailInjectionKey, MailModule, MailTemplateRendererInjectionKey, MetricsInjectionKey, ModuleName, OAuth2InjectionToken, OAuth2Module, PermissionDatabaseProvider, PermissionPolicyRepositoryAdapter, PermissionRepositoryAdapter, PolicyRepositoryAdapter, PromAuthFlowMetrics, ProvisionerModule, ProvisioningInjectionKey, RealmRepositoryAdapter, RoleAttributeRepositoryAdapter, RolePermissionRepositoryAdapter, RoleRepositoryAdapter, RuntimeModule, ScopeRepositoryAdapter, SessionRepository, TrustAnchorRepositoryAdapter, UserAttributeRepositoryAdapter, UserAuthenticatorRepositoryAdapter, UserIdentityRepository, UserPermissionRepositoryAdapter, UserRepositoryAdapter, UserRoleRepositoryAdapter, createApplication, expandToOrigins, getAppOrigins, readConfig, readConfigRaw, readConfigRawFromEnv, readConfigRawFromFS };