@framers/agentos-ext-channel-email 0.4.1 → 0.4.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/README.md +43 -10
- package/dist/EmailChannelAdapter.d.ts +3 -1
- package/dist/EmailChannelAdapter.d.ts.map +1 -1
- package/dist/EmailChannelAdapter.js +3 -1
- package/dist/EmailChannelAdapter.js.map +1 -1
- package/dist/EmailService.d.ts +85 -16
- package/dist/EmailService.d.ts.map +1 -1
- package/dist/EmailService.js +176 -100
- package/dist/EmailService.js.map +1 -1
- package/dist/ResendTransport.d.ts +5 -2
- package/dist/ResendTransport.d.ts.map +1 -1
- package/dist/ResendTransport.js.map +1 -1
- package/dist/messageHeaders.d.ts +50 -10
- package/dist/messageHeaders.d.ts.map +1 -1
- package/dist/messageHeaders.js +175 -15
- package/dist/messageHeaders.js.map +1 -1
- package/dist/messageText.d.ts +9 -1
- package/dist/messageText.d.ts.map +1 -1
- package/dist/messageText.js +17 -1
- package/dist/messageText.js.map +1 -1
- package/dist/preferences/RecipientCapability.d.ts +16 -11
- package/dist/preferences/RecipientCapability.d.ts.map +1 -1
- package/dist/preferences/RecipientCapability.js +10 -8
- package/dist/preferences/RecipientCapability.js.map +1 -1
- package/dist/preferences/SuppressionStore.d.ts +23 -15
- package/dist/preferences/SuppressionStore.d.ts.map +1 -1
- package/dist/preferences/SuppressionStore.js +20 -12
- package/dist/preferences/SuppressionStore.js.map +1 -1
- package/dist/preferences/database.d.ts +20 -4
- package/dist/preferences/database.d.ts.map +1 -1
- package/dist/preferences/database.js +34 -7
- package/dist/preferences/database.js.map +1 -1
- package/dist/preferences/index.d.ts +2 -1
- package/dist/preferences/index.d.ts.map +1 -1
- package/dist/preferences/index.js +2 -1
- package/dist/preferences/index.js.map +1 -1
- package/dist/reads.d.ts +69 -0
- package/dist/reads.d.ts.map +1 -0
- package/dist/reads.js +167 -0
- package/dist/reads.js.map +1 -0
- package/dist/tools/extractCodes.d.ts +5 -0
- package/dist/tools/extractCodes.d.ts.map +1 -1
- package/dist/tools/extractCodes.js +10 -2
- package/dist/tools/extractCodes.js.map +1 -1
- package/dist/tools/read.d.ts +5 -0
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +5 -1
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/reply.d.ts +2 -1
- package/dist/tools/reply.d.ts.map +1 -1
- package/dist/tools/reply.js +3 -2
- package/dist/tools/reply.js.map +1 -1
- package/dist/tools/search.d.ts +4 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +8 -1
- package/dist/tools/search.js.map +1 -1
- package/manifest.json +2 -2
- package/package.json +1 -1
package/dist/EmailService.js
CHANGED
|
@@ -46,6 +46,42 @@ const imapflow_1 = require("imapflow");
|
|
|
46
46
|
const ResendTransport_js_1 = require("./ResendTransport.js");
|
|
47
47
|
const messageHeaders_js_1 = require("./messageHeaders.js");
|
|
48
48
|
const messageText_js_1 = require("./messageText.js");
|
|
49
|
+
const reads_js_1 = require("./reads.js");
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Helpers
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* The fields nodemailer writes in a form of its own whatever value it is given (its `FORMATTED_HEADERS`) and that
|
|
55
|
+
* `sendEmail` lets a caller add, in lowercase: `Sender`, an address nodemailer parses and writes again, and
|
|
56
|
+
* `References`, whose message ids nodemailer writes as they are once the check has passed them. Every other added
|
|
57
|
+
* field is given to nodemailer as a prepared value, which it writes as given, folded at its white space.
|
|
58
|
+
*/
|
|
59
|
+
const FORMATTED_BY_NODEMAILER = new Set(['sender', 'references']);
|
|
60
|
+
/** A checked field as nodemailer's `headers` list takes it, so nodemailer writes the value Resend would be given. */
|
|
61
|
+
function smtpField(key, value) {
|
|
62
|
+
return { key, value: FORMATTED_BY_NODEMAILER.has(key.toLowerCase()) ? value : { prepared: true, foldLines: true, value } };
|
|
63
|
+
}
|
|
64
|
+
/** The first address an envelope's list names, such as its Reply-To or its From, or `undefined`. */
|
|
65
|
+
function firstAddress(list) {
|
|
66
|
+
return list?.find((entry) => typeof entry?.address === 'string' && entry.address !== '')?.address;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A fetched message as `readInbox` and `searchEmails` give it. A Date field that does not read as a date gives an empty
|
|
70
|
+
* `date`: imapflow gives the field's text in place of a `Date` then, so one such message cannot fail the whole read.
|
|
71
|
+
*/
|
|
72
|
+
function emailMessageOf(msg, body) {
|
|
73
|
+
const envelope = msg.envelope;
|
|
74
|
+
return {
|
|
75
|
+
messageId: envelope?.messageId ?? '',
|
|
76
|
+
from: envelope?.from?.[0]?.address ?? '',
|
|
77
|
+
to: envelope?.to?.[0]?.address ?? '',
|
|
78
|
+
subject: envelope?.subject ?? '',
|
|
79
|
+
date: (0, reads_js_1.isoDateOf)(envelope?.date),
|
|
80
|
+
body,
|
|
81
|
+
flags: Array.from(msg.flags ?? []),
|
|
82
|
+
uid: msg.uid,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
49
85
|
// ---------------------------------------------------------------------------
|
|
50
86
|
// Service
|
|
51
87
|
// ---------------------------------------------------------------------------
|
|
@@ -121,19 +157,24 @@ class EmailService {
|
|
|
121
157
|
* `subject` and `body` must be strings, and `html` a string when it is given (`null` sends no HTML part, as
|
|
122
158
|
* `undefined` does): any other value throws a `TypeError` naming the field, never its value, before either transport
|
|
123
159
|
* is used. An object body would have nodemailer read the file its `path` names or fetch the address its `href` names
|
|
124
|
-
* into the message, and an object subject marked `prepared` would be written into the headers as it is.
|
|
160
|
+
* into the message, and an object subject marked `prepared` would be written into the headers as it is. The subject
|
|
161
|
+
* goes out on one line through either transport: each line break in it, and each other control character but the
|
|
162
|
+
* tab, is sent as a space, as nodemailer writes a line break in a subject.
|
|
125
163
|
*
|
|
126
164
|
* `headers` adds fields to the message and never replaces one the service writes. It must be a plain object of names
|
|
127
|
-
* and values: a name printable US-ASCII with no space or colon, given once in any case,
|
|
128
|
-
* `Cc`, `Bcc`, `Reply-To`, `Subject`, `Date`, `Message-ID`, `MIME-Version` or a `Content-`
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
165
|
+
* and values, made in this realm or another: a name printable US-ASCII with no space or colon, given once in any case,
|
|
166
|
+
* and none of `From`, `To`, `Cc`, `Bcc`, `Reply-To`, `Subject`, `Date`, `Message-ID`, `MIME-Version` or a `Content-`
|
|
167
|
+
* field, in any case; a value a string of printable US-ASCII words, one space or tab between each two and none at
|
|
168
|
+
* either end, with no word so long that the name, a colon, a space and the word pass 998 characters, and for
|
|
169
|
+
* `In-Reply-To` and `References` message ids, each in angle brackets. Anything else throws an `Error` that names the
|
|
170
|
+
* field, or its place when its name is at fault, and none of its value, before either transport is used. Each value
|
|
171
|
+
* is read once, and both transports send the fields as read: nodemailer writes each value as given, folded at its
|
|
172
|
+
* white space, except `Sender`, which it writes as the address it parses from the value.
|
|
132
173
|
*/
|
|
133
174
|
async sendEmail(options) {
|
|
134
175
|
this.requireRunning();
|
|
135
176
|
// Each is read once, so the value checked is the value sent.
|
|
136
|
-
const subject = (0, messageText_js_1.requireText)('subject', options.subject);
|
|
177
|
+
const subject = (0, messageText_js_1.oneLine)((0, messageText_js_1.requireText)('subject', options.subject));
|
|
137
178
|
const body = (0, messageText_js_1.requireText)('body', options.body);
|
|
138
179
|
const html = (0, messageText_js_1.optionalText)('html', options.html);
|
|
139
180
|
const headers = (0, messageHeaders_js_1.requireAddedHeaders)(options.headers);
|
|
@@ -164,8 +205,8 @@ class EmailService {
|
|
|
164
205
|
cc: options.cc,
|
|
165
206
|
bcc: options.bcc,
|
|
166
207
|
// A list, so nodemailer adds each field under its own name: an object with `key` and `value` properties would be
|
|
167
|
-
// read as one field named by its `key`.
|
|
168
|
-
headers: headers === undefined ? undefined : Object.entries(headers).map(([key, value]) => (
|
|
208
|
+
// read as one field named by its `key`. Each value is prepared, so nodemailer writes it as Resend is given it.
|
|
209
|
+
headers: headers === undefined ? undefined : Object.entries(headers).map(([key, value]) => smtpField(key, value)),
|
|
169
210
|
attachments: options.attachments?.map((a) => ({
|
|
170
211
|
filename: a.filename,
|
|
171
212
|
content: a.content,
|
|
@@ -176,8 +217,15 @@ class EmailService {
|
|
|
176
217
|
return { messageId: info.messageId };
|
|
177
218
|
}
|
|
178
219
|
// ── Read Inbox ──
|
|
179
|
-
|
|
220
|
+
/**
|
|
221
|
+
* The last `limit` messages of `folder`, newest first: INBOX and 20 when they are not given, and 20 when `limit` is
|
|
222
|
+
* `null`. `limit` must be a whole number of at least 1: any other value throws an `Error` before any mail is read,
|
|
223
|
+
* where the fetch would name a message past the last one, which a server answers BAD. A message whose Date field does
|
|
224
|
+
* not read as a date is given with an empty `date`.
|
|
225
|
+
*/
|
|
226
|
+
async readInbox(folder = 'INBOX', limit) {
|
|
180
227
|
this.requireRunning();
|
|
228
|
+
const count = (0, reads_js_1.requireLimit)(limit, 20);
|
|
181
229
|
const client = await this.getImapClient();
|
|
182
230
|
try {
|
|
183
231
|
const lock = await client.getMailboxLock(folder);
|
|
@@ -187,26 +235,14 @@ class EmailService {
|
|
|
187
235
|
const totalMessages = client.mailbox ? client.mailbox.exists : 0;
|
|
188
236
|
if (totalMessages === 0)
|
|
189
237
|
return [];
|
|
190
|
-
const startSeq = Math.max(1, totalMessages -
|
|
238
|
+
const startSeq = Math.max(1, totalMessages - count + 1);
|
|
191
239
|
for await (const msg of client.fetch(`${startSeq}:*`, {
|
|
192
240
|
envelope: true,
|
|
193
241
|
source: true,
|
|
194
242
|
flags: true,
|
|
195
243
|
uid: true,
|
|
196
244
|
})) {
|
|
197
|
-
|
|
198
|
-
const source = msg.source?.toString() ?? '';
|
|
199
|
-
const bodyText = this.extractPlainText(source);
|
|
200
|
-
messages.push({
|
|
201
|
-
messageId: envelope?.messageId ?? '',
|
|
202
|
-
from: envelope?.from?.[0]?.address ?? '',
|
|
203
|
-
to: envelope?.to?.[0]?.address ?? '',
|
|
204
|
-
subject: envelope?.subject ?? '',
|
|
205
|
-
date: envelope?.date?.toISOString() ?? '',
|
|
206
|
-
body: bodyText,
|
|
207
|
-
flags: Array.from(msg.flags ?? []),
|
|
208
|
-
uid: msg.uid,
|
|
209
|
-
});
|
|
245
|
+
messages.push(emailMessageOf(msg, this.extractPlainText(msg.source?.toString() ?? '')));
|
|
210
246
|
}
|
|
211
247
|
}
|
|
212
248
|
finally {
|
|
@@ -219,8 +255,22 @@ class EmailService {
|
|
|
219
255
|
}
|
|
220
256
|
}
|
|
221
257
|
// ── Search Emails ──
|
|
258
|
+
/**
|
|
259
|
+
* The messages of `folder` (INBOX unless given) whose subject, body or From holds `query`, ignoring case, received on
|
|
260
|
+
* or after `since` when it is given: the last `limit` (20 unless given) the search finds, newest first. The search
|
|
261
|
+
* answers UIDs, and the messages are fetched by those UIDs, which need not follow the messages' sequence numbers.
|
|
262
|
+
*
|
|
263
|
+
* `limit` must be a whole number of at least 1, and `since` an ISO 8601 date, such as `2026-10-15`, alone or followed
|
|
264
|
+
* by a time and an offset, which are checked and then disregarded: the search starts from the day the date names, as
|
|
265
|
+
* written, on every server. Either counts as not given when `null`, and `since` when empty. Any other value of either,
|
|
266
|
+
* a day its month lacks such as `2026-02-30` among them, throws an `Error` before the search: imapflow leaves a date it
|
|
267
|
+
* cannot read out of the search, which would answer mail of every date, and `Date` rolls a day past its month's end
|
|
268
|
+
* over into the next month. A message whose Date field does not read as a date is given with an empty `date`.
|
|
269
|
+
*/
|
|
222
270
|
async searchEmails(options) {
|
|
223
271
|
this.requireRunning();
|
|
272
|
+
const limit = (0, reads_js_1.requireLimit)(options.limit, 20);
|
|
273
|
+
const since = (0, reads_js_1.requireSince)(options.since);
|
|
224
274
|
const client = await this.getImapClient();
|
|
225
275
|
const folder = options.folder ?? 'INBOX';
|
|
226
276
|
try {
|
|
@@ -236,32 +286,23 @@ class EmailService {
|
|
|
236
286
|
{ from: options.query },
|
|
237
287
|
];
|
|
238
288
|
}
|
|
239
|
-
if (
|
|
240
|
-
|
|
289
|
+
if (since !== undefined) {
|
|
290
|
+
// Given as text, the day goes to every server as SINCE and that day. imapflow sends a Date to a server that
|
|
291
|
+
// announces WITHIN as YOUNGER and the seconds since that moment (RFC 5032), and to any other as its day in UTC.
|
|
292
|
+
searchCriteria.since = since;
|
|
241
293
|
}
|
|
242
294
|
const uids = await client.search(searchCriteria, { uid: true });
|
|
243
295
|
const uidList = Array.isArray(uids) ? uids : [];
|
|
244
|
-
const limitedUids = uidList.slice(-
|
|
296
|
+
const limitedUids = uidList.slice(-limit);
|
|
245
297
|
if (limitedUids.length > 0) {
|
|
298
|
+
// The search answered UIDs, so the fetch reads its range as UIDs rather than sequence numbers.
|
|
246
299
|
for await (const msg of client.fetch(limitedUids, {
|
|
247
300
|
envelope: true,
|
|
248
301
|
source: true,
|
|
249
302
|
flags: true,
|
|
250
303
|
uid: true,
|
|
251
|
-
})) {
|
|
252
|
-
|
|
253
|
-
const source = msg.source?.toString() ?? '';
|
|
254
|
-
const bodyText = this.extractPlainText(source);
|
|
255
|
-
messages.push({
|
|
256
|
-
messageId: envelope?.messageId ?? '',
|
|
257
|
-
from: envelope?.from?.[0]?.address ?? '',
|
|
258
|
-
to: envelope?.to?.[0]?.address ?? '',
|
|
259
|
-
subject: envelope?.subject ?? '',
|
|
260
|
-
date: envelope?.date?.toISOString() ?? '',
|
|
261
|
-
body: bodyText,
|
|
262
|
-
flags: Array.from(msg.flags ?? []),
|
|
263
|
-
uid: msg.uid,
|
|
264
|
-
});
|
|
304
|
+
}, { uid: true })) {
|
|
305
|
+
messages.push(emailMessageOf(msg, this.extractPlainText(msg.source?.toString() ?? '')));
|
|
265
306
|
}
|
|
266
307
|
}
|
|
267
308
|
}
|
|
@@ -275,53 +316,67 @@ class EmailService {
|
|
|
275
316
|
}
|
|
276
317
|
}
|
|
277
318
|
// ── Extract Verification Codes ──
|
|
319
|
+
/**
|
|
320
|
+
* The codes in the INBOX message whose Message-ID is `messageId`, given with or without its angle brackets: the
|
|
321
|
+
* matches of `pattern` when it is given, else runs of four to eight digits, then the codes that phrases such as "code
|
|
322
|
+
* is", "OTP:", "is your" or "enter ... to" point to, each once. The message is searched for by the id in angle brackets
|
|
323
|
+
* and fetched by the UID the search answers; a search matches every Message-ID that holds the text, so only the
|
|
324
|
+
* message whose own id is the one given counts. An id that is not one message id, or that no message has, gives no
|
|
325
|
+
* codes. The text searched is the plain part and the HTML part, each tag of the HTML written as a space.
|
|
326
|
+
*
|
|
327
|
+
* `pattern` is a JavaScript regular expression, compiled with the `g` flag: each match's first group is a code, or the
|
|
328
|
+
* whole match when that group takes no part in it, and an empty one is none; a match of empty text moves the search
|
|
329
|
+
* on by one character. A pattern that is `null` or empty counts as not given. One that is not a string, or that does
|
|
330
|
+
* not compile, throws an `Error` before any mail is read. The pattern runs over the message for at most 250 ms, and
|
|
331
|
+
* one that runs longer, as one that backtracks without end such as `(\d+)+$` can, throws an `Error` naming that limit.
|
|
332
|
+
*/
|
|
278
333
|
async extractCodes(messageId, pattern) {
|
|
279
334
|
this.requireRunning();
|
|
335
|
+
const custom = (0, reads_js_1.requirePattern)(pattern);
|
|
336
|
+
const wanted = (0, messageHeaders_js_1.oneMessageId)(messageId);
|
|
337
|
+
if (wanted === undefined)
|
|
338
|
+
return { codes: [], messageId };
|
|
280
339
|
const client = await this.getImapClient();
|
|
281
340
|
try {
|
|
282
341
|
const lock = await client.getMailboxLock('INBOX');
|
|
342
|
+
let source;
|
|
283
343
|
try {
|
|
284
|
-
|
|
285
|
-
const uids = await client.search({ header: { 'message-id': messageId } }, { uid: true });
|
|
344
|
+
const uids = await client.search({ header: { 'message-id': wanted } }, { uid: true });
|
|
286
345
|
const uidList = Array.isArray(uids) ? uids : [];
|
|
287
|
-
if (uidList.length
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
const bodyText = this.extractPlainText(source);
|
|
293
|
-
const htmlBody = this.extractHtmlBody(source);
|
|
294
|
-
const fullText = bodyText + ' ' + htmlBody;
|
|
295
|
-
// Apply custom or default code extraction patterns
|
|
296
|
-
const regex = pattern
|
|
297
|
-
? new RegExp(pattern, 'g')
|
|
298
|
-
: /\b(\d{4,8})\b/g;
|
|
299
|
-
const codes = [];
|
|
300
|
-
let match;
|
|
301
|
-
while ((match = regex.exec(fullText)) !== null) {
|
|
302
|
-
codes.push(match[1] ?? match[0]);
|
|
303
|
-
}
|
|
304
|
-
// Also look for common verification code patterns
|
|
305
|
-
const verifyPatterns = [
|
|
306
|
-
/(?:code|verification|OTP|pin)\s*(?:is|:)\s*(\w{4,8})/gi,
|
|
307
|
-
/(\d{6})\s*(?:is your|to verify)/gi,
|
|
308
|
-
/(?:enter|use)\s+(\w{4,8})\s+(?:to|as|for)/gi,
|
|
309
|
-
];
|
|
310
|
-
for (const vp of verifyPatterns) {
|
|
311
|
-
while ((match = vp.exec(fullText)) !== null) {
|
|
312
|
-
const code = match[1];
|
|
313
|
-
if (code && !codes.includes(code)) {
|
|
314
|
-
codes.push(code);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
346
|
+
if (uidList.length > 0) {
|
|
347
|
+
// The loop reads every message fetched and keeps the first whose own id is the one given.
|
|
348
|
+
for await (const msg of client.fetch(uidList, { envelope: true, source: true }, { uid: true })) {
|
|
349
|
+
if (source === undefined && (0, messageHeaders_js_1.messageIdIn)(msg.envelope?.messageId) === wanted)
|
|
350
|
+
source = msg.source?.toString() ?? '';
|
|
317
351
|
}
|
|
318
|
-
return { codes: [...new Set(codes)], messageId };
|
|
319
352
|
}
|
|
320
353
|
}
|
|
321
354
|
finally {
|
|
322
355
|
lock.release();
|
|
323
356
|
}
|
|
324
|
-
|
|
357
|
+
if (source === undefined)
|
|
358
|
+
return { codes: [], messageId };
|
|
359
|
+
const bodyText = this.extractPlainText(source);
|
|
360
|
+
const htmlBody = this.extractHtmlBody(source);
|
|
361
|
+
const fullText = bodyText + ' ' + htmlBody;
|
|
362
|
+
// A caller's pattern runs under its time limit; the default matches no empty text and takes time growing with the text.
|
|
363
|
+
const codes = custom === undefined ? Array.from(fullText.matchAll(/\b(\d{4,8})\b/g), (found) => found[1]) : (0, reads_js_1.codesMatching)(custom, fullText);
|
|
364
|
+
let match;
|
|
365
|
+
// Also look for common verification code patterns
|
|
366
|
+
const verifyPatterns = [
|
|
367
|
+
/(?:code|verification|OTP|pin)\s*(?:is|:)\s*(\w{4,8})/gi,
|
|
368
|
+
/(\d{6})\s*(?:is your|to verify)/gi,
|
|
369
|
+
/(?:enter|use)\s+(\w{4,8})\s+(?:to|as|for)/gi,
|
|
370
|
+
];
|
|
371
|
+
for (const vp of verifyPatterns) {
|
|
372
|
+
while ((match = vp.exec(fullText)) !== null) {
|
|
373
|
+
const code = match[1];
|
|
374
|
+
if (code && !codes.includes(code)) {
|
|
375
|
+
codes.push(code);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return { codes: [...new Set(codes)], messageId };
|
|
325
380
|
}
|
|
326
381
|
finally {
|
|
327
382
|
await client.logout();
|
|
@@ -329,12 +384,24 @@ class EmailService {
|
|
|
329
384
|
}
|
|
330
385
|
// ── Reply to Email ──
|
|
331
386
|
/**
|
|
332
|
-
* Replies to the message whose Message-ID is `messageId`,
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
337
|
-
*
|
|
387
|
+
* Replies to the INBOX message whose Message-ID is `messageId`, given with or without its angle brackets, and sends
|
|
388
|
+
* `body` with `html`, when given, through the transport that sends. The original is searched for by the id in angle
|
|
389
|
+
* brackets and fetched by the UID the search answers; a search matches every Message-ID that holds the text, so the
|
|
390
|
+
* original is the message whose own id is the one given. The reply goes to the original's Reply-To, or its From when
|
|
391
|
+
* it names none (RFC 5322 section 3.6.2), under its subject with one `Re: ` before it unless it starts with one in any
|
|
392
|
+
* case, on one line. It is threaded as RFC 5322 section 3.6.4 has it: `In-Reply-To` names the original, and
|
|
393
|
+
* `References` lists the ids of the original's own References, or the one id of its In-Reply-To when its References
|
|
394
|
+
* lists none, then the original's id. Only fields of those very names are read, each whole however it is folded, and
|
|
395
|
+
* an id in them that holds a character outside printable US-ASCII, or that is too long for one line, is left out, so
|
|
396
|
+
* both transports send the same fields whatever the original holds.
|
|
397
|
+
*
|
|
398
|
+
* `messageId` and `body` must be strings, and `html` a string when it is given (`null` sends no HTML part): any other
|
|
399
|
+
* value throws a `TypeError` naming the field, never its value, before the original is read or anything is sent.
|
|
400
|
+
* Besides the bodies' files and addresses (see `sendEmail`), an object message id marked `prepared` would be written
|
|
401
|
+
* into the `In-Reply-To` header as it is. A message id that is not one id of printable US-ASCII with no space, or that
|
|
402
|
+
* is too long for one line of `In-Reply-To`, throws an `Error` before the original is read; no message with that id,
|
|
403
|
+
* or an original that names no address to reply to, throws an `Error` before anything is sent. None of these errors
|
|
404
|
+
* holds the id.
|
|
338
405
|
*/
|
|
339
406
|
async replyToEmail(messageId, body, html) {
|
|
340
407
|
this.requireRunning();
|
|
@@ -343,23 +410,26 @@ class EmailService {
|
|
|
343
410
|
(0, messageText_js_1.requireText)('messageId', messageId);
|
|
344
411
|
(0, messageText_js_1.requireText)('body', body);
|
|
345
412
|
html = (0, messageText_js_1.optionalText)('html', html);
|
|
346
|
-
//
|
|
413
|
+
// The original's id as In-Reply-To and the end of References carry it, through either transport.
|
|
414
|
+
const parent = (0, messageHeaders_js_1.requireMessageId)(messageId);
|
|
347
415
|
const client = await this.getImapClient();
|
|
348
|
-
let
|
|
349
|
-
let originalSubject = '';
|
|
350
|
-
let previous = '';
|
|
416
|
+
let original;
|
|
351
417
|
try {
|
|
352
418
|
const lock = await client.getMailboxLock('INBOX');
|
|
353
419
|
try {
|
|
354
|
-
const uids = await client.search({ header: { 'message-id':
|
|
420
|
+
const uids = await client.search({ header: { 'message-id': parent } }, { uid: true });
|
|
355
421
|
const uidList = Array.isArray(uids) ? uids : [];
|
|
356
422
|
if (uidList.length > 0) {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
423
|
+
// The loop reads every message fetched and keeps the first whose own id is the one given.
|
|
424
|
+
for await (const msg of client.fetch(uidList, { envelope: true, headers: true }, { uid: true })) {
|
|
425
|
+
if (original !== undefined || (0, messageHeaders_js_1.messageIdIn)(msg.envelope?.messageId) !== parent)
|
|
426
|
+
continue;
|
|
427
|
+
original = {
|
|
428
|
+
// A server gives the From as the Reply-To of a message that names none (RFC 3501 section 7.4.2).
|
|
429
|
+
to: firstAddress(msg.envelope?.replyTo) ?? firstAddress(msg.envelope?.from) ?? '',
|
|
430
|
+
subject: (0, messageText_js_1.oneLine)(msg.envelope?.subject ?? ''),
|
|
431
|
+
thread: (0, messageHeaders_js_1.threadOf)(msg.headers?.toString() ?? ''),
|
|
432
|
+
};
|
|
363
433
|
}
|
|
364
434
|
}
|
|
365
435
|
}
|
|
@@ -370,25 +440,31 @@ class EmailService {
|
|
|
370
440
|
finally {
|
|
371
441
|
await client.logout();
|
|
372
442
|
}
|
|
373
|
-
|
|
374
|
-
|
|
443
|
+
if (original === undefined)
|
|
444
|
+
throw new Error('The reply was refused: no message in the inbox has that message id');
|
|
445
|
+
if (original.to === '')
|
|
446
|
+
throw new Error('The reply was refused: the message names no address to reply to');
|
|
447
|
+
const replySubject = /^re:/i.test(original.subject) ? original.subject : `Re: ${original.subject}`;
|
|
448
|
+
const references = [...original.thread, parent].join(' ');
|
|
449
|
+
// Checked by the rules every added field meets, so both transports are given the same fields.
|
|
450
|
+
const thread = (0, messageHeaders_js_1.requireHeaders)({ 'In-Reply-To': parent, References: references });
|
|
375
451
|
if (this.resend) {
|
|
376
452
|
return this.resend.send({
|
|
377
453
|
from: this.config.from,
|
|
378
|
-
to:
|
|
454
|
+
to: original.to,
|
|
379
455
|
subject: replySubject,
|
|
380
456
|
text: body,
|
|
381
457
|
html,
|
|
382
|
-
headers:
|
|
458
|
+
headers: thread,
|
|
383
459
|
});
|
|
384
460
|
}
|
|
385
461
|
const info = await this.transporter.sendMail({
|
|
386
462
|
from: this.config.from ?? this.config.smtp.user,
|
|
387
|
-
to:
|
|
463
|
+
to: original.to,
|
|
388
464
|
subject: replySubject,
|
|
389
465
|
text: body,
|
|
390
466
|
html,
|
|
391
|
-
inReplyTo:
|
|
467
|
+
inReplyTo: parent,
|
|
392
468
|
references,
|
|
393
469
|
});
|
|
394
470
|
return { messageId: info.messageId };
|
|
@@ -461,8 +537,8 @@ class EmailService {
|
|
|
461
537
|
if (part.match(/Content-Transfer-Encoding:\s*base64/i)) {
|
|
462
538
|
body = Buffer.from(body.replace(/\s/g, ''), 'base64').toString('utf-8');
|
|
463
539
|
}
|
|
464
|
-
//
|
|
465
|
-
return
|
|
540
|
+
// Each tag written as a space, found in one pass.
|
|
541
|
+
return (0, reads_js_1.withoutTags)(body).replace(/\s+/g, ' ').trim();
|
|
466
542
|
}
|
|
467
543
|
}
|
|
468
544
|
}
|
package/dist/EmailService.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailService.js","sourceRoot":"","sources":["../src/EmailService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EmailService.js","sourceRoot":"","sources":["../src/EmailService.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,8 +54,11 @@ export interface OutgoingEmail {
|
|
|
54
54
|
bcc?: string;
|
|
55
55
|
/**
|
|
56
56
|
* Header fields added to the message, such as `In-Reply-To` and `References` for a reply. A name is printable US-ASCII
|
|
57
|
-
* with no space or colon, given once in any case
|
|
58
|
-
*
|
|
57
|
+
* with no space or colon, given once in any case. A value is a string of printable US-ASCII words, one space or tab
|
|
58
|
+
* between each two and none at either end, with no word so long that the name, a colon, a space and the word pass
|
|
59
|
+
* 998 characters; `In-Reply-To` and `References` list message ids, each in angle brackets. `send` refuses anything
|
|
60
|
+
* else before any request, by the rules `EmailService.sendEmail` checks, so a field goes out through Resend as it would
|
|
61
|
+
* through SMTP.
|
|
59
62
|
*/
|
|
60
63
|
headers?: Record<string, string>;
|
|
61
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResendTransport.d.ts","sourceRoot":"","sources":["../src/ResendTransport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAkB,CAAC;AAK9C,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAChC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb
|
|
1
|
+
{"version":3,"file":"ResendTransport.d.ts","sourceRoot":"","sources":["../src/ResendTransport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAkB,CAAC;AAK9C,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAChC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAED,oIAAoI;AACpI,qBAAa,aAAc,SAAQ,KAAK;IACtC,2BAA2B;IAClB,IAAI,SAAmB;IAEhC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,wEAAwE;IACxE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAE9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI;CAM3E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnG;AAyFD,0BAA0B;AAC1B,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,OAAO,EAAE,aAAa;IAIlC;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CA0BnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResendTransport.js","sourceRoot":"","sources":["../src/ResendTransport.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"ResendTransport.js","sourceRoot":"","sources":["../src/ResendTransport.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA+HH,4CAGC;AAhID,+CAA4C;AAC5C,2DAAqD;AAErD,2BAA2B;AAC3B,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,8FAA8F;AAC9F,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAEvD,yGAAyG;AACzG,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAElC,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,iHAAiH;AACjH,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAEzD;;;GAGG;AACU,QAAA,cAAc,GAAG,eAAe,CAAC;AAE9C,uEAAuE;AACvE,MAAM,YAAY,GAAG,SAAS,CAAC;AAgE/B,oIAAoI;AACpI,MAAa,aAAc,SAAQ,KAAK;IAatC,YAAY,MAAc,EAAE,IAAY,EAAE,iBAAgC;QACxE,KAAK,CAAC,iCAAiC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QAb3D,2BAA2B;QAClB,SAAI,GAAG,eAAe,CAAC;QAa9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;CACF;AAnBD,sCAmBC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAoB,EAAE,KAAc,EAAE,KAAa;IAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAgC,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC;IAC7I,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,mGAAmG;AACnG,SAAS,YAAY,CAAC,OAAgB;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,uHAAuH;AACvH,KAAK,UAAU,SAAS,CAAC,MAAgB;IACvC,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAY,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAE,IAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxH,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,MAAgB;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAY,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAE,IAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChH,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,0HAA0H;AAC1H,KAAK,UAAU,cAAc,CAAC,IAAY;IACxC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,gHAAgH;QAChH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;IACxG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC;AAED,uHAAuH;AACvH,KAAK,UAAU,YAAY,CAAC,UAA8B;IACxD,MAAM,MAAM,GAA2B,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;IACzE,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtI,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,sBAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAChC,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7E,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAChD,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC;IACvF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,MAAM,CAAC,OAAsB,EAAE,MAA0C;IACtF,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7H,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IACnE,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS;QAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACnD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACtD,IAAI,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAChD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IACrJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAa;IACtD,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;AACpH,CAAC;AAED,0BAA0B;AAC1B,MAAa,eAAe;IAG1B,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,OAAsB;QAC/B,2GAA2G;QAC3G,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACnH,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QAC/D,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;QAC5G,qGAAqG;QACrG,MAAM,MAAM,GAAG,IAAA,kCAAc,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACjG,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;QACjF,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9F,IAAI,MAAM,CAAC,EAAE;gBAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClH,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,IAAI,QAAQ;gBAAE,MAAM,KAAK,CAAC;YACvE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF;AA5CD,0CA4CC"}
|