@bobfrankston/mailx 1.0.12 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/bin/mailx.js +52 -28
  2. package/client/app.js +113 -30
  3. package/client/components/folder-tree.js +84 -3
  4. package/client/components/message-list.js +164 -10
  5. package/client/components/message-viewer.js +130 -13
  6. package/client/compose/compose.html +4 -4
  7. package/client/compose/compose.js +53 -34
  8. package/client/index.html +50 -21
  9. package/client/lib/api-client.js +112 -31
  10. package/client/lib/mailxapi.js +123 -0
  11. package/client/package.json +1 -1
  12. package/client/styles/components.css +206 -16
  13. package/client/styles/layout.css +2 -1
  14. package/killmail.cmd +6 -0
  15. package/launch.ps1 +47 -5
  16. package/launcher/bin/mailx-app-linux +0 -0
  17. package/launcher/bin/mailx-app.exe +0 -0
  18. package/launcher/builder/build-config.json +11 -0
  19. package/launcher/builder/postinstall.js +81 -0
  20. package/package.json +2 -4
  21. package/packages/mailx-api/index.js +125 -29
  22. package/packages/mailx-core/index.d.ts +129 -0
  23. package/packages/mailx-core/index.js +323 -0
  24. package/packages/mailx-core/ipc.d.ts +13 -0
  25. package/packages/mailx-core/ipc.js +56 -0
  26. package/packages/mailx-core/package.json +18 -0
  27. package/packages/mailx-imap/index.d.ts +7 -1
  28. package/packages/mailx-imap/index.js +89 -14
  29. package/packages/mailx-server/index.js +42 -31
  30. package/packages/mailx-server/package.json +1 -2
  31. package/packages/mailx-settings/index.d.ts +1 -1
  32. package/packages/mailx-settings/index.js +21 -12
  33. package/packages/mailx-store/db.d.ts +6 -2
  34. package/packages/mailx-store/db.js +78 -16
  35. package/packages/mailx-store/file-store.d.ts +2 -8
  36. package/packages/mailx-store/file-store.js +7 -31
  37. package/packages/mailx-types/index.d.ts +3 -1
  38. package/.tswalk.json +0 -7396
  39. package/launcher/release.cmd +0 -4
  40. package/mailx.json +0 -9
  41. package/packages/mailx-api/node_modules/nodemailer/.ncurc.js +0 -9
  42. package/packages/mailx-api/node_modules/nodemailer/.prettierignore +0 -8
  43. package/packages/mailx-api/node_modules/nodemailer/.prettierrc +0 -12
  44. package/packages/mailx-api/node_modules/nodemailer/.prettierrc.js +0 -10
  45. package/packages/mailx-api/node_modules/nodemailer/.release-please-config.json +0 -9
  46. package/packages/mailx-api/node_modules/nodemailer/LICENSE +0 -16
  47. package/packages/mailx-api/node_modules/nodemailer/README.md +0 -86
  48. package/packages/mailx-api/node_modules/nodemailer/SECURITY.txt +0 -22
  49. package/packages/mailx-api/node_modules/nodemailer/eslint.config.js +0 -88
  50. package/packages/mailx-api/node_modules/nodemailer/lib/addressparser/index.js +0 -383
  51. package/packages/mailx-api/node_modules/nodemailer/lib/base64/index.js +0 -139
  52. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/index.js +0 -253
  53. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/message-parser.js +0 -155
  54. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
  55. package/packages/mailx-api/node_modules/nodemailer/lib/dkim/sign.js +0 -117
  56. package/packages/mailx-api/node_modules/nodemailer/lib/fetch/cookies.js +0 -281
  57. package/packages/mailx-api/node_modules/nodemailer/lib/fetch/index.js +0 -280
  58. package/packages/mailx-api/node_modules/nodemailer/lib/json-transport/index.js +0 -82
  59. package/packages/mailx-api/node_modules/nodemailer/lib/mail-composer/index.js +0 -629
  60. package/packages/mailx-api/node_modules/nodemailer/lib/mailer/index.js +0 -441
  61. package/packages/mailx-api/node_modules/nodemailer/lib/mailer/mail-message.js +0 -316
  62. package/packages/mailx-api/node_modules/nodemailer/lib/mime-funcs/index.js +0 -625
  63. package/packages/mailx-api/node_modules/nodemailer/lib/mime-funcs/mime-types.js +0 -2113
  64. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/index.js +0 -1316
  65. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/last-newline.js +0 -33
  66. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/le-unix.js +0 -43
  67. package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/le-windows.js +0 -52
  68. package/packages/mailx-api/node_modules/nodemailer/lib/nodemailer.js +0 -157
  69. package/packages/mailx-api/node_modules/nodemailer/lib/punycode/index.js +0 -460
  70. package/packages/mailx-api/node_modules/nodemailer/lib/qp/index.js +0 -227
  71. package/packages/mailx-api/node_modules/nodemailer/lib/sendmail-transport/index.js +0 -210
  72. package/packages/mailx-api/node_modules/nodemailer/lib/ses-transport/index.js +0 -234
  73. package/packages/mailx-api/node_modules/nodemailer/lib/shared/index.js +0 -754
  74. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -108
  75. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +0 -143
  76. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/index.js +0 -1870
  77. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-pool/index.js +0 -652
  78. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +0 -259
  79. package/packages/mailx-api/node_modules/nodemailer/lib/smtp-transport/index.js +0 -421
  80. package/packages/mailx-api/node_modules/nodemailer/lib/stream-transport/index.js +0 -135
  81. package/packages/mailx-api/node_modules/nodemailer/lib/well-known/index.js +0 -47
  82. package/packages/mailx-api/node_modules/nodemailer/lib/well-known/services.json +0 -611
  83. package/packages/mailx-api/node_modules/nodemailer/lib/xoauth2/index.js +0 -427
  84. package/packages/mailx-api/node_modules/nodemailer/package.json +0 -47
  85. package/packages/mailx-imap/node_modules/nodemailer/.ncurc.js +0 -9
  86. package/packages/mailx-imap/node_modules/nodemailer/.prettierignore +0 -8
  87. package/packages/mailx-imap/node_modules/nodemailer/.prettierrc +0 -12
  88. package/packages/mailx-imap/node_modules/nodemailer/.prettierrc.js +0 -10
  89. package/packages/mailx-imap/node_modules/nodemailer/.release-please-config.json +0 -9
  90. package/packages/mailx-imap/node_modules/nodemailer/LICENSE +0 -16
  91. package/packages/mailx-imap/node_modules/nodemailer/README.md +0 -86
  92. package/packages/mailx-imap/node_modules/nodemailer/SECURITY.txt +0 -22
  93. package/packages/mailx-imap/node_modules/nodemailer/eslint.config.js +0 -88
  94. package/packages/mailx-imap/node_modules/nodemailer/lib/addressparser/index.js +0 -383
  95. package/packages/mailx-imap/node_modules/nodemailer/lib/base64/index.js +0 -139
  96. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/index.js +0 -253
  97. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/message-parser.js +0 -155
  98. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
  99. package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/sign.js +0 -117
  100. package/packages/mailx-imap/node_modules/nodemailer/lib/fetch/cookies.js +0 -281
  101. package/packages/mailx-imap/node_modules/nodemailer/lib/fetch/index.js +0 -280
  102. package/packages/mailx-imap/node_modules/nodemailer/lib/json-transport/index.js +0 -82
  103. package/packages/mailx-imap/node_modules/nodemailer/lib/mail-composer/index.js +0 -629
  104. package/packages/mailx-imap/node_modules/nodemailer/lib/mailer/index.js +0 -441
  105. package/packages/mailx-imap/node_modules/nodemailer/lib/mailer/mail-message.js +0 -316
  106. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-funcs/index.js +0 -625
  107. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-funcs/mime-types.js +0 -2113
  108. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/index.js +0 -1316
  109. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/last-newline.js +0 -33
  110. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/le-unix.js +0 -43
  111. package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/le-windows.js +0 -52
  112. package/packages/mailx-imap/node_modules/nodemailer/lib/nodemailer.js +0 -157
  113. package/packages/mailx-imap/node_modules/nodemailer/lib/punycode/index.js +0 -460
  114. package/packages/mailx-imap/node_modules/nodemailer/lib/qp/index.js +0 -227
  115. package/packages/mailx-imap/node_modules/nodemailer/lib/sendmail-transport/index.js +0 -210
  116. package/packages/mailx-imap/node_modules/nodemailer/lib/ses-transport/index.js +0 -234
  117. package/packages/mailx-imap/node_modules/nodemailer/lib/shared/index.js +0 -754
  118. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -108
  119. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +0 -143
  120. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/index.js +0 -1870
  121. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-pool/index.js +0 -652
  122. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +0 -259
  123. package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-transport/index.js +0 -421
  124. package/packages/mailx-imap/node_modules/nodemailer/lib/stream-transport/index.js +0 -135
  125. package/packages/mailx-imap/node_modules/nodemailer/lib/well-known/index.js +0 -47
  126. package/packages/mailx-imap/node_modules/nodemailer/lib/well-known/services.json +0 -611
  127. package/packages/mailx-imap/node_modules/nodemailer/lib/xoauth2/index.js +0 -427
  128. package/packages/mailx-imap/node_modules/nodemailer/package.json +0 -47
  129. package/packages/mailx-send/node_modules/nodemailer/.ncurc.js +0 -9
  130. package/packages/mailx-send/node_modules/nodemailer/.prettierignore +0 -8
  131. package/packages/mailx-send/node_modules/nodemailer/.prettierrc +0 -12
  132. package/packages/mailx-send/node_modules/nodemailer/.prettierrc.js +0 -10
  133. package/packages/mailx-send/node_modules/nodemailer/.release-please-config.json +0 -9
  134. package/packages/mailx-send/node_modules/nodemailer/LICENSE +0 -16
  135. package/packages/mailx-send/node_modules/nodemailer/README.md +0 -86
  136. package/packages/mailx-send/node_modules/nodemailer/SECURITY.txt +0 -22
  137. package/packages/mailx-send/node_modules/nodemailer/eslint.config.js +0 -88
  138. package/packages/mailx-send/node_modules/nodemailer/lib/addressparser/index.js +0 -383
  139. package/packages/mailx-send/node_modules/nodemailer/lib/base64/index.js +0 -139
  140. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/index.js +0 -253
  141. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/message-parser.js +0 -155
  142. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
  143. package/packages/mailx-send/node_modules/nodemailer/lib/dkim/sign.js +0 -117
  144. package/packages/mailx-send/node_modules/nodemailer/lib/fetch/cookies.js +0 -281
  145. package/packages/mailx-send/node_modules/nodemailer/lib/fetch/index.js +0 -280
  146. package/packages/mailx-send/node_modules/nodemailer/lib/json-transport/index.js +0 -82
  147. package/packages/mailx-send/node_modules/nodemailer/lib/mail-composer/index.js +0 -629
  148. package/packages/mailx-send/node_modules/nodemailer/lib/mailer/index.js +0 -441
  149. package/packages/mailx-send/node_modules/nodemailer/lib/mailer/mail-message.js +0 -316
  150. package/packages/mailx-send/node_modules/nodemailer/lib/mime-funcs/index.js +0 -625
  151. package/packages/mailx-send/node_modules/nodemailer/lib/mime-funcs/mime-types.js +0 -2113
  152. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/index.js +0 -1316
  153. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/last-newline.js +0 -33
  154. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/le-unix.js +0 -43
  155. package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/le-windows.js +0 -52
  156. package/packages/mailx-send/node_modules/nodemailer/lib/nodemailer.js +0 -157
  157. package/packages/mailx-send/node_modules/nodemailer/lib/punycode/index.js +0 -460
  158. package/packages/mailx-send/node_modules/nodemailer/lib/qp/index.js +0 -227
  159. package/packages/mailx-send/node_modules/nodemailer/lib/sendmail-transport/index.js +0 -210
  160. package/packages/mailx-send/node_modules/nodemailer/lib/ses-transport/index.js +0 -234
  161. package/packages/mailx-send/node_modules/nodemailer/lib/shared/index.js +0 -754
  162. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -108
  163. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +0 -143
  164. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/index.js +0 -1870
  165. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-pool/index.js +0 -652
  166. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +0 -259
  167. package/packages/mailx-send/node_modules/nodemailer/lib/smtp-transport/index.js +0 -421
  168. package/packages/mailx-send/node_modules/nodemailer/lib/stream-transport/index.js +0 -135
  169. package/packages/mailx-send/node_modules/nodemailer/lib/well-known/index.js +0 -47
  170. package/packages/mailx-send/node_modules/nodemailer/lib/well-known/services.json +0 -611
  171. package/packages/mailx-send/node_modules/nodemailer/lib/xoauth2/index.js +0 -427
  172. package/packages/mailx-send/node_modules/nodemailer/package.json +0 -47
@@ -1,108 +0,0 @@
1
- 'use strict';
2
-
3
- const stream = require('stream');
4
- const Transform = stream.Transform;
5
-
6
- /**
7
- * Escapes dots in the beginning of lines. Ends the stream with <CR><LF>.<CR><LF>
8
- * Also makes sure that only <CR><LF> sequences are used for linebreaks
9
- *
10
- * @param {Object} options Stream options
11
- */
12
- class DataStream extends Transform {
13
- constructor(options) {
14
- super(options);
15
- // init Transform
16
- this.options = options || {};
17
- this._curLine = '';
18
-
19
- this.inByteCount = 0;
20
- this.outByteCount = 0;
21
- this.lastByte = false;
22
- }
23
-
24
- /**
25
- * Escapes dots
26
- */
27
- _transform(chunk, encoding, done) {
28
- let chunks = [];
29
- let chunklen = 0;
30
- let i,
31
- len,
32
- lastPos = 0;
33
- let buf;
34
-
35
- if (!chunk || !chunk.length) {
36
- return done();
37
- }
38
-
39
- if (typeof chunk === 'string') {
40
- chunk = Buffer.from(chunk);
41
- }
42
-
43
- this.inByteCount += chunk.length;
44
-
45
- for (i = 0, len = chunk.length; i < len; i++) {
46
- if (chunk[i] === 0x2e) {
47
- // .
48
- if ((i && chunk[i - 1] === 0x0a) || (!i && (!this.lastByte || this.lastByte === 0x0a))) {
49
- buf = chunk.slice(lastPos, i + 1);
50
- chunks.push(buf);
51
- chunks.push(Buffer.from('.'));
52
- chunklen += buf.length + 1;
53
- lastPos = i + 1;
54
- }
55
- } else if (chunk[i] === 0x0a) {
56
- // .
57
- if ((i && chunk[i - 1] !== 0x0d) || (!i && this.lastByte !== 0x0d)) {
58
- if (i > lastPos) {
59
- buf = chunk.slice(lastPos, i);
60
- chunks.push(buf);
61
- chunklen += buf.length + 2;
62
- } else {
63
- chunklen += 2;
64
- }
65
- chunks.push(Buffer.from('\r\n'));
66
- lastPos = i + 1;
67
- }
68
- }
69
- }
70
-
71
- if (chunklen) {
72
- // add last piece
73
- if (lastPos < chunk.length) {
74
- buf = chunk.slice(lastPos);
75
- chunks.push(buf);
76
- chunklen += buf.length;
77
- }
78
-
79
- this.outByteCount += chunklen;
80
- this.push(Buffer.concat(chunks, chunklen));
81
- } else {
82
- this.outByteCount += chunk.length;
83
- this.push(chunk);
84
- }
85
-
86
- this.lastByte = chunk[chunk.length - 1];
87
- done();
88
- }
89
-
90
- /**
91
- * Finalizes the stream with a dot on a single line
92
- */
93
- _flush(done) {
94
- let buf;
95
- if (this.lastByte === 0x0a) {
96
- buf = Buffer.from('.\r\n');
97
- } else if (this.lastByte === 0x0d) {
98
- buf = Buffer.from('\n.\r\n');
99
- } else {
100
- buf = Buffer.from('\r\n.\r\n');
101
- }
102
- this.outByteCount += buf.length;
103
- this.push(buf);
104
- done();
105
- }
106
- }
107
-
108
- module.exports = DataStream;
@@ -1,143 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Minimal HTTP/S proxy client
5
- */
6
-
7
- const net = require('net');
8
- const tls = require('tls');
9
- const urllib = require('url');
10
-
11
- /**
12
- * Establishes proxied connection to destinationPort
13
- *
14
- * httpProxyClient("http://localhost:3128/", 80, "google.com", function(err, socket){
15
- * socket.write("GET / HTTP/1.0\r\n\r\n");
16
- * });
17
- *
18
- * @param {String} proxyUrl proxy configuration, etg "http://proxy.host:3128/"
19
- * @param {Number} destinationPort Port to open in destination host
20
- * @param {String} destinationHost Destination hostname
21
- * @param {Function} callback Callback to run with the rocket object once connection is established
22
- */
23
- function httpProxyClient(proxyUrl, destinationPort, destinationHost, callback) {
24
- let proxy = urllib.parse(proxyUrl);
25
-
26
- // create a socket connection to the proxy server
27
- let options;
28
- let connect;
29
- let socket;
30
-
31
- options = {
32
- host: proxy.hostname,
33
- port: Number(proxy.port) ? Number(proxy.port) : proxy.protocol === 'https:' ? 443 : 80
34
- };
35
-
36
- if (proxy.protocol === 'https:') {
37
- // we can use untrusted proxies as long as we verify actual SMTP certificates
38
- options.rejectUnauthorized = false;
39
- connect = tls.connect.bind(tls);
40
- } else {
41
- connect = net.connect.bind(net);
42
- }
43
-
44
- // Error harness for initial connection. Once connection is established, the responsibility
45
- // to handle errors is passed to whoever uses this socket
46
- let finished = false;
47
- let tempSocketErr = err => {
48
- if (finished) {
49
- return;
50
- }
51
- finished = true;
52
- try {
53
- socket.destroy();
54
- } catch (_E) {
55
- // ignore
56
- }
57
- callback(err);
58
- };
59
-
60
- let timeoutErr = () => {
61
- let err = new Error('Proxy socket timed out');
62
- err.code = 'ETIMEDOUT';
63
- tempSocketErr(err);
64
- };
65
-
66
- socket = connect(options, () => {
67
- if (finished) {
68
- return;
69
- }
70
-
71
- let reqHeaders = {
72
- Host: destinationHost + ':' + destinationPort,
73
- Connection: 'close'
74
- };
75
- if (proxy.auth) {
76
- reqHeaders['Proxy-Authorization'] = 'Basic ' + Buffer.from(proxy.auth).toString('base64');
77
- }
78
-
79
- socket.write(
80
- // HTTP method
81
- 'CONNECT ' +
82
- destinationHost +
83
- ':' +
84
- destinationPort +
85
- ' HTTP/1.1\r\n' +
86
- // HTTP request headers
87
- Object.keys(reqHeaders)
88
- .map(key => key + ': ' + reqHeaders[key])
89
- .join('\r\n') +
90
- // End request
91
- '\r\n\r\n'
92
- );
93
-
94
- let headers = '';
95
- let onSocketData = chunk => {
96
- let match;
97
- let remainder;
98
-
99
- if (finished) {
100
- return;
101
- }
102
-
103
- headers += chunk.toString('binary');
104
- if ((match = headers.match(/\r\n\r\n/))) {
105
- socket.removeListener('data', onSocketData);
106
-
107
- remainder = headers.substr(match.index + match[0].length);
108
- headers = headers.substr(0, match.index);
109
- if (remainder) {
110
- socket.unshift(Buffer.from(remainder, 'binary'));
111
- }
112
-
113
- // proxy connection is now established
114
- finished = true;
115
-
116
- // check response code
117
- match = headers.match(/^HTTP\/\d+\.\d+ (\d+)/i);
118
- if (!match || (match[1] || '').charAt(0) !== '2') {
119
- try {
120
- socket.destroy();
121
- } catch (_E) {
122
- // ignore
123
- }
124
- return callback(new Error('Invalid response from proxy' + ((match && ': ' + match[1]) || '')));
125
- }
126
-
127
- socket.removeListener('error', tempSocketErr);
128
- socket.removeListener('timeout', timeoutErr);
129
- socket.setTimeout(0);
130
-
131
- return callback(null, socket);
132
- }
133
- };
134
- socket.on('data', onSocketData);
135
- });
136
-
137
- socket.setTimeout(httpProxyClient.timeout || 30 * 1000);
138
- socket.on('timeout', timeoutErr);
139
-
140
- socket.once('error', tempSocketErr);
141
- }
142
-
143
- module.exports = httpProxyClient;