@antelopejs/dms 0.15.1 → 0.16.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 (295) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +36 -26
  3. package/bin/control/base.mjs +9 -4
  4. package/bin/control/browser-client.mjs +24 -5
  5. package/bin/control/browser-wire.mjs +41 -0
  6. package/bin/control/browser-wire.test.mjs +96 -0
  7. package/bin/control/browser.mjs +78 -27
  8. package/bin/control/commands-stack.mjs +58 -8
  9. package/bin/control/commands-verify.mjs +47 -1
  10. package/bin/control/doctor.mjs +49 -4
  11. package/bin/control/failure.mjs +9 -0
  12. package/bin/control/journey.mjs +158 -30
  13. package/bin/control/journey.test.mjs +61 -0
  14. package/bin/control/json.mjs +229 -0
  15. package/bin/control/json.test.mjs +130 -0
  16. package/bin/control/mail.mjs +57 -7
  17. package/bin/control/mail.test.mjs +55 -0
  18. package/bin/control/mongo.mjs +205 -27
  19. package/bin/control/mongo.test.mjs +298 -0
  20. package/bin/control/options.mjs +33 -0
  21. package/bin/control/processes.mjs +24 -2
  22. package/bin/control/renderer.mjs +39 -0
  23. package/bin/control/renderer.test.mjs +324 -0
  24. package/bin/control/run-state.mjs +119 -6
  25. package/bin/control/run-state.test.mjs +171 -0
  26. package/bin/control/session.mjs +30 -14
  27. package/bin/control/stack.mjs +95 -24
  28. package/bin/control/tab.mjs +117 -18
  29. package/bin/control/verify/behaviour.mjs +44 -6
  30. package/bin/control/verify/behaviour.test.mjs +130 -22
  31. package/bin/control/verify/decode.mjs +220 -0
  32. package/bin/control/verify/decode.test.mjs +245 -0
  33. package/bin/control/verify/doors.mjs +1 -1
  34. package/bin/control/verify/doors.test.mjs +40 -0
  35. package/bin/control/verify/emit.mjs +135 -9
  36. package/bin/control/verify/formal.mjs +61 -10
  37. package/bin/control/verify/formal.test.mjs +19 -3
  38. package/bin/control/verify/judgement.mjs +22 -3
  39. package/bin/control/verify/map.mjs +25 -5
  40. package/bin/control/verify/publish.mjs +20 -14
  41. package/bin/control/verify/seeded.mjs +65 -16
  42. package/bin/control/verify/skill.mjs +27 -6
  43. package/bin/control/verify/types.mjs +29 -0
  44. package/bin/control/verify/verdict.mjs +72 -7
  45. package/bin/dms-control.mjs +8 -28
  46. package/checks/api-error-presentation.d.mts +61 -0
  47. package/dist/attachments/access.js +1 -1
  48. package/dist/attachments/access.js.map +1 -1
  49. package/dist/attachments/fields.d.ts +2 -2
  50. package/dist/attachments/fields.js +26 -13
  51. package/dist/attachments/fields.js.map +1 -1
  52. package/dist/attachments/index.d.ts +1 -0
  53. package/dist/attachments/index.js +1 -0
  54. package/dist/attachments/index.js.map +1 -1
  55. package/dist/attachments/read.js.map +1 -1
  56. package/dist/attachments/save.d.ts +1 -1
  57. package/dist/attachments/save.js +49 -17
  58. package/dist/attachments/save.js.map +1 -1
  59. package/dist/attachments/table-view.d.ts +1 -2
  60. package/dist/attachments/table-view.js +23 -13
  61. package/dist/attachments/table-view.js.map +1 -1
  62. package/dist/automation/events.d.ts +10 -10
  63. package/dist/automation/index.js +3 -4
  64. package/dist/automation/index.js.map +1 -1
  65. package/dist/automation/send-notification.d.ts +2 -2
  66. package/dist/automation/send-notification.js +4 -6
  67. package/dist/automation/send-notification.js.map +1 -1
  68. package/dist/crons/cleanup-user-invites.js.map +1 -1
  69. package/dist/crons/sweep-expired-sessions.js.map +1 -1
  70. package/dist/crons/sweep-stale-exports.js.map +1 -1
  71. package/dist/db/guard-row.d.ts +2 -3
  72. package/dist/db/guard-row.js +1 -2
  73. package/dist/db/guard-row.js.map +1 -1
  74. package/dist/db/models/attachments.model.d.ts +7 -5
  75. package/dist/db/models/setupToken.model.d.ts +7 -5
  76. package/dist/db/models/signInAttempts.model.d.ts +7 -5
  77. package/dist/db/models/systemState.model.d.ts +7 -5
  78. package/dist/db/models/userEmailChanges.model.d.ts +7 -5
  79. package/dist/db/models/userKnownDevices.model.d.ts +7 -5
  80. package/dist/db/models/userNotificationPreferences.model.d.ts +7 -5
  81. package/dist/db/models/userNotifications.model.d.ts +9 -6
  82. package/dist/db/models/userNotifications.model.js.map +1 -1
  83. package/dist/dev/module-update-notifications.js.map +1 -1
  84. package/dist/hooks/internal/sign-in-monitor.js +6 -6
  85. package/dist/hooks/internal/sign-in-monitor.js.map +1 -1
  86. package/dist/implementations/dms/page/controller.d.ts +2 -2
  87. package/dist/implementations/dms/page/controller.js +3 -1
  88. package/dist/implementations/dms/page/controller.js.map +1 -1
  89. package/dist/implementations/dms/page/dynamic-menu.js +3 -2
  90. package/dist/implementations/dms/page/dynamic-menu.js.map +1 -1
  91. package/dist/implementations/dms/page/notifications.d.ts +6 -2
  92. package/dist/implementations/dms/page/notifications.js +1 -0
  93. package/dist/implementations/dms/page/notifications.js.map +1 -1
  94. package/dist/implementations/dms/page/preview-pages.js +6 -3
  95. package/dist/implementations/dms/page/preview-pages.js.map +1 -1
  96. package/dist/implementations/dms/page/registry.js +10 -4
  97. package/dist/implementations/dms/page/registry.js.map +1 -1
  98. package/dist/implementations/dms/permissions.js +12 -12
  99. package/dist/implementations/dms/permissions.js.map +1 -1
  100. package/dist/implementations/dms-base/bulk-selection.d.ts +3 -4
  101. package/dist/implementations/dms-base/bulk-selection.js +18 -6
  102. package/dist/implementations/dms-base/bulk-selection.js.map +1 -1
  103. package/dist/implementations/dms-base/filter-tokens.js.map +1 -1
  104. package/dist/implementations/dms-base/footer-summary.js +44 -27
  105. package/dist/implementations/dms-base/footer-summary.js.map +1 -1
  106. package/dist/implementations/dms-base/row-rule-operand.d.ts +6 -0
  107. package/dist/implementations/dms-base/row-rule-operand.js +41 -0
  108. package/dist/implementations/dms-base/row-rule-operand.js.map +1 -0
  109. package/dist/implementations/dms-base/search-route.d.ts +9 -13
  110. package/dist/implementations/dms-base/search-route.js +7 -6
  111. package/dist/implementations/dms-base/search-route.js.map +1 -1
  112. package/dist/implementations/dms-base/services.d.ts +1 -0
  113. package/dist/implementations/dms-base/services.js +1 -0
  114. package/dist/implementations/dms-base/services.js.map +1 -1
  115. package/dist/implementations/dms-base/table-view.d.ts +5 -6
  116. package/dist/implementations/dms-base/table-view.js +17 -6
  117. package/dist/implementations/dms-base/table-view.js.map +1 -1
  118. package/dist/implementations/dms-html-render/index.js +16 -6
  119. package/dist/implementations/dms-html-render/index.js.map +1 -1
  120. package/dist/implementations/dms-notifications/delivery-guard.d.ts +3 -2
  121. package/dist/implementations/dms-notifications/delivery-guard.js.map +1 -1
  122. package/dist/implementations/dms-notifications/index.js.map +1 -1
  123. package/dist/index.js.map +1 -1
  124. package/dist/pages/public/preview/block-types.d.ts +1 -2
  125. package/dist/pages/public/preview/block-types.js.map +1 -1
  126. package/dist/pages/settings/overview/account-summary.js +4 -1
  127. package/dist/pages/settings/overview/account-summary.js.map +1 -1
  128. package/dist/pages/settings/users/account-activity-feed.js +3 -2
  129. package/dist/pages/settings/users/account-activity-feed.js.map +1 -1
  130. package/dist/pages/settings/users/account-credentials.d.ts +1 -1
  131. package/dist/pages/settings/users/account-credentials.js +1 -2
  132. package/dist/pages/settings/users/account-credentials.js.map +1 -1
  133. package/dist/pages/settings/users/account-data-store.d.ts +1 -1
  134. package/dist/pages/settings/users/account-data-store.js +1 -3
  135. package/dist/pages/settings/users/account-data-store.js.map +1 -1
  136. package/dist/pages/settings/users/email-change.d.ts +2 -2
  137. package/dist/pages/settings/users/email-change.js +2 -3
  138. package/dist/pages/settings/users/email-change.js.map +1 -1
  139. package/dist/pages/settings/users/invite-extension-routes.d.ts +2 -2
  140. package/dist/pages/settings/users/invite-extension-routes.js +11 -4
  141. package/dist/pages/settings/users/invite-extension-routes.js.map +1 -1
  142. package/dist/pages/settings/users/invites.d.ts +2 -2
  143. package/dist/pages/settings/users/member-invite-batch.d.ts +2 -2
  144. package/dist/pages/settings/users/member-invite-batch.js +7 -3
  145. package/dist/pages/settings/users/member-invite-batch.js.map +1 -1
  146. package/dist/pages/settings/users/member-roles-field.js +1 -4
  147. package/dist/pages/settings/users/member-roles-field.js.map +1 -1
  148. package/dist/pages/settings/users/members.d.ts +2 -3
  149. package/dist/pages/settings/users/members.js.map +1 -1
  150. package/dist/pages/settings/users/notifications.d.ts +2 -3
  151. package/dist/pages/settings/users/notifications.js +2 -1
  152. package/dist/pages/settings/users/notifications.js.map +1 -1
  153. package/dist/pages/settings/users/profile-helpers.d.ts +0 -1
  154. package/dist/pages/settings/users/profile-helpers.js +0 -17
  155. package/dist/pages/settings/users/profile-helpers.js.map +1 -1
  156. package/dist/pages/settings/users/profile.d.ts +3 -4
  157. package/dist/pages/settings/users/profile.js +12 -12
  158. package/dist/pages/settings/users/profile.js.map +1 -1
  159. package/dist/pages/settings/users/region.d.ts +3 -4
  160. package/dist/pages/settings/users/region.js.map +1 -1
  161. package/dist/pages/settings/users/regional-preferences.d.ts +8 -1
  162. package/dist/pages/settings/users/regional-preferences.js +10 -6
  163. package/dist/pages/settings/users/regional-preferences.js.map +1 -1
  164. package/dist/pages/settings/users/role-preview.js +3 -2
  165. package/dist/pages/settings/users/role-preview.js.map +1 -1
  166. package/dist/pages/settings/users/roles.d.ts +4 -5
  167. package/dist/pages/settings/users/roles.js.map +1 -1
  168. package/dist/pages/settings/users/security.d.ts +9 -12
  169. package/dist/pages/settings/users/security.js +11 -9
  170. package/dist/pages/settings/users/security.js.map +1 -1
  171. package/dist/pages/settings/users/two-factor-operations.d.ts +7 -7
  172. package/dist/pages/settings/users/two-factor-operations.js +5 -7
  173. package/dist/pages/settings/users/two-factor-operations.js.map +1 -1
  174. package/dist/realtime/broker.js.map +1 -1
  175. package/dist/realtime/heartbeat.js.map +1 -1
  176. package/dist/realtime/redis-broker.js.map +1 -1
  177. package/dist/realtime/sessions.js.map +1 -1
  178. package/dist/realtime/sse.js +1 -2
  179. package/dist/realtime/sse.js.map +1 -1
  180. package/dist/routes/auth/forgot-password.d.ts +1 -1
  181. package/dist/routes/auth/forgot-password.js +1 -3
  182. package/dist/routes/auth/forgot-password.js.map +1 -1
  183. package/dist/routes/auth/login.d.ts +1 -1
  184. package/dist/routes/auth/login.js +1 -2
  185. package/dist/routes/auth/login.js.map +1 -1
  186. package/dist/routes/auth/logout.d.ts +1 -1
  187. package/dist/routes/auth/logout.js +1 -2
  188. package/dist/routes/auth/logout.js.map +1 -1
  189. package/dist/routes/auth/oauth/providers.js +30 -6
  190. package/dist/routes/auth/oauth/providers.js.map +1 -1
  191. package/dist/routes/auth/oauth/state.js +8 -5
  192. package/dist/routes/auth/oauth/state.js.map +1 -1
  193. package/dist/routes/auth/oauth/token-exchange.js +8 -1
  194. package/dist/routes/auth/oauth/token-exchange.js.map +1 -1
  195. package/dist/routes/auth/refresh.d.ts +1 -1
  196. package/dist/routes/auth/refresh.js +1 -2
  197. package/dist/routes/auth/refresh.js.map +1 -1
  198. package/dist/routes/auth/request-2fa-email.d.ts +1 -1
  199. package/dist/routes/auth/request-2fa-email.js +1 -2
  200. package/dist/routes/auth/request-2fa-email.js.map +1 -1
  201. package/dist/routes/auth/reset-password.d.ts +1 -1
  202. package/dist/routes/auth/reset-password.js +1 -3
  203. package/dist/routes/auth/reset-password.js.map +1 -1
  204. package/dist/routes/auth/session-handoff.d.ts +1 -1
  205. package/dist/routes/auth/session-handoff.js +1 -2
  206. package/dist/routes/auth/session-handoff.js.map +1 -1
  207. package/dist/routes/auth/signup.d.ts +1 -1
  208. package/dist/routes/auth/signup.js +1 -2
  209. package/dist/routes/auth/signup.js.map +1 -1
  210. package/dist/routes/auth/switch-tenant.d.ts +2 -3
  211. package/dist/routes/auth/switch-tenant.js +3 -2
  212. package/dist/routes/auth/switch-tenant.js.map +1 -1
  213. package/dist/routes/auth/validate-forgot-password-token.d.ts +1 -1
  214. package/dist/routes/auth/validate-forgot-password-token.js +1 -3
  215. package/dist/routes/auth/validate-forgot-password-token.js.map +1 -1
  216. package/dist/routes/auth/validate-invite-token.d.ts +1 -1
  217. package/dist/routes/auth/validate-invite-token.js +1 -3
  218. package/dist/routes/auth/validate-invite-token.js.map +1 -1
  219. package/dist/routes/auth/verify-2fa.d.ts +1 -1
  220. package/dist/routes/auth/verify-2fa.js +1 -2
  221. package/dist/routes/auth/verify-2fa.js.map +1 -1
  222. package/dist/routes/auth/verify-email.d.ts +1 -1
  223. package/dist/routes/auth/verify-email.js +1 -2
  224. package/dist/routes/auth/verify-email.js.map +1 -1
  225. package/dist/routes/auth.d.ts +14 -15
  226. package/dist/routes/auth.js +15 -13
  227. package/dist/routes/auth.js.map +1 -1
  228. package/dist/routes/files.d.ts +1 -2
  229. package/dist/routes/files.js.map +1 -1
  230. package/dist/routes/onboarding.d.ts +1 -2
  231. package/dist/routes/onboarding.js.map +1 -1
  232. package/dist/routes/realtime.js +5 -6
  233. package/dist/routes/realtime.js.map +1 -1
  234. package/dist/routes/store.d.ts +6 -7
  235. package/dist/routes/store.js +19 -13
  236. package/dist/routes/store.js.map +1 -1
  237. package/dist/store/catalog.d.ts +13 -5
  238. package/dist/store/catalog.js +19 -9
  239. package/dist/store/catalog.js.map +1 -1
  240. package/dist/store/compatibility.d.ts +1 -0
  241. package/dist/store/compatibility.js +24 -8
  242. package/dist/store/compatibility.js.map +1 -1
  243. package/dist/store/frontend-compatibility.js +15 -3
  244. package/dist/store/frontend-compatibility.js.map +1 -1
  245. package/dist/store/interfaces.js +35 -13
  246. package/dist/store/interfaces.js.map +1 -1
  247. package/dist/store/internal/frontend/frontend-modules.js +7 -3
  248. package/dist/store/internal/frontend/frontend-modules.js.map +1 -1
  249. package/dist/store/internal/frontend/frontend-ready.d.ts +2 -1
  250. package/dist/store/internal/frontend/frontend-ready.js +6 -4
  251. package/dist/store/internal/frontend/frontend-ready.js.map +1 -1
  252. package/dist/store/internal/frontend/manifest.js +6 -7
  253. package/dist/store/internal/frontend/manifest.js.map +1 -1
  254. package/dist/store/operations.js.map +1 -1
  255. package/dist/store/registry.js.map +1 -1
  256. package/dist/store/runtime.d.ts +13 -0
  257. package/dist/store/runtime.js +9 -1
  258. package/dist/store/runtime.js.map +1 -1
  259. package/dist/utils/admin-invite-email.js +3 -1
  260. package/dist/utils/admin-invite-email.js.map +1 -1
  261. package/dist/utils/email-subjects.js +3 -1
  262. package/dist/utils/email-subjects.js.map +1 -1
  263. package/dist/utils/export-jobs-run.js.map +1 -1
  264. package/dist/utils/export-jobs.js +3 -9
  265. package/dist/utils/export-jobs.js.map +1 -1
  266. package/dist/utils/index.d.ts +1 -0
  267. package/dist/utils/index.js +1 -0
  268. package/dist/utils/index.js.map +1 -1
  269. package/dist/utils/own-value.d.ts +1 -0
  270. package/dist/utils/own-value.js +7 -0
  271. package/dist/utils/own-value.js.map +1 -0
  272. package/dist/utils/row-action-rule-evaluator.js +31 -35
  273. package/dist/utils/row-action-rule-evaluator.js.map +1 -1
  274. package/dist/utils/sign-in-country.js +4 -2
  275. package/dist/utils/sign-in-country.js.map +1 -1
  276. package/dist/utils/tenant-export-archive.js +9 -14
  277. package/dist/utils/tenant-export-archive.js.map +1 -1
  278. package/dist/utils/user-agent.js +2 -1
  279. package/dist/utils/user-agent.js.map +1 -1
  280. package/dist/validation/auth.schema.d.ts +10 -10
  281. package/dist/validation/regional-preferences.schema.d.ts +2 -2
  282. package/dist/validation/role-editor.schema.d.ts +1 -1
  283. package/frontend-vue/build/backend-boundary.ts +49 -18
  284. package/frontend-vue/dms.frontend.ts +8 -12
  285. package/frontend-vue/layers/dms-auth/server/accounts.ts +44 -3
  286. package/frontend-vue/layers/dms-auth/server/actions.ts +17 -4
  287. package/frontend-vue/layers/dms-auth/server/oauth.ts +42 -4
  288. package/frontend-vue/layers/dms-core/app/types/watch.ts +1 -2
  289. package/frontend-vue/layers/dms-ui/app/build/composables/form/fieldValueRule.ts +57 -6
  290. package/frontend-vue/layers/dms-ui/app/build/composables/form/registerFormFunctions.ts +7 -9
  291. package/frontend-vue/layers/dms-ui/app/entries/composables/form/registerFormFunctions.ts +1 -0
  292. package/frontend-vue/lazy-plugin.ts +18 -0
  293. package/frontend-vue/package.json +2 -2
  294. package/package.json +19 -13
  295. package/skills/dms-project/SKILL.md +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"row-action-rule-evaluator.js","sourceRoot":"","sources":["../../src/utils/row-action-rule-evaluator.ts"],"names":[],"mappings":";;;AACA,oGAImE;AAEnE,MAAM,GAAG,GAAG,CACV,GAAiC,EACjC,IAAY,EACoB,EAAE;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAmC,GAAG,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAQF,MAAM,uBAAuB,GAAG,CAAC,QAAuB,EAAE,EAAE,CAAC,CAAC;IAC5D,GAAG,EAAE,CACH,GAA+D,EAC/D,GAAiC,EACjC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,EAAE,EAAE,CACF,GAA+D,EAC/D,GAAiC,EACjC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,GAAG,EAAE,CACH,GAA+D,EAC/D,GAAiC,EACjC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACzB,CAAC,CAAC;AAEH,IAAI,uBAAmE,CAAC;AACxE,MAAM,oBAAoB,GAAG,GAAG,EAAE;IAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,uBAAuB,GAAG,uBAAuB,CAAC,6BAAqB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAGK,MAAM,qBAAqB,GAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAChE,MAAM,OAAO,GAA4B,IAAI,CAAC;IAC9C,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI,4CAAqB,EAAE,CAAC;QAC7C,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,IAAI,gCAAS,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,gCAAS,CAAW,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sCAAe,CAAC,EAAE,CAAC;YAC9D,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC5B,OAAO,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AArBW,QAAA,qBAAqB,yBAqBhC"}
