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

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 (434) 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 +22 -4
  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 +190 -47
  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 +5 -2
  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 +4 -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 +39 -2
  176. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  177. package/dist/app/modules/identity/constants.d.ts +2 -1
  178. package/dist/app/modules/identity/constants.d.ts.map +1 -1
  179. package/dist/app/modules/identity/constants.mjs +1 -0
  180. package/dist/app/modules/identity/constants.mjs.map +1 -1
  181. package/dist/app/modules/identity/index.mjs +3 -2
  182. package/dist/app/modules/identity/module.d.ts.map +1 -1
  183. package/dist/app/modules/identity/module.mjs +9 -2
  184. package/dist/app/modules/identity/module.mjs.map +1 -1
  185. package/dist/app/modules/identity/repositories/constants.d.ts +4 -0
  186. package/dist/app/modules/identity/repositories/constants.d.ts.map +1 -0
  187. package/dist/app/modules/identity/repositories/constants.mjs +12 -0
  188. package/dist/app/modules/identity/repositories/constants.mjs.map +1 -0
  189. package/dist/app/modules/identity/repositories/index.d.ts +1 -0
  190. package/dist/app/modules/identity/repositories/index.d.ts.map +1 -1
  191. package/dist/app/modules/identity/repositories/index.mjs +3 -2
  192. package/dist/app/modules/identity/repositories/provider/index.d.ts +1 -1
  193. package/dist/app/modules/identity/repositories/provider/index.d.ts.map +1 -1
  194. package/dist/app/modules/identity/repositories/provider/index.mjs +2 -3
  195. package/dist/app/modules/identity/repositories/provider/link.d.ts +9 -0
  196. package/dist/app/modules/identity/repositories/provider/link.d.ts.map +1 -0
  197. package/dist/app/modules/identity/repositories/provider/link.mjs +34 -0
  198. package/dist/app/modules/identity/repositories/provider/link.mjs.map +1 -0
  199. package/dist/app/modules/index.mjs +4 -2
  200. package/dist/app/modules/logger/module.d.ts.map +1 -1
  201. package/dist/app/modules/logger/module.mjs +1 -0
  202. package/dist/app/modules/logger/module.mjs.map +1 -1
  203. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +25 -1
  204. package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
  205. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +70 -1
  206. package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
  207. package/dist/app/modules/provisioning/module.d.ts.map +1 -1
  208. package/dist/app/modules/provisioning/module.mjs +3 -1
  209. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  210. package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
  211. package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
  212. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  213. package/dist/core/entities/client/schema.d.ts.map +1 -1
  214. package/dist/core/entities/client/schema.mjs +29 -10
  215. package/dist/core/entities/client/schema.mjs.map +1 -1
  216. package/dist/core/entities/client-permission/schema.d.ts.map +1 -1
  217. package/dist/core/entities/client-permission/schema.mjs +29 -6
  218. package/dist/core/entities/client-permission/schema.mjs.map +1 -1
  219. package/dist/core/entities/client-role/schema.d.ts.map +1 -1
  220. package/dist/core/entities/client-role/schema.mjs +27 -6
  221. package/dist/core/entities/client-role/schema.mjs.map +1 -1
  222. package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
  223. package/dist/core/entities/client-scope/schema.mjs +19 -5
  224. package/dist/core/entities/client-scope/schema.mjs.map +1 -1
  225. package/dist/core/entities/consent/schema.d.ts.map +1 -1
  226. package/dist/core/entities/consent/schema.mjs +28 -6
  227. package/dist/core/entities/consent/schema.mjs.map +1 -1
  228. package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
  229. package/dist/core/entities/event/entity-event-handler.mjs +2 -0
  230. package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
  231. package/dist/core/entities/event/sanitize.d.ts.map +1 -1
  232. package/dist/core/entities/event/sanitize.mjs +7 -4
  233. package/dist/core/entities/event/sanitize.mjs.map +1 -1
  234. package/dist/core/entities/event/schema.d.ts.map +1 -1
  235. package/dist/core/entities/event/schema.mjs +45 -16
  236. package/dist/core/entities/event/schema.mjs.map +1 -1
  237. package/dist/core/entities/event/service.d.ts.map +1 -1
  238. package/dist/core/entities/event/service.mjs +2 -0
  239. package/dist/core/entities/event/service.mjs.map +1 -1
  240. package/dist/core/entities/event/types.d.ts +2 -0
  241. package/dist/core/entities/event/types.d.ts.map +1 -1
  242. package/dist/core/entities/identity-provider/schema.d.ts.map +1 -1
  243. package/dist/core/entities/identity-provider/schema.mjs +29 -11
  244. package/dist/core/entities/identity-provider/schema.mjs.map +1 -1
  245. package/dist/core/entities/identity-provider-account/error.d.ts +7 -0
  246. package/dist/core/entities/identity-provider-account/error.d.ts.map +1 -0
  247. package/dist/core/entities/identity-provider-account/error.mjs +24 -0
  248. package/dist/core/entities/identity-provider-account/error.mjs.map +1 -0
  249. package/dist/core/entities/identity-provider-account/index.d.ts +5 -0
  250. package/dist/core/entities/identity-provider-account/index.d.ts.map +1 -0
  251. package/dist/core/entities/identity-provider-account/index.mjs +8 -0
  252. package/dist/core/entities/identity-provider-account/schema.d.ts +3 -0
  253. package/dist/core/entities/identity-provider-account/schema.d.ts.map +1 -0
  254. package/dist/core/entities/identity-provider-account/schema.mjs +52 -0
  255. package/dist/core/entities/identity-provider-account/schema.mjs.map +1 -0
  256. package/dist/core/entities/identity-provider-account/service.d.ts +24 -0
  257. package/dist/core/entities/identity-provider-account/service.d.ts.map +1 -0
  258. package/dist/core/entities/identity-provider-account/service.mjs +129 -0
  259. package/dist/core/entities/identity-provider-account/service.mjs.map +1 -0
  260. package/dist/core/entities/identity-provider-account/types.d.ts +69 -0
  261. package/dist/core/entities/identity-provider-account/types.d.ts.map +1 -0
  262. package/dist/core/entities/identity-provider-account/types.mjs +17 -0
  263. package/dist/core/entities/identity-provider-account/types.mjs.map +1 -0
  264. package/dist/core/entities/identity-provider-role-mapping/schema.d.ts.map +1 -1
  265. package/dist/core/entities/identity-provider-role-mapping/schema.mjs +27 -6
  266. package/dist/core/entities/identity-provider-role-mapping/schema.mjs.map +1 -1
  267. package/dist/core/entities/index.d.ts +2 -0
  268. package/dist/core/entities/index.d.ts.map +1 -1
  269. package/dist/core/entities/index.mjs +9 -1
  270. package/dist/core/entities/key/schema.d.ts.map +1 -1
  271. package/dist/core/entities/key/schema.mjs +39 -17
  272. package/dist/core/entities/key/schema.mjs.map +1 -1
  273. package/dist/core/entities/key/service.d.ts.map +1 -1
  274. package/dist/core/entities/key/service.mjs +1 -0
  275. package/dist/core/entities/key/service.mjs.map +1 -1
  276. package/dist/core/entities/permission/schema.d.ts.map +1 -1
  277. package/dist/core/entities/permission/schema.mjs +34 -13
  278. package/dist/core/entities/permission/schema.mjs.map +1 -1
  279. package/dist/core/entities/permission-policy/schema.d.ts.map +1 -1
  280. package/dist/core/entities/permission-policy/schema.mjs +27 -6
  281. package/dist/core/entities/permission-policy/schema.mjs.map +1 -1
  282. package/dist/core/entities/policy/schema.d.ts.map +1 -1
  283. package/dist/core/entities/policy/schema.mjs +31 -12
  284. package/dist/core/entities/policy/schema.mjs.map +1 -1
  285. package/dist/core/entities/realm/schema.d.ts.map +1 -1
  286. package/dist/core/entities/realm/schema.mjs +26 -12
  287. package/dist/core/entities/realm/schema.mjs.map +1 -1
  288. package/dist/core/entities/role/schema.d.ts.map +1 -1
  289. package/dist/core/entities/role/schema.mjs +36 -14
  290. package/dist/core/entities/role/schema.mjs.map +1 -1
  291. package/dist/core/entities/role-attribute/schema.d.ts.map +1 -1
  292. package/dist/core/entities/role-attribute/schema.mjs +28 -14
  293. package/dist/core/entities/role-attribute/schema.mjs.map +1 -1
  294. package/dist/core/entities/role-permission/schema.d.ts.map +1 -1
  295. package/dist/core/entities/role-permission/schema.mjs +29 -6
  296. package/dist/core/entities/role-permission/schema.mjs.map +1 -1
  297. package/dist/core/entities/scope/schema.d.ts.map +1 -1
  298. package/dist/core/entities/scope/schema.mjs +28 -12
  299. package/dist/core/entities/scope/schema.mjs.map +1 -1
  300. package/dist/core/entities/session/schema.d.ts.map +1 -1
  301. package/dist/core/entities/session/schema.mjs +41 -9
  302. package/dist/core/entities/session/schema.mjs.map +1 -1
  303. package/dist/core/entities/session-token/index.d.ts +4 -0
  304. package/dist/core/entities/session-token/index.d.ts.map +1 -0
  305. package/dist/core/entities/session-token/index.mjs +6 -0
  306. package/dist/core/entities/session-token/schema.d.ts +12 -0
  307. package/dist/core/entities/session-token/schema.d.ts.map +1 -0
  308. package/dist/core/entities/session-token/schema.mjs +66 -0
  309. package/dist/core/entities/session-token/schema.mjs.map +1 -0
  310. package/dist/core/entities/session-token/service.d.ts +70 -0
  311. package/dist/core/entities/session-token/service.d.ts.map +1 -0
  312. package/dist/core/entities/session-token/service.mjs +216 -0
  313. package/dist/core/entities/session-token/service.mjs.map +1 -0
  314. package/dist/core/entities/session-token/types.d.ts +37 -0
  315. package/dist/core/entities/session-token/types.d.ts.map +1 -0
  316. package/dist/core/entities/session-token/types.mjs +4 -0
  317. package/dist/core/entities/trust-anchor/schema.d.ts.map +1 -1
  318. package/dist/core/entities/trust-anchor/schema.mjs +27 -13
  319. package/dist/core/entities/trust-anchor/schema.mjs.map +1 -1
  320. package/dist/core/entities/trust-anchor/service.d.ts.map +1 -1
  321. package/dist/core/entities/trust-anchor/service.mjs +1 -0
  322. package/dist/core/entities/trust-anchor/service.mjs.map +1 -1
  323. package/dist/core/entities/user/schema.d.ts.map +1 -1
  324. package/dist/core/entities/user/schema.mjs +29 -12
  325. package/dist/core/entities/user/schema.mjs.map +1 -1
  326. package/dist/core/entities/user-attribute/schema.d.ts.map +1 -1
  327. package/dist/core/entities/user-attribute/schema.mjs +28 -14
  328. package/dist/core/entities/user-attribute/schema.mjs.map +1 -1
  329. package/dist/core/entities/user-authenticator/schema.d.ts.map +1 -1
  330. package/dist/core/entities/user-authenticator/schema.mjs +29 -12
  331. package/dist/core/entities/user-authenticator/schema.mjs.map +1 -1
  332. package/dist/core/entities/user-authenticator/service.d.ts +2 -1
  333. package/dist/core/entities/user-authenticator/service.d.ts.map +1 -1
  334. package/dist/core/entities/user-authenticator/service.mjs +5 -0
  335. package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
  336. package/dist/core/entities/user-authenticator/types.d.ts +7 -1
  337. package/dist/core/entities/user-authenticator/types.d.ts.map +1 -1
  338. package/dist/core/entities/user-authenticator/types.mjs.map +1 -1
  339. package/dist/core/entities/user-permission/schema.d.ts.map +1 -1
  340. package/dist/core/entities/user-permission/schema.mjs +29 -6
  341. package/dist/core/entities/user-permission/schema.mjs.map +1 -1
  342. package/dist/core/entities/user-role/schema.d.ts.map +1 -1
  343. package/dist/core/entities/user-role/schema.mjs +27 -6
  344. package/dist/core/entities/user-role/schema.mjs.map +1 -1
  345. package/dist/core/identity/index.mjs +3 -1
  346. package/dist/core/identity/provider/account/constants.d.ts +10 -0
  347. package/dist/core/identity/provider/account/constants.d.ts.map +1 -0
  348. package/dist/core/identity/provider/account/constants.mjs +16 -0
  349. package/dist/core/identity/provider/account/constants.mjs.map +1 -0
  350. package/dist/core/identity/provider/account/error.d.ts +7 -0
  351. package/dist/core/identity/provider/account/error.d.ts.map +1 -0
  352. package/dist/core/identity/provider/account/error.mjs +24 -0
  353. package/dist/core/identity/provider/account/error.mjs.map +1 -0
  354. package/dist/core/identity/provider/account/index.d.ts +2 -0
  355. package/dist/core/identity/provider/account/index.d.ts.map +1 -1
  356. package/dist/core/identity/provider/account/index.mjs +3 -1
  357. package/dist/core/identity/provider/account/module.d.ts +2 -0
  358. package/dist/core/identity/provider/account/module.d.ts.map +1 -1
  359. package/dist/core/identity/provider/account/module.mjs +30 -0
  360. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  361. package/dist/core/identity/provider/account/types.d.ts +44 -7
  362. package/dist/core/identity/provider/account/types.d.ts.map +1 -1
  363. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts +19 -0
  364. package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
  365. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +60 -3
  366. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  367. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts +9 -0
  368. package/dist/core/identity/provider/authentication/protocols/oauth2/types.d.ts.map +1 -1
  369. package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts +0 -3
  370. package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts.map +1 -1
  371. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs +0 -17
  372. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
  373. package/dist/core/identity/provider/index.mjs +3 -1
  374. package/dist/core/index.mjs +11 -2
  375. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  376. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +2 -1
  377. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  378. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  379. package/dist/core/oauth2/authorization/module.mjs +2 -0
  380. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  381. package/dist/core/oauth2/authorization/state/types.d.ts +11 -0
  382. package/dist/core/oauth2/authorization/state/types.d.ts.map +1 -1
  383. package/dist/core/oauth2/end-session/service.mjs +2 -2
  384. package/dist/core/oauth2/end-session/service.mjs.map +1 -1
  385. package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
  386. package/dist/core/oauth2/grant-types/authorize.mjs +1 -5
  387. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  388. package/dist/core/oauth2/grant-types/password.mjs +2 -5
  389. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  390. package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
  391. package/dist/core/oauth2/grant-types/refresh-token.mjs +37 -24
  392. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  393. package/dist/core/oauth2/index.mjs +3 -1
  394. package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -1
  395. package/dist/core/oauth2/mfa-login/module.mjs +4 -7
  396. package/dist/core/oauth2/mfa-login/module.mjs.map +1 -1
  397. package/dist/core/oauth2/session-token/error.d.ts +36 -0
  398. package/dist/core/oauth2/session-token/error.d.ts.map +1 -0
  399. package/dist/core/oauth2/session-token/error.mjs +49 -0
  400. package/dist/core/oauth2/session-token/error.mjs.map +1 -0
  401. package/dist/core/oauth2/session-token/index.d.ts +1 -0
  402. package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
  403. package/dist/core/oauth2/session-token/index.mjs +2 -1
  404. package/dist/core/oauth2/session-token/types.d.ts +40 -0
  405. package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
  406. package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
  407. package/dist/core/oauth2/token/issuer/access/module.mjs +1 -0
  408. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  409. package/dist/core/oauth2/token/issuer/base.d.ts +1 -1
  410. package/dist/core/oauth2/token/issuer/base.d.ts.map +1 -1
  411. package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
  412. package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
  413. package/dist/core/oauth2/token/issuer/refresh/module.mjs +1 -0
  414. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  415. package/dist/core/query/index.mjs +2 -2
  416. package/dist/core/query/module.d.ts +19 -9
  417. package/dist/core/query/module.d.ts.map +1 -1
  418. package/dist/core/query/module.mjs +22 -10
  419. package/dist/core/query/module.mjs.map +1 -1
  420. package/dist/index.mjs +8 -4
  421. package/dist/swagger.json +961 -132
  422. package/dist/utils/error.d.ts +20 -3
  423. package/dist/utils/error.d.ts.map +1 -1
  424. package/dist/utils/error.mjs +102 -5
  425. package/dist/utils/error.mjs.map +1 -1
  426. package/dist/utils/index.mjs +2 -2
  427. package/package.json +23 -21
  428. package/dist/app/modules/identity/repositories/provider/account/index.d.ts.map +0 -1
  429. package/dist/app/modules/identity/repositories/provider/account/index.mjs +0 -5
  430. package/dist/app/modules/identity/repositories/provider/account/module.d.ts +0 -10
  431. package/dist/app/modules/identity/repositories/provider/account/module.d.ts.map +0 -1
  432. package/dist/app/modules/identity/repositories/provider/account/module.mjs +0 -28
  433. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +0 -1
  434. /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":"1786436332251-QueryIndexes.mjs","names":["QueryIndexes1786436332251","name","up","queryRunner","query","down"],"sources":["../../../../../src/adapters/database/migrations/postgres/1786436332251-QueryIndexes.ts"],"sourcesContent":["import type { MigrationInterface, QueryRunner } from 'typeorm';\n\n/**\n * Indexes for the query surface and the foreign-key graph.\n *\n * Query surface: backs the rapiq schema `indexes` declarations (rapiq\n * 2.0.0-beta.20 indexed filters/sort, tada5hi/rapiq#895) — every key in a\n * schema's filter/sort allow-list must LEAD a real database index, so the\n * parse-time index policy never rejects a query the allow-lists permit.\n *\n * Foreign-key graph: indexes every remaining FK scalar column (junction\n * *_realm_id and policy_id columns, client.access_policy_id, the EA and\n * identity-provider mapping tables). MySQL always keeps an implicit FK\n * index, so these matter on Postgres, where realm deletion\n * (crypto-shredding) and cascade deletes otherwise full-scan every\n * junction, and EA tree loads sit on the permission-evaluation hot path.\n *\n * display_name is indexed wherever the column exists, alongside name:\n * the console searches both at once (`or(contains(name), contains(\n * display_name))`), and anchor mode passes an OR only when EVERY branch\n * leads an index, so one missing index would reject the whole search.\n *\n * Compound access paths: (actor_name, request_ip_address, created_at) on\n * auth_events serves the login-throttle countRecent key and replaces the\n * redundant actor_name single; auth_session_tokens.parent_id serves the\n * grace-window hasConsumedChild lookup; auth_sessions gains its three FK\n * indexes; (provider_user_id, provider_id) serves the federated-login\n * account lookup.\n *\n * Cleanup: drops the three orphaned legacy tables no entity has described\n * since their reworks — auth_authorization_codes (codes moved to cache\n * blobs), auth_refresh_tokens (superseded by auth_session_tokens),\n * auth_identity_provider_roles (superseded by\n * auth_identity_provider_role_mappings). down() recreates them exactly as\n * the pre-existing chain leaves them, so older down() paths keep working.\n *\n * Generated with `migration generate`; derived IDX_<hash> names, generated\n * DDL untouched (hand-authored blocks are marked).\n */\n\nexport class QueryIndexes1786436332251 implements MigrationInterface {\n name = 'QueryIndexes1786436332251';\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ce33c3f58b802bb3c7b2668adc\"\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_4a9118b99a30cfd3d0c49c3f4b\" ON \"auth_realms\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_75e631fcfae706212f5bd67a93\" ON \"auth_realms\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_711b1c0c94c1f50b72ee0bc5b2\" ON \"auth_realms\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_98610803836c2be19b55bc016b\" ON \"auth_realms\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7cdad1f4b4773508db1c7907e3\" ON \"auth_policies\" (\"type\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_14b3b3b9c0a1b3a1d2abecb6e7\" ON \"auth_policies\" (\"parent_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3bdf0256c69127d59bfd92a313\" ON \"auth_policies\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3f5906dabc9f129555d823408c\" ON \"auth_policies\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f4cdbb6a56eb93fa2598c8483d\" ON \"auth_policy_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_8b759199b8a0213a7a0f7b1986\" ON \"auth_policy_attributes\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7e7bca0ba30295b43b02a69051\" ON \"auth_clients\" (\"access_policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e9d2f1997f5bb2e3b25edc3ab6\" ON \"auth_clients\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_01ff3aa3d7f3ea41711fa3abd5\" ON \"auth_clients\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b628ffa1b2f5415598cfb1a72a\" ON \"auth_clients\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_4f168a45a40758502e4833bb85\" ON \"auth_users\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6597f3e492f4f8f3cc40772575\" ON \"auth_users\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_55c4ee639cdf45eb2453ee4fc7\" ON \"auth_users\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9a84db5a27d34b31644b54d910\" ON \"auth_user_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f50fe4004312e972a547c0e945\" ON \"auth_user_attributes\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_fa1bbd036543e4c4fda32b7ca6\" ON \"auth_user_attributes\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0d93685dd655ce6ee7c8255503\" ON \"auth_user_attributes\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a4a11809dcf8cdd5fcceec774e\" ON \"auth_sessions\" (\"expires_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b1d224a5ac76b109101ce07231\" ON \"auth_sessions\" (\"seen_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_46ab036699db960a12d34aad2b\" ON \"auth_sessions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_60c2b21c37d79572f92da3476d\" ON \"auth_sessions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_4b428fb760524b6ef45e7c2cbf\" ON \"auth_sessions\" (\"client_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_50ccaa6440288a06f0ba693ccc\" ON \"auth_sessions\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5a40fe23cbb002e73bf740715f\" ON \"auth_sessions\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_2cf41b241977b633ee7df5c8ae\" ON \"auth_keys\" (\"use\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_81ce3477ef39f7b5e0e009e81c\" ON \"auth_keys\" (\"status\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0a1114947c976bbe430d24b2c9\" ON \"auth_keys\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5fc18a2304a0cd7129cb8736ed\" ON \"auth_keys\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5d1a390d8b26eb227c3d2a8ca5\" ON \"auth_roles\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a7a399f06c259755d1b27b01ab\" ON \"auth_roles\" (\"target\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9c66869156cbedfc95533f0df1\" ON \"auth_roles\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_414d5037e0b67b5dc3643ac8b8\" ON \"auth_roles\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_2ba00548c512fffe2e5bf4bb3f\" ON \"auth_role_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_cd014be6be330f64b8405d0c72\" ON \"auth_role_attributes\" (\"role_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b4ec5361a8a3f49267ccef575c\" ON \"auth_role_attributes\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_76b7c51aeeeff6d695c0b8e17f\" ON \"auth_role_attributes\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_dbcfb3a6d68ad40775ff55b0fd\" ON \"auth_client_roles\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f88e0dfb5f8c30fc66fef320f6\" ON \"auth_client_roles\" (\"client_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3a3a792dbd6d343c0dabe9900a\" ON \"auth_client_roles\" (\"client_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ff4c8615288f1f8ebbeeed7f85\" ON \"auth_client_roles\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_8a110d4e8e1f9be98cc8d41c1c\" ON \"auth_client_roles\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0979aabd6e00c278eb9ac1e0ca\" ON \"auth_permissions\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_798534b4e296f68e1bc658fbe3\" ON \"auth_permissions\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e97033638618a50676a1637ad6\" ON \"auth_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5690205a3d8b0ab370f18c0e4f\" ON \"auth_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_d677e1082c27aae4ede40db0e9\" ON \"auth_client_permissions\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b27b823c96287617e5bdf008ea\" ON \"auth_client_permissions\" (\"client_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_feb56f67d0c919e7626f1df836\" ON \"auth_client_permissions\" (\"permission_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0d08f64ff34cb0d19deff4b1fc\" ON \"auth_client_permissions\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ccc15bd289a1ee0ba1ff9f061a\" ON \"auth_client_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7a11a6fbab29ec59fc185d4f9e\" ON \"auth_client_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e41ae7308e97ec75440f973cd8\" ON \"auth_scopes\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a4d3545ecd5c7507c326f6ce0c\" ON \"auth_scopes\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c6dc9d6f6199967609c555ca07\" ON \"auth_scopes\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_800cdb9ca2821bc6a81b1eff34\" ON \"auth_client_scopes\" (\"default\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_410780c372c6b400e9c6cba743\" ON \"auth_client_scopes\" (\"client_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_471f3da9df80f92c382a586e9c\" ON \"auth_client_scopes\" (\"scope_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_81f39f6e4a90fc8b861cf12dbf\" ON \"auth_client_scopes\" (\"scope_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_88c5c368c6216d7d1f0eb26a97\" ON \"auth_consents\" (\"sub_kind\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_31d8afae3f42a07450dc54c2cb\" ON \"auth_consents\" (\"scope\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_eb128508302d046ee176ef89fd\" ON \"auth_consents\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6cff5665a42c31ebd8cdcfaad8\" ON \"auth_consents\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9486a670458a7377d1bd8f6245\" ON \"auth_events\" (\"scope\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_50f3b5dc6ae4eb17e736ca0a7d\" ON \"auth_events\" (\"ref_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_71c9adc2c466c149650c6c56e8\" ON \"auth_events\" (\"actor_type\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_37d01a405dc14c63738f1481b4\" ON \"auth_events\" (\"actor_name\", \"request_ip_address\", \"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_bac15f2c6806624e4f7223e5ed\" ON \"auth_identity_providers\" (\"protocol\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_213e1f3bdff969667e71206e9f\" ON \"auth_identity_providers\" (\"enabled\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6584e5587d2075fb11a8953bdc\" ON \"auth_identity_providers\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_246ce67900aa852582dae0a7d8\" ON \"auth_identity_providers\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5ac40c5ce92142639df65a33e5\" ON \"auth_identity_provider_attributes\" (\"provider_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_60411456c45c831be656fbf850\" ON \"auth_identity_provider_attributes\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9630da9b4e6c478189cc6062c5\" ON \"auth_identity_provider_accounts\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_430b7434c1f881ab776562e508\" ON \"auth_identity_provider_accounts\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b07582d2705a04c2e868e6c374\" ON \"auth_identity_provider_accounts\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c9432656798d6116dd47a896e4\" ON \"auth_identity_provider_accounts\" (\"user_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_209348829a22e0fb2715e937e4\" ON \"auth_identity_provider_accounts\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ccf3fd36253755bd9a5f43c516\" ON \"auth_identity_provider_accounts\" (\"provider_user_id\", \"provider_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_58a45697736646499b3dc7f0d0\" ON \"auth_identity_provider_attribute_mappings\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f59883e2400b294414a495002a\" ON \"auth_identity_provider_permission_mappings\" (\"permission_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_acce12b53121e9eb413f32c719\" ON \"auth_identity_provider_permission_mappings\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f2ea716aa0c8bd034b6f28e9eb\" ON \"auth_identity_provider_permission_mappings\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e84cd23669ae68b3bfd44ef986\" ON \"auth_identity_provider_role_mappings\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_d84c31eb147bde680370f00ea5\" ON \"auth_identity_provider_role_mappings\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0c89b2c523eee535a9a18422fd\" ON \"auth_identity_provider_role_mappings\" (\"role_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0c61ae237f6a87d65feed8bc45\" ON \"auth_identity_provider_role_mappings\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f8dfd31c9dc51e1fb8409c83d0\" ON \"auth_identity_provider_role_mappings\" (\"provider_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_883cfabf7d5f7466a27625843d\" ON \"auth_session_tokens\" (\"client_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_8d823bc0f1c9fae725fe3c6c9e\" ON \"auth_session_tokens\" (\"parent_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9de8962dead711a91eb52badef\" ON \"auth_session_tokens\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_35eec422fb312f3d2d5d104da3\" ON \"auth_trust_anchors\" (\"enabled\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a788087fab74ba22302cc128eb\" ON \"auth_trust_anchors\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_16381ac607f6f4e37415a4879f\" ON \"auth_trust_anchors\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b4a3f78a50e369bfd2d1aa2445\" ON \"auth_permission_policies\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_85164349cdb62316ec19b88470\" ON \"auth_permission_policies\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_babb340dda101f2df8334eea5c\" ON \"auth_permission_policies\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f5225aa8083c99b1cd09f4390c\" ON \"auth_permission_policies\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a76f5f6a12317ea0e24a84c1a5\" ON \"auth_permission_policies\" (\"policy_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6b28c396d6f0c13165ae2d9abe\" ON \"auth_role_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_d1c82cf7a5659d0e6fce7aa481\" ON \"auth_role_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_cfa1834ece97297955f4a9539a\" ON \"auth_role_permissions\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3a6789765734cf5f3f555f2098\" ON \"auth_role_permissions\" (\"role_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_3d29528c774bc47404659fad03\" ON \"auth_role_permissions\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f9ab8919ff5d5993816f688187\" ON \"auth_role_permissions\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c5ad558296a77525b1f52919bf\" ON \"auth_user_authenticators\" (\"confirmed\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_7d3f50dac76afdc4f5a548eaf3\" ON \"auth_user_authenticators\" (\"last_used_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_fc331813cdc3b9c47a83c3be95\" ON \"auth_user_authenticators\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_eb9bd783394e3aedd35f855104\" ON \"auth_user_authenticators\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_db13de293f01ac8ab7bc0342c4\" ON \"auth_user_authenticators\" (\"realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_0a3a42400243fe3f9d969203a8\" ON \"auth_user_permissions\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_bc15924b6889713da243e883ca\" ON \"auth_user_permissions\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f15efcb7151cdd0d54ebafdd7f\" ON \"auth_user_permissions\" (\"policy_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_c1d4523b08aa27f07dff798f8d\" ON \"auth_user_permissions\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5bf6d1affe0575299c44bc58c0\" ON \"auth_user_permissions\" (\"user_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e2de70574303693fea386cc0ed\" ON \"auth_user_permissions\" (\"permission_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_77fe9d38c984c640fc155503c4\" ON \"auth_user_roles\" (\"role_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_a3a59104c9c9f2a2458972bc96\" ON \"auth_user_roles\" (\"user_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6161ccebf3af1c475758651de4\" ON \"auth_user_roles\" (\"user_realm_id\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_e0588e81b8ff3c640311b7ee39\" ON \"auth_user_roles\" (\"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_92ba9504d7698a5a3de297ac76\" ON \"auth_user_roles\" (\"updated_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f8538b58d9fe496e4c7bc6c565\" ON \"auth_users\" (\"reset_hash\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b2003e5ab8c075dc0a11f33bca\" ON \"auth_users\" (\"activate_hash\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9c861f8e8ea9fe35507b57fb88\" ON \"auth_policies\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_9c08d15bfcf413aad26ee3eda8\" ON \"auth_clients\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5015816deff1b14e7d669ed7cb\" ON \"auth_roles\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_f2835b7434c506b81e48a48229\" ON \"auth_scopes\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_5b1ba660790692f625c7a777d3\" ON \"auth_identity_providers\" (\"display_name\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6f92ed4d9d7499b1dff735133c\" ON \"auth_policies\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_dd5af3e4a6f6157685f64d2c80\" ON \"auth_clients\" (\"active\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_b532f2eeaa9eb2b5c3ac65459b\" ON \"auth_clients\" (\"built_in\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_61132a880199e367d87d4f51b5\" ON \"auth_users\" (\"active\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_50bf2034bc55ce71102900f5ae\" ON \"auth_sessions\" (\"realm_id\", \"seen_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_1ab6178864ca0fd7d23efe6abf\" ON \"auth_sessions\" (\"user_id\", \"seen_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_6ff3a9ac44beabcc3a9642f0f9\" ON \"auth_events\" (\"realm_id\", \"created_at\")\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_74d37f543d9f9476b4b232c00b\" ON \"auth_session_tokens\" (\"session_id\", \"created_at\")\n `);\n // Hand-authored: drop the three orphaned legacy tables. Each predates a\n // rework that replaced it and nothing has referenced them since:\n // auth_authorization_codes (codes moved to cache blobs),\n // auth_refresh_tokens (superseded by auth_session_tokens, refresh\n // rotation), auth_identity_provider_roles (superseded by\n // auth_identity_provider_role_mappings in the identity-provider\n // rework). No entity describes them, so the schema-drift gate never\n // compared them; rows are pre-rework leftovers and are destroyed.\n await queryRunner.query(`\n DROP TABLE \"auth_authorization_codes\"\n `);\n await queryRunner.query(`\n DROP TABLE \"auth_refresh_tokens\"\n `);\n await queryRunner.query(`\n DROP TABLE \"auth_identity_provider_roles\"\n `);\n }\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_74d37f543d9f9476b4b232c00b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6ff3a9ac44beabcc3a9642f0f9\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_1ab6178864ca0fd7d23efe6abf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_50bf2034bc55ce71102900f5ae\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_61132a880199e367d87d4f51b5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b532f2eeaa9eb2b5c3ac65459b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_dd5af3e4a6f6157685f64d2c80\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6f92ed4d9d7499b1dff735133c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5b1ba660790692f625c7a777d3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f2835b7434c506b81e48a48229\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5015816deff1b14e7d669ed7cb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9c08d15bfcf413aad26ee3eda8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9c861f8e8ea9fe35507b57fb88\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b2003e5ab8c075dc0a11f33bca\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f8538b58d9fe496e4c7bc6c565\"\n `);\n // Hand-authored: recreate the dropped legacy tables exactly as the\n // pre-existing chain leaves them (constraint and index names\n // included, robot FKs excluded — RemoveRobots dropped those), so\n // the older migrations' down() paths keep working.\n await queryRunner.query(`\n CREATE TABLE \"auth_authorization_codes\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"content\" character varying(4096) NOT NULL,\n \"expires\" character varying(28) NOT NULL,\n \"scope\" character varying(512),\n \"redirect_uri\" character varying(2000),\n \"id_token\" character varying(1000),\n \"client_id\" uuid,\n \"user_id\" uuid,\n \"robot_id\" uuid,\n \"realm_id\" uuid NOT NULL,\n CONSTRAINT \"PK_c2ecb6968a63a751bd6fd2e2b6b\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query(`\n CREATE TABLE \"auth_refresh_tokens\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"expires\" character varying(28) NOT NULL,\n \"scope\" character varying(512),\n \"access_token\" uuid,\n \"client_id\" uuid,\n \"user_id\" uuid,\n \"robot_id\" uuid,\n \"realm_id\" uuid NOT NULL,\n CONSTRAINT \"PK_df6893d2063a4ea7bbf1eda31e5\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query(`\n CREATE TABLE \"auth_identity_provider_roles\" (\n \"id\" uuid NOT NULL DEFAULT uuid_generate_v4(),\n \"external_id\" character varying(36) NOT NULL,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT now(),\n \"role_id\" uuid NOT NULL,\n \"role_realm_id\" uuid,\n \"provider_id\" uuid NOT NULL,\n \"provider_realm_id\" uuid,\n CONSTRAINT \"PK_345f74231cf39250a3e572b84a7\" PRIMARY KEY (\"id\")\n )\n `);\n await queryRunner.query(`\n CREATE UNIQUE INDEX \"IDX_42df2e30eee05e54c74bced78b\" ON \"auth_identity_provider_roles\" (\"provider_id\", \"external_id\")\n `);\n await queryRunner.query(`\n CREATE UNIQUE INDEX \"IDX_fadb9ce4df580cc42e78b74b2f\" ON \"auth_identity_provider_roles\" (\"provider_id\", \"role_id\")\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_authorization_codes\"\n ADD CONSTRAINT \"FK_343b25488aef1b87f4771f8c7eb\" FOREIGN KEY (\"realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_authorization_codes\"\n ADD CONSTRAINT \"FK_5119ffb8f6b8ba853e52be2e417\" FOREIGN KEY (\"user_id\") REFERENCES \"auth_users\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_authorization_codes\"\n ADD CONSTRAINT \"FK_ff6e597e9dd296da510efc06d28\" FOREIGN KEY (\"client_id\") REFERENCES \"auth_clients\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_refresh_tokens\"\n ADD CONSTRAINT \"FK_8f611e7ff67a2b013c909f60d52\" FOREIGN KEY (\"client_id\") REFERENCES \"auth_clients\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_refresh_tokens\"\n ADD CONSTRAINT \"FK_c1f59fdabbcf5dfd74d6af7f400\" FOREIGN KEY (\"realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_refresh_tokens\"\n ADD CONSTRAINT \"FK_f795ad14f31838e3ddc663ee150\" FOREIGN KEY (\"user_id\") REFERENCES \"auth_users\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_2c3139bd232ffde35b71d43018e\" FOREIGN KEY (\"role_realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_52a568200844cde16722b9bb95e\" FOREIGN KEY (\"provider_id\") REFERENCES \"auth_identity_providers\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_d49fb54b140869696a5a14285c7\" FOREIGN KEY (\"provider_realm_id\") REFERENCES \"auth_realms\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_identity_provider_roles\"\n ADD CONSTRAINT \"FK_f32f792ca1aeacea0507ef80a11\" FOREIGN KEY (\"role_id\") REFERENCES \"auth_roles\" (\"id\") ON DELETE CASCADE ON UPDATE NO ACTION\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_92ba9504d7698a5a3de297ac76\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e0588e81b8ff3c640311b7ee39\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6161ccebf3af1c475758651de4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a3a59104c9c9f2a2458972bc96\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_77fe9d38c984c640fc155503c4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e2de70574303693fea386cc0ed\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5bf6d1affe0575299c44bc58c0\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c1d4523b08aa27f07dff798f8d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f15efcb7151cdd0d54ebafdd7f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_bc15924b6889713da243e883ca\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0a3a42400243fe3f9d969203a8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_db13de293f01ac8ab7bc0342c4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_eb9bd783394e3aedd35f855104\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_fc331813cdc3b9c47a83c3be95\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7d3f50dac76afdc4f5a548eaf3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c5ad558296a77525b1f52919bf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f9ab8919ff5d5993816f688187\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3d29528c774bc47404659fad03\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3a6789765734cf5f3f555f2098\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_cfa1834ece97297955f4a9539a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_d1c82cf7a5659d0e6fce7aa481\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6b28c396d6f0c13165ae2d9abe\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a76f5f6a12317ea0e24a84c1a5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f5225aa8083c99b1cd09f4390c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_babb340dda101f2df8334eea5c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_85164349cdb62316ec19b88470\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b4a3f78a50e369bfd2d1aa2445\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_16381ac607f6f4e37415a4879f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a788087fab74ba22302cc128eb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_35eec422fb312f3d2d5d104da3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9de8962dead711a91eb52badef\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_8d823bc0f1c9fae725fe3c6c9e\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_883cfabf7d5f7466a27625843d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f8dfd31c9dc51e1fb8409c83d0\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0c61ae237f6a87d65feed8bc45\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0c89b2c523eee535a9a18422fd\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_d84c31eb147bde680370f00ea5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e84cd23669ae68b3bfd44ef986\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f2ea716aa0c8bd034b6f28e9eb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_acce12b53121e9eb413f32c719\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f59883e2400b294414a495002a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_58a45697736646499b3dc7f0d0\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ccf3fd36253755bd9a5f43c516\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_209348829a22e0fb2715e937e4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c9432656798d6116dd47a896e4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b07582d2705a04c2e868e6c374\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_430b7434c1f881ab776562e508\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9630da9b4e6c478189cc6062c5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_60411456c45c831be656fbf850\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5ac40c5ce92142639df65a33e5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_246ce67900aa852582dae0a7d8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6584e5587d2075fb11a8953bdc\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_213e1f3bdff969667e71206e9f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_bac15f2c6806624e4f7223e5ed\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_37d01a405dc14c63738f1481b4\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_71c9adc2c466c149650c6c56e8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_50f3b5dc6ae4eb17e736ca0a7d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9486a670458a7377d1bd8f6245\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6cff5665a42c31ebd8cdcfaad8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_eb128508302d046ee176ef89fd\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_31d8afae3f42a07450dc54c2cb\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_88c5c368c6216d7d1f0eb26a97\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_81f39f6e4a90fc8b861cf12dbf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_471f3da9df80f92c382a586e9c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_410780c372c6b400e9c6cba743\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_800cdb9ca2821bc6a81b1eff34\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_c6dc9d6f6199967609c555ca07\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a4d3545ecd5c7507c326f6ce0c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e41ae7308e97ec75440f973cd8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7a11a6fbab29ec59fc185d4f9e\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ccc15bd289a1ee0ba1ff9f061a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0d08f64ff34cb0d19deff4b1fc\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_feb56f67d0c919e7626f1df836\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b27b823c96287617e5bdf008ea\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_d677e1082c27aae4ede40db0e9\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5690205a3d8b0ab370f18c0e4f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e97033638618a50676a1637ad6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_798534b4e296f68e1bc658fbe3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0979aabd6e00c278eb9ac1e0ca\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_8a110d4e8e1f9be98cc8d41c1c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_ff4c8615288f1f8ebbeeed7f85\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3a3a792dbd6d343c0dabe9900a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f88e0dfb5f8c30fc66fef320f6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_dbcfb3a6d68ad40775ff55b0fd\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_76b7c51aeeeff6d695c0b8e17f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b4ec5361a8a3f49267ccef575c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_cd014be6be330f64b8405d0c72\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_2ba00548c512fffe2e5bf4bb3f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_414d5037e0b67b5dc3643ac8b8\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9c66869156cbedfc95533f0df1\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a7a399f06c259755d1b27b01ab\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5d1a390d8b26eb227c3d2a8ca5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5fc18a2304a0cd7129cb8736ed\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0a1114947c976bbe430d24b2c9\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_81ce3477ef39f7b5e0e009e81c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_2cf41b241977b633ee7df5c8ae\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_5a40fe23cbb002e73bf740715f\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_50ccaa6440288a06f0ba693ccc\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_4b428fb760524b6ef45e7c2cbf\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_60c2b21c37d79572f92da3476d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_46ab036699db960a12d34aad2b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b1d224a5ac76b109101ce07231\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_a4a11809dcf8cdd5fcceec774e\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_0d93685dd655ce6ee7c8255503\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_fa1bbd036543e4c4fda32b7ca6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f50fe4004312e972a547c0e945\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_9a84db5a27d34b31644b54d910\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_55c4ee639cdf45eb2453ee4fc7\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_6597f3e492f4f8f3cc40772575\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_4f168a45a40758502e4833bb85\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_b628ffa1b2f5415598cfb1a72a\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_01ff3aa3d7f3ea41711fa3abd5\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_e9d2f1997f5bb2e3b25edc3ab6\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7e7bca0ba30295b43b02a69051\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_8b759199b8a0213a7a0f7b1986\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_f4cdbb6a56eb93fa2598c8483d\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3f5906dabc9f129555d823408c\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_3bdf0256c69127d59bfd92a313\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_14b3b3b9c0a1b3a1d2abecb6e7\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_7cdad1f4b4773508db1c7907e3\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_98610803836c2be19b55bc016b\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_711b1c0c94c1f50b72ee0bc5b2\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_75e631fcfae706212f5bd67a93\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_4a9118b99a30cfd3d0c49c3f4b\"\n `);\n await queryRunner.query(`\n CREATE INDEX \"IDX_ce33c3f58b802bb3c7b2668adc\" ON \"auth_events\" USING btree (\"actor_name\")\n `);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCA,IAAaA,4BAAb,MAAaA;CACTC,OAAO;CAEP,MAAaC,GAAGC,aAAyC;EACrD,MAAMA,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EASD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;CACL;CACA,MAAaC,KAAKF,aAAyC;EACvD,MAAMA,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EAKD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;;;SAcvB;EACD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;SAYvB;EACD,MAAMD,YAAYC,MAAM;;;;;;;;;;;;SAYvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;CACL;AACJ"}
