@ackplus/nest-auth 1.1.30 → 1.1.31-beta.5

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 (301) hide show
  1. package/README.md +64 -450
  2. package/dist/index.d.ts +4 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/admin-console/admin-console.module.js +1 -1
  7. package/dist/lib/admin-console/admin-console.module.js.map +1 -1
  8. package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts +3 -3
  9. package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts.map +1 -1
  10. package/dist/lib/admin-console/controllers/admin-auth.controller.js +2 -2
  11. package/dist/lib/admin-console/controllers/admin-auth.controller.js.map +1 -1
  12. package/dist/lib/admin-console/controllers/admin-console.controller.js +1 -1
  13. package/dist/lib/admin-console/controllers/admin-console.controller.js.map +1 -1
  14. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts +2 -2
  15. package/dist/lib/admin-console/decorators/current-admin.decorator.js.map +1 -1
  16. package/dist/lib/admin-console/entities/admin-user.entity.d.ts +1 -3
  17. package/dist/lib/admin-console/entities/admin-user.entity.d.ts.map +1 -1
  18. package/dist/lib/admin-console/entities/admin-user.entity.js +19 -66
  19. package/dist/lib/admin-console/entities/admin-user.entity.js.map +1 -1
  20. package/dist/lib/admin-console/guards/admin-session.guard.d.ts +2 -2
  21. package/dist/lib/admin-console/guards/admin-session.guard.d.ts.map +1 -1
  22. package/dist/lib/admin-console/services/admin-auth.service.d.ts +4 -4
  23. package/dist/lib/admin-console/services/admin-auth.service.d.ts.map +1 -1
  24. package/dist/lib/admin-console/services/admin-auth.service.js.map +1 -1
  25. package/dist/lib/admin-console/services/admin-console-config.service.d.ts +4 -4
  26. package/dist/lib/admin-console/services/admin-console-config.service.d.ts.map +1 -1
  27. package/dist/lib/admin-console/services/admin-console-config.service.js +22 -14
  28. package/dist/lib/admin-console/services/admin-console-config.service.js.map +1 -1
  29. package/dist/lib/admin-console/services/admin-session.service.d.ts +2 -2
  30. package/dist/lib/admin-console/services/admin-session.service.d.ts.map +1 -1
  31. package/dist/lib/admin-console/services/admin-session.service.js.map +1 -1
  32. package/dist/lib/admin-console/services/admin-user.service.d.ts +7 -7
  33. package/dist/lib/admin-console/services/admin-user.service.d.ts.map +1 -1
  34. package/dist/lib/admin-console/services/admin-user.service.js +1 -1
  35. package/dist/lib/admin-console/services/admin-user.service.js.map +1 -1
  36. package/dist/lib/admin-console/static/index.html +5 -5
  37. package/dist/lib/admin-console/static/nest-auth.json +281 -140
  38. package/dist/lib/audit/services/audit.service.d.ts +6 -1
  39. package/dist/lib/audit/services/audit.service.d.ts.map +1 -1
  40. package/dist/lib/audit/services/audit.service.js +12 -7
  41. package/dist/lib/audit/services/audit.service.js.map +1 -1
  42. package/dist/lib/auth/auth.module.d.ts.map +1 -1
  43. package/dist/lib/auth/auth.module.js +9 -6
  44. package/dist/lib/auth/auth.module.js.map +1 -1
  45. package/dist/lib/auth/controllers/auth.controller.d.ts +37 -45
  46. package/dist/lib/auth/controllers/auth.controller.d.ts.map +1 -1
  47. package/dist/lib/auth/controllers/auth.controller.js +125 -132
  48. package/dist/lib/auth/controllers/auth.controller.js.map +1 -1
  49. package/dist/lib/auth/controllers/mfa.controller.d.ts +9 -15
  50. package/dist/lib/auth/controllers/mfa.controller.d.ts.map +1 -1
  51. package/dist/lib/auth/controllers/mfa.controller.js +23 -20
  52. package/dist/lib/auth/controllers/mfa.controller.js.map +1 -1
  53. package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts +2 -1
  54. package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts.map +1 -1
  55. package/dist/lib/auth/dto/credentials/social-credentials.dto.js +9 -2
  56. package/dist/lib/auth/dto/credentials/social-credentials.dto.js.map +1 -1
  57. package/dist/lib/auth/dto/requests/change-password.request.dto.d.ts +2 -1
  58. package/dist/lib/auth/dto/requests/change-password.request.dto.d.ts.map +1 -1
  59. package/dist/lib/auth/dto/requests/change-password.request.dto.js +5 -5
  60. package/dist/lib/auth/dto/requests/change-password.request.dto.js.map +1 -1
  61. package/dist/lib/auth/dto/requests/forgot-password.request.dto.d.ts +2 -1
  62. package/dist/lib/auth/dto/requests/forgot-password.request.dto.d.ts.map +1 -1
  63. package/dist/lib/auth/dto/requests/forgot-password.request.dto.js +6 -6
  64. package/dist/lib/auth/dto/requests/forgot-password.request.dto.js.map +1 -1
  65. package/dist/lib/auth/dto/requests/initialize-admin.request.dto.d.ts +2 -1
  66. package/dist/lib/auth/dto/requests/initialize-admin.request.dto.d.ts.map +1 -1
  67. package/dist/lib/auth/dto/requests/initialize-admin.request.dto.js +8 -8
  68. package/dist/lib/auth/dto/requests/initialize-admin.request.dto.js.map +1 -1
  69. package/dist/lib/auth/dto/requests/login.request.dto.d.ts +3 -2
  70. package/dist/lib/auth/dto/requests/login.request.dto.d.ts.map +1 -1
  71. package/dist/lib/auth/dto/requests/login.request.dto.js +11 -12
  72. package/dist/lib/auth/dto/requests/login.request.dto.js.map +1 -1
  73. package/dist/lib/auth/dto/requests/refresh-token.request.dto.d.ts +2 -1
  74. package/dist/lib/auth/dto/requests/refresh-token.request.dto.d.ts.map +1 -1
  75. package/dist/lib/auth/dto/requests/refresh-token.request.dto.js +4 -4
  76. package/dist/lib/auth/dto/requests/refresh-token.request.dto.js.map +1 -1
  77. package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.d.ts +2 -1
  78. package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.d.ts.map +1 -1
  79. package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.js +5 -5
  80. package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.js.map +1 -1
  81. package/dist/lib/auth/dto/requests/reset-password.request.dto.d.ts +2 -1
  82. package/dist/lib/auth/dto/requests/reset-password.request.dto.d.ts.map +1 -1
  83. package/dist/lib/auth/dto/requests/reset-password.request.dto.js +8 -8
  84. package/dist/lib/auth/dto/requests/reset-password.request.dto.js.map +1 -1
  85. package/dist/lib/auth/dto/requests/send-email-verification.request.dto.d.ts +2 -1
  86. package/dist/lib/auth/dto/requests/send-email-verification.request.dto.d.ts.map +1 -1
  87. package/dist/lib/auth/dto/requests/send-email-verification.request.dto.js +4 -4
  88. package/dist/lib/auth/dto/requests/send-email-verification.request.dto.js.map +1 -1
  89. package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.d.ts +4 -3
  90. package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.d.ts.map +1 -1
  91. package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.js +12 -12
  92. package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.js.map +1 -1
  93. package/dist/lib/auth/dto/requests/signup.request.dto.d.ts +2 -1
  94. package/dist/lib/auth/dto/requests/signup.request.dto.d.ts.map +1 -1
  95. package/dist/lib/auth/dto/requests/signup.request.dto.js +7 -7
  96. package/dist/lib/auth/dto/requests/signup.request.dto.js.map +1 -1
  97. package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.d.ts +2 -1
  98. package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.d.ts.map +1 -1
  99. package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.js +4 -4
  100. package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.js.map +1 -1
  101. package/dist/lib/auth/dto/requests/verify-2fa.request.dto.d.ts +4 -3
  102. package/dist/lib/auth/dto/requests/verify-2fa.request.dto.d.ts.map +1 -1
  103. package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js +11 -11
  104. package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js.map +1 -1
  105. package/dist/lib/auth/dto/requests/verify-email.request.dto.d.ts +2 -1
  106. package/dist/lib/auth/dto/requests/verify-email.request.dto.d.ts.map +1 -1
  107. package/dist/lib/auth/dto/requests/verify-email.request.dto.js +5 -5
  108. package/dist/lib/auth/dto/requests/verify-email.request.dto.js.map +1 -1
  109. package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.d.ts +2 -1
  110. package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.d.ts.map +1 -1
  111. package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.js +7 -7
  112. package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.js.map +1 -1
  113. package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.d.ts +2 -1
  114. package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.d.ts.map +1 -1
  115. package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.js +5 -5
  116. package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.js.map +1 -1
  117. package/dist/lib/auth/dto/responses/auth-cookie.response.dto.d.ts +2 -1
  118. package/dist/lib/auth/dto/responses/auth-cookie.response.dto.d.ts.map +1 -1
  119. package/dist/lib/auth/dto/responses/auth-cookie.response.dto.js.map +1 -1
  120. package/dist/lib/auth/dto/responses/auth-messages.response.dto.d.ts +38 -0
  121. package/dist/lib/auth/dto/responses/auth-messages.response.dto.d.ts.map +1 -0
  122. package/dist/lib/auth/dto/responses/auth-messages.response.dto.js +110 -0
  123. package/dist/lib/auth/dto/responses/auth-messages.response.dto.js.map +1 -0
  124. package/dist/lib/auth/dto/responses/auth-success.response.dto.d.ts +2 -1
  125. package/dist/lib/auth/dto/responses/auth-success.response.dto.d.ts.map +1 -1
  126. package/dist/lib/auth/dto/responses/auth-success.response.dto.js.map +1 -1
  127. package/dist/lib/auth/dto/responses/auth.response.dto.d.ts +7 -4
  128. package/dist/lib/auth/dto/responses/auth.response.dto.d.ts.map +1 -1
  129. package/dist/lib/auth/dto/responses/auth.response.dto.js +20 -0
  130. package/dist/lib/auth/dto/responses/auth.response.dto.js.map +1 -1
  131. package/dist/lib/auth/dto/responses/client-config.response.dto.d.ts +14 -13
  132. package/dist/lib/auth/dto/responses/client-config.response.dto.d.ts.map +1 -1
  133. package/dist/lib/auth/dto/responses/client-config.response.dto.js.map +1 -1
  134. package/dist/lib/auth/dto/responses/initialize-admin.response.dto.d.ts +2 -1
  135. package/dist/lib/auth/dto/responses/initialize-admin.response.dto.d.ts.map +1 -1
  136. package/dist/lib/auth/dto/responses/initialize-admin.response.dto.js.map +1 -1
  137. package/dist/lib/auth/dto/responses/mfa-code-response.dto.d.ts +2 -1
  138. package/dist/lib/auth/dto/responses/mfa-code-response.dto.d.ts.map +1 -1
  139. package/dist/lib/auth/dto/responses/mfa-code-response.dto.js.map +1 -1
  140. package/dist/lib/auth/dto/responses/mfa-status.response.dto.d.ts +7 -6
  141. package/dist/lib/auth/dto/responses/mfa-status.response.dto.d.ts.map +1 -1
  142. package/dist/lib/auth/dto/responses/mfa-status.response.dto.js +7 -7
  143. package/dist/lib/auth/dto/responses/mfa-status.response.dto.js.map +1 -1
  144. package/dist/lib/auth/dto/responses/verify-otp.response.dto.d.ts +2 -1
  145. package/dist/lib/auth/dto/responses/verify-otp.response.dto.d.ts.map +1 -1
  146. package/dist/lib/auth/dto/responses/verify-otp.response.dto.js.map +1 -1
  147. package/dist/lib/auth/entities/otp.entity.d.ts +2 -2
  148. package/dist/lib/auth/entities/otp.entity.d.ts.map +1 -1
  149. package/dist/lib/auth/entities/otp.entity.js +1 -1
  150. package/dist/lib/auth/entities/otp.entity.js.map +1 -1
  151. package/dist/lib/auth/events/password-reset-requested.event.d.ts +2 -2
  152. package/dist/lib/auth/events/password-reset-requested.event.d.ts.map +1 -1
  153. package/dist/lib/auth/events/password-reset.event.d.ts +2 -2
  154. package/dist/lib/auth/events/password-reset.event.d.ts.map +1 -1
  155. package/dist/lib/auth/events/password-reset.event.js.map +1 -1
  156. package/dist/lib/auth/events/two-factor-code-sent.event.d.ts +2 -2
  157. package/dist/lib/auth/events/two-factor-code-sent.event.d.ts.map +1 -1
  158. package/dist/lib/auth/events/user-2fa-enabled.event.d.ts +3 -3
  159. package/dist/lib/auth/events/user-2fa-enabled.event.d.ts.map +1 -1
  160. package/dist/lib/auth/events/user-2fa-verified.event.d.ts +2 -2
  161. package/dist/lib/auth/events/user-2fa-verified.event.d.ts.map +1 -1
  162. package/dist/lib/auth/events/user-logged-in.event.d.ts +2 -2
  163. package/dist/lib/auth/events/user-logged-in.event.d.ts.map +1 -1
  164. package/dist/lib/auth/events/user-registered.event.d.ts +2 -2
  165. package/dist/lib/auth/events/user-registered.event.d.ts.map +1 -1
  166. package/dist/lib/auth/events/user-registered.event.js.map +1 -1
  167. package/dist/lib/auth/filters/auth-exception.filter.d.ts +6 -0
  168. package/dist/lib/auth/filters/auth-exception.filter.d.ts.map +1 -0
  169. package/dist/lib/auth/filters/auth-exception.filter.js +29 -0
  170. package/dist/lib/auth/filters/auth-exception.filter.js.map +1 -0
  171. package/dist/lib/auth/filters/index.d.ts +2 -0
  172. package/dist/lib/auth/filters/index.d.ts.map +1 -0
  173. package/dist/lib/auth/filters/index.js +18 -0
  174. package/dist/lib/auth/filters/index.js.map +1 -0
  175. package/dist/lib/auth/index.d.ts +1 -2
  176. package/dist/lib/auth/index.d.ts.map +1 -1
  177. package/dist/lib/auth/index.js +1 -2
  178. package/dist/lib/auth/index.js.map +1 -1
  179. package/dist/lib/auth/interceptors/token-response.interceptor.d.ts +16 -0
  180. package/dist/lib/auth/interceptors/token-response.interceptor.d.ts.map +1 -0
  181. package/dist/lib/auth/interceptors/token-response.interceptor.js +83 -0
  182. package/dist/lib/auth/interceptors/token-response.interceptor.js.map +1 -0
  183. package/dist/lib/auth/services/auth.service.d.ts +11 -33
  184. package/dist/lib/auth/services/auth.service.d.ts.map +1 -1
  185. package/dist/lib/auth/services/auth.service.js +65 -505
  186. package/dist/lib/auth/services/auth.service.js.map +1 -1
  187. package/dist/lib/auth/services/client-config.service.d.ts.map +1 -1
  188. package/dist/lib/auth/services/client-config.service.js +2 -4
  189. package/dist/lib/auth/services/client-config.service.js.map +1 -1
  190. package/dist/lib/auth/services/mfa.service.d.ts +8 -7
  191. package/dist/lib/auth/services/mfa.service.d.ts.map +1 -1
  192. package/dist/lib/auth/services/mfa.service.js +21 -21
  193. package/dist/lib/auth/services/mfa.service.js.map +1 -1
  194. package/dist/lib/auth/services/password.service.d.ts +44 -0
  195. package/dist/lib/auth/services/password.service.d.ts.map +1 -0
  196. package/dist/lib/auth/services/password.service.js +447 -0
  197. package/dist/lib/auth/services/password.service.js.map +1 -0
  198. package/dist/lib/auth/services/verification.service.d.ts +24 -0
  199. package/dist/lib/auth/services/verification.service.d.ts.map +1 -0
  200. package/dist/lib/auth/services/verification.service.js +191 -0
  201. package/dist/lib/auth/services/verification.service.js.map +1 -0
  202. package/dist/lib/auth.constants.d.ts +0 -8
  203. package/dist/lib/auth.constants.d.ts.map +1 -1
  204. package/dist/lib/auth.constants.js +1 -9
  205. package/dist/lib/auth.constants.js.map +1 -1
  206. package/dist/lib/core/core.module.d.ts.map +1 -1
  207. package/dist/lib/core/core.module.js +3 -0
  208. package/dist/lib/core/core.module.js.map +1 -1
  209. package/dist/lib/core/entities.d.ts +2 -3
  210. package/dist/lib/core/entities.d.ts.map +1 -1
  211. package/dist/lib/core/entities.js +2 -4
  212. package/dist/lib/core/entities.js.map +1 -1
  213. package/dist/lib/core/index.d.ts +0 -5
  214. package/dist/lib/core/index.d.ts.map +1 -1
  215. package/dist/lib/core/index.js +0 -5
  216. package/dist/lib/core/index.js.map +1 -1
  217. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts +31 -32
  218. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts.map +1 -1
  219. package/dist/lib/core/interfaces/mfa-options.interface.d.ts +3 -6
  220. package/dist/lib/core/interfaces/mfa-options.interface.d.ts.map +1 -1
  221. package/dist/lib/core/interfaces/mfa-options.interface.js +0 -7
  222. package/dist/lib/core/interfaces/mfa-options.interface.js.map +1 -1
  223. package/dist/lib/core/interfaces/session-options.interface.d.ts.map +1 -1
  224. package/dist/lib/core/providers/apple-auth.provider.d.ts +6 -3
  225. package/dist/lib/core/providers/apple-auth.provider.d.ts.map +1 -1
  226. package/dist/lib/core/providers/apple-auth.provider.js +14 -7
  227. package/dist/lib/core/providers/apple-auth.provider.js.map +1 -1
  228. package/dist/lib/core/providers/base-auth.provider.d.ts +4 -3
  229. package/dist/lib/core/providers/base-auth.provider.d.ts.map +1 -1
  230. package/dist/lib/core/providers/base-auth.provider.js.map +1 -1
  231. package/dist/lib/core/providers/email-auth.provider.d.ts +7 -7
  232. package/dist/lib/core/providers/email-auth.provider.d.ts.map +1 -1
  233. package/dist/lib/core/providers/email-auth.provider.js +19 -8
  234. package/dist/lib/core/providers/email-auth.provider.js.map +1 -1
  235. package/dist/lib/core/providers/facebook-auth.provider.d.ts +8 -6
  236. package/dist/lib/core/providers/facebook-auth.provider.d.ts.map +1 -1
  237. package/dist/lib/core/providers/facebook-auth.provider.js +31 -18
  238. package/dist/lib/core/providers/facebook-auth.provider.js.map +1 -1
  239. package/dist/lib/core/providers/github-auth.provider.d.ts +8 -6
  240. package/dist/lib/core/providers/github-auth.provider.d.ts.map +1 -1
  241. package/dist/lib/core/providers/github-auth.provider.js +18 -11
  242. package/dist/lib/core/providers/github-auth.provider.js.map +1 -1
  243. package/dist/lib/core/providers/google-auth.provider.d.ts +14 -13
  244. package/dist/lib/core/providers/google-auth.provider.d.ts.map +1 -1
  245. package/dist/lib/core/providers/google-auth.provider.js +36 -18
  246. package/dist/lib/core/providers/google-auth.provider.js.map +1 -1
  247. package/dist/lib/core/providers/jwt-auth.provider.d.ts +8 -6
  248. package/dist/lib/core/providers/jwt-auth.provider.d.ts.map +1 -1
  249. package/dist/lib/core/providers/jwt-auth.provider.js +17 -11
  250. package/dist/lib/core/providers/jwt-auth.provider.js.map +1 -1
  251. package/dist/lib/core/providers/phone-auth.provider.d.ts +7 -7
  252. package/dist/lib/core/providers/phone-auth.provider.d.ts.map +1 -1
  253. package/dist/lib/core/providers/phone-auth.provider.js +14 -7
  254. package/dist/lib/core/providers/phone-auth.provider.js.map +1 -1
  255. package/dist/lib/core/services/auth-config.service.d.ts +9 -9
  256. package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
  257. package/dist/lib/core/services/auth-config.service.js +22 -20
  258. package/dist/lib/core/services/auth-config.service.js.map +1 -1
  259. package/dist/lib/core/services/auth-provider-registry.service.d.ts.map +1 -1
  260. package/dist/lib/core/services/auth-provider-registry.service.js +5 -0
  261. package/dist/lib/core/services/auth-provider-registry.service.js.map +1 -1
  262. package/dist/lib/core/services/jwt.service.d.ts +3 -3
  263. package/dist/lib/core/services/jwt.service.d.ts.map +1 -1
  264. package/dist/lib/core/services/jwt.service.js +41 -8
  265. package/dist/lib/core/services/jwt.service.js.map +1 -1
  266. package/dist/lib/nest-auth.module.d.ts +3 -3
  267. package/dist/lib/nest-auth.module.d.ts.map +1 -1
  268. package/dist/lib/nest-auth.module.js +5 -16
  269. package/dist/lib/nest-auth.module.js.map +1 -1
  270. package/dist/lib/session/services/session-manager.service.js.map +1 -1
  271. package/dist/lib/tenant/services/tenant.service.d.ts +0 -1
  272. package/dist/lib/tenant/services/tenant.service.d.ts.map +1 -1
  273. package/dist/lib/tenant/services/tenant.service.js +8 -25
  274. package/dist/lib/tenant/services/tenant.service.js.map +1 -1
  275. package/dist/lib/user/entities/user.entity.d.ts +0 -2
  276. package/dist/lib/user/entities/user.entity.d.ts.map +1 -1
  277. package/dist/lib/user/entities/user.entity.js +5 -52
  278. package/dist/lib/user/entities/user.entity.js.map +1 -1
  279. package/dist/lib/user/services/user.service.d.ts.map +1 -1
  280. package/dist/lib/user/services/user.service.js.map +1 -1
  281. package/package.json +53 -44
  282. package/dist/lib/auth/dto/index.d.ts +0 -1
  283. package/dist/lib/auth/dto/index.d.ts.map +0 -1
  284. package/dist/lib/auth/dto/index.js +0 -1
  285. package/dist/lib/auth/dto/index.js.map +0 -1
  286. package/dist/lib/auth/events/index.d.ts +0 -13
  287. package/dist/lib/auth/events/index.d.ts.map +0 -1
  288. package/dist/lib/auth/events/index.js +0 -29
  289. package/dist/lib/auth/events/index.js.map +0 -1
  290. package/dist/lib/auth/interceptors/refresh-token.interceptor.d.ts +0 -16
  291. package/dist/lib/auth/interceptors/refresh-token.interceptor.d.ts.map +0 -1
  292. package/dist/lib/auth/interceptors/refresh-token.interceptor.js +0 -87
  293. package/dist/lib/auth/interceptors/refresh-token.interceptor.js.map +0 -1
  294. package/dist/lib/auth/services/cookie.service.d.ts +0 -10
  295. package/dist/lib/auth/services/cookie.service.d.ts.map +0 -1
  296. package/dist/lib/auth/services/cookie.service.js +0 -55
  297. package/dist/lib/auth/services/cookie.service.js.map +0 -1
  298. package/dist/lib/core/interfaces/otp.interface.d.ts +0 -6
  299. package/dist/lib/core/interfaces/otp.interface.d.ts.map +0 -1
  300. package/dist/lib/core/interfaces/otp.interface.js +0 -10
  301. package/dist/lib/core/interfaces/otp.interface.js.map +0 -1