1
+ {"version":3,"file":"row-action-rule-evaluator.js","sourceRoot":"","sources":["../../src/utils/row-action-rule-evaluator.ts"],"names":[],"mappings":";;;AACA,oGAA4F;AAQ5F,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAGM,MAAM,qBAAqB,GAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAChE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,IAAA,6BAAqB,EAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,IAAI,UAAU,GAAY,GAAG,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,UAAU,GAAG,SAAS,CAAC;YACvB,MAAM;QACR,CAAC;QACD,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,CAAC;IACD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,sCAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,sCAAe,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,sCAAe,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,sCAAe,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAjCW,QAAA,qBAAqB,yBAiChC"}
@@ -9,6 +9,7 @@ exports.normalizeCountryCode = normalizeCountryCode;
9
9
  exports.lookupCountry = lookupCountry;
10
10
  exports.resolveClientOrigin = resolveClientOrigin;
11
11
  exports.countryDisplayName = countryDisplayName;
12
+ const own_value_1 = require("./own-value");
12
13
  const node_fs_1 = require("node:fs");
13
14
  const node_path_1 = __importDefault(require("node:path"));
14
15
  const logging_1 = require("@antelopejs/interface-core/logging");
@@ -66,8 +67,9 @@ function lookupCountry(ip, lookup = countryLookup()) {
66
67
  }
