@bobfrankston/mailx 1.0.1

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 (519) hide show
  1. package/.tswalk.json +3366 -0
  2. package/README.md +160 -0
  3. package/bin/mailx.js +58 -0
  4. package/client/app.js +431 -0
  5. package/client/components/folder-tree.js +286 -0
  6. package/client/components/message-list.js +230 -0
  7. package/client/components/message-viewer.js +161 -0
  8. package/client/compose/compose.css +197 -0
  9. package/client/compose/compose.html +45 -0
  10. package/client/compose/compose.js +335 -0
  11. package/client/favicon.svg +11 -0
  12. package/client/index.html +100 -0
  13. package/client/lib/api-client.js +67 -0
  14. package/client/package.json +9 -0
  15. package/client/styles/components.css +361 -0
  16. package/client/styles/layout.css +69 -0
  17. package/launch.ps1 +20 -0
  18. package/launcher/Cargo.lock +3167 -0
  19. package/launcher/Cargo.toml +13 -0
  20. package/launcher/build.cmd +4 -0
  21. package/launcher/build.rs +8 -0
  22. package/launcher/mailx.ico +0 -0
  23. package/launcher/release.cmd +4 -0
  24. package/launcher/src/main.rs +371 -0
  25. package/mailx.cmd +2 -0
  26. package/mailx.db +0 -0
  27. package/mailx.db-shm +0 -0
  28. package/mailx.db-wal +0 -0
  29. package/mailx.json +9 -0
  30. package/package.json +51 -0
  31. package/packages/mailx-api/index.d.ts +9 -0
  32. package/packages/mailx-api/index.js +375 -0
  33. package/packages/mailx-api/node_modules/nodemailer/.ncurc.js +9 -0
  34. package/packages/mailx-api/node_modules/nodemailer/.prettierignore +8 -0
  35. package/packages/mailx-api/node_modules/nodemailer/.prettierrc +12 -0
  36. package/packages/mailx-api/node_modules/nodemailer/.prettierrc.js +10 -0
  37. package/packages/mailx-api/node_modules/nodemailer/.release-please-config.json +9 -0
  38. package/packages/mailx-api/node_modules/nodemailer/LICENSE +16 -0
  39. package/packages/mailx-api/node_modules/nodemailer/README.md +86 -0
  40. package/packages/mailx-api/node_modules/nodemailer/SECURITY.txt +22 -0
  41. package/packages/mailx-api/node_modules/nodemailer/eslint.config.js +88 -0
  42. package/packages/mailx-api/node_modules/nodemailer/lib/addressparser/index.js +383 -0
  43. package/packages/mailx-api/node_modules/nodemailer/lib/base64/index.js +139 -0
  44. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/index.js +253 -0
  45. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/message-parser.js +155 -0
  46. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/relaxed-body.js +154 -0
  47. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/sign.js +117 -0
  48. package/packages/mailx-api/node_modules/nodemailer/lib/fetch/cookies.js +281 -0
  49. package/packages/mailx-api/node_modules/nodemailer/lib/fetch/index.js +280 -0
  50. package/packages/mailx-api/node_modules/nodemailer/lib/json-transport/index.js +82 -0
  51. package/packages/mailx-api/node_modules/nodemailer/lib/mail-composer/index.js +629 -0
  52. package/packages/mailx-api/node_modules/nodemailer/lib/mailer/index.js +441 -0
  53. package/packages/mailx-api/node_modules/nodemailer/lib/mailer/mail-message.js +316 -0
  54. package/packages/mailx-api/node_modules/nodemailer/lib/mime-funcs/index.js +625 -0
  55. package/packages/mailx-api/node_modules/nodemailer/lib/mime-funcs/mime-types.js +2113 -0
  56. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/index.js +1316 -0
  57. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/last-newline.js +33 -0
  58. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/le-unix.js +43 -0
  59. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/le-windows.js +52 -0
  60. package/packages/mailx-api/node_modules/nodemailer/lib/nodemailer.js +157 -0
  61. package/packages/mailx-api/node_modules/nodemailer/lib/punycode/index.js +460 -0
  62. package/packages/mailx-api/node_modules/nodemailer/lib/qp/index.js +227 -0
  63. package/packages/mailx-api/node_modules/nodemailer/lib/sendmail-transport/index.js +210 -0
  64. package/packages/mailx-api/node_modules/nodemailer/lib/ses-transport/index.js +234 -0
  65. package/packages/mailx-api/node_modules/nodemailer/lib/shared/index.js +754 -0
  66. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/data-stream.js +108 -0
  67. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +143 -0
  68. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/index.js +1870 -0
  69. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-pool/index.js +652 -0
  70. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +259 -0
  71. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-transport/index.js +421 -0
  72. package/packages/mailx-api/node_modules/nodemailer/lib/stream-transport/index.js +135 -0
  73. package/packages/mailx-api/node_modules/nodemailer/lib/well-known/index.js +47 -0
  74. package/packages/mailx-api/node_modules/nodemailer/lib/well-known/services.json +611 -0
  75. package/packages/mailx-api/node_modules/nodemailer/lib/xoauth2/index.js +427 -0
  76. package/packages/mailx-api/node_modules/nodemailer/package.json +47 -0
  77. package/packages/mailx-api/package.json +24 -0
  78. package/packages/mailx-api/tsconfig.tsbuildinfo +1 -0
  79. package/packages/mailx-compose/index.d.ts +21 -0
  80. package/packages/mailx-compose/index.js +61 -0
  81. package/packages/mailx-compose/package.json +14 -0
  82. package/packages/mailx-imap/index.d.ts +105 -0
  83. package/packages/mailx-imap/index.js +1026 -0
  84. package/packages/mailx-imap/node_modules/nodemailer/.ncurc.js +9 -0
  85. package/packages/mailx-imap/node_modules/nodemailer/.prettierignore +8 -0
  86. package/packages/mailx-imap/node_modules/nodemailer/.prettierrc +12 -0
  87. package/packages/mailx-imap/node_modules/nodemailer/.prettierrc.js +10 -0
  88. package/packages/mailx-imap/node_modules/nodemailer/.release-please-config.json +9 -0
  89. package/packages/mailx-imap/node_modules/nodemailer/LICENSE +16 -0
  90. package/packages/mailx-imap/node_modules/nodemailer/README.md +86 -0
  91. package/packages/mailx-imap/node_modules/nodemailer/SECURITY.txt +22 -0
  92. package/packages/mailx-imap/node_modules/nodemailer/eslint.config.js +88 -0
  93. package/packages/mailx-imap/node_modules/nodemailer/lib/addressparser/index.js +383 -0
  94. package/packages/mailx-imap/node_modules/nodemailer/lib/base64/index.js +139 -0
  95. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/index.js +253 -0
  96. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/message-parser.js +155 -0
  97. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/relaxed-body.js +154 -0
  98. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/sign.js +117 -0
  99. package/packages/mailx-imap/node_modules/nodemailer/lib/fetch/cookies.js +281 -0
  100. package/packages/mailx-imap/node_modules/nodemailer/lib/fetch/index.js +280 -0
  101. package/packages/mailx-imap/node_modules/nodemailer/lib/json-transport/index.js +82 -0
  102. package/packages/mailx-imap/node_modules/nodemailer/lib/mail-composer/index.js +629 -0
  103. package/packages/mailx-imap/node_modules/nodemailer/lib/mailer/index.js +441 -0
  104. package/packages/mailx-imap/node_modules/nodemailer/lib/mailer/mail-message.js +316 -0
  105. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-funcs/index.js +625 -0
  106. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-funcs/mime-types.js +2113 -0
  107. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/index.js +1316 -0
  108. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/last-newline.js +33 -0
  109. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/le-unix.js +43 -0
  110. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/le-windows.js +52 -0
  111. package/packages/mailx-imap/node_modules/nodemailer/lib/nodemailer.js +157 -0
  112. package/packages/mailx-imap/node_modules/nodemailer/lib/punycode/index.js +460 -0
  113. package/packages/mailx-imap/node_modules/nodemailer/lib/qp/index.js +227 -0
  114. package/packages/mailx-imap/node_modules/nodemailer/lib/sendmail-transport/index.js +210 -0
  115. package/packages/mailx-imap/node_modules/nodemailer/lib/ses-transport/index.js +234 -0
  116. package/packages/mailx-imap/node_modules/nodemailer/lib/shared/index.js +754 -0
  117. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/data-stream.js +108 -0
  118. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +143 -0
  119. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/index.js +1870 -0
  120. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-pool/index.js +652 -0
  121. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +259 -0
  122. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-transport/index.js +421 -0
  123. package/packages/mailx-imap/node_modules/nodemailer/lib/stream-transport/index.js +135 -0
  124. package/packages/mailx-imap/node_modules/nodemailer/lib/well-known/index.js +47 -0
  125. package/packages/mailx-imap/node_modules/nodemailer/lib/well-known/services.json +611 -0
  126. package/packages/mailx-imap/node_modules/nodemailer/lib/xoauth2/index.js +427 -0
  127. package/packages/mailx-imap/node_modules/nodemailer/package.json +47 -0
  128. package/packages/mailx-imap/package.json +19 -0
  129. package/packages/mailx-imap/tsconfig.tsbuildinfo +1 -0
  130. package/packages/mailx-send/README.md +217 -0
  131. package/packages/mailx-send/cli-queue.d.ts +11 -0
  132. package/packages/mailx-send/cli-queue.js +59 -0
  133. package/packages/mailx-send/cli-send.d.ts +17 -0
  134. package/packages/mailx-send/cli-send.js +75 -0
  135. package/packages/mailx-send/cli.d.ts +22 -0
  136. package/packages/mailx-send/cli.js +115 -0
  137. package/packages/mailx-send/index.d.ts +77 -0
  138. package/packages/mailx-send/index.js +264 -0
  139. package/packages/mailx-send/mailsend/README.md +133 -0
  140. package/packages/mailx-send/mailsend/cli.d.ts +12 -0
  141. package/packages/mailx-send/mailsend/cli.js +70 -0
  142. package/packages/mailx-send/mailsend/index.d.ts +77 -0
  143. package/packages/mailx-send/mailsend/index.js +264 -0
  144. package/packages/mailx-send/mailsend/node_modules/.package-lock.json +49 -0
  145. package/packages/mailx-send/mailsend/node_modules/@types/node/LICENSE +21 -0
  146. package/packages/mailx-send/mailsend/node_modules/@types/node/README.md +15 -0
  147. package/packages/mailx-send/mailsend/node_modules/@types/node/assert/strict.d.ts +111 -0
  148. package/packages/mailx-send/mailsend/node_modules/@types/node/assert.d.ts +1078 -0
  149. package/packages/mailx-send/mailsend/node_modules/@types/node/async_hooks.d.ts +603 -0
  150. package/packages/mailx-send/mailsend/node_modules/@types/node/buffer.buffer.d.ts +472 -0
  151. package/packages/mailx-send/mailsend/node_modules/@types/node/buffer.d.ts +1934 -0
  152. package/packages/mailx-send/mailsend/node_modules/@types/node/child_process.d.ts +1476 -0
  153. package/packages/mailx-send/mailsend/node_modules/@types/node/cluster.d.ts +578 -0
  154. package/packages/mailx-send/mailsend/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
  155. package/packages/mailx-send/mailsend/node_modules/@types/node/compatibility/index.d.ts +9 -0
  156. package/packages/mailx-send/mailsend/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  157. package/packages/mailx-send/mailsend/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
  158. package/packages/mailx-send/mailsend/node_modules/@types/node/console.d.ts +452 -0
  159. package/packages/mailx-send/mailsend/node_modules/@types/node/constants.d.ts +21 -0
  160. package/packages/mailx-send/mailsend/node_modules/@types/node/crypto.d.ts +4545 -0
  161. package/packages/mailx-send/mailsend/node_modules/@types/node/dgram.d.ts +600 -0
  162. package/packages/mailx-send/mailsend/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
  163. package/packages/mailx-send/mailsend/node_modules/@types/node/dns/promises.d.ts +503 -0
  164. package/packages/mailx-send/mailsend/node_modules/@types/node/dns.d.ts +923 -0
  165. package/packages/mailx-send/mailsend/node_modules/@types/node/domain.d.ts +170 -0
  166. package/packages/mailx-send/mailsend/node_modules/@types/node/events.d.ts +976 -0
  167. package/packages/mailx-send/mailsend/node_modules/@types/node/fs/promises.d.ts +1295 -0
  168. package/packages/mailx-send/mailsend/node_modules/@types/node/fs.d.ts +4461 -0
  169. package/packages/mailx-send/mailsend/node_modules/@types/node/globals.d.ts +172 -0
  170. package/packages/mailx-send/mailsend/node_modules/@types/node/globals.typedarray.d.ts +38 -0
  171. package/packages/mailx-send/mailsend/node_modules/@types/node/http.d.ts +2089 -0
  172. package/packages/mailx-send/mailsend/node_modules/@types/node/http2.d.ts +2644 -0
  173. package/packages/mailx-send/mailsend/node_modules/@types/node/https.d.ts +579 -0
  174. package/packages/mailx-send/mailsend/node_modules/@types/node/index.d.ts +97 -0
  175. package/packages/mailx-send/mailsend/node_modules/@types/node/inspector.d.ts +253 -0
  176. package/packages/mailx-send/mailsend/node_modules/@types/node/inspector.generated.d.ts +4052 -0
  177. package/packages/mailx-send/mailsend/node_modules/@types/node/module.d.ts +891 -0
  178. package/packages/mailx-send/mailsend/node_modules/@types/node/net.d.ts +1057 -0
  179. package/packages/mailx-send/mailsend/node_modules/@types/node/os.d.ts +506 -0
  180. package/packages/mailx-send/mailsend/node_modules/@types/node/package.json +145 -0
  181. package/packages/mailx-send/mailsend/node_modules/@types/node/path.d.ts +200 -0
  182. package/packages/mailx-send/mailsend/node_modules/@types/node/perf_hooks.d.ts +968 -0
  183. package/packages/mailx-send/mailsend/node_modules/@types/node/process.d.ts +2084 -0
  184. package/packages/mailx-send/mailsend/node_modules/@types/node/punycode.d.ts +117 -0
  185. package/packages/mailx-send/mailsend/node_modules/@types/node/querystring.d.ts +152 -0
  186. package/packages/mailx-send/mailsend/node_modules/@types/node/readline/promises.d.ts +161 -0
  187. package/packages/mailx-send/mailsend/node_modules/@types/node/readline.d.ts +594 -0
  188. package/packages/mailx-send/mailsend/node_modules/@types/node/repl.d.ts +428 -0
  189. package/packages/mailx-send/mailsend/node_modules/@types/node/sea.d.ts +153 -0
  190. package/packages/mailx-send/mailsend/node_modules/@types/node/sqlite.d.ts +721 -0
  191. package/packages/mailx-send/mailsend/node_modules/@types/node/stream/consumers.d.ts +38 -0
  192. package/packages/mailx-send/mailsend/node_modules/@types/node/stream/promises.d.ts +90 -0
  193. package/packages/mailx-send/mailsend/node_modules/@types/node/stream/web.d.ts +622 -0
  194. package/packages/mailx-send/mailsend/node_modules/@types/node/stream.d.ts +1664 -0
  195. package/packages/mailx-send/mailsend/node_modules/@types/node/string_decoder.d.ts +67 -0
  196. package/packages/mailx-send/mailsend/node_modules/@types/node/test.d.ts +2163 -0
  197. package/packages/mailx-send/mailsend/node_modules/@types/node/timers/promises.d.ts +108 -0
  198. package/packages/mailx-send/mailsend/node_modules/@types/node/timers.d.ts +287 -0
  199. package/packages/mailx-send/mailsend/node_modules/@types/node/tls.d.ts +1319 -0
  200. package/packages/mailx-send/mailsend/node_modules/@types/node/trace_events.d.ts +197 -0
  201. package/packages/mailx-send/mailsend/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
  202. package/packages/mailx-send/mailsend/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
  203. package/packages/mailx-send/mailsend/node_modules/@types/node/ts5.6/index.d.ts +97 -0
  204. package/packages/mailx-send/mailsend/node_modules/@types/node/tty.d.ts +208 -0
  205. package/packages/mailx-send/mailsend/node_modules/@types/node/url.d.ts +984 -0
  206. package/packages/mailx-send/mailsend/node_modules/@types/node/util.d.ts +2606 -0
  207. package/packages/mailx-send/mailsend/node_modules/@types/node/v8.d.ts +920 -0
  208. package/packages/mailx-send/mailsend/node_modules/@types/node/vm.d.ts +1000 -0
  209. package/packages/mailx-send/mailsend/node_modules/@types/node/wasi.d.ts +181 -0
  210. package/packages/mailx-send/mailsend/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  211. package/packages/mailx-send/mailsend/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  212. package/packages/mailx-send/mailsend/node_modules/@types/node/web-globals/events.d.ts +97 -0
  213. package/packages/mailx-send/mailsend/node_modules/@types/node/web-globals/fetch.d.ts +55 -0
  214. package/packages/mailx-send/mailsend/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
  215. package/packages/mailx-send/mailsend/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  216. package/packages/mailx-send/mailsend/node_modules/@types/node/worker_threads.d.ts +784 -0
  217. package/packages/mailx-send/mailsend/node_modules/@types/node/zlib.d.ts +747 -0
  218. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/LICENSE +21 -0
  219. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/README.md +15 -0
  220. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/index.d.ts +82 -0
  221. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/addressparser/index.d.ts +31 -0
  222. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/base64/index.d.ts +22 -0
  223. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/dkim/index.d.ts +45 -0
  224. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/dkim/message-parser.d.ts +75 -0
  225. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/dkim/relaxed-body.d.ts +75 -0
  226. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/dkim/sign.d.ts +21 -0
  227. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/fetch/cookies.d.ts +54 -0
  228. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/fetch/index.d.ts +38 -0
  229. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/json-transport/index.d.ts +53 -0
  230. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/mail-composer/index.d.ts +25 -0
  231. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/mailer/index.d.ts +283 -0
  232. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts +32 -0
  233. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/mime-funcs/index.d.ts +87 -0
  234. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/mime-funcs/mime-types.d.ts +2 -0
  235. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/mime-node/index.d.ts +224 -0
  236. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/mime-node/last-newline.d.ts +9 -0
  237. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/qp/index.d.ts +23 -0
  238. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts +53 -0
  239. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/sendmail-transport/le-unix.d.ts +7 -0
  240. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/sendmail-transport/le-windows.d.ts +7 -0
  241. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/ses-transport/index.d.ts +146 -0
  242. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/shared/index.d.ts +58 -0
  243. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/smtp-connection/data-stream.d.ts +11 -0
  244. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/smtp-connection/http-proxy-client.d.ts +16 -0
  245. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts +270 -0
  246. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts +93 -0
  247. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/smtp-pool/pool-resource.d.ts +66 -0
  248. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts +115 -0
  249. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/stream-transport/index.d.ts +59 -0
  250. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/well-known/index.d.ts +6 -0
  251. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/lib/xoauth2/index.d.ts +114 -0
  252. package/packages/mailx-send/mailsend/node_modules/@types/nodemailer/package.json +38 -0
  253. package/packages/mailx-send/mailsend/node_modules/nodemailer/.ncurc.js +9 -0
  254. package/packages/mailx-send/mailsend/node_modules/nodemailer/.prettierignore +8 -0
  255. package/packages/mailx-send/mailsend/node_modules/nodemailer/.prettierrc +12 -0
  256. package/packages/mailx-send/mailsend/node_modules/nodemailer/.prettierrc.js +10 -0
  257. package/packages/mailx-send/mailsend/node_modules/nodemailer/.release-please-config.json +9 -0
  258. package/packages/mailx-send/mailsend/node_modules/nodemailer/LICENSE +16 -0
  259. package/packages/mailx-send/mailsend/node_modules/nodemailer/README.md +86 -0
  260. package/packages/mailx-send/mailsend/node_modules/nodemailer/SECURITY.txt +22 -0
  261. package/packages/mailx-send/mailsend/node_modules/nodemailer/eslint.config.js +88 -0
  262. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/addressparser/index.js +383 -0
  263. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/base64/index.js +139 -0
  264. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/dkim/index.js +253 -0
  265. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/dkim/message-parser.js +155 -0
  266. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/dkim/relaxed-body.js +154 -0
  267. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/dkim/sign.js +117 -0
  268. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/fetch/cookies.js +281 -0
  269. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/fetch/index.js +280 -0
  270. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/json-transport/index.js +82 -0
  271. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mail-composer/index.js +629 -0
  272. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mailer/index.js +441 -0
  273. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mailer/mail-message.js +316 -0
  274. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mime-funcs/index.js +625 -0
  275. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mime-funcs/mime-types.js +2113 -0
  276. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mime-node/index.js +1316 -0
  277. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mime-node/last-newline.js +33 -0
  278. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mime-node/le-unix.js +43 -0
  279. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/mime-node/le-windows.js +52 -0
  280. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/nodemailer.js +157 -0
  281. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/punycode/index.js +460 -0
  282. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/qp/index.js +227 -0
  283. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/sendmail-transport/index.js +210 -0
  284. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/ses-transport/index.js +234 -0
  285. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/shared/index.js +754 -0
  286. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/smtp-connection/data-stream.js +108 -0
  287. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +143 -0
  288. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/smtp-connection/index.js +1870 -0
  289. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/smtp-pool/index.js +652 -0
  290. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +259 -0
  291. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/smtp-transport/index.js +421 -0
  292. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/stream-transport/index.js +135 -0
  293. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/well-known/index.js +47 -0
  294. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/well-known/services.json +611 -0
  295. package/packages/mailx-send/mailsend/node_modules/nodemailer/lib/xoauth2/index.js +427 -0
  296. package/packages/mailx-send/mailsend/node_modules/nodemailer/package.json +47 -0
  297. package/packages/mailx-send/mailsend/node_modules/undici-types/LICENSE +21 -0
  298. package/packages/mailx-send/mailsend/node_modules/undici-types/README.md +6 -0
  299. package/packages/mailx-send/mailsend/node_modules/undici-types/agent.d.ts +31 -0
  300. package/packages/mailx-send/mailsend/node_modules/undici-types/api.d.ts +43 -0
  301. package/packages/mailx-send/mailsend/node_modules/undici-types/balanced-pool.d.ts +29 -0
  302. package/packages/mailx-send/mailsend/node_modules/undici-types/cache.d.ts +36 -0
  303. package/packages/mailx-send/mailsend/node_modules/undici-types/client.d.ts +108 -0
  304. package/packages/mailx-send/mailsend/node_modules/undici-types/connector.d.ts +34 -0
  305. package/packages/mailx-send/mailsend/node_modules/undici-types/content-type.d.ts +21 -0
  306. package/packages/mailx-send/mailsend/node_modules/undici-types/cookies.d.ts +28 -0
  307. package/packages/mailx-send/mailsend/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  308. package/packages/mailx-send/mailsend/node_modules/undici-types/dispatcher.d.ts +256 -0
  309. package/packages/mailx-send/mailsend/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  310. package/packages/mailx-send/mailsend/node_modules/undici-types/errors.d.ts +149 -0
  311. package/packages/mailx-send/mailsend/node_modules/undici-types/eventsource.d.ts +61 -0
  312. package/packages/mailx-send/mailsend/node_modules/undici-types/fetch.d.ts +209 -0
  313. package/packages/mailx-send/mailsend/node_modules/undici-types/file.d.ts +39 -0
  314. package/packages/mailx-send/mailsend/node_modules/undici-types/filereader.d.ts +54 -0
  315. package/packages/mailx-send/mailsend/node_modules/undici-types/formdata.d.ts +108 -0
  316. package/packages/mailx-send/mailsend/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  317. package/packages/mailx-send/mailsend/node_modules/undici-types/global-origin.d.ts +7 -0
  318. package/packages/mailx-send/mailsend/node_modules/undici-types/handlers.d.ts +15 -0
  319. package/packages/mailx-send/mailsend/node_modules/undici-types/header.d.ts +4 -0
  320. package/packages/mailx-send/mailsend/node_modules/undici-types/index.d.ts +71 -0
  321. package/packages/mailx-send/mailsend/node_modules/undici-types/interceptors.d.ts +17 -0
  322. package/packages/mailx-send/mailsend/node_modules/undici-types/mock-agent.d.ts +50 -0
  323. package/packages/mailx-send/mailsend/node_modules/undici-types/mock-client.d.ts +25 -0
  324. package/packages/mailx-send/mailsend/node_modules/undici-types/mock-errors.d.ts +12 -0
  325. package/packages/mailx-send/mailsend/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  326. package/packages/mailx-send/mailsend/node_modules/undici-types/mock-pool.d.ts +25 -0
  327. package/packages/mailx-send/mailsend/node_modules/undici-types/package.json +55 -0
  328. package/packages/mailx-send/mailsend/node_modules/undici-types/patch.d.ts +33 -0
  329. package/packages/mailx-send/mailsend/node_modules/undici-types/pool-stats.d.ts +19 -0
  330. package/packages/mailx-send/mailsend/node_modules/undici-types/pool.d.ts +39 -0
  331. package/packages/mailx-send/mailsend/node_modules/undici-types/proxy-agent.d.ts +28 -0
  332. package/packages/mailx-send/mailsend/node_modules/undici-types/readable.d.ts +65 -0
  333. package/packages/mailx-send/mailsend/node_modules/undici-types/retry-agent.d.ts +8 -0
  334. package/packages/mailx-send/mailsend/node_modules/undici-types/retry-handler.d.ts +116 -0
  335. package/packages/mailx-send/mailsend/node_modules/undici-types/util.d.ts +18 -0
  336. package/packages/mailx-send/mailsend/node_modules/undici-types/webidl.d.ts +228 -0
  337. package/packages/mailx-send/mailsend/node_modules/undici-types/websocket.d.ts +150 -0
  338. package/packages/mailx-send/mailsend/package.json +26 -0
  339. package/packages/mailx-send/node_modules/.package-lock.json +49 -0
  340. package/packages/mailx-send/node_modules/@types/node/LICENSE +21 -0
  341. package/packages/mailx-send/node_modules/@types/node/README.md +15 -0
  342. package/packages/mailx-send/node_modules/@types/node/assert/strict.d.ts +111 -0
  343. package/packages/mailx-send/node_modules/@types/node/assert.d.ts +1078 -0
  344. package/packages/mailx-send/node_modules/@types/node/async_hooks.d.ts +603 -0
  345. package/packages/mailx-send/node_modules/@types/node/buffer.buffer.d.ts +472 -0
  346. package/packages/mailx-send/node_modules/@types/node/buffer.d.ts +1934 -0
  347. package/packages/mailx-send/node_modules/@types/node/child_process.d.ts +1476 -0
  348. package/packages/mailx-send/node_modules/@types/node/cluster.d.ts +578 -0
  349. package/packages/mailx-send/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
  350. package/packages/mailx-send/node_modules/@types/node/compatibility/index.d.ts +9 -0
  351. package/packages/mailx-send/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  352. package/packages/mailx-send/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
  353. package/packages/mailx-send/node_modules/@types/node/console.d.ts +452 -0
  354. package/packages/mailx-send/node_modules/@types/node/constants.d.ts +21 -0
  355. package/packages/mailx-send/node_modules/@types/node/crypto.d.ts +4545 -0
  356. package/packages/mailx-send/node_modules/@types/node/dgram.d.ts +600 -0
  357. package/packages/mailx-send/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
  358. package/packages/mailx-send/node_modules/@types/node/dns/promises.d.ts +503 -0
  359. package/packages/mailx-send/node_modules/@types/node/dns.d.ts +923 -0
  360. package/packages/mailx-send/node_modules/@types/node/domain.d.ts +170 -0
  361. package/packages/mailx-send/node_modules/@types/node/events.d.ts +976 -0
  362. package/packages/mailx-send/node_modules/@types/node/fs/promises.d.ts +1295 -0
  363. package/packages/mailx-send/node_modules/@types/node/fs.d.ts +4461 -0
  364. package/packages/mailx-send/node_modules/@types/node/globals.d.ts +172 -0
  365. package/packages/mailx-send/node_modules/@types/node/globals.typedarray.d.ts +38 -0
  366. package/packages/mailx-send/node_modules/@types/node/http.d.ts +2089 -0
  367. package/packages/mailx-send/node_modules/@types/node/http2.d.ts +2644 -0
  368. package/packages/mailx-send/node_modules/@types/node/https.d.ts +579 -0
  369. package/packages/mailx-send/node_modules/@types/node/index.d.ts +97 -0
  370. package/packages/mailx-send/node_modules/@types/node/inspector.d.ts +253 -0
  371. package/packages/mailx-send/node_modules/@types/node/inspector.generated.d.ts +4052 -0
  372. package/packages/mailx-send/node_modules/@types/node/module.d.ts +891 -0
  373. package/packages/mailx-send/node_modules/@types/node/net.d.ts +1057 -0
  374. package/packages/mailx-send/node_modules/@types/node/os.d.ts +506 -0
  375. package/packages/mailx-send/node_modules/@types/node/package.json +145 -0
  376. package/packages/mailx-send/node_modules/@types/node/path.d.ts +200 -0
  377. package/packages/mailx-send/node_modules/@types/node/perf_hooks.d.ts +968 -0
  378. package/packages/mailx-send/node_modules/@types/node/process.d.ts +2084 -0
  379. package/packages/mailx-send/node_modules/@types/node/punycode.d.ts +117 -0
  380. package/packages/mailx-send/node_modules/@types/node/querystring.d.ts +152 -0
  381. package/packages/mailx-send/node_modules/@types/node/readline/promises.d.ts +161 -0
  382. package/packages/mailx-send/node_modules/@types/node/readline.d.ts +594 -0
  383. package/packages/mailx-send/node_modules/@types/node/repl.d.ts +428 -0
  384. package/packages/mailx-send/node_modules/@types/node/sea.d.ts +153 -0
  385. package/packages/mailx-send/node_modules/@types/node/sqlite.d.ts +721 -0
  386. package/packages/mailx-send/node_modules/@types/node/stream/consumers.d.ts +38 -0
  387. package/packages/mailx-send/node_modules/@types/node/stream/promises.d.ts +90 -0
  388. package/packages/mailx-send/node_modules/@types/node/stream/web.d.ts +622 -0
  389. package/packages/mailx-send/node_modules/@types/node/stream.d.ts +1664 -0
  390. package/packages/mailx-send/node_modules/@types/node/string_decoder.d.ts +67 -0
  391. package/packages/mailx-send/node_modules/@types/node/test.d.ts +2163 -0
  392. package/packages/mailx-send/node_modules/@types/node/timers/promises.d.ts +108 -0
  393. package/packages/mailx-send/node_modules/@types/node/timers.d.ts +287 -0
  394. package/packages/mailx-send/node_modules/@types/node/tls.d.ts +1319 -0
  395. package/packages/mailx-send/node_modules/@types/node/trace_events.d.ts +197 -0
  396. package/packages/mailx-send/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
  397. package/packages/mailx-send/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
  398. package/packages/mailx-send/node_modules/@types/node/ts5.6/index.d.ts +97 -0
  399. package/packages/mailx-send/node_modules/@types/node/tty.d.ts +208 -0
  400. package/packages/mailx-send/node_modules/@types/node/url.d.ts +984 -0
  401. package/packages/mailx-send/node_modules/@types/node/util.d.ts +2606 -0
  402. package/packages/mailx-send/node_modules/@types/node/v8.d.ts +920 -0
  403. package/packages/mailx-send/node_modules/@types/node/vm.d.ts +1000 -0
  404. package/packages/mailx-send/node_modules/@types/node/wasi.d.ts +181 -0
  405. package/packages/mailx-send/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  406. package/packages/mailx-send/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  407. package/packages/mailx-send/node_modules/@types/node/web-globals/events.d.ts +97 -0
  408. package/packages/mailx-send/node_modules/@types/node/web-globals/fetch.d.ts +55 -0
  409. package/packages/mailx-send/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
  410. package/packages/mailx-send/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  411. package/packages/mailx-send/node_modules/@types/node/worker_threads.d.ts +784 -0
  412. package/packages/mailx-send/node_modules/@types/node/zlib.d.ts +747 -0
  413. package/packages/mailx-send/node_modules/nodemailer/.ncurc.js +9 -0
  414. package/packages/mailx-send/node_modules/nodemailer/.prettierignore +8 -0
  415. package/packages/mailx-send/node_modules/nodemailer/.prettierrc +12 -0
  416. package/packages/mailx-send/node_modules/nodemailer/.prettierrc.js +10 -0
  417. package/packages/mailx-send/node_modules/nodemailer/.release-please-config.json +9 -0
  418. package/packages/mailx-send/node_modules/nodemailer/LICENSE +16 -0
  419. package/packages/mailx-send/node_modules/nodemailer/README.md +86 -0
  420. package/packages/mailx-send/node_modules/nodemailer/SECURITY.txt +22 -0
  421. package/packages/mailx-send/node_modules/nodemailer/eslint.config.js +88 -0
  422. package/packages/mailx-send/node_modules/nodemailer/lib/addressparser/index.js +383 -0
  423. package/packages/mailx-send/node_modules/nodemailer/lib/base64/index.js +139 -0
  424. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/index.js +253 -0
  425. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/message-parser.js +155 -0
  426. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/relaxed-body.js +154 -0
  427. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/sign.js +117 -0
  428. package/packages/mailx-send/node_modules/nodemailer/lib/fetch/cookies.js +281 -0
  429. package/packages/mailx-send/node_modules/nodemailer/lib/fetch/index.js +280 -0
  430. package/packages/mailx-send/node_modules/nodemailer/lib/json-transport/index.js +82 -0
  431. package/packages/mailx-send/node_modules/nodemailer/lib/mail-composer/index.js +629 -0
  432. package/packages/mailx-send/node_modules/nodemailer/lib/mailer/index.js +441 -0
  433. package/packages/mailx-send/node_modules/nodemailer/lib/mailer/mail-message.js +316 -0
  434. package/packages/mailx-send/node_modules/nodemailer/lib/mime-funcs/index.js +625 -0
  435. package/packages/mailx-send/node_modules/nodemailer/lib/mime-funcs/mime-types.js +2113 -0
  436. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/index.js +1316 -0
  437. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/last-newline.js +33 -0
  438. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/le-unix.js +43 -0
  439. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/le-windows.js +52 -0
  440. package/packages/mailx-send/node_modules/nodemailer/lib/nodemailer.js +157 -0
  441. package/packages/mailx-send/node_modules/nodemailer/lib/punycode/index.js +460 -0
  442. package/packages/mailx-send/node_modules/nodemailer/lib/qp/index.js +227 -0
  443. package/packages/mailx-send/node_modules/nodemailer/lib/sendmail-transport/index.js +210 -0
  444. package/packages/mailx-send/node_modules/nodemailer/lib/ses-transport/index.js +234 -0
  445. package/packages/mailx-send/node_modules/nodemailer/lib/shared/index.js +754 -0
  446. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/data-stream.js +108 -0
  447. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +143 -0
  448. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/index.js +1870 -0
  449. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-pool/index.js +652 -0
  450. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +259 -0
  451. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-transport/index.js +421 -0
  452. package/packages/mailx-send/node_modules/nodemailer/lib/stream-transport/index.js +135 -0
  453. package/packages/mailx-send/node_modules/nodemailer/lib/well-known/index.js +47 -0
  454. package/packages/mailx-send/node_modules/nodemailer/lib/well-known/services.json +611 -0
  455. package/packages/mailx-send/node_modules/nodemailer/lib/xoauth2/index.js +427 -0
  456. package/packages/mailx-send/node_modules/nodemailer/package.json +47 -0
  457. package/packages/mailx-send/node_modules/undici-types/LICENSE +21 -0
  458. package/packages/mailx-send/node_modules/undici-types/README.md +6 -0
  459. package/packages/mailx-send/node_modules/undici-types/agent.d.ts +31 -0
  460. package/packages/mailx-send/node_modules/undici-types/api.d.ts +43 -0
  461. package/packages/mailx-send/node_modules/undici-types/balanced-pool.d.ts +29 -0
  462. package/packages/mailx-send/node_modules/undici-types/cache.d.ts +36 -0
  463. package/packages/mailx-send/node_modules/undici-types/client.d.ts +108 -0
  464. package/packages/mailx-send/node_modules/undici-types/connector.d.ts +34 -0
  465. package/packages/mailx-send/node_modules/undici-types/content-type.d.ts +21 -0
  466. package/packages/mailx-send/node_modules/undici-types/cookies.d.ts +28 -0
  467. package/packages/mailx-send/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  468. package/packages/mailx-send/node_modules/undici-types/dispatcher.d.ts +256 -0
  469. package/packages/mailx-send/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  470. package/packages/mailx-send/node_modules/undici-types/errors.d.ts +149 -0
  471. package/packages/mailx-send/node_modules/undici-types/eventsource.d.ts +61 -0
  472. package/packages/mailx-send/node_modules/undici-types/fetch.d.ts +209 -0
  473. package/packages/mailx-send/node_modules/undici-types/file.d.ts +39 -0
  474. package/packages/mailx-send/node_modules/undici-types/filereader.d.ts +54 -0
  475. package/packages/mailx-send/node_modules/undici-types/formdata.d.ts +108 -0
  476. package/packages/mailx-send/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  477. package/packages/mailx-send/node_modules/undici-types/global-origin.d.ts +7 -0
  478. package/packages/mailx-send/node_modules/undici-types/handlers.d.ts +15 -0
  479. package/packages/mailx-send/node_modules/undici-types/header.d.ts +4 -0
  480. package/packages/mailx-send/node_modules/undici-types/index.d.ts +71 -0
  481. package/packages/mailx-send/node_modules/undici-types/interceptors.d.ts +17 -0
  482. package/packages/mailx-send/node_modules/undici-types/mock-agent.d.ts +50 -0
  483. package/packages/mailx-send/node_modules/undici-types/mock-client.d.ts +25 -0
  484. package/packages/mailx-send/node_modules/undici-types/mock-errors.d.ts +12 -0
  485. package/packages/mailx-send/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  486. package/packages/mailx-send/node_modules/undici-types/mock-pool.d.ts +25 -0
  487. package/packages/mailx-send/node_modules/undici-types/package.json +55 -0
  488. package/packages/mailx-send/node_modules/undici-types/patch.d.ts +33 -0
  489. package/packages/mailx-send/node_modules/undici-types/pool-stats.d.ts +19 -0
  490. package/packages/mailx-send/node_modules/undici-types/pool.d.ts +39 -0
  491. package/packages/mailx-send/node_modules/undici-types/proxy-agent.d.ts +28 -0
  492. package/packages/mailx-send/node_modules/undici-types/readable.d.ts +65 -0
  493. package/packages/mailx-send/node_modules/undici-types/retry-agent.d.ts +8 -0
  494. package/packages/mailx-send/node_modules/undici-types/retry-handler.d.ts +116 -0
  495. package/packages/mailx-send/node_modules/undici-types/util.d.ts +18 -0
  496. package/packages/mailx-send/node_modules/undici-types/webidl.d.ts +228 -0
  497. package/packages/mailx-send/node_modules/undici-types/websocket.d.ts +150 -0
  498. package/packages/mailx-send/package.json +27 -0
  499. package/packages/mailx-server/index.d.ts +8 -0
  500. package/packages/mailx-server/index.js +217 -0
  501. package/packages/mailx-server/package.json +25 -0
  502. package/packages/mailx-server/tsconfig.tsbuildinfo +1 -0
  503. package/packages/mailx-settings/index.d.ts +64 -0
  504. package/packages/mailx-settings/index.js +218 -0
  505. package/packages/mailx-settings/package.json +16 -0
  506. package/packages/mailx-settings/tsconfig.tsbuildinfo +1 -0
  507. package/packages/mailx-store/db.d.ts +100 -0
  508. package/packages/mailx-store/db.js +461 -0
  509. package/packages/mailx-store/file-store.d.ts +22 -0
  510. package/packages/mailx-store/file-store.js +59 -0
  511. package/packages/mailx-store/index.d.ts +7 -0
  512. package/packages/mailx-store/index.js +7 -0
  513. package/packages/mailx-store/package.json +19 -0
  514. package/packages/mailx-store/tsconfig.tsbuildinfo +1 -0
  515. package/packages/mailx-types/index.d.ts +195 -0
  516. package/packages/mailx-types/index.js +7 -0
  517. package/packages/mailx-types/package.json +12 -0
  518. package/packages/mailx-types/tsconfig.tsbuildinfo +1 -0
  519. package/tsconfig.base.json +28 -0
@@ -0,0 +1,18 @@
1
+ export namespace util {
2
+ /**
3
+ * Retrieves a header name and returns its lowercase value.
4
+ * @param value Header name
5
+ */
6
+ export function headerNameToString(value: string | Buffer): string;
7
+
8
+ /**
9
+ * Receives a header object and returns the parsed value.
10
+ * @param headers Header object
11
+ * @param obj Object to specify a proxy object. Used to assign parsed values.
12
+ * @returns If `obj` is specified, it is equivalent to `obj`.
13
+ */
14
+ export function parseHeaders(
15
+ headers: (Buffer | string | (Buffer | string)[])[],
16
+ obj?: Record<string, string | string[]>
17
+ ): Record<string, string | string[]>;
18
+ }
@@ -0,0 +1,228 @@
1
+ // These types are not exported, and are only used internally
2
+
3
+ /**
4
+ * Take in an unknown value and return one that is of type T
5
+ */
6
+ type Converter<T> = (object: unknown) => T
7
+
8
+ type SequenceConverter<T> = (object: unknown, iterable?: IterableIterator<T>) => T[]
9
+
10
+ type RecordConverter<K extends string, V> = (object: unknown) => Record<K, V>
11
+
12
+ interface ConvertToIntOpts {
13
+ clamp?: boolean
14
+ enforceRange?: boolean
15
+ }
16
+
17
+ interface WebidlErrors {
18
+ exception (opts: { header: string, message: string }): TypeError
19
+ /**
20
+ * @description Throw an error when conversion from one type to another has failed
21
+ */
22
+ conversionFailed (opts: {
23
+ prefix: string
24
+ argument: string
25
+ types: string[]
26
+ }): TypeError
27
+ /**
28
+ * @description Throw an error when an invalid argument is provided
29
+ */
30
+ invalidArgument (opts: {
31
+ prefix: string
32
+ value: string
33
+ type: string
34
+ }): TypeError
35
+ }
36
+
37
+ interface WebidlUtil {
38
+ /**
39
+ * @see https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values
40
+ */
41
+ Type (object: unknown):
42
+ | 'Undefined'
43
+ | 'Boolean'
44
+ | 'String'
45
+ | 'Symbol'
46
+ | 'Number'
47
+ | 'BigInt'
48
+ | 'Null'
49
+ | 'Object'
50
+
51
+ /**
52
+ * @see https://webidl.spec.whatwg.org/#abstract-opdef-converttoint
53
+ */
54
+ ConvertToInt (
55
+ V: unknown,
56
+ bitLength: number,
57
+ signedness: 'signed' | 'unsigned',
58
+ opts?: ConvertToIntOpts
59
+ ): number
60
+
61
+ /**
62
+ * @see https://webidl.spec.whatwg.org/#abstract-opdef-converttoint
63
+ */
64
+ IntegerPart (N: number): number
65
+
66
+ /**
67
+ * Stringifies {@param V}
68
+ */
69
+ Stringify (V: any): string
70
+
71
+ /**
72
+ * Mark a value as uncloneable for Node.js.
73
+ * This is only effective in some newer Node.js versions.
74
+ */
75
+ markAsUncloneable (V: any): void
76
+ }
77
+
78
+ interface WebidlConverters {
79
+ /**
80
+ * @see https://webidl.spec.whatwg.org/#es-DOMString
81
+ */
82
+ DOMString (V: unknown, prefix: string, argument: string, opts?: {
83
+ legacyNullToEmptyString: boolean
84
+ }): string
85
+
86
+ /**
87
+ * @see https://webidl.spec.whatwg.org/#es-ByteString
88
+ */
89
+ ByteString (V: unknown, prefix: string, argument: string): string
90
+
91
+ /**
92
+ * @see https://webidl.spec.whatwg.org/#es-USVString
93
+ */
94
+ USVString (V: unknown): string
95
+
96
+ /**
97
+ * @see https://webidl.spec.whatwg.org/#es-boolean
98
+ */
99
+ boolean (V: unknown): boolean
100
+
101
+ /**
102
+ * @see https://webidl.spec.whatwg.org/#es-any
103
+ */
104
+ any <Value>(V: Value): Value
105
+
106
+ /**
107
+ * @see https://webidl.spec.whatwg.org/#es-long-long
108
+ */
109
+ ['long long'] (V: unknown): number
110
+
111
+ /**
112
+ * @see https://webidl.spec.whatwg.org/#es-unsigned-long-long
113
+ */
114
+ ['unsigned long long'] (V: unknown): number
115
+
116
+ /**
117
+ * @see https://webidl.spec.whatwg.org/#es-unsigned-long
118
+ */
119
+ ['unsigned long'] (V: unknown): number
120
+
121
+ /**
122
+ * @see https://webidl.spec.whatwg.org/#es-unsigned-short
123
+ */
124
+ ['unsigned short'] (V: unknown, opts?: ConvertToIntOpts): number
125
+
126
+ /**
127
+ * @see https://webidl.spec.whatwg.org/#idl-ArrayBuffer
128
+ */
129
+ ArrayBuffer (V: unknown): ArrayBufferLike
130
+ ArrayBuffer (V: unknown, opts: { allowShared: false }): ArrayBuffer
131
+
132
+ /**
133
+ * @see https://webidl.spec.whatwg.org/#es-buffer-source-types
134
+ */
135
+ TypedArray (
136
+ V: unknown,
137
+ TypedArray: NodeJS.TypedArray | ArrayBufferLike
138
+ ): NodeJS.TypedArray | ArrayBufferLike
139
+ TypedArray (
140
+ V: unknown,
141
+ TypedArray: NodeJS.TypedArray | ArrayBufferLike,
142
+ opts?: { allowShared: false }
143
+ ): NodeJS.TypedArray | ArrayBuffer
144
+
145
+ /**
146
+ * @see https://webidl.spec.whatwg.org/#es-buffer-source-types
147
+ */
148
+ DataView (V: unknown, opts?: { allowShared: boolean }): DataView
149
+
150
+ /**
151
+ * @see https://webidl.spec.whatwg.org/#BufferSource
152
+ */
153
+ BufferSource (
154
+ V: unknown,
155
+ opts?: { allowShared: boolean }
156
+ ): NodeJS.TypedArray | ArrayBufferLike | DataView
157
+
158
+ ['sequence<ByteString>']: SequenceConverter<string>
159
+
160
+ ['sequence<sequence<ByteString>>']: SequenceConverter<string[]>
161
+
162
+ ['record<ByteString, ByteString>']: RecordConverter<string, string>
163
+
164
+ [Key: string]: (...args: any[]) => unknown
165
+ }
166
+
167
+ export interface Webidl {
168
+ errors: WebidlErrors
169
+ util: WebidlUtil
170
+ converters: WebidlConverters
171
+
172
+ /**
173
+ * @description Performs a brand-check on {@param V} to ensure it is a
174
+ * {@param cls} object.
175
+ */
176
+ brandCheck <Interface>(V: unknown, cls: Interface, opts?: { strict?: boolean }): asserts V is Interface
177
+
178
+ /**
179
+ * @see https://webidl.spec.whatwg.org/#es-sequence
180
+ * @description Convert a value, V, to a WebIDL sequence type.
181
+ */
182
+ sequenceConverter <Type>(C: Converter<Type>): SequenceConverter<Type>
183
+
184
+ illegalConstructor (): never
185
+
186
+ /**
187
+ * @see https://webidl.spec.whatwg.org/#es-to-record
188
+ * @description Convert a value, V, to a WebIDL record type.
189
+ */
190
+ recordConverter <K extends string, V>(
191
+ keyConverter: Converter<K>,
192
+ valueConverter: Converter<V>
193
+ ): RecordConverter<K, V>
194
+
195
+ /**
196
+ * Similar to {@link Webidl.brandCheck} but allows skipping the check if third party
197
+ * interfaces are allowed.
198
+ */
199
+ interfaceConverter <Interface>(cls: Interface): (
200
+ V: unknown,
201
+ opts?: { strict: boolean }
202
+ ) => asserts V is typeof cls
203
+
204
+ // TODO(@KhafraDev): a type could likely be implemented that can infer the return type
205
+ // from the converters given?
206
+ /**
207
+ * Converts a value, V, to a WebIDL dictionary types. Allows limiting which keys are
208
+ * allowed, values allowed, optional and required keys. Auto converts the value to
209
+ * a type given a converter.
210
+ */
211
+ dictionaryConverter (converters: {
212
+ key: string,
213
+ defaultValue?: () => unknown,
214
+ required?: boolean,
215
+ converter: (...args: unknown[]) => unknown,
216
+ allowedValues?: unknown[]
217
+ }[]): (V: unknown) => Record<string, unknown>
218
+
219
+ /**
220
+ * @see https://webidl.spec.whatwg.org/#idl-nullable-type
221
+ * @description allows a type, V, to be null
222
+ */
223
+ nullableConverter <T>(
224
+ converter: Converter<T>
225
+ ): (V: unknown) => ReturnType<typeof converter> | null
226
+
227
+ argumentLengthCheck (args: { length: number }, min: number, context: string): void
228
+ }
@@ -0,0 +1,150 @@
1
+ /// <reference types="node" />
2
+
3
+ import type { Blob } from 'buffer'
4
+ import type { MessagePort } from 'worker_threads'
5
+ import {
6
+ EventInit,
7
+ EventListenerOptions,
8
+ AddEventListenerOptions,
9
+ EventListenerOrEventListenerObject
10
+ } from './patch'
11
+ import Dispatcher from './dispatcher'
12
+ import { HeadersInit } from './fetch'
13
+
14
+ export type BinaryType = 'blob' | 'arraybuffer'
15
+
16
+ interface WebSocketEventMap {
17
+ close: CloseEvent
18
+ error: ErrorEvent
19
+ message: MessageEvent
20
+ open: Event
21
+ }
22
+
23
+ interface WebSocket extends EventTarget {
24
+ binaryType: BinaryType
25
+
26
+ readonly bufferedAmount: number
27
+ readonly extensions: string
28
+
29
+ onclose: ((this: WebSocket, ev: WebSocketEventMap['close']) => any) | null
30
+ onerror: ((this: WebSocket, ev: WebSocketEventMap['error']) => any) | null
31
+ onmessage: ((this: WebSocket, ev: WebSocketEventMap['message']) => any) | null
32
+ onopen: ((this: WebSocket, ev: WebSocketEventMap['open']) => any) | null
33
+
34
+ readonly protocol: string
35
+ readonly readyState: number
36
+ readonly url: string
37
+
38
+ close(code?: number, reason?: string): void
39
+ send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void
40
+
41
+ readonly CLOSED: number
42
+ readonly CLOSING: number
43
+ readonly CONNECTING: number
44
+ readonly OPEN: number
45
+
46
+ addEventListener<K extends keyof WebSocketEventMap>(
47
+ type: K,
48
+ listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
49
+ options?: boolean | AddEventListenerOptions
50
+ ): void
51
+ addEventListener(
52
+ type: string,
53
+ listener: EventListenerOrEventListenerObject,
54
+ options?: boolean | AddEventListenerOptions
55
+ ): void
56
+ removeEventListener<K extends keyof WebSocketEventMap>(
57
+ type: K,
58
+ listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
59
+ options?: boolean | EventListenerOptions
60
+ ): void
61
+ removeEventListener(
62
+ type: string,
63
+ listener: EventListenerOrEventListenerObject,
64
+ options?: boolean | EventListenerOptions
65
+ ): void
66
+ }
67
+
68
+ export declare const WebSocket: {
69
+ prototype: WebSocket
70
+ new (url: string | URL, protocols?: string | string[] | WebSocketInit): WebSocket
71
+ readonly CLOSED: number
72
+ readonly CLOSING: number
73
+ readonly CONNECTING: number
74
+ readonly OPEN: number
75
+ }
76
+
77
+ interface CloseEventInit extends EventInit {
78
+ code?: number
79
+ reason?: string
80
+ wasClean?: boolean
81
+ }
82
+
83
+ interface CloseEvent extends Event {
84
+ readonly code: number
85
+ readonly reason: string
86
+ readonly wasClean: boolean
87
+ }
88
+
89
+ export declare const CloseEvent: {
90
+ prototype: CloseEvent
91
+ new (type: string, eventInitDict?: CloseEventInit): CloseEvent
92
+ }
93
+
94
+ interface MessageEventInit<T = any> extends EventInit {
95
+ data?: T
96
+ lastEventId?: string
97
+ origin?: string
98
+ ports?: (typeof MessagePort)[]
99
+ source?: typeof MessagePort | null
100
+ }
101
+
102
+ interface MessageEvent<T = any> extends Event {
103
+ readonly data: T
104
+ readonly lastEventId: string
105
+ readonly origin: string
106
+ readonly ports: ReadonlyArray<typeof MessagePort>
107
+ readonly source: typeof MessagePort | null
108
+ initMessageEvent(
109
+ type: string,
110
+ bubbles?: boolean,
111
+ cancelable?: boolean,
112
+ data?: any,
113
+ origin?: string,
114
+ lastEventId?: string,
115
+ source?: typeof MessagePort | null,
116
+ ports?: (typeof MessagePort)[]
117
+ ): void;
118
+ }
119
+
120
+ export declare const MessageEvent: {
121
+ prototype: MessageEvent
122
+ new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>
123
+ }
124
+
125
+ interface ErrorEventInit extends EventInit {
126
+ message?: string
127
+ filename?: string
128
+ lineno?: number
129
+ colno?: number
130
+ error?: any
131
+ }
132
+
133
+ interface ErrorEvent extends Event {
134
+ readonly message: string
135
+ readonly filename: string
136
+ readonly lineno: number
137
+ readonly colno: number
138
+ readonly error: any
139
+ }
140
+
141
+ export declare const ErrorEvent: {
142
+ prototype: ErrorEvent
143
+ new (type: string, eventInitDict?: ErrorEventInit): ErrorEvent
144
+ }
145
+
146
+ interface WebSocketInit {
147
+ protocols?: string | string[],
148
+ dispatcher?: Dispatcher,
149
+ headers?: HeadersInit
150
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@bobfrankston/mailx-send",
3
+ "version": "0.1.0",
4
+ "description": "Queue-based mail sender with SMTP and OAuth2 support",
5
+ "type": "module",
6
+ "main": "index.js",
7
+ "types": "index.d.ts",
8
+ "bin": {
9
+ "mailsend": "cli-send.js",
10
+ "mailq": "cli-queue.js"
11
+ },
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "release": "npmglobalize"
15
+ },
16
+ "keywords": ["email", "smtp", "queue", "oauth2", "gmail"],
17
+ "author": "Bob Frankston",
18
+ "license": "MIT",
19
+ "dependencies": {
20
+ "nodemailer": "^7.0.0",
21
+ "@bobfrankston/oauthsupport": "file:../../../../projects/oauth/oauthsupport"
22
+ },
23
+ "devDependencies": {
24
+ "@types/nodemailer": "^6.4.0",
25
+ "@types/node": "^22.0.0"
26
+ }
27
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @bobfrankston/mailx-server
3
+ * Express server: serves client, mounts API, manages WebSocket push.
4
+ */
5
+ declare const app: import("express-serve-static-core").Express;
6
+ declare function start(): Promise<void>;
7
+ export { app, start };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,217 @@
1
+ /**
2
+ * @bobfrankston/mailx-server
3
+ * Express server: serves client, mounts API, manages WebSocket push.
4
+ */
5
+ import express from "express";
6
+ import { WebSocketServer, WebSocket } from "ws";
7
+ import * as path from "node:path";
8
+ import * as fs from "node:fs";
9
+ import { MailxDB } from "@bobfrankston/mailx-store";
10
+ import { ImapManager } from "@bobfrankston/mailx-imap";
11
+ import { createApiRouter } from "@bobfrankston/mailx-api";
12
+ import { loadSettings, getConfigDir, initLocalConfig } from "@bobfrankston/mailx-settings";
13
+ import { ports } from "@bobfrankston/miscinfo";
14
+ import { InitServerAsync, InitServerOptions } from "@bobfrankston/certsupport";
15
+ const PORT = ports.mailx;
16
+ // ── File logging ──
17
+ const logDir = path.join(import.meta.dirname, "..", "..");
18
+ const logPath = path.join(logDir, "mailx.log");
19
+ const logStream = fs.createWriteStream(logPath, { flags: "a" });
20
+ const origLog = console.log;
21
+ const origErr = console.error;
22
+ function logTs() { return new Date().toLocaleString("se", { hour12: false }); }
23
+ console.log = (...args) => {
24
+ const msg = `${logTs()} ${args.join(" ")}`;
25
+ origLog(msg);
26
+ logStream.write(msg + "\n");
27
+ };
28
+ console.error = (...args) => {
29
+ const msg = `${logTs()} ERROR ${args.join(" ")}`;
30
+ origErr(msg);
31
+ logStream.write(msg + "\n");
32
+ };
33
+ const serverPkg = JSON.parse(fs.readFileSync(path.join(import.meta.dirname, "package.json"), "utf-8"));
34
+ const clientPkg = JSON.parse(fs.readFileSync(path.join(import.meta.dirname, "..", "..", "client", "package.json"), "utf-8"));
35
+ const SERVER_VERSION = serverPkg.version;
36
+ const CLIENT_VERSION = clientPkg.version;
37
+ // ── Initialize ──
38
+ initLocalConfig();
39
+ const settings = loadSettings();
40
+ const dbDir = getConfigDir();
41
+ const db = new MailxDB(dbDir);
42
+ const imapManager = new ImapManager(db);
43
+ // ── Express App ──
44
+ const app = express();
45
+ app.use(express.json());
46
+ // Serve client static files
47
+ const clientDir = path.join(import.meta.dirname, "..", "..", "client");
48
+ const rootDir = path.join(import.meta.dirname, "..", "..");
49
+ app.use(express.static(clientDir, { etag: false, lastModified: false, maxAge: 0 }));
50
+ app.use("/node_modules", express.static(path.join(rootDir, "node_modules"), { etag: false, lastModified: false, maxAge: 0 }));
51
+ // Mount API
52
+ const apiRouter = createApiRouter(db, imapManager);
53
+ app.use("/api", apiRouter);
54
+ app.get("/api/version", (req, res) => res.json({ server: SERVER_VERSION, client: CLIENT_VERSION }));
55
+ app.get("/status", (req, res) => {
56
+ const accounts = db.getAccounts();
57
+ const pendingSync = db.getTotalPendingSyncCount();
58
+ const uptime = process.uptime();
59
+ const mem = process.memoryUsage();
60
+ const accountInfo = accounts.map((a) => {
61
+ const folders = db.getFolders(a.id);
62
+ const inbox = folders.find((f) => f.specialUse === "inbox");
63
+ return {
64
+ id: a.id, name: a.name, folders: folders.length,
65
+ inboxTotal: inbox?.totalCount || 0,
66
+ inboxUnread: inbox?.unreadCount || 0,
67
+ lastSync: a.lastSync ? new Date(a.lastSync).toLocaleString() : "never",
68
+ };
69
+ });
70
+ res.type("html").send(`<!DOCTYPE html>
71
+ <html><head><meta charset="UTF-8"><title>mailx status</title>
72
+ <meta http-equiv="refresh" content="10">
73
+ <style>body{font-family:system-ui;padding:2rem;max-width:600px;color:#cdd6f4;background:#1e1e2e}
74
+ table{border-collapse:collapse;width:100%}td,th{text-align:left;padding:4px 12px;border-bottom:1px solid #333}
75
+ h1{font-size:1.2rem}h2{font-size:1rem;margin-top:1.5rem}.ok{color:#a6e3a1}.warn{color:#f9e2af}
76
+ a{color:#89b4fa}</style></head>
77
+ <body>
78
+ <h1>mailx status</h1>
79
+ <p>Server: v${SERVER_VERSION} | Client: v${CLIENT_VERSION}</p>
80
+ <p>Uptime: ${Math.floor(uptime / 3600)}h ${Math.floor((uptime % 3600) / 60)}m | Memory: ${Math.round(mem.rss / 1048576)} MB</p>
81
+ <p>Pending sync: <span class="${pendingSync > 0 ? "warn" : "ok"}">${pendingSync}</span></p>
82
+ <h2>Accounts</h2>
83
+ <table><tr><th>Account</th><th>Folders</th><th>Inbox</th><th>Unread</th><th>Last Sync</th></tr>
84
+ ${accountInfo.map((a) => `<tr><td>${a.name}</td><td>${a.folders}</td><td>${a.inboxTotal}</td><td>${a.inboxUnread}</td><td>${a.lastSync}</td></tr>`).join("")}
85
+ </table>
86
+ <p style="margin-top:2rem;font-size:0.8rem"><a href="/">Open mailx</a> | Auto-refreshes every 10s</p>
87
+ </body></html>`);
88
+ });
89
+ // Dev: restart server + reload clients
90
+ app.post("/api/restart", (req, res) => {
91
+ res.json({ ok: true });
92
+ broadcast({ type: "reload" });
93
+ // Touch the server file to trigger node --watch restart
94
+ const serverFile = path.join(import.meta.dirname, "index.js");
95
+ setTimeout(() => {
96
+ const now = new Date();
97
+ fs.utimesSync(serverFile, now, now);
98
+ }, 500);
99
+ });
100
+ // SPA fallback
101
+ app.get("*", (req, res) => {
102
+ if (!req.path.startsWith("/api"))
103
+ res.sendFile(path.join(clientDir, "index.html"));
104
+ });
105
+ // ── HTTPS Server (certsupport with SNI) ──
106
+ const certspath = path.join(import.meta.dirname, "certs");
107
+ let server;
108
+ let wss;
109
+ const clients = new Set();
110
+ function wireWebSocket() {
111
+ wss.on("connection", (ws) => {
112
+ clients.add(ws);
113
+ const connected = { type: "connected" };
114
+ ws.send(JSON.stringify(connected));
115
+ ws.on("close", () => clients.delete(ws));
116
+ });
117
+ }
118
+ function broadcast(event) {
119
+ const data = JSON.stringify(event);
120
+ for (const ws of clients) {
121
+ if (ws.readyState === WebSocket.OPEN)
122
+ ws.send(data);
123
+ }
124
+ }
125
+ // Wire IMAP events to WebSocket broadcasts
126
+ imapManager.on("syncProgress", (accountId, phase, progress) => {
127
+ broadcast({ type: "syncProgress", accountId, phase, progress });
128
+ });
129
+ imapManager.on("folderCountsChanged", (accountId, counts) => {
130
+ broadcast({ type: "folderCountsChanged", accountId, counts });
131
+ });
132
+ // ── Startup ──
133
+ async function start() {
134
+ console.log("mailx server starting...");
135
+ // Seed contacts (fast — skips existing)
136
+ const seeded = db.seedContactsFromMessages();
137
+ if (seeded > 0)
138
+ console.log(` Seeded ${seeded} contacts`);
139
+ // Search index — only rebuild if empty (new DB or after reset)
140
+ try {
141
+ const ftsCount = db.db.prepare("SELECT COUNT(*) as cnt FROM messages_fts").get();
142
+ if (!ftsCount?.cnt) {
143
+ const indexed = db.rebuildSearchIndex();
144
+ console.log(` Search index built: ${indexed} messages`);
145
+ }
146
+ }
147
+ catch {
148
+ // FTS table might not exist yet
149
+ const indexed = db.rebuildSearchIndex();
150
+ console.log(` Search index built: ${indexed} messages`);
151
+ }
152
+ // Add configured accounts
153
+ for (const account of settings.accounts) {
154
+ if (!account.enabled)
155
+ continue;
156
+ try {
157
+ await imapManager.addAccount(account);
158
+ console.log(` Account added: ${account.name} (${account.id})`);
159
+ }
160
+ catch (e) {
161
+ console.error(` Failed to add account ${account.id}: ${e.message}`);
162
+ }
163
+ }
164
+ // Initial sync, then start IDLE watchers
165
+ if (settings.accounts.some(a => a.enabled)) {
166
+ console.log(" Starting initial sync...");
167
+ imapManager.syncAll().then(async () => {
168
+ console.log(" Initial sync complete");
169
+ // Start IDLE watchers for instant new-mail notifications
170
+ await imapManager.startWatching();
171
+ // Sync Google Contacts for OAuth accounts
172
+ imapManager.syncAllContacts().catch(e => console.error(` Google Contacts sync error: ${e.message}`));
173
+ }).catch(e => {
174
+ console.error(` Initial sync error: ${e.message}`);
175
+ });
176
+ }
177
+ // Periodic sync as fallback (IDLE handles most updates)
178
+ imapManager.startPeriodicSync(settings.sync.intervalMinutes);
179
+ // Outbox worker — processes queued outgoing messages
180
+ imapManager.startOutboxWorker();
181
+ // Start server — localhost only by default, --external for network access
182
+ const externalAccess = process.argv.includes("--external");
183
+ const opts = new InitServerOptions({
184
+ port: PORT,
185
+ hostname: externalAccess ? undefined : "127.0.0.1",
186
+ app,
187
+ certspath,
188
+ msger: (msg) => console.log(` [cert] ${msg}`),
189
+ });
190
+ server = await InitServerAsync(opts);
191
+ wss = new WebSocketServer({ server });
192
+ wireWebSocket();
193
+ console.log(`mailx server running on port ${PORT} (http+https)`);
194
+ }
195
+ // ── Graceful Shutdown ──
196
+ async function shutdown() {
197
+ console.log("\nShutting down...");
198
+ const forceExit = setTimeout(() => { console.log("Force exit"); process.exit(1); }, 3000);
199
+ imapManager.stopPeriodicSync();
200
+ try {
201
+ await imapManager.shutdown();
202
+ }
203
+ catch { /* proceed */ }
204
+ db.close();
205
+ server?.close();
206
+ clearTimeout(forceExit);
207
+ process.exit(0);
208
+ }
209
+ process.on("SIGINT", shutdown);
210
+ process.on("SIGTERM", shutdown);
211
+ process.on("unhandledRejection", (err) => {
212
+ console.error("Unhandled rejection:", err?.message || err);
213
+ });
214
+ // ── Entry Point ──
215
+ await start();
216
+ export { app, start };
217
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@bobfrankston/mailx-server",
3
+ "version": "1.0.2",
4
+ "type": "module",
5
+ "main": "index.js",
6
+ "types": "index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc"
9
+ },
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "@bobfrankston/mailx-types": "file:../mailx-types",
13
+ "@bobfrankston/mailx-store": "file:../mailx-store",
14
+ "@bobfrankston/mailx-imap": "file:../mailx-imap",
15
+ "@bobfrankston/mailx-api": "file:../mailx-api",
16
+ "@bobfrankston/mailx-settings": "file:../mailx-settings",
17
+ "@bobfrankston/certsupport": "file:../../../../projects/nodejs/certsupport",
18
+ "express": "^4.21.0",
19
+ "ws": "^8.18.0"
20
+ },
21
+ "devDependencies": {
22
+ "@types/express": "^5.0.0",
23
+ "@types/ws": "^8.5.13"
24
+ }
25
+ }
@@ -0,0 +1 @@
1
+ {"root":["./index.ts"],"version":"5.9.2"}