@antelopejs/dms 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/db/models/notification-feed-filter.d.ts +0 -1
  3. package/dist/db/models/notification-feed-filter.js +0 -4
  4. package/dist/db/models/notification-feed-filter.js.map +1 -1
  5. package/dist/db/models/signInAttempts.model.d.ts +18 -0
  6. package/dist/db/models/signInAttempts.model.js +83 -12
  7. package/dist/db/models/signInAttempts.model.js.map +1 -1
  8. package/dist/db/models/userEmailChanges.model.d.ts +8 -1
  9. package/dist/db/models/userEmailChanges.model.js +27 -2
  10. package/dist/db/models/userEmailChanges.model.js.map +1 -1
  11. package/dist/db/models/userNotificationPreferences.model.d.ts +0 -2
  12. package/dist/db/models/userNotificationPreferences.model.js +0 -13
  13. package/dist/db/models/userNotificationPreferences.model.js.map +1 -1
  14. package/dist/db/models/userNotifications.model.d.ts +5 -2
  15. package/dist/db/models/userNotifications.model.js +19 -2
  16. package/dist/db/models/userNotifications.model.js.map +1 -1
  17. package/dist/db/tables/signInAttempts.table.d.ts +2 -1
  18. package/dist/db/tables/signInAttempts.table.js +4 -0
  19. package/dist/db/tables/signInAttempts.table.js.map +1 -1
  20. package/dist/db/tables/userEmailChanges.table.d.ts +2 -1
  21. package/dist/db/tables/userEmailChanges.table.js +6 -1
  22. package/dist/db/tables/userEmailChanges.table.js.map +1 -1
  23. package/dist/db/tables/userNotificationPreferences.table.d.ts +0 -1
  24. package/dist/db/tables/userNotificationPreferences.table.js +0 -4
  25. package/dist/db/tables/userNotificationPreferences.table.js.map +1 -1
  26. package/dist/implementations/dms/nav-badges.d.ts +6 -4
  27. package/dist/implementations/dms/nav-badges.js +6 -5
  28. package/dist/implementations/dms/nav-badges.js.map +1 -1
  29. package/dist/implementations/dms/page.d.ts +1 -0
  30. package/dist/implementations/dms/page.js +46 -8
  31. package/dist/implementations/dms/page.js.map +1 -1
  32. package/dist/implementations/dms/permission-preview.d.ts +1 -1
  33. package/dist/implementations/dms/permission-preview.js +9 -4
  34. package/dist/implementations/dms/permission-preview.js.map +1 -1
  35. package/dist/implementations/dms-auth/index.d.ts +3 -2
  36. package/dist/implementations/dms-auth/index.js +39 -35
  37. package/dist/implementations/dms-auth/index.js.map +1 -1
  38. package/dist/implementations/dms-auth/token-session.d.ts +3 -0
  39. package/dist/implementations/dms-auth/token-session.js +22 -0
  40. package/dist/implementations/dms-auth/token-session.js.map +1 -0
  41. package/dist/implementations/dms-notifications/index.d.ts +0 -1
  42. package/dist/implementations/dms-notifications/index.js +0 -7
  43. package/dist/implementations/dms-notifications/index.js.map +1 -1
  44. package/dist/pages/settings/settings-index.js +3 -2
  45. package/dist/pages/settings/settings-index.js.map +1 -1
  46. package/dist/pages/settings/users/account-activity-feed.d.ts +1 -1
  47. package/dist/pages/settings/users/account-activity-feed.js +1 -1
  48. package/dist/pages/settings/users/account-activity-feed.js.map +1 -1
  49. package/dist/pages/settings/users/account-activity.d.ts +1 -1
  50. package/dist/pages/settings/users/account-activity.js +1 -1
  51. package/dist/pages/settings/users/account-activity.js.map +1 -1
  52. package/dist/pages/settings/users/account-credentials.d.ts +3 -0
  53. package/dist/pages/settings/users/account-credentials.js +2 -0
  54. package/dist/pages/settings/users/account-credentials.js.map +1 -1
  55. package/dist/pages/settings/users/current-password.d.ts +1 -1
  56. package/dist/pages/settings/users/current-password.js +23 -2
  57. package/dist/pages/settings/users/current-password.js.map +1 -1
  58. package/dist/pages/settings/users/email-change.d.ts +1 -1
  59. package/dist/pages/settings/users/email-change.js +33 -26
  60. package/dist/pages/settings/users/email-change.js.map +1 -1
  61. package/dist/pages/settings/users/invite-resend.js +0 -1
  62. package/dist/pages/settings/users/invite-resend.js.map +1 -1
  63. package/dist/pages/settings/users/invites.d.ts +1 -2
  64. package/dist/pages/settings/users/invites.js +21 -19
  65. package/dist/pages/settings/users/invites.js.map +1 -1
  66. package/dist/pages/settings/users/member-invite-batch.js +0 -1
  67. package/dist/pages/settings/users/member-invite-batch.js.map +1 -1
  68. package/dist/pages/settings/users/member-invite-form.js +10 -22
  69. package/dist/pages/settings/users/member-invite-form.js.map +1 -1
  70. package/dist/pages/settings/users/member-role-options.d.ts +6 -4
  71. package/dist/pages/settings/users/member-role-options.js +15 -4
  72. package/dist/pages/settings/users/member-role-options.js.map +1 -1
  73. package/dist/pages/settings/users/members.d.ts +2 -3
  74. package/dist/pages/settings/users/members.js +7 -12
  75. package/dist/pages/settings/users/members.js.map +1 -1
  76. package/dist/pages/settings/users/notifications.d.ts +1 -8
  77. package/dist/pages/settings/users/notifications.js +6 -38
  78. package/dist/pages/settings/users/notifications.js.map +1 -1
  79. package/dist/pages/settings/users/permission-tree-nodes.d.ts +1 -1
  80. package/dist/pages/settings/users/permission-tree-nodes.js +23 -9
  81. package/dist/pages/settings/users/permission-tree-nodes.js.map +1 -1
  82. package/dist/pages/settings/users/permission-warnings.d.ts +7 -0
  83. package/dist/pages/settings/users/permission-warnings.js +42 -0
  84. package/dist/pages/settings/users/permission-warnings.js.map +1 -0
  85. package/dist/pages/settings/users/profile-helpers.d.ts +1 -3
  86. package/dist/pages/settings/users/profile-helpers.js +0 -16
  87. package/dist/pages/settings/users/profile-helpers.js.map +1 -1
  88. package/dist/pages/settings/users/role-editor-store.js +6 -3
  89. package/dist/pages/settings/users/role-editor-store.js.map +1 -1
  90. package/dist/pages/settings/users/role-editor.d.ts +2 -1
  91. package/dist/pages/settings/users/role-editor.js +8 -4
  92. package/dist/pages/settings/users/role-editor.js.map +1 -1
  93. package/dist/pages/settings/users/role-preview.js +2 -1
  94. package/dist/pages/settings/users/role-preview.js.map +1 -1
  95. package/dist/pages/settings/users/roles.js +5 -1
  96. package/dist/pages/settings/users/roles.js.map +1 -1
  97. package/dist/pages/settings/users/security-attention.d.ts +4 -0
  98. package/dist/pages/settings/users/security-attention.js +23 -7
  99. package/dist/pages/settings/users/security-attention.js.map +1 -1
  100. package/dist/pages/settings/users/security.d.ts +2 -1
  101. package/dist/pages/settings/users/security.js +13 -2
  102. package/dist/pages/settings/users/security.js.map +1 -1
  103. package/dist/pages/settings/users/two-factor-operations.d.ts +2 -1
  104. package/dist/pages/settings/users/two-factor-operations.js +28 -29
  105. package/dist/pages/settings/users/two-factor-operations.js.map +1 -1
  106. package/dist/routes/auth/forgot-password.js +3 -0
  107. package/dist/routes/auth/forgot-password.js.map +1 -1
  108. package/dist/routes/auth/index.d.ts +1 -0
  109. package/dist/routes/auth/index.js +1 -0
  110. package/dist/routes/auth/index.js.map +1 -1
  111. package/dist/routes/auth/invite.js +28 -4
  112. package/dist/routes/auth/invite.js.map +1 -1
  113. package/dist/routes/auth/login-throttle.d.ts +2 -0
  114. package/dist/routes/auth/login-throttle.js +5 -4
  115. package/dist/routes/auth/login-throttle.js.map +1 -1
  116. package/dist/routes/auth/request-2fa-email.js +6 -18
  117. package/dist/routes/auth/request-2fa-email.js.map +1 -1
  118. package/dist/routes/auth/reset-code.d.ts +3 -0
  119. package/dist/routes/auth/reset-code.js +37 -0
  120. package/dist/routes/auth/reset-code.js.map +1 -0
  121. package/dist/routes/auth/reset-password.d.ts +2 -2
  122. package/dist/routes/auth/reset-password.js +5 -10
  123. package/dist/routes/auth/reset-password.js.map +1 -1
  124. package/dist/routes/auth/signup.js +10 -32
  125. package/dist/routes/auth/signup.js.map +1 -1
  126. package/dist/routes/auth/two-factor-throttle.d.ts +5 -0
  127. package/dist/routes/auth/two-factor-throttle.js +81 -0
  128. package/dist/routes/auth/two-factor-throttle.js.map +1 -0
  129. package/dist/routes/auth/validate-forgot-password-token.js +2 -8
  130. package/dist/routes/auth/validate-forgot-password-token.js.map +1 -1
  131. package/dist/routes/auth/validate-invite-token.d.ts +1 -0
  132. package/dist/routes/auth/validate-invite-token.js +11 -0
  133. package/dist/routes/auth/validate-invite-token.js.map +1 -0
  134. package/dist/routes/auth/verify-2fa.js +10 -13
  135. package/dist/routes/auth/verify-2fa.js.map +1 -1
  136. package/dist/routes/auth.d.ts +1 -0
  137. package/dist/routes/auth.js +11 -1
  138. package/dist/routes/auth.js.map +1 -1
  139. package/dist/test/helpers/auth.d.ts +0 -1
  140. package/dist/test/helpers/auth.js +0 -1
  141. package/dist/test/helpers/auth.js.map +1 -1
  142. package/dist/test/helpers/emails.d.ts +10 -0
  143. package/dist/test/helpers/emails.js +36 -0
  144. package/dist/test/helpers/emails.js.map +1 -0
  145. package/dist/test/helpers/fixtures.d.ts +0 -1
  146. package/dist/test/helpers/fixtures.js +1 -2
  147. package/dist/test/helpers/fixtures.js.map +1 -1
  148. package/dist/test/helpers/page-access.d.ts +1 -0
  149. package/dist/test/helpers/page-access.js +6 -1
  150. package/dist/test/helpers/page-access.js.map +1 -1
  151. package/dist/test/integration/auth/current-password.test.d.ts +1 -0
  152. package/dist/test/integration/auth/current-password.test.js +65 -0
  153. package/dist/test/integration/auth/current-password.test.js.map +1 -0
  154. package/dist/test/integration/auth/password-reset.test.d.ts +1 -0
  155. package/dist/test/integration/auth/password-reset.test.js +126 -0
  156. package/dist/test/integration/auth/password-reset.test.js.map +1 -0
  157. package/dist/test/integration/auth/session-revocation.test.d.ts +1 -0
  158. package/dist/test/integration/auth/session-revocation.test.js +45 -0
  159. package/dist/test/integration/auth/session-revocation.test.js.map +1 -0
  160. package/dist/test/integration/auth/two-factor-codes.test.d.ts +1 -0
  161. package/dist/test/integration/auth/two-factor-codes.test.js +335 -0
  162. package/dist/test/integration/auth/two-factor-codes.test.js.map +1 -0
  163. package/dist/test/integration/auth/two-factor-password.test.js +5 -1
  164. package/dist/test/integration/auth/two-factor-password.test.js.map +1 -1
  165. package/dist/test/integration/auth/two-factor-token.test.d.ts +1 -0
  166. package/dist/test/integration/auth/two-factor-token.test.js +92 -0
  167. package/dist/test/integration/auth/two-factor-token.test.js.map +1 -0
  168. package/dist/test/integration/email-change.test.js +36 -0
  169. package/dist/test/integration/email-change.test.js.map +1 -1
  170. package/dist/test/integration/invite-extension-edit.test.js +0 -1
  171. package/dist/test/integration/invite-extension-edit.test.js.map +1 -1
  172. package/dist/test/integration/invite-link-status.test.d.ts +1 -0
  173. package/dist/test/integration/invite-link-status.test.js +110 -0
  174. package/dist/test/integration/invite-link-status.test.js.map +1 -0
  175. package/dist/test/integration/invite-resolution.test.js +0 -3
  176. package/dist/test/integration/invite-resolution.test.js.map +1 -1
  177. package/dist/test/integration/member-settings-access.test.js +17 -0
  178. package/dist/test/integration/member-settings-access.test.js.map +1 -1
  179. package/dist/test/integration/notification-unread-badge.test.d.ts +1 -0
  180. package/dist/test/integration/notification-unread-badge.test.js +92 -0
  181. package/dist/test/integration/notification-unread-badge.test.js.map +1 -0
  182. package/dist/test/integration/permission-warnings.test.d.ts +1 -0
  183. package/dist/test/integration/permission-warnings.test.js +71 -0
  184. package/dist/test/integration/permission-warnings.test.js.map +1 -0
  185. package/dist/test/integration/removed-member-notifications.test.d.ts +1 -0
  186. package/dist/test/integration/removed-member-notifications.test.js +80 -0
  187. package/dist/test/integration/removed-member-notifications.test.js.map +1 -0
  188. package/dist/test/integration/role-permission-ancestors.test.d.ts +1 -0
  189. package/dist/test/integration/role-permission-ancestors.test.js +146 -0
  190. package/dist/test/integration/role-permission-ancestors.test.js.map +1 -0
  191. package/dist/test/integration/tenant-lifecycle.test.js +0 -4
  192. package/dist/test/integration/tenant-lifecycle.test.js.map +1 -1
  193. package/dist/test/unit/auth-session-revocation.test.d.ts +1 -0
  194. package/dist/test/unit/auth-session-revocation.test.js +105 -0
  195. package/dist/test/unit/auth-session-revocation.test.js.map +1 -0
  196. package/dist/test/unit/db/email-normalization.test.js +0 -1
  197. package/dist/test/unit/db/email-normalization.test.js.map +1 -1
  198. package/dist/test/unit/db/notification-feed-filter.test.js +0 -16
  199. package/dist/test/unit/db/notification-feed-filter.test.js.map +1 -1
  200. package/dist/test/unit/db/notification-inbox.test.js +63 -13
  201. package/dist/test/unit/db/notification-inbox.test.js.map +1 -1
  202. package/dist/test/unit/db/notification-preferences.test.js +0 -17
  203. package/dist/test/unit/db/notification-preferences.test.js.map +1 -1
  204. package/dist/test/unit/implementations/dms/empty-menu-group.test.d.ts +1 -0
  205. package/dist/test/unit/implementations/dms/empty-menu-group.test.js +133 -0
  206. package/dist/test/unit/implementations/dms/empty-menu-group.test.js.map +1 -0
  207. package/dist/test/unit/implementations/dms/layout-banners.test.js +2 -1
  208. package/dist/test/unit/implementations/dms/layout-banners.test.js.map +1 -1
  209. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.d.ts +1 -0
  210. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.js +149 -0
  211. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.js.map +1 -0
  212. package/dist/test/unit/implementations/dms/nav-badges.test.js +55 -4
  213. package/dist/test/unit/implementations/dms/nav-badges.test.js.map +1 -1
  214. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.d.ts +1 -0
  215. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.js +118 -0
  216. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.js.map +1 -0
  217. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.js +16 -0
  218. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.js.map +1 -1
  219. package/dist/test/unit/implementations/dms/permission-preview-cost.test.js +5 -3
  220. package/dist/test/unit/implementations/dms/permission-preview-cost.test.js.map +1 -1
  221. package/dist/test/unit/implementations/dms/permission-preview-menu.test.js +29 -3
  222. package/dist/test/unit/implementations/dms/permission-preview-menu.test.js.map +1 -1
  223. package/dist/test/unit/implementations/dms/quick-actions-button.test.js +4 -2
  224. package/dist/test/unit/implementations/dms/quick-actions-button.test.js.map +1 -1
  225. package/dist/test/unit/implementations/dms/user-permissions-gate.test.js +2 -1
  226. package/dist/test/unit/implementations/dms/user-permissions-gate.test.js.map +1 -1
  227. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js +2 -1
  228. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js.map +1 -1
  229. package/dist/test/unit/interfaces/dms/component-children-permissions.test.js +7 -2
  230. package/dist/test/unit/interfaces/dms/component-children-permissions.test.js.map +1 -1
  231. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.d.ts +1 -0
  232. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.js +133 -0
  233. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.js.map +1 -0
  234. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.d.ts +1 -0
  235. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.js +149 -0
  236. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.js.map +1 -0
  237. package/dist/test/unit/interfaces/dms/invite-extension.test.js +13 -0
  238. package/dist/test/unit/interfaces/dms/invite-extension.test.js.map +1 -1
  239. package/dist/test/unit/interfaces/dms/member-access.test.js +27 -1
  240. package/dist/test/unit/interfaces/dms/member-access.test.js.map +1 -1
  241. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.d.ts +1 -0
  242. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.js +31 -0
  243. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.js.map +1 -0
  244. package/dist/test/unit/interfaces/dms/page-extension.test.js +4 -1
  245. package/dist/test/unit/interfaces/dms/page-extension.test.js.map +1 -1
  246. package/dist/test/unit/interfaces/dms/permission-requirements.test.d.ts +1 -0
  247. package/dist/test/unit/interfaces/dms/permission-requirements.test.js +144 -0
  248. package/dist/test/unit/interfaces/dms/permission-requirements.test.js.map +1 -0
  249. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.js +6 -2
  250. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.js.map +1 -1
  251. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.js +1 -1
  252. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.js.map +1 -1
  253. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.js +2 -1
  254. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.js.map +1 -1
  255. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.js +2 -1
  256. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.js.map +1 -1
  257. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.js +2 -1
  258. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.js.map +1 -1
  259. package/dist/test/unit/pages/settings/account-activity-feed.test.js +2 -2
  260. package/dist/test/unit/pages/settings/account-activity-feed.test.js.map +1 -1
  261. package/dist/test/unit/pages/settings/account-activity.test.js +11 -2
  262. package/dist/test/unit/pages/settings/account-activity.test.js.map +1 -1
  263. package/dist/test/unit/pages/settings/invite-email-delivery.test.js +0 -1
  264. package/dist/test/unit/pages/settings/invite-email-delivery.test.js.map +1 -1
  265. package/dist/test/unit/pages/settings/invite-email-validation-option.test.d.ts +1 -0
  266. package/dist/test/unit/pages/settings/invite-email-validation-option.test.js +33 -0
  267. package/dist/test/unit/pages/settings/invite-email-validation-option.test.js.map +1 -0
  268. package/dist/test/unit/pages/settings/member-lists-page-size.test.d.ts +1 -0
  269. package/dist/test/unit/pages/settings/member-lists-page-size.test.js +22 -0
  270. package/dist/test/unit/pages/settings/member-lists-page-size.test.js.map +1 -0
  271. package/dist/test/unit/pages/settings/member-table-widths.test.js +2 -2
  272. package/dist/test/unit/pages/settings/member-table-widths.test.js.map +1 -1
  273. package/dist/test/unit/pages/settings/members-page.test.js +7 -10
  274. package/dist/test/unit/pages/settings/members-page.test.js.map +1 -1
  275. package/dist/test/unit/pages/settings/notifications-access-gate.test.js +3 -10
  276. package/dist/test/unit/pages/settings/notifications-access-gate.test.js.map +1 -1
  277. package/dist/test/unit/pages/settings/permission-tree-nodes.test.js +57 -0
  278. package/dist/test/unit/pages/settings/permission-tree-nodes.test.js.map +1 -1
  279. package/dist/test/unit/pages/settings/permission-warnings.test.d.ts +1 -0
  280. package/dist/test/unit/pages/settings/permission-warnings.test.js +49 -0
  281. package/dist/test/unit/pages/settings/permission-warnings.test.js.map +1 -0
  282. package/dist/test/unit/pages/settings/role-editor.test.js +16 -0
  283. package/dist/test/unit/pages/settings/role-editor.test.js.map +1 -1
  284. package/dist/test/unit/pages/settings/role-preview.test.js +7 -0
  285. package/dist/test/unit/pages/settings/role-preview.test.js.map +1 -1
  286. package/dist/test/unit/pages/settings/security-attention.test.d.ts +1 -0
  287. package/dist/test/unit/pages/settings/security-attention.test.js +74 -0
  288. package/dist/test/unit/pages/settings/security-attention.test.js.map +1 -0
  289. package/dist/test/unit/sanitize-user.test.d.ts +1 -0
  290. package/dist/test/unit/sanitize-user.test.js +21 -0
  291. package/dist/test/unit/sanitize-user.test.js.map +1 -0
  292. package/dist/test/unit/signup-email-validation.test.d.ts +1 -0
  293. package/dist/test/unit/signup-email-validation.test.js +79 -0
  294. package/dist/test/unit/signup-email-validation.test.js.map +1 -0
  295. package/dist/test/unit/validation/member-invite.schema.test.js +14 -52
  296. package/dist/test/unit/validation/member-invite.schema.test.js.map +1 -1
  297. package/dist/utils/account-notifications.d.ts +5 -0
  298. package/dist/utils/account-notifications.js +8 -0
  299. package/dist/utils/account-notifications.js.map +1 -1
  300. package/dist/utils/notification-emitter.d.ts +1 -1
  301. package/dist/utils/notification-emitter.js +1 -1
  302. package/dist/utils/notification-emitter.js.map +1 -1
  303. package/dist/utils/notification-tones.d.ts +2 -1
  304. package/dist/utils/notification-tones.js +5 -1
  305. package/dist/utils/notification-tones.js.map +1 -1
  306. package/dist/utils/one-time-code.d.ts +3 -0
  307. package/dist/utils/one-time-code.js +21 -0
  308. package/dist/utils/one-time-code.js.map +1 -0
  309. package/dist/utils/sign-in-monitor.d.ts +1 -0
  310. package/dist/utils/sign-in-monitor.js +3 -2
  311. package/dist/utils/sign-in-monitor.js.map +1 -1
  312. package/dist/utils/two-factor-codes.d.ts +10 -0
  313. package/dist/utils/two-factor-codes.js +76 -0
  314. package/dist/utils/two-factor-codes.js.map +1 -0
  315. package/dist/validation/auth.schema.d.ts +17 -0
  316. package/dist/validation/auth.schema.js +17 -6
  317. package/dist/validation/auth.schema.js.map +1 -1
  318. package/dist/validation/issue-message.d.ts +1 -0
  319. package/dist/validation/issue-message.js +9 -0
  320. package/dist/validation/issue-message.js.map +1 -0
  321. package/dist/validation/member-invite.schema.d.ts +1 -25
  322. package/dist/validation/member-invite.schema.js +2 -23
  323. package/dist/validation/member-invite.schema.js.map +1 -1
  324. package/frontend-vue/dms.frontend.ts +2 -0
  325. package/frontend-vue/layers/dms-auth/app/custom-pages/auth/forgot-validation.vue +3 -0
  326. package/frontend-vue/layers/dms-auth/app/custom-pages/auth/signup.vue +105 -5
  327. package/frontend-vue/layers/dms-auth/i18n/locales/auth-en-GB.json +20 -4
  328. package/frontend-vue/layers/dms-auth/i18n/locales/auth-fr-FR.json +20 -4
  329. package/frontend-vue/layers/dms-core/app/composables/useFieldErrors.ts +3 -2
  330. package/frontend-vue/layers/dms-core/app/types/menu.ts +15 -0
  331. package/frontend-vue/layers/dms-core/i18n/locales/core-en-GB.json +4 -1
  332. package/frontend-vue/layers/dms-core/i18n/locales/core-fr-FR.json +4 -1
  333. package/frontend-vue/layers/dms-layout/app/assets/css/main.css +20 -0
  334. package/frontend-vue/layers/dms-layout/app/build/components/layout/CommandPaletteAssistantAnswer.vue +75 -0
  335. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardFrame.vue +22 -0
  336. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardHeader.vue +24 -10
  337. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardSidePanel.vue +139 -0
  338. package/frontend-vue/layers/dms-layout/app/build/components/layout/Footer.vue +4 -2
  339. package/frontend-vue/layers/dms-layout/app/build/components/layout/GithubStarPrompt.vue +90 -0
  340. package/frontend-vue/layers/dms-layout/app/build/components/layout/SidePanelHost.vue +17 -0
  341. package/frontend-vue/layers/dms-layout/app/build/components/notification/NotificationPopover.vue +25 -43
  342. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/members/MemberRolePicker.vue +24 -2
  343. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/notification/NotificationMatrixCategory.vue +70 -25
  344. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/notification/NotificationPreferencesForm.vue +25 -10
  345. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/notification/notificationDisplay.ts +41 -5
  346. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/profile/ProfilePreferencesSummary.vue +2 -1
  347. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/profile/ProfileSecuritySummary.vue +20 -4
  348. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/RoleEditor.vue +21 -0
  349. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/RolePermissionArea.vue +16 -2
  350. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/RolePermissionBranch.vue +1 -0
  351. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/RolePermissionLeaf.vue +13 -1
  352. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/RolePermissionTree.vue +9 -0
  353. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/RolePermissionWarning.vue +46 -0
  354. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/role-permissions.ts +108 -29
  355. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/role-types.ts +2 -0
  356. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/security/SecurityDialogFrame.vue +6 -6
  357. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/security/SecurityEmail.vue +7 -1
  358. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/security/SecuritySessions.vue +5 -4
  359. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/security/SecurityStatus.vue +4 -3
  360. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/security/SecurityTwoFactor.vue +54 -18
  361. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/shell/SettingsNav.vue +13 -8
  362. package/frontend-vue/layers/dms-layout/app/build/composables/command-palette/assistantGroups.ts +143 -0
  363. package/frontend-vue/layers/dms-layout/app/build/composables/command-palette/useCommandPaletteAssistantMode.ts +249 -0
  364. package/frontend-vue/layers/dms-layout/app/build/composables/general/useGithubStarPrompt.ts +178 -0
  365. package/frontend-vue/layers/dms-layout/app/build/composables/layout/sidePanelState.ts +191 -0
  366. package/frontend-vue/layers/dms-layout/app/build/composables/layout/useHeaderActionControls.ts +51 -0
  367. package/frontend-vue/layers/dms-layout/app/build/composables/layout/useSidePanelWidth.ts +113 -0
  368. package/frontend-vue/layers/dms-layout/app/build/composables/navigation/useCategoryNavCards.ts +17 -10
  369. package/frontend-vue/layers/dms-layout/app/build/composables/notification/useNotificationGroupsOpen.ts +45 -0
  370. package/frontend-vue/layers/dms-layout/app/build/composables/settings/profile/useProfilePreferences.ts +8 -1
  371. package/frontend-vue/layers/dms-layout/app/build/composables/settings/security/useSecurityOverview.ts +50 -3
  372. package/frontend-vue/layers/dms-layout/app/build/composables/settings/useSettingsNavigation.ts +3 -0
  373. package/frontend-vue/layers/dms-layout/app/build/utils/categoryPages.ts +1 -2
  374. package/frontend-vue/layers/dms-layout/app/build/utils/github-repository.ts +5 -0
  375. package/frontend-vue/layers/dms-layout/app/components/layout/DashboardSearch.vue +109 -7
  376. package/frontend-vue/layers/dms-layout/app/components/navigation/NavigationMenu.vue +19 -9
  377. package/frontend-vue/layers/dms-layout/app/composables/notification/useNotifications.ts +22 -40
  378. package/frontend-vue/layers/dms-layout/app/composables/useAppSidePanels.ts +96 -0
  379. package/frontend-vue/layers/dms-layout/app/composables/useCommandPaletteAssistant.ts +129 -0
  380. package/frontend-vue/layers/dms-layout/app/composables/useHeaderActions.ts +33 -11
  381. package/frontend-vue/layers/dms-layout/app/composables/useSidePanel.ts +41 -0
  382. package/frontend-vue/layers/dms-layout/app/pages/[...slug].vue +15 -0
  383. package/frontend-vue/layers/dms-layout/app/plugins/notification-stream.client.ts +1 -7
  384. package/frontend-vue/layers/dms-layout/app/plugins/side-panel-host.ts +13 -0
  385. package/frontend-vue/layers/dms-layout/app/types/page.ts +4 -0
  386. package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +43 -13
  387. package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +43 -13
  388. package/frontend-vue/layers/dms-ui/app/build/components/form/FormLoadError.vue +45 -0
  389. package/frontend-vue/layers/dms-ui/app/build/components/modal/ModalEscHint.vue +28 -0
  390. package/frontend-vue/layers/dms-ui/app/build/composables/form/floatingSaveBars.ts +38 -0
  391. package/frontend-vue/layers/dms-ui/app/build/composables/form/formRecordLoad.ts +66 -0
  392. package/frontend-vue/layers/dms-ui/app/build/composables/navigation/useNavBadges.ts +50 -9
  393. package/frontend-vue/layers/dms-ui/app/build/composables/table/useTable.ts +7 -1
  394. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/chrome.ts +2 -2
  395. package/frontend-vue/layers/dms-ui/app/build/types/tree.ts +14 -10
  396. package/frontend-vue/layers/dms-ui/app/build/utils/navBadge.ts +12 -0
  397. package/frontend-vue/layers/dms-ui/app/build/utils/tone.ts +22 -0
  398. package/frontend-vue/layers/dms-ui/app/components/activity-feed/ActivityFeed.vue +117 -82
  399. package/frontend-vue/layers/dms-ui/app/components/blocks/NavCardGridBlock.vue +12 -1
  400. package/frontend-vue/layers/dms-ui/app/components/card/NavCard.vue +16 -1
  401. package/frontend-vue/layers/dms-ui/app/components/confirm/ConfirmModal.vue +7 -8
  402. package/frontend-vue/layers/dms-ui/app/components/form/Form.vue +28 -6
  403. package/frontend-vue/layers/dms-ui/app/components/form/components/Display.vue +5 -1
  404. package/frontend-vue/layers/dms-ui/app/components/save-bar/SaveBar.vue +4 -0
  405. package/frontend-vue/layers/dms-ui/app/components/status-pill/StatusPill.vue +7 -2
  406. package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +7 -2
  407. package/frontend-vue/layers/dms-ui/app/composables/form/useForm.ts +48 -34
  408. package/frontend-vue/layers/dms-ui/app/composables/table-view/types/config.ts +13 -3
  409. package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +16 -14
  410. package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +16 -14
  411. package/frontend-vue/package.json +2 -2
  412. package/frontend-vue/pnpm-lock.yaml +5 -5
  413. package/frontend-vue/tests/activity-feed-fill-height.test.ts +107 -0
  414. package/frontend-vue/tests/category-nav-cards.test.ts +21 -13
  415. package/frontend-vue/tests/command-palette-assistant.test.ts +344 -0
  416. package/frontend-vue/tests/fixtures/dashboard-search-stub.ts +91 -0
  417. package/frontend-vue/tests/forgot-validation-resend.test.ts +234 -0
  418. package/frontend-vue/tests/form-display-options.test.ts +64 -0
  419. package/frontend-vue/tests/form-load-error.test.ts +160 -0
  420. package/frontend-vue/tests/form-saved-before-success.test.ts +110 -0
  421. package/frontend-vue/tests/github-star-prompt.test.ts +328 -0
  422. package/frontend-vue/tests/header-actions.test.ts +191 -0
  423. package/frontend-vue/tests/invites-edit-modal.test.ts +157 -0
  424. package/frontend-vue/tests/member-role-picker.test.ts +26 -0
  425. package/frontend-vue/tests/menu-hidden-page.test.ts +93 -0
  426. package/frontend-vue/tests/nav-badge-tones.test.ts +274 -0
  427. package/frontend-vue/tests/nav-card-badge.test.ts +69 -0
  428. package/frontend-vue/tests/nav-card-grid-empty-category.test.ts +163 -0
  429. package/frontend-vue/tests/notification-popover-errors.test.ts +71 -37
  430. package/frontend-vue/tests/notification-preferences-groups.test.ts +268 -0
  431. package/frontend-vue/tests/notification-tone-contract.test.ts +70 -0
  432. package/frontend-vue/tests/page-fill-height.test.ts +9 -1
  433. package/frontend-vue/tests/page-no-visible-blocks.test.ts +202 -0
  434. package/frontend-vue/tests/profile-preferences-summary.test.ts +26 -2
  435. package/frontend-vue/tests/profile-security-summary.test.ts +121 -0
  436. package/frontend-vue/tests/role-permission-tree.test.ts +102 -8
  437. package/frontend-vue/tests/role-permissions.test.ts +178 -56
  438. package/frontend-vue/tests/side-panels.test.ts +470 -0
  439. package/frontend-vue/tests/signup-invitation-link.test.ts +71 -2
  440. package/frontend-vue/tests/table-actions-column-width.test.ts +51 -1
  441. package/frontend-vue/tests/table-view-chrome.test.ts +2 -2
  442. package/frontend-vue/tests/vue-inventory.test.ts +1 -1
  443. package/package.json +1 -1
  444. package/skills/dms/REFERENCE.md +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.7.0