@@ -0,0 +1,447 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.PasswordService = void 0;
19
+ const common_1 = require("@nestjs/common");
20
+ const typeorm_1 = require("@nestjs/typeorm");
21
+ const typeorm_2 = require("typeorm");
22
+ const user_entity_1 = require("../../user/entities/user.entity");
23
+ const otp_entity_1 = require("../../auth/entities/otp.entity");
24
+ const nest_auth_contracts_1 = require("@ackplus/nest-auth-contracts");
25
+ const auth_constants_1 = require("../../auth.constants");
26
+ const jwt_service_1 = require("../../core/services/jwt.service");
27
+ const event_emitter_1 = require("@nestjs/event-emitter");
28
+ const session_manager_service_1 = require("../../session/services/session-manager.service");
29
+ const request_context_1 = require("../../request-context/request-context");
30
+ const otp_1 = require("../../utils/otp");
31
+ const user_password_changed_event_1 = require("../events/user-password-changed.event");
32
+ const password_reset_requested_event_1 = require("../events/password-reset-requested.event");
33
+ const password_reset_event_1 = require("../events/password-reset.event");
34
+ const auth_provider_registry_service_1 = require("../../core/services/auth-provider-registry.service");
35
+ const tenant_service_1 = require("../../tenant/services/tenant.service");
36
+ const debug_logger_service_1 = require("../../core/services/debug-logger.service");
37
+ const moment_1 = __importDefault(require("moment"));
38
+ const auth_config_service_1 = require("../../core/services/auth-config.service");
39
+ const mfa_service_1 = require("./mfa.service");
40
+ const ms_1 = __importDefault(require("ms"));
41
+ let PasswordService = class PasswordService {
42
+ userRepository;
43
+ otpRepository;
44
+ authProviderRegistry;
45
+ mfaService;
46
+ sessionManager;
47
+ jwtService;
48
+ eventEmitter;
49
+ tenantService;
50
+ debugLogger;
51
+ authConfigService;
52
+ constructor(userRepository, otpRepository, authProviderRegistry, mfaService, sessionManager, jwtService, eventEmitter, tenantService, debugLogger, authConfigService) {
53
+ this.userRepository = userRepository;
54
+ this.otpRepository = otpRepository;
55
+ this.authProviderRegistry = authProviderRegistry;
56
+ this.mfaService = mfaService;
57
+ this.sessionManager = sessionManager;
58
+ this.jwtService = jwtService;
59
+ this.eventEmitter = eventEmitter;
60
+ this.tenantService = tenantService;
61
+ this.debugLogger = debugLogger;
62
+ this.authConfigService = authConfigService;
63
+ }
64
+ get mfaConfig() {
65
+ return auth_config_service_1.AuthConfigService.getOptions().mfa || {};
66
+ }
67
+ handleError(error, context) {
68
+ const config = this.authConfigService.getConfig();
69
+ if (config.errorHandler) {
70
+ const result = config.errorHandler(error, context);
71
+ if (result) {
72
+ throw result;
73
+ }
74
+ }
75
+ }
76
+ async generateTokensPayload(session, otherPayload = {}) {
77
+ let payload = {
78
+ id: session.userId,
79
+ sub: session.userId,
80
+ sessionId: session.id,
81
+ email: session.data?.user?.email,
82
+ phone: session.data?.user?.phone,
83
+ isVerified: session.data?.user?.isVerified,
84
+ roles: session.data?.roles,
85
+ tenantId: session.data?.user?.tenantId,
86
+ isMfaEnabled: session.data?.user?.isMfaEnabled,
87
+ isMfaVerified: session.data?.isMfaVerified,
88
+ ...otherPayload,
89
+ };
90
+ const config = this.authConfigService.getConfig();
91
+ if (config.session?.customizeTokenPayload) {
92
+ payload = await config.session.customizeTokenPayload(payload, session);
93
+ }
94
+ return payload;
95
+ }
96
+ async generateTokensFromSession(session) {
97
+ const payload = await this.generateTokensPayload(session);
98
+ return this.jwtService.generateTokens(payload);
99
+ }
100
+ async generateAuthResponse(user, session, tokens, isRequiresMfa) {
101
+ let response = {
102
+ accessToken: tokens.accessToken,
103
+ refreshToken: tokens.refreshToken,
104
+ isRequiresMfa: isRequiresMfa,
105
+ };
106
+ if (isRequiresMfa) {
107
+ const enabledMethods = await this.mfaService.getEnabledMethods(user.id);
108
+ response.mfaMethods = enabledMethods;
109
+ response.defaultMfaMethod = this.mfaService.mfaConfig?.defaultMethod || enabledMethods[0];
110
+ }
111
+ const config = this.authConfigService.getConfig();
112
+ if (config.auth?.transformResponse) {
113
+ response = await config.auth.transformResponse(response, user, session);
114
+ }
115
+ return response;
116
+ }
117
+ async changePassword(input) {
118
+ this.debugLogger.logFunctionEntry('changePassword', 'PasswordService');
119
+ try {
120
+ const currentUser = request_context_1.RequestContext.currentUser();
121
+ if (!currentUser?.id) {
122
+ throw new common_1.UnauthorizedException({
123
+ message: 'User not found',
124
+ code: auth_constants_1.ERROR_CODES.USER_NOT_FOUND,
125
+ });
126
+ }
127
+ const user = await this.userRepository.findOne({
128
+ where: { id: currentUser.id },
129
+ relations: ['roles']
130
+ });
131
+ if (!user) {
132
+ throw new common_1.UnauthorizedException({
133
+ message: 'User not found',
134
+ code: auth_constants_1.ERROR_CODES.USER_NOT_FOUND,
135
+ });
136
+ }
137
+ const isValid = await user.validatePassword(input.currentPassword);
138
+ if (!isValid) {
139
+ throw new common_1.BadRequestException({
140
+ message: 'Current password is incorrect',
141
+ code: auth_constants_1.ERROR_CODES.CURRENT_PASSWORD_INCORRECT,
142
+ });
143
+ }
144
+ if (input.currentPassword === input.newPassword) {
145
+ throw new common_1.BadRequestException({
146
+ message: 'New password must be different from the current password',
147
+ code: auth_constants_1.ERROR_CODES.NEW_PASSWORD_SAME_AS_CURRENT,
148
+ });
149
+ }
150
+ await user.setPassword(input.newPassword);
151
+ await this.userRepository.save(user);
152
+ await this.sessionManager.revokeAllUserSessions(user.id);
153
+ const session = await this.sessionManager.createSessionFromUser(user);
154
+ const tokens = await this.generateTokensFromSession(session);
155
+ const isRequiresMfa = await this.mfaService.isRequiresMfa(user.id);
156
+ await this.eventEmitter.emitAsync(auth_constants_1.NestAuthEvents.PASSWORD_CHANGED, new user_password_changed_event_1.UserPasswordChangedEvent({
157
+ user,
158
+ initiatedBy: 'user'
159
+ }));
160
+ this.debugLogger.logFunctionExit('changePassword', 'PasswordService', { userId: user.id });
161
+ return this.generateAuthResponse(user, session, tokens, isRequiresMfa);
162
+ }
163
+ catch (error) {
164
+ this.debugLogger.logError(error, 'changePassword');
165
+ this.handleError(error, 'password_change');
166
+ throw error;
167
+ }
168
+ }
169
+ async forgotPassword(input) {
170
+ this.debugLogger.logFunctionEntry('forgotPassword', 'PasswordService', { email: input.email, phone: input.phone });
171
+ try {
172
+ const { email, phone } = input;
173
+ let { tenantId = null } = input;
174
+ tenantId = await this.tenantService.resolveTenantId(tenantId);
175
+ let provider = null;
176
+ if (phone) {
177
+ provider = this.authProviderRegistry.getProvider(auth_constants_1.PHONE_AUTH_PROVIDER);
178
+ }
179
+ else if (email) {
180
+ provider = this.authProviderRegistry.getProvider(auth_constants_1.EMAIL_AUTH_PROVIDER);
181
+ }
182
+ else {
183
+ throw new common_1.BadRequestException({
184
+ message: 'Either email or phone must be provided',
185
+ code: auth_constants_1.ERROR_CODES.EMAIL_OR_PHONE_REQUIRED,
186
+ });
187
+ }
188
+ if (!provider) {
189
+ throw new common_1.BadRequestException({
190
+ message: 'Phone or email authentication is not enabled',
191
+ code: auth_constants_1.ERROR_CODES.PROVIDER_NOT_FOUND,
192
+ });
193
+ }
194
+ if (!provider.enabled) {
195
+ const type = email ? 'Email' : 'Phone';
196
+ throw new common_1.BadRequestException({
197
+ message: `${type} authentication is not enabled`,
198
+ code: auth_constants_1.ERROR_CODES.PROVIDER_NOT_FOUND,
199
+ });
200
+ }
201
+ const identity = await provider.findIdentity(email || phone);
202
+ if (!identity) {
203
+ return { message: 'If the account exists, a password reset code has been sent' };
204
+ }
205
+ const options = auth_config_service_1.AuthConfigService.getOptions();
206
+ let code;
207
+ if (options.otp?.generate) {
208
+ code = await options.otp.generate(this.mfaConfig.otpLength);
209
+ }
210
+ else {
211
+ code = (0, otp_1.generateOtp)(this.mfaConfig.otpLength);
212
+ }
213
+ let expiresAtMs;
214
+ if (typeof this.mfaConfig.otpExpiresIn === 'string') {
215
+ expiresAtMs = (0, ms_1.default)(this.mfaConfig.otpExpiresIn);
216
+ }
217
+ else {
218
+ expiresAtMs = this.mfaConfig.otpExpiresIn || 900000;
219
+ }
220
+ if (!expiresAtMs || isNaN(expiresAtMs) || expiresAtMs <= 0) {
221
+ expiresAtMs = 900000;
222
+ }
223
+ await this.otpRepository.delete({
224
+ userId: identity.user?.id,
225
+ type: nest_auth_contracts_1.NestAuthOTPTypeEnum.PASSWORD_RESET
226
+ });
227
+ const otpEntity = await this.otpRepository.create({
228
+ userId: identity.user?.id,
229
+ type: nest_auth_contracts_1.NestAuthOTPTypeEnum.PASSWORD_RESET,
230
+ expiresAt: new Date(Date.now() + expiresAtMs),
231
+ code,
232
+ });
233
+ await this.otpRepository.save(otpEntity);
234
+ await this.eventEmitter.emitAsync(auth_constants_1.NestAuthEvents.PASSWORD_RESET_REQUESTED, new password_reset_requested_event_1.PasswordResetRequestedEvent({
235
+ user: identity.user,
236
+ tenantId: identity.user?.tenantId,
237
+ input,
238
+ otp: otpEntity,
239
+ provider,
240
+ }));
241
+ this.debugLogger.logFunctionExit('forgotPassword', 'PasswordService');
242
+ return true;
243
+ }
244
+ catch (error) {
245
+ this.debugLogger.logError(error, 'forgotPassword');
246
+ this.handleError(error, 'password_reset');
247
+ throw error;
248
+ }
249
+ }
250
+ async verifyForgotPasswordOtp(input) {
251
+ this.debugLogger.logFunctionEntry('verifyForgotPasswordOtp', 'PasswordService');
252
+ try {
253
+ const { email, phone, otp } = input;
254
+ let { tenantId = null } = input;
255
+ tenantId = await this.tenantService.resolveTenantId(tenantId);
256
+ if (!email && !phone) {
257
+ throw new common_1.BadRequestException({
258
+ message: 'Either email or phone must be provided',
259
+ code: auth_constants_1.ERROR_CODES.EMAIL_OR_PHONE_REQUIRED,
260
+ });
261
+ }
262
+ let provider = null;
263
+ if (phone)
264
+ provider = this.authProviderRegistry.getProvider(auth_constants_1.PHONE_AUTH_PROVIDER);
265
+ else if (email)
266
+ provider = this.authProviderRegistry.getProvider(auth_constants_1.EMAIL_AUTH_PROVIDER);
267
+ if (!provider) {
268
+ throw new common_1.BadRequestException({
269
+ message: 'Phone or email authentication is not enabled',
270
+ code: auth_constants_1.ERROR_CODES.PROVIDER_NOT_FOUND,
271
+ });
272
+ }
273
+ const identity = await provider.findIdentity((email || phone));
274
+ if (!identity) {
275
+ throw new common_1.BadRequestException({
276
+ message: 'Invalid reset request',
277
+ code: auth_constants_1.ERROR_CODES.PASSWORD_RESET_INVALID_REQUEST,
278
+ });
279
+ }
280
+ const validOtp = await this.otpRepository.findOne({
281
+ where: {
282
+ userId: identity.user?.id,
283
+ code: otp,
284
+ type: nest_auth_contracts_1.NestAuthOTPTypeEnum.PASSWORD_RESET,
285
+ used: false
286
+ },
287
+ relations: ['user']
288
+ });
289
+ if (!validOtp) {
290
+ throw new common_1.BadRequestException({
291
+ message: 'Invalid OTP code',
292
+ code: auth_constants_1.ERROR_CODES.OTP_INVALID,
293
+ });
294
+ }
295
+ if ((0, moment_1.default)(validOtp.expiresAt).isBefore(new Date())) {
296
+ throw new common_1.BadRequestException({
297
+ message: 'OTP code expired',
298
+ code: auth_constants_1.ERROR_CODES.OTP_EXPIRED,
299
+ });
300
+ }
301
+ const user = validOtp.user;
302
+ const passwordHashPrefix = user.passwordHash ? user.passwordHash.substring(0, 10) : '';
303
+ const resetToken = await this.jwtService.generatePasswordResetToken({
304
+ userId: user.id,
305
+ passwordHashPrefix,
306
+ type: 'password-reset'
307
+ });
308
+ await this.otpRepository.remove(validOtp);
309
+ this.debugLogger.logFunctionExit('verifyForgotPasswordOtp', 'PasswordService');
310
+ return {
311
+ message: 'OTP verified successfully',
312
+ resetToken
313
+ };
314
+ }
315
+ catch (error) {
316
+ this.debugLogger.logError(error, 'verifyForgotPasswordOtp');
317
+ this.handleError(error, 'password_reset');
318
+ throw error;
319
+ }
320
+ }
321
+ async resetPassword(input) {
322
+ this.debugLogger.logFunctionEntry('resetPassword', 'PasswordService');
323
+ try {
324
+ const { email, phone, otp, newPassword } = input;
325
+ let { tenantId = null } = input;
326
+ tenantId = await this.tenantService.resolveTenantId(tenantId);
327
+ if (!email && !phone) {
328
+ throw new common_1.BadRequestException({
329
+ message: 'Either email or phone must be provided',
330
+ code: auth_constants_1.ERROR_CODES.EMAIL_OR_PHONE_REQUIRED,
331
+ });
332
+ }
333
+ const user = await this.userRepository.findOne({
334
+ where: [
335
+ ...(email ? [{ email, tenantId }] : []),
336
+ ...(phone ? [{ phone, tenantId }] : [])
337
+ ]
338
+ });
339
+ if (!user) {
340
+ throw new common_1.BadRequestException({
341
+ message: 'Invalid reset request',
342
+ code: auth_constants_1.ERROR_CODES.PASSWORD_RESET_INVALID_REQUEST,
343
+ });
344
+ }
345
+ const validOtp = await this.otpRepository.findOne({
346
+ where: {
347
+ userId: user.id,
348
+ code: otp,
349
+ type: nest_auth_contracts_1.NestAuthOTPTypeEnum.PASSWORD_RESET,
350
+ expiresAt: (0, typeorm_2.MoreThan)(new Date()),
351
+ used: false
352
+ }
353
+ });
354
+ if (!validOtp) {
355
+ throw new common_1.BadRequestException({
356
+ message: 'Invalid or expired OTP',
357
+ code: auth_constants_1.ERROR_CODES.OTP_INVALID,
358
+ });
359
+ }
360
+ await user.setPassword(newPassword);
361
+ await this.userRepository.save(user);
362
+ validOtp.used = true;
363
+ await this.otpRepository.save(validOtp);
364
+ await this.eventEmitter.emitAsync(auth_constants_1.NestAuthEvents.PASSWORD_RESET, new password_reset_event_1.PasswordResetEvent({
365
+ user,
366
+ tenantId: user.tenantId,
367
+ input,
368
+ }));
369
+ this.debugLogger.logFunctionExit('resetPassword', 'PasswordService');
370
+ return true;
371
+ }
372
+ catch (error) {
373
+ this.debugLogger.logError(error, 'resetPassword');
374
+ this.handleError(error, 'password_reset');
375
+ throw error;
376
+ }
377
+ }
378
+ async resetPasswordWithToken(input) {
379
+ this.debugLogger.logFunctionEntry('resetPasswordWithToken', 'PasswordService', { token: '***' });
380
+ try {
381
+ const { token, newPassword } = input;
382
+ let decoded;
383
+ try {
384
+ decoded = await this.jwtService.verifyPasswordResetToken(token);
385
+ }
386
+ catch (error) {
387
+ throw new common_1.BadRequestException({
388
+ message: 'Invalid or expired reset token',
389
+ code: auth_constants_1.ERROR_CODES.PASSWORD_RESET_TOKEN_INVALID,
390
+ });
391
+ }
392
+ if (decoded.type !== 'password-reset') {
393
+ throw new common_1.BadRequestException({
394
+ message: 'Invalid token type',
395
+ code: auth_constants_1.ERROR_CODES.PASSWORD_RESET_TOKEN_INVALID,
396
+ });
397
+ }
398
+ const user = await this.userRepository.findOne({
399
+ where: { id: decoded.userId }
400
+ });
401
+ if (!user) {
402
+ throw new common_1.BadRequestException({
403
+ message: 'User not found',
404
+ code: auth_constants_1.ERROR_CODES.USER_NOT_FOUND,
405
+ });
406
+ }
407
+ const currentPasswordHashPrefix = user.passwordHash ? user.passwordHash.substring(0, 10) : '';
408
+ if (decoded.passwordHashPrefix !== currentPasswordHashPrefix) {
409
+ throw new common_1.BadRequestException({
410
+ message: 'Reset token is no longer valid',
411
+ code: auth_constants_1.ERROR_CODES.PASSWORD_RESET_TOKEN_INVALID,
412
+ });
413
+ }
414
+ await user.setPassword(newPassword);
415
+ await this.userRepository.save(user);
416
+ await this.eventEmitter.emitAsync(auth_constants_1.NestAuthEvents.PASSWORD_RESET, new password_reset_event_1.PasswordResetEvent({
417
+ user,
418
+ tenantId: user.tenantId,
419
+ input: { token, newPassword },
420
+ }));
421
+ this.debugLogger.logFunctionExit('resetPasswordWithToken', 'PasswordService');
422
+ return true;
423
+ }
424
+ catch (error) {
425
+ this.debugLogger.logError(error, 'resetPasswordWithToken');
426
+ this.handleError(error, 'password_reset');
427
+ throw error;
428
+ }
429
+ }
430
+ };
431
+ exports.PasswordService = PasswordService;
432
+ exports.PasswordService = PasswordService = __decorate([
433
+ (0, common_1.Injectable)(),
434
+ __param(0, (0, typeorm_1.InjectRepository)(user_entity_1.NestAuthUser)),
435
+ __param(1, (0, typeorm_1.InjectRepository)(otp_entity_1.NestAuthOTP)),
436
+ __metadata("design:paramtypes", [typeorm_2.Repository,
437
+ typeorm_2.Repository,
438
+ auth_provider_registry_service_1.AuthProviderRegistryService,
439
+ mfa_service_1.MfaService,
440
+ session_manager_service_1.SessionManagerService,
441
+ jwt_service_1.JwtService,
442
+ event_emitter_1.EventEmitter2,
443
+ tenant_service_1.TenantService,
444
+ debug_logger_service_1.DebugLoggerService,
445
+ auth_config_service_1.AuthConfigService])
446
+ ], PasswordService);
447
+ //# sourceMappingURL=password.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.service.js","sourceRoot":"","sources":["../../../../src/lib/auth/services/password.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Repository } from 'typeorm';
2
+ import { NestAuthUser } from '../../user/entities/user.entity';
3
+ import { NestAuthOTP } from '../../auth/entities/otp.entity';
4
+ import { EventEmitter2 } from '@nestjs/event-emitter';
5
+ import { DebugLoggerService } from '../../core/services/debug-logger.service';
6
+ import { NestAuthSendEmailVerificationRequestDto } from '../dto/requests/send-email-verification.request.dto';
7
+ import { NestAuthVerifyEmailRequestDto } from '../dto/requests/verify-email.request.dto';
8
+ import { AuthConfigService } from '../../core/services/auth-config.service';
9
+ export declare class VerificationService {
10
+ private readonly userRepository;
11
+ private otpRepository;
12
+ private readonly eventEmitter;
13
+ private readonly debugLogger;
14
+ private readonly authConfigService;
15
+ constructor(userRepository: Repository<NestAuthUser>, otpRepository: Repository<NestAuthOTP>, eventEmitter: EventEmitter2, debugLogger: DebugLoggerService, authConfigService: AuthConfigService);
16
+ private handleError;
17
+ sendEmailVerification(input: NestAuthSendEmailVerificationRequestDto): Promise<{
18
+ message: string;
19
+ }>;
20
+ verifyEmail(input: NestAuthVerifyEmailRequestDto): Promise<{
21
+ message: string;
22
+ }>;
23
+ }
24
+ //# sourceMappingURL=verification.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/services/verification.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,qDAAqD,CAAC;AAC9G,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,qBACa,mBAAmB;IAIxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBATjB,cAAc,EAAE,UAAU,CAAC,YAAY,CAAC,EAGjD,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,EAE7B,YAAY,EAAE,aAAa,EAE3B,WAAW,EAAE,kBAAkB,EAE/B,iBAAiB,EAAE,iBAAiB;IAGzD,OAAO,CAAC,WAAW;IAUb,qBAAqB,CAAC,KAAK,EAAE,uCAAuC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAuEnG,WAAW,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAyFxF"}