@tinyrack/issuary-server 0.31.0 → 0.32.2

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 (455) hide show
  1. package/dist/entities/auth-budget.entity.d.ts +20 -0
  2. package/dist/entities/auth-budget.entity.d.ts.map +1 -0
  3. package/dist/entities/auth-budget.entity.js +11 -0
  4. package/dist/entities/auth-budget.entity.js.map +1 -0
  5. package/dist/entities/browser-session.entity.d.ts +32 -0
  6. package/dist/entities/browser-session.entity.d.ts.map +1 -0
  7. package/dist/entities/browser-session.entity.js +12 -0
  8. package/dist/entities/browser-session.entity.js.map +1 -0
  9. package/dist/entities/email-verification.entity.d.ts +18 -0
  10. package/dist/entities/email-verification.entity.d.ts.map +1 -1
  11. package/dist/entities/email-verification.entity.js +2 -0
  12. package/dist/entities/email-verification.entity.js.map +1 -1
  13. package/dist/entities/oauth-client.entity.d.ts +120 -0
  14. package/dist/entities/oauth-client.entity.d.ts.map +1 -1
  15. package/dist/entities/oauth-code.entity.d.ts +120 -0
  16. package/dist/entities/oauth-code.entity.d.ts.map +1 -1
  17. package/dist/entities/oauth-code.entity.js +3 -0
  18. package/dist/entities/oauth-code.entity.js.map +1 -1
  19. package/dist/entities/oauth-device-code.entity.d.ts +120 -0
  20. package/dist/entities/oauth-device-code.entity.d.ts.map +1 -1
  21. package/dist/entities/oauth-device-code.entity.js +3 -0
  22. package/dist/entities/oauth-device-code.entity.js.map +1 -1
  23. package/dist/entities/oauth-grant.entity.d.ts +52 -0
  24. package/dist/entities/oauth-grant.entity.d.ts.map +1 -0
  25. package/dist/entities/oauth-grant.entity.js +19 -0
  26. package/dist/entities/oauth-grant.entity.js.map +1 -0
  27. package/dist/entities/password-reset.entity.d.ts +18 -0
  28. package/dist/entities/password-reset.entity.d.ts.map +1 -1
  29. package/dist/entities/password-reset.entity.js +2 -0
  30. package/dist/entities/password-reset.entity.js.map +1 -1
  31. package/dist/entities/pending-oauth-registration.entity.d.ts +9 -0
  32. package/dist/entities/pending-oauth-registration.entity.d.ts.map +1 -1
  33. package/dist/entities/pending-oauth-registration.entity.js +1 -0
  34. package/dist/entities/pending-oauth-registration.entity.js.map +1 -1
  35. package/dist/entities/revoked-token.entity.d.ts +120 -0
  36. package/dist/entities/revoked-token.entity.d.ts.map +1 -1
  37. package/dist/entities/terms-content.entity.d.ts +36 -0
  38. package/dist/entities/terms-content.entity.d.ts.map +1 -1
  39. package/dist/entities/terms.entity.d.ts +36 -0
  40. package/dist/entities/terms.entity.d.ts.map +1 -1
  41. package/dist/entities/user-consent.entity.d.ts +120 -0
  42. package/dist/entities/user-consent.entity.d.ts.map +1 -1
  43. package/dist/entities/user-terms-consent.entity.d.ts +36 -0
  44. package/dist/entities/user-terms-consent.entity.d.ts.map +1 -1
  45. package/dist/entities/user-totp-recovery-code.entity.d.ts +36 -0
  46. package/dist/entities/user-totp-recovery-code.entity.d.ts.map +1 -1
  47. package/dist/entities/user-totp.entity.d.ts +36 -0
  48. package/dist/entities/user-totp.entity.d.ts.map +1 -1
  49. package/dist/entities/user-totp.entity.js +1 -0
  50. package/dist/entities/user-totp.entity.js.map +1 -1
  51. package/dist/entities/user.entity.d.ts +36 -0
  52. package/dist/entities/user.entity.d.ts.map +1 -1
  53. package/dist/entities/user.entity.js +3 -0
  54. package/dist/entities/user.entity.js.map +1 -1
  55. package/dist/entrypoints/app.d.ts +448 -437
  56. package/dist/entrypoints/app.d.ts.map +1 -1
  57. package/dist/entrypoints/app.js +78 -6
  58. package/dist/entrypoints/app.js.map +1 -1
  59. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +326 -200
  60. package/dist/entrypoints/database/postgres/compiled-functions.js +1849 -518
  61. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -1
  62. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +326 -200
  63. package/dist/entrypoints/database/sqlite/compiled-functions.js +1849 -518
  64. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -1
  65. package/dist/entrypoints/database/sqlite/sqlite.d.ts.map +1 -1
  66. package/dist/entrypoints/database/sqlite/sqlite.js +1 -0
  67. package/dist/entrypoints/database/sqlite/sqlite.js.map +1 -1
  68. package/dist/entrypoints/scheduler/database.d.ts +3 -1
  69. package/dist/entrypoints/scheduler/database.d.ts.map +1 -1
  70. package/dist/entrypoints/scheduler/database.js +13 -2
  71. package/dist/entrypoints/scheduler/database.js.map +1 -1
  72. package/dist/entrypoints/scheduler/distributed-runner.d.ts +4 -0
  73. package/dist/entrypoints/scheduler/distributed-runner.d.ts.map +1 -1
  74. package/dist/entrypoints/scheduler/distributed-runner.js +26 -1
  75. package/dist/entrypoints/scheduler/distributed-runner.js.map +1 -1
  76. package/dist/lib/config/email.d.ts +1 -0
  77. package/dist/lib/config/email.d.ts.map +1 -1
  78. package/dist/lib/config/email.js.map +1 -1
  79. package/dist/lib/database/entities.d.ts.map +1 -1
  80. package/dist/lib/database/entities.js +6 -0
  81. package/dist/lib/database/entities.js.map +1 -1
  82. package/dist/lib/openapi.d.ts +2 -0
  83. package/dist/lib/openapi.d.ts.map +1 -1
  84. package/dist/lib/openapi.js +36 -1
  85. package/dist/lib/openapi.js.map +1 -1
  86. package/dist/lib/request-ip.d.ts +4 -0
  87. package/dist/lib/request-ip.d.ts.map +1 -0
  88. package/dist/lib/request-ip.js +39 -0
  89. package/dist/lib/request-ip.js.map +1 -0
  90. package/dist/middleware/auth-budget.d.ts +3 -0
  91. package/dist/middleware/auth-budget.d.ts.map +1 -0
  92. package/dist/middleware/auth-budget.js +80 -0
  93. package/dist/middleware/auth-budget.js.map +1 -0
  94. package/dist/middleware/session.d.ts +23 -5
  95. package/dist/middleware/session.d.ts.map +1 -1
  96. package/dist/middleware/session.js +152 -12
  97. package/dist/middleware/session.js.map +1 -1
  98. package/dist/middleware/strict-input.d.ts +4 -0
  99. package/dist/middleware/strict-input.d.ts.map +1 -0
  100. package/dist/middleware/strict-input.js +144 -0
  101. package/dist/middleware/strict-input.js.map +1 -0
  102. package/dist/migrations/postgres/Migration20260910120000_api_security.d.ts +6 -0
  103. package/dist/migrations/postgres/Migration20260910120000_api_security.d.ts.map +1 -0
  104. package/dist/migrations/postgres/Migration20260910120000_api_security.js +20 -0
  105. package/dist/migrations/postgres/Migration20260910120000_api_security.js.map +1 -0
  106. package/dist/migrations/postgres/Migration20260910160000_security_followup.d.ts +6 -0
  107. package/dist/migrations/postgres/Migration20260910160000_security_followup.d.ts.map +1 -0
  108. package/dist/migrations/postgres/Migration20260910160000_security_followup.js +23 -0
  109. package/dist/migrations/postgres/Migration20260910160000_security_followup.js.map +1 -0
  110. package/dist/migrations/postgres/Migration20260910200000_authentication_epoch.d.ts +6 -0
  111. package/dist/migrations/postgres/Migration20260910200000_authentication_epoch.d.ts.map +1 -0
  112. package/dist/migrations/postgres/Migration20260910200000_authentication_epoch.js +28 -0
  113. package/dist/migrations/postgres/Migration20260910200000_authentication_epoch.js.map +1 -0
  114. package/dist/migrations/postgres/Migration20260910220000_flow_revocation.d.ts +6 -0
  115. package/dist/migrations/postgres/Migration20260910220000_flow_revocation.d.ts.map +1 -0
  116. package/dist/migrations/postgres/Migration20260910220000_flow_revocation.js +19 -0
  117. package/dist/migrations/postgres/Migration20260910220000_flow_revocation.js.map +1 -0
  118. package/dist/migrations/postgres/index.d.ts.map +1 -1
  119. package/dist/migrations/postgres/index.js +8 -0
  120. package/dist/migrations/postgres/index.js.map +1 -1
  121. package/dist/migrations/sqlite/Migration20260910120000_api_security.d.ts +6 -0
  122. package/dist/migrations/sqlite/Migration20260910120000_api_security.d.ts.map +1 -0
  123. package/dist/migrations/sqlite/Migration20260910120000_api_security.js +20 -0
  124. package/dist/migrations/sqlite/Migration20260910120000_api_security.js.map +1 -0
  125. package/dist/migrations/sqlite/Migration20260910160000_security_followup.d.ts +6 -0
  126. package/dist/migrations/sqlite/Migration20260910160000_security_followup.d.ts.map +1 -0
  127. package/dist/migrations/sqlite/Migration20260910160000_security_followup.js +23 -0
  128. package/dist/migrations/sqlite/Migration20260910160000_security_followup.js.map +1 -0
  129. package/dist/migrations/sqlite/Migration20260910200000_authentication_epoch.d.ts +8 -0
  130. package/dist/migrations/sqlite/Migration20260910200000_authentication_epoch.d.ts.map +1 -0
  131. package/dist/migrations/sqlite/Migration20260910200000_authentication_epoch.js +72 -0
  132. package/dist/migrations/sqlite/Migration20260910200000_authentication_epoch.js.map +1 -0
  133. package/dist/migrations/sqlite/Migration20260910220000_flow_revocation.d.ts +6 -0
  134. package/dist/migrations/sqlite/Migration20260910220000_flow_revocation.d.ts.map +1 -0
  135. package/dist/migrations/sqlite/Migration20260910220000_flow_revocation.js +19 -0
  136. package/dist/migrations/sqlite/Migration20260910220000_flow_revocation.js.map +1 -0
  137. package/dist/migrations/sqlite/index.d.ts.map +1 -1
  138. package/dist/migrations/sqlite/index.js +8 -0
  139. package/dist/migrations/sqlite/index.js.map +1 -1
  140. package/dist/repositories/email-verification.repository.d.ts +1 -0
  141. package/dist/repositories/email-verification.repository.d.ts.map +1 -1
  142. package/dist/repositories/email-verification.repository.js +8 -17
  143. package/dist/repositories/email-verification.repository.js.map +1 -1
  144. package/dist/repositories/oauth-code.repository.d.ts +2 -0
  145. package/dist/repositories/oauth-code.repository.d.ts.map +1 -1
  146. package/dist/repositories/oauth-code.repository.js +8 -0
  147. package/dist/repositories/oauth-code.repository.js.map +1 -1
  148. package/dist/repositories/oauth-device-code.repository.d.ts +3 -0
  149. package/dist/repositories/oauth-device-code.repository.d.ts.map +1 -1
  150. package/dist/repositories/oauth-device-code.repository.js +64 -29
  151. package/dist/repositories/oauth-device-code.repository.js.map +1 -1
  152. package/dist/repositories/password-reset.repository.d.ts +1 -0
  153. package/dist/repositories/password-reset.repository.d.ts.map +1 -1
  154. package/dist/repositories/password-reset.repository.js +6 -19
  155. package/dist/repositories/password-reset.repository.js.map +1 -1
  156. package/dist/repositories/pending-oauth-registration.repository.d.ts +2 -0
  157. package/dist/repositories/pending-oauth-registration.repository.d.ts.map +1 -1
  158. package/dist/repositories/pending-oauth-registration.repository.js +16 -2
  159. package/dist/repositories/pending-oauth-registration.repository.js.map +1 -1
  160. package/dist/repositories/terms.repository.d.ts.map +1 -1
  161. package/dist/repositories/terms.repository.js +1 -0
  162. package/dist/repositories/terms.repository.js.map +1 -1
  163. package/dist/repositories/user-consent.repository.d.ts.map +1 -1
  164. package/dist/repositories/user-consent.repository.js +1 -1
  165. package/dist/repositories/user-consent.repository.js.map +1 -1
  166. package/dist/repositories/user-terms-consent.repository.d.ts.map +1 -1
  167. package/dist/repositories/user-terms-consent.repository.js +2 -0
  168. package/dist/repositories/user-terms-consent.repository.js.map +1 -1
  169. package/dist/repositories/user-totp-recovery-code.repository.d.ts +24 -0
  170. package/dist/repositories/user-totp-recovery-code.repository.d.ts.map +1 -1
  171. package/dist/repositories/user-totp.repository.d.ts +36 -0
  172. package/dist/repositories/user-totp.repository.d.ts.map +1 -1
  173. package/dist/routes/.well-known/openid-configuration/get.d.ts.map +1 -1
  174. package/dist/routes/.well-known/openid-configuration/get.js +5 -1
  175. package/dist/routes/.well-known/openid-configuration/get.js.map +1 -1
  176. package/dist/routes/api/admin/console/index.d.ts.map +1 -1
  177. package/dist/routes/api/admin/console/index.js +29 -14
  178. package/dist/routes/api/admin/console/index.js.map +1 -1
  179. package/dist/routes/api/admin/me/get.js +2 -3
  180. package/dist/routes/api/admin/me/get.js.map +1 -1
  181. package/dist/routes/api/admin/users/index.d.ts.map +1 -1
  182. package/dist/routes/api/admin/users/index.js +59 -52
  183. package/dist/routes/api/admin/users/index.js.map +1 -1
  184. package/dist/routes/api/auth/accounts/remove.post.d.ts +5 -5
  185. package/dist/routes/api/auth/email/resend/post.d.ts.map +1 -1
  186. package/dist/routes/api/auth/email/resend/post.js +3 -24
  187. package/dist/routes/api/auth/email/resend/post.js.map +1 -1
  188. package/dist/routes/api/auth/email/verify/post.d.ts.map +1 -1
  189. package/dist/routes/api/auth/email/verify/post.js +29 -12
  190. package/dist/routes/api/auth/email/verify/post.js.map +1 -1
  191. package/dist/routes/api/auth/login/post.d.ts.map +1 -1
  192. package/dist/routes/api/auth/login/post.js +4 -3
  193. package/dist/routes/api/auth/login/post.js.map +1 -1
  194. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -1
  195. package/dist/routes/api/auth/passkey/verify/post.js +25 -11
  196. package/dist/routes/api/auth/passkey/verify/post.js.map +1 -1
  197. package/dist/routes/api/auth/password/forgot/post.d.ts.map +1 -1
  198. package/dist/routes/api/auth/password/forgot/post.js +2 -19
  199. package/dist/routes/api/auth/password/forgot/post.js.map +1 -1
  200. package/dist/routes/api/auth/register/post.d.ts.map +1 -1
  201. package/dist/routes/api/auth/register/post.js +4 -3
  202. package/dist/routes/api/auth/register/post.js.map +1 -1
  203. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts.map +1 -1
  204. package/dist/routes/api/auth/totp/recovery/verify/post.js +7 -5
  205. package/dist/routes/api/auth/totp/recovery/verify/post.js.map +1 -1
  206. package/dist/routes/api/auth/totp/verify/post.d.ts.map +1 -1
  207. package/dist/routes/api/auth/totp/verify/post.js +7 -5
  208. package/dist/routes/api/auth/totp/verify/post.js.map +1 -1
  209. package/dist/routes/api/consent/post.d.ts.map +1 -1
  210. package/dist/routes/api/consent/post.js +141 -120
  211. package/dist/routes/api/consent/post.js.map +1 -1
  212. package/dist/routes/api/docs/get.d.ts.map +1 -1
  213. package/dist/routes/api/docs/get.js +8 -1
  214. package/dist/routes/api/docs/get.js.map +1 -1
  215. package/dist/routes/api/index.d.ts +379 -379
  216. package/dist/routes/api/oauth/_provider/authorize/get.d.ts.map +1 -1
  217. package/dist/routes/api/oauth/_provider/authorize/get.js +5 -1
  218. package/dist/routes/api/oauth/_provider/authorize/get.js.map +1 -1
  219. package/dist/routes/api/oauth/_provider/callback/get.d.ts +9 -9
  220. package/dist/routes/api/oauth/_provider/callback/get.d.ts.map +1 -1
  221. package/dist/routes/api/oauth/_provider/callback/get.js +30 -6
  222. package/dist/routes/api/oauth/_provider/callback/get.js.map +1 -1
  223. package/dist/routes/api/oauth/_provider/callback/post.d.ts.map +1 -1
  224. package/dist/routes/api/oauth/_provider/callback/post.js +31 -31
  225. package/dist/routes/api/oauth/_provider/callback/post.js.map +1 -1
  226. package/dist/routes/api/oauth/_provider/delete.d.ts.map +1 -1
  227. package/dist/routes/api/oauth/_provider/delete.js +14 -11
  228. package/dist/routes/api/oauth/_provider/delete.js.map +1 -1
  229. package/dist/routes/api/oauth/index.d.ts +18 -18
  230. package/dist/routes/api/terms/consent/post.d.ts.map +1 -1
  231. package/dist/routes/api/terms/consent/post.js +59 -43
  232. package/dist/routes/api/terms/consent/post.js.map +1 -1
  233. package/dist/routes/api/user/delete.d.ts.map +1 -1
  234. package/dist/routes/api/user/delete.js +8 -8
  235. package/dist/routes/api/user/delete.js.map +1 -1
  236. package/dist/routes/api/user/passkeys/_id/delete.d.ts.map +1 -1
  237. package/dist/routes/api/user/passkeys/_id/delete.js +17 -29
  238. package/dist/routes/api/user/passkeys/_id/delete.js.map +1 -1
  239. package/dist/routes/api/user/passkeys/_id/patch.d.ts.map +1 -1
  240. package/dist/routes/api/user/passkeys/_id/patch.js +16 -13
  241. package/dist/routes/api/user/passkeys/_id/patch.js.map +1 -1
  242. package/dist/routes/api/user/passkeys/register/verify/post.d.ts.map +1 -1
  243. package/dist/routes/api/user/passkeys/register/verify/post.js +27 -19
  244. package/dist/routes/api/user/passkeys/register/verify/post.js.map +1 -1
  245. package/dist/routes/api/user/password/delete.d.ts.map +1 -1
  246. package/dist/routes/api/user/password/delete.js +13 -10
  247. package/dist/routes/api/user/password/delete.js.map +1 -1
  248. package/dist/routes/api/user/password/post.d.ts.map +1 -1
  249. package/dist/routes/api/user/password/post.js +13 -10
  250. package/dist/routes/api/user/password/post.js.map +1 -1
  251. package/dist/routes/api/user/password/put.d.ts.map +1 -1
  252. package/dist/routes/api/user/password/put.js +13 -10
  253. package/dist/routes/api/user/password/put.js.map +1 -1
  254. package/dist/routes/api/user/totp/confirm/post.d.ts.map +1 -1
  255. package/dist/routes/api/user/totp/confirm/post.js +33 -18
  256. package/dist/routes/api/user/totp/confirm/post.js.map +1 -1
  257. package/dist/routes/api/user/totp/delete.d.ts.map +1 -1
  258. package/dist/routes/api/user/totp/delete.js +13 -18
  259. package/dist/routes/api/user/totp/delete.js.map +1 -1
  260. package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts.map +1 -1
  261. package/dist/routes/api/user/totp/recovery/regenerate/post.js +13 -10
  262. package/dist/routes/api/user/totp/recovery/regenerate/post.js.map +1 -1
  263. package/dist/routes/api/user/totp/setup/post.d.ts.map +1 -1
  264. package/dist/routes/api/user/totp/setup/post.js +13 -8
  265. package/dist/routes/api/user/totp/setup/post.js.map +1 -1
  266. package/dist/routes/api/user/totp/verify/post.d.ts.map +1 -1
  267. package/dist/routes/api/user/totp/verify/post.js +23 -12
  268. package/dist/routes/api/user/totp/verify/post.js.map +1 -1
  269. package/dist/routes/index.d.ts +252 -242
  270. package/dist/routes/index.d.ts.map +1 -1
  271. package/dist/routes/oauth/authorize/get.d.ts.map +1 -1
  272. package/dist/routes/oauth/authorize/get.js +12 -4
  273. package/dist/routes/oauth/authorize/get.js.map +1 -1
  274. package/dist/routes/oauth/device/get-post.d.ts +10 -0
  275. package/dist/routes/oauth/device/get-post.d.ts.map +1 -1
  276. package/dist/routes/oauth/device/get-post.js +32 -3
  277. package/dist/routes/oauth/device/get-post.js.map +1 -1
  278. package/dist/routes/oauth/device-authorization/post.d.ts.map +1 -1
  279. package/dist/routes/oauth/device-authorization/post.js +13 -7
  280. package/dist/routes/oauth/device-authorization/post.js.map +1 -1
  281. package/dist/routes/oauth/end-session/get.d.ts.map +1 -1
  282. package/dist/routes/oauth/end-session/get.js +2 -3
  283. package/dist/routes/oauth/end-session/get.js.map +1 -1
  284. package/dist/routes/oauth/index.d.ts +10 -0
  285. package/dist/routes/oauth/index.d.ts.map +1 -1
  286. package/dist/routes/oauth/revoke/post.d.ts.map +1 -1
  287. package/dist/routes/oauth/revoke/post.js +10 -2
  288. package/dist/routes/oauth/revoke/post.js.map +1 -1
  289. package/dist/routes/oauth/token/post.d.ts.map +1 -1
  290. package/dist/routes/oauth/token/post.js +69 -57
  291. package/dist/routes/oauth/token/post.js.map +1 -1
  292. package/dist/schemas/error.d.ts +75 -0
  293. package/dist/schemas/error.d.ts.map +1 -1
  294. package/dist/schemas/error.js +3 -0
  295. package/dist/schemas/error.js.map +1 -1
  296. package/dist/schemas/field.d.ts.map +1 -1
  297. package/dist/schemas/field.js +3 -0
  298. package/dist/schemas/field.js.map +1 -1
  299. package/dist/seeders/config.seeder.d.ts +1 -1
  300. package/dist/seeders/config.seeder.d.ts.map +1 -1
  301. package/dist/seeders/config.seeder.js +100 -36
  302. package/dist/seeders/config.seeder.js.map +1 -1
  303. package/dist/services/admin-console.service.d.ts.map +1 -1
  304. package/dist/services/admin-console.service.js +137 -100
  305. package/dist/services/admin-console.service.js.map +1 -1
  306. package/dist/services/auth-budget.service.d.ts +6 -0
  307. package/dist/services/auth-budget.service.d.ts.map +1 -0
  308. package/dist/services/auth-budget.service.js +30 -0
  309. package/dist/services/auth-budget.service.js.map +1 -0
  310. package/dist/services/authentication-epoch.d.ts +5 -0
  311. package/dist/services/authentication-epoch.d.ts.map +1 -0
  312. package/dist/services/authentication-epoch.js +22 -0
  313. package/dist/services/authentication-epoch.js.map +1 -0
  314. package/dist/services/authorization-browser.service.d.ts +18 -0
  315. package/dist/services/authorization-browser.service.d.ts.map +1 -0
  316. package/dist/services/authorization-browser.service.js +28 -0
  317. package/dist/services/authorization-browser.service.js.map +1 -0
  318. package/dist/services/browser-security.service.d.ts +14 -0
  319. package/dist/services/browser-security.service.d.ts.map +1 -0
  320. package/dist/services/browser-security.service.js +85 -0
  321. package/dist/services/browser-security.service.js.map +1 -0
  322. package/dist/services/browser-session.service.d.ts +25 -0
  323. package/dist/services/browser-session.service.d.ts.map +1 -0
  324. package/dist/services/browser-session.service.js +102 -0
  325. package/dist/services/browser-session.service.js.map +1 -0
  326. package/dist/services/cleanup.service.d.ts +1 -0
  327. package/dist/services/cleanup.service.d.ts.map +1 -1
  328. package/dist/services/cleanup.service.js +31 -0
  329. package/dist/services/cleanup.service.js.map +1 -1
  330. package/dist/services/client-security.d.ts +641 -0
  331. package/dist/services/client-security.d.ts.map +1 -0
  332. package/dist/services/client-security.js +10 -0
  333. package/dist/services/client-security.js.map +1 -0
  334. package/dist/services/container.d.ts +2 -0
  335. package/dist/services/container.d.ts.map +1 -1
  336. package/dist/services/container.js +6 -2
  337. package/dist/services/container.js.map +1 -1
  338. package/dist/services/email.service.d.ts +2 -14
  339. package/dist/services/email.service.d.ts.map +1 -1
  340. package/dist/services/email.service.js +35 -29
  341. package/dist/services/email.service.js.map +1 -1
  342. package/dist/services/jwt.service.d.ts +1 -0
  343. package/dist/services/jwt.service.d.ts.map +1 -1
  344. package/dist/services/jwt.service.js +13 -1
  345. package/dist/services/jwt.service.js.map +1 -1
  346. package/dist/services/mail-queue.service.d.ts +24 -0
  347. package/dist/services/mail-queue.service.d.ts.map +1 -0
  348. package/dist/services/mail-queue.service.js +223 -0
  349. package/dist/services/mail-queue.service.js.map +1 -0
  350. package/dist/services/mikro.service.d.ts.map +1 -1
  351. package/dist/services/mikro.service.js +2 -0
  352. package/dist/services/mikro.service.js.map +1 -1
  353. package/dist/services/oauth-authorize.service.d.ts +3 -0
  354. package/dist/services/oauth-authorize.service.d.ts.map +1 -1
  355. package/dist/services/oauth-authorize.service.js +131 -101
  356. package/dist/services/oauth-authorize.service.js.map +1 -1
  357. package/dist/services/oauth-browser-security.service.d.ts +7 -0
  358. package/dist/services/oauth-browser-security.service.d.ts.map +1 -0
  359. package/dist/services/oauth-browser-security.service.js +67 -0
  360. package/dist/services/oauth-browser-security.service.js.map +1 -0
  361. package/dist/services/oauth-client.service.d.ts +24 -1
  362. package/dist/services/oauth-client.service.d.ts.map +1 -1
  363. package/dist/services/oauth-client.service.js +52 -13
  364. package/dist/services/oauth-client.service.js.map +1 -1
  365. package/dist/services/oauth-connect.service.d.ts +37 -3
  366. package/dist/services/oauth-connect.service.d.ts.map +1 -1
  367. package/dist/services/oauth-connect.service.js +236 -212
  368. package/dist/services/oauth-connect.service.js.map +1 -1
  369. package/dist/services/oauth-token.service.d.ts +6 -4
  370. package/dist/services/oauth-token.service.d.ts.map +1 -1
  371. package/dist/services/oauth-token.service.js +295 -209
  372. package/dist/services/oauth-token.service.js.map +1 -1
  373. package/dist/services/passkey.service.d.ts +26 -7
  374. package/dist/services/passkey.service.d.ts.map +1 -1
  375. package/dist/services/passkey.service.js +71 -42
  376. package/dist/services/passkey.service.js.map +1 -1
  377. package/dist/services/password-auth.service.d.ts +5 -1
  378. package/dist/services/password-auth.service.d.ts.map +1 -1
  379. package/dist/services/password-auth.service.js +79 -52
  380. package/dist/services/password-auth.service.js.map +1 -1
  381. package/dist/services/password-reset.service.d.ts.map +1 -1
  382. package/dist/services/password-reset.service.js +34 -15
  383. package/dist/services/password-reset.service.js.map +1 -1
  384. package/dist/services/security.service.d.ts +3 -1
  385. package/dist/services/security.service.d.ts.map +1 -1
  386. package/dist/services/security.service.js +11 -2
  387. package/dist/services/security.service.js.map +1 -1
  388. package/dist/services/terms-policy.service.d.ts +7 -0
  389. package/dist/services/terms-policy.service.d.ts.map +1 -0
  390. package/dist/services/terms-policy.service.js +26 -0
  391. package/dist/services/terms-policy.service.js.map +1 -0
  392. package/dist/services/totp.service.d.ts +4 -5
  393. package/dist/services/totp.service.d.ts.map +1 -1
  394. package/dist/services/totp.service.js +116 -86
  395. package/dist/services/totp.service.js.map +1 -1
  396. package/dist/services/user-security.service.d.ts +15 -0
  397. package/dist/services/user-security.service.d.ts.map +1 -0
  398. package/dist/services/user-security.service.js +57 -0
  399. package/dist/services/user-security.service.js.map +1 -0
  400. package/dist/services/user.service.d.ts +6 -4
  401. package/dist/services/user.service.d.ts.map +1 -1
  402. package/dist/services/user.service.js +143 -121
  403. package/dist/services/user.service.js.map +1 -1
  404. package/frontend/client/assets/{auth-layout-BedWIZ7L.js → auth-layout-sea6nww4.js} +1 -1
  405. package/frontend/client/assets/{auth-page-header-C6Z6Air-.js → auth-page-header-CV85AJLW.js} +1 -1
  406. package/frontend/client/assets/document-navigation-FZbb5ldf.js +1 -0
  407. package/frontend/client/assets/i18n-vfKY-byx.js +1 -0
  408. package/frontend/client/assets/{language-selector-CeLHnp1n.js → language-selector-Jso2cQNI.js} +1 -1
  409. package/frontend/client/assets/manifest-90703545.js +1 -0
  410. package/frontend/client/assets/{passkey-Bkqvhjwb.js → passkey-CJhT-7yO.js} +1 -1
  411. package/frontend/client/assets/{promise-CepnkPDw.js → promise-BP9iSIs-.js} +1 -1
  412. package/frontend/client/assets/{root-CM8lJbh5.js → root-BkavuloG.js} +1 -1
  413. package/frontend/client/assets/{route-Y1_yJKhW.js → route-B0udr9eT.js} +1 -1
  414. package/frontend/client/assets/{route-CdPHVY9W.js → route-B3Uv9aTa.js} +1 -1
  415. package/frontend/client/assets/{route-CF1S7UUy.js → route-B6hIfgxz.js} +1 -1
  416. package/frontend/client/assets/{route-BcXtt6V2.js → route-BEWds2g-.js} +1 -1
  417. package/frontend/client/assets/route-Bm9LsorH.js +1 -0
  418. package/frontend/client/assets/route-Btv5Y69z.js +1 -0
  419. package/frontend/client/assets/route-BvyDzziE.js +1 -0
  420. package/frontend/client/assets/route-C6kG9u7j.js +1 -0
  421. package/frontend/client/assets/{route-1rid8j-3.js → route-C7C3Z0vI.js} +1 -1
  422. package/frontend/client/assets/{route-DphbGk_G.js → route-CVyefM3x.js} +1 -1
  423. package/frontend/client/assets/{route-DZvCkU11.js → route-CXth2Wqz.js} +1 -1
  424. package/frontend/client/assets/route-D0IqOurp.js +1 -0
  425. package/frontend/client/assets/route-DHmYUnJR.js +1 -0
  426. package/frontend/client/assets/route-DTjZQ_Fl.js +1 -0
  427. package/frontend/client/assets/route-D_dTeu1b.js +1 -0
  428. package/frontend/client/assets/{route-DkoXJmYM.js → route-Dj8gVemC.js} +1 -1
  429. package/frontend/client/assets/{route-DrtpzI6u.js → route-DnhPlHOi.js} +1 -1
  430. package/frontend/client/assets/route-FY92YQhF.js +1 -0
  431. package/frontend/client/assets/{route-CKiun7AR.js → route-PcLpZHbT.js} +1 -1
  432. package/frontend/client/assets/{route-BwhQptmx.js → route-qpE7i22X.js} +1 -1
  433. package/frontend/client/assets/{route-HA9dma-h.js → route-wK89gmoS.js} +1 -1
  434. package/frontend/client/assets/security-error-message-CMsTsiWf.js +1 -0
  435. package/frontend/client/assets/{shell-header-bar-CjPlfRKT.js → shell-header-bar-DRx10tE5.js} +1 -1
  436. package/frontend/client/assets/{terms-BGJD_l_i.js → terms-Bu9Itxxs.js} +1 -1
  437. package/frontend/client/assets/{use-totp-setup-Cwuds2tR.js → use-totp-setup-CoOXWOcT.js} +1 -1
  438. package/frontend/server/assets/{hydration-B63_G0fd.js → hydration-DWMjpNav.js} +1 -1
  439. package/frontend/server/assets/{root-loader.server-DUIBlg_3.js → root-loader.server-B4OqoLGG.js} +3 -3
  440. package/frontend/server/assets/{route-runtime.server-DiqwWb8W.js → route-runtime.server-03_pjVDT.js} +1 -1
  441. package/frontend/server/assets/{session-BaAt7WMI.js → session-sJkmzJie.js} +36 -24
  442. package/frontend/server/index.js +239 -193
  443. package/package.json +1 -1
  444. package/frontend/client/assets/document-navigation-Cnp3Alf0.js +0 -1
  445. package/frontend/client/assets/i18n-Dzv9HKFm.js +0 -1
  446. package/frontend/client/assets/manifest-71025d92.js +0 -1
  447. package/frontend/client/assets/route-B4jDMFTW.js +0 -1
  448. package/frontend/client/assets/route-C-DecXPL.js +0 -1
  449. package/frontend/client/assets/route-CGTMMDiX.js +0 -1
  450. package/frontend/client/assets/route-CMJbXiDe.js +0 -1
  451. package/frontend/client/assets/route-DBpAiakW.js +0 -1
  452. package/frontend/client/assets/route-DS92RKs5.js +0 -1
  453. package/frontend/client/assets/route-Dc6G2aDX.js +0 -1
  454. package/frontend/client/assets/route-DqAmRSJE.js +0 -1
  455. package/frontend/client/assets/route-Ezzcj26w.js +0 -1
