imapflow 1.0.119 → 1.0.121

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.
package/lib/imap-flow.js CHANGED
@@ -308,6 +308,11 @@ class ImapFlow extends EventEmitter {
308
308
  return;
309
309
  }
310
310
 
311
+ if (this.writeSocket.destroyed) {
312
+ this.socket.emit('error', 'Write socket destroyed');
313
+ return;
314
+ }
315
+
311
316
  let addLineBreak = !this.commandParts.length;
312
317
  if (typeof chunk === 'string') {
313
318
  if (addLineBreak) {
@@ -618,6 +623,8 @@ class ImapFlow extends EventEmitter {
618
623
  this.socket.on('end', this._socketEnd);
619
624
  this.socket.on('tlsClientError', this._socketError);
620
625
  this.socket.on('timeout', this._socketTimeout);
626
+
627
+ this.writeSocket.on('error', this._socketError);
621
628
  }
622
629
 
623
630
  clearSocketHandlers() {
@@ -736,6 +743,9 @@ class ImapFlow extends EventEmitter {
736
743
  readNext();
737
744
  }
738
745
  });
746
+ this.writeSocket.on('error', err => {
747
+ this.socket.emit('error', err);
748
+ });
739
749
 
740
750
  this._deflate.pipe(this.socket);
741
751
  this._deflate.on('error', err => {
@@ -1293,7 +1303,7 @@ class ImapFlow extends EventEmitter {
1293
1303
 
1294
1304
  this.writeSocket = this.socket;
1295
1305
 
1296
- this.socket.once('error', err => {
1306
+ this.socket.on('error', err => {
1297
1307
  clearTimeout(this.connectTimeout);
1298
1308
  clearTimeout(this.greetingTimeout);
1299
1309
  setImmediate(() => this.close());
@@ -1464,6 +1474,7 @@ class ImapFlow extends EventEmitter {
1464
1474
  * list.forEach(mailbox=>console.log(mailbox.path));
1465
1475
  */
1466
1476
  async list(options) {
1477
+ options = options || {};
1467
1478
  let folders = await this.run('LIST', '', '*', options);
1468
1479
  this.folders = new Map(folders.map(folder => [folder.path, folder]));
1469
1480
  return folders;
@@ -2543,7 +2554,7 @@ class ImapFlow extends EventEmitter {
2543
2554
  let data = {};
2544
2555
 
2545
2556
  for (let [part, content] of response.bodyParts) {
2546
- let keyParts = part.split('.');
2557
+ let keyParts = part.split('.mime');
2547
2558
  if (keyParts.length === 1) {
2548
2559
  // content
2549
2560
  let key = keyParts[0];
@@ -12,6 +12,8 @@ module.exports = {
12
12
  'e tindami',
13
13
  'elküldött',
14
14
  'elküldöttek',
15
+ 'elementos enviados',
16
+ 'éléments envoyés',
15
17
  'enviadas',
16
18
  'enviadas',
17
19
  'enviados',
@@ -37,6 +39,7 @@ module.exports = {
37
39
  'napadala',
38
40
  'nosūtītās ziņas',
39
41
  'odeslané',
42
+ 'odeslaná pošta',
40
43
  'padala',
41
44
  'poslane',
42
45
  'poslano',
@@ -45,6 +48,7 @@ module.exports = {
45
48
  'poslato',
46
49
  'saadetud',
47
50
  'saadetud kirjad',
51
+ 'saadetud üksused',
48
52
  'sendt',
49
53
  'sendt',
50
54
  'sent',
@@ -119,8 +123,10 @@ module.exports = {
119
123
  'item dipadam',
120
124
  'itens apagados',
121
125
  'itens excluídos',
126
+ 'kustutatud üksused',
122
127
  'mục đã xóa',
123
128
  'odstraněné položky',
129
+ 'odstraněná pošta',
124
130
  'pesan terhapus',
125
131
  'poistetut',
126
132
  'praht',
@@ -153,6 +159,8 @@ module.exports = {
153
159
  'istenmeyen',
154
160
  'istenmeyen e-posta',
155
161
  'junk',
162
+ 'junk e-mail',
163
+ 'junk email',
156
164
  'junk-e-mail',
157
165
  'levélszemét',
158
166
  'nevyžiadaná pošta',
@@ -161,6 +169,7 @@ module.exports = {
161
169
  'posta indesiderata',
162
170
  'pourriel',
163
171
  'roskaposti',
172
+ 'rämpspost',
164
173
  'skräppost',
165
174
  'spam',
166
175
  'spam',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imapflow",
3
- "version": "1.0.119",
3
+ "version": "1.0.121",
4
4
  "description": "IMAP Client for Node",
5
5
  "main": "./lib/imap-flow.js",
6
6
  "scripts": {
@@ -31,12 +31,12 @@
31
31
  "@babel/eslint-plugin": "7.19.1",
32
32
  "@babel/plugin-syntax-class-properties": "7.12.13",
33
33
  "@babel/preset-env": "7.20.2",
34
- "@types/node": "18.11.17",
34
+ "@types/node": "18.14.0",
35
35
  "braintree-jsdoc-template": "3.3.0",
36
- "eslint": "8.30.0",
36
+ "eslint": "8.34.0",
37
37
  "eslint-config-nodemailer": "1.2.0",
38
- "eslint-config-prettier": "8.5.0",
39
- "grunt": "1.5.3",
38
+ "eslint-config-prettier": "8.6.0",
39
+ "grunt": "1.6.1",
40
40
  "grunt-cli": "1.4.3",
41
41
  "grunt-contrib-nodeunit": "4.0.0",
42
42
  "grunt-eslint": "24.0.1",
@@ -48,11 +48,11 @@
48
48
  "encoding-japanese": "2.0.0",
49
49
  "iconv-lite": "0.6.3",
50
50
  "libbase64": "1.2.1",
51
- "libmime": "5.2.0",
51
+ "libmime": "5.2.1",
52
52
  "libqp": "2.0.1",
53
53
  "mailsplit": "5.4.0",
54
- "nodemailer": "6.8.0",
55
- "pino": "8.8.0",
54
+ "nodemailer": "6.9.1",
55
+ "pino": "8.10.0",
56
56
  "socks": "2.7.1"
57
57
  }
58
58
  }
@@ -970,3 +970,10 @@ module.exports['IMAP Parser, unicode status 12'] = test =>
970
970
  ]
971
971
  ])
972
972
  );
973
+
974
+ module.exports['IMAP Parser, NO with a dot'] = test =>
975
+ asyncWrapper(test, async test => {
976
+ let parsed = await parser('X NO Server Unavailable. 15');
977
+ test.equal(parsed.command, 'NO');
978
+ test.deepEqual(parsed.attributes, [{ type: 'TEXT', value: 'Server Unavailable. 15' }]);
979
+ });