@zhin.js/adapter-email 3.0.2 → 3.0.3
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/CHANGELOG.md +31 -0
- package/README.md +32 -90
- package/adapters/email.ts +29 -0
- package/lib/endpoint.d.ts +25 -32
- package/lib/endpoint.js +181 -323
- package/lib/index.d.ts +3 -10
- package/lib/index.js +3 -23
- package/lib/protocol.d.ts +107 -0
- package/lib/protocol.js +160 -0
- package/lib/transport.d.ts +32 -0
- package/lib/transport.js +27 -0
- package/package.json +36 -7
- package/plugin.ts +8 -0
- package/schema.json +58 -0
- package/src/endpoint.ts +231 -398
- package/src/index.ts +27 -29
- package/src/protocol.ts +269 -0
- package/src/transport.ts +65 -0
- package/lib/adapter.d.ts +0 -14
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js +0 -21
- package/lib/adapter.js.map +0 -1
- package/lib/endpoint.d.ts.map +0 -1
- package/lib/endpoint.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/segment-mapper.d.ts +0 -2
- package/lib/segment-mapper.d.ts.map +0 -1
- package/lib/segment-mapper.js +0 -2
- package/lib/segment-mapper.js.map +0 -1
- package/lib/types.d.ts +0 -49
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -2
- package/lib/types.js.map +0 -1
- package/src/adapter.ts +0 -24
- package/src/segment-mapper.ts +0 -1
- package/src/types.ts +0 -52
package/src/index.ts
CHANGED
|
@@ -1,31 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export {
|
|
2
|
+
addressListText,
|
|
3
|
+
formatInboundContent,
|
|
4
|
+
formatOutboundMail,
|
|
5
|
+
htmlToText,
|
|
6
|
+
parseEmailMessage,
|
|
7
|
+
resolveEmailConfig,
|
|
8
|
+
senderDisplayName,
|
|
9
|
+
type EmailAdapterConfig,
|
|
10
|
+
type EmailAttachmentsConfig,
|
|
11
|
+
type EmailMessage,
|
|
12
|
+
type EmailWireSegment,
|
|
13
|
+
type ImapConfig,
|
|
14
|
+
type ResolvedEmailConfig,
|
|
15
|
+
type SmtpConfig,
|
|
16
|
+
} from './protocol.js';
|
|
6
17
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
18
|
+
export {
|
|
19
|
+
EmailEndpoint,
|
|
20
|
+
type EmailEndpointOptions,
|
|
21
|
+
} from './endpoint.js';
|
|
12
22
|
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
provide({
|
|
21
|
-
name: "email",
|
|
22
|
-
description: "Email Endpoint Adapter",
|
|
23
|
-
mounted: async (p: Plugin) => {
|
|
24
|
-
const adapter = new EmailAdapter(p);
|
|
25
|
-
await adapter.start();
|
|
26
|
-
return adapter;
|
|
27
|
-
},
|
|
28
|
-
dispose: async (adapter: EmailAdapter) => {
|
|
29
|
-
await adapter.stop();
|
|
30
|
-
},
|
|
31
|
-
} as Context<"email">);
|
|
23
|
+
export {
|
|
24
|
+
defaultCreateImap,
|
|
25
|
+
defaultCreateSmtp,
|
|
26
|
+
type EmailImapFetchMessage,
|
|
27
|
+
type EmailImapTransport,
|
|
28
|
+
type EmailSmtpTransport,
|
|
29
|
+
} from './transport.js';
|
package/src/protocol.ts
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email SMTP/IMAP helpers (no legacy Adapter/Endpoint / segment-mapper).
|
|
3
|
+
* Canonicalization is owned by gateway/core before endpoint.send.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { Attachment } from 'mailparser';
|
|
7
|
+
import { htmlToPlainTextWithBlockBreaks } from '@zhin.js/core';
|
|
8
|
+
|
|
9
|
+
export interface SmtpConfig {
|
|
10
|
+
readonly host: string;
|
|
11
|
+
readonly port: number;
|
|
12
|
+
readonly secure: boolean;
|
|
13
|
+
readonly auth: {
|
|
14
|
+
readonly user: string;
|
|
15
|
+
readonly pass: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface ImapConfig {
|
|
20
|
+
readonly host: string;
|
|
21
|
+
readonly port: number;
|
|
22
|
+
readonly tls: boolean;
|
|
23
|
+
readonly user: string;
|
|
24
|
+
readonly password: string;
|
|
25
|
+
readonly checkInterval?: number;
|
|
26
|
+
readonly mailbox?: string;
|
|
27
|
+
readonly markSeen?: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface EmailAttachmentsConfig {
|
|
31
|
+
readonly enabled: boolean;
|
|
32
|
+
readonly downloadPath?: string;
|
|
33
|
+
readonly maxFileSize?: number;
|
|
34
|
+
readonly allowedTypes?: readonly string[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Plugin Runtime owner config (`plugins.<instanceKey>` / schema.json). */
|
|
38
|
+
export interface EmailAdapterConfig {
|
|
39
|
+
readonly name?: string;
|
|
40
|
+
readonly smtp?: SmtpConfig;
|
|
41
|
+
readonly imap?: ImapConfig;
|
|
42
|
+
readonly attachments?: EmailAttachmentsConfig;
|
|
43
|
+
/** Transitional: legacy root `endpoints[]` with `context: email`. */
|
|
44
|
+
readonly endpoints?: ReadonlyArray<Partial<ResolvedEmailConfig> & {
|
|
45
|
+
readonly context?: string;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface ResolvedEmailConfig {
|
|
50
|
+
readonly context: 'email';
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly smtp: SmtpConfig;
|
|
53
|
+
readonly imap: Required<Pick<ImapConfig, 'checkInterval' | 'mailbox' | 'markSeen'>> & ImapConfig;
|
|
54
|
+
readonly attachments?: {
|
|
55
|
+
readonly enabled: boolean;
|
|
56
|
+
readonly downloadPath: string;
|
|
57
|
+
readonly maxFileSize: number;
|
|
58
|
+
readonly allowedTypes?: readonly string[];
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface EmailMessage {
|
|
63
|
+
readonly messageId: string;
|
|
64
|
+
readonly from: string;
|
|
65
|
+
readonly to: readonly string[];
|
|
66
|
+
readonly cc?: readonly string[];
|
|
67
|
+
readonly bcc?: readonly string[];
|
|
68
|
+
readonly subject: string;
|
|
69
|
+
readonly text?: string;
|
|
70
|
+
readonly html?: string;
|
|
71
|
+
readonly attachments: readonly Attachment[];
|
|
72
|
+
readonly date: Date;
|
|
73
|
+
readonly uid: number;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface EmailWireSegment {
|
|
77
|
+
readonly type: string;
|
|
78
|
+
readonly data?: Record<string, unknown>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function resolveEmailConfig(config: EmailAdapterConfig = {}): ResolvedEmailConfig {
|
|
82
|
+
const entry = config.endpoints?.find((item) => item.context === 'email');
|
|
83
|
+
const smtp = config.smtp ?? entry?.smtp;
|
|
84
|
+
const imap = config.imap ?? entry?.imap;
|
|
85
|
+
if (!smtp?.host || !smtp.auth?.user || !imap?.host || !imap.user) {
|
|
86
|
+
throw new TypeError(
|
|
87
|
+
'Email adapter requires smtp + imap config (plugins.<key>.smtp/imap or endpoints with context: email)',
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
const name = (typeof config.name === 'string' && config.name)
|
|
91
|
+
|| (typeof entry?.name === 'string' && entry.name)
|
|
92
|
+
|| process.env.EMAIL_BOT_NAME
|
|
93
|
+
|| 'email-bot';
|
|
94
|
+
const attachmentsSource = config.attachments ?? entry?.attachments;
|
|
95
|
+
const attachments = attachmentsSource?.enabled
|
|
96
|
+
? {
|
|
97
|
+
enabled: true as const,
|
|
98
|
+
downloadPath: attachmentsSource.downloadPath || './downloads/email',
|
|
99
|
+
maxFileSize: attachmentsSource.maxFileSize || 10 * 1024 * 1024,
|
|
100
|
+
allowedTypes: attachmentsSource.allowedTypes,
|
|
101
|
+
}
|
|
102
|
+
: undefined;
|
|
103
|
+
return {
|
|
104
|
+
context: 'email',
|
|
105
|
+
name,
|
|
106
|
+
smtp,
|
|
107
|
+
imap: {
|
|
108
|
+
...imap,
|
|
109
|
+
checkInterval: imap.checkInterval ?? 60_000,
|
|
110
|
+
mailbox: imap.mailbox ?? 'INBOX',
|
|
111
|
+
markSeen: imap.markSeen !== false,
|
|
112
|
+
},
|
|
113
|
+
attachments,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function htmlToText(html: string): string {
|
|
118
|
+
return htmlToPlainTextWithBlockBreaks(html);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export function addressListText(addr: unknown): string[] {
|
|
122
|
+
if (!addr) return [];
|
|
123
|
+
if (Array.isArray(addr)) {
|
|
124
|
+
return addr.map((item) => addressText(item));
|
|
125
|
+
}
|
|
126
|
+
return [addressText(addr)];
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function addressText(addr: unknown): string {
|
|
130
|
+
if (!addr || typeof addr !== 'object') return String(addr ?? '');
|
|
131
|
+
const record = addr as { text?: string; address?: string };
|
|
132
|
+
return record.text || record.address || String(addr);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function parseEmailMessage(
|
|
136
|
+
parsed: {
|
|
137
|
+
messageId?: string;
|
|
138
|
+
from?: unknown;
|
|
139
|
+
to?: unknown;
|
|
140
|
+
cc?: unknown;
|
|
141
|
+
bcc?: unknown;
|
|
142
|
+
subject?: string;
|
|
143
|
+
text?: string;
|
|
144
|
+
html?: string | false;
|
|
145
|
+
attachments?: Attachment[];
|
|
146
|
+
date?: Date;
|
|
147
|
+
},
|
|
148
|
+
uid: number,
|
|
149
|
+
): EmailMessage {
|
|
150
|
+
return {
|
|
151
|
+
messageId: parsed.messageId || '',
|
|
152
|
+
from: parsed.from ? addressListText(parsed.from)[0] || '' : '',
|
|
153
|
+
to: addressListText(parsed.to),
|
|
154
|
+
cc: addressListText(parsed.cc),
|
|
155
|
+
bcc: addressListText(parsed.bcc),
|
|
156
|
+
subject: parsed.subject || '',
|
|
157
|
+
text: parsed.text || '',
|
|
158
|
+
html: parsed.html ? String(parsed.html) : '',
|
|
159
|
+
attachments: parsed.attachments || [],
|
|
160
|
+
date: parsed.date || new Date(),
|
|
161
|
+
uid,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/** Build inbound text for MessageGateway.receive (gateway owns reply routing). */
|
|
166
|
+
export function formatInboundContent(email: EmailMessage): string {
|
|
167
|
+
const parts: string[] = [];
|
|
168
|
+
if (email.subject) parts.push(`Subject: ${email.subject}`, '');
|
|
169
|
+
if (email.text) {
|
|
170
|
+
parts.push(email.text);
|
|
171
|
+
} else if (email.html) {
|
|
172
|
+
const fromHtml = htmlToText(email.html);
|
|
173
|
+
if (fromHtml) parts.push(fromHtml);
|
|
174
|
+
}
|
|
175
|
+
for (const attachment of email.attachments) {
|
|
176
|
+
const kind = attachment.contentType?.startsWith('image/') ? 'image' : 'file';
|
|
177
|
+
const name = attachment.filename || 'attachment';
|
|
178
|
+
parts.push(`[${kind}: ${name}]`);
|
|
179
|
+
}
|
|
180
|
+
const text = parts.join('\n').trim();
|
|
181
|
+
return text || '(Empty email)';
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export function senderDisplayName(from: string): string {
|
|
185
|
+
const name = from.split('<')[0]?.trim();
|
|
186
|
+
return name || from;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Wire-encode an already-rendered outbound payload into nodemailer options.
|
|
191
|
+
* Segment canonicalization is intentionally not done here.
|
|
192
|
+
*/
|
|
193
|
+
export function formatOutboundMail(
|
|
194
|
+
payload: unknown,
|
|
195
|
+
options: { readonly from: string; readonly to: string; readonly subject?: string },
|
|
196
|
+
): {
|
|
197
|
+
from: string;
|
|
198
|
+
to: string;
|
|
199
|
+
subject: string;
|
|
200
|
+
text?: string;
|
|
201
|
+
html?: string;
|
|
202
|
+
attachments?: Array<{ filename: string; path: string }>;
|
|
203
|
+
} {
|
|
204
|
+
const mail = {
|
|
205
|
+
from: options.from,
|
|
206
|
+
to: options.to,
|
|
207
|
+
subject: options.subject ?? 'Message from Bot',
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
if (typeof payload === 'string') {
|
|
211
|
+
return { ...mail, text: payload };
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
const segments: Array<string | EmailWireSegment> = Array.isArray(payload)
|
|
215
|
+
? payload as Array<string | EmailWireSegment>
|
|
216
|
+
: payload && typeof payload === 'object' && 'type' in (payload as object)
|
|
217
|
+
? [payload as EmailWireSegment]
|
|
218
|
+
: [];
|
|
219
|
+
|
|
220
|
+
if (segments.length === 0) {
|
|
221
|
+
return {
|
|
222
|
+
...mail,
|
|
223
|
+
text: payload == null ? '' : typeof payload === 'object'
|
|
224
|
+
? JSON.stringify(payload)
|
|
225
|
+
: String(payload),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
const textParts: string[] = [];
|
|
230
|
+
const htmlParts: string[] = [];
|
|
231
|
+
const attachments: Array<{ filename: string; path: string }> = [];
|
|
232
|
+
|
|
233
|
+
for (const item of segments) {
|
|
234
|
+
if (typeof item === 'string') {
|
|
235
|
+
textParts.push(item);
|
|
236
|
+
htmlParts.push(item.replace(/\n/g, '<br>'));
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
const data = item.data ?? {};
|
|
240
|
+
switch (item.type) {
|
|
241
|
+
case 'text': {
|
|
242
|
+
const textContent = String(data.text ?? data.content ?? '');
|
|
243
|
+
textParts.push(textContent);
|
|
244
|
+
htmlParts.push(textContent.replace(/\n/g, '<br>'));
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
case 'image':
|
|
248
|
+
case 'file': {
|
|
249
|
+
if (typeof data.url === 'string' && data.url) {
|
|
250
|
+
attachments.push({
|
|
251
|
+
filename: String(data.filename || (item.type === 'image' ? 'image.png' : 'file')),
|
|
252
|
+
path: data.url,
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
default:
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return {
|
|
263
|
+
...mail,
|
|
264
|
+
...(textParts.length > 0
|
|
265
|
+
? { text: textParts.join('\n'), html: htmlParts.join('<br>') }
|
|
266
|
+
: {}),
|
|
267
|
+
...(attachments.length > 0 ? { attachments } : {}),
|
|
268
|
+
};
|
|
269
|
+
}
|
package/src/transport.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email SMTP/IMAP transport factories (nodemailer + imap).
|
|
3
|
+
*/
|
|
4
|
+
import nodemailer from 'nodemailer';
|
|
5
|
+
import Imap from 'imap';
|
|
6
|
+
import type { ResolvedEmailConfig } from './protocol.js';
|
|
7
|
+
|
|
8
|
+
export interface EmailSmtpTransport {
|
|
9
|
+
verify(): Promise<void>;
|
|
10
|
+
sendMail(options: unknown): Promise<{ messageId?: string }>;
|
|
11
|
+
close(): void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface EmailImapTransport {
|
|
15
|
+
once(event: 'ready' | 'error', listener: (...args: unknown[]) => void): void;
|
|
16
|
+
on(event: string, listener: (...args: unknown[]) => void): void;
|
|
17
|
+
connect(): void;
|
|
18
|
+
end(): void;
|
|
19
|
+
openBox(
|
|
20
|
+
mailbox: string,
|
|
21
|
+
openReadWrite: boolean,
|
|
22
|
+
callback: (error: Error | null, box?: unknown) => void,
|
|
23
|
+
): void;
|
|
24
|
+
search(
|
|
25
|
+
criteria: string[],
|
|
26
|
+
callback: (error: Error | null, results: number[]) => void,
|
|
27
|
+
): void;
|
|
28
|
+
fetch(
|
|
29
|
+
results: number[],
|
|
30
|
+
options: { bodies: string; markSeen?: boolean },
|
|
31
|
+
): {
|
|
32
|
+
on(event: 'message', listener: (msg: EmailImapFetchMessage, seqno: number) => void): void;
|
|
33
|
+
once(event: 'error' | 'end', listener: (error?: Error) => void): void;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface EmailImapFetchMessage {
|
|
38
|
+
on(event: 'body', listener: (stream: NodeJS.ReadableStream) => void): void;
|
|
39
|
+
once(event: 'attributes', listener: (attrs: { uid?: number }) => void): void;
|
|
40
|
+
once(event: 'end', listener: () => void): void;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function defaultCreateSmtp(config: ResolvedEmailConfig['smtp']): EmailSmtpTransport {
|
|
44
|
+
const transporter = nodemailer.createTransport({
|
|
45
|
+
host: config.host,
|
|
46
|
+
port: config.port,
|
|
47
|
+
secure: config.secure,
|
|
48
|
+
auth: { user: config.auth.user, pass: config.auth.pass },
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
verify: () => transporter.verify().then(() => undefined),
|
|
52
|
+
sendMail: (options) => transporter.sendMail(options as nodemailer.SendMailOptions),
|
|
53
|
+
close: () => transporter.close(),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function defaultCreateImap(config: ResolvedEmailConfig['imap']): EmailImapTransport {
|
|
58
|
+
return new Imap({
|
|
59
|
+
user: config.user,
|
|
60
|
+
password: config.password,
|
|
61
|
+
host: config.host,
|
|
62
|
+
port: config.port,
|
|
63
|
+
tls: config.tls,
|
|
64
|
+
}) as unknown as EmailImapTransport;
|
|
65
|
+
}
|
package/lib/adapter.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Email 适配器
|
|
3
|
-
*/
|
|
4
|
-
import { Adapter, Plugin, type OutboundRichSegmentPolicy } from 'zhin.js';
|
|
5
|
-
import { EmailEndpoint } from "./endpoint.js";
|
|
6
|
-
import type { EmailEndpointConfig } from "./types.js";
|
|
7
|
-
export declare class EmailAdapter extends Adapter<EmailEndpoint> {
|
|
8
|
-
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
9
|
-
static outboundRichSegmentPolicy: OutboundRichSegmentPolicy;
|
|
10
|
-
static interactivePolicy: "text";
|
|
11
|
-
constructor(plugin: Plugin);
|
|
12
|
-
createEndpoint(config: EmailEndpointConfig): EmailEndpoint;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=adapter.d.ts.map
|
package/lib/adapter.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,qBAAa,YAAa,SAAQ,OAAO,CAAC,aAAa,CAAC;IACtD,gBAAyB,YAAY,mCAAoC;IACzE,OAAgB,yBAAyB,EAAE,yBAAyB,CAIlE;IACF,OAAgB,iBAAiB,EAAG,MAAM,CAAU;gBAEtC,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa;CAG7D"}
|
package/lib/adapter.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Email 适配器
|
|
3
|
-
*/
|
|
4
|
-
import { Adapter } from 'zhin.js';
|
|
5
|
-
import { EmailEndpoint } from "./endpoint.js";
|
|
6
|
-
export class EmailAdapter extends Adapter {
|
|
7
|
-
static capabilities = ['inbound', 'outbound'];
|
|
8
|
-
static outboundRichSegmentPolicy = {
|
|
9
|
-
qrcode: 'image',
|
|
10
|
-
html: 'origin',
|
|
11
|
-
markdown: 'image',
|
|
12
|
-
};
|
|
13
|
-
static interactivePolicy = 'text';
|
|
14
|
-
constructor(plugin) {
|
|
15
|
-
super(plugin, 'email', []);
|
|
16
|
-
}
|
|
17
|
-
createEndpoint(config) {
|
|
18
|
-
return new EmailEndpoint(this, config);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=adapter.js.map
|
package/lib/adapter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAA0C,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,OAAO,YAAa,SAAQ,OAAsB;IACtD,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IACzE,MAAM,CAAU,yBAAyB,GAA8B;QACrE,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;KAClB,CAAC;IACF,MAAM,CAAU,iBAAiB,GAAG,MAAe,CAAC;IAElD,YAAY,MAAc;QACtB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,MAA2B;QACtC,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC"}
|
package/lib/endpoint.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAwB,WAAW,EAC3F,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,qBAAa,aAAc,SAAQ,YAAa,YAAW,QAAQ,CAAC,mBAAmB,EAAE,YAAY,CAAC;IAe/E,OAAO,EAAE,YAAY;IAdxC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,UAAU,CAA+B;IAEjD,IAAI,MAAM,6BAEX;IAED,IAAI,GAAG,WAEJ;gBAEkB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB;IAe/D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,eAAe;YAWT,iBAAiB;IAoC/B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IAwBzB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAyC7D,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE;IAyCzD,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjC,iBAAiB;YA+DjB,kBAAkB;IAqBhC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG1C"}
|
package/lib/endpoint.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,KAAK,EAAE,YAAY,CAAC;KACrB;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAE3B,OAAO,CAAC;IACN,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAqB,EAAE,EAAE;QACvC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;CACkB,CAAC,CAAC"}
|
package/lib/segment-mapper.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segment-mapper.d.ts","sourceRoot":"","sources":["../src/segment-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|
package/lib/segment-mapper.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segment-mapper.js","sourceRoot":"","sources":["../src/segment-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|
package/lib/types.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Email 适配器类型定义
|
|
3
|
-
*/
|
|
4
|
-
import type { Attachment } from "mailparser";
|
|
5
|
-
export interface SmtpConfig {
|
|
6
|
-
host: string;
|
|
7
|
-
port: number;
|
|
8
|
-
secure: boolean;
|
|
9
|
-
auth: {
|
|
10
|
-
user: string;
|
|
11
|
-
pass: string;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export interface ImapConfig {
|
|
15
|
-
host: string;
|
|
16
|
-
port: number;
|
|
17
|
-
tls: boolean;
|
|
18
|
-
user: string;
|
|
19
|
-
password: string;
|
|
20
|
-
checkInterval?: number;
|
|
21
|
-
mailbox?: string;
|
|
22
|
-
markSeen?: boolean;
|
|
23
|
-
}
|
|
24
|
-
export interface EmailEndpointConfig {
|
|
25
|
-
context: "email";
|
|
26
|
-
name: string;
|
|
27
|
-
smtp: SmtpConfig;
|
|
28
|
-
imap: ImapConfig;
|
|
29
|
-
attachments?: {
|
|
30
|
-
enabled: boolean;
|
|
31
|
-
downloadPath?: string;
|
|
32
|
-
maxFileSize?: number;
|
|
33
|
-
allowedTypes?: string[];
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
export interface EmailMessage {
|
|
37
|
-
messageId: string;
|
|
38
|
-
from: string;
|
|
39
|
-
to: string[];
|
|
40
|
-
cc?: string[];
|
|
41
|
-
bcc?: string[];
|
|
42
|
-
subject: string;
|
|
43
|
-
text?: string;
|
|
44
|
-
html?: string;
|
|
45
|
-
attachments: Attachment[];
|
|
46
|
-
date: Date;
|
|
47
|
-
uid: number;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb"}
|
package/lib/types.js
DELETED
package/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/src/adapter.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Email 适配器
|
|
3
|
-
*/
|
|
4
|
-
import { Adapter, Plugin, type OutboundRichSegmentPolicy } from 'zhin.js';
|
|
5
|
-
import { EmailEndpoint } from "./endpoint.js";
|
|
6
|
-
import type { EmailEndpointConfig } from "./types.js";
|
|
7
|
-
|
|
8
|
-
export class EmailAdapter extends Adapter<EmailEndpoint> {
|
|
9
|
-
static override readonly capabilities = ['inbound', 'outbound'] as const;
|
|
10
|
-
static override outboundRichSegmentPolicy: OutboundRichSegmentPolicy = {
|
|
11
|
-
qrcode: 'image',
|
|
12
|
-
html: 'origin',
|
|
13
|
-
markdown: 'image',
|
|
14
|
-
};
|
|
15
|
-
static override interactivePolicy = 'text' as const;
|
|
16
|
-
|
|
17
|
-
constructor(plugin: Plugin) {
|
|
18
|
-
super(plugin, 'email', []);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
createEndpoint(config: EmailEndpointConfig): EmailEndpoint {
|
|
22
|
-
return new EmailEndpoint(this, config);
|
|
23
|
-
}
|
|
24
|
-
}
|
package/src/segment-mapper.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { toCanonicalSegments, fromCanonicalSegments } from 'zhin.js';
|
package/src/types.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Email 适配器类型定义
|
|
3
|
-
*/
|
|
4
|
-
import type { Attachment } from "mailparser";
|
|
5
|
-
|
|
6
|
-
export interface SmtpConfig {
|
|
7
|
-
host: string;
|
|
8
|
-
port: number;
|
|
9
|
-
secure: boolean;
|
|
10
|
-
auth: {
|
|
11
|
-
user: string;
|
|
12
|
-
pass: string;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface ImapConfig {
|
|
17
|
-
host: string;
|
|
18
|
-
port: number;
|
|
19
|
-
tls: boolean;
|
|
20
|
-
user: string;
|
|
21
|
-
password: string;
|
|
22
|
-
checkInterval?: number;
|
|
23
|
-
mailbox?: string;
|
|
24
|
-
markSeen?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface EmailEndpointConfig {
|
|
28
|
-
context: "email";
|
|
29
|
-
name: string;
|
|
30
|
-
smtp: SmtpConfig;
|
|
31
|
-
imap: ImapConfig;
|
|
32
|
-
attachments?: {
|
|
33
|
-
enabled: boolean;
|
|
34
|
-
downloadPath?: string;
|
|
35
|
-
maxFileSize?: number;
|
|
36
|
-
allowedTypes?: string[];
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface EmailMessage {
|
|
41
|
-
messageId: string;
|
|
42
|
-
from: string;
|
|
43
|
-
to: string[];
|
|
44
|
-
cc?: string[];
|
|
45
|
-
bcc?: string[];
|
|
46
|
-
subject: string;
|
|
47
|
-
text?: string;
|
|
48
|
-
html?: string;
|
|
49
|
-
attachments: Attachment[];
|
|
50
|
-
date: Date;
|
|
51
|
-
uid: number;
|
|
52
|
-
}
|