@tinyrack/issuary-server 0.21.0 → 0.22.0

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 (306) hide show
  1. package/dist/entities/oauth-client.entity.d.ts +18 -0
  2. package/dist/entities/oauth-client.entity.d.ts.map +1 -1
  3. package/dist/entities/oauth-code.entity.d.ts +18 -0
  4. package/dist/entities/oauth-code.entity.d.ts.map +1 -1
  5. package/dist/entities/oauth-device-code.entity.d.ts +18 -0
  6. package/dist/entities/oauth-device-code.entity.d.ts.map +1 -1
  7. package/dist/entities/revoked-token.entity.d.ts +18 -0
  8. package/dist/entities/revoked-token.entity.d.ts.map +1 -1
  9. package/dist/entities/terms-content.entity.d.ts +9 -0
  10. package/dist/entities/terms-content.entity.d.ts.map +1 -1
  11. package/dist/entities/terms.entity.d.ts +9 -0
  12. package/dist/entities/terms.entity.d.ts.map +1 -1
  13. package/dist/entities/user-consent.entity.d.ts +18 -0
  14. package/dist/entities/user-consent.entity.d.ts.map +1 -1
  15. package/dist/entities/user-terms-consent.entity.d.ts +9 -0
  16. package/dist/entities/user-terms-consent.entity.d.ts.map +1 -1
  17. package/dist/entities/user-totp-recovery-code.entity.d.ts +9 -0
  18. package/dist/entities/user-totp-recovery-code.entity.d.ts.map +1 -1
  19. package/dist/entities/user-totp.entity.d.ts +9 -0
  20. package/dist/entities/user-totp.entity.d.ts.map +1 -1
  21. package/dist/entities/user.entity.d.ts +9 -0
  22. package/dist/entities/user.entity.d.ts.map +1 -1
  23. package/dist/entities/user.entity.js +4 -0
  24. package/dist/entities/user.entity.js.map +1 -1
  25. package/dist/entrypoints/app.d.ts +53 -0
  26. package/dist/entrypoints/app.d.ts.map +1 -1
  27. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +23 -20
  28. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -1
  29. package/dist/entrypoints/database/postgres/compiled-functions.js +134 -104
  30. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -1
  31. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +23 -20
  32. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -1
  33. package/dist/entrypoints/database/sqlite/compiled-functions.js +134 -104
  34. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -1
  35. package/dist/lib/config/resolved.d.ts +1 -0
  36. package/dist/lib/config/resolved.d.ts.map +1 -1
  37. package/dist/lib/config/security.d.ts +2 -0
  38. package/dist/lib/config/security.d.ts.map +1 -1
  39. package/dist/lib/config/security.js +5 -0
  40. package/dist/lib/config/security.js.map +1 -1
  41. package/dist/middleware/auth.d.ts +8 -0
  42. package/dist/middleware/auth.d.ts.map +1 -1
  43. package/dist/middleware/auth.js +64 -0
  44. package/dist/middleware/auth.js.map +1 -1
  45. package/dist/middleware/session.d.ts +9 -0
  46. package/dist/middleware/session.d.ts.map +1 -1
  47. package/dist/middleware/session.js +18 -0
  48. package/dist/middleware/session.js.map +1 -1
  49. package/dist/migrations/postgres/Migration20260825110000_add_password_reset_required.d.ts +6 -0
  50. package/dist/migrations/postgres/Migration20260825110000_add_password_reset_required.d.ts.map +1 -0
  51. package/dist/migrations/postgres/Migration20260825110000_add_password_reset_required.js +11 -0
  52. package/dist/migrations/postgres/Migration20260825110000_add_password_reset_required.js.map +1 -0
  53. package/dist/migrations/postgres/index.d.ts.map +1 -1
  54. package/dist/migrations/postgres/index.js +2 -0
  55. package/dist/migrations/postgres/index.js.map +1 -1
  56. package/dist/migrations/sqlite/Migration20260825110000_add_password_reset_required.d.ts +6 -0
  57. package/dist/migrations/sqlite/Migration20260825110000_add_password_reset_required.d.ts.map +1 -0
  58. package/dist/migrations/sqlite/Migration20260825110000_add_password_reset_required.js +10 -0
  59. package/dist/migrations/sqlite/Migration20260825110000_add_password_reset_required.js.map +1 -0
  60. package/dist/migrations/sqlite/index.d.ts.map +1 -1
  61. package/dist/migrations/sqlite/index.js +2 -0
  62. package/dist/migrations/sqlite/index.js.map +1 -1
  63. package/dist/repositories/oauth-code.repository.d.ts +2 -2
  64. package/dist/repositories/oauth-code.repository.d.ts.map +1 -1
  65. package/dist/repositories/oauth-code.repository.js +7 -3
  66. package/dist/repositories/oauth-code.repository.js.map +1 -1
  67. package/dist/repositories/oauth-device-code.repository.d.ts +4 -4
  68. package/dist/repositories/oauth-device-code.repository.d.ts.map +1 -1
  69. package/dist/repositories/oauth-device-code.repository.js +18 -6
  70. package/dist/repositories/oauth-device-code.repository.js.map +1 -1
  71. package/dist/repositories/user-totp-recovery-code.repository.d.ts +7 -1
  72. package/dist/repositories/user-totp-recovery-code.repository.d.ts.map +1 -1
  73. package/dist/repositories/user-totp-recovery-code.repository.js +2 -1
  74. package/dist/repositories/user-totp-recovery-code.repository.js.map +1 -1
  75. package/dist/repositories/user-totp.repository.d.ts +9 -0
  76. package/dist/repositories/user-totp.repository.d.ts.map +1 -1
  77. package/dist/routes/api/auth/index.d.ts +52 -0
  78. package/dist/routes/api/auth/index.d.ts.map +1 -1
  79. package/dist/routes/api/auth/index.js +2 -0
  80. package/dist/routes/api/auth/index.js.map +1 -1
  81. package/dist/routes/api/auth/passkey/verify/post.d.ts +37 -0
  82. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -1
  83. package/dist/routes/api/auth/passkey/verify/post.js +8 -2
  84. package/dist/routes/api/auth/passkey/verify/post.js.map +1 -1
  85. package/dist/routes/api/auth/password/reset-required/post.d.ts +18 -0
  86. package/dist/routes/api/auth/password/reset-required/post.d.ts.map +1 -0
  87. package/dist/routes/api/auth/password/reset-required/post.js +39 -0
  88. package/dist/routes/api/auth/password/reset-required/post.js.map +1 -0
  89. package/dist/routes/api/index.d.ts +52 -0
  90. package/dist/routes/api/index.d.ts.map +1 -1
  91. package/dist/routes/index.d.ts +52 -0
  92. package/dist/routes/index.d.ts.map +1 -1
  93. package/dist/routes/oauth/device/get-post.js +5 -5
  94. package/dist/routes/oauth/device/get-post.js.map +1 -1
  95. package/dist/schemas/error.d.ts +25 -0
  96. package/dist/schemas/error.d.ts.map +1 -1
  97. package/dist/schemas/error.js +1 -0
  98. package/dist/schemas/error.js.map +1 -1
  99. package/dist/schemas/response.d.ts +22 -0
  100. package/dist/schemas/response.d.ts.map +1 -1
  101. package/dist/schemas/response.js +8 -0
  102. package/dist/schemas/response.js.map +1 -1
  103. package/dist/seeders/config.seeder.js +2 -1
  104. package/dist/seeders/config.seeder.js.map +1 -1
  105. package/dist/services/container.d.ts +1 -0
  106. package/dist/services/container.d.ts.map +1 -1
  107. package/dist/services/container.js +15 -0
  108. package/dist/services/container.js.map +1 -1
  109. package/dist/services/legacy-credential-retirement.service.d.ts +20 -0
  110. package/dist/services/legacy-credential-retirement.service.d.ts.map +1 -0
  111. package/dist/services/legacy-credential-retirement.service.js +90 -0
  112. package/dist/services/legacy-credential-retirement.service.js.map +1 -0
  113. package/dist/services/oauth-client.service.d.ts +1 -0
  114. package/dist/services/oauth-client.service.d.ts.map +1 -1
  115. package/dist/services/oauth-client.service.js +17 -2
  116. package/dist/services/oauth-client.service.js.map +1 -1
  117. package/dist/services/oauth-connect.service.d.ts.map +1 -1
  118. package/dist/services/oauth-connect.service.js +4 -0
  119. package/dist/services/oauth-connect.service.js.map +1 -1
  120. package/dist/services/oauth-token.service.d.ts.map +1 -1
  121. package/dist/services/oauth-token.service.js +4 -4
  122. package/dist/services/oauth-token.service.js.map +1 -1
  123. package/dist/services/password-auth.service.d.ts.map +1 -1
  124. package/dist/services/password-auth.service.js +12 -3
  125. package/dist/services/password-auth.service.js.map +1 -1
  126. package/dist/services/security.service.d.ts +8 -0
  127. package/dist/services/security.service.d.ts.map +1 -1
  128. package/dist/services/security.service.js +85 -22
  129. package/dist/services/security.service.js.map +1 -1
  130. package/dist/services/totp.service.js +2 -2
  131. package/dist/services/totp.service.js.map +1 -1
  132. package/package.json +1 -1
  133. package/public/assets/2fa-BgveHSB_.js +2 -0
  134. package/public/assets/{2fa-B5vLgDXQ.js.map → 2fa-BgveHSB_.js.map} +1 -1
  135. package/public/assets/2fa-C37MUkye.js +2 -0
  136. package/public/assets/{2fa-CCOTIHDZ.js.map → 2fa-C37MUkye.js.map} +1 -1
  137. package/public/assets/2fa-UL_cNRnQ.js +2 -0
  138. package/public/assets/{2fa-C5vUVgr_.js.map → 2fa-UL_cNRnQ.js.map} +1 -1
  139. package/public/assets/2fa-kiqzGSz2.js +2 -0
  140. package/public/assets/{2fa-BqsM_D-X.js.map → 2fa-kiqzGSz2.js.map} +1 -1
  141. package/public/assets/{DialogHandle-BmtK2pRn.js → DialogHandle-Zvz8SgS0.js} +2 -2
  142. package/public/assets/{DialogHandle-BmtK2pRn.js.map → DialogHandle-Zvz8SgS0.js.map} +1 -1
  143. package/public/assets/admin-DbDuu6AI.js +2 -0
  144. package/public/assets/{admin-BPijkLw-.js.map → admin-DbDuu6AI.js.map} +1 -1
  145. package/public/assets/admin-users-CwTJdiih.js +2 -0
  146. package/public/assets/{admin-users-DvPbw1Vq.js.map → admin-users-CwTJdiih.js.map} +1 -1
  147. package/public/assets/{auth-choice-row-BCGjuedo.js → auth-choice-row-BlSsUI7d.js} +2 -2
  148. package/public/assets/{auth-choice-row-BCGjuedo.js.map → auth-choice-row-BlSsUI7d.js.map} +1 -1
  149. package/public/assets/{auth-field-DD8kvl--.js → auth-field-HwxENJnB.js} +2 -2
  150. package/public/assets/{auth-field-DD8kvl--.js.map → auth-field-HwxENJnB.js.map} +1 -1
  151. package/public/assets/{auth-layout-VtpryDof.js → auth-layout-CoeqNhTT.js} +2 -2
  152. package/public/assets/{auth-layout-VtpryDof.js.map → auth-layout-CoeqNhTT.js.map} +1 -1
  153. package/public/assets/{auth-page-header-CIn2E4zI.js → auth-page-header-CIs08f5Y.js} +2 -2
  154. package/public/assets/{auth-page-header-CIn2E4zI.js.map → auth-page-header-CIs08f5Y.js.map} +1 -1
  155. package/public/assets/{authorization-context-banner-SOuBHWIb.js → authorization-context-banner-BbtQmMYH.js} +2 -2
  156. package/public/assets/{authorization-context-banner-SOuBHWIb.js.map → authorization-context-banner-BbtQmMYH.js.map} +1 -1
  157. package/public/assets/{avatar-BEQjf2x6.js → avatar-CttWiIv3.js} +2 -2
  158. package/public/assets/{avatar-BEQjf2x6.js.map → avatar-CttWiIv3.js.map} +1 -1
  159. package/public/assets/{checkbox-gdHnSFQ-.js → checkbox-CJrRV8S1.js} +2 -2
  160. package/public/assets/{checkbox-gdHnSFQ-.js.map → checkbox-CJrRV8S1.js.map} +1 -1
  161. package/public/assets/config-v3-oy_ef.js +2 -0
  162. package/public/assets/config-v3-oy_ef.js.map +1 -0
  163. package/public/assets/{consent-BqqFDdsr.js → consent-BIhxtXHx.js} +2 -2
  164. package/public/assets/{consent-BqqFDdsr.js.map → consent-BIhxtXHx.js.map} +1 -1
  165. package/public/assets/{consent-CfRbz2R7.js → consent-DRmENn26.js} +2 -2
  166. package/public/assets/{consent-CfRbz2R7.js.map → consent-DRmENn26.js.map} +1 -1
  167. package/public/assets/{email-CKKakxPJ.js → email-CVRDeJ78.js} +2 -2
  168. package/public/assets/{email-CKKakxPJ.js.map → email-CVRDeJ78.js.map} +1 -1
  169. package/public/assets/email-UL_cNRnQ.js +2 -0
  170. package/public/assets/{email-C5vUVgr_.js.map → email-UL_cNRnQ.js.map} +1 -1
  171. package/public/assets/error-2VPY5w8V.js +2 -0
  172. package/public/assets/{error-BMXxpgfR.js.map → error-2VPY5w8V.js.map} +1 -1
  173. package/public/assets/{field-Cn4H1CUj.js → field-DDt6F9TZ.js} +2 -2
  174. package/public/assets/{field-Cn4H1CUj.js.map → field-DDt6F9TZ.js.map} +1 -1
  175. package/public/assets/forgot-DzDcduho.js +2 -0
  176. package/public/assets/{forgot-rO9sByfV.js.map → forgot-DzDcduho.js.map} +1 -1
  177. package/public/assets/forgot-UL_cNRnQ.js +2 -0
  178. package/public/assets/{forgot-C5vUVgr_.js.map → forgot-UL_cNRnQ.js.map} +1 -1
  179. package/public/assets/index-gliHKncz.js +11 -0
  180. package/public/assets/index-gliHKncz.js.map +1 -0
  181. package/public/assets/{initial-avatar-CtuDUz_W.js → initial-avatar-CZzHAPm3.js} +2 -2
  182. package/public/assets/{initial-avatar-CtuDUz_W.js.map → initial-avatar-CZzHAPm3.js.map} +1 -1
  183. package/public/assets/{input-CzQki7k6.js → input-CNRpSR08.js} +2 -2
  184. package/public/assets/{input-CzQki7k6.js.map → input-CNRpSR08.js.map} +1 -1
  185. package/public/assets/{labeled-separator-CV7nb0XW.js → labeled-separator-fnKySKv2.js} +2 -2
  186. package/public/assets/{labeled-separator-CV7nb0XW.js.map → labeled-separator-fnKySKv2.js.map} +1 -1
  187. package/public/assets/link-BN90emXr.js +2 -0
  188. package/public/assets/link-BN90emXr.js.map +1 -0
  189. package/public/assets/lock-keyhole-Cz72xkCn.js +2 -0
  190. package/public/assets/lock-keyhole-Cz72xkCn.js.map +1 -0
  191. package/public/assets/login-C6m2qSUt.js +2 -0
  192. package/public/assets/login-C6m2qSUt.js.map +1 -0
  193. package/public/assets/login-UL_cNRnQ.js +2 -0
  194. package/public/assets/login-UL_cNRnQ.js.map +1 -0
  195. package/public/assets/{logout-B5T52P8u.js → logout-CHdmF_16.js} +2 -2
  196. package/public/assets/{logout-B5T52P8u.js.map → logout-CHdmF_16.js.map} +1 -1
  197. package/public/assets/{modal-BDQFucjz.js → modal-sCM_zT82.js} +2 -2
  198. package/public/assets/{modal-BDQFucjz.js.map → modal-sCM_zT82.js.map} +1 -1
  199. package/public/assets/{mutationOptions-DyYFUbyn.js → mutationOptions-CrswitPs.js} +2 -2
  200. package/public/assets/{mutationOptions-DyYFUbyn.js.map → mutationOptions-CrswitPs.js.map} +1 -1
  201. package/public/assets/passkey-B2Blw47e.js +2 -0
  202. package/public/assets/{passkey-J1qnYp9A.js.map → passkey-B2Blw47e.js.map} +1 -1
  203. package/public/assets/passkey-CEx1VZ5R.js +2 -0
  204. package/public/assets/{passkey-CynCz1Dt.js.map → passkey-CEx1VZ5R.js.map} +1 -1
  205. package/public/assets/passkey-CU8x9J2w.js +2 -0
  206. package/public/assets/{passkey-BE9JvJOP.js.map → passkey-CU8x9J2w.js.map} +1 -1
  207. package/public/assets/passkey-UL_cNRnQ.js +2 -0
  208. package/public/assets/{passkey-C5vUVgr_.js.map → passkey-UL_cNRnQ.js.map} +1 -1
  209. package/public/assets/password-BhU_a0cR.js +2 -0
  210. package/public/assets/password-BhU_a0cR.js.map +1 -0
  211. package/public/assets/password-UL_cNRnQ.js +2 -0
  212. package/public/assets/password-UL_cNRnQ.js.map +1 -0
  213. package/public/assets/password-reset-CIacHnvA.js +2 -0
  214. package/public/assets/{password-reset-sU5KkBKi.js.map → password-reset-CIacHnvA.js.map} +1 -1
  215. package/public/assets/{password-strength-BeSOu_Ga.js → password-strength-C0Zkrrct.js} +2 -2
  216. package/public/assets/{password-strength-BeSOu_Ga.js.map → password-strength-C0Zkrrct.js.map} +1 -1
  217. package/public/assets/{pin-input-Cc-VkrQ3.js → pin-input-BlD4tPZJ.js} +2 -2
  218. package/public/assets/{pin-input-Cc-VkrQ3.js.map → pin-input-BlD4tPZJ.js.map} +1 -1
  219. package/public/assets/{profile-BcjsVYOx.js → profile-D1cEjfs8.js} +2 -2
  220. package/public/assets/{profile-BcjsVYOx.js.map → profile-D1cEjfs8.js.map} +1 -1
  221. package/public/assets/{profile-B5NaJfeS.js → profile-D43Yq-6S.js} +2 -2
  222. package/public/assets/{profile-B5NaJfeS.js.map → profile-D43Yq-6S.js.map} +1 -1
  223. package/public/assets/recovery-CLExnfYX.js +2 -0
  224. package/public/assets/{recovery-PnUATiUi.js.map → recovery-CLExnfYX.js.map} +1 -1
  225. package/public/assets/register-CZUyWXRO.js +2 -0
  226. package/public/assets/{register-DQXhru0_.js.map → register-CZUyWXRO.js.map} +1 -1
  227. package/public/assets/register-UL_cNRnQ.js +2 -0
  228. package/public/assets/{register-C5vUVgr_.js.map → register-UL_cNRnQ.js.map} +1 -1
  229. package/public/assets/reset-N3RQTYEB.js +2 -0
  230. package/public/assets/reset-N3RQTYEB.js.map +1 -0
  231. package/public/assets/reset-UL_cNRnQ.js +2 -0
  232. package/public/assets/{reset-C5vUVgr_.js.map → reset-UL_cNRnQ.js.map} +1 -1
  233. package/public/assets/reset-required-Cv5edDS6.js +2 -0
  234. package/public/assets/reset-required-Cv5edDS6.js.map +1 -0
  235. package/public/assets/reset-required-UL_cNRnQ.js +2 -0
  236. package/public/assets/reset-required-UL_cNRnQ.js.map +1 -0
  237. package/public/assets/{select-DqZynXSt.js → select-CWdSzsVo.js} +2 -2
  238. package/public/assets/{select-DqZynXSt.js.map → select-CWdSzsVo.js.map} +1 -1
  239. package/public/assets/select-UL_cNRnQ.js +2 -0
  240. package/public/assets/{select-C5vUVgr_.js.map → select-UL_cNRnQ.js.map} +1 -1
  241. package/public/assets/{separator-B0Bvh1he.js → separator-BWGym8uM.js} +2 -2
  242. package/public/assets/{separator-B0Bvh1he.js.map → separator-BWGym8uM.js.map} +1 -1
  243. package/public/assets/shell-header-bar-C9AB5lT-.js +2 -0
  244. package/public/assets/{shell-header-bar-CjG5qvPg.js.map → shell-header-bar-C9AB5lT-.js.map} +1 -1
  245. package/public/assets/{terms-BHDAgn-H.js → terms-COVFmzyl.js} +2 -2
  246. package/public/assets/{terms-BHDAgn-H.js.map → terms-COVFmzyl.js.map} +1 -1
  247. package/public/assets/{terms-B5NaJfeS.js → terms-D43Yq-6S.js} +2 -2
  248. package/public/assets/{terms-B5NaJfeS.js.map → terms-D43Yq-6S.js.map} +1 -1
  249. package/public/assets/{terms-checkbox-list-6jteUTIZ.js → terms-checkbox-list-Cw0zB-lO.js} +2 -2
  250. package/public/assets/{terms-checkbox-list-6jteUTIZ.js.map → terms-checkbox-list-Cw0zB-lO.js.map} +1 -1
  251. package/public/assets/totp-BFJEXxk0.js +2 -0
  252. package/public/assets/{totp-CJtfVNEq.js.map → totp-BFJEXxk0.js.map} +1 -1
  253. package/public/assets/{totp-BNZ904Zm.js → totp-BfCm6IWl.js} +2 -2
  254. package/public/assets/{totp-BNZ904Zm.js.map → totp-BfCm6IWl.js.map} +1 -1
  255. package/public/assets/totp-MINhsVxT.js +2 -0
  256. package/public/assets/{totp-ECvOUcFx.js.map → totp-MINhsVxT.js.map} +1 -1
  257. package/public/assets/use-totp-setup-C7Zk_2IY.js +3 -0
  258. package/public/assets/{use-totp-setup-BbS3XcZA.js.map → use-totp-setup-C7Zk_2IY.js.map} +1 -1
  259. package/public/assets/{useAriaLabelledBy-ByuMi3Ry.js → useAriaLabelledBy-CiOCg6X5.js} +2 -2
  260. package/public/assets/{useAriaLabelledBy-ByuMi3Ry.js.map → useAriaLabelledBy-CiOCg6X5.js.map} +1 -1
  261. package/public/assets/{useMutation-BWZ0G4Td.js → useMutation-ZLFeJg75.js} +2 -2
  262. package/public/assets/{useMutation-BWZ0G4Td.js.map → useMutation-ZLFeJg75.js.map} +1 -1
  263. package/public/assets/useQuery-BvMz34BW.js +2 -0
  264. package/public/assets/{useQuery-Ckxjmvtl.js.map → useQuery-BvMz34BW.js.map} +1 -1
  265. package/public/assets/{users-CmFxrCQT.js → users-COM7u3A-.js} +2 -2
  266. package/public/assets/{users-CmFxrCQT.js.map → users-COM7u3A-.js.map} +1 -1
  267. package/public/index.html +4 -3
  268. package/public/assets/2fa-B5vLgDXQ.js +0 -2
  269. package/public/assets/2fa-BqsM_D-X.js +0 -2
  270. package/public/assets/2fa-C5vUVgr_.js +0 -2
  271. package/public/assets/2fa-CCOTIHDZ.js +0 -2
  272. package/public/assets/admin-BPijkLw-.js +0 -2
  273. package/public/assets/admin-users-DvPbw1Vq.js +0 -2
  274. package/public/assets/config-DTQCUlfZ.js +0 -2
  275. package/public/assets/config-DTQCUlfZ.js.map +0 -1
  276. package/public/assets/email-C5vUVgr_.js +0 -2
  277. package/public/assets/error-BMXxpgfR.js +0 -2
  278. package/public/assets/forgot-C5vUVgr_.js +0 -2
  279. package/public/assets/forgot-rO9sByfV.js +0 -2
  280. package/public/assets/index-CS23Ozt6.js +0 -11
  281. package/public/assets/index-CS23Ozt6.js.map +0 -1
  282. package/public/assets/login-C5vUVgr_.js +0 -2
  283. package/public/assets/login-C5vUVgr_.js.map +0 -1
  284. package/public/assets/login-nukebli4.js +0 -2
  285. package/public/assets/login-nukebli4.js.map +0 -1
  286. package/public/assets/passkey-BE9JvJOP.js +0 -2
  287. package/public/assets/passkey-C5vUVgr_.js +0 -2
  288. package/public/assets/passkey-CynCz1Dt.js +0 -2
  289. package/public/assets/passkey-J1qnYp9A.js +0 -2
  290. package/public/assets/password-C5vUVgr_.js +0 -2
  291. package/public/assets/password-C5vUVgr_.js.map +0 -1
  292. package/public/assets/password-RkUttbhD.js +0 -2
  293. package/public/assets/password-RkUttbhD.js.map +0 -1
  294. package/public/assets/password-reset-sU5KkBKi.js +0 -2
  295. package/public/assets/recovery-PnUATiUi.js +0 -2
  296. package/public/assets/register-C5vUVgr_.js +0 -2
  297. package/public/assets/register-DQXhru0_.js +0 -2
  298. package/public/assets/reset-C5vUVgr_.js +0 -2
  299. package/public/assets/reset-CQgIa3yf.js +0 -2
  300. package/public/assets/reset-CQgIa3yf.js.map +0 -1
  301. package/public/assets/select-C5vUVgr_.js +0 -2
  302. package/public/assets/shell-header-bar-CjG5qvPg.js +0 -2
  303. package/public/assets/totp-CJtfVNEq.js +0 -2
  304. package/public/assets/totp-ECvOUcFx.js +0 -2
  305. package/public/assets/use-totp-setup-BbS3XcZA.js +0 -3
  306. package/public/assets/useQuery-Ckxjmvtl.js +0 -2
@@ -15,8 +15,11 @@ export class OAuthDeviceCodeRepository extends EntityRepository {
15
15
  return entity;
16
16
  }
17
17
  async findPendingByUserCodeHash(userCodeHash) {
18
+ const userCodeHashes = Array.isArray(userCodeHash)
19
+ ? userCodeHash
20
+ : [userCodeHash];
18
21
  return this.findOne({
19
- userCodeHash,
22
+ userCodeHash: { $in: userCodeHashes },
20
23
  consumedAt: null,
21
24
  authorizedAt: null,
22
25
  deniedAt: null,
@@ -24,8 +27,11 @@ export class OAuthDeviceCodeRepository extends EntityRepository {
24
27
  });
25
28
  }
26
29
  async approvePendingByUserCodeHash(params) {
30
+ const userCodeHashes = Array.isArray(params.userCodeHash)
31
+ ? params.userCodeHash
32
+ : [params.userCodeHash];
27
33
  const updated = await this.nativeUpdate({
28
- userCodeHash: params.userCodeHash,
34
+ userCodeHash: { $in: userCodeHashes },
29
35
  consumedAt: null,
30
36
  authorizedAt: null,
31
37
  deniedAt: null,
@@ -37,11 +43,14 @@ export class OAuthDeviceCodeRepository extends EntityRepository {
37
43
  if (updated !== 1) {
38
44
  return null;
39
45
  }
40
- return this.findOne({ userCodeHash: params.userCodeHash }, { populate: ['client'] });
46
+ return this.findOne({ userCodeHash: { $in: userCodeHashes } }, { populate: ['client'] });
41
47
  }
42
48
  async denyPendingByUserCodeHash(params) {
49
+ const userCodeHashes = Array.isArray(params.userCodeHash)
50
+ ? params.userCodeHash
51
+ : [params.userCodeHash];
43
52
  const updated = await this.nativeUpdate({
44
- userCodeHash: params.userCodeHash,
53
+ userCodeHash: { $in: userCodeHashes },
45
54
  consumedAt: null,
46
55
  authorizedAt: null,
47
56
  deniedAt: null,
@@ -52,12 +61,15 @@ export class OAuthDeviceCodeRepository extends EntityRepository {
52
61
  if (updated !== 1) {
53
62
  return null;
54
63
  }
55
- return this.findOne({ userCodeHash: params.userCodeHash }, { populate: ['client'] });
64
+ return this.findOne({ userCodeHash: { $in: userCodeHashes } }, { populate: ['client'] });
56
65
  }
57
66
  async findByClientAndDeviceCodeHash(clientId, deviceCodeHash) {
67
+ const deviceCodeHashes = Array.isArray(deviceCodeHash)
68
+ ? deviceCodeHash
69
+ : [deviceCodeHash];
58
70
  return this.findOne({
59
71
  client: clientId,
60
- deviceCodeHash,
72
+ deviceCodeHash: { $in: deviceCodeHashes },
61
73
  consumedAt: null,
62
74
  });
63
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-device-code.repository.js","sourceRoot":"","sources":["../../src/repositories/oauth-device-code.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAI5C,MAAM,OAAO,yBAA0B,SAAQ,gBAAwC;IACrF,KAAK,CAAC,yBAAyB,CAAC,MAM/B;QACC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,GAAG,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC,QAAQ;YACvB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS;SACV,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,YAAoB;QAEpB,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,YAAY;YACZ,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,MAIlC;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE;SACtC,EACD;YACE,cAAc,EAAE,MAAM,CAAC,OAAO;YAC9B,YAAY,EAAE,MAAM,CAAC,UAAU;SAChC,CACF,CAAC;QAEF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,EACrC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,MAG/B;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;SACpC,EACD;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CACF,CAAC;QAEF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,EACrC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,6BAA6B,CACjC,QAAgB,EAChB,cAAsB;QAEtB,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,QAAQ;YAChB,cAAc;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAGvB;QACC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CACnC;YACE,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;SACpC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GACnB,UAAU,CAAC,mBAAmB,IAAI,iCAAiC,CAAC;QACtE,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC1D,MAAM,UAAU,GACd,cAAc,KAAK,SAAS;YAC5B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,cAAc,GAAG,eAAe,GAAG,IAAI,CAAC;QACtE,MAAM,mBAAmB,GAAG,UAAU;YACpC,CAAC,CAAC,eAAe,GAAG,CAAC;YACrB,CAAC,CAAC,eAAe,CAAC;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;YACnC,mBAAmB,EAAE,eAAe;YACpC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,IAAI;SAC9C,EACD;YACE,YAAY,EAAE,MAAM,CAAC,QAAQ;YAC7B,mBAAmB,EAAE,mBAAmB;SACzC,CACF,CAAC;QAEF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,EAAU,EACV,UAAgB;QAEhB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;SAC/B,EACD,EAAE,UAAU,EAAE,CACf,CAAC;QAEF,OAAO,OAAO,KAAK,CAAC,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"oauth-device-code.repository.js","sourceRoot":"","sources":["../../src/repositories/oauth-device-code.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAI5C,MAAM,OAAO,yBAA0B,SAAQ,gBAAwC;IACrF,KAAK,CAAC,yBAAyB,CAAC,MAM/B;QACC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,GAAG,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC,QAAQ;YACvB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS;SACV,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,YAA+B;QAE/B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YAChD,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,MAIlC;QACC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE;SACtC,EACD;YACE,cAAc,EAAE,MAAM,CAAC,OAAO;YAC9B,YAAY,EAAE,MAAM,CAAC,UAAU;SAChC,CACF,CAAC;QAEF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EACzC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,MAG/B;QACC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;SACpC,EACD;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CACF,CAAC;QAEF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EACzC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,6BAA6B,CACjC,QAAgB,EAChB,cAAiC;QAEjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YACpD,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE;YACzC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAGvB;QACC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CACnC;YACE,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;SACpC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GACnB,UAAU,CAAC,mBAAmB,IAAI,iCAAiC,CAAC;QACtE,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC1D,MAAM,UAAU,GACd,cAAc,KAAK,SAAS;YAC5B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,cAAc,GAAG,eAAe,GAAG,IAAI,CAAC;QACtE,MAAM,mBAAmB,GAAG,UAAU;YACpC,CAAC,CAAC,eAAe,GAAG,CAAC;YACrB,CAAC,CAAC,eAAe,CAAC;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;YACnC,mBAAmB,EAAE,eAAe;YACpC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,IAAI;SAC9C,EACD;YACE,YAAY,EAAE,MAAM,CAAC,QAAQ;YAC7B,mBAAmB,EAAE,mBAAmB;SACzC,CACF,CAAC;QAEF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,EAAU,EACV,UAAgB;QAEhB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC;YACE,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;SAC/B,EACD,EAAE,UAAU,EAAE,CACf,CAAC;QAEF,OAAO,OAAO,KAAK,CAAC,CAAC;IACvB,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { EntityRepository } from '@mikro-orm/core';
2
2
  import type { IUserTotpRecoveryCodeEntity } from '../entities/user-totp-recovery-code.entity.ts';
3
3
  export declare class UserTotpRecoveryCodeRepository extends EntityRepository<IUserTotpRecoveryCodeEntity> {
4
- findUnusedByUserSubAndCodeHash(userSub: string, codeHash: string): Promise<import("@mikro-orm/core").Loaded<import("@mikro-orm/core").InferEntityFromProperties<{
4
+ findUnusedByUserSubAndCodeHash(userSub: string, codeHash: string | string[]): Promise<import("@mikro-orm/core").Loaded<import("@mikro-orm/core").InferEntityFromProperties<{
5
5
  readonly id: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<string, Omit<import("@mikro-orm/core").EmptyOptions, "primary"> & {
6
6
  primary: true;
7
7
  } & {
@@ -20,6 +20,9 @@ export declare class UserTotpRecoveryCodeRepository extends EntityRepository<IUs
20
20
  readonly password_hash: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<string, Omit<import("@mikro-orm/core").EmptyOptions, "nullable"> & {
21
21
  nullable: true;
22
22
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
23
+ readonly password_reset_required: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<NonNullable<boolean | null | undefined>, Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
24
+ default: false;
25
+ }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
23
26
  readonly managed_by: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<"database" | "config", Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
24
27
  default: "database";
25
28
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
@@ -207,6 +210,9 @@ export declare class UserTotpRecoveryCodeRepository extends EntityRepository<IUs
207
210
  readonly password_hash: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<string, Omit<import("@mikro-orm/core").EmptyOptions, "nullable"> & {
208
211
  nullable: true;
209
212
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
213
+ readonly password_reset_required: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<NonNullable<boolean | null | undefined>, Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
214
+ default: false;
215
+ }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
210
216
  readonly managed_by: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<"database" | "config", Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
211
217
  default: "database";
212
218
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
@@ -1 +1 @@
1
- {"version":3,"file":"user-totp-recovery-code.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/user-totp-recovery-code.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAEjG,qBAAa,8BAA+B,SAAQ,gBAAgB,CAAC,2BAA2B,CAAC;IACzF,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;uBA0C0xhB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAlCn2hB;;;;;OAKG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM;;;;uBA4BuzhB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAxBn2hB;;;;;OAKG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM;IAIpC,cAAc,CAAC,OAAO,EAAE,MAAM;IAIpC;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM;CAGtC"}
1
+ {"version":3,"file":"user-totp-recovery-code.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/user-totp-recovery-code.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAEjG,qBAAa,8BAA+B,SAAQ,gBAAgB,CAAC,2BAA2B,CAAC;IACzF,8BAA8B,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;;;;uBA4CwthB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAlCxvhB;;;;;OAKG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM;;;;uBA4B4shB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAxBxvhB;;;;;OAKG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM;IAIpC,cAAc,CAAC,OAAO,EAAE,MAAM;IAIpC;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM;CAGtC"}
@@ -1,9 +1,10 @@
1
1
  import { EntityRepository } from '@mikro-orm/core';
2
2
  export class UserTotpRecoveryCodeRepository extends EntityRepository {
3
3
  async findUnusedByUserSubAndCodeHash(userSub, codeHash) {
4
+ const codeHashes = Array.isArray(codeHash) ? codeHash : [codeHash];
4
5
  return this.findOne({
5
6
  user: { sub: userSub },
6
- code_hash: codeHash,
7
+ code_hash: { $in: codeHashes },
7
8
  used: false,
8
9
  });
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-totp-recovery-code.repository.js","sourceRoot":"","sources":["../../src/repositories/user-totp-recovery-code.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,OAAO,8BAA+B,SAAQ,gBAA6C;IAC/F,KAAK,CAAC,8BAA8B,CAAC,OAAe,EAAE,QAAgB;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;YACtB,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAe;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF"}
1
+ {"version":3,"file":"user-totp-recovery-code.repository.js","sourceRoot":"","sources":["../../src/repositories/user-totp-recovery-code.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,OAAO,8BAA+B,SAAQ,gBAA6C;IAC/F,KAAK,CAAC,8BAA8B,CAClC,OAAe,EACf,QAA2B;QAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;YACtB,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;YAC9B,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAe;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF"}
@@ -26,6 +26,9 @@ export declare class UserTotpRepository extends EntityRepository<IUserTotpEntity
26
26
  readonly password_hash: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<string, Omit<import("@mikro-orm/core").EmptyOptions, "nullable"> & {
27
27
  nullable: true;
28
28
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
29
+ readonly password_reset_required: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<NonNullable<boolean | null | undefined>, Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
30
+ default: false;
31
+ }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
29
32
  readonly managed_by: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<"database" | "config", Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
30
33
  default: "database";
31
34
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
@@ -214,6 +217,9 @@ export declare class UserTotpRepository extends EntityRepository<IUserTotpEntity
214
217
  readonly password_hash: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<string, Omit<import("@mikro-orm/core").EmptyOptions, "nullable"> & {
215
218
  nullable: true;
216
219
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
220
+ readonly password_reset_required: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<NonNullable<boolean | null | undefined>, Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
221
+ default: false;
222
+ }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
217
223
  readonly managed_by: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<"database" | "config", Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
218
224
  default: "database";
219
225
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
@@ -402,6 +408,9 @@ export declare class UserTotpRepository extends EntityRepository<IUserTotpEntity
402
408
  readonly password_hash: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<string, Omit<import("@mikro-orm/core").EmptyOptions, "nullable"> & {
403
409
  nullable: true;
404
410
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
411
+ readonly password_reset_required: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<NonNullable<boolean | null | undefined>, Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
412
+ default: false;
413
+ }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
405
414
  readonly managed_by: Pick<import("@mikro-orm/core").UniversalPropertyOptionsBuilder<"database" | "config", Omit<import("@mikro-orm/core").EmptyOptions, "default"> & {
406
415
  default: "database";
407
416
  }, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>, keyof import("@mikro-orm/core").PropertyOptions<any> | ("~options" | "~type" | "$type" | "strictNullable" | "lazyRef")>;
@@ -1 +1 @@
1
- {"version":3,"file":"user-totp.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/user-totp.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,eAAe,CAAC;IACvE;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM;;;;uBAyDqvgB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IArD3xgB;;;;;;OAMG;IACG,4BAA4B,CAAC,OAAO,EAAE,MAAM;;;;uBA8CsugB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAvC3xgB;;;;;;OAMG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM;;;;uBAgC6ugB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAzB3xgB;;;;;OAKG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM;IASlC;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM;CAGtC"}
1
+ {"version":3,"file":"user-totp.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/user-totp.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,eAAe,CAAC;IACvE;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM;;;;uBAyDqvgB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IArD3xgB;;;;;;OAMG;IACG,4BAA4B,CAAC,OAAO,EAAE,MAAM;;;;uBA8CsugB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAvC3xgB;;;;;;OAMG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM;;;;uBAgC6ugB,GAAG;;;;;;2BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;;;+BAAH,GAAG;;;;mCAAH,GAAG;;;mCAAH,GAAG;;;;;;;;;;;;;;;;;;+BAAH,GAAG;;;+BAAH,GAAG;;;;;;;2BAAH,GAAG;;;2BAAH,GAAG;;;;;;;;;;;;;;;;uBAAH,GAAG;;;uBAAH,GAAG;;;IAzB3xgB;;;;;OAKG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM;IASlC;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM;CAGtC"}
@@ -201,6 +201,21 @@ export declare const authRoutes: import("hono/hono-base").HonoBase<AppEnv, impor
201
201
  status: 200;
202
202
  };
203
203
  };
204
+ }, "/"> | import("hono/types").MergeSchemaPath<{
205
+ "/auth/password/reset-required": {
206
+ $post: {
207
+ input: {
208
+ json: {
209
+ password: string;
210
+ };
211
+ };
212
+ output: {
213
+ message: string;
214
+ };
215
+ outputFormat: "json";
216
+ status: 200;
217
+ };
218
+ };
204
219
  }, "/"> | import("hono/types").MergeSchemaPath<{
205
220
  "/auth/email/verify": {
206
221
  $post: {
@@ -363,6 +378,43 @@ export declare const authRoutes: import("hono/hono-base").HonoBase<AppEnv, impor
363
378
  second_factor_required: boolean;
364
379
  passkey_count: number;
365
380
  };
381
+ password_reset_required: true;
382
+ };
383
+ outputFormat: "json";
384
+ status: 200;
385
+ } | {
386
+ input: {
387
+ json: {
388
+ response: {
389
+ id: string;
390
+ rawId: string;
391
+ response: {
392
+ clientDataJSON: string;
393
+ authenticatorData: string;
394
+ signature: string;
395
+ userHandle?: string | undefined;
396
+ };
397
+ clientExtensionResults: Record<string, unknown>;
398
+ type: "public-key";
399
+ authenticatorAttachment?: "platform" | "cross-platform" | undefined;
400
+ };
401
+ };
402
+ };
403
+ output: {
404
+ user: {
405
+ managed_by: "database" | "config";
406
+ sub: string;
407
+ email: string;
408
+ role: "user" | "admin";
409
+ email_verified: boolean;
410
+ email_verification_required: boolean;
411
+ has_password: boolean;
412
+ totp_registered: boolean;
413
+ totp_recovery_codes_missing: boolean;
414
+ second_factor_required: boolean;
415
+ passkey_count: number;
416
+ };
417
+ password_reset_required: false;
366
418
  };
367
419
  outputFormat: "json";
368
420
  status: 200;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/routes/api/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAiBtD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAea,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/routes/api/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAkBtD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgBa,CAAC"}
@@ -11,6 +11,7 @@ import { authPasskeyOptionsPost } from "./passkey/options/post.js";
11
11
  import { authPasskeyVerifyPost } from "./passkey/verify/post.js";
12
12
  import { authPasswordForgotPost } from "./password/forgot/post.js";
13
13
  import { authPasswordResetPost } from "./password/reset/post.js";
14
+ import { authPasswordResetRequiredPost } from "./password/reset-required/post.js";
14
15
  import { authRegisterPost } from "./register/post.js";
15
16
  import { authTotpRecoveryVerifyPost } from "./totp/recovery/verify/post.js";
16
17
  import { authTotpVerifyPost } from "./totp/verify/post.js";
@@ -24,6 +25,7 @@ export const authRoutes = new Hono()
24
25
  .route('/', authRegisterPost)
25
26
  .route('/', authPasswordForgotPost)
26
27
  .route('/', authPasswordResetPost)
28
+ .route('/', authPasswordResetRequiredPost)
27
29
  .route('/', authEmailVerifyPost)
28
30
  .route('/', authEmailResendPost)
29
31
  .route('/', authTotpVerifyPost)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/routes/api/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAU;KACzC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;KAC3B,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC;KACtC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC;KACzB,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;KAC1B,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;KAC5B,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC;KACjC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;KAC/B,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;KAC/B,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;KAC9B,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC;KACtC,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/routes/api/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAU;KACzC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC;KAC3B,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC;KACtC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC;KACzB,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;KAC1B,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;KAC5B,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC;KACjC,KAAK,CAAC,GAAG,EAAE,6BAA6B,CAAC;KACzC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;KAC/B,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;KAC/B,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;KAC9B,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC;KACtC,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC"}
@@ -33,6 +33,43 @@ export declare const authPasskeyVerifyPost: import("hono/hono-base").HonoBase<Ap
33
33
  second_factor_required: boolean;
34
34
  passkey_count: number;
35
35
  };
36
+ password_reset_required: true;
37
+ };
38
+ outputFormat: "json";
39
+ status: 200;
40
+ } | {
41
+ input: {
42
+ json: {
43
+ response: {
44
+ id: string;
45
+ rawId: string;
46
+ response: {
47
+ clientDataJSON: string;
48
+ authenticatorData: string;
49
+ signature: string;
50
+ userHandle?: string | undefined;
51
+ };
52
+ clientExtensionResults: Record<string, unknown>;
53
+ type: "public-key";
54
+ authenticatorAttachment?: "platform" | "cross-platform" | undefined;
55
+ };
56
+ };
57
+ };
58
+ output: {
59
+ user: {
60
+ managed_by: "database" | "config";
61
+ sub: string;
62
+ email: string;
63
+ role: "user" | "admin";
64
+ email_verified: boolean;
65
+ email_verification_required: boolean;
66
+ has_password: boolean;
67
+ totp_registered: boolean;
68
+ totp_recovery_codes_missing: boolean;
69
+ second_factor_required: boolean;
70
+ passkey_count: number;
71
+ };
72
+ password_reset_required: false;
36
73
  };
37
74
  outputFormat: "json";
38
75
  status: 200;
@@ -1 +1 @@
1
- {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/auth/passkey/verify/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAU5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA2FjC,CAAC"}
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/auth/passkey/verify/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAU5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAiGjC,CAAC"}
@@ -17,7 +17,9 @@ export const authPasskeyVerifyPost = new Hono().post('/auth/passkey/verify', des
17
17
  responses: {
18
18
  200: {
19
19
  content: {
20
- 'application/json': { schema: resolver(r.AuthResponse) },
20
+ 'application/json': {
21
+ schema: resolver(r.PasskeyAuthenticationResponse),
22
+ },
21
23
  },
22
24
  description: 'Success',
23
25
  },
@@ -68,8 +70,12 @@ export const authPasskeyVerifyPost = new Hono().post('/auth/passkey/verify', des
68
70
  }
69
71
  const userEntity = await mikro.user.verifyBySub(passkeyUser.sub);
70
72
  const sessionUser = await userService.userEntityToSessionUser(userEntity);
73
+ if (userEntity.password_reset_required) {
74
+ session.setPasswordResetSession(passkeyUser.sub);
75
+ return c.json({ user: sessionUser, password_reset_required: true }, 200);
76
+ }
71
77
  const authTime = pending2FA?.authenticatedAt ?? Math.floor(Date.now() / 1000);
72
78
  session.setUserSession(passkeyUser.sub, authTime);
73
- return c.json({ user: sessionUser }, 200);
79
+ return c.json({ user: sessionUser, password_reset_required: false }, 200);
74
80
  });
75
81
  //# sourceMappingURL=post.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../../src/routes/api/auth/passkey/verify/post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../../src/routes/api/auth/passkey/verify/post.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { AppEnv } from '../../../../../lib/app-env.ts';
2
+ export declare const authPasswordResetRequiredPost: import("hono/hono-base").HonoBase<AppEnv, {
3
+ "/auth/password/reset-required": {
4
+ $post: {
5
+ input: {
6
+ json: {
7
+ password: string;
8
+ };
9
+ };
10
+ output: {
11
+ message: string;
12
+ };
13
+ outputFormat: "json";
14
+ status: 200;
15
+ };
16
+ };
17
+ }, "/", "/auth/password/reset-required">;
18
+ //# sourceMappingURL=post.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/auth/password/reset-required/post.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAO5D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;wCA0CzC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Hono } from 'hono';
2
+ import { describeRoute, resolver, validator } from 'hono-openapi';
3
+ import { z } from 'zod';
4
+ import { TAGS } from "../../../../../lib/swagger-tags.js";
5
+ import { verifyPasswordResetUser } from "../../../../../middleware/auth.js";
6
+ import { e } from "../../../../../schemas/error.js";
7
+ import { f } from "../../../../../schemas/field.js";
8
+ import { r } from "../../../../../schemas/response.js";
9
+ export const authPasswordResetRequiredPost = new Hono().post('/auth/password/reset-required', describeRoute({
10
+ tags: [TAGS.AUTH],
11
+ summary: 'Set a replacement password',
12
+ description: 'Sets a new password after passkey verification retired a legacy password. Does not create a user session.',
13
+ responses: {
14
+ 200: {
15
+ content: {
16
+ 'application/json': { schema: resolver(r.MessageResponse) },
17
+ },
18
+ description: 'Password replaced; a fresh login is required',
19
+ },
20
+ 400: {
21
+ content: {
22
+ 'application/json': { schema: resolver(e.ValidationError.Schema) },
23
+ },
24
+ description: 'Password policy validation failed',
25
+ },
26
+ 401: {
27
+ content: {
28
+ 'application/json': { schema: resolver(e.Unauthorized.Schema) },
29
+ },
30
+ description: 'Restricted password-reset session required',
31
+ },
32
+ },
33
+ }), validator('json', z.object({ password: f.newUserPassword })), verifyPasswordResetUser(), async (c) => {
34
+ const user = c.var.verifiedPasswordResetUser;
35
+ await c.var.services.passwordAuthService.replacePassword(user, c.req.valid('json').password);
36
+ c.var.session.delete();
37
+ return c.json({ message: 'Password has been set. Sign in with the new password.' }, 200);
38
+ });
39
+ //# sourceMappingURL=post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../../src/routes/api/auth/password/reset-required/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,CAAC,EAAE,MAAM,iCAAiC,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,iCAAiC,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,oCAAoC,CAAC;AAEvD,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,IAAI,EAAU,CAAC,IAAI,CAClE,+BAA+B,EAC/B,aAAa,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IACjB,OAAO,EAAE,4BAA4B;IACrC,WAAW,EACT,2GAA2G;IAC7G,SAAS,EAAE;QACT,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE;aAC5D;YACD,WAAW,EAAE,8CAA8C;SAC5D;QACD,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;aACnE;YACD,WAAW,EAAE,mCAAmC;SACjD;QACD,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;aAChE;YACD,WAAW,EAAE,4CAA4C;SAC1D;KACF;CACF,CAAC,EACF,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,EAC5D,uBAAuB,EAAE,EACzB,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAC7C,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,eAAe,CACtD,IAAI,EACJ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAC7B,CAAC;IACF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,OAAO,EAAE,uDAAuD,EAAE,EACpE,GAAG,CACJ,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -383,6 +383,21 @@ export declare const apiRoutes: import("hono/hono-base").HonoBase<AppEnv, import
383
383
  status: 200;
384
384
  };
385
385
  };
386
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
387
+ "/auth/password/reset-required": {
388
+ $post: {
389
+ input: {
390
+ json: {
391
+ password: string;
392
+ };
393
+ };
394
+ output: {
395
+ message: string;
396
+ };
397
+ outputFormat: "json";
398
+ status: 200;
399
+ };
400
+ };
386
401
  }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
387
402
  "/auth/email/verify": {
388
403
  $post: {
@@ -545,6 +560,43 @@ export declare const apiRoutes: import("hono/hono-base").HonoBase<AppEnv, import
545
560
  second_factor_required: boolean;
546
561
  passkey_count: number;
547
562
  };
563
+ password_reset_required: true;
564
+ };
565
+ outputFormat: "json";
566
+ status: 200;
567
+ } | {
568
+ input: {
569
+ json: {
570
+ response: {
571
+ id: string;
572
+ rawId: string;
573
+ response: {
574
+ clientDataJSON: string;
575
+ authenticatorData: string;
576
+ signature: string;
577
+ userHandle?: string | undefined;
578
+ };
579
+ clientExtensionResults: Record<string, unknown>;
580
+ type: "public-key";
581
+ authenticatorAttachment?: "platform" | "cross-platform" | undefined;
582
+ };
583
+ };
584
+ };
585
+ output: {
586
+ user: {
587
+ managed_by: "database" | "config";
588
+ sub: string;
589
+ email: string;
590
+ role: "user" | "admin";
591
+ email_verified: boolean;
592
+ email_verification_required: boolean;
593
+ has_password: boolean;
594
+ totp_registered: boolean;
595
+ totp_recovery_codes_missing: boolean;
596
+ second_factor_required: boolean;
597
+ passkey_count: number;
598
+ };
599
+ password_reset_required: false;
548
600
  };
549
601
  outputFormat: "json";
550
602
  status: 200;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/api/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAWnD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBASI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/api/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAWnD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBASI,CAAC"}
@@ -383,6 +383,21 @@ export declare const routes: import("hono/hono-base").HonoBase<AppEnv, import("h
383
383
  status: 200;
384
384
  };
385
385
  };
386
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
387
+ "/auth/password/reset-required": {
388
+ $post: {
389
+ input: {
390
+ json: {
391
+ password: string;
392
+ };
393
+ };
394
+ output: {
395
+ message: string;
396
+ };
397
+ outputFormat: "json";
398
+ status: 200;
399
+ };
400
+ };
386
401
  }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
387
402
  "/auth/email/verify": {
388
403
  $post: {
@@ -545,6 +560,43 @@ export declare const routes: import("hono/hono-base").HonoBase<AppEnv, import("h
545
560
  second_factor_required: boolean;
546
561
  passkey_count: number;
547
562
  };
563
+ password_reset_required: true;
564
+ };
565
+ outputFormat: "json";
566
+ status: 200;
567
+ } | {
568
+ input: {
569
+ json: {
570
+ response: {
571
+ id: string;
572
+ rawId: string;
573
+ response: {
574
+ clientDataJSON: string;
575
+ authenticatorData: string;
576
+ signature: string;
577
+ userHandle?: string | undefined;
578
+ };
579
+ clientExtensionResults: Record<string, unknown>;
580
+ type: "public-key";
581
+ authenticatorAttachment?: "platform" | "cross-platform" | undefined;
582
+ };
583
+ };
584
+ };
585
+ output: {
586
+ user: {
587
+ managed_by: "database" | "config";
588
+ sub: string;
589
+ email: string;
590
+ role: "user" | "admin";
591
+ email_verified: boolean;
592
+ email_verification_required: boolean;
593
+ has_password: boolean;
594
+ totp_registered: boolean;
595
+ totp_recovery_codes_missing: boolean;
596
+ second_factor_required: boolean;
597
+ passkey_count: number;
598
+ };
599
+ password_reset_required: false;
548
600
  };
549
601
  outputFormat: "json";
550
602
  status: 200;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAGsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAGsB,CAAC"}