@nocobase/app-plugin-mail 1.0.0-beta.13 → 1.0.0-beta.14

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 (55) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +8 -0
  3. package/dist/database/migrations/.manifest.json +4 -0
  4. package/dist/database/migrations/202610250001_mail_imap_message_locations.d.ts +4 -0
  5. package/dist/database/migrations/202610250001_mail_imap_message_locations.d.ts.map +1 -0
  6. package/dist/database/migrations/202610250001_mail_imap_message_locations.js +297 -0
  7. package/dist/database/migrations/202610250001_mail_imap_message_locations.js.map +1 -0
  8. package/dist/server/adapters/imap-smtp/adapter.d.ts +60 -3
  9. package/dist/server/adapters/imap-smtp/adapter.d.ts.map +1 -1
  10. package/dist/server/adapters/imap-smtp/adapter.js +774 -83
  11. package/dist/server/adapters/imap-smtp/adapter.js.map +1 -1
  12. package/dist/server/adapters/imap-smtp/constants.d.ts +6 -0
  13. package/dist/server/adapters/imap-smtp/constants.d.ts.map +1 -1
  14. package/dist/server/adapters/imap-smtp/constants.js +6 -0
  15. package/dist/server/adapters/imap-smtp/constants.js.map +1 -1
  16. package/dist/server/adapters/imap-smtp/content.d.ts +11 -0
  17. package/dist/server/adapters/imap-smtp/content.d.ts.map +1 -1
  18. package/dist/server/adapters/imap-smtp/content.js +82 -3
  19. package/dist/server/adapters/imap-smtp/content.js.map +1 -1
  20. package/dist/server/adapters/imap-smtp/definition.d.ts +7 -0
  21. package/dist/server/adapters/imap-smtp/definition.d.ts.map +1 -1
  22. package/dist/server/adapters/imap-smtp/definition.js +19 -11
  23. package/dist/server/adapters/imap-smtp/definition.js.map +1 -1
  24. package/dist/server/adapters/imap-smtp/locators.d.ts +7 -0
  25. package/dist/server/adapters/imap-smtp/locators.d.ts.map +1 -1
  26. package/dist/server/adapters/imap-smtp/locators.js +53 -3
  27. package/dist/server/adapters/imap-smtp/locators.js.map +1 -1
  28. package/dist/server/adapters/imap-smtp/types.d.ts +87 -0
  29. package/dist/server/adapters/imap-smtp/types.d.ts.map +1 -1
  30. package/dist/server/operations/message-mutations.d.ts.map +1 -1
  31. package/dist/server/operations/message-mutations.js +57 -5
  32. package/dist/server/operations/message-mutations.js.map +1 -1
  33. package/dist/server/operations/sync-mailbox.d.ts.map +1 -1
  34. package/dist/server/operations/sync-mailbox.js +26 -10
  35. package/dist/server/operations/sync-mailbox.js.map +1 -1
  36. package/dist/server/providers/mail-builtins.d.ts.map +1 -1
  37. package/dist/server/providers/mail-builtins.js +6 -2
  38. package/dist/server/providers/mail-builtins.js.map +1 -1
  39. package/dist/server/store/attachments.d.ts.map +1 -1
  40. package/dist/server/store/attachments.js +3 -0
  41. package/dist/server/store/attachments.js.map +1 -1
  42. package/dist/server/store/message-writes.d.ts +24 -1
  43. package/dist/server/store/message-writes.d.ts.map +1 -1
  44. package/dist/server/store/message-writes.js +357 -1
  45. package/dist/server/store/message-writes.js.map +1 -1
  46. package/dist/server/store/messages.d.ts.map +1 -1
  47. package/dist/server/store/messages.js +11 -3
  48. package/dist/server/store/messages.js.map +1 -1
  49. package/dist/server/store/rows.d.ts +20 -0
  50. package/dist/server/store/rows.d.ts.map +1 -1
  51. package/dist/server/store/sync.d.ts +7 -1
  52. package/dist/server/store/sync.d.ts.map +1 -1
  53. package/dist/server/store/sync.js +333 -7
  54. package/dist/server/store/sync.js.map +1 -1
  55. package/package.json +14 -13