67
68
  function resolveClientOrigin(ip, headers) {
68
69
  const headerName = (0, config_1.getAuthConfig)().signInCountry?.header?.toLowerCase();
69
- const country = (headerName ? normalizeCountryCode(headers[headerName]) : undefined) ??
70
- lookupCountry(ip);
70
+ const country = (headerName
71
+ ? normalizeCountryCode((0, own_value_1.ownValue)(headers, headerName))
72
+ : undefined) ?? lookupCountry(ip);
71
73
  return { ip, country };
72
74
  }
73
75
  function displayLocales(language) {
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in-country.js","sourceRoot":"","sources":["../../src/utils/sign-in-country.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sign-in-country.js","sourceRoot":"","sources":["../../src/utils/sign-in-country.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ const export_jobs_run_1 = require("./export-jobs-run");
16
16
  var tenant_export_archive_2 = require("@antelopejs/interface-dms/base/tenant-export-archive");
17
17
  Object.defineProperty(exports, "TENANT_EXPORT_CONTENT_TYPE", { enumerable: true, get: function () { return tenant_export_archive_2.TENANT_EXPORT_CONTENT_TYPE; } });
18
18
  Object.defineProperty(exports, "TENANT_EXPORT_EXTENSION", { enumerable: true, get: function () { return tenant_export_archive_2.TENANT_EXPORT_EXTENSION; } });
19
+ const ABORTED_MESSAGE = "Tenant export aborted";
19
20
  const MANIFEST_ENTRY = "manifest.json";
20
21
  const MODULES_DIRECTORY = "modules";
21
22
  const JSON_INDENT = 2;
@@ -27,12 +28,6 @@ const PATH_SEPARATORS = /[\\/]+/;
27
28
  const TRAVERSAL_SEGMENTS = [".", ".."];
28
29
  const FULL_PROGRESS = 100;
29
30
  const DEDUPE_START_SUFFIX = 2;
30
- function describeError(error) {
31
- return error instanceof Error ? error.message : String(error);
32
- }
33
- function abortReason(signal) {
34
- return signal.reason ?? new Error("Tenant export aborted");
35
- }
36
31
  class ExportArchiveWriter {
37
32
  signal;
38
33
  archive = (0, archiver_1.default)("zip");
@@ -57,7 +52,7 @@ class ExportArchiveWriter {
57
52
  }
58
53
  throwIfAborted() {
59
54
  if (this.signal.aborted) {
60
- throw abortReason(this.signal);
55
+ throw this.signal.reason ?? new Error(ABORTED_MESSAGE);
61
56
  }
62
57
  }
63
58
  assertUsable() {
@@ -65,8 +60,8 @@ class ExportArchiveWriter {
65
60
  throw this.failure;
66
61
  }
67
62
  }
68
- appendJson(name, data) {
69
- const payload = Buffer.from(JSON.stringify(data, null, JSON_INDENT));
63
+ appendJsonText(name, text) {
64
+ const payload = Buffer.from(text);
70
65
  return this.append(name, () => {
71
66
  this.archive.append(payload, { name });
72
67
  });
@@ -112,7 +107,7 @@ class ExportArchiveWriter {
112
107
  settle(resolve);
113
108
  };
114
109
  const onError = (error) => settle(() => reject(error));
115
- const onAbort = () => settle(() => reject(abortReason(this.signal)));
110
+ const onAbort = () => settle(() => reject(this.signal.reason ?? new Error(ABORTED_MESSAGE)));
116
111
  this.archive.on("entry", onEntry);
117
112
  this.archive.on("error", onError);
118
113
  this.signal.addEventListener("abort", onAbort, { once: true });
@@ -132,7 +127,7 @@ class ScopedTenantExportArchive {
132
127
  this.closed = true;
133
128
  }
134
129
  addJson(path, data) {
135
- return this.add(path, (name) => this.writer.appendJson(name, data));
130
+ return this.add(path, (name) => this.writer.appendJsonText(name, JSON.stringify(data, null, JSON_INDENT)));
136
131
  }
137
132
  addFile(path, localPath) {
138
133
  return this.add(path, (name) => this.writer.appendFile(name, localPath));
@@ -178,7 +173,7 @@ function resolveModuleIds(contributors) {
178
173
  async function writeContribution(writer, moduleId, contribution) {
179
174
  if (!contribution)
180
175
  return undefined;
181
- await writer.appendJson(`${MODULES_DIRECTORY}/${moduleId}.${JSON_EXTENSION}`, contribution.data);
176
+ await writer.appendJsonText(`${MODULES_DIRECTORY}/${moduleId}.${JSON_EXTENSION}`, JSON.stringify(contribution.data, null, JSON_INDENT));
182
177
  return contribution.moduleId === moduleId ? undefined : contribution.moduleId;
183
178
  }
184
179
  async function collectContribution(scoped, contributor, options) {
@@ -209,7 +204,7 @@ async function runContributor(writer, moduleId, contributor, options) {
209
204
  moduleId,
210
205
  entries: scoped.entries,
211
206
  failed: true,
212
- error: describeError(error),
207
+ error: error instanceof Error ? error.message : String(error),
213
208
  };
214
209
  }
215
210
  }
@@ -245,7 +240,7 @@ async function buildTenantExportArchive(options) {
245
240
  const writer = new ExportArchiveWriter(options.localPath, options.signal);
246
241
  try {
247
242
  const reports = await runContributors(writer, options);
248
- await writer.appendJson(MANIFEST_ENTRY, buildManifest(options.tenantId, reports));
243
+ await writer.appendJsonText(MANIFEST_ENTRY, JSON.stringify(buildManifest(options.tenantId, reports), null, JSON_INDENT));
249
244
  await writer.finalize();
250
245
  return summarize(reports);
251
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-export-archive.js","sourceRoot":"","sources":["../../src/utils/tenant-export-archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenant-export-archive.js","sourceRoot":"","sources":["../../src/utils/tenant-export-archive.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseUserAgent = parseUserAgent;
4
+ const own_value_1 = require("./own-value");
4
5
  const ua_parser_js_1 = require("ua-parser-js");
5
6
  const DEVICE_TYPES = {
6
7
  mobile: "mobile",
@@ -16,7 +17,7 @@ function parseUserAgent(userAgent) {
16
17
  browserVersion: browser.version ?? "",
17
18
  osName: os.name ?? "",
18
19
  osVersion: os.version ?? "",
19
- deviceType: DEVICE_TYPES[device.type ?? ""] ?? "desktop",
20
+ deviceType: (0, own_value_1.ownValue)(DEVICE_TYPES, device.type ?? "") ?? "desktop",
20
21
  };
21
22
  }
22
23
  //# sourceMappingURL=user-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-agent.js","sourceRoot":"","sources":["../../src/utils/user-agent.ts"],"names":[],"mappings":";;AAiBA,wCAaC;AA1BD,+CAAwC;AAQxC,MAAM,YAAY,GAA+B;IAC/C,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,SAAgB,cAAc,CAAC,SAAiB;IAC9C,MAAM,MAAM,GAAG,IAAI,uBAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;QAC/B,cAAc,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QACrC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE;QAC3B,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,SAAS;KACzD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"user-agent.js","sourceRoot":"","sources":["../../src/utils/user-agent.ts"],"names":[],"mappings":";;AAkBA,wCAaC;AA/BD,2CAAuC;AAKvC,+CAAwC;AAQxC,MAAM,YAAY,GAA+B;IAC/C,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,SAAgB,cAAc,CAAC,SAAiB;IAC9C,MAAM,MAAM,GAAG,IAAI,uBAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;QAC/B,cAAc,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QACrC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE;QAC3B,UAAU,EAAE,IAAA,oBAAQ,EAAC,YAAY,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,SAAS;KACnE,CAAC;AACJ,CAAC"}
@@ -9,14 +9,14 @@ export declare const authSchema: {
9
9
  }, "strip", z.ZodTypeAny, {
10
10
  email: string;
11
11
  name: string;
12
- token: string;
13
12
  password: string;
13
+ token: string;
14
14
  lang?: string | undefined;
15
15
  }, {
16
16
  email: string;
17
17
  name: string;
18
- token: string;
19
18
  password: string;
19
+ token: string;
20
20
  lang?: string | undefined;
21
21
  }>;
22
22
  login: z.ZodObject<{
@@ -112,25 +112,25 @@ export declare const authSchema: {
112
112
  password: z.ZodString;
113
113
  }, "strip", z.ZodTypeAny, {
114
114
  email: string;
115
- token: string;
116
115
  password: string;
116
+ token: string;
117
117
  }, {
118
118
  email: string;
119
- token: string;
120
119
  password: string;
120
+ token: string;
121
121
  }>;
122
122
  verify2FA: z.ZodObject<{
123
123
  token: z.ZodString;
124
124
  code: z.ZodString;
125
125
  method: z.ZodEnum<["totp", "email", "backup"]>;
126
126
  }, "strip", z.ZodTypeAny, {
127
- method: "email" | "totp" | "backup";
128
- code: string;
129
127
  token: string;
130
- }, {
131
- method: "email" | "totp" | "backup";
132
128
  code: string;
129
+ method: "email" | "totp" | "backup";
130
+ }, {
133
131
  token: string;
132
+ code: string;
133
+ method: "email" | "totp" | "backup";
134
134
  }>;
135
135
  request2FAEmail: z.ZodObject<{
136
136
  token: z.ZodString;
@@ -157,11 +157,11 @@ export declare const authSchema: {
157
157
  method: z.ZodEnum<["totp", "email"]>;
158
158
  code: z.ZodString;
159
159
  }, "strip", z.ZodTypeAny, {
160
- method: "email" | "totp";
161
160
  code: string;
162
- }, {
163
161
  method: "email" | "totp";
162
+ }, {
164
163
  code: string;
164
+ method: "email" | "totp";
165
165
  }>;
166
166
  regenerateBackup: z.ZodObject<{
167
167
  code: z.ZodString;
@@ -11,12 +11,12 @@ export declare const regionalPreferencesSchema: z.ZodObject<{
11
11
  timeZone?: string | null | undefined;
12
12
  weekStart?: 0 | 1 | 6 | null | undefined;
13
13
  timeFormat?: "h23" | "h12" | null | undefined;
14
- dateFormat?: "text" | "numeric" | null | undefined;
14
+ dateFormat?: "numeric" | "text" | null | undefined;
15
15
  }, {
16
16
  language?: string | undefined;
17
17
  timeZone?: string | null | undefined;
18
18
  weekStart?: 0 | 1 | 6 | null | undefined;
19
19
  timeFormat?: "h23" | "h12" | null | undefined;
20
- dateFormat?: "text" | "numeric" | null | undefined;
20
+ dateFormat?: "numeric" | "text" | null | undefined;
21
21
  }>;
22
22
  export type RegionalPreferencesInput = z.infer<typeof regionalPreferencesSchema>;
@@ -6,8 +6,8 @@ export declare const roleEditorSchema: z.ZodObject<{
6
6
  description: z.ZodDefault<z.ZodString>;
7
7
  permissions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
8
8
  }, "strip", z.ZodTypeAny, {
9
- description: string;
10
9
  name: string;
10
+ description: string;
11
11
  permissions: string[];
12
12
  }, {
13
13
  name: string;
@@ -10,20 +10,32 @@ const QUERY_OR_HASH = /[?#].*$/;
10
10
 
11
11
  const backendRoots = new Map<string, string | null>();
12
12
 
13
- function packageName(manifest: string): unknown {
13
+ /** Whether a parsed manifest names its package. */
14
+ function isNamedManifest(value: unknown): value is { name: string } {
15
+ return (
16
+ typeof value === "object" &&
17
+ value !== null &&
18
+ "name" in value &&
19
+ typeof value.name === "string"
20
+ );
21
+ }
22
+
23
+ /** The package name a `package.json` declares, or `undefined`. */
24
+ function packageName(manifest: string): string | undefined {
14
25
  try {
15
- const parsed: { name?: unknown } = JSON.parse(
16
- readFileSync(manifest, "utf8"),
17
- );
18
- return parsed.name;
26
+ const parsed: unknown = JSON.parse(readFileSync(manifest, "utf8"));
27
+ return isNamedManifest(parsed) ? parsed.name : undefined;
19
28
  } catch {
20
29
  return undefined;
21
30
  }
22
31
  }
23
32
 
33
+ /** The directory of the backend package that holds `directory`, or null. */
24
34
  function backendRoot(directory: string): string | null {
25
35
  const known = backendRoots.get(directory);
26
- if (known !== undefined) return known;
36
+ if (known !== undefined) {
37
+ return known;
38
+ }
27
39
  const manifest = join(directory, "package.json");
28
40
  const parent = dirname(directory);
29
41
  let root: string | null = null;
@@ -44,7 +56,9 @@ function backendRoot(directory: string): string | null {
44
56
  */
45
57
  function backendSourceFile(id: string): string | undefined {
46
58
  const path = id.replace(QUERY_OR_HASH, "");
47
- if (!isAbsolute(path)) return undefined;
59
+ if (!isAbsolute(path)) {
60
+ return undefined;
61
+ }
48
62
  let real: string;
49
63
  try {
50
64
  real = realpathSync(path);
@@ -52,39 +66,56 @@ function backendSourceFile(id: string): string | undefined {
52
66
  return undefined;
53
67
  }
54
68
  const root = backendRoot(dirname(real));
55
- if (root === null) return undefined;
69
+ if (root === null) {
70
+ return undefined;
71
+ }
56
72
  return relative(root, real).split(sep)[0] === BACKEND_SOURCE
57
73
  ? real
58
74
  : undefined;
59
75
  }
60
76
 
61
77
  /**
62
- * Fails the build, the dev server and the tests when a module of the frontend
63
- * resolves to a file under `packages/dms/src`: the browser reaches the
78
+ * Fails the build and the dev server when a module of the frontend resolves to
79
+ * a file under the `src` of the backend package: the browser reaches the
64
80
  * backend only through its HTTP interface. It checks what the whole resolution
65
- * chain returns, so an alias is seen through and a symlink the resolver
66
- * returns is followed to its real path, and it runs before the other plugins
67
- * (`enforce: "pre"`). The build copies the frontend module with its symlinks
68
- * resolved, so only `pnpm run deps` sees a symlink inside the module.
81
+ * chain returns, an id marked external included, so an alias is seen through
82
+ * and a symlink the resolver returns is followed to its real path, and it runs
83
+ * before the other plugins (`enforce: "pre"`). Vite builds workers with their
84
+ * own plugin list, so the plugin adds itself there too.
85
+ *
86
+ * antelopejs-sync writes this file from `@antelopejs/tooling-configs` and
87
+ * restores it on every run: change the plugin in the pack, not here.
69
88
  */
70
89
  export function backendBoundary(): VitePlugin {
71
90
  return {
72
- name: "dms:backend-boundary",
91
+ ...boundaryCheck(),
92
+ config: () => ({ worker: { plugins: () => [boundaryCheck()] } }),
93
+ };
94
+ }
95
+
96
+ /** The check alone, as a worker build runs it. */
97
+ function boundaryCheck(): VitePlugin {
98
+ return {
99
+ name: `${BACKEND_PACKAGE}:backend-boundary`,
73
100
  enforce: "pre",
74
101
  async resolveId(source, importer, options) {
75
102
  const resolved = await this.resolve(source, importer, {
76
103
  ...options,
77
104
  skipSelf: true,
78
105
  });
79
- if (resolved === null || resolved.external) return resolved;
106
+ if (resolved === null) {
107
+ return resolved;
108
+ }
80
109
  const file = backendSourceFile(resolved.id);
81
- if (file === undefined) return resolved;
110
+ if (file === undefined) {
111
+ return resolved;
112
+ }
82
113
  const from =
83
114
  importer === undefined
84
115
  ? "an entry point"
85
116
  : importer.replace(QUERY_OR_HASH, "");
86
117
  return this.error(
87
- `Backend boundary: ${from} imports ${file}, which is under packages/dms/src. The frontend reaches the backend only through its HTTP interface.`,
118
+ `Backend boundary: ${from} imports ${file}, which is under the src of ${BACKEND_PACKAGE}. The frontend reaches the backend only through its HTTP interface.`,
88
119
  );
89
120
  },
90
121
  };
@@ -8,6 +8,7 @@ import {
8
8
  type DmsFrontendSdk,
9
9
  useDmsRuntimeConfig,
10
10
  } from "#dms/frontend-module";
11
+ import { lazyPlugin } from "./lazy-plugin";
11
12
  import authMiddleware from "./layers/dms-auth/app/middleware/auth";
12
13
  import permissionsPreloadPlugin from "./layers/dms-auth/app/plugins/permissions-preload";
13
14
  import asyncDataScopePlugin from "./layers/dms-core/app/plugins/async-data-scope";
@@ -164,20 +165,15 @@ function registerDeferredPlugins(
164
165
  function registerPlugins(sdk: Parameters<DmsFrontendModule["setup"]>[0]): void {
165
166
  const clientOnly = { clientOnly: true };
166
167
  if (import.meta.env.DEV) {
167
- sdk.registerPlugin(async (context) => {
168
- const plugin = await import(
169
- "./layers/dms-layout/app/plugins/dms-dev-reload.client"
170
- );
171
- await plugin.default(context);
172
- }, clientOnly);
168
+ sdk.registerPlugin(
169
+ lazyPlugin(
170
+ () => import("./layers/dms-layout/app/plugins/dms-dev-reload.client"),
171
+ ),
172
+ clientOnly,
173
+ );
173
174
 
174
175
  sdk.registerPlugin(
175
- async (context) => {
176
- const plugin = await import(
177
- "./layers/dms-core/app/plugins/dev-error-log"
178
- );
179
- await plugin.default(context);
180
- },
176
+ lazyPlugin(() => import("./layers/dms-core/app/plugins/dev-error-log")),
181
177
  { ...clientOnly, enforce: "pre" },
182
178
  );
183
179
  }
@@ -1,6 +1,10 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import type { DmsServerEvent, DmsSession } from "#dms/server";
3
- import { isString } from "../../dms-core/app/utils/type-check";
3
+ import {
4
+ isBoolean,
5
+ isObject,
6
+ isString,
7
+ } from "../../dms-core/app/utils/type-check";
4
8
 
5
9
  /**
6
10
  * The accounts this browser is signed in to: an index of their descriptors,
@@ -68,8 +72,42 @@ function descriptor(session: DmsSession, accountId: string): AccountDescriptor {
68
72
  };
69
73
  }
70
74
 
75
+ function isOptionalText(value: unknown): value is string | undefined {
76
+ return value === undefined || isString(value);
77
+ }
78
+
79
+ function isAccountDescriptor(value: unknown): value is AccountDescriptor {
80
+ return (
81
+ isObject(value) &&
82
+ value !== null &&
83
+ isString(value.accountId) &&
84
+ isOptionalText(value.userId) &&
85
+ isOptionalText(value.email) &&
86
+ isOptionalText(value.name) &&
87
+ isOptionalText(value.activeTenantId) &&
88
+ isBoolean(value.persistent)
89
+ );
90
+ }
91
+
92
+ function isStoredAccount(value: unknown): value is StoredAccount {
93
+ return (
94
+ isAccountDescriptor(value) &&
95
+ isObject(value) &&
96
+ isOptionalText(value.refreshToken)
97
+ );
98
+ }
99
+
100
+ function isAccountIndex(value: unknown): value is AccountIndex {
101
+ return (
102
+ isObject(value) &&
103
+ value !== null &&
104
+ !Array.isArray(value) &&
105
+ Object.values(value).every(isAccountDescriptor)
106
+ );
107
+ }
108
+
71
109
  export function readAccounts(event: DmsServerEvent): AccountIndex {
72
- return event.cookies.readSealed<AccountIndex>(ACCOUNT_INDEX_COOKIE) ?? {};
110
+ return event.cookies.readSealed(ACCOUNT_INDEX_COOKIE, isAccountIndex) ?? {};
73
111
  }
74
112
 
75
113
  function writeAccountIndex(event: DmsServerEvent, accounts: AccountIndex) {
@@ -84,7 +122,10 @@ export function readAccount(
84
122
  accountId: Parameters<typeof isString>[0],
85
123
  ): StoredAccount | undefined {
86
124
  if (!isString(accountId) || !UUID.test(accountId)) return undefined;
87
- return event.cookies.readSealed<StoredAccount>(accountCookieName(accountId));
125
+ return event.cookies.readSealed(
126
+ accountCookieName(accountId),
127
+ isStoredAccount,
128
+ );
88
129
  }
89
130
 
90
131
  export function storeAccount(
@@ -1,4 +1,8 @@
1
- import { isString } from "../../dms-core/app/utils/type-check";
1
+ import {
2
+ isBoolean,
3
+ isObject,
4
+ isString,
5
+ } from "../../dms-core/app/utils/type-check";
2
6
  import type { DmsBackendRequest, DmsServerEvent } from "#dms/server";
3
7
  import {
4
8
  isPersistent,
@@ -30,6 +34,15 @@ interface PendingLogin {
30
34
  persistent: boolean;
31
35
  }
32
36
 
37
+ function isPendingLogin(value: unknown): value is PendingLogin {
38
+ return (
39
+ isObject(value) &&
40
+ value !== null &&
41
+ isString(value.token) &&
42
+ isBoolean(value.persistent)
43
+ );
44
+ }
45
+
33
46
  /**
34
47
  * Calls a backend endpoint that opens a session and, unless it asks for a
35
48
  * second step, writes the session and stores the account.
@@ -51,7 +64,7 @@ async function establishWith(
51
64
  { maxAge: PENDING_LOGIN_LIFETIME_S, path: PENDING_LOGIN_PATH },
52
65
  );
53
66
  if (result.requires_2fa || result.requires_tenant_assignment) return result;
54
- if (event.cookies.readSealed(PENDING_LOGIN))
67
+ if (event.cookies.readSealed(PENDING_LOGIN, isPendingLogin))
55
68
  event.cookies.clear(PENDING_LOGIN, { path: PENDING_LOGIN_PATH });
56
69
  const account = persistAccountSession(event, sessionFrom(result, persistent));
57
70
  return { user: result.user, account };
@@ -83,9 +96,9 @@ export async function signup(event: DmsServerEvent) {
83
96
  */
84
97
  export async function verifyTwoFactor(event: DmsServerEvent) {
85
98
  const input = await event.readJson<Input>();
86
- const pending = event.cookies.readSealed<PendingLogin>(PENDING_LOGIN);
99
+ const pending = event.cookies.readSealed(PENDING_LOGIN, isPendingLogin);
87
100
  const persistent =
88
- isString(input.token) && pending?.token === input.token
101
+ pending !== undefined && pending.token === input.token
89
102
  ? isPersistent(pending)
90
103
  : true;
91
104
  return establishWith(event, "/api/auth/verify-2fa", input, persistent);
@@ -3,7 +3,16 @@ import type { DmsServerEvent } from "#dms/server";
3
3
  import { privateSecret } from "../../../server/private-options";
4
4
  import { persistAccountSession } from "./accounts";
5
5
  import { type SessionTokens, sessionFrom } from "./session";
6
- import { isNumber, isString } from "../../dms-core/app/utils/type-check";
6
+ import type {
7
+ NoHandoff,
8
+ NoWorkspaceHandoff,
9
+ TwoFactorHandoff,
10
+ } from "../shared/oauth";
11
+ import {
12
+ isNumber,
13
+ isObject,
14
+ isString,
15
+ } from "../../dms-core/app/utils/type-check";
7
16
 
8
17
  const FLOW = "dms_oauth_flow";
9
18
  const HANDOFF = "dms_oauth_handoff";
@@ -43,6 +52,35 @@ interface OAuthResult extends SessionTokens {
43
52
 
44
53
  const attempts = new Map<string, RateWindow>();
45
54
 
55
+ function isOAuthFlow(value: unknown): value is OAuthFlow {
56
+ return (
57
+ isObject(value) &&
58
+ value !== null &&
59
+ isString(value.state) &&
60
+ isNumber(value.expiresAt) &&
61
+ isString(value.redirect) &&
62
+ isString(value.language) &&
63
+ isString(value.invite)
64
+ );
65
+ }
66
+
67
+ function isTextList(value: unknown): value is string[] {
68
+ return Array.isArray(value) && value.every(isString);
69
+ }
70
+
71
+ function isOAuthHandoff(
72
+ value: unknown,
73
+ ): value is TwoFactorHandoff | NoWorkspaceHandoff {
74
+ if (!isObject(value) || value === null) return false;
75
+ if (value.kind === "2fa")
76
+ return isString(value.token) && isTextList(value.methods);
77
+ return (
78
+ value.kind === "no-workspace" &&
79
+ isString(value.token) &&
80
+ isString(value.provider)
81
+ );
82
+ }
83
+
46
84
  function sweepAttempts(now: number) {
47
85
  for (const [key, window] of attempts)
48
86
  if (now - window.startedAt >= RATE_WINDOW_MS) attempts.delete(key);
@@ -155,7 +193,6 @@ function sameState(
155
193
  left: OAuthFlow["state"],
156
194
  right: OAuthFlow["state"],
157
195
  ): boolean {
158
- if (!isString(left) || !isString(right)) return false;
159
196
  const a = Buffer.from(left);
160
197
  const b = Buffer.from(right);
161
198
  return a.length === b.length && timingSafeEqual(a, b);
@@ -239,7 +276,7 @@ export async function oauthCallback(event: DmsServerEvent): Promise<Response> {
239
276
  const { provider } = event.params;
240
277
  if (!isValidOAuthProvider(provider) || rateLimited(event, "callback"))
241
278
  return errorRedirect(FAILED);
242
- const flow = event.cookies.readSealed<OAuthFlow>(FLOW);
279
+ const flow = event.cookies.readSealed(FLOW, isOAuthFlow);
243
280
  event.cookies.clear(FLOW, { path: FLOW_PATH });
244
281
  const query = event.url.searchParams;
245
282
  if (query.has("error")) return errorRedirect("error.oauth.cancelled");
@@ -253,7 +290,8 @@ export async function oauthCallback(event: DmsServerEvent): Promise<Response> {
253
290
  * finish (a 2FA step, a workspace to pick), once.
254
291
  */
255
292
  export function oauthHandoff(event: DmsServerEvent) {
256
- const handoff = event.cookies.readSealed(HANDOFF) ?? { kind: "none" };
293
+ const handoff: TwoFactorHandoff | NoWorkspaceHandoff | NoHandoff =
294
+ event.cookies.readSealed(HANDOFF, isOAuthHandoff) ?? { kind: "none" };
257
295
  event.cookies.clear(HANDOFF, { path: FLOW_PATH });
258
296
  return handoff;
259
297
  }