@@ -0,0 +1,57 @@
1
+ import { raw } from '@mikro-orm/core';
2
+ import { UserEntity } from '../entities/user.entity.js';
3
+ import { e } from '../schemas/error.js';
4
+ export function isSecurityConflict(error) {
5
+ if (!(error instanceof Error))
6
+ return false;
7
+ const code = Reflect.get(error, 'code');
8
+ return ([
9
+ 'SQLITE_BUSY',
10
+ 'SQLITE_BUSY_SNAPSHOT',
11
+ 'SQLITE_LOCKED',
12
+ '40001',
13
+ '40P01',
14
+ '55P03',
15
+ ].includes(String(code)) ||
16
+ /database (?:is )?locked|serialization failure|deadlock detected/i.test(error.message));
17
+ }
18
+ /** The write precedes every policy read, including on SQLite's deferred transactions. */
19
+ export async function withUserSecurity(mikro, sub, operation, options = {}) {
20
+ try {
21
+ return await mikro.em.transactional(async (em) => {
22
+ const changed = await em.nativeUpdate(UserEntity, { sub, ...(options.includeDeleted ? {} : { deleted_at: null }) }, { security_revision: raw('security_revision + 1') });
23
+ if (changed !== 1)
24
+ throw new e.UserNotFound.Error();
25
+ const user = await em.findOneOrFail(UserEntity, { sub }, { populate: ['password_hash'], refresh: true });
26
+ return operation(user);
27
+ });
28
+ }
29
+ catch (error) {
30
+ if (isSecurityConflict(error))
31
+ throw new e.ConcurrentSecurityChange.Error();
32
+ throw error;
33
+ }
34
+ }
35
+ export async function authenticationMethods(mikro, config, user) {
36
+ const providers = config.identity_providers
37
+ .filter((provider) => provider.enabled)
38
+ .map((provider) => provider.id);
39
+ const oauth = providers.length
40
+ ? await mikro.userOAuth.count({
41
+ user: user.sub,
42
+ provider_name: { $in: providers },
43
+ })
44
+ : 0;
45
+ const passkeys = config.auth.passkey.enabled
46
+ ? await mikro.userPasskey.countByUserSub(user.sub)
47
+ : 0;
48
+ const totp = config.auth.password.totp.enabled &&
49
+ (await mikro.userTotp.isRegistered(user.sub));
50
+ return {
51
+ oauth,
52
+ passkeys,
53
+ totp,
54
+ password: config.auth.password.enabled && user.hasPassword(),
55
+ };
56
+ }
57
+ //# sourceMappingURL=user-security.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-security.service.js","sourceRoot":"","sources":["../../src/services/user-security.service.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,17 @@ import type { UserEntity } from '../entities/user.entity.ts';
4
4
  import type { IssuaryRuntimeConfig } from '../lib/config/index.ts';