4
+
5
+ [compare changes](https://github.com/AntelopeJS/dms/compare/v0.6.2...v0.7.0)
6
+
7
+ ### 🚀 Enhancements
8
+
9
+ - **layout:** Dock module side panels next to the page ([#168](https://github.com/AntelopeJS/dms/pull/168))
10
+ - **command-palette:** Add an assistant mode a frontend module can provide ([#169](https://github.com/AntelopeJS/dms/pull/169))
11
+
12
+ ### 🩹 Fixes
13
+
14
+ - **dms:** ⚠️ Harden auth and account flows, require permission ancestors, open settings to members ([#172](https://github.com/AntelopeJS/dms/pull/172))
15
+
16
+ #### ⚠️ Breaking Changes
17
+
18
+ - **dms:** ⚠️ Harden auth and account flows, require permission ancestors, open settings to members ([#172](https://github.com/AntelopeJS/dms/pull/172))
19
+
20
+ ### ❤️ Contributors
21
+
22
+ - Antony Rizzitelli <rizzitelli.antony@pm.me>
23
+ - Maxime Westhoven <maxime@altab.be>
24
+
3
25
  ## v0.6.2
4
26
 
5
27
  [compare changes](https://github.com/AntelopeJS/dms/compare/v0.6.1...v0.6.2)
@@ -35,5 +35,4 @@ interface FilterableFeed<Q> {
35
35
  filter(predicate: (row: NotificationRow) => ValueProxyOrValue<boolean>): Q;
36
36
  }
37
37
  export declare function applyFeedFilter<Q extends FilterableFeed<Q>>(feed: Q, filter: NotificationFeedFilter): Q;
38
- export declare function applyUnseenFilter<Q extends FilterableFeed<Q>>(feed: Q, seenAt?: Date): Q;
39
38
  export {};
@@ -10,7 +10,6 @@ exports.rawTextPattern = rawTextPattern;
10
10
  exports.messageKeyValues = messageKeyValues;
11
11
  exports.searchCondition = searchCondition;
12
12
  exports.applyFeedFilter = applyFeedFilter;
13
- exports.applyUnseenFilter = applyUnseenFilter;
14
13
  const interface_database_1 = require("@antelopejs/interface-database");
15
14
  exports.FEED_SEARCH_MAX_LENGTH = 100;
16
15
  exports.FEED_SEARCH_MAX_KEYS = 200;
@@ -137,7 +136,4 @@ function applyFeedFilter(feed, filter) {
137
136
  }
138
137
  return query;
139
138
  }
140
- function applyUnseenFilter(feed, seenAt) {
141
- return seenAt ? feed.filter((row) => row.key("createdAt").gt(seenAt)) : feed;
142
- }
143
139
  //# sourceMappingURL=notification-feed-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification-feed-filter.js","sourceRoot":"","sources":["../../../src/db/models/notification-feed-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification-feed-filter.js","sourceRoot":"","sources":["../../../src/db/models/notification-feed-filter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import { SignInAttempt } from "../tables";
2
+ export interface TwoFactorTries {
3
+ challengeTries: number;
4
+ accountTries: number;
5
+ }
2
6
  declare const SignInAttemptsModel_base: {
3
7
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
8
  readonly table: import("@antelopejs/interface-database").Table<SignInAttempt>;
@@ -22,7 +26,21 @@ export declare class SignInAttemptsModel extends SignInAttemptsModel_base {
22
26
  private recordedSince;
23
27
  listBurst(userId: string, since: Date, failureLimit: number): Promise<SignInAttempt[]>;
24
28
  claimAlert(userId: string, alertKey: string, now: Date): Promise<boolean>;
29
+ private insertOnce;
30
+ private deleteRecorded;
31
+ private twoFactorAttempts;
32
+ recordTwoFactorAttempt(userId: string, challenge: string, since: Date, now: Date): Promise<TwoFactorTries>;
33
+ countTwoFactorAttempts(userId: string, challenge: string, since: Date): Promise<TwoFactorTries>;
34
+ oldestTwoFactorAttempt(userId: string, since: Date): Promise<string | undefined>;
35
+ clearTwoFactorAttempts(userId: string): Promise<void>;
36
+ claimTwoFactorChallenge(userId: string, challenge: string, now: Date): Promise<boolean>;
37
+ isTwoFactorChallengeUsed(challenge: string): Promise<boolean>;
25
38
  clearFailures(userId: string): Promise<void>;
39
+ recordResetCodeAttempt(userId: string, requestedAt: Date, now: Date): Promise<number>;
40
+ clearResetCodeAttempts(userId: string): Promise<void>;
41
+ recordCurrentPasswordAttempt(userId: string, since: Date, now: Date): Promise<number>;
42
+ countCurrentPasswordAttempts(userId: string, since: Date): Promise<number>;
43
+ clearCurrentPasswordAttempts(userId: string): Promise<void>;
26
44
  pruneBefore(userId: string, before: Date): Promise<void>;
27
45
  purgeUser(userId: string): Promise<void>;
28
46
  }
@@ -4,10 +4,8 @@ exports.SignInAttemptsModel = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
5
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
6
6
  const tables_1 = require("../tables");
7
- function alertId(userId, alertKey) {
8
- return (0, node_crypto_1.createHash)("sha256")
9
- .update(JSON.stringify(["alert", userId, alertKey]))
10
- .digest("hex");
7
+ function derivedId(...parts) {
8
+ return (0, node_crypto_1.createHash)("sha256").update(JSON.stringify(parts)).digest("hex");
11
9
  }
12
10
  class SignInAttemptsModel extends (0, interface_database_decorators_1.BasicDataModel)(tables_1.SignInAttempt, tables_1.signInAttemptsTableName) {
13
11
  async recordFailure(userId, now) {
@@ -31,27 +29,100 @@ class SignInAttemptsModel extends (0, interface_database_decorators_1.BasicDataM
31
29
  .map((row) => SignInAttemptsModel.fromDatabase(row))
32
30
  .filter((row) => row !== undefined);
33
31
  }
34
- async claimAlert(userId, alertKey, now) {
35
- const id = alertId(userId, alertKey);
32
+ claimAlert(userId, alertKey, now) {
33
+ return this.insertOnce({
34
+ _id: derivedId("alert", userId, alertKey),
35
+ userId,
36
+ kind: "alerted",
37
+ createdAt: now,
38
+ });
39
+ }
40
+ async insertOnce(row) {
36
41
  try {
37
- await this.table
38
- .insert({ _id: id, userId, kind: "alerted", createdAt: now })
39
- .run();
42
+ await this.table.insert(row).run();
40
43
  return true;
41
44
  }
42
45
  catch (error) {
43
- if (!(await this.table.get(id).run()))
46
+ if (!(await this.table.get(row._id).run()))
44
47
  throw error;
45
48
  return false;
46
49
  }
47
50
  }
48
- async clearFailures(userId) {
51
+ async deleteRecorded(userId, kind) {
49
52
  await this.table
50
53
  .getAll(userId, "userId")
51
- .filter((row) => row.key("kind").eq("failed"))
54
+ .filter((row) => row.key("kind").eq(kind))
52
55
  .delete()
53
56
  .run();
54
57
  }
58
+ twoFactorAttempts(userId, challenge) {
59
+ return this.table
60
+ .getAll(userId, "userId")
61
+ .filter((row) => row.key("kind").eq("two_factor"))
62
+ .filter((row) => row.key("challenge").eq(challenge));
63
+ }
64
+ async recordTwoFactorAttempt(userId, challenge, since, now) {
65
+ await this.table
66
+ .insert({ userId, kind: "two_factor", challenge, createdAt: now })
67
+ .run();
68
+ return this.countTwoFactorAttempts(userId, challenge, since);
69
+ }
70
+ async countTwoFactorAttempts(userId, challenge, since) {
71
+ const [challengeTries, accountTries] = await Promise.all([
72
+ this.twoFactorAttempts(userId, challenge).count().run(),
73
+ this.recordedSince(userId, since, "two_factor").count().run(),
74
+ ]);
75
+ return { challengeTries, accountTries };
76
+ }
77
+ async oldestTwoFactorAttempt(userId, since) {
78
+ const [oldest] = await this.recordedSince(userId, since, "two_factor")
79
+ .orderBy("createdAt")
80
+ .slice(0, 1)
81
+ .run();
82
+ return oldest?._id;
83
+ }
84
+ async clearTwoFactorAttempts(userId) {
85
+ await this.deleteRecorded(userId, "two_factor");
86
+ }
87
+ claimTwoFactorChallenge(userId, challenge, now) {
88
+ return this.insertOnce({
89
+ _id: derivedId("two_factor_used", challenge),
90
+ userId,
91
+ kind: "two_factor_used",
92
+ challenge,
93
+ createdAt: now,
94
+ });
95
+ }
96
+ async isTwoFactorChallengeUsed(challenge) {
97
+ const row = await this.table
98
+ .get(derivedId("two_factor_used", challenge))
99
+ .run();
100
+ return Boolean(row);
101
+ }
102
+ async clearFailures(userId) {
103
+ await this.deleteRecorded(userId, "failed");
104
+ }
105
+ async recordResetCodeAttempt(userId, requestedAt, now) {
106
+ await this.table
107
+ .insert({ userId, kind: "reset_code", createdAt: now })
108
+ .run();
109
+ return this.recordedSince(userId, requestedAt, "reset_code").count().run();
110
+ }
111
+ async clearResetCodeAttempts(userId) {
112
+ await this.deleteRecorded(userId, "reset_code");
113
+ }
114
+ async recordCurrentPasswordAttempt(userId, since, now) {
115
+ await this.table
116
+ .insert({ userId, kind: "current_password", createdAt: now })
117
+ .run();
118
+ return this.countCurrentPasswordAttempts(userId, since);
119
+ }
120
+ countCurrentPasswordAttempts(userId, since) {
121
+ return this.recordedSince(userId, since, "current_password").count().run();
122
+ }
123
+ async clearCurrentPasswordAttempts(userId) {
124
+ await this.deleteRecorded(userId, "current_password");
125
+ }
55
126
  async pruneBefore(userId, before) {
56
127
  await this.table
57
128
  .getAll(userId, "userId")
@@ -1 +1 @@
1
- {"version":3,"file":"signInAttempts.model.js","sourceRoot":"","sources":["../../../src/db/models/signInAttempts.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signInAttempts.model.js","sourceRoot":"","sources":["../../../src/db/models/signInAttempts.model.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ export interface EmailChangeRequest {
5
5
  codeHash: string;
6
6
  requestedAt: Date;
7
7
  }
8
+ export interface PendingEmailChange extends UserEmailChange {
9
+ codeHash: string;
10
+ }
8
11
  declare const UserEmailChangesModel_base: {
9
12
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
10
13
  readonly table: import("@antelopejs/interface-database").Table<UserEmailChange>;
@@ -24,8 +27,12 @@ declare const UserEmailChangesModel_base: {
24
27
  validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
25
28
  };
26
29
  export declare class UserEmailChangesModel extends UserEmailChangesModel_base {
27
- findPending(userId: string): Promise<UserEmailChange | undefined>;
30
+ findLatest(userId: string): Promise<UserEmailChange | undefined>;
31
+ findPending(userId: string): Promise<PendingEmailChange | undefined>;
32
+ wasSentToSince(email: string, since: Date): Promise<boolean>;
28
33
  replacePending(request: EmailChangeRequest): Promise<void>;
34
+ countAttempt(userId: string): Promise<number>;
35
+ close(userId: string): Promise<void>;
29
36
  purgeUser(userId: string): Promise<void>;
30
37
  }
31
38
  export {};
@@ -3,16 +3,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UserEmailChangesModel = void 0;
4
4
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
5
5
  const tables_1 = require("../tables");
6
+ function isPending(change) {
7
+ return !!change?.codeHash;
8
+ }
6
9
  class UserEmailChangesModel extends (0, interface_database_decorators_1.BasicDataModel)(tables_1.UserEmailChange, tables_1.userEmailChangesTableName) {
7
- async findPending(userId) {
10
+ async findLatest(userId) {
8
11
  const row = await this.table.get(userId).run();
9
12
  return row ? UserEmailChangesModel.fromDatabase(row) : undefined;
10
13
  }
14
+ async findPending(userId) {
15
+ const latest = await this.findLatest(userId);
16
+ return isPending(latest) ? latest : undefined;
17
+ }
18
+ async wasSentToSince(email, since) {
19
+ const rows = await this.table
20
+ .getAll(email, "email")
21
+ .filter((row) => row.key("requestedAt").gt(since))
22
+ .slice(0, 1)
23
+ .run();
24
+ return rows.length > 0;
25
+ }
11
26
  async replacePending(request) {
12
27
  await this.table
13
- .insert({ _id: request.userId, ...request }, { conflict: "replace" })
28
+ .insert({ _id: request.userId, ...request, attempts: 0 }, { conflict: "replace" })
14
29
  .run();
15
30
  }
31
+ async countAttempt(userId) {
32
+ await this.table
33
+ .get(userId)
34
+ .update((row) => ({ attempts: row.key("attempts").default(0).add(1) }))
35
+ .run();
36
+ return (await this.findLatest(userId))?.attempts ?? 0;
37
+ }
38
+ async close(userId) {
39
+ await this.table.get(userId).update({ codeHash: null }).run();
40
+ }
16
41
  async purgeUser(userId) {
17
42
  await this.table.getAll(userId, "userId").delete().run();
18
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"userEmailChanges.model.js","sourceRoot":"","sources":["../../../src/db/models/userEmailChanges.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,sCAAuE;AAUvE,MAAa,qBAAsB,SAAQ,IAAA,8CAAc,EACvD,wBAAe,EACf,kCAAyB,CAC1B;IAEC,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAGD,KAAK,CAAC,cAAc,CAAC,OAA2B;QAC9C,MAAM,IAAI,CAAC,KAAK;aACb,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;aACpE,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAC3D,CAAC;CACF;AArBD,sDAqBC"}
1
+ {"version":3,"file":"userEmailChanges.model.js","sourceRoot":"","sources":["../../../src/db/models/userEmailChanges.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,sCAAuE;AAevE,SAAS,SAAS,CAChB,MAAmC;IAEnC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAa,qBAAsB,SAAQ,IAAA,8CAAc,EACvD,wBAAe,EACf,kCAAyB,CAC1B;IAEC,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAGD,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,KAAW;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK;aAC1B,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;aACtB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;aACjD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAGD,KAAK,CAAC,cAAc,CAAC,OAA2B;QAC9C,MAAM,IAAI,CAAC,KAAK;aACb,MAAM,CACL,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,EAChD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB;aACA,GAAG,EAAE,CAAC;IACX,CAAC;IAQD,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,IAAI,CAAC,KAAK;aACb,GAAG,CAAC,MAAM,CAAC;aACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACtE,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;IACxD,CAAC;IAMD,KAAK,CAAC,KAAK,CAAC,MAAc;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAChE,CAAC;IAGD,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAC3D,CAAC;CACF;AA9DD,sDA8DC"}
@@ -23,8 +23,6 @@ export declare class UserNotificationPreferencesModel extends UserNotificationPr
23
23
  createDefault(userId: string): Promise<UserNotificationPreferences>;
24
24
  updatePreferences(userId: string, preferences: Record<string, boolean>): Promise<Record<string, boolean>>;
25
25
  mergePreferences(userId: string, changes: Record<string, boolean>): Promise<Record<string, boolean>>;
26
- getNotificationsSeenAt(userId: string): Promise<Date | undefined>;
27
- markNotificationsSeen(userId: string): Promise<Date>;
28
26
  getOrCreatePreferences(userId: string): Promise<UserNotificationPreferences>;
29
27
  }
30
28
  export {};
@@ -72,19 +72,6 @@ class UserNotificationPreferencesModel extends (0, interface_database_decorators
72
72
  const stored = await this.getByUserId(userId);
73
73
  return stored?.preferences ?? changes;
74
74
  }
75
- async getNotificationsSeenAt(userId) {
76
- const seenAt = (await this.getByUserId(userId))?.notificationsSeenAt;
77
- return seenAt ? new Date(seenAt) : undefined;
78
- }
79
- async markNotificationsSeen(userId) {
80
- await this.getOrCreatePreferences(userId);
81
- const seenAt = new Date();
82
- await this.table
83
- .getAll(userId, "userId")
84
- .update({ notificationsSeenAt: seenAt })
85
- .run();
86
- return seenAt;
87
- }
88
75
  async getOrCreatePreferences(userId) {
89
76
  const existing = await this.getByUserId(userId);
90
77
  const hasValidPreferences = existing &&
@@ -1 +1 @@
1
- {"version":3,"file":"userNotificationPreferences.model.js","sourceRoot":"","sources":["../../../src/db/models/userNotificationPreferences.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,+EAAyF;AACzF,sCAGmB;AAEnB,MAAM,uBAAuB,GAAG,GAA4B,EAAE;IAC5D,MAAM,QAAQ,GAAG,IAAA,gCAAqB,GAAE,CAAC;IACzC,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACnD,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAa,gCAAiC,SAAQ,IAAA,8CAAc,EAClE,oCAA2B,EAC3B,6CAAoC,CACrC;IACC,KAAK,CAAC,WAAW,CACf,MAAc;QAEd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK;aAC5B,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,SAAS,CAAC;aAClB,GAAG,EAAE,CAAC;QAET,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,gCAAgC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAGD,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAC3D,CAAC;IAOD,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,IAAI,WAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK;iBACb,MAAM,CAAC;gBACN,GAAG,EAAE,MAAM;gBACX,MAAM;gBACN,WAAW,EAAE,uBAAuB,EAAE;gBACtC,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;iBACD,GAAG,EAAE,CAAC;QACX,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CACJ,WAAW,IAAI,IAAI,KAAK,CAAC,2CAA2C,CAAC,CACtE,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,WAAoC;QAEpC,MAAM,IAAI,CAAC,KAAK;aACb,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;aACxB,MAAM,CAAC;YACN,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;aACD,GAAG,EAAE,CAAC;QAET,OAAO,WAAW,CAAC;IACrB,CAAC;IAMD,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,OAAgC;QAEhC,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,KAAK;aACb,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAChB,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAClD,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;aACF,GAAG,EAAE,CAAC;QAET,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,MAAM,EAAE,WAAW,IAAI,OAAO,CAAC;IACxC,CAAC;IAGD,KAAK,CAAC,sBAAsB,CAAC,MAAc;QACzC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,mBAAmB,CAAC;QACrE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAOD,KAAK,CAAC,qBAAqB,CAAC,MAAc;QACxC,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,KAAK;aACb,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;aACxB,MAAM,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;aACvC,GAAG,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,MAAc;QAEd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,mBAAmB,GACvB,QAAQ;YACR,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ;YACxC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC;QAEhC,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,kBAAkB,GAAG,uBAAuB,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAKzD,OAAO,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;CACF;AA5ID,4EA4IC"}
1
+ {"version":3,"file":"userNotificationPreferences.model.js","sourceRoot":"","sources":["../../../src/db/models/userNotificationPreferences.model.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { NotificationData, NotificationTone } from "@antelopejs/interface-dms/notifications/types";
2
2
  import { UserNotification } from "../tables";
3
+ import type { NavBadgeCount } from "@antelopejs/interface-dms/component";
4
+ import type { Tone } from "@antelopejs/interface-dms/base/types/tone";
3
5
  import { type NotificationFeedFilter } from "./notification-feed-filter";
4
6
  export interface NewUserNotification {
5
7
  userId: string;
@@ -25,7 +27,7 @@ export interface UserNotificationFacets {
25
27
  export interface UserNotificationCounts {
26
28
  all: number;
27
29
  unread: number;
28
- unseen?: number;
30
+ unreadTone?: Tone;
29
31
  }
30
32
  export interface MarkAllAsReadResult {
31
33
  batchId: string | null;
@@ -65,7 +67,8 @@ export declare class UserNotificationsModel extends UserNotificationsModel_base
65
67
  getBySubject(categoryId: string, subjectId: string): Promise<UserNotification[]>;
66
68
  findMatching(userId: string, title: string, match: Record<string, string | number>, since: Date): Promise<UserNotification[]>;
67
69
  countUnread(userId: string): Promise<number>;
68
- countUnseen(userId: string, seenAt?: Date): Promise<number>;
70
+ unreadBadge(userId: string): Promise<NavBadgeCount>;
71
+ countFeedWithUnreadTone(userId: string): Promise<UserNotificationCounts>;
69
72
  markAsRead(id: string): Promise<void>;
70
73
  markAsUnread(id: string): Promise<void>;
71
74
  private setReadState;
@@ -7,6 +7,8 @@ const node_util_1 = require("node:util");
7
7
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
8
8
  const run_in_batches_1 = require("../../utils/run-in-batches");
9
9
  const tables_1 = require("../tables");
10
+ const nav_badges_1 = require("@antelopejs/interface-dms/page/internal/nav-badges");
11
+ const notification_tones_1 = require("../../utils/notification-tones");
10
12
  const notification_feed_filter_1 = require("./notification-feed-filter");
11
13
  const SHARED_GROUP_UPDATE_BATCH_SIZE = 10;
12
14
  function buildNewUserNotification(userId, data, groupId) {
@@ -166,8 +168,23 @@ class UserNotificationsModel extends (0, interface_database_decorators_1.BasicDa
166
168
  async countUnread(userId) {
167
169
  return this.unreadFeed(userId).count().run();
168
170
  }
169
- async countUnseen(userId, seenAt) {
170
- return (0, notification_feed_filter_1.applyUnseenFilter)(this.unreadFeed(userId), seenAt).count().run();
171
+ async unreadBadge(userId) {
172
+ const perTone = await this.unreadFeed(userId)
173
+ .group("tone", (rows, tone) => ({ tone, count: rows.count() }))
174
+ .run();
175
+ return (0, nav_badges_1.combineNavBadgeCounts)(perTone.map(({ tone, count }) => ({
176
+ count,
177
+ tone: (0, notification_tones_1.resolveNotificationTone)(tone, false),
178
+ })));
179
+ }
180
+ async countFeedWithUnreadTone(userId) {
181
+ const [all, unread] = await Promise.all([
182
+ this.visibleFeed(userId).count().run(),
183
+ this.unreadBadge(userId),
184
+ ]);
185
+ return unread.tone
186
+ ? { all, unread: unread.count, unreadTone: unread.tone }
187
+ : { all, unread: unread.count };
171
188
  }
172
189
  async markAsRead(id) {
173
190
  await this.setReadState(id, true);
@@ -1 +1 @@
1
- {"version":3,"file":"userNotifications.model.js","sourceRoot":"","sources":["../../../src/db/models/userNotifications.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userNotifications.model.js","sourceRoot":"","sources":["../../../src/db/models/userNotifications.model.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { Table } from "@antelopejs/interface-database-decorators";
2
2
  export declare const signInAttemptsTableName = "sign_in_attempts";
3
- export type SignInAttemptKind = "failed" | "alerted";
3
+ export type SignInAttemptKind = "failed" | "alerted" | "reset_code" | "two_factor" | "two_factor_used" | "current_password";
4
4
  export declare class SignInAttempt extends Table {
5
5
  _id: string;
6
6
  userId: string;
7
7
  kind: SignInAttemptKind;
8
+ challenge?: string;
8
9
  createdAt: Date;
9
10
  }
@@ -31,6 +31,10 @@ __decorate([
31
31
  (0, interface_database_decorators_1.Field)("string"),
32
32
  __metadata("design:type", String)
33
33
  ], SignInAttempt.prototype, "kind", void 0);
34
+ __decorate([
35
+ (0, interface_database_decorators_1.Field)("string"),
36
+ __metadata("design:type", String)
37
+ ], SignInAttempt.prototype, "challenge", void 0);
34
38
  __decorate([
35
39
  (0, interface_database_decorators_1.Index)(),
36
40
  (0, interface_database_decorators_1.Field)("date"),
@@ -1 +1 @@
1
- {"version":3,"file":"signInAttempts.table.js","sourceRoot":"","sources":["../../../src/db/tables/signInAttempts.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAuE;AACvE,sFAA4E;AAE/D,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAUnD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,qCAAK;CAevC,CAAA;AAfY,sCAAa;AAEhB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;0CACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;6CACN;AAGf;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;2CACgB;AAIxB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;gDAAC;wBAdb,aAAa;IADzB,IAAA,6CAAa,EAAC,+BAAuB,EAAE,4BAAgB,CAAC;GAC5C,aAAa,CAezB"}
1
+ {"version":3,"file":"signInAttempts.table.js","sourceRoot":"","sources":["../../../src/db/tables/signInAttempts.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAuE;AACvE,sFAA4E;AAE/D,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAwBnD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,qCAAK;CAmBvC,CAAA;AAnBY,sCAAa;AAEhB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;0CACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;6CACN;AAGf;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;2CACgB;AAIxB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;gDACW;AAInB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;gDAAC;wBAlBb,aAAa;IADzB,IAAA,6CAAa,EAAC,+BAAuB,EAAE,4BAAgB,CAAC;GAC5C,aAAa,CAmBzB"}
@@ -4,6 +4,7 @@ export declare class UserEmailChange extends Table {
4
4
  _id: string;
5
5
  userId: string;
6
6
  email: string;
7
- codeHash: string;
7
+ codeHash: string | null;
8
+ attempts: number;
8
9
  requestedAt: Date;
9
10
  }
@@ -28,13 +28,18 @@ __decorate([
28
28
  __metadata("design:type", String)
29
29
  ], UserEmailChange.prototype, "userId", void 0);
30
30
  __decorate([
31
+ (0, interface_database_decorators_1.Index)(),
31
32
  (0, interface_database_decorators_1.Field)("string"),
32
33
  __metadata("design:type", String)
33
34
  ], UserEmailChange.prototype, "email", void 0);
34
35
  __decorate([
35
36
  (0, interface_database_decorators_1.Field)("string"),
36
- __metadata("design:type", String)
37
+ __metadata("design:type", Object)
37
38
  ], UserEmailChange.prototype, "codeHash", void 0);
39
+ __decorate([
40
+ (0, interface_database_decorators_1.Field)("number"),
41
+ __metadata("design:type", Number)
42
+ ], UserEmailChange.prototype, "attempts", void 0);
38
43
  __decorate([
39
44
  (0, interface_database_decorators_1.Field)("date"),
40
45
  __metadata("design:type", Date)
@@ -1 +1 @@
1
- {"version":3,"file":"userEmailChanges.table.js","sourceRoot":"","sources":["../../../src/db/tables/userEmailChanges.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAuE;AACvE,sFAA4E;AAE/D,QAAA,yBAAyB,GAAG,oBAAoB,CAAC;AAOvD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,qCAAK;CAoBzC,CAAA;AApBY,0CAAe;AAGlB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;+CACN;AAIf;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;8CACM;AAId;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDACS;AAGjB;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACO,IAAI;oDAAC;0BAnBf,eAAe;IAD3B,IAAA,6CAAa,EAAC,iCAAyB,EAAE,4BAAgB,CAAC;GAC9C,eAAe,CAoB3B"}
1
+ {"version":3,"file":"userEmailChanges.table.js","sourceRoot":"","sources":["../../../src/db/tables/userEmailChanges.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAMmD;AACnD,mEAAuE;AACvE,sFAA4E;AAE/D,QAAA,yBAAyB,GAAG,oBAAoB,CAAC;AASvD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,qCAAK;CA4BzC,CAAA;AA5BY,0CAAe;AAGlB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;+CACN;AAKf;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;8CACM;AAOd;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDACgB;AAIxB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDACS;AAGjB;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACO,IAAI;oDAAC;0BA3Bf,eAAe;IAD3B,IAAA,6CAAa,EAAC,iCAAyB,EAAE,4BAAgB,CAAC;GAC9C,eAAe,CA4B3B"}
@@ -4,7 +4,6 @@ export declare class UserNotificationPreferences extends Table {
4
4
  _id: string;
5
5
  userId: string;
6
6
  preferences: Record<string, boolean>;
7
- notificationsSeenAt?: Date | null;
8
7
  createdAt: Date;
9
8
  updatedAt: Date;
10
9
  }
@@ -31,10 +31,6 @@ __decorate([
31
31
  (0, interface_database_decorators_1.Field)("any"),
32
32
  __metadata("design:type", Object)
33
33
  ], UserNotificationPreferences.prototype, "preferences", void 0);
34
- __decorate([
35
- (0, interface_database_decorators_1.Field)("date"),
36
- __metadata("design:type", Object)
37
- ], UserNotificationPreferences.prototype, "notificationsSeenAt", void 0);
38
34
  __decorate([
39
35
  (0, interface_database_decorators_1.CreationTime)(),
40
36
  (0, interface_database_decorators_1.Index)(),
@@ -1 +1 @@
1
- {"version":3,"file":"userNotificationPreferences.table.js","sourceRoot":"","sources":["../../../src/db/tables/userNotificationPreferences.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAQmD;AACnD,mEAAuE;AACvE,sFAA4E;AAE/D,QAAA,oCAAoC,GAC/C,+BAA+B,CAAC;AAG3B,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,qCAAK;CA4BrD,CAAA;AA5BY,kEAA2B;AAE9B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;wDACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;2DACN;AAGf;IADP,IAAA,qCAAK,EAAC,KAAK,CAAC;;gEACgC;AAOrC;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;wEAC4B;AAKlC;IAHP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;8DAAC;AAKhB;IAHP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;8DAAC;sCA3Bb,2BAA2B;IADvC,IAAA,6CAAa,EAAC,4CAAoC,EAAE,4BAAgB,CAAC;GACzD,2BAA2B,CA4BvC"}
1
+ {"version":3,"file":"userNotificationPreferences.table.js","sourceRoot":"","sources":["../../../src/db/tables/userNotificationPreferences.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAQmD;AACnD,mEAAuE;AACvE,sFAA4E;AAE/D,QAAA,oCAAoC,GAC/C,+BAA+B,CAAC;AAG3B,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,qCAAK;CAqBrD,CAAA;AArBY,kEAA2B;AAE9B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;wDACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;IACf,IAAA,wCAAQ,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC;;2DACN;AAGf;IADP,IAAA,qCAAK,EAAC,KAAK,CAAC;;gEACgC;AAKrC;IAHP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;8DAAC;AAKhB;IAHP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;8DAAC;sCApBb,2BAA2B;IADvC,IAAA,6CAAa,EAAC,4CAAoC,EAAE,4BAAgB,CAAC;GACzD,2BAA2B,CAqBvC"}