@@ -1 +1 @@
1
- {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../server/store/rows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../server/store/rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,qBAAsB,SAAQ,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,MAAM,CAAC;IACpC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,GAAG;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAS,SAAQ,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,4BAA4B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,GAAG;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAa,SAAQ,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,UAAW,SAAQ,GAAG;IACrC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,UAAU,EACN;QACE,QAAQ,CAAC,EAAE,EAAE,SAAS,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,EAAE,EAAE,SAAS,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,GAAG,EAAE,SAAS,WAAW,EAAE,CAAC;KACtC,GACD,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,wBAAwB,EAAE,GAAG,MAAM,CAAC;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,4BAA4B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAgB,SAAQ,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,GAAG;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAW,SAAQ,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,aAAc,SAAQ,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAC9C,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B"}
@@ -1,6 +1,7 @@
1
1
  import { type DatabaseManager } from '@nocobase/db';
2
2
  import { type MailOffsetPage, type MailProviderError, type MailSyncCursor, type MailSyncRun } from '../../shared/mail.js';
3
3
  import { type MailCreateSyncRunInput, type MailStore, type MailSyncBatch, type MailSyncStepCommit } from '../contracts/persistence.js';
4
+ import type { ImapLocationPersistence, ImapSyncEvidence } from '../adapters/imap-smtp/types.js';
4
5
  export declare class MailSyncStore {
5
6
  private readonly database;
6
7
  private readonly accounts;
@@ -20,8 +21,13 @@ export declare class MailSyncStore {
20
21
  cancelSyncRun(syncRunId: string): Promise<MailSyncRun | undefined>;
21
22
  claimSyncRun(syncRunId: string, expectedRevision: number, expectedPhase: MailSyncRun['phase'], leaseToken: string, leaseExpiresAt: string): Promise<MailSyncRun | undefined>;
22
23
  renewSyncRunLease(syncRunId: string, leaseToken: string, leaseExpiresAt: string): Promise<boolean>;
23
- commitSyncStep(input: MailSyncStepCommit): Promise<MailSyncRun>;
24
+ commitSyncStep(input: MailSyncStepCommit, imap?: ImapSyncEvidence): Promise<MailSyncRun>;
24
25
  failSyncRun(run: MailSyncRun, error: MailProviderError): Promise<MailSyncRun>;
25
26
  releaseSyncRun(run: MailSyncRun, error: MailProviderError, availableAt: string): Promise<MailSyncRun>;
26
27
  }
28
+ /**
29
+ * Narrow persistence for one account's IMAP adapter. Reads are scoped to the
30
+ * account; every commit locks it and rechecks the copy inside its transaction.
31
+ */
32
+ export declare function createImapLocationPersistence(database: DatabaseManager, accountId: string): ImapLocationPersistence;
27
33
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../server/store/sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAoBrC,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,cAAc,CAAC;IAG9D,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBpD,aAAa,CACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAYzB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAU/D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,aAAa,CACxB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,WAAW,CAAC;IA6CV,iBAAiB,CAC5B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAYtB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAU/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB9C,YAAY,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,SAAI,EACV,KAAK,SAAM,GACV,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAqBrB,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAwBvC,6FAA6F;IAChF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwF7C,aAAa,CACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAyBtB,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,EACnC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAoBtB,iBAAiB,CAC5B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC;IAYN,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IA2N/D,WAAW,CACtB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,WAAW,CAAC;IAqBV,cAAc,CACzB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC;CAiCxB"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../server/store/sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,cAAc,CAAC;AAEvE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAiBrC,OAAO,KAAK,EAEV,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AAaxC,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,cAAc,CAAC;IAG9D,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBpD,aAAa,CACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAYzB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAU/D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,aAAa,CACxB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,WAAW,CAAC;IA6CV,iBAAiB,CAC5B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAYtB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAU/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB9C,YAAY,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,SAAI,EACV,KAAK,SAAM,GACV,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAqBrB,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAwBvC,6FAA6F;IAChF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwF7C,aAAa,CACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAyBtB,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,EACnC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAoBtB,iBAAiB,CAC5B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC;IAYN,cAAc,CACzB,KAAK,EAAE,kBAAkB,EACzB,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,WAAW,CAAC;IAkQV,WAAW,CACtB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,WAAW,CAAC;IAqBV,cAAc,CACzB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC;CAiCxB;AAID;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,GAChB,uBAAuB,CAkWzB"}
@@ -3,7 +3,9 @@ import { validateLogPagination } from '../log-pagination.js';
3
3
  import { randomUUID } from 'node:crypto';
4
4
  import { MAIL_LOCAL_DRAFT_FOLDER_ID, } from '../../shared/mail.js';
5
5
  import { fromSyncRunRow, toSyncRunRow } from './mappers.js';
6
- import { deleteMessages, removeMessagesFromFolders, removeStaleMessageFolders, upsertFolders, upsertMessages, } from './message-writes.js';
6
+ import { applyImapLocationChanges, deleteImapOrphans, deleteMessages, refreshImapMessages, removeMessagesFromFolders, removeStaleMessageFolders, upsertFolders, upsertImapMessages, upsertMessages, validateImapStoredLocation, validateImapCopyEvidence, } from './message-writes.js';
7
+ import { MailAccountsStore } from './accounts.js';
8
+ import { closeDrafts } from './draft-states.js';
7
9
  import { chunks, jsonOrNull, parseJson } from './serialization.js';
8
10
  import { insertOutbox, upsertSyncState } from './sync-writes.js';
9
11
  export class MailSyncStore {
@@ -294,10 +296,12 @@ export class MailSyncStore {
294
296
  .execute();
295
297
  return result.updatedCount === 1;
296
298
  }
297
- async commitSyncStep(input) {
299
+ async commitSyncStep(input, imap) {
298
300
  const now = new Date().toISOString();
299
301
  await this.database.transaction(async (connection) => {
300
302
  await lockWritableAccount(connection.query, input.run.accountId);
303
+ for (const copy of imap?.copies ?? [])
304
+ validateImapCopyEvidence(copy);
301
305
  await upsertFolders(connection.query, input.run.accountId, input.folders ?? []);
302
306
  if (input.completeProviderFolderIds) {
303
307
  let staleFolders = connection.query
@@ -321,9 +325,17 @@ export class MailSyncStore {
321
325
  const deletedIds = new Set(removed.map((row) => row.providerMessageId));
322
326
  messages = messages.filter((message) => !deletedIds.has(message.providerMessageId));
323
327
  }
324
- await upsertMessages(connection.query, input.run.accountId, messages, input.historyPage
328
+ const preserveUpdatedAfter = input.historyPage
325
329
  ? (input.run.historyStartedAt ?? input.run.createdAt)
326
- : undefined);
330
+ : undefined;
331
+ if (imap) {
332
+ const kept = new Set(messages.map((message) => message.providerMessageId));
333
+ await upsertImapMessages(connection.query, input.run.accountId, messages, imap.copies.filter((copy) => copy.flagsOnly || kept.has(copy.providerMessageId)), input.run.id, preserveUpdatedAfter);
334
+ await applyImapLocationChanges(connection.query, input.run.accountId, imap.changes, input.run.id);
335
+ }
336
+ else {
337
+ await upsertMessages(connection.query, input.run.accountId, messages, preserveUpdatedAfter);
338
+ }
327
339
  if (input.run.mode === 'initial' && !input.historyPage) {
328
340
  const affectedIds = [
329
341
  ...new Set([
@@ -364,6 +376,11 @@ export class MailSyncStore {
364
376
  .where('requestToken', '=', pendingPush.requestToken)
365
377
  .execute();
366
378
  }
379
+ // Only the step that finishes the run, after every batch and two
380
+ // matching verification passes, may remove messages without copies.
381
+ if (imap?.cleanup && input.status === 'completed' && !pendingPush) {
382
+ await deleteImapOrphans(connection.query, input.run.accountId, input.run.id);
383
+ }
367
384
  const pending = await connection.query
368
385
  .selectFrom('mailMessages')
369
386
  .select(({ fn }) => [fn.countAll().as('count')])
@@ -379,7 +396,7 @@ export class MailSyncStore {
379
396
  // Refresh folder metadata too: a send may have created the Sent folder.
380
397
  const phase = pendingPush ? 'preparing' : input.phase;
381
398
  const createNextTask = pendingPush || input.createNextTask;
382
- const result = await connection.query
399
+ let fenced = connection.query
383
400
  .updateTable('mailSyncRuns')
384
401
  .set({
385
402
  phase,
@@ -423,8 +440,14 @@ export class MailSyncStore {
423
440
  })
424
441
  .where('id', '=', input.run.id)
425
442
  .where('status', '=', 'running')
426
- .where('leaseToken', '=', input.run.leaseToken ?? '')
427
- .execute();
443
+ .where('leaseToken', '=', input.run.leaseToken ?? '');
444
+ // IMAP location writes also require the claimed revision and a live lease.
445
+ if (imap)
446
+ fenced = fenced
447
+ .where('revision', '=', input.run.revision)
448
+ .where('phase', '=', input.run.phase)
449
+ .where('leaseExpiresAt', '>', new Date().toISOString());
450
+ const result = await fenced.execute();
428
451
  if (result.updatedCount !== 1) {
429
452
  throw new Error('Mail sync run lease was lost before commit.');
430
453
  }
@@ -505,4 +528,307 @@ export class MailSyncStore {
505
528
  return updated;
506
529
  }
507
530
  }
531
+ const IMAP_LOCATIONS = 'mailMessageImapLocations';
532
+ /**
533
+ * Narrow persistence for one account's IMAP adapter. Reads are scoped to the
534
+ * account; every commit locks it and rechecks the copy inside its transaction.
535
+ */
536
+ export function createImapLocationPersistence(database, accountId) {
537
+ const sync = new MailSyncStore(database, new MailAccountsStore(database));
538
+ const resolve = async (query, rows) => {
539
+ const ids = [...new Set(rows.map((row) => row.messageId))];
540
+ const messages = new Map();
541
+ for (const batch of chunks(ids, 100)) {
542
+ for (const row of await query
543
+ .selectFrom('mailMessages')
544
+ .select([
545
+ 'id',
546
+ 'providerMessageId',
547
+ 'providerDraftMessageId',
548
+ 'imapIdSource',
549
+ 'providerDraftMessageIdSource',
550
+ ])
551
+ .where('accountId', '=', accountId)
552
+ .where('id', 'in', batch)
553
+ .execute())
554
+ messages.set(row.id, row);
555
+ }
556
+ return rows.flatMap((row) => {
557
+ const message = messages.get(row.messageId);
558
+ if (!message)
559
+ return [];
560
+ const location = toStoredLocation(row, message);
561
+ validateImapStoredLocation(location);
562
+ return [location];
563
+ });
564
+ };
565
+ const select = (query) => query
566
+ .selectFrom(IMAP_LOCATIONS)
567
+ .selectAll()
568
+ .where('accountId', '=', accountId);
569
+ /** Recheck a copy under the account lock before writing its effect. */
570
+ const current = async (query, location) => {
571
+ validateImapStoredLocation(location);
572
+ await lockWritableAccount(query, accountId);
573
+ const row = await select(query)
574
+ .where('id', '=', location.id)
575
+ .where('messageId', '=', location.messageId)
576
+ .where('status', '=', 'valid')
577
+ .executeTakeFirst();
578
+ const [stored] = row ? await resolve(query, [row]) : [];
579
+ if (!stored ||
580
+ stored.providerMessageId !== location.providerMessageId ||
581
+ stored.uid !== location.uid ||
582
+ stored.uidValidity !== location.uidValidity ||
583
+ stored.folder !== location.folder ||
584
+ stored.source !== location.source ||
585
+ stored.updatedAt !== location.updatedAt)
586
+ throw Object.assign(new Error('The IMAP copy changed before its result was saved.'), { code: 'IMAP_MESSAGE_COPY_CHANGED' });
587
+ return stored;
588
+ };
589
+ async function commitFlags(location, flags, check) {
590
+ await database.transaction(async ({ query }) => {
591
+ if ((flags.read !== undefined && typeof flags.read !== 'boolean') ||
592
+ (flags.starred !== undefined && typeof flags.starred !== 'boolean'))
593
+ throw new Error('Invalid IMAP flag evidence.');
594
+ const stored = await current(query, location);
595
+ await check?.(query);
596
+ await query
597
+ .updateTable(IMAP_LOCATIONS)
598
+ .set({
599
+ ...(flags.read === undefined ? {} : { read: flags.read }),
600
+ ...(flags.starred === undefined ? {} : { starred: flags.starred }),
601
+ updatedAt: new Date(Math.max(Date.now(), Date.parse(stored.updatedAt) + 1)).toISOString(),
602
+ })
603
+ .where('id', '=', stored.id)
604
+ .execute();
605
+ await refreshImapMessages(query, accountId, [stored.messageId], undefined, new Date().toISOString());
606
+ });
607
+ }
608
+ async function commitDeleted(location, check) {
609
+ await database.transaction(async ({ query }) => {
610
+ const stored = await current(query, location);
611
+ await check?.(query);
612
+ const now = new Date(Math.max(Date.now(), Date.parse(stored.updatedAt) + 1)).toISOString();
613
+ await query
614
+ .updateTable(IMAP_LOCATIONS)
615
+ .set({
616
+ status: 'invalid',
617
+ invalidationReason: 'deleted',
618
+ updatedAt: now,
619
+ })
620
+ .where('id', '=', stored.id)
621
+ .execute();
622
+ const remaining = await select(query)
623
+ .where('messageId', '=', stored.messageId)
624
+ .where('status', 'in', ['valid', 'pending'])
625
+ .executeTakeFirst();
626
+ const message = await query
627
+ .selectFrom('mailMessages')
628
+ .select([
629
+ 'providerMessageId',
630
+ 'imapIdSource',
631
+ 'scheduledSubmissionId',
632
+ 'draft',
633
+ ])
634
+ .where('accountId', '=', accountId)
635
+ .where('id', '=', stored.messageId)
636
+ .executeTakeFirst();
637
+ // Local and scheduled drafts stay; their own deletion path decides.
638
+ if (!remaining &&
639
+ message?.imapIdSource &&
640
+ !message.scheduledSubmissionId) {
641
+ // A deleted remote draft is closed so a late copy cannot revive it.
642
+ if (message.draft)
643
+ await closeDrafts(query, accountId, stored.messageId);
644
+ else
645
+ await deleteMessages(query, accountId, [message.providerMessageId]);
646
+ }
647
+ else
648
+ await refreshImapMessages(query, accountId, [stored.messageId], undefined, now);
649
+ });
650
+ }
651
+ const persistence = {
652
+ accountId,
653
+ async findAttachment(location, providerAttachmentId) {
654
+ validateImapStoredLocation(location);
655
+ const row = await database
656
+ .query()
657
+ .selectFrom('mailMessages')
658
+ .selectAll()
659
+ .where('accountId', '=', accountId)
660
+ .where('id', '=', location.messageId)
661
+ .executeTakeFirst();
662
+ const id = row?.providerMessageId.startsWith('local-draft:')
663
+ ? row.providerDraftMessageId
664
+ : row?.providerMessageId;
665
+ if (!row || id !== location.providerMessageId)
666
+ return undefined;
667
+ const attachments = parseJson(row.attachments, 'attachments');
668
+ return attachments.find((attachment) => attachment.providerAttachmentId === providerAttachmentId);
669
+ },
670
+ async bindMessage(messageId, providerMessageId, operation) {
671
+ const query = database.query();
672
+ const row = await query
673
+ .selectFrom('mailMessages')
674
+ .selectAll()
675
+ .where('accountId', '=', accountId)
676
+ .where('id', '=', messageId)
677
+ .executeTakeFirst();
678
+ const remote = row?.providerMessageId.startsWith('local-draft:')
679
+ ? row.providerDraftMessageId
680
+ : row?.providerMessageId;
681
+ if (!row || remote !== providerMessageId)
682
+ throw new Error('The IMAP operation target changed.');
683
+ const source = remote === row.providerDraftMessageId
684
+ ? row.providerDraftMessageIdSource
685
+ : row.imapIdSource;
686
+ if (!source ||
687
+ !['objectid', 'x-gm-msgid', 'rfc-message-id', 'locator'].includes(source))
688
+ throw new Error('The IMAP operation target has no verified identity source.');
689
+ const target = Object.freeze({
690
+ accountId,
691
+ messageId,
692
+ providerMessageId,
693
+ source: source,
694
+ operation,
695
+ });
696
+ const check = async (q) => {
697
+ const owner = await q
698
+ .selectFrom('mailMessages')
699
+ .selectAll()
700
+ .where('accountId', '=', target.accountId)
701
+ .where('id', '=', target.messageId)
702
+ .executeTakeFirst();
703
+ const id = owner?.providerMessageId.startsWith('local-draft:')
704
+ ? owner.providerDraftMessageId
705
+ : owner?.providerMessageId;
706
+ const currentSource = id === owner?.providerDraftMessageId
707
+ ? owner?.providerDraftMessageIdSource
708
+ : owner?.imapIdSource;
709
+ if (!owner ||
710
+ id !== target.providerMessageId ||
711
+ currentSource !== target.source ||
712
+ owner.scheduledSubmissionId)
713
+ throw new Error('The IMAP operation target changed.');
714
+ };
715
+ const bound = {
716
+ ...persistence,
717
+ async listValidLocations(id) {
718
+ if (id !== target.providerMessageId)
719
+ throw new Error('The IMAP operation identity changed.');
720
+ await check(database.query());
721
+ return (await persistence.listValidLocations(id)).filter((location) => location.messageId === target.messageId &&
722
+ location.source === target.source);
723
+ },
724
+ async commitFlags(location, flags) {
725
+ if (target.operation !== 'flags' ||
726
+ location.messageId !== target.messageId)
727
+ throw new Error('Invalid IMAP operation target.');
728
+ await commitFlags(location, flags, check);
729
+ },
730
+ async commitDeleted(location) {
731
+ if (target.operation !== 'delete' ||
732
+ location.messageId !== target.messageId)
733
+ throw new Error('Invalid IMAP operation target.');
734
+ await commitDeleted(location, check);
735
+ },
736
+ };
737
+ return { persistence: bound, snapshot: target };
738
+ },
739
+ async findLocations(tuples) {
740
+ const found = [];
741
+ for (const tuple of tuples) {
742
+ const row = await select(database.query())
743
+ .where('providerFolderId', '=', tuple.folder)
744
+ .where('uidValidity', '=', tuple.uidValidity)
745
+ .where('uid', '=', tuple.uid)
746
+ .executeTakeFirst();
747
+ if (row)
748
+ found.push(row);
749
+ }
750
+ return resolve(database.query(), found);
751
+ },
752
+ async findMessageSources(providerMessageIds) {
753
+ const sources = new Map();
754
+ for (const ids of chunks(providerMessageIds, 100)) {
755
+ const rows = await database
756
+ .query()
757
+ .selectFrom('mailMessages')
758
+ .select([
759
+ 'providerMessageId',
760
+ 'providerDraftMessageId',
761
+ 'imapIdSource',
762
+ 'providerDraftMessageIdSource',
763
+ ])
764
+ .where('accountId', '=', accountId)
765
+ .where((builder) => builder.or([
766
+ builder('providerMessageId', 'in', ids),
767
+ builder('providerDraftMessageId', 'in', ids),
768
+ ]))
769
+ .execute();
770
+ for (const row of rows) {
771
+ if (ids.includes(row.providerMessageId))
772
+ sources.set(row.providerMessageId, (row.imapIdSource ?? undefined));
773
+ if (row.providerDraftMessageId &&
774
+ ids.includes(row.providerDraftMessageId))
775
+ sources.set(row.providerDraftMessageId, (row.providerDraftMessageIdSource ?? undefined));
776
+ }
777
+ }
778
+ return sources;
779
+ },
780
+ async listValidLocations(providerMessageId) {
781
+ const query = database.query();
782
+ const messages = await query
783
+ .selectFrom('mailMessages')
784
+ .select('id')
785
+ .where('accountId', '=', accountId)
786
+ .where((builder) => builder.or([
787
+ builder('providerMessageId', '=', providerMessageId),
788
+ builder('providerDraftMessageId', '=', providerMessageId),
789
+ ]))
790
+ .execute();
791
+ if (messages.length === 0)
792
+ return [];
793
+ const rows = await select(query)
794
+ .where('messageId', 'in', messages.map((message) => message.id))
795
+ .where('status', '=', 'valid')
796
+ .orderBy('createdAt', 'asc')
797
+ .orderBy('id', 'asc')
798
+ .execute();
799
+ return (await resolve(query, rows)).filter((location) => location.providerMessageId === providerMessageId);
800
+ },
801
+ async listKnownLocations() {
802
+ const query = database.query();
803
+ const rows = await select(query).execute();
804
+ return resolve(query, rows);
805
+ },
806
+ commitFlags,
807
+ commitDeleted,
808
+ commitSyncStep(input, evidence) {
809
+ if (input.run.accountId !== accountId)
810
+ throw new Error('Mail sync run belongs to another account.');
811
+ return sync.commitSyncStep(input, evidence);
812
+ },
813
+ };
814
+ return persistence;
815
+ }
816
+ function toStoredLocation(row, message) {
817
+ // A localized draft keeps its remote copy under the remote draft identity.
818
+ const draft = message.providerMessageId.startsWith('local-draft:') &&
819
+ message.providerDraftMessageId;
820
+ return {
821
+ id: row.id,
822
+ messageId: row.messageId,
823
+ folder: row.providerFolderId,
824
+ uidValidity: String(row.uidValidity),
825
+ uid: Number(row.uid),
826
+ status: row.status,
827
+ updatedAt: new Date(row.updatedAt).toISOString(),
828
+ providerMessageId: draft || message.providerMessageId,
829
+ source: ((draft
830
+ ? message.providerDraftMessageIdSource
831
+ : message.imapIdSource) ?? undefined),
832
+ };
833
+ }
508
834
  //# sourceMappingURL=sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../server/store/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../server/store/sync.ts"],"names":[],"mappings":"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"}