fluxmail 0.4.1 → 0.6.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 (147) hide show
  1. package/README.md +6 -4
  2. package/dist/accounts/defaultGoogleOAuth.d.ts +4 -0
  3. package/dist/accounts/defaultGoogleOAuth.d.ts.map +1 -0
  4. package/dist/accounts/defaultGoogleOAuth.js +7 -0
  5. package/dist/accounts/defaultGoogleOAuth.js.map +1 -0
  6. package/dist/accounts/gmailConnection.js +2 -2
  7. package/dist/accounts/gmailConnection.js.map +1 -1
  8. package/dist/accounts/googleAuth.d.ts +16 -9
  9. package/dist/accounts/googleAuth.d.ts.map +1 -1
  10. package/dist/accounts/googleAuth.js +52 -20
  11. package/dist/accounts/googleAuth.js.map +1 -1
  12. package/dist/accounts/microsoftAuth.d.ts +5 -2
  13. package/dist/accounts/microsoftAuth.d.ts.map +1 -1
  14. package/dist/accounts/microsoftAuth.js +25 -22
  15. package/dist/accounts/microsoftAuth.js.map +1 -1
  16. package/dist/accounts/registry.d.ts +11 -9
  17. package/dist/accounts/registry.d.ts.map +1 -1
  18. package/dist/accounts/registry.js +169 -98
  19. package/dist/accounts/registry.js.map +1 -1
  20. package/dist/auth.d.ts +106 -0
  21. package/dist/auth.d.ts.map +1 -0
  22. package/dist/auth.js +455 -0
  23. package/dist/auth.js.map +1 -0
  24. package/dist/authorization.d.ts +9 -0
  25. package/dist/authorization.d.ts.map +1 -0
  26. package/dist/authorization.js +23 -0
  27. package/dist/authorization.js.map +1 -0
  28. package/dist/cli.d.ts +15 -1
  29. package/dist/cli.d.ts.map +1 -1
  30. package/dist/cli.js +1096 -403
  31. package/dist/cli.js.map +1 -1
  32. package/dist/cliInstances.d.ts +51 -0
  33. package/dist/cliInstances.d.ts.map +1 -0
  34. package/dist/cliInstances.js +237 -0
  35. package/dist/cliInstances.js.map +1 -0
  36. package/dist/cliMail.d.ts +9 -0
  37. package/dist/cliMail.d.ts.map +1 -0
  38. package/dist/cliMail.js +450 -0
  39. package/dist/cliMail.js.map +1 -0
  40. package/dist/config.d.ts +95 -118
  41. package/dist/config.d.ts.map +1 -1
  42. package/dist/config.js +351 -286
  43. package/dist/config.js.map +1 -1
  44. package/dist/configMigration.d.ts +8 -0
  45. package/dist/configMigration.d.ts.map +1 -0
  46. package/dist/configMigration.js +234 -0
  47. package/dist/configMigration.js.map +1 -0
  48. package/dist/context.d.ts +8 -2
  49. package/dist/context.d.ts.map +1 -1
  50. package/dist/context.js +29 -8
  51. package/dist/context.js.map +1 -1
  52. package/dist/deploymentConfig.d.ts +190 -0
  53. package/dist/deploymentConfig.d.ts.map +1 -0
  54. package/dist/deploymentConfig.js +539 -0
  55. package/dist/deploymentConfig.js.map +1 -0
  56. package/dist/http/admin.d.ts +75 -3
  57. package/dist/http/admin.d.ts.map +1 -1
  58. package/dist/http/admin.js +347 -79
  59. package/dist/http/admin.js.map +1 -1
  60. package/dist/http/app.d.ts +4 -1
  61. package/dist/http/app.d.ts.map +1 -1
  62. package/dist/http/app.js +119 -63
  63. package/dist/http/app.js.map +1 -1
  64. package/dist/http/identity.d.ts +114 -0
  65. package/dist/http/identity.d.ts.map +1 -0
  66. package/dist/http/identity.js +936 -0
  67. package/dist/http/identity.js.map +1 -0
  68. package/dist/http/operationRoutes.d.ts +8 -0
  69. package/dist/http/operationRoutes.d.ts.map +1 -0
  70. package/dist/http/operationRoutes.js +13 -0
  71. package/dist/http/operationRoutes.js.map +1 -0
  72. package/dist/http/rest.d.ts +16 -4
  73. package/dist/http/rest.d.ts.map +1 -1
  74. package/dist/http/rest.js +213 -71
  75. package/dist/http/rest.js.map +1 -1
  76. package/dist/index.d.ts +5 -3
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +5 -3
  79. package/dist/index.js.map +1 -1
  80. package/dist/instanceConfig.d.ts +36 -0
  81. package/dist/instanceConfig.d.ts.map +1 -0
  82. package/dist/instanceConfig.js +157 -0
  83. package/dist/instanceConfig.js.map +1 -0
  84. package/dist/licensing/activation.d.ts +2 -1
  85. package/dist/licensing/activation.d.ts.map +1 -1
  86. package/dist/licensing/activation.js +2 -3
  87. package/dist/licensing/activation.js.map +1 -1
  88. package/dist/licensing/entitlements.d.ts.map +1 -1
  89. package/dist/licensing/entitlements.js +2 -2
  90. package/dist/licensing/entitlements.js.map +1 -1
  91. package/dist/licensing/refresher.d.ts +6 -1
  92. package/dist/licensing/refresher.d.ts.map +1 -1
  93. package/dist/licensing/refresher.js +18 -7
  94. package/dist/licensing/refresher.js.map +1 -1
  95. package/dist/logging.d.ts +87 -0
  96. package/dist/logging.d.ts.map +1 -0
  97. package/dist/logging.js +612 -0
  98. package/dist/logging.js.map +1 -0
  99. package/dist/mcp/buildServer.d.ts +3 -1
  100. package/dist/mcp/buildServer.d.ts.map +1 -1
  101. package/dist/mcp/buildServer.js +27 -24
  102. package/dist/mcp/buildServer.js.map +1 -1
  103. package/dist/permissions.d.ts +1 -1
  104. package/dist/permissions.d.ts.map +1 -1
  105. package/dist/permissions.js +10 -4
  106. package/dist/permissions.js.map +1 -1
  107. package/dist/scheduler/sendScheduler.d.ts +4 -3
  108. package/dist/scheduler/sendScheduler.d.ts.map +1 -1
  109. package/dist/scheduler/sendScheduler.js +15 -3
  110. package/dist/scheduler/sendScheduler.js.map +1 -1
  111. package/dist/service/emailService.d.ts +10 -17
  112. package/dist/service/emailService.d.ts.map +1 -1
  113. package/dist/service/emailService.js +28 -38
  114. package/dist/service/emailService.js.map +1 -1
  115. package/dist/storage/adminAudit.d.ts +15 -2
  116. package/dist/storage/adminAudit.d.ts.map +1 -1
  117. package/dist/storage/adminAudit.js +22 -27
  118. package/dist/storage/adminAudit.js.map +1 -1
  119. package/dist/storage/apiKeys.d.ts +8 -8
  120. package/dist/storage/apiKeys.d.ts.map +1 -1
  121. package/dist/storage/apiKeys.js +16 -11
  122. package/dist/storage/apiKeys.js.map +1 -1
  123. package/dist/storage/db.d.ts +596 -31
  124. package/dist/storage/db.d.ts.map +1 -1
  125. package/dist/storage/db.js +383 -45
  126. package/dist/storage/db.js.map +1 -1
  127. package/dist/storage/fileLock.d.ts +7 -0
  128. package/dist/storage/fileLock.d.ts.map +1 -0
  129. package/dist/storage/fileLock.js +183 -0
  130. package/dist/storage/fileLock.js.map +1 -0
  131. package/dist/storage/gmailConnectionGrants.d.ts +3 -4
  132. package/dist/storage/gmailConnectionGrants.d.ts.map +1 -1
  133. package/dist/storage/gmailConnectionGrants.js +6 -6
  134. package/dist/storage/gmailConnectionGrants.js.map +1 -1
  135. package/dist/storage/members.d.ts +11 -0
  136. package/dist/storage/members.d.ts.map +1 -1
  137. package/dist/storage/members.js +70 -6
  138. package/dist/storage/members.js.map +1 -1
  139. package/dist/telemetry.d.ts +17 -2
  140. package/dist/telemetry.d.ts.map +1 -1
  141. package/dist/telemetry.js +34 -19
  142. package/dist/telemetry.js.map +1 -1
  143. package/dist/updateNotifier.d.ts +18 -0
  144. package/dist/updateNotifier.d.ts.map +1 -0
  145. package/dist/updateNotifier.js +128 -0
  146. package/dist/updateNotifier.js.map +1 -0
  147. package/package.json +38 -5
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1D,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;AASvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,gBAAgB,EAAE;QAChB,YAAY,EAAE,oBAAoB;QAClC,WAAW,EAAE,yBAAyB;KACvC;IACD,oBAAoB,EAAE;QACpB,YAAY,EAAE,oBAAoB;QAClC,WAAW,EAAE,6BAA6B;QAC1C,MAAM,EAAE,IAAI;KACb;IACD,mBAAmB,EAAE;QACnB,YAAY,EAAE,sBAAsB;QACpC,WAAW,EAAE,wCAAwC;KACtD;IACD,uBAAuB,EAAE;QACvB,YAAY,EAAE,yCAAyC;QACvD,WAAW,EAAE,4CAA4C;QACzD,MAAM,EAAE,IAAI;KACb;IACD,mBAAmB,EAAE;QACnB,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,+CAA+C;KAC7D;IACD,iBAAiB,EAAE;QACjB,YAAY,EAAE,+BAA+B;QAC7C,WAAW,EAAE,iFAAiF;KAC/F;IACD,gBAAgB,EAAE;QAChB,YAAY,EAAE,wBAAwB;QACtC,WAAW,EAAE,oCAAoC;KAClD;IACD,uBAAuB,EAAE;QACvB,YAAY,EAAE,yBAAyB;QACvC,WAAW,EAAE,sEAAsE;QACnF,MAAM,EAAE,IAAI;KACb;IACD,aAAa,EAAE;QACb,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,mBAAmB;KACjC;IACD,mBAAmB,EAAE;QACnB,YAAY,EAAE,kCAAkC;QAChD,WAAW,EAAE,gEAAgE;KAC9E;IACD,aAAa,EAAE;QACb,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,4EAA4E;KAC1F;IACD,mBAAmB,EAAE;QACnB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,6CAA6C;KAC3D;IACD,mBAAmB,EAAE;QACnB,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,qDAAqD;KACnE;IACD,0BAA0B,EAAE;QAC1B,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,gFAAgF;KAC9F;IACD,oBAAoB,EAAE;QACpB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,wEAAwE;QACrF,MAAM,EAAE,IAAI;KACb;IACD,kBAAkB,EAAE;QAClB,YAAY,EAAE,GAAG;QACjB,WAAW,EAAE,oEAAoE;KAClF;IACD,YAAY,EAAE;QACZ,YAAY,EAAE,OAAO;QACrB,WAAW,EAAE,iDAAiD;KAC/D;IACD,2BAA2B,EAAE;QAC3B,YAAY,EAAE,0BAA0B;QACxC,WAAW,EAAE,uEAAuE;QACpF,UAAU,EAAE,KAAK;KAClB;CACsD,CAAC;AAI1D,SAAS,eAAe,CAAC,IAA2B;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAuCD,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;YAC5C,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,iDAAiD;IACjD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,yFAAyF;IACzF,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC7D,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,MAAM,GAAG,GAAG,OAAO;aAChB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACZ,IAAI,EAAE;aACN,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,GAAG;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC5C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,cAAc;IAC5B,UAAU,EAAE,CAAC;IACb,MAAM,OAAO,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;IAClF,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,kHAAkH;AAClH,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,GAAW,EAAE,KAAa;IACzE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,gDAAgD,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;IACpH,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,GAAW;IAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,KAAa;IAC9D,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,MAA8B;IACxE,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,YAAoB;IAC9D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,IAA6C,EAAE,QAAgB;IAC/E,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iDAAiD,GAAG,GAAG,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,GAAG,GAAG,eAAe,CAAC,4BAA4B,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,4BAA4B,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,kBAAkB,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,+DAA+D,gBAAgB,UAAU,GAAG,GAAG,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,KAAK,GAAG,kBAAkB,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,oBAAoB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzG,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+DAA+D,KAAK,GAAG,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,oDAAoD,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;IAC3D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,mBAAmB,CAAC,OAAO,EAAE,sEAAsE,CAAC,CAAC;IAC9G,CAAC;IACD,8EAA8E;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,mBAAmB,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,6BAA6B,OAAO,EAAE,CAAC,CAAC;QAC9G,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5B,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,2EAA2E;IAC3E,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,yBAAyB,GAAG,eAAe,CAAC,sBAAsB,CAAC,KAAK,SAAS,CAAC;IACxF,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,mBAAmB,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,SAAS,CAAC;IACjF,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC;IACjE,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,kDAAkD,WAAW,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,MAAM,GAAmB;QAC7B,OAAO;QACP,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QACnF,aAAa,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACzC,IAAI;QACJ,SAAS;QACT,mBAAmB;QACnB,SAAS;QACT,SAAS,EAAE,eAAe,CAAC,qBAAqB,CAAC,IAAI,WAAW;QAChE,QAAQ,EAAE,WAAW;QACrB,kBAAkB,EAAE,sBAAsB,EAAE;QAC5C,gBAAgB,EAAE,CAAC,eAAe,CAAC,6BAA6B,CAAC,IAAI,0BAA0B,CAAC,CAAC,OAAO,CACtG,MAAM,EACN,EAAE,CACH;KACF,CAAC;IAEF,MAAM,UAAU,GAAG,eAAe,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;IAC/D,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAC7D,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,iBAAiB,GAAG,eAAe,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC;IACzE,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,qBAAqB,GAAG,eAAe,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC;QACjF,MAAM,CAAC,SAAS,GAAG;YACjB,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,eAAe,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,QAAQ;YACpE,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function parseEnvContent(content: string): Record<string, string>;
2
+ export declare function recognizedMigrationSettings(values: Record<string, string>): string[];
3
+ export interface ConfigMigrationResult {
4
+ source: string;
5
+ recognized: string[];
6
+ }
7
+ export declare function migrateConfigurationFile(sourceFile: string): ConfigMigrationResult;
8
+ //# sourceMappingURL=configMigration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configMigration.d.ts","sourceRoot":"","sources":["../src/configMigration.ts"],"names":[],"mappings":"AA0EA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcvE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAIpF;AAkFD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AA4FD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CAgBlF"}
@@ -0,0 +1,234 @@
1
+ import { existsSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { EmailError } from '@fluxmail/core';
4
+ import { deploymentToml, deploymentTomlValuesFromEnvironment, ensureDeploymentEncryptionKey, resolveDataDirectory, resolveDeploymentConfig, writeDeploymentConfig, } from './deploymentConfig.js';
5
+ import { InstanceConfigStore } from './instanceConfig.js';
6
+ import { DEFAULT_LICENSE_SERVER_URL } from './licensing/client.js';
7
+ import { IncompatibleStoreError, inspectStoreEncryptionKey, inspectStoreCompatibility, openDb, } from './storage/db.js';
8
+ import { withFileLock } from './storage/fileLock.js';
9
+ import { setTelemetryEnabled, telemetryOptedOut } from './telemetry.js';
10
+ const CONFIG_MIGRATION_LOCK_TIMEOUT_MS = 5 * 60_000;
11
+ const CONFIG_MIGRATION_LOCK_STALE_MS = 30 * 60_000;
12
+ const DEPLOYMENT_SETTING_NAMES = [
13
+ 'FLUXMAIL_DB_PATH',
14
+ 'FLUXMAIL_PORT',
15
+ 'FLUXMAIL_PUBLIC_URL',
16
+ 'FLUXMAIL_TRUST_PROXY',
17
+ 'FLUXMAIL_OAUTH_PORT',
18
+ 'FLUXMAIL_OAUTH_HOST',
19
+ 'FLUXMAIL_MAX_ATTACHMENT_MB',
20
+ 'FLUXMAIL_LICENSE_SERVER_URL',
21
+ ];
22
+ const MIGRATION_SETTING_NAMES = new Set([
23
+ ...DEPLOYMENT_SETTING_NAMES,
24
+ 'FLUXMAIL_DATA_DIR',
25
+ 'FLUXMAIL_ENCRYPTION_KEY',
26
+ 'GOOGLE_CLIENT_ID',
27
+ 'GOOGLE_CLIENT_SECRET',
28
+ 'MICROSOFT_CLIENT_ID',
29
+ 'MICROSOFT_CLIENT_SECRET',
30
+ 'MICROSOFT_TENANT_ID',
31
+ 'FLUXMAIL_LICENSE_KEY',
32
+ 'FLUXMAIL_TELEMETRY',
33
+ 'DO_NOT_TRACK',
34
+ ]);
35
+ function unquoteEnvValue(value) {
36
+ if (value.startsWith('"') && value.endsWith('"')) {
37
+ try {
38
+ const parsed = JSON.parse(value);
39
+ return typeof parsed === 'string' ? parsed : value.slice(1, -1);
40
+ }
41
+ catch {
42
+ return value.slice(1, -1);
43
+ }
44
+ }
45
+ if (value.startsWith("'") && value.endsWith("'"))
46
+ return value.slice(1, -1);
47
+ return value;
48
+ }
49
+ function parseEnvValue(raw) {
50
+ if ((raw.startsWith('"') && raw.endsWith('"')) || (raw.startsWith("'") && raw.endsWith("'"))) {
51
+ return unquoteEnvValue(raw);
52
+ }
53
+ const quoted = raw.match(/^("(?:[^"\\]|\\.)*"|'[^']*')\s+#/);
54
+ if (quoted?.[1])
55
+ return unquoteEnvValue(quoted[1]);
56
+ const comment = raw.search(/\s#/);
57
+ return comment === -1 ? raw : raw.slice(0, comment).trimEnd();
58
+ }
59
+ export function parseEnvContent(content) {
60
+ const out = {};
61
+ for (const line of content.split('\n')) {
62
+ const trimmed = line.trim();
63
+ if (!trimmed || trimmed.startsWith('#'))
64
+ continue;
65
+ const equals = trimmed.indexOf('=');
66
+ if (equals === -1)
67
+ continue;
68
+ const key = trimmed
69
+ .slice(0, equals)
70
+ .trim()
71
+ .replace(/^export\s+/, '');
72
+ if (key)
73
+ out[key] = parseEnvValue(trimmed.slice(equals + 1).trim());
74
+ }
75
+ return out;
76
+ }
77
+ export function recognizedMigrationSettings(values) {
78
+ return Object.keys(values)
79
+ .filter((name) => MIGRATION_SETTING_NAMES.has(name))
80
+ .sort();
81
+ }
82
+ function optionalValue(value) {
83
+ return value?.trim() ? value : undefined;
84
+ }
85
+ function instanceMigrationValues(values) {
86
+ const googleClientId = values.GOOGLE_CLIENT_ID?.trim() || undefined;
87
+ const googleClientSecret = optionalValue(values.GOOGLE_CLIENT_SECRET);
88
+ if ((googleClientId || googleClientSecret) && (!googleClientId || !googleClientSecret)) {
89
+ throw new EmailError('invalid_request', 'Google OAuth import requires both client ID and client secret.');
90
+ }
91
+ const microsoftClientId = values.MICROSOFT_CLIENT_ID?.trim() || undefined;
92
+ const microsoftClientSecret = optionalValue(values.MICROSOFT_CLIENT_SECRET);
93
+ const microsoftTenantId = values.MICROSOFT_TENANT_ID?.trim() || undefined;
94
+ if ((microsoftClientId || microsoftClientSecret || microsoftTenantId) && !microsoftClientId) {
95
+ throw new EmailError('invalid_request', 'Microsoft OAuth import requires a client ID.');
96
+ }
97
+ const licenseKey = values.FLUXMAIL_LICENSE_KEY?.trim() || undefined;
98
+ const result = {};
99
+ if (googleClientId && googleClientSecret) {
100
+ result.google = { clientId: googleClientId, clientSecret: googleClientSecret };
101
+ }
102
+ if (microsoftClientId) {
103
+ result.microsoft = {
104
+ clientId: microsoftClientId,
105
+ tenantId: microsoftTenantId || 'common',
106
+ ...(microsoftClientSecret ? { clientSecret: microsoftClientSecret } : {}),
107
+ };
108
+ }
109
+ if (licenseKey)
110
+ result.licenseKey = licenseKey;
111
+ return result;
112
+ }
113
+ function importedEncryptionKey(values) {
114
+ const key = values.FLUXMAIL_ENCRYPTION_KEY?.trim() || undefined;
115
+ if (key && !/^[0-9a-fA-F]{64}$/.test(key)) {
116
+ throw new EmailError('invalid_request', 'FLUXMAIL_ENCRYPTION_KEY must be exactly 64 hexadecimal characters.');
117
+ }
118
+ return key?.toLowerCase();
119
+ }
120
+ function migrationDeploymentEnvironment(values, dataDir) {
121
+ const environment = { ...process.env, FLUXMAIL_DATA_DIR: dataDir };
122
+ for (const name of DEPLOYMENT_SETTING_NAMES) {
123
+ if (values[name] !== undefined)
124
+ environment[name] = values[name];
125
+ }
126
+ if (process.env.FLUXMAIL_ENCRYPTION_KEY === undefined &&
127
+ process.env.FLUXMAIL_ENCRYPTION_KEY_FILE === undefined &&
128
+ values.FLUXMAIL_ENCRYPTION_KEY !== undefined) {
129
+ environment.FLUXMAIL_ENCRYPTION_KEY = values.FLUXMAIL_ENCRYPTION_KEY;
130
+ }
131
+ return environment;
132
+ }
133
+ function closeDb(db) {
134
+ db.$client.close();
135
+ }
136
+ function importInstanceValues(store, values, db) {
137
+ const sqlite = db.$client;
138
+ sqlite.transaction(() => {
139
+ if (values.google)
140
+ store.setGoogle(values.google);
141
+ if (values.microsoft)
142
+ store.setMicrosoft(values.microsoft);
143
+ if (values.licenseKey)
144
+ store.setLicenseKey(values.licenseKey);
145
+ })();
146
+ }
147
+ function migrateConfigurationValues(source, values, dataDir) {
148
+ const recognized = recognizedMigrationSettings(values);
149
+ const deploymentValues = deploymentTomlValuesFromEnvironment(values);
150
+ const hasDeploymentSettings = DEPLOYMENT_SETTING_NAMES.some((name) => values[name] !== undefined);
151
+ const instanceValues = instanceMigrationValues(values);
152
+ const hasInstanceSettings = Boolean(instanceValues.google || instanceValues.microsoft || instanceValues.licenseKey);
153
+ const encryptionKey = importedEncryptionKey(values);
154
+ const candidate = resolveDeploymentConfig({
155
+ env: migrationDeploymentEnvironment(values, dataDir),
156
+ defaultLicenseServerUrl: DEFAULT_LICENSE_SERVER_URL,
157
+ generateEncryptionKey: false,
158
+ });
159
+ const compatibility = inspectStoreCompatibility(candidate.dbPath, candidate.dataDir);
160
+ if (!compatibility.compatible)
161
+ throw new IncompatibleStoreError(compatibility);
162
+ if (hasDeploymentSettings && existsSync(candidate.configFile)) {
163
+ throw new EmailError('invalid_request', `${candidate.configFile} already exists. Move it aside before importing deployment settings.`);
164
+ }
165
+ const keyFile = path.join(dataDir, 'encryption.key');
166
+ const configFile = candidate.configFile;
167
+ if (encryptionKey &&
168
+ (process.env.FLUXMAIL_ENCRYPTION_KEY !== undefined || process.env.FLUXMAIL_ENCRYPTION_KEY_FILE !== undefined) &&
169
+ candidate.encryptionKey.toString('hex') !== encryptionKey) {
170
+ throw new EmailError('invalid_request', 'The imported encryption key does not match the process override.');
171
+ }
172
+ if (encryptionKey && existsSync(keyFile)) {
173
+ const storedKey = readFileSync(keyFile, 'utf8').trim().toLowerCase();
174
+ if (storedKey !== encryptionKey) {
175
+ throw new EmailError('invalid_request', `The imported encryption key does not match ${keyFile}. Fluxmail did not change either file.`);
176
+ }
177
+ }
178
+ const encryptionKeyStatus = inspectStoreEncryptionKey(candidate.dbPath, candidate.encryptionKey);
179
+ if (encryptionKeyStatus === 'mismatch') {
180
+ if (!candidate.encryptionKey.length) {
181
+ throw new EmailError('invalid_request', 'The target database contains encrypted values, but no encryption key was provided. Set FLUXMAIL_ENCRYPTION_KEY or FLUXMAIL_ENCRYPTION_KEY_FILE, or include FLUXMAIL_ENCRYPTION_KEY in the migration file.');
182
+ }
183
+ throw new EmailError('invalid_request', `The configured encryption key does not match the encrypted data in ${candidate.dbPath}. Fluxmail did not change any files.`);
184
+ }
185
+ const keyExistedBefore = existsSync(keyFile);
186
+ let createdConfig = false;
187
+ let createdKey = false;
188
+ try {
189
+ if (encryptionKey && !existsSync(keyFile)) {
190
+ writeFileSync(keyFile, `${encryptionKey}\n`, { flag: 'wx', mode: 0o600 });
191
+ createdKey = true;
192
+ }
193
+ if (hasDeploymentSettings) {
194
+ writeDeploymentConfig(configFile, deploymentToml(deploymentValues), { exclusive: true });
195
+ createdConfig = true;
196
+ }
197
+ if (hasInstanceSettings) {
198
+ const deployment = ensureDeploymentEncryptionKey(candidate);
199
+ if (!keyExistedBefore && deployment.sources.encryptionKey === 'generated')
200
+ createdKey = true;
201
+ const db = openDb(deployment.dbPath, { dataDir });
202
+ try {
203
+ importInstanceValues(new InstanceConfigStore(db, deployment.encryptionKey), instanceValues, db);
204
+ }
205
+ finally {
206
+ closeDb(db);
207
+ }
208
+ }
209
+ }
210
+ catch (error) {
211
+ if (createdConfig)
212
+ rmSync(configFile, { force: true });
213
+ if (createdKey)
214
+ rmSync(keyFile, { force: true });
215
+ throw error;
216
+ }
217
+ if (telemetryOptedOut(values))
218
+ setTelemetryEnabled(dataDir, false);
219
+ return { source, recognized };
220
+ }
221
+ export function migrateConfigurationFile(sourceFile) {
222
+ const source = path.resolve(sourceFile);
223
+ const values = parseEnvContent(readFileSync(source, 'utf8'));
224
+ const dataDir = resolveDataDirectory({
225
+ ...process.env,
226
+ ...(values.FLUXMAIL_DATA_DIR !== undefined ? { FLUXMAIL_DATA_DIR: values.FLUXMAIL_DATA_DIR } : {}),
227
+ });
228
+ return withFileLock(path.join(dataDir, '.config-migration.lock'), {
229
+ timeoutMs: CONFIG_MIGRATION_LOCK_TIMEOUT_MS,
230
+ staleMs: CONFIG_MIGRATION_LOCK_STALE_MS,
231
+ description: `configuration migration in ${dataDir}`,
232
+ }, () => migrateConfigurationValues(source, values, dataDir));
233
+ }
234
+ //# sourceMappingURL=configMigration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../src/configMigration.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -1,19 +1,25 @@
1
- import { type FluxmailConfig } from './config.js';
1
+ import { type ConfigurationService, type FluxmailConfig } from './config.js';
2
2
  import { type FluxmailDb } from './storage/db.js';
3
3
  import { AccountRegistry } from './accounts/registry.js';
4
4
  import { EmailService } from './service/emailService.js';
5
5
  import { SendScheduler } from './scheduler/sendScheduler.js';
6
6
  import { type Telemetry } from './telemetry.js';
7
7
  import { LicenseController } from './licensing/refresher.js';
8
+ import { type Logger, type ProcessMode } from './logging.js';
8
9
  export interface AppContext {
9
10
  config: FluxmailConfig;
11
+ configuration: ConfigurationService;
10
12
  db: FluxmailDb;
11
13
  registry: AccountRegistry;
12
14
  service: EmailService;
13
15
  telemetry: Telemetry;
16
+ logger: Logger;
14
17
  /** Inert until start(); only the long-lived serve/stdio commands start it. */
15
18
  scheduler: SendScheduler;
16
19
  licenseController: LicenseController;
17
20
  }
18
- export declare function createContext(): AppContext;
21
+ export declare function createContext(options?: {
22
+ logger?: Logger;
23
+ processMode?: ProcessMode;
24
+ }): AppContext;
19
25
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,8EAA8E;IAC9E,SAAS,EAAE,aAAa,CAAC;IACzB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,wBAAgB,aAAa,IAAI,UAAU,CAc1C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6D,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,oBAAoB,CAAC;IACpC,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,SAAS,EAAE,aAAa,CAAC;IACzB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAAO,GAAG,UAAU,CAiCtG"}
package/dist/context.js CHANGED
@@ -1,23 +1,44 @@
1
- import { loadConfig } from './config.js';
2
- import { openDb } from './storage/db.js';
1
+ import { createConfigurationService, ensureDeploymentEncryptionKey, resolveStoreLocation, } from './config.js';
2
+ import { IncompatibleStoreError, inspectStoreCompatibility, openDb } from './storage/db.js';
3
3
  import { AccountRegistry } from './accounts/registry.js';
4
4
  import { EmailService } from './service/emailService.js';
5
5
  import { SendScheduler } from './scheduler/sendScheduler.js';
6
6
  import { getTelemetry } from './telemetry.js';
7
7
  import { LicenseController } from './licensing/refresher.js';
8
- export function createContext() {
9
- const config = loadConfig();
10
- const db = openDb(config.dbPath);
8
+ import { getLogger } from './logging.js';
9
+ export function createContext(options = {}) {
10
+ const storeLocation = resolveStoreLocation();
11
+ const compatibility = inspectStoreCompatibility(storeLocation.dbPath, storeLocation.dataDir);
12
+ if (!compatibility.compatible)
13
+ throw new IncompatibleStoreError(compatibility);
14
+ const deployment = ensureDeploymentEncryptionKey(storeLocation.deployment);
15
+ const logger = options.logger ??
16
+ getLogger(deployment.dataDir, options.processMode ?? 'library', {
17
+ level: deployment.logLevel,
18
+ destination: deployment.logDestination,
19
+ });
20
+ const db = openDb(deployment.dbPath, { dataDir: deployment.dataDir });
21
+ let configuration;
22
+ try {
23
+ configuration = createConfigurationService(deployment, db);
24
+ }
25
+ catch (error) {
26
+ db.$client.close();
27
+ throw error;
28
+ }
29
+ const config = configuration.config;
11
30
  const registry = new AccountRegistry(db, config);
12
31
  const service = new EmailService(registry, db);
13
- const scheduler = new SendScheduler(db, service);
14
- const telemetry = getTelemetry(config.dataDir);
32
+ const scheduler = new SendScheduler(db, service, logger);
33
+ const telemetry = getTelemetry(config.dataDir, deployment.environment);
15
34
  const licenseController = new LicenseController({
16
35
  db,
17
36
  config,
37
+ configuration,
38
+ logger,
18
39
  onRefreshed: () => scheduler.wake(),
19
40
  });
20
41
  service.onScheduleChanged = () => scheduler.wake();
21
- return { config, db, registry, service, scheduler, telemetry, licenseController };
42
+ return { config, configuration, db, registry, service, scheduler, telemetry, logger, licenseController };
22
43
  }
23
44
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAa7D,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;QAC9C,EAAE;QACF,MAAM;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE;KACpC,CAAC,CAAC;IACH,OAAO,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AACpF,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAiC,MAAM,cAAc,CAAC;AAexE,MAAM,UAAU,aAAa,CAAC,UAA0D,EAAE;IACxF,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,yBAAyB,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7F,IAAI,CAAC,aAAa,CAAC,UAAU;QAAE,MAAM,IAAI,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,6BAA6B,CAAC,aAAa,CAAC,UAAW,CAAC,CAAC;IAC5E,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE;YAC9D,KAAK,EAAE,UAAU,CAAC,QAAQ;YAC1B,WAAW,EAAE,UAAU,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,IAAI,aAAmC,CAAC;IACxC,IAAI,CAAC;QACH,aAAa,GAAG,0BAA0B,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACd,EAAgD,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;QAC9C,EAAE;QACF,MAAM;QACN,aAAa;QACb,MAAM;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE;KACpC,CAAC,CAAC;IACH,OAAO,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;AAC3G,CAAC"}
@@ -0,0 +1,190 @@
1
+ import type { LogDestination, LogLevel } from './logging.js';
2
+ export type ConfigSource = 'default' | 'toml' | 'environment' | 'environment-file' | 'generated' | 'stored' | 'built-in';
3
+ export interface DeploymentConfig {
4
+ dataDir: string;
5
+ dbPath: string;
6
+ encryptionKey: Buffer;
7
+ port: number;
8
+ publicUrl: string;
9
+ publicUrlConfigured: boolean;
10
+ trustProxy: boolean;
11
+ oauthPort: number;
12
+ oauthHost: string;
13
+ maxAttachmentBytes: number;
14
+ logLevel: LogLevel;
15
+ logDestination: LogDestination;
16
+ licenseServerUrl: string;
17
+ configFile: string;
18
+ environment: NodeJS.ProcessEnv;
19
+ sources: Record<DeploymentSettingName, ConfigSource>;
20
+ }
21
+ export type DeploymentSettingName = 'dataDir' | 'dbPath' | 'encryptionKey' | 'port' | 'publicUrl' | 'trustProxy' | 'oauthPort' | 'oauthHost' | 'maxAttachmentBytes' | 'logLevel' | 'logDestination' | 'licenseServerUrl';
22
+ export interface DeploymentReferenceEntry {
23
+ canonicalName: string;
24
+ env: string;
25
+ toml?: string;
26
+ type: 'boolean' | 'integer' | 'path' | 'secret' | 'string' | 'url';
27
+ validation: string;
28
+ defaultValue: string;
29
+ description: string;
30
+ secret?: boolean;
31
+ documented?: boolean;
32
+ restartRequired: true;
33
+ }
34
+ export declare const DEPLOYMENT_REFERENCE: {
35
+ readonly dataDir: {
36
+ readonly canonicalName: "deployment.data_dir";
37
+ readonly env: "FLUXMAIL_DATA_DIR";
38
+ readonly type: "path";
39
+ readonly validation: "Filesystem path";
40
+ readonly defaultValue: "~/.fluxmail (/data in Docker)";
41
+ readonly description: "Directory for the SQLite database, deployment configuration, and generated encryption key.";
42
+ readonly restartRequired: true;
43
+ };
44
+ readonly dbPath: {
45
+ readonly canonicalName: "storage.database_path";
46
+ readonly env: "FLUXMAIL_DB_PATH";
47
+ readonly toml: "storage.database_path";
48
+ readonly type: "path";
49
+ readonly validation: "Non-empty filesystem path";
50
+ readonly defaultValue: "<data dir>/fluxmail.db";
51
+ readonly description: "Override the SQLite database path.";
52
+ readonly restartRequired: true;
53
+ };
54
+ readonly encryptionKey: {
55
+ readonly canonicalName: "deployment.encryption_key";
56
+ readonly env: "FLUXMAIL_ENCRYPTION_KEY";
57
+ readonly type: "secret";
58
+ readonly validation: "Exactly 64 hexadecimal characters";
59
+ readonly defaultValue: "generated automatically";
60
+ readonly description: "A 64-character hexadecimal key used to encrypt credentials and instance secrets.";
61
+ readonly secret: true;
62
+ readonly restartRequired: true;
63
+ };
64
+ readonly port: {
65
+ readonly canonicalName: "server.port";
66
+ readonly env: "FLUXMAIL_PORT";
67
+ readonly toml: "server.port";
68
+ readonly type: "integer";
69
+ readonly validation: "Integer from 1 through 65535";
70
+ readonly defaultValue: "8977";
71
+ readonly description: "HTTP server port.";
72
+ readonly restartRequired: true;
73
+ };
74
+ readonly publicUrl: {
75
+ readonly canonicalName: "server.public_url";
76
+ readonly env: "FLUXMAIL_PUBLIC_URL";
77
+ readonly toml: "server.public_url";
78
+ readonly type: "url";
79
+ readonly validation: "HTTP or HTTPS URL without credentials, query, or fragment";
80
+ readonly defaultValue: "http://localhost:<FLUXMAIL_PORT>";
81
+ readonly description: "Public base URL used for HTTP APIs and hosted OAuth callbacks.";
82
+ readonly restartRequired: true;
83
+ };
84
+ readonly trustProxy: {
85
+ readonly canonicalName: "server.trust_proxy";
86
+ readonly env: "FLUXMAIL_TRUST_PROXY";
87
+ readonly toml: "server.trust_proxy";
88
+ readonly type: "boolean";
89
+ readonly validation: "Boolean";
90
+ readonly defaultValue: "false";
91
+ readonly description: "Trust forwarded protocol and client address headers from a reverse proxy.";
92
+ readonly restartRequired: true;
93
+ };
94
+ readonly oauthPort: {
95
+ readonly canonicalName: "oauth.local.port";
96
+ readonly env: "FLUXMAIL_OAUTH_PORT";
97
+ readonly toml: "oauth.local.port";
98
+ readonly type: "integer";
99
+ readonly validation: "Integer from 1 through 65535";
100
+ readonly defaultValue: "8976";
101
+ readonly description: "Port for the local OAuth callback listener.";
102
+ readonly restartRequired: true;
103
+ };
104
+ readonly oauthHost: {
105
+ readonly canonicalName: "oauth.local.host";
106
+ readonly env: "FLUXMAIL_OAUTH_HOST";
107
+ readonly toml: "oauth.local.host";
108
+ readonly type: "string";
109
+ readonly validation: "Non-empty bind host or address";
110
+ readonly defaultValue: "127.0.0.1";
111
+ readonly description: "Bind address for the local OAuth callback listener.";
112
+ readonly restartRequired: true;
113
+ };
114
+ readonly maxAttachmentBytes: {
115
+ readonly canonicalName: "server.max_attachment_mb";
116
+ readonly env: "FLUXMAIL_MAX_ATTACHMENT_MB";
117
+ readonly toml: "server.max_attachment_mb";
118
+ readonly type: "integer";
119
+ readonly validation: "Integer from 1 through 25";
120
+ readonly defaultValue: "10";
121
+ readonly description: "Largest decoded attachment returned through MCP or REST, from 1 through 25 MB.";
122
+ readonly restartRequired: true;
123
+ };
124
+ readonly logLevel: {
125
+ readonly canonicalName: "logging.level";
126
+ readonly env: "FLUXMAIL_LOG_LEVEL";
127
+ readonly toml: "logging.level";
128
+ readonly type: "string";
129
+ readonly validation: "info, warn, error, or off";
130
+ readonly defaultValue: "info";
131
+ readonly description: "Minimum severity retained by the bounded local logger.";
132
+ readonly restartRequired: true;
133
+ };
134
+ readonly logDestination: {
135
+ readonly canonicalName: "logging.destination";
136
+ readonly env: "FLUXMAIL_LOG_DESTINATION";
137
+ readonly toml: "logging.destination";
138
+ readonly type: "string";
139
+ readonly validation: "both, file, or console";
140
+ readonly defaultValue: "both";
141
+ readonly description: "Write local logs to both the rotating file and console, or choose file or console.";
142
+ readonly restartRequired: true;
143
+ };
144
+ readonly licenseServerUrl: {
145
+ readonly canonicalName: "licensing.server_url";
146
+ readonly env: "FLUXMAIL_LICENSE_SERVER_URL";
147
+ readonly toml: "licensing.server_url";
148
+ readonly type: "url";
149
+ readonly validation: "HTTP or HTTPS URL";
150
+ readonly defaultValue: "https://fluxmail.ai";
151
+ readonly description: "License validation service override used for development and testing.";
152
+ readonly documented: false;
153
+ readonly restartRequired: true;
154
+ };
155
+ };
156
+ export declare const DEFAULT_MAX_ATTACHMENT_BYTES: number;
157
+ export declare const HARD_MAX_ATTACHMENT_BYTES: number;
158
+ export declare function expandHome(value: string): string;
159
+ export declare function resolveDataDirectory(env?: NodeJS.ProcessEnv): string;
160
+ export interface DeploymentTomlValues {
161
+ dbPath?: string;
162
+ port?: number;
163
+ publicUrl?: string;
164
+ trustProxy?: boolean;
165
+ oauthPort?: number;
166
+ oauthHost?: string;
167
+ maxAttachmentMb?: number;
168
+ logLevel?: LogLevel;
169
+ logDestination?: LogDestination;
170
+ licenseServerUrl?: string;
171
+ }
172
+ export declare function deploymentTomlValuesFromEnvironment(env: NodeJS.ProcessEnv): DeploymentTomlValues;
173
+ export declare function readSecretEnvironment(env: NodeJS.ProcessEnv, name: string, options?: {
174
+ blank?: 'error' | 'unset';
175
+ }): {
176
+ value?: string;
177
+ source?: 'environment' | 'environment-file';
178
+ };
179
+ export declare function configTomlPath(dataDir: string): string;
180
+ export declare function resolveDeploymentConfig(options: {
181
+ env?: NodeJS.ProcessEnv;
182
+ defaultLicenseServerUrl: string;
183
+ generateEncryptionKey?: boolean;
184
+ }): DeploymentConfig;
185
+ export declare function ensureDeploymentEncryptionKey(deployment: DeploymentConfig): DeploymentConfig;
186
+ export declare function deploymentToml(values?: DeploymentTomlValues): string;
187
+ export declare function writeDeploymentConfig(file: string, content: string, options?: {
188
+ exclusive?: boolean;
189
+ }): void;
190
+ //# sourceMappingURL=deploymentConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentConfig.d.ts","sourceRoot":"","sources":["../src/deploymentConfig.ts"],"names":[],"mappings":"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"}