@@ -1,20 +1,23 @@
1
1
  import type { IAppEvent } from 'routup';
2
- import type { IdentityProvider } from '@authup/core-kit';
3
- import type { EntityCollectionResponse, EntityRecordResponse, IdentityProviderCreatePayload, IdentityProviderSavePayload, IdentityProviderUpdatePayload } from '@authup/core-http-kit';
4
- import type { IIdentityProviderAccountManager, IIdentityProviderRepository, IOAuth2AccessPolicyEvaluator, IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationStateManager, IOAuth2ClientRepository, IRealmRepository } from '../../../../../core/index.ts';
2
+ import type { IdentityProvider, IdentityProviderAccount } from '@authup/core-kit';
3
+ import type { Logger } from '@authup/server-kit';
4
+ import type { EntityCollectionResponse, EntityRecordResponse, IdentityProviderCreatePayload, IdentityProviderLinkConfirmPayload, IdentityProviderLinkRequestResponse, IdentityProviderSavePayload, IdentityProviderUpdatePayload } from '@authup/core-http-kit';
5
+ import type { IEventService, IIdentityProviderAccountLinkStore, IIdentityProviderAccountManager, IIdentityProviderRepository, IOAuth2AccessPolicyEvaluator, IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationStateManager, IRealmRepository } from '../../../../../core/index.ts';
5
6
  import { OAuth2AuthorizationCodeRequestValidator } from '../../../../../core/index.ts';
6
7
  import type { IdentityProviderControllerContext, IdentityProviderControllerOptions } from './types.ts';
7
8
  export declare class IdentityProviderController {
8
9
  protected options: IdentityProviderControllerOptions;
9
10
  protected repository: IIdentityProviderRepository;
10
11
  protected realmRepository: IRealmRepository;
11
- protected clientRepository: IOAuth2ClientRepository;
12
12
  protected accountManager: IIdentityProviderAccountManager;
13
+ protected linkStore: IIdentityProviderAccountLinkStore;
13
14
  protected codeRequestVerifier: IOAuth2AuthorizationCodeRequestVerifier;
14
15
  protected codeRequestValidator: OAuth2AuthorizationCodeRequestValidator;
15
16
  protected stateManager: IOAuth2AuthorizationStateManager;
16
17
  protected codeIssuer: IOAuth2AuthorizationCodeIssuer;
17
18
  protected accessPolicyEvaluator?: IOAuth2AccessPolicyEvaluator;
19
+ protected eventService?: IEventService;
20
+ protected logger?: Logger;
18
21
  constructor(ctx: IdentityProviderControllerContext);
19
22
  getProviders(event: IAppEvent): Promise<EntityCollectionResponse<IdentityProvider>>;
20
23
  getProvider(id: string, event: IAppEvent): Promise<EntityRecordResponse<IdentityProvider>>;
@@ -23,10 +26,25 @@ export declare class IdentityProviderController {
23
26
  dropProvider(id: string, event: IAppEvent): Promise<EntityRecordResponse<IdentityProvider>>;
24
27
  addProvider(user: IdentityProviderCreatePayload, event: IAppEvent): Promise<EntityRecordResponse<IdentityProvider>>;
25
28
  authorizeOut(_id: string, event: IAppEvent): Promise<Response>;
29
+ linkRequest(_id: string, event: IAppEvent): Promise<IdentityProviderLinkRequestResponse>;
26
30
  authorizeIn(_id: string, event: IAppEvent): Promise<Response>;
27
31
  private write;
32
+ /**
33
+ * Callback half of the account-linking round-trip (plan 091): the
34
+ * external identity is bound to the state-referenced user instead of
35
+ * running the login path. No auth code and no session is minted; the
36
+ * browser lands back on the account console with a marker param.
37
+ */
38
+ private completeLink;
39
+ /**
40
+ * The bearer-authenticated half of the link (issue #3439): the account
41
+ * row is written here, for the AUTHENTICATED user, never in the callback.
42
+ */
43
+ confirmLink(_id: string, _data: IdentityProviderLinkConfirmPayload, event: IAppEvent): Promise<EntityRecordResponse<IdentityProviderAccount>>;
44
+ private pickIdentityCandidate;
28
45
  private buildHostedAuthorizeURL;
29
46
  private resolve;
47
+ private buildProviderAuthenticator;
30
48
  private saveAuthorizationState;
31
49
  private verifyAuthorizationState;
32
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,kBAAkB,CAAC;AAiBzF,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACR,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,uCAAuC,EACvC,gCAAgC,EAChC,uBAAuB,EACvB,gBAAgB,EAEnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,uCAAuC,EAO1C,MAAM,8BAA8B,CAAC;AAYtC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEvG,qBAEa,0BAA0B;IACnC,SAAS,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAErD,SAAS,CAAC,UAAU,EAAE,2BAA2B,CAAC;IAElD,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IAEpD,SAAS,CAAC,cAAc,EAAE,+BAA+B,CAAC;IAE1D,SAAS,CAAC,mBAAmB,EAAG,uCAAuC,CAAC;IAExE,SAAS,CAAC,oBAAoB,EAAG,uCAAuC,CAAC;IAEzE,SAAS,CAAC,YAAY,EAAG,gCAAgC,CAAC;IAE1D,SAAS,CAAC,UAAU,EAAG,8BAA8B,CAAC;IAEtD,SAAS,CAAC,qBAAqB,CAAC,EAAG,4BAA4B,CAAC;gBAIpD,GAAG,EAAE,iCAAiC;IAgB5C,YAAY,CACF,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAuChD,WAAW,CACA,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IA0B5C,YAAY,CACD,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAK7C,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAK7C,YAAY,CACD,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IA6B7C,WAAW,CACJ,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAO7C,YAAY,CACD,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS;IAgD1B,WAAW,CACA,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS;YAyGlB,KAAK;IA+FnB,OAAO,CAAC,uBAAuB;YAmBjB,OAAO;YAYP,sBAAsB;YAWtB,wBAAwB;CAWzC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,OAAO,KAAK,EACR,gBAAgB,EAChB,uBAAuB,EAI1B,MAAM,kBAAkB,CAAC;AAc1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,EAC3B,6BAA6B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACR,aAAa,EACb,iCAAiC,EACjC,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,uCAAuC,EACvC,gCAAgC,EAChC,gBAAgB,EAInB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,uCAAuC,EAO1C,MAAM,8BAA8B,CAAC;AAatC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEvG,qBAEa,0BAA0B;IACnC,SAAS,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAErD,SAAS,CAAC,UAAU,EAAE,2BAA2B,CAAC;IAElD,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,cAAc,EAAE,+BAA+B,CAAC;IAE1D,SAAS,CAAC,SAAS,EAAE,iCAAiC,CAAC;IAEvD,SAAS,CAAC,mBAAmB,EAAG,uCAAuC,CAAC;IAExE,SAAS,CAAC,oBAAoB,EAAG,uCAAuC,CAAC;IAEzE,SAAS,CAAC,YAAY,EAAG,gCAAgC,CAAC;IAE1D,SAAS,CAAC,UAAU,EAAG,8BAA8B,CAAC;IAEtD,SAAS,CAAC,qBAAqB,CAAC,EAAG,4BAA4B,CAAC;IAEhE,SAAS,CAAC,YAAY,CAAC,EAAG,aAAa,CAAC;IAExC,SAAS,CAAC,MAAM,CAAC,EAAG,MAAM,CAAC;gBAIf,GAAG,EAAE,iCAAiC;IAkB5C,YAAY,CACF,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAuChD,WAAW,CACA,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IA0B5C,YAAY,CACD,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAK7C,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAK7C,YAAY,CACD,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IA6B7C,WAAW,CACJ,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAO7C,YAAY,CACD,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS;IA0C1B,WAAW,CACA,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,mCAAmC,CAAC;IA6B1C,WAAW,CACA,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS;YA4KlB,KAAK;IA+FnB;;;;;OAKG;YACW,YAAY;IAyE1B;;;OAGG;IAEG,WAAW,CACA,GAAG,EAAE,MAAM,EACf,KAAK,EAAE,kCAAkC,EACtC,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IA2E1D,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,uBAAuB;YAmBjB,OAAO;IAYrB,OAAO,CAAC,0BAA0B;YAepB,sBAAsB;YAWtB,wBAAwB;CAWzC"}
@@ -14,15 +14,17 @@ import { buildActorContext } from "../../../request/helpers/actor.mjs";
14
14
  import { getBodyRealmID } from "../../../request/helpers/body-realm-id.mjs";
15
15
  import { getRequestParamID, useRequestParamID } from "../../../request/helpers/param-id.mjs";
16
16
  import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
17
+ import { useRequestEventContext } from "../../../request/event-context.mjs";
17
18
  import "../../../request/index.mjs";
18
19
  import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
20
+ import { describeError } from "../../../../../utils/error.mjs";
19
21
  import { resolveURL } from "../../../../../utils/url.mjs";
20
22
  import "../../../../../utils/index.mjs";
21
23
  import "../../../middleware/index.mjs";
22
- import { ValidatorGroup, base64URLDecode, isUUID } from "@authup/kit";
23
- import { IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName, SessionAuthMethod, isOAuth2IdentityProvider, isOpenIDIdentityProvider } from "@authup/core-kit";
24
+ import { ValidatorGroup, base64URLDecode, isObject, isUUID } from "@authup/kit";
25
+ import { EventName, EventRefType, EventScope, IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName, SessionAuthMethod, isOAuth2IdentityProvider, isOpenIDIdentityProvider } from "@authup/core-kit";
24
26
  import { BuiltInPolicyType, definePolicyData } from "@authup/access";
25
- import { BadRequestError, EntityNotFoundError } from "@authup/errors";
27
+ import { BadRequestError, EntityInactiveError, EntityNotFoundError } from "@authup/errors";
26
28
  import { OAuth2ErrorCode, OAuth2RequestError } from "@authup/specs";
27
29
  import { URL } from "node:url";
28
30
  import { getRequestHeader, getRequestIP, sendRedirect } from "routup";
@@ -48,24 +50,28 @@ var IdentityProviderController = class {
48
50
  options;
49
51
  repository;
50
52
  realmRepository;
51
- clientRepository;
52
53
  accountManager;
54
+ linkStore;
53
55
  codeRequestVerifier;
54
56
  codeRequestValidator;
55
57
  stateManager;
56
58
  codeIssuer;
57
59
  accessPolicyEvaluator;
60
+ eventService;
61
+ logger;
58
62
  constructor(ctx) {
59
63
  this.options = ctx.options;
60
64
  this.repository = ctx.repository;
61
65
  this.realmRepository = ctx.realmRepository;
62
- this.clientRepository = ctx.clientRepository;
63
66
  this.accountManager = ctx.accountManager;
67
+ this.linkStore = ctx.linkStore;
64
68
  this.codeIssuer = ctx.codeIssuer;
65
69
  this.codeRequestVerifier = ctx.codeRequestVerifier;
66
70
  this.codeRequestValidator = new OAuth2AuthorizationCodeRequestValidator();
67
71
  this.stateManager = ctx.stateManager;
68
72
  this.accessPolicyEvaluator = ctx.accessPolicyEvaluator;
73
+ this.eventService = ctx.eventService;
74
+ this.logger = ctx.logger;
69
75
  }
70
76
  async getProviders(event) {
71
77
  const { data, meta } = await this.repository.findMany(await decodeQuery(useRequestQuery(event), {
@@ -146,12 +152,7 @@ var IdentityProviderController = class {
146
152
  const id = useRequestParamID(event);
147
153
  const entity = await this.resolve(id);
148
154
  if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new BadRequestError("Only an identity-provider based on the oauth protocol supports authorize redirect.");
149
- const authenticator = createIdentityProviderOAuth2Authenticator({
150
- accountManager: this.accountManager,
151
- provider: entity,
152
- options: { baseURL: this.options.baseURL }
153
- });
154
- const parameters = {};
155
+ const authenticator = this.buildProviderAuthenticator(entity);
155
156
  let codeRequest;
156
157
  const query = useRequestQuery(event);
157
158
  if (typeof query.codeRequest === "string") {
@@ -166,59 +167,86 @@ var IdentityProviderController = class {
166
167
  if (data.client.realmId && entity.realmId && entity.realmId !== data.client.realmId) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
167
168
  codeRequest = data.data;
168
169
  }
169
- parameters.state = await this.saveAuthorizationState(event, codeRequest);
170
- return sendRedirect(event, authenticator.buildRedirectURL(parameters));
170
+ const state = await this.saveAuthorizationState(event, { codeRequest });
171
+ return sendRedirect(event, authenticator.buildRedirectURL({ state }));
172
+ }
173
+ async linkRequest(_id, event) {
174
+ const id = useRequestParamID(event);
175
+ const entity = await this.resolve(id);
176
+ if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new BadRequestError("Only an identity-provider based on the oauth protocol supports account linking.");
177
+ if (!entity.enabled) throw new BadRequestError("The identity provider is not enabled.");
178
+ const identity = useRequestIdentityOrFail(event);
179
+ if (identity.type !== IdentityType.USER) throw new BadRequestError("Only a user can link an identity provider account.");
180
+ if (entity.realmId && entity.realmId !== identity.realmId) throw new BadRequestError("The identity provider does not belong to the user realm.");
181
+ const authenticator = this.buildProviderAuthenticator(entity);
182
+ const state = await this.saveAuthorizationState(event, { link: {
183
+ userId: identity.id,
184
+ providerId: entity.id
185
+ } });
186
+ return { url: authenticator.buildRedirectURL({ state }) };
171
187
  }
172
188
  async authorizeIn(_id, event) {
173
189
  const id = useRequestParamID(event);
174
190
  const entity = await this.resolve(id);
175
191
  if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new Error(`The provider protocol ${entity.protocol} is not valid.`);
176
192
  const data = await this.verifyAuthorizationState(event);
193
+ const { link } = data;
194
+ if (link) return this.completeLink(event, entity, data, link);
177
195
  if (entity.realmId && data.codeRequest && data.codeRequest.realm_id && data.codeRequest.realm_id !== entity.realmId) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
178
196
  const { code } = useRequestQuery(event);
179
- const user = await createIdentityProviderOAuth2Authenticator({
180
- accountManager: this.accountManager,
181
- provider: entity,
182
- options: {
183
- baseURL: this.options.baseURL,
184
- clientId: data.codeRequest?.client_id
185
- }
186
- }).authenticate(code);
197
+ if (typeof code !== "string" || code.length === 0) throw new BadRequestError("The authorization code is missing.");
198
+ const verified = data.codeRequest ? await this.codeRequestVerifier.verify(data.codeRequest) : void 0;
199
+ if (!entity.enabled) throw new BadRequestError("The identity provider is not enabled.");
200
+ const user = await this.buildProviderAuthenticator(entity, { clientId: verified?.data.client_id }).authenticate({ code });
201
+ if (!user.active) throw new EntityInactiveError({ entity: "user" });
187
202
  const realm = await this.realmRepository.resolve(entity.realmId, true);
188
- if (data.codeRequest?.client_id) {
189
- const client = await this.clientRepository.findOneByIdOrName(data.codeRequest.client_id, data.codeRequest.realm_id);
190
- if (client?.accessPolicyId) {
191
- let allowed = false;
192
- const subject = toIdentityPolicyData({
193
- type: IdentityType.USER,
194
- data: {
195
- ...user,
196
- realm
197
- }
198
- });
199
- if (this.accessPolicyEvaluator && subject) allowed = await this.accessPolicyEvaluator.evaluate(client.accessPolicyId, subject);
200
- if (!allowed) {
201
- const url = this.buildHostedAuthorizeURL(data.codeRequest);
202
- url.searchParams.set("error", OAuth2ErrorCode.ACCESS_DENIED);
203
- return sendRedirect(event, url.href);
203
+ if (verified?.client.accessPolicyId) {
204
+ let allowed = false;
205
+ const subject = toIdentityPolicyData({
206
+ type: IdentityType.USER,
207
+ data: {
208
+ ...user,
209
+ realm
204
210
  }
211
+ });
212
+ if (this.accessPolicyEvaluator && subject) allowed = await this.accessPolicyEvaluator.evaluate(verified.client.accessPolicyId, subject);
213
+ if (!allowed) {
214
+ const url = this.buildHostedAuthorizeURL(verified.data);
215
+ url.searchParams.set("error", OAuth2ErrorCode.ACCESS_DENIED);
216
+ return sendRedirect(event, url.href);
205
217
  }
206
218
  }
207
- const authorizationCode = await this.codeIssuer.issue({
208
- response_type: "code",
209
- client_id: data.codeRequest?.client_id,
210
- redirect_uri: data.codeRequest?.redirect_uri,
211
- scope: data.codeRequest?.scope
212
- }, {
219
+ const authorizationCode = await this.codeIssuer.issue(verified?.data ?? { response_type: "code" }, {
213
220
  type: IdentityType.USER,
214
221
  data: {
215
222
  ...user,
216
223
  realm
217
224
  }
218
225
  }, { authMethod: SessionAuthMethod.EXTERNAL });
219
- if (data.codeRequest) {
220
- const url = this.buildHostedAuthorizeURL(data.codeRequest);
226
+ await this.eventService?.record({
227
+ scope: EventScope.OAUTH2,
228
+ name: EventName.AUTHORIZE,
229
+ refType: EventRefType.CLIENT,
230
+ refId: verified?.data.client_id ?? null,
231
+ clientId: verified?.data.client_id ?? null,
232
+ sessionId: null,
233
+ actorType: IdentityType.USER,
234
+ actorId: user.id,
235
+ actorName: user.name,
236
+ realmId: verified?.data.realm_id ?? realm.id,
237
+ requestIpAddress: getRequestIP(event) ?? null,
238
+ requestUserAgent: getRequestHeader(event, "user-agent") ?? null,
239
+ data: {
240
+ reason: "federated",
241
+ providerId: entity.id,
242
+ providerName: entity.name,
243
+ ...verified?.data.scope ? { scope: verified.data.scope } : {}
244
+ }
245
+ });
246
+ if (verified?.redirectUriVerified && verified.data.redirect_uri) {
247
+ const url = new URL(verified.data.redirect_uri);
221
248
  url.searchParams.set("code", authorizationCode.id);
249
+ if (verified.data.state) url.searchParams.set("state", verified.data.state);
222
250
  return sendRedirect(event, url.href);
223
251
  }
224
252
  const url = new URL(this.options.baseURL);
@@ -289,6 +317,89 @@ var IdentityProviderController = class {
289
317
  meta: {}
290
318
  };
291
319
  }
320
+ /**
321
+ * Callback half of the account-linking round-trip (plan 091): the
322
+ * external identity is bound to the state-referenced user instead of
323
+ * running the login path. No auth code and no session is minted; the
324
+ * browser lands back on the account console with a marker param.
325
+ */ async completeLink(event, provider, state, link) {
326
+ const url = new URL(resolveURL(this.options.baseURL, "account/connected-accounts"));
327
+ const { code } = useRequestQuery(event);
328
+ try {
329
+ if (link.providerId !== provider.id || !provider.enabled) throw new BadRequestError("The identity provider is not available for account linking.");
330
+ if (typeof code !== "string" || code.length === 0) throw new BadRequestError("The authorization code is missing.");
331
+ const identity = await this.buildProviderAuthenticator(provider).resolveIdentity({ code });
332
+ if (!identity.id) throw new BadRequestError("The identity provider returned no subject.");
333
+ const handle = await this.linkStore.save({
334
+ providerId: provider.id,
335
+ userId: link.userId,
336
+ providerUserId: identity.id,
337
+ providerUserName: this.pickIdentityCandidate(identity, "name"),
338
+ providerUserEmail: this.pickIdentityCandidate(identity, "email")
339
+ });
340
+ url.searchParams.set("linkHandle", handle);
341
+ url.searchParams.set("provider", provider.id);
342
+ } catch (e) {
343
+ this.logger?.error(describeError(e, "The identity-provider account link failed."));
344
+ url.searchParams.set("linkError", "link_failed");
345
+ }
346
+ return sendRedirect(event, url.href);
347
+ }
348
+ /**
349
+ * The bearer-authenticated half of the link (issue #3439): the account
350
+ * row is written here, for the AUTHENTICATED user, never in the callback.
351
+ */ async confirmLink(_id, _data, event) {
352
+ const id = useRequestParamID(event);
353
+ const provider = await this.resolve(id);
354
+ if (!isOAuth2IdentityProvider(provider) && !isOpenIDIdentityProvider(provider)) throw new BadRequestError("Only an identity-provider based on the oauth protocol supports account linking.");
355
+ if (!provider.enabled) throw new BadRequestError("The identity provider is not enabled.");
356
+ const identity = useRequestIdentityOrFail(event);
357
+ if (identity.type !== IdentityType.USER) throw new BadRequestError("Only a user can link an identity provider account.");
358
+ const body = await readRequestBody(event);
359
+ const handle = isObject(body) ? body.handle : void 0;
360
+ if (typeof handle !== "string" || handle.length === 0) throw new BadRequestError("The account link handle is missing.");
361
+ const link = await this.linkStore.consume(handle);
362
+ if (!link) throw new BadRequestError("The account link request is unknown or expired.");
363
+ if (link.userId !== identity.id || link.providerId !== provider.id) throw new BadRequestError("The account link request does not belong to the authenticated user.");
364
+ const account = await this.accountManager.link({
365
+ id: link.providerUserId,
366
+ attributeCandidates: {
367
+ name: [link.providerUserName],
368
+ email: [link.providerUserEmail]
369
+ },
370
+ data: {},
371
+ provider
372
+ }, identity.id);
373
+ const requestContext = useRequestEventContext();
374
+ await this.eventService?.record({
375
+ scope: EventScope.IDENTITY,
376
+ name: EventName.IDENTITY_PROVIDER_LINKED,
377
+ refType: EventRefType.IDENTITY_PROVIDER_ACCOUNT,
378
+ refId: account.id,
379
+ realmId: account.userRealmId ?? provider.realmId ?? null,
380
+ actorType: IdentityType.USER,
381
+ actorId: account.userId,
382
+ actorName: identity.data.name ?? null,
383
+ sessionId: requestContext?.sessionId ?? null,
384
+ requestPath: requestContext?.requestPath ?? null,
385
+ requestMethod: requestContext?.requestMethod ?? null,
386
+ requestIpAddress: requestContext?.requestIpAddress ?? getRequestIP(event) ?? null,
387
+ requestUserAgent: requestContext?.requestUserAgent ?? getRequestHeader(event, "user-agent") ?? null,
388
+ data: {
389
+ providerId: provider.id,
390
+ providerName: provider.name
391
+ }
392
+ });
393
+ return {
394
+ data: account,
395
+ meta: {}
396
+ };
397
+ }
398
+ pickIdentityCandidate(identity, key) {
399
+ const candidates = identity.attributeCandidates?.[key] || [];
400
+ for (const candidate of candidates) if (typeof candidate === "string" && candidate.length > 0) return candidate;
401
+ return null;
402
+ }
292
403
  buildHostedAuthorizeURL(codeRequest) {
293
404
  const url = new URL(resolveURL(this.options.baseURL, "authorize"));
294
405
  const codeRequestKeys = Object.keys(codeRequest);
@@ -304,9 +415,20 @@ var IdentityProviderController = class {
304
415
  if (!entity) throw new EntityNotFoundError();
305
416
  return entity;
306
417
  }
307
- async saveAuthorizationState(event, codeRequest) {
418
+ buildProviderAuthenticator(provider, options = {}) {
419
+ return createIdentityProviderOAuth2Authenticator({
420
+ accountManager: this.accountManager,
421
+ provider,
422
+ logger: this.logger,
423
+ options: {
424
+ baseURL: this.options.baseURL,
425
+ clientId: options.clientId
426
+ }
427
+ });
428
+ }
429
+ async saveAuthorizationState(event, data = {}) {
308
430
  return this.stateManager.save({
309
- codeRequest,
431
+ ...data,
310
432
  ip: getRequestIP(event) ?? "",
311
433
  userAgent: getRequestHeader(event, "user-agent") ?? void 0
312
434
  });
@@ -385,6 +507,14 @@ _ts_decorate([
385
507
  _ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
386
508
  _ts_metadata("design:returntype", Promise)
387
509
  ], IdentityProviderController.prototype, "authorizeOut", null);
510
+ _ts_decorate([
511
+ DPost("/:id/link-request", [ForceLoggedInMiddleware]),
512
+ _ts_param(0, DPath("id")),
513
+ _ts_param(1, DContext()),
514
+ _ts_metadata("design:type", Function),
515
+ _ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
516
+ _ts_metadata("design:returntype", Promise)
517
+ ], IdentityProviderController.prototype, "linkRequest", null);
388
518
  _ts_decorate([
389
519
  DGet("/:id/authorize-in", []),
390
520
  _ts_param(0, DPath("id")),
@@ -393,6 +523,19 @@ _ts_decorate([
393
523
  _ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
394
524
  _ts_metadata("design:returntype", Promise)
395
525
  ], IdentityProviderController.prototype, "authorizeIn", null);
526
+ _ts_decorate([
527
+ DPost("/:id/link-confirm", [ForceLoggedInMiddleware]),
528
+ _ts_param(0, DPath("id")),
529
+ _ts_param(1, DBody()),
530
+ _ts_param(2, DContext()),
531
+ _ts_metadata("design:type", Function),
532
+ _ts_metadata("design:paramtypes", [
533
+ String,
534
+ typeof IdentityProviderLinkConfirmPayload === "undefined" ? Object : IdentityProviderLinkConfirmPayload,
535
+ typeof IAppEvent === "undefined" ? Object : IAppEvent
536
+ ]),
537
+ _ts_metadata("design:returntype", Promise)
538
+ ], IdentityProviderController.prototype, "confirmLink", null);
396
539
  IdentityProviderController = _ts_decorate([
397
540
  DTags("identity"),
398
541
  DController(["/identity-providers", "/realms/:realmId/identity-providers"]),