@n8n/imap 0.25.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,15 +1,79 @@
1
- import { EventEmitter } from 'events';
2
- import type Imap from 'imap';
3
- import { PartData } from './part-data';
4
- import type { Message, MessagePart, SearchCriteria } from './types';
5
- export declare class ImapSimple extends EventEmitter {
6
- private readonly imap;
7
- constructor(imap: Imap);
8
- end(): void;
1
+ import Imap from 'imap';
2
+ import { type ImapConnectionOptions } from './connection-options';
3
+ import type { Message, SearchCriteria } from './types';
4
+ export declare const imapErrorCode: (error: Error) => string;
5
+ export type CloseReason = 'ended' | 'error' | 'dropped';
6
+ export interface Arrival {
7
+ count: number | 'unknown';
8
+ }
9
+ export interface FlagsEvent {
10
+ seqNo: number;
11
+ info: {
12
+ num?: number | undefined;
13
+ text: unknown;
14
+ };
15
+ }
16
+ export type ImapTransport = Pick<Imap, 'connect' | 'end' | 'destroy' | 'on' | 'once' | 'removeListener' | 'removeAllListeners' | 'search' | 'fetch' | 'addFlags' | 'getBoxes' | 'openBox'>;
17
+ export interface Attachment {
18
+ filename?: string;
19
+ content: Buffer;
20
+ }
21
+ export interface ReconnectOptions {
22
+ mailbox: string;
23
+ interval?: number;
24
+ timeout?: number;
25
+ }
26
+ export declare class ImapSimple {
27
+ private readonly createTransport;
28
+ private readonly reconnectOptions;
29
+ static connect(options: ImapConnectionOptions, reconnect?: ReconnectOptions, createTransport?: () => ImapTransport): Promise<ImapSimple>;
30
+ private client;
31
+ private ended;
32
+ private failure;
33
+ private dropCause;
34
+ private closed;
35
+ private installed;
36
+ private queue;
37
+ private readonly pending;
38
+ private generation;
39
+ private attempt;
40
+ private abandon;
41
+ private timer;
42
+ private readonly aborter;
43
+ private readonly handlers;
44
+ private constructor();
45
+ onArrival(handler: (arrival: Arrival) => Promise<void> | void): this;
46
+ onError(handler: (error: Error) => void): this;
47
+ onClose(handler: (reason: CloseReason, cause?: Error) => void): this;
48
+ onReconnect(handler: () => void): this;
49
+ onFlags(handler: (event: FlagsEvent) => void): this;
50
+ private report;
51
+ private reportError;
52
+ private reportClose;
53
+ get endedByCaller(): boolean;
54
+ private get reconnectTimeout();
55
+ private closeReason;
56
+ private open;
57
+ private dial;
58
+ private handshake;
59
+ private install;
60
+ private onTransportError;
61
+ private onTransportClose;
62
+ private lose;
63
+ private canRestore;
64
+ private restore;
65
+ private waitToTryAgain;
66
+ private reopen;
67
+ private catchUp;
68
+ private discard;
69
+ private scheduleReplace;
70
+ private enqueue;
9
71
  search(searchCriteria: SearchCriteria[], fetchOptions: Imap.FetchOptions, limit?: number): Promise<Message[]>;
10
- getPartData(message: Message, part: MessagePart): Promise<PartData>;
72
+ private getPartData;
73
+ downloadText(message: Message, subtype: string): Promise<string>;
74
+ downloadAttachments(message: Message): Promise<Attachment[]>;
11
75
  addFlags(uid: number[], flags: string | string[]): Promise<void>;
12
76
  getBoxes(): Promise<Imap.MailBoxes>;
13
77
  openBox(boxName: string): Promise<Imap.Box>;
14
- closeBox(autoExpunge?: boolean): Promise<void>;
78
+ end(): void;
15
79
  }
@@ -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[];