@cogitator-ai/channels 0.16.0 → 0.17.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.
- package/README.md +53 -12
- package/dist/assistant-config.d.ts +40 -0
- package/dist/assistant-config.d.ts.map +1 -1
- package/dist/assistant-config.js +66 -0
- package/dist/assistant-config.js.map +1 -1
- package/dist/channels/email/address.d.ts +44 -0
- package/dist/channels/email/address.d.ts.map +1 -0
- package/dist/channels/email/address.js +211 -0
- package/dist/channels/email/address.js.map +1 -0
- package/dist/channels/email/auth.d.ts +59 -0
- package/dist/channels/email/auth.d.ts.map +1 -0
- package/dist/channels/email/auth.js +212 -0
- package/dist/channels/email/auth.js.map +1 -0
- package/dist/channels/email/channel.d.ts +256 -0
- package/dist/channels/email/channel.d.ts.map +1 -0
- package/dist/channels/email/channel.js +701 -0
- package/dist/channels/email/channel.js.map +1 -0
- package/dist/channels/email/errors.d.ts +11 -0
- package/dist/channels/email/errors.d.ts.map +1 -0
- package/dist/channels/email/errors.js +13 -0
- package/dist/channels/email/errors.js.map +1 -0
- package/dist/channels/email/imap.d.ts +125 -0
- package/dist/channels/email/imap.d.ts.map +1 -0
- package/dist/channels/email/imap.js +309 -0
- package/dist/channels/email/imap.js.map +1 -0
- package/dist/channels/email/index.d.ts +7 -0
- package/dist/channels/email/index.d.ts.map +1 -0
- package/dist/channels/email/index.js +3 -0
- package/dist/channels/email/index.js.map +1 -0
- package/dist/channels/email/mime.d.ts +71 -0
- package/dist/channels/email/mime.d.ts.map +1 -0
- package/dist/channels/email/mime.js +83 -0
- package/dist/channels/email/mime.js.map +1 -0
- package/dist/channels/email/multipart.d.ts +28 -0
- package/dist/channels/email/multipart.d.ts.map +1 -0
- package/dist/channels/email/multipart.js +102 -0
- package/dist/channels/email/multipart.js.map +1 -0
- package/dist/channels/email/providers.d.ts +49 -0
- package/dist/channels/email/providers.d.ts.map +1 -0
- package/dist/channels/email/providers.js +292 -0
- package/dist/channels/email/providers.js.map +1 -0
- package/dist/channels/email/reply.d.ts +9 -0
- package/dist/channels/email/reply.d.ts.map +1 -0
- package/dist/channels/email/reply.js +122 -0
- package/dist/channels/email/reply.js.map +1 -0
- package/dist/formatters/html.d.ts +16 -0
- package/dist/formatters/html.d.ts.map +1 -0
- package/dist/formatters/html.js +535 -0
- package/dist/formatters/html.js.map +1 -0
- package/dist/formatters/markdown.d.ts.map +1 -1
- package/dist/formatters/markdown.js +1 -0
- package/dist/formatters/markdown.js.map +1 -1
- package/dist/gateway.d.ts +23 -1
- package/dist/gateway.d.ts.map +1 -1
- package/dist/gateway.js +104 -14
- package/dist/gateway.js.map +1 -1
- package/dist/inbound-debounce.d.ts +4 -1
- package/dist/inbound-debounce.d.ts.map +1 -1
- package/dist/inbound-debounce.js +4 -2
- package/dist/inbound-debounce.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime-builder.d.ts +9 -0
- package/dist/runtime-builder.d.ts.map +1 -1
- package/dist/runtime-builder.js +110 -0
- package/dist/runtime-builder.js.map +1 -1
- package/package.json +25 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/channels/email/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An optional package the channel needs is not installed. It is no fault of one message, so the
|
|
3
|
+
* IMAP inbox leaves the mail unread instead of marking it as unreadable.
|
|
4
|
+
*/
|
|
5
|
+
export declare class EmailDependencyError extends Error {
|
|
6
|
+
readonly packageName: string;
|
|
7
|
+
constructor(packageName: string, purpose: string, options?: {
|
|
8
|
+
cause?: unknown;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/channels/email/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAKhC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An optional package the channel needs is not installed. It is no fault of one message, so the
|
|
3
|
+
* IMAP inbox leaves the mail unread instead of marking it as unreadable.
|
|
4
|
+
*/
|
|
5
|
+
export class EmailDependencyError extends Error {
|
|
6
|
+
packageName;
|
|
7
|
+
constructor(packageName, purpose, options) {
|
|
8
|
+
super(`${packageName} is required ${purpose}. Install it: pnpm add ${packageName}`, options);
|
|
9
|
+
this.packageName = packageName;
|
|
10
|
+
this.name = 'EmailDependencyError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/channels/email/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IADX,YACW,WAAmB,EAC5B,OAAe,EACf,OAA6B;QAE7B,KAAK,CAAC,GAAG,WAAW,gBAAgB,OAAO,0BAA0B,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;QAJpF,gBAAW,GAAX,WAAW,CAAQ;QAK5B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/** Where the channel reads mail over IMAP. */
|
|
2
|
+
export interface EmailImapConfig {
|
|
3
|
+
host: string;
|
|
4
|
+
/** Default 993 */
|
|
5
|
+
port?: number;
|
|
6
|
+
/** TLS from the start (default true). `false` upgrades with STARTTLS where the server offers it */
|
|
7
|
+
secure?: boolean;
|
|
8
|
+
/** A password (an app password for Gmail and Outlook), or an OAuth2 `accessToken` */
|
|
9
|
+
auth: {
|
|
10
|
+
user: string;
|
|
11
|
+
pass?: string;
|
|
12
|
+
accessToken?: string;
|
|
13
|
+
};
|
|
14
|
+
/** The mailbox to read (default `INBOX`). A mailbox of the bot's own keeps your mail out of it */
|
|
15
|
+
mailbox?: string;
|
|
16
|
+
/**
|
|
17
|
+
* How often to look for new mail besides IMAP IDLE, which reports it at once, in ms
|
|
18
|
+
* (default 60 000). It also catches mail IDLE missed.
|
|
19
|
+
*/
|
|
20
|
+
pollInterval?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Only unread mail of the last days is read (default 7), so a first start does not answer a
|
|
23
|
+
* whole inbox. Older unread mail stays as it is.
|
|
24
|
+
*/
|
|
25
|
+
lookbackDays?: number;
|
|
26
|
+
/** How many messages are fetched at a time (default 20) */
|
|
27
|
+
batchSize?: number;
|
|
28
|
+
/** How many fetched messages are parsed at once (default 4). They reach the agent in order */
|
|
29
|
+
concurrency?: number;
|
|
30
|
+
/**
|
|
31
|
+
* The largest mail read, in bytes (default 25 MB, the limit of Gmail and Outlook). A larger
|
|
32
|
+
* one is not fetched, logged and marked read.
|
|
33
|
+
*/
|
|
34
|
+
maxBytes?: number;
|
|
35
|
+
/** Further options for the `ImapFlow` client, such as `tls` */
|
|
36
|
+
clientOptions?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/** What the channel uses of an `ImapFlow` client of `imapflow`, which is loaded on demand. */
|
|
39
|
+
export interface ImapClient {
|
|
40
|
+
connect(): Promise<void>;
|
|
41
|
+
logout(): Promise<void>;
|
|
42
|
+
close(): void;
|
|
43
|
+
mailboxOpen(path: string): Promise<{
|
|
44
|
+
uidValidity: bigint | number | string;
|
|
45
|
+
}>;
|
|
46
|
+
search(query: Record<string, unknown>, options: {
|
|
47
|
+
uid: true;
|
|
48
|
+
}): Promise<number[] | false | undefined>;
|
|
49
|
+
fetch(range: number[], query: {
|
|
50
|
+
uid: true;
|
|
51
|
+
size?: true;
|
|
52
|
+
source?: true;
|
|
53
|
+
}, options: {
|
|
54
|
+
uid: true;
|
|
55
|
+
}): AsyncIterable<{
|
|
56
|
+
uid: number;
|
|
57
|
+
size?: number;
|
|
58
|
+
source?: Uint8Array;
|
|
59
|
+
}>;
|
|
60
|
+
messageFlagsAdd(range: number[], flags: string[], options: {
|
|
61
|
+
uid: true;
|
|
62
|
+
}): Promise<boolean>;
|
|
63
|
+
messageFlagsRemove(range: number[], flags: string[], options: {
|
|
64
|
+
uid: true;
|
|
65
|
+
}): Promise<boolean>;
|
|
66
|
+
on(event: 'exists' | 'close' | 'error', listener: (arg?: unknown) => void): unknown;
|
|
67
|
+
}
|
|
68
|
+
interface ImapFlowModule {
|
|
69
|
+
ImapFlow: new (options: Record<string, unknown>) => ImapClient;
|
|
70
|
+
}
|
|
71
|
+
/** The first wait before reconnecting, in ms. Each failed try doubles it, up to the maximum. */
|
|
72
|
+
export declare const EMAIL_RECONNECT_MIN_DELAY = 1000;
|
|
73
|
+
export declare const EMAIL_RECONNECT_MAX_DELAY = 60000;
|
|
74
|
+
/** The largest mail read over IMAP by default, in bytes. */
|
|
75
|
+
export declare const EMAIL_DEFAULT_MAX_IMAP_BYTES: number;
|
|
76
|
+
/** Loads `imapflow`, failing with an install hint when it is missing. */
|
|
77
|
+
export declare function loadImapFlow(): Promise<ImapFlowModule>;
|
|
78
|
+
/**
|
|
79
|
+
* Reads a mailbox over IMAP: unread mail, at once through IDLE and on a timer. A message is
|
|
80
|
+
* flagged `\Seen` once it was taken, so a restart reads only what was not, and the UIDs taken
|
|
81
|
+
* are remembered in case flagging failed. A message `deliver` refuses (resolving `false`) stays
|
|
82
|
+
* unread and ends the look. A dropped connection is opened again, the wait doubling from 1 s up
|
|
83
|
+
* to 60 s while it keeps failing.
|
|
84
|
+
*/
|
|
85
|
+
export declare class ImapInbox<T> {
|
|
86
|
+
private readonly config;
|
|
87
|
+
private readonly parse;
|
|
88
|
+
private readonly deliver;
|
|
89
|
+
private client?;
|
|
90
|
+
private stopped;
|
|
91
|
+
private syncing?;
|
|
92
|
+
private again;
|
|
93
|
+
private pollTimer?;
|
|
94
|
+
private reconnectTimer?;
|
|
95
|
+
private attempts;
|
|
96
|
+
private uidValidity?;
|
|
97
|
+
private readonly done;
|
|
98
|
+
/** Messages to mark unread once the connection is open again, by `key` */
|
|
99
|
+
private readonly unseeLater;
|
|
100
|
+
constructor(config: EmailImapConfig, parse: (raw: Uint8Array, uid: number) => Promise<T>, deliver: (item: T) => Promise<boolean>);
|
|
101
|
+
/** Connects and reads what is unread. Rejects when the first connection fails. */
|
|
102
|
+
start(): Promise<void>;
|
|
103
|
+
/** Stops reading: waits up to 5 s for a read in progress, then closes the connection. */
|
|
104
|
+
stop(): Promise<void>;
|
|
105
|
+
/** Looks for unread mail now, and a call while a look is running makes it look once more after. */
|
|
106
|
+
sync(): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Marks a message unread again and forgets it, so the next look reads it once more. While the
|
|
109
|
+
* connection is being opened again, the message is marked once it is open (in the same mailbox,
|
|
110
|
+
* when its UIDVALIDITY did not change).
|
|
111
|
+
*/
|
|
112
|
+
unsee(uid: number): Promise<void>;
|
|
113
|
+
/** Marks unread what `unsee` could not while the connection was closed. */
|
|
114
|
+
private unseeQueued;
|
|
115
|
+
private connect;
|
|
116
|
+
private closed;
|
|
117
|
+
private reconnect;
|
|
118
|
+
private key;
|
|
119
|
+
private remember;
|
|
120
|
+
/** Marks a message read and remembers it, so it is not read again. */
|
|
121
|
+
private finish;
|
|
122
|
+
private syncOnce;
|
|
123
|
+
}
|
|
124
|
+
export {};
|
|
125
|
+
//# sourceMappingURL=imap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imap.d.ts","sourceRoot":"","sources":["../../../src/channels/email/imap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { EmailDependencyError } from './errors.js';
|
|
2
|
+
/** The first wait before reconnecting, in ms. Each failed try doubles it, up to the maximum. */
|
|
3
|
+
export const EMAIL_RECONNECT_MIN_DELAY = 1000;
|
|
4
|
+
export const EMAIL_RECONNECT_MAX_DELAY = 60_000;
|
|
5
|
+
/** The largest mail read over IMAP by default, in bytes. */
|
|
6
|
+
export const EMAIL_DEFAULT_MAX_IMAP_BYTES = 25 * 1024 * 1024;
|
|
7
|
+
/** How long `stop()` waits for a read in progress before it closes the connection, in ms. */
|
|
8
|
+
const STOP_TIMEOUT = 5000;
|
|
9
|
+
const MAX_TRACKED = 1000;
|
|
10
|
+
const DAY = 24 * 60 * 60 * 1000;
|
|
11
|
+
/** Loads `imapflow`, failing with an install hint when it is missing. */
|
|
12
|
+
export async function loadImapFlow() {
|
|
13
|
+
try {
|
|
14
|
+
return (await import('imapflow'));
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
throw new EmailDependencyError('imapflow', 'to read mail over IMAP', { cause: error });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Runs `task` over `items`, at most `limit` at once, with results in the order of `items`. */
|
|
21
|
+
async function mapBounded(items, limit, task) {
|
|
22
|
+
const results = new Array(items.length);
|
|
23
|
+
let next = 0;
|
|
24
|
+
const worker = async () => {
|
|
25
|
+
while (next < items.length) {
|
|
26
|
+
const index = next++;
|
|
27
|
+
try {
|
|
28
|
+
results[index] = { status: 'fulfilled', value: await task(items[index]) };
|
|
29
|
+
}
|
|
30
|
+
catch (reason) {
|
|
31
|
+
results[index] = { status: 'rejected', reason };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
await Promise.all(Array.from({ length: Math.max(1, Math.min(limit, items.length)) }, worker));
|
|
36
|
+
return results;
|
|
37
|
+
}
|
|
38
|
+
function settlesWithin(promise, ms) {
|
|
39
|
+
let timer;
|
|
40
|
+
const timeout = new Promise((resolve) => {
|
|
41
|
+
timer = setTimeout(() => resolve(false), ms);
|
|
42
|
+
});
|
|
43
|
+
return Promise.race([promise.then(() => true), timeout]).finally(() => clearTimeout(timer));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Reads a mailbox over IMAP: unread mail, at once through IDLE and on a timer. A message is
|
|
47
|
+
* flagged `\Seen` once it was taken, so a restart reads only what was not, and the UIDs taken
|
|
48
|
+
* are remembered in case flagging failed. A message `deliver` refuses (resolving `false`) stays
|
|
49
|
+
* unread and ends the look. A dropped connection is opened again, the wait doubling from 1 s up
|
|
50
|
+
* to 60 s while it keeps failing.
|
|
51
|
+
*/
|
|
52
|
+
export class ImapInbox {
|
|
53
|
+
config;
|
|
54
|
+
parse;
|
|
55
|
+
deliver;
|
|
56
|
+
client;
|
|
57
|
+
stopped = true;
|
|
58
|
+
syncing;
|
|
59
|
+
again = false;
|
|
60
|
+
pollTimer;
|
|
61
|
+
reconnectTimer;
|
|
62
|
+
attempts = 0;
|
|
63
|
+
uidValidity;
|
|
64
|
+
done = new Set();
|
|
65
|
+
/** Messages to mark unread once the connection is open again, by `key` */
|
|
66
|
+
unseeLater = new Set();
|
|
67
|
+
constructor(config, parse, deliver) {
|
|
68
|
+
this.config = config;
|
|
69
|
+
this.parse = parse;
|
|
70
|
+
this.deliver = deliver;
|
|
71
|
+
}
|
|
72
|
+
/** Connects and reads what is unread. Rejects when the first connection fails. */
|
|
73
|
+
async start() {
|
|
74
|
+
if (!this.stopped)
|
|
75
|
+
return;
|
|
76
|
+
this.stopped = false;
|
|
77
|
+
try {
|
|
78
|
+
await this.connect();
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
this.stopped = true;
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** Stops reading: waits up to 5 s for a read in progress, then closes the connection. */
|
|
86
|
+
async stop() {
|
|
87
|
+
this.stopped = true;
|
|
88
|
+
if (this.unseeLater.size > 0) {
|
|
89
|
+
console.error(`[email] ${this.unseeLater.size} mail could not be marked unread again before the stop, as the connection was closed: mark ${[...this.unseeLater].join(', ')} unread by hand`);
|
|
90
|
+
}
|
|
91
|
+
clearInterval(this.pollTimer);
|
|
92
|
+
clearTimeout(this.reconnectTimer);
|
|
93
|
+
this.pollTimer = undefined;
|
|
94
|
+
this.reconnectTimer = undefined;
|
|
95
|
+
const settled = this.syncing ? await settlesWithin(this.syncing, STOP_TIMEOUT) : true;
|
|
96
|
+
const client = this.client;
|
|
97
|
+
this.client = undefined;
|
|
98
|
+
if (!client)
|
|
99
|
+
return;
|
|
100
|
+
if (!settled) {
|
|
101
|
+
client.close();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
await client.logout();
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
client.close();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** Looks for unread mail now, and a call while a look is running makes it look once more after. */
|
|
112
|
+
sync() {
|
|
113
|
+
if (this.syncing) {
|
|
114
|
+
this.again = true;
|
|
115
|
+
return this.syncing;
|
|
116
|
+
}
|
|
117
|
+
const run = (async () => {
|
|
118
|
+
try {
|
|
119
|
+
do {
|
|
120
|
+
this.again = false;
|
|
121
|
+
try {
|
|
122
|
+
await this.syncOnce();
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error('[email] Reading the IMAP mailbox failed:', error);
|
|
126
|
+
}
|
|
127
|
+
} while (this.again && !this.stopped);
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
this.syncing = undefined;
|
|
131
|
+
}
|
|
132
|
+
})();
|
|
133
|
+
this.syncing = run;
|
|
134
|
+
return run;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Marks a message unread again and forgets it, so the next look reads it once more. While the
|
|
138
|
+
* connection is being opened again, the message is marked once it is open (in the same mailbox,
|
|
139
|
+
* when its UIDVALIDITY did not change).
|
|
140
|
+
*/
|
|
141
|
+
async unsee(uid) {
|
|
142
|
+
this.done.delete(this.key(uid));
|
|
143
|
+
const client = this.client;
|
|
144
|
+
if (!client) {
|
|
145
|
+
this.unseeLater.add(this.key(uid));
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
await client.messageFlagsRemove([uid], ['\\Seen'], { uid: true });
|
|
149
|
+
}
|
|
150
|
+
/** Marks unread what `unsee` could not while the connection was closed. */
|
|
151
|
+
async unseeQueued(client) {
|
|
152
|
+
const queued = [...this.unseeLater];
|
|
153
|
+
this.unseeLater.clear();
|
|
154
|
+
const prefix = `${this.uidValidity ?? ''}:`;
|
|
155
|
+
const uids = queued
|
|
156
|
+
.filter((key) => key.startsWith(prefix))
|
|
157
|
+
.map((key) => Number(key.slice(prefix.length)));
|
|
158
|
+
if (uids.length < queued.length) {
|
|
159
|
+
console.error('[email] The mailbox changed its UIDs, some mail could not be marked unread again');
|
|
160
|
+
}
|
|
161
|
+
if (uids.length === 0)
|
|
162
|
+
return;
|
|
163
|
+
await client.messageFlagsRemove(uids, ['\\Seen'], { uid: true });
|
|
164
|
+
}
|
|
165
|
+
async connect() {
|
|
166
|
+
const { ImapFlow } = await loadImapFlow();
|
|
167
|
+
const { host, port, secure, auth, mailbox, clientOptions } = this.config;
|
|
168
|
+
const client = new ImapFlow({
|
|
169
|
+
host,
|
|
170
|
+
port: port ?? 993,
|
|
171
|
+
secure: secure ?? true,
|
|
172
|
+
auth,
|
|
173
|
+
logger: false,
|
|
174
|
+
...clientOptions,
|
|
175
|
+
});
|
|
176
|
+
client.on('error', (error) => console.error('[email] IMAP connection error:', error));
|
|
177
|
+
client.on('exists', () => void this.sync());
|
|
178
|
+
client.on('close', () => this.closed(client));
|
|
179
|
+
try {
|
|
180
|
+
await client.connect();
|
|
181
|
+
const opened = await client.mailboxOpen(mailbox ?? 'INBOX');
|
|
182
|
+
const validity = String(opened.uidValidity);
|
|
183
|
+
if (this.uidValidity !== undefined && validity !== this.uidValidity)
|
|
184
|
+
this.done.clear();
|
|
185
|
+
this.uidValidity = validity;
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
client.close();
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
if (this.stopped) {
|
|
192
|
+
await client.logout().catch(() => client.close());
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
this.client = client;
|
|
196
|
+
this.attempts = 0;
|
|
197
|
+
if (this.unseeLater.size > 0) {
|
|
198
|
+
await this.unseeQueued(client).catch((error) => console.error('[email] Could not mark mail unread again:', error));
|
|
199
|
+
}
|
|
200
|
+
clearInterval(this.pollTimer);
|
|
201
|
+
this.pollTimer = setInterval(() => void this.sync(), this.config.pollInterval ?? 60_000);
|
|
202
|
+
void this.sync();
|
|
203
|
+
}
|
|
204
|
+
closed(client) {
|
|
205
|
+
if (client !== this.client)
|
|
206
|
+
return;
|
|
207
|
+
this.client = undefined;
|
|
208
|
+
clearInterval(this.pollTimer);
|
|
209
|
+
this.pollTimer = undefined;
|
|
210
|
+
if (!this.stopped) {
|
|
211
|
+
console.warn('[email] The IMAP connection closed, reconnecting');
|
|
212
|
+
this.reconnect();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
reconnect() {
|
|
216
|
+
const delay = Math.min(EMAIL_RECONNECT_MIN_DELAY * 2 ** this.attempts, EMAIL_RECONNECT_MAX_DELAY);
|
|
217
|
+
this.attempts++;
|
|
218
|
+
clearTimeout(this.reconnectTimer);
|
|
219
|
+
this.reconnectTimer = setTimeout(() => {
|
|
220
|
+
this.reconnectTimer = undefined;
|
|
221
|
+
if (this.stopped)
|
|
222
|
+
return;
|
|
223
|
+
this.connect().catch((error) => {
|
|
224
|
+
console.error(`[email] Reconnecting to IMAP failed (try ${this.attempts}):`, error);
|
|
225
|
+
if (!this.stopped)
|
|
226
|
+
this.reconnect();
|
|
227
|
+
});
|
|
228
|
+
}, delay);
|
|
229
|
+
}
|
|
230
|
+
key(uid) {
|
|
231
|
+
return `${this.uidValidity ?? ''}:${uid}`;
|
|
232
|
+
}
|
|
233
|
+
remember(uid) {
|
|
234
|
+
this.done.add(this.key(uid));
|
|
235
|
+
if (this.done.size > MAX_TRACKED) {
|
|
236
|
+
const oldest = this.done.values().next().value;
|
|
237
|
+
if (oldest !== undefined)
|
|
238
|
+
this.done.delete(oldest);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/** Marks a message read and remembers it, so it is not read again. */
|
|
242
|
+
async finish(client, uid) {
|
|
243
|
+
this.remember(uid);
|
|
244
|
+
await client
|
|
245
|
+
.messageFlagsAdd([uid], ['\\Seen'], { uid: true })
|
|
246
|
+
.catch((error) => console.error(`[email] Could not mark message ${uid} read:`, error));
|
|
247
|
+
}
|
|
248
|
+
async syncOnce() {
|
|
249
|
+
const client = this.client;
|
|
250
|
+
if (!client || this.stopped)
|
|
251
|
+
return;
|
|
252
|
+
const since = new Date(Date.now() - (this.config.lookbackDays ?? 7) * DAY);
|
|
253
|
+
const found = await client.search({ seen: false, since }, { uid: true });
|
|
254
|
+
const uids = (found || []).filter((uid) => !this.done.has(this.key(uid))).sort((a, b) => a - b);
|
|
255
|
+
const batchSize = Math.max(1, this.config.batchSize ?? 20);
|
|
256
|
+
const maxBytes = this.config.maxBytes ?? EMAIL_DEFAULT_MAX_IMAP_BYTES;
|
|
257
|
+
for (let start = 0; start < uids.length; start += batchSize) {
|
|
258
|
+
if (this.stopped || client !== this.client)
|
|
259
|
+
return;
|
|
260
|
+
const batch = uids.slice(start, start + batchSize);
|
|
261
|
+
const wanted = [];
|
|
262
|
+
for await (const message of client.fetch(batch, { uid: true, size: true }, { uid: true })) {
|
|
263
|
+
if (message.size !== undefined && message.size > maxBytes) {
|
|
264
|
+
console.warn(`[email] Message ${message.uid} of ${message.size} bytes is over the limit of ${maxBytes}: it is marked read without reaching the agent`);
|
|
265
|
+
await this.finish(client, message.uid);
|
|
266
|
+
}
|
|
267
|
+
else
|
|
268
|
+
wanted.push(message.uid);
|
|
269
|
+
}
|
|
270
|
+
const sources = new Map();
|
|
271
|
+
if (wanted.length > 0) {
|
|
272
|
+
for await (const message of client.fetch(wanted, { uid: true, source: true }, { uid: true })) {
|
|
273
|
+
if (message.source)
|
|
274
|
+
sources.set(message.uid, message.source);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
const fetched = batch.filter((uid) => sources.has(uid));
|
|
278
|
+
const parsed = await mapBounded(fetched, this.config.concurrency ?? 4, (uid) => {
|
|
279
|
+
const source = sources.get(uid);
|
|
280
|
+
if (!source)
|
|
281
|
+
throw new Error(`Message ${uid} has no source`);
|
|
282
|
+
return this.parse(source, uid);
|
|
283
|
+
});
|
|
284
|
+
for (const [index, uid] of fetched.entries()) {
|
|
285
|
+
if (this.stopped)
|
|
286
|
+
return;
|
|
287
|
+
const result = parsed[index];
|
|
288
|
+
if (result.status === 'rejected') {
|
|
289
|
+
if (result.reason instanceof EmailDependencyError)
|
|
290
|
+
throw result.reason;
|
|
291
|
+
console.error(`[email] Could not read message ${uid}, it is marked read:`, result.reason);
|
|
292
|
+
await this.finish(client, uid);
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
let taken = true;
|
|
296
|
+
try {
|
|
297
|
+
taken = await this.deliver(result.value);
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
console.error(`[email] Handling message ${uid} failed:`, error);
|
|
301
|
+
}
|
|
302
|
+
if (!taken)
|
|
303
|
+
return;
|
|
304
|
+
await this.finish(client, uid);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=imap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imap.js","sourceRoot":"","sources":["../../../src/channels/email/imap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AA4DhD,gGAAgG;AAChG,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7D,6FAA6F;AAC7F,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhC,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAA8B,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,KAAK,UAAU,UAAU,CACvB,KAAmB,EACnB,KAAa,EACb,IAA6B;IAE7B,MAAM,OAAO,GAA8B,IAAI,KAAK,CAA0B,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5F,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5E,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,OAAyB,EAAE,EAAU;IAC1D,IAAI,KAAgD,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,SAAS;IAcD;IACA;IACA;IAfX,MAAM,CAAc;IACpB,OAAO,GAAG,IAAI,CAAC;IACf,OAAO,CAAiB;IACxB,KAAK,GAAG,KAAK,CAAC;IACd,SAAS,CAAkC;IAC3C,cAAc,CAAiC;IAC/C,QAAQ,GAAG,CAAC,CAAC;IACb,WAAW,CAAU;IACZ,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,0EAA0E;IACzD,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhD,YACmB,MAAuB,EACvB,KAAmD,EACnD,OAAsC;QAFtC,WAAM,GAAN,MAAM,CAAiB;QACvB,UAAK,GAAL,KAAK,CAA8C;QACnD,YAAO,GAAP,OAAO,CAA+B;IACtD,CAAC;IAEJ,kFAAkF;IAClF,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CACX,WAAW,IAAI,CAAC,UAAU,CAAC,IAAI,8FAA8F,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAC9K,CAAC;QACJ,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,mGAAmG;IACnG,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACH,GAAG,CAAC;oBACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACnB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACxC,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,2EAA2E;IACnE,KAAK,CAAC,WAAW,CAAC,MAAkB;QAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,GAAG,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM;aAChB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACvC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CACX,kFAAkF,CACnF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B,IAAI;YACJ,IAAI,EAAE,IAAI,IAAI,GAAG;YACjB,MAAM,EAAE,MAAM,IAAI,IAAI;YACtB,IAAI;YACJ,MAAM,EAAE,KAAK;YACb,GAAG,aAAa;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACvF,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACtD,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;QACzF,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,MAAkB;QAC/B,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO;QACnC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,yBAAyB,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAC9C,yBAAyB,CAC1B,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACtC,OAAO,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpF,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAEO,GAAG,CAAC,GAAW;QACrB,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;IAC5C,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC/C,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,MAAM,CAAC,MAAkB,EAAE,GAAW;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,MAAM;aACT,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aACjD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACxB,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,QAAQ,EAAE,KAAK,CAAC,CACpE,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACpC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,4BAA4B,CAAC;QACtE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;YAC5D,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;gBAAE,OAAO;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;YACnD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC1F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;oBAC1D,OAAO,CAAC,IAAI,CACV,mBAAmB,OAAO,CAAC,GAAG,OAAO,OAAO,CAAC,IAAI,+BAA+B,QAAQ,gDAAgD,CACzI,CAAC;oBACF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzC,CAAC;;oBAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;YAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CACtC,MAAM,EACN,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAC3B,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,EAAE,CAAC;oBACF,IAAI,OAAO,CAAC,MAAM;wBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,IAAI,MAAM,CAAC,MAAM,YAAY,oBAAoB;wBAAE,MAAM,MAAM,CAAC,MAAM,CAAC;oBACvE,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC1F,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC/B,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC;oBACH,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;gBAClE,CAAC;gBACD,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { allowsSender, type EmailHeaders, type EmailMailbox } from './address.js';
|
|
2
|
+
export type { SenderAuthentication } from './auth.js';
|
|
3
|
+
export type { EmailImapConfig } from './imap.js';
|
|
4
|
+
export type { InboundEmail } from './mime.js';
|
|
5
|
+
export type { EmailProvider, EmailWebhookRequest, EmailWebhookResponse } from './providers.js';
|
|
6
|
+
export { EMAIL_LOOP_HEADER, EmailChannel, emailChannel, isAutomatedEmail, type EmailBasicAuth, type EmailChannelConfig, type EmailSenderAuthPolicy, type EmailSmtpConfig, type EmailSmtpServer, type EmailTransport, type EmailWebhookConfig, type MailgunWebhookConfig, type OutgoingEmail, type SecretWebhookConfig, } from './channel.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/email/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/email/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwC,MAAM,WAAW,CAAC;AAK/E,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GAWjB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { Attachment, AttachmentType } from '@cogitator-ai/types';
|
|
2
|
+
import { type EmailHeaders, type EmailMailbox } from './address.js';
|
|
3
|
+
import { type SenderAuthentication } from './auth.js';
|
|
4
|
+
/** An incoming email, whichever way it came: IMAP or a provider's webhook. */
|
|
5
|
+
export interface InboundEmail {
|
|
6
|
+
/** The `Message-ID`, with its angle brackets */
|
|
7
|
+
messageId?: string;
|
|
8
|
+
inReplyTo?: string;
|
|
9
|
+
/** The `References` ids, oldest first */
|
|
10
|
+
references: string[];
|
|
11
|
+
from?: EmailMailbox;
|
|
12
|
+
subject: string;
|
|
13
|
+
text?: string;
|
|
14
|
+
html?: string;
|
|
15
|
+
headers: EmailHeaders;
|
|
16
|
+
attachments: Attachment[];
|
|
17
|
+
/** What the receiving side found about the sender (DKIM, SPF, DMARC) */
|
|
18
|
+
authentication: SenderAuthentication;
|
|
19
|
+
/** The payload as it came, for `ChannelMessage.raw` */
|
|
20
|
+
raw: unknown;
|
|
21
|
+
}
|
|
22
|
+
/** The structural part of `postal-mime` the channel uses, loaded on demand. */
|
|
23
|
+
interface PostalMimeHeader {
|
|
24
|
+
key: string;
|
|
25
|
+
value: string;
|
|
26
|
+
}
|
|
27
|
+
interface PostalMimeAttachment {
|
|
28
|
+
filename: string | null;
|
|
29
|
+
mimeType: string;
|
|
30
|
+
disposition: string | null;
|
|
31
|
+
related?: boolean;
|
|
32
|
+
content: ArrayBuffer | Uint8Array | string;
|
|
33
|
+
}
|
|
34
|
+
interface PostalMimeEmail {
|
|
35
|
+
headers: PostalMimeHeader[];
|
|
36
|
+
subject?: string;
|
|
37
|
+
text?: string;
|
|
38
|
+
html?: string;
|
|
39
|
+
attachments: PostalMimeAttachment[];
|
|
40
|
+
}
|
|
41
|
+
interface PostalMimeParser {
|
|
42
|
+
parse(raw: string | Uint8Array): Promise<PostalMimeEmail>;
|
|
43
|
+
}
|
|
44
|
+
interface PostalMimeModule {
|
|
45
|
+
default: new () => PostalMimeParser;
|
|
46
|
+
}
|
|
47
|
+
/** Loads `postal-mime` once, failing with an install hint when it is missing. */
|
|
48
|
+
export declare function loadPostalMime(): Promise<PostalMimeModule>;
|
|
49
|
+
/** The attachment type of a MIME type. */
|
|
50
|
+
export declare function attachmentTypeOf(mimeType: string): AttachmentType;
|
|
51
|
+
/** An attachment of an email, or nothing when it is larger than `maxBytes`. */
|
|
52
|
+
export declare function attachmentOf(content: Uint8Array, mimeType: string, filename: string | undefined, maxBytes: number): Attachment | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* The thread fields, sender and subject every inbound email reads from its headers. A mail with
|
|
55
|
+
* more than one `From` has no sender, since mail clients may show another one than is checked.
|
|
56
|
+
*/
|
|
57
|
+
export declare function envelopeOf(headers: EmailHeaders): {
|
|
58
|
+
messageId?: string;
|
|
59
|
+
inReplyTo?: string;
|
|
60
|
+
references: string[];
|
|
61
|
+
from?: EmailMailbox;
|
|
62
|
+
subject: string;
|
|
63
|
+
};
|
|
64
|
+
export interface RawEmailOptions {
|
|
65
|
+
maxAttachmentBytes: number;
|
|
66
|
+
trustedAuthservIds?: readonly string[];
|
|
67
|
+
}
|
|
68
|
+
/** A raw RFC 5322 message, parsed with `postal-mime`. */
|
|
69
|
+
export declare function parseRawEmail(raw: string | Uint8Array, options: RawEmailOptions): Promise<InboundEmail>;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=mime.d.ts.map
|