@n8n/imap 0.24.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,30 +1,305 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImapSimple = void 0;
4
- const events_1 = require("events");
6
+ exports.ImapSimple = exports.imapErrorCode = void 0;
7
+ const sleep_1 = require("@n8n/utils/sleep");
8
+ const imap_1 = __importDefault(require("imap"));
9
+ const connection_options_1 = require("./connection-options");
10
+ const errors_1 = require("./errors");
5
11
  const get_message_1 = require("./helpers/get-message");
12
+ const message_1 = require("./message");
6
13
  const part_data_1 = require("./part-data");
7
- const IMAP_EVENTS = ['alert', 'mail', 'expunge', 'uidvalidity', 'update', 'close', 'end'];
8
- class ImapSimple extends events_1.EventEmitter {
9
- constructor(imap) {
10
- super();
11
- this.imap = imap;
12
- IMAP_EVENTS.forEach((event) => {
13
- this.imap.on(event, this.emit.bind(this, event));
14
- });
15
- this.imap.on('error', (e) => {
16
- this.emit('error', e);
17
- });
14
+ const imapErrorCode = (error) => 'code' in error && typeof error.code === 'string' ? error.code.toUpperCase() : 'UNKNOWN';
15
+ exports.imapErrorCode = imapErrorCode;
16
+ const LOGOUT_GRACE_PERIOD = 2000;
17
+ const DEFAULT_RECONNECT_TIMEOUT = 45_000;
18
+ const RESTORE_ATTEMPTS = 6;
19
+ const RESTORE_BACKOFF = 1000;
20
+ const withTimeout = async (operation, ms) => {
21
+ let timer;
22
+ void operation.catch(() => { });
23
+ try {
24
+ return await Promise.race([
25
+ operation,
26
+ new Promise((_, reject) => {
27
+ timer = setTimeout(() => reject(new errors_1.ConnectionTimeoutError(ms)), ms);
28
+ }),
29
+ ]);
18
30
  }
19
- end() {
20
- this.imap.removeAllListeners();
21
- this.imap.on('error', () => { });
22
- this.imap.once('close', (...args) => this.emit('close', ...args));
23
- this.imap.end();
31
+ finally {
32
+ clearTimeout(timer);
33
+ }
34
+ };
35
+ const connectTransport = async (client) => {
36
+ await new Promise((resolve, reject) => {
37
+ const cleanUp = () => {
38
+ client.removeListener('ready', onReady);
39
+ client.removeListener('error', onError);
40
+ client.removeListener('close', onClose);
41
+ client.removeListener('end', onEnd);
42
+ };
43
+ const onReady = () => {
44
+ cleanUp();
45
+ resolve();
46
+ };
47
+ const onError = (error) => {
48
+ cleanUp();
49
+ reject(error.source === 'timeout-auth' ? new errors_1.ConnectionTimeoutError() : error);
50
+ };
51
+ const onClose = () => {
52
+ cleanUp();
53
+ reject(new errors_1.ConnectionClosedError());
54
+ };
55
+ const onEnd = () => {
56
+ cleanUp();
57
+ reject(new errors_1.ConnectionEndedError());
58
+ };
59
+ client.once('ready', onReady);
60
+ client.once('error', onError);
61
+ client.once('close', onClose);
62
+ client.once('end', onEnd);
63
+ client.connect();
64
+ });
65
+ };
66
+ const selectMailbox = async (client, boxName) => await new Promise((resolve, reject) => {
67
+ const cleanUp = () => {
68
+ client.removeListener('close', onLost);
69
+ client.removeListener('end', onLost);
70
+ };
71
+ const onLost = () => {
72
+ cleanUp();
73
+ reject(new errors_1.ConnectionLostError());
74
+ };
75
+ client.once('close', onLost);
76
+ client.once('end', onLost);
77
+ client.openBox(boxName, (error, box) => {
78
+ cleanUp();
79
+ if (error)
80
+ reject(error);
81
+ else
82
+ resolve(box);
83
+ });
84
+ });
85
+ class ImapSimple {
86
+ static async connect(options, reconnect, createTransport = () => new imap_1.default((0, connection_options_1.toImapOptions)(options))) {
87
+ const connection = new ImapSimple(createTransport, reconnect);
88
+ await connection.open();
89
+ if (reconnect?.interval !== undefined)
90
+ connection.scheduleReplace(reconnect.interval);
91
+ return connection;
92
+ }
93
+ constructor(createTransport, reconnectOptions) {
94
+ this.createTransport = createTransport;
95
+ this.reconnectOptions = reconnectOptions;
96
+ this.ended = false;
97
+ this.closed = false;
98
+ this.installed = false;
99
+ this.queue = Promise.resolve();
100
+ this.pending = [];
101
+ this.generation = 0;
102
+ this.attempt = 0;
103
+ this.aborter = new AbortController();
104
+ this.handlers = {};
105
+ }
106
+ onArrival(handler) {
107
+ this.handlers.arrival = handler;
108
+ const waiting = this.pending.splice(0);
109
+ for (const arrival of waiting)
110
+ this.enqueue(arrival);
111
+ return this;
112
+ }
113
+ onError(handler) {
114
+ this.handlers.error = handler;
115
+ return this;
116
+ }
117
+ onClose(handler) {
118
+ this.handlers.close = handler;
119
+ return this;
120
+ }
121
+ onReconnect(handler) {
122
+ this.handlers.reconnect = handler;
123
+ return this;
124
+ }
125
+ onFlags(handler) {
126
+ this.handlers.flags = handler;
127
+ return this;
128
+ }
129
+ report(event, run) {
130
+ if (this.closed && event !== 'close')
131
+ return;
132
+ const handler = this.handlers[event];
133
+ if (handler !== undefined)
134
+ run(handler);
135
+ }
136
+ reportError(error) {
137
+ this.failure = error instanceof Error ? error : new Error(String(error));
138
+ this.report('error', (handler) => handler(this.failure));
139
+ }
140
+ reportClose() {
141
+ if (this.closed)
142
+ return;
143
+ this.closed = true;
144
+ this.report('close', (handler) => handler(this.closeReason(), this.dropCause));
145
+ }
146
+ get endedByCaller() {
147
+ return this.ended;
148
+ }
149
+ get reconnectTimeout() {
150
+ return this.reconnectOptions?.timeout ?? DEFAULT_RECONNECT_TIMEOUT;
151
+ }
152
+ closeReason() {
153
+ if (this.ended)
154
+ return 'ended';
155
+ if (this.dropCause)
156
+ return 'dropped';
157
+ return this.failure ? 'error' : 'dropped';
158
+ }
159
+ async open() {
160
+ this.install(await this.dial());
161
+ }
162
+ async dial() {
163
+ const client = this.createTransport();
164
+ try {
165
+ await withTimeout(this.handshake(client), this.reconnectTimeout);
166
+ }
167
+ catch (error) {
168
+ this.discard(client);
169
+ throw error;
170
+ }
171
+ return client;
172
+ }
173
+ async handshake(client) {
174
+ await connectTransport(client);
175
+ client.on('error', (error) => this.onTransportError(error));
176
+ client.on('close', () => this.onTransportClose(client));
177
+ const mailbox = this.reconnectOptions?.mailbox;
178
+ if (mailbox !== undefined)
179
+ await selectMailbox(client, mailbox);
180
+ }
181
+ install(client) {
182
+ this.client = client;
183
+ this.installed = true;
184
+ client.on('mail', (count) => this.enqueue({ count }));
185
+ client.on('update', (seqNo, info) => this.report('flags', (handler) => handler({ seqNo, info })));
186
+ }
187
+ onTransportError(error) {
188
+ this.lose();
189
+ if (this.canRestore())
190
+ return;
191
+ this.reportError(error);
192
+ }
193
+ onTransportClose(client) {
194
+ if (this.installed && client !== this.client)
195
+ return;
196
+ this.lose();
197
+ if (!this.canRestore()) {
198
+ this.reportClose();
199
+ return;
200
+ }
201
+ void this.restore();
202
+ }
203
+ lose() {
204
+ this.generation += 1;
205
+ this.abandon?.(new errors_1.ConnectionLostError());
206
+ }
207
+ canRestore() {
208
+ return this.installed && this.reconnectOptions !== undefined && !this.ended && !this.closed;
209
+ }
210
+ async restore() {
211
+ for (let tries = 0;; tries++) {
212
+ this.attempt += 1;
213
+ const attempt = this.attempt;
214
+ try {
215
+ await this.reopen(attempt);
216
+ return;
217
+ }
218
+ catch (error) {
219
+ if (attempt !== this.attempt || !this.canRestore())
220
+ return;
221
+ if (tries + 1 === RESTORE_ATTEMPTS) {
222
+ this.dropCause = error instanceof Error ? error : new Error(String(error));
223
+ this.reportClose();
224
+ return;
225
+ }
226
+ if (!(await this.waitToTryAgain(tries, attempt)))
227
+ return;
228
+ }
229
+ }
230
+ }
231
+ async waitToTryAgain(tries, attempt) {
232
+ try {
233
+ await (0, sleep_1.sleep)(RESTORE_BACKOFF * 2 ** tries, this.aborter.signal);
234
+ }
235
+ catch {
236
+ return false;
237
+ }
238
+ return attempt === this.attempt && this.canRestore();
239
+ }
240
+ async reopen(attempt) {
241
+ this.lose();
242
+ this.discard(this.client);
243
+ const client = await this.dial();
244
+ if (attempt !== this.attempt || this.ended || this.closed) {
245
+ this.discard(client);
246
+ return;
247
+ }
248
+ this.install(client);
249
+ this.report('reconnect', (handler) => handler());
250
+ this.catchUp();
251
+ }
252
+ catchUp() {
253
+ this.enqueue({ count: 'unknown' });
254
+ }
255
+ discard(client) {
256
+ if (client === undefined)
257
+ return;
258
+ client.removeAllListeners();
259
+ client.on('error', () => { });
260
+ try {
261
+ client.end();
262
+ }
263
+ catch {
264
+ }
265
+ }
266
+ scheduleReplace(interval) {
267
+ this.timer = setTimeout(() => {
268
+ void this.restore().then(() => {
269
+ if (this.canRestore())
270
+ this.scheduleReplace(interval);
271
+ });
272
+ }, interval);
273
+ }
274
+ enqueue(arrival) {
275
+ if (this.closed || this.ended)
276
+ return;
277
+ const handler = this.handlers.arrival;
278
+ if (handler === undefined) {
279
+ this.pending.push(arrival);
280
+ return;
281
+ }
282
+ const queuedOn = this.generation;
283
+ this.queue = this.queue.then(async () => {
284
+ if (this.generation !== queuedOn)
285
+ return;
286
+ const lost = new Promise((_, reject) => (this.abandon = reject));
287
+ try {
288
+ await Promise.race([handler(arrival), lost]);
289
+ }
290
+ catch (error) {
291
+ if (this.generation !== queuedOn)
292
+ return;
293
+ this.reportError(error);
294
+ }
295
+ finally {
296
+ this.abandon = undefined;
297
+ }
298
+ });
24
299
  }
25
300
  async search(searchCriteria, fetchOptions, limit) {
26
301
  return await new Promise((resolve, reject) => {
27
- this.imap.search(searchCriteria, (e, uids) => {
302
+ this.client.search(searchCriteria, (e, uids) => {
28
303
  if (e) {
29
304
  reject(e);
30
305
  return;
@@ -33,11 +308,8 @@ class ImapSimple extends events_1.EventEmitter {
33
308
  resolve([]);
34
309
  return;
35
310
  }
36
- let uidsToFetch = uids;
37
- if (limit && limit > 0 && uids.length > limit) {
38
- uidsToFetch = uids.slice(0, limit);
39
- }
40
- const fetch = this.imap.fetch(uidsToFetch, fetchOptions);
311
+ const uidsToFetch = limit && limit > 0 ? uids.slice(0, limit) : uids;
312
+ const fetch = this.client.fetch(uidsToFetch, fetchOptions);
41
313
  let messagesRetrieved = 0;
42
314
  const messages = [];
43
315
  const fetchOnMessage = async (message, seqNo) => {
@@ -67,7 +339,7 @@ class ImapSimple extends events_1.EventEmitter {
67
339
  }
68
340
  async getPartData(message, part) {
69
341
  return await new Promise((resolve, reject) => {
70
- const fetch = this.imap.fetch(message.attributes.uid, {
342
+ const fetch = this.client.fetch(message.attributes.uid, {
71
343
  bodies: [part.partID],
72
344
  struct: true,
73
345
  });
@@ -79,7 +351,7 @@ class ImapSimple extends events_1.EventEmitter {
79
351
  }
80
352
  const data = result.parts[0].body;
81
353
  const encoding = (part.encoding || '7BIT').toUpperCase();
82
- resolve(part_data_1.PartData.fromData(data, encoding));
354
+ resolve(part_data_1.PartData.fromData(data, encoding, part.params?.charset));
83
355
  };
84
356
  const fetchOnError = (error) => {
85
357
  fetch.removeListener('message', fetchOnMessage);
@@ -96,25 +368,61 @@ class ImapSimple extends events_1.EventEmitter {
96
368
  fetch.once('end', fetchOnEnd);
97
369
  });
98
370
  }
371
+ async downloadText(message, subtype) {
372
+ const struct = message.attributes.struct;
373
+ if (!struct)
374
+ return '';
375
+ const part = (0, message_1.bodyPart)((0, message_1.getParts)(struct), subtype);
376
+ if (!part)
377
+ return '';
378
+ try {
379
+ const data = await this.getPartData(message, part);
380
+ return data.toString();
381
+ }
382
+ catch {
383
+ return '';
384
+ }
385
+ }
386
+ async downloadAttachments(message) {
387
+ const struct = message.attributes.struct;
388
+ if (!struct)
389
+ return [];
390
+ return await Promise.all((0, message_1.attachmentParts)((0, message_1.getParts)(struct)).map(async (part) => {
391
+ const data = await this.getPartData(message, part);
392
+ return {
393
+ filename: part.disposition?.params?.filename,
394
+ content: data.buffer,
395
+ };
396
+ }));
397
+ }
99
398
  async addFlags(uid, flags) {
100
399
  return await new Promise((resolve, reject) => {
101
- this.imap.addFlags(uid, flags, (e) => (e ? reject(e) : resolve()));
400
+ this.client.addFlags(uid, flags, (e) => (e ? reject(e) : resolve()));
102
401
  });
103
402
  }
104
403
  async getBoxes() {
105
404
  return await new Promise((resolve, reject) => {
106
- this.imap.getBoxes((e, boxes) => (e ? reject(e) : resolve(boxes)));
405
+ this.client.getBoxes((e, boxes) => (e ? reject(e) : resolve(boxes)));
107
406
  });
108
407
  }
109
408
  async openBox(boxName) {
110
- return await new Promise((resolve, reject) => {
111
- this.imap.openBox(boxName, (e, result) => (e ? reject(e) : resolve(result)));
112
- });
409
+ return await selectMailbox(this.client, boxName);
113
410
  }
114
- async closeBox(autoExpunge = true) {
115
- return await new Promise((resolve, reject) => {
116
- this.imap.closeBox(autoExpunge, (e) => (e ? reject(e) : resolve()));
411
+ end() {
412
+ this.ended = true;
413
+ clearTimeout(this.timer);
414
+ this.aborter.abort();
415
+ this.lose();
416
+ const client = this.client;
417
+ client.removeAllListeners();
418
+ const teardown = setTimeout(() => client.destroy(), LOGOUT_GRACE_PERIOD);
419
+ teardown.unref();
420
+ client.once('close', () => {
421
+ clearTimeout(teardown);
422
+ this.reportClose();
117
423
  });
424
+ client.on('error', () => { });
425
+ client.end();
118
426
  }
119
427
  }
120
428
  exports.ImapSimple = ImapSimple;
@@ -1 +1 @@
1
- {"version":3,"file":"imap-simple.js","sourceRoot":"","sources":["../src/imap-simple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imap-simple.js","sourceRoot":"","sources":["../src/imap-simple.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { ImapSimple } from './imap-simple';
2
- import type { ImapSimpleOptions, MessagePart } from './types';
3
- export declare function connect(options: ImapSimpleOptions): Promise<ImapSimple>;
4
- export declare function getParts(struct: any, parts?: MessagePart[]): MessagePart[];
1
+ export type { FetchOptions } from 'imap';
5
2
  export * from './imap-simple';
3
+ export * from './connection-options';
6
4
  export * from './errors';
7
5
  export type * from './types';
package/dist/index.js CHANGED
@@ -13,72 +13,8 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
13
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
16
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.connect = connect;
21
- exports.getParts = getParts;
22
- const imap_1 = __importDefault(require("imap"));
23
- const errors_1 = require("./errors");
24
- const imap_simple_1 = require("./imap-simple");
25
- async function connect(options) {
26
- const authTimeout = options.imap.authTimeout ?? 2000;
27
- options.imap.authTimeout = authTimeout;
28
- const imap = new imap_1.default(options.imap);
29
- return await new Promise((resolve, reject) => {
30
- const cleanUp = () => {
31
- imap.removeListener('ready', imapOnReady);
32
- imap.removeListener('error', imapOnError);
33
- imap.removeListener('close', imapOnClose);
34
- imap.removeListener('end', imapOnEnd);
35
- };
36
- const imapOnReady = () => {
37
- cleanUp();
38
- resolve(new imap_simple_1.ImapSimple(imap));
39
- };
40
- const imapOnError = (e) => {
41
- if (e.source === 'timeout-auth') {
42
- e = new errors_1.ConnectionTimeoutError(authTimeout);
43
- }
44
- cleanUp();
45
- reject(e);
46
- };
47
- const imapOnEnd = () => {
48
- cleanUp();
49
- reject(new errors_1.ConnectionEndedError());
50
- };
51
- const imapOnClose = () => {
52
- cleanUp();
53
- reject(new errors_1.ConnectionClosedError());
54
- };
55
- imap.once('ready', imapOnReady);
56
- imap.once('error', imapOnError);
57
- imap.once('close', imapOnClose);
58
- imap.once('end', imapOnEnd);
59
- if (options.onMail) {
60
- imap.on('mail', options.onMail);
61
- }
62
- if (options.onExpunge) {
63
- imap.on('expunge', options.onExpunge);
64
- }
65
- if (options.onUpdate) {
66
- imap.on('update', options.onUpdate);
67
- }
68
- imap.connect();
69
- });
70
- }
71
- function getParts(struct, parts = []) {
72
- for (let i = 0; i < struct.length; i++) {
73
- if (Array.isArray(struct[i])) {
74
- getParts(struct[i], parts);
75
- }
76
- else if (struct[i].partID) {
77
- parts.push(struct[i]);
78
- }
79
- }
80
- return parts;
81
- }
82
17
  __exportStar(require("./imap-simple"), exports);
18
+ __exportStar(require("./connection-options"), exports);
83
19
  __exportStar(require("./errors"), exports);
84
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,uDAAqC;AACrC,2CAAyB"}
@@ -0,0 +1,4 @@
1
+ import type { MessagePart } from './types';
2
+ export declare function getParts(struct: unknown, parts?: MessagePart[]): MessagePart[];
3
+ export declare const bodyPart: (parts: MessagePart[], subtype: string) => MessagePart | undefined;
4
+ export declare const attachmentParts: (parts: MessagePart[]) => MessagePart[];
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attachmentParts = exports.bodyPart = void 0;
4
+ exports.getParts = getParts;
5
+ function getParts(struct, parts = []) {
6
+ if (!Array.isArray(struct))
7
+ return parts;
8
+ for (const entry of struct) {
9
+ if (Array.isArray(entry))
10
+ getParts(entry, parts);
11
+ else if (entry !== null && typeof entry === 'object' && 'partID' in entry) {
12
+ parts.push(entry);
13
+ }
14
+ }
15
+ return parts;
16
+ }
17
+ const bodyPart = (parts, subtype) => parts.find((part) => part.type?.toUpperCase() === 'TEXT' && part.subtype?.toUpperCase() === subtype.toUpperCase());
18
+ exports.bodyPart = bodyPart;
19
+ const attachmentParts = (parts) => parts.filter((part) => part.disposition?.type?.toUpperCase() === 'ATTACHMENT');
20
+ exports.attachmentParts = attachmentParts;
21
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":";;;;AAGA,kBAAyB,MAAe,EAAE,KAAK,GAAkB,EAAE;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAEM,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,OAAe,EAA2B,EAAE,CAC1F,KAAK,CAAC,IAAI,CACT,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAC7F,CAAC;AAJU,QAAA,QAAQ,GAAR,QAAQ,CAIlB;AAEI,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAiB,EAAE,CACtE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;AADnE,QAAA,eAAe,GAAf,eAAe,CACoD"}
package/dist/part-data.js CHANGED
@@ -38,6 +38,14 @@ const iconvlite = __importStar(require("iconv-lite"));
38
38
  const qp = __importStar(require("quoted-printable"));
39
39
  const utf8 = __importStar(require("utf8"));
40
40
  const uudecode_1 = require("./uudecode");
41
+ const asUtf8 = (decoded) => {
42
+ try {
43
+ return utf8.decode(decoded);
44
+ }
45
+ catch {
46
+ return decoded;
47
+ }
48
+ };
41
49
  class PartData {
42
50
  constructor(buffer) {
43
51
  this.buffer = buffer;
@@ -73,8 +81,8 @@ class Base64PartData extends PartData {
73
81
  exports.Base64PartData = Base64PartData;
74
82
  class QuotedPrintablePartData extends PartData {
75
83
  constructor(data, charset) {
76
- const decoded = charset?.toUpperCase() === 'UTF-8' ? utf8.decode(qp.decode(data)) : qp.decode(data);
77
- super(Buffer.from(decoded));
84
+ const decoded = qp.decode(data);
85
+ super(Buffer.from(charset?.toUpperCase() === 'UTF-8' ? asUtf8(decoded) : decoded));
78
86
  }
79
87
  }
80
88
  exports.QuotedPrintablePartData = QuotedPrintablePartData;
@@ -90,7 +98,7 @@ exports.SevenBitPartData = SevenBitPartData;
90
98
  class BinaryPartData extends PartData {
91
99
  constructor(data, charset = 'utf-8') {
92
100
  super(Buffer.from(data));
93
- this.charset = charset;
101
+ this.charset = iconvlite.encodingExists(charset) ? charset : 'utf-8';
94
102
  }
95
103
  toString() {
96
104
  return iconvlite.decode(this.buffer, this.charset);
@@ -1 +1 @@
1
- {"version":3,"file":"part-data.js","sourceRoot":"","sources":["../src/part-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"part-data.js","sourceRoot":"","sources":["../src/part-data.ts"],"names":[],"mappings":"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"}