5
5
  import type { Locale } from '../lib/locale.ts';
6
6
  import type { r } from '../schemas/response.ts';
7
- import type { EmailService } from './email.service.ts';
7
+ import type { MailQueueService } from './mail-queue.service.js';
8
8
  import type { MikroService } from './mikro.service.ts';
9
9
  import type { PasswordAuthService } from './password-auth.service.ts';
10
10
  import type { TermsService } from './terms.service.ts';
11
11
  export declare class UserService {
12
12
  private readonly mikro;
13
13
  private readonly config;
14
- private readonly emailService;
14
+ private readonly mailQueue;
15
15
  private readonly passwordAuthService;
16
16
  private readonly termsService?;
17
- constructor(mikro: MikroService, config: IssuaryRuntimeConfig, emailService: EmailService, passwordAuthService: PasswordAuthService, termsService?: TermsService);
17
+ constructor(mikro: MikroService, config: IssuaryRuntimeConfig, mailQueue: MailQueueService, passwordAuthService: PasswordAuthService, termsService?: TermsService);
18
18
  userEntityToSessionUser(user: Loaded<UserEntity, 'password_hash' | 'passkeys' | 'totps', '*', never>): Promise<z.infer<typeof r.UserSession>>;
19
19
  getSessionUserBySub(userSub: string): Promise<z.infer<typeof r.UserSession>>;
20
20
  buildSessionUser(params: {
@@ -80,7 +80,9 @@ export declare class UserService {
80
80
  agreed: boolean;
81
81
  }>;
82
82
  locale?: Locale | undefined;
83
- }): Promise<z.infer<typeof r.UserSession>>;
83
+ }): Promise<z.infer<typeof r.UserSession> & {
84
+ token_epoch: string;
85
+ }>;
84
86
  /**
85
87
  * @description
86
88
  * Request account deletion (soft delete).
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
1
  import { e } from '../schemas/error.js';
2
+ import { invalidateUserAuthentication } from './authentication-epoch.js';
3
+ import { lockTermsPolicy } from './terms-policy.service.js';
4
+ import { withUserSecurity } from './user-security.service.js';
2
5
  export class UserService {
3
6
  mikro;
4
7
  config;
5
- emailService;
8
+ mailQueue;
6
9
  passwordAuthService;
7
10
  termsService;
8
- constructor(mikro, config, emailService, passwordAuthService, termsService) {
11
+ constructor(mikro, config, mailQueue, passwordAuthService, termsService) {
9
12
  this.mikro = mikro;
10
13
  this.config = config;
11
- this.emailService = emailService;
14
+ this.mailQueue = mailQueue;
12
15
  this.passwordAuthService = passwordAuthService;
13
16
  this.termsService = termsService;
14
17
  }
@@ -115,59 +118,74 @@ export class UserService {
115
118
  return this.getAdminUser(user.sub);
116
119
  }
117
120
  async updateAdminUser(params) {
118
- const user = await this.mikro.user.verifyBySub(params.sub);
119
- if (params.sub === params.actorSub && params.role === 'user') {
120
- throw new e.Forbidden.Error();
121
- }
122
- if (user.managed_by === 'config') {
123
- throw new e.UserNotEditable.Error();
124
- }
125
- if (user.deleted_at) {
126
- throw new e.UserNotFound.Error();
127
- }
128
- if (params.email !== undefined && params.email !== user.email) {
129
- const existing = await this.mikro.user.findOne({
130
- email: params.email,
131
- sub: { $ne: params.sub },
132
- });
133
- if (existing) {
134
- throw new e.EmailAlreadyExists.Error();
121
+ return withUserSecurity(this.mikro, params.sub, async (user) => {
122
+ const emailChanged = params.email !== undefined && params.email !== user.email;
123
+ if (params.sub === params.actorSub && params.role === 'user') {
124
+ throw new e.Forbidden.Error();
135
125
  }
136
- user.email = params.email;
137
- }
138
- if (params.role !== undefined) {
139
- user.role = params.role;
140
- }
141
- if (params.emailVerified !== undefined) {
142
- user.email_verified = params.emailVerified;
143
- }
144
- await this.mikro.em.flush();
145
- return this.getAdminUser(user.sub);
126
+ if (user.managed_by === 'config') {
127
+ throw new e.UserNotEditable.Error();
128
+ }
129
+ if (user.deleted_at) {
130
+ throw new e.UserNotFound.Error();
131
+ }
132
+ if (params.email !== undefined && params.email !== user.email) {
133
+ const existing = await this.mikro.user.findOne({
134
+ email: params.email,
135
+ sub: { $ne: params.sub },
136
+ });
137
+ if (existing) {
138
+ throw new e.EmailAlreadyExists.Error();
139
+ }
140
+ await invalidateUserAuthentication(this.mikro.em, user);
141
+ user.email = params.email;
142
+ user.email_verified = false;
143
+ }
144
+ if (params.role !== undefined) {
145
+ if (user.role !== params.role) {
146
+ await invalidateUserAuthentication(this.mikro.em, user);
147
+ }
148
+ user.role = params.role;
149
+ }
150
+ if (params.emailVerified !== undefined) {
151
+ user.email_verified = params.emailVerified;
152
+ }
153
+ await this.mikro.em.flush();
154
+ if (emailChanged && !user.email_verified && this.config.email)
155
+ await this.mailQueue.enqueue('verification', user.email, undefined, user.sub);
156
+ return this.getAdminUser(user.sub);
157
+ });
146
158
  }
147
159
  async deleteAdminUser(params) {
148
- if (params.sub === params.actorSub) {
149
- throw new e.Forbidden.Error();
150
- }
151
- const user = await this.mikro.user.verifyBySub(params.sub);
152
- if (user.managed_by === 'config') {
153
- throw new e.UserNotEditable.Error();
154
- }
155
- if (!user.deleted_at) {
156
- user.deleted_at = new Date();
157
- await this.mikro.em.flush();
158
- }
159
- return this.adminUserEntityToResponse(user);
160
+ return withUserSecurity(this.mikro, params.sub, async () => {
161
+ if (params.sub === params.actorSub) {
162
+ throw new e.Forbidden.Error();
163
+ }
164
+ const user = await this.mikro.user.verifyBySub(params.sub);
165
+ if (user.managed_by === 'config') {
166
+ throw new e.UserNotEditable.Error();
167
+ }
168
+ if (!user.deleted_at) {
169
+ await invalidateUserAuthentication(this.mikro.em, user);
170
+ user.deleted_at = new Date();
171
+ await this.mikro.em.flush();
172
+ }
173
+ return this.adminUserEntityToResponse(user);
174
+ });
160
175
  }
161
176
  async restoreAdminUser(sub) {
162
- const user = await this.mikro.user.verifyBySubIncludingDeleted(sub);
163
- if (user.managed_by === 'config') {
164
- throw new e.UserNotEditable.Error();
165
- }
166
- if (user.deleted_at) {
167
- user.deleted_at = null;
168
- await this.mikro.em.flush();
169
- }
170
- return this.adminUserEntityToResponse(user);
177
+ return withUserSecurity(this.mikro, sub, async () => {
178
+ const user = await this.mikro.user.verifyBySubIncludingDeleted(sub);
179
+ if (user.managed_by === 'config') {
180
+ throw new e.UserNotEditable.Error();
181
+ }
182
+ if (user.deleted_at) {
183
+ await invalidateUserAuthentication(this.mikro.em, user);
184
+ user.deleted_at = null;
185
+ await this.mikro.em.flush();
186
+ }
187
+ return this.adminUserEntityToResponse(user);
188
+ }, { includeDeleted: true });
171
189
  }
172
190
  async bulkSetAdminUserDeleted(params) {
173
191
  const where = params.ids
@@ -191,7 +209,10 @@ export class UserService {
191
209
  ];
192
210
  }
193
211
  }
194
- const users = await this.mikro.user.find(where);
212
+ const users = await this.mikro.user.find(where, {
213
+ refresh: true,
214
+ orderBy: { sub: 'ASC' },
215
+ });
195
216
  const skipped = {};
196
217
  let changed = 0;
197
218
  for (const user of users) {
@@ -206,6 +227,7 @@ export class UserService {
206
227
  skipped[reason] = (skipped[reason] ?? 0) + 1;
207
228
  continue;
208
229
  }
230
+ await invalidateUserAuthentication(this.mikro.em, user);
209
231
  user.deleted_at = params.deleted ? new Date() : null;
210
232
  changed += 1;
211
233
  }
@@ -213,71 +235,68 @@ export class UserService {
213
235
  return { matched: users.length, changed, skipped };
214
236
  }
215
237
  async register(params) {
216
- // 1. Validate explicit terms consent before user creation
217
- // Load terms once and reuse across validation and recording
218
- const terms = this.termsService
219
- ? await this.termsService.getGlobalTerms()
220
- : undefined;
221
- if (this.termsService && terms) {
222
- const explicitTerms = await this.termsService.getExplicitTerms(terms);
223
- const hasRequiredExplicitTerms = explicitTerms.some((t) => t.required);
224
- if (hasRequiredExplicitTerms) {
225
- if (!params.consents || params.consents.length === 0) {
226
- throw new e.ValidationError.Error('Terms consent is required for registration');
227
- }
228
- const validation = await this.termsService.validateExplicitConsents(params.consents, terms);
229
- if (!validation.valid) {
230
- throw new e.ValidationError.Error(`Missing required terms: ${validation.missingTerms.join(', ')}`);
238
+ const passwordHash = await this.passwordAuthService.prepareDatabasePassword(params.password);
239
+ return this.mikro.em.transactional(async () => {
240
+ await lockTermsPolicy(this.mikro.em, 'read');
241
+ // 1. Validate explicit terms consent before user creation
242
+ // Load terms once and reuse across validation and recording
243
+ const terms = this.termsService
244
+ ? await this.termsService.getGlobalTerms()
245
+ : undefined;
246
+ if (this.termsService && terms) {
247
+ const explicitTerms = await this.termsService.getExplicitTerms(terms);
248
+ const hasRequiredExplicitTerms = explicitTerms.some((t) => t.required);
249
+ if (hasRequiredExplicitTerms) {
250
+ if (!params.consents || params.consents.length === 0) {
251
+ throw new e.ValidationError.Error('Terms consent is required for registration');
252
+ }
253
+ const validation = await this.termsService.validateExplicitConsents(params.consents, terms);
254
+ if (!validation.valid) {
255
+ throw new e.ValidationError.Error(`Missing required terms: ${validation.missingTerms.join(', ')}`);
256
+ }
231
257
  }
232
258
  }
233
- }
234
- // 2. Register the user
235
- const user = await this.passwordAuthService.createDatabaseUser({
236
- email: params.email,
237
- password: params.password,
238
- });
239
- // 3. Generate email verification token and send email
240
- if (this.config.email) {
241
- const verification = await this.emailService.generateToken({
242
- userSub: user.sub,
243
- });
244
- await this.mikro.em.flush();
245
- this.emailService.sendVerificationEmailAsync({
246
- email: user.email,
247
- token: verification.token,
248
- locale: params.locale,
259
+ // 2. Register the user
260
+ const user = await this.mikro.user.register({
261
+ email: params.email,
262
+ passwordHash,
249
263
  });
250
- }
251
- // 4. Record terms consent after successful registration
252
- if (this.termsService && terms) {
253
- // Record explicit consents provided by user
254
- if (params.consents && params.consents.length > 0) {
255
- await this.termsService.recordConsents({
264
+ // 3. Generate email verification token and send email
265
+ if (this.config.email) {
266
+ await this.mailQueue.enqueue('verification', user.email, params.locale, user.sub);
267
+ }
268
+ // 4. Record terms consent after successful registration
269
+ if (this.termsService && terms) {
270
+ // Record explicit consents provided by user
271
+ if (params.consents && params.consents.length > 0) {
272
+ await this.termsService.recordConsents({
273
+ userSub: user.sub,
274
+ consents: params.consents,
275
+ terms,
276
+ });
277
+ }
278
+ // Record implicit consents for terms with implicit consent mode
279
+ await this.termsService.recordImplicitConsents({
256
280
  userSub: user.sub,
257
- consents: params.consents,
258
281
  terms,
259
282
  });
260
283
  }
261
- // Record implicit consents for terms with implicit consent mode
262
- await this.termsService.recordImplicitConsents({
263
- userSub: user.sub,
264
- terms,
265
- });
266
- }
267
- // 5. Return session info
268
- return {
269
- sub: user.sub,
270
- managed_by: 'database',
271
- email: user.email,
272
- role: user.role,
273
- email_verified: user.email_verified,
274
- email_verification_required: this.userEmailVerificationRequired(user),
275
- has_password: user.hasPassword(),
276
- totp_registered: false,
277
- totp_recovery_codes_missing: false,
278
- second_factor_required: this.user2FASetupRequired(user),
279
- passkey_count: 0,
280
- };
284
+ // 5. Return session info
285
+ return {
286
+ sub: user.sub,
287
+ token_epoch: user.token_epoch,
288
+ managed_by: 'database',
289
+ email: user.email,
290
+ role: user.role,
291
+ email_verified: user.email_verified,
292
+ email_verification_required: this.userEmailVerificationRequired(user),
293
+ has_password: user.hasPassword(),
294
+ totp_registered: false,
295
+ totp_recovery_codes_missing: false,
296
+ second_factor_required: this.user2FASetupRequired(user),
297
+ passkey_count: 0,
298
+ };
299
+ });
281
300
  }
282
301
  /**
283
302
  * @description
@@ -285,17 +304,20 @@ export class UserService {
285
304
  * Config-managed users cannot be deleted.
286
305
  */
287
306
  async requestDeletion(userSub) {
288
- // Check if user exists and is not config-managed
289
- const user = await this.mikro.user.findOneOrFail({ sub: userSub, deleted_at: null }, { failHandler: () => new e.UserNotFound.Error() });
290
- if (user.managed_by === 'config') {
291
- throw new e.UserNotEditable.Error();
292
- }
293
- // Soft delete the user
294
- user.deleted_at = new Date();
295
- await this.mikro.em.flush();
296
- return {
297
- deleted_at: user.deleted_at,
298
- };
307
+ return withUserSecurity(this.mikro, userSub, async () => {
308
+ // Check if user exists and is not config-managed
309
+ const user = await this.mikro.user.findOneOrFail({ sub: userSub, deleted_at: null }, { failHandler: () => new e.UserNotFound.Error() });
310
+ if (user.managed_by === 'config') {
311
+ throw new e.UserNotEditable.Error();
312
+ }
313
+ // Soft delete the user
314
+ await invalidateUserAuthentication(this.mikro.em, user);
315
+ user.deleted_at = new Date();
316
+ await this.mikro.em.flush();
317
+ return {
318
+ deleted_at: user.deleted_at,
319
+ };
320
+ });
299
321
  }
300
322
  userEmailVerificationRequired(userLike) {
301
323
  return (userLike.managed_by !== 'config' &&
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAOxC,MAAM,OAAO,WAAW;IACL,KAAK,CAAe;IACpB,MAAM,CAAuB;IAC7B,YAAY,CAAe;IAC3B,mBAAmB,CAAsB;IACzC,YAAY,CAA4B;IACzD,YACE,KAAmB,EACnB,MAA4B,EAC5B,YAA0B,EAC1B,mBAAwC,EACxC,YAA2B;QAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAClC,IAKC;QAED,sEAAsE;QACtE,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK;aACnC,QAAQ,EAAE;aACV,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC3B,IAAI;YACJ,cAAc,EAAE,mBAAmB;YACnC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;SACnC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,OAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAS7B;QACC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QACtD,MAAM,iBAAiB,GAAG,cAAc;YACtC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YACtE,CAAC,CAAC,CAAC,CAAC;QAEN,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,2BAA2B,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC;YACrE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;YAChC,eAAe,EAAE,cAAc;YAC/B,2BAA2B,EAAE,cAAc,IAAI,iBAAiB,KAAK,CAAC;YACtE,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACvD,aAAa,EAAE,YAAY;SAC5B,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACpC,IAKC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO;YACL,GAAG,WAAW;YACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI;SACnD,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,MAW3B;QACC,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,SAAS;gBAC/B,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE;gBAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,CAAC,GAAG;gBACb,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;gBAClC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;aACjC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC/D,QAAQ,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC;YAChD,aAAa,EAAE;gBACb,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACzB,QAAQ,EAAE,EAAE;aACb;YACD,KAAK,EAAE,MAAM,CAAC,QAAQ;YACtB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ;YAC3C,OAAO,EAAE;gBACP,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;aACpD;SACF,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAC1D;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,QAAQ;gBAC1B,KAAK;aACN;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAW;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAK5B;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;YAC7D,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAE5B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAM5B;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7D,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7C,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;aACzB,CAAC,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAE5B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAG5B;QACC,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,GAAW;QAEX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,MAapC;QAKC,MAAM,KAAK,GAA4B,MAAM,CAAC,GAAG;YAC/C,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE;YAC9B,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc;gBAAE,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;YAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;gBACzB,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAChD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI;gBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3D,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9C,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YACxD,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,KAAK,CAAC,GAAG;oBACb,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;oBAClC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;iBACjC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAA0B,CAAC;YAC/B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAAE,MAAM,GAAG,QAAQ,CAAC;iBAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ;gBAAE,MAAM,GAAG,MAAM,CAAC;iBAClD,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,OAAO;gBAClD,MAAM,GAAG,WAAW,CAAC;YACvB,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAKrB;QACC,0DAA0D;QAC1D,4DAA4D;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;YAC1C,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,wBAAwB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAEvE,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrD,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAC/B,4CAA4C,CAC7C,CAAC;gBACJ,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACjE,MAAM,CAAC,QAAQ,EACf,KAAK,CACN,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAC/B,2BAA2B,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;YAC7D,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBACzD,OAAO,EAAE,IAAI,CAAC,GAAG;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC;gBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QAED,wDAAwD;QACxD,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC;YAC/B,4CAA4C;YAC5C,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;oBACrC,OAAO,EAAE,IAAI,CAAC,GAAG;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAED,gEAAgE;YAChE,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC;gBAC7C,OAAO,EAAE,IAAI,CAAC,GAAG;gBACjB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,2BAA2B,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC;YACrE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;YAChC,eAAe,EAAE,KAAK;YACtB,2BAA2B,EAAE,KAAK;YAClC,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACvD,aAAa,EAAE,CAAC;SACjB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,OAAe;QAG1C,iDAAiD;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAC9C,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,EAClC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAClD,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAE5B,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAEM,6BAA6B,CAAC,QAEpC;QACC,OAAO,CACL,QAAQ,CAAC,UAAU,KAAK,QAAQ;YAChC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,2BAA2B;YACpD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,QAE3B;QACC,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACnC,OAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;YAC/C,GAAG,EAAE,OAAO;SACb,CAAC,CAAC;QACH,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,2BAA2B;QAChC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAExC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAKzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,OAAO,WAAW;IACL,KAAK,CAAe;IACpB,MAAM,CAAuB;IAC7B,SAAS,CAAmB;IAC5B,mBAAmB,CAAsB;IACzC,YAAY,CAA4B;IACzD,YACE,KAAmB,EACnB,MAA4B,EAC5B,SAA2B,EAC3B,mBAAwC,EACxC,YAA2B;QAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAClC,IAKC;QAED,sEAAsE;QACtE,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK;aACnC,QAAQ,EAAE;aACV,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC3B,IAAI;YACJ,cAAc,EAAE,mBAAmB;YACnC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;SACnC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,OAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAS7B;QACC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QACtD,MAAM,iBAAiB,GAAG,cAAc;YACtC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YACtE,CAAC,CAAC,CAAC,CAAC;QAEN,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,2BAA2B,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC;YACrE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;YAChC,eAAe,EAAE,cAAc;YAC/B,2BAA2B,EAAE,cAAc,IAAI,iBAAiB,KAAK,CAAC;YACtE,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACvD,aAAa,EAAE,YAAY;SAC5B,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACpC,IAKC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO;YACL,GAAG,WAAW;YACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI;SACnD,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,MAW3B;QACC,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,SAAS;gBAC/B,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE;gBAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,CAAC,GAAG;gBACb,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;gBAClC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;aACjC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC/D,QAAQ,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC;YAChD,aAAa,EAAE;gBACb,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACzB,QAAQ,EAAE,EAAE;aACb;YACD,KAAK,EAAE,MAAM,CAAC,QAAQ;YACtB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ;YAC3C,OAAO,EAAE;gBACP,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;aACpD;SACF,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAC1D;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,QAAQ;gBAC1B,KAAK;aACN;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAW;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAK5B;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;YAC7D,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAE5B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAM5B;QACC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC7D,MAAM,YAAY,GAChB,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;YAE5D,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7D,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACnC,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC7C,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;iBACzB,CAAC,CAAC;gBACH,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBACzC,CAAC;gBACD,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9B,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC1D,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAC7C,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAE5B,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;gBAC3D,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAC1B,cAAc,EACd,IAAI,CAAC,KAAK,EACV,SAAS,EACT,IAAI,CAAC,GAAG,CACT,CAAC;YACJ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAG5B;QACC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;YACzD,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,GAAW;QAEX,OAAO,gBAAgB,CACrB,IAAI,CAAC,KAAK,EACV,GAAG,EACH,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;YACpE,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,EACD,EAAE,cAAc,EAAE,IAAI,EAAE,CACzB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,MAapC;QAKC,MAAM,KAAK,GAA4B,MAAM,CAAC,GAAG;YAC/C,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE;YAC9B,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc;gBAAE,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;YAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;gBACzB,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAChD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI;gBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3D,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9C,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YACxD,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,KAAK,CAAC,GAAG;oBACb,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;oBAClC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;iBACjC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9C,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;SACxB,CAAC,CAAC;QACH,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAA0B,CAAC;YAC/B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAAE,MAAM,GAAG,QAAQ,CAAC;iBAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ;gBAAE,MAAM,GAAG,MAAM,CAAC;iBAClD,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,OAAO;gBAClD,MAAM,GAAG,WAAW,CAAC;YACvB,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAKrB;QACC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CACzE,MAAM,CAAC,QAAQ,CAChB,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE;YAC5C,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7C,0DAA0D;YAC1D,4DAA4D;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;gBAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;gBAC1C,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM,wBAAwB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAEvE,IAAI,wBAAwB,EAAE,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACrD,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAC/B,4CAA4C,CAC7C,CAAC;oBACJ,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACjE,MAAM,CAAC,QAAQ,EACf,KAAK,CACN,CAAC;oBACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtB,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAC/B,2BAA2B,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY;aACb,CAAC,CAAC;YAEH,sDAAsD;YACtD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAC1B,cAAc,EACd,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,MAAM,EACb,IAAI,CAAC,GAAG,CACT,CAAC;YACJ,CAAC;YAED,wDAAwD;YACxD,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC;gBAC/B,4CAA4C;gBAC5C,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;wBACrC,OAAO,EAAE,IAAI,CAAC,GAAG;wBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;gBAED,gEAAgE;gBAChE,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC;oBAC7C,OAAO,EAAE,IAAI,CAAC,GAAG;oBACjB,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAED,yBAAyB;YACzB,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,UAAU;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,2BAA2B,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC;gBACrE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;gBAChC,eAAe,EAAE,KAAK;gBACtB,2BAA2B,EAAE,KAAK;gBAClC,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBACvD,aAAa,EAAE,CAAC;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,OAAe;QAG1C,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YACtD,iDAAiD;YACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAC9C,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,EAClC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAClD,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;YAED,uBAAuB;YACvB,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAE5B,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,6BAA6B,CAAC,QAEpC;QACC,OAAO,CACL,QAAQ,CAAC,UAAU,KAAK,QAAQ;YAChC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,2BAA2B;YACpD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,QAE3B;QACC,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACnC,OAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;YAC/C,GAAG,EAAE,OAAO;SACb,CAAC,CAAC;QACH,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,2BAA2B;QAChC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-B-57GDDH.js";import{t}from"./text-CBHShrvS.js";import{c as n,i as r,r as i,t as a}from"./shell-header-bar-CjPlfRKT.js";var o=e();function s({showSubtitle:e=!1}){let{title:r,subtitle:i,iconUrl:a,logoUrl:s}=n();return(0,o.jsxs)(`div`,{className:`flex min-w-0 flex-col items-start gap-tinyrack-sm`,children:[s?(0,o.jsx)(t,{"aria-label":r??`Issuary`,as:`h1`,className:`w-full`,variant:`headingLg`,children:(0,o.jsx)(`img`,{alt:``,className:`h-tinyrack-3xl w-full object-contain object-center`,src:s})}):(0,o.jsxs)(`div`,{className:`flex w-full min-w-0 items-center justify-center gap-tinyrack-sm`,children:[(0,o.jsx)(`img`,{alt:``,className:`size-tinyrack-2xl shrink-0 object-contain`,src:a}),r&&(0,o.jsx)(t,{as:`h1`,truncate:!0,variant:`headingLg`,weight:`heading`,children:r})]}),e&&i&&(0,o.jsx)(t,{align:`center`,as:`p`,className:`w-full text-tinyrack-xl`,color:`muted`,variant:`body`,children:i})]})}var c={form:`max-w-tinyrack-measure-xl`,wide:`max-w-tinyrack-overlay-width-md`};function l({children:e,width:t=`form`,showBrandSubtitle:n=!1}){return(0,o.jsxs)(`div`,{className:`m-auto flex w-full flex-col gap-tinyrack-xl ${c[t]}`,children:[(0,o.jsx)(s,{showSubtitle:n}),e]})}function u({children:e}){return(0,o.jsxs)(`div`,{className:`flex min-h-dvh flex-col bg-tinyrack-surface`,"data-testid":`auth-shell`,children:[(0,o.jsx)(r,{}),(0,o.jsx)(a,{}),(0,o.jsx)(`main`,{className:`flex flex-1 px-tinyrack-lg py-tinyrack-xl`,children:e}),(0,o.jsx)(i,{})]})}export{u as n,l as t};
1
+ import{t as e}from"./jsx-runtime-B-57GDDH.js";import{t}from"./text-CBHShrvS.js";import{c as n,i as r,r as i,t as a}from"./shell-header-bar-DRx10tE5.js";var o=e();function s({showSubtitle:e=!1}){let{title:r,subtitle:i,iconUrl:a,logoUrl:s}=n();return(0,o.jsxs)(`div`,{className:`flex min-w-0 flex-col items-start gap-tinyrack-sm`,children:[s?(0,o.jsx)(t,{"aria-label":r??`Issuary`,as:`h1`,className:`w-full`,variant:`headingLg`,children:(0,o.jsx)(`img`,{alt:``,className:`h-tinyrack-3xl w-full object-contain object-center`,src:s})}):(0,o.jsxs)(`div`,{className:`flex w-full min-w-0 items-center justify-center gap-tinyrack-sm`,children:[(0,o.jsx)(`img`,{alt:``,className:`size-tinyrack-2xl shrink-0 object-contain`,src:a}),r&&(0,o.jsx)(t,{as:`h1`,truncate:!0,variant:`headingLg`,weight:`heading`,children:r})]}),e&&i&&(0,o.jsx)(t,{align:`center`,as:`p`,className:`w-full text-tinyrack-xl`,color:`muted`,variant:`body`,children:i})]})}var c={form:`max-w-tinyrack-measure-xl`,wide:`max-w-tinyrack-overlay-width-md`};function l({children:e,width:t=`form`,showBrandSubtitle:n=!1}){return(0,o.jsxs)(`div`,{className:`m-auto flex w-full flex-col gap-tinyrack-xl ${c[t]}`,children:[(0,o.jsx)(s,{showSubtitle:n}),e]})}function u({children:e}){return(0,o.jsxs)(`div`,{className:`flex min-h-dvh flex-col bg-tinyrack-surface`,"data-testid":`auth-shell`,children:[(0,o.jsx)(r,{}),(0,o.jsx)(a,{}),(0,o.jsx)(`main`,{className:`flex flex-1 px-tinyrack-lg py-tinyrack-xl`,children:e}),(0,o.jsx)(i,{})]})}export{u as n,l as t};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-B-57GDDH.js";import{t}from"./text-CBHShrvS.js";import{c as n}from"./shell-header-bar-CjPlfRKT.js";var r=e();function i({title:e,subtitle:i,eyebrow:a,align:o=`start`}){let{title:s,logoUrl:c}=n();return(0,r.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs ${o===`center`?`items-center text-center`:`items-start text-start`}`,children:[a,(0,r.jsx)(t,{align:o,as:s||c?`h2`:`h1`,variant:`headingLg`,children:e}),i&&(0,r.jsx)(t,{align:o,as:`p`,color:`muted`,variant:`body`,children:i})]})}export{i as t};
1
+ import{t as e}from"./jsx-runtime-B-57GDDH.js";import{t}from"./text-CBHShrvS.js";import{c as n}from"./shell-header-bar-DRx10tE5.js";var r=e();function i({title:e,subtitle:i,eyebrow:a,align:o=`start`}){let{title:s,logoUrl:c}=n();return(0,r.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs ${o===`center`?`items-center text-center`:`items-start text-start`}`,children:[a,(0,r.jsx)(t,{align:o,as:s||c?`h2`:`h1`,variant:`headingLg`,children:e}),i&&(0,r.jsx)(t,{align:o,as:`p`,color:`muted`,variant:`body`,children:i})]})}export{i as t};
@@ -0,0 +1 @@
1
+ function e(){return window.dispatchEvent(new Event(`issuary-document-navigation`,{cancelable:!0}))}function t(t){e()&&window.location.assign(t)}export{e as n,t};