@absolutejs/rag 0.3.0 → 0.4.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/dist/adapter-kit/index.js +22 -10
- package/dist/adapter-kit/index.js.map +3 -3
- package/dist/index.js +22 -10
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -17126,6 +17126,16 @@ var parseMaildirMetadata = (source) => {
|
|
|
17126
17126
|
...maildirKey ? { emailMailboxKey: maildirKey } : {}
|
|
17127
17127
|
};
|
|
17128
17128
|
};
|
|
17129
|
+
var RFC2047_WORD = /=\?([^?]+)\?([BbQq])\?([^?]*)\?=/g;
|
|
17130
|
+
var decodeEncodedWord = (charset, encoding, text) => {
|
|
17131
|
+
const bytes = encoding.toUpperCase() === "B" ? Buffer.from(text, "base64") : Buffer.from(decodeQuotedPrintable(text.replace(/_/g, " ")), "latin1");
|
|
17132
|
+
try {
|
|
17133
|
+
return new TextDecoder(charset.trim().toLowerCase()).decode(bytes);
|
|
17134
|
+
} catch {
|
|
17135
|
+
return bytes.toString("utf8");
|
|
17136
|
+
}
|
|
17137
|
+
};
|
|
17138
|
+
var decodeRfc2047 = (value) => value.includes("=?") ? value.replace(/\?=\s+=\?/g, "?==?").replace(RFC2047_WORD, (_match, charset, enc, text) => decodeEncodedWord(charset, enc, text)) : value;
|
|
17129
17139
|
var parseHeaderBlock = (headerBlock) => {
|
|
17130
17140
|
const unfolded = headerBlock.replace(/\n[ \t]+/g, " ");
|
|
17131
17141
|
const headers = new Map;
|
|
@@ -17135,7 +17145,7 @@ var parseHeaderBlock = (headerBlock) => {
|
|
|
17135
17145
|
if (separator < 0) {
|
|
17136
17146
|
continue;
|
|
17137
17147
|
}
|
|
17138
|
-
headers.set(line.slice(0, separator).trim().toLowerCase(), line.slice(separator + 1).trim());
|
|
17148
|
+
headers.set(line.slice(0, separator).trim().toLowerCase(), decodeRfc2047(line.slice(separator + 1).trim()));
|
|
17139
17149
|
}
|
|
17140
17150
|
return headers;
|
|
17141
17151
|
};
|
|
@@ -17147,7 +17157,7 @@ var decodeEmailPartBody = (body, encoding) => {
|
|
|
17147
17157
|
return new Uint8Array(Buffer.from(trimmed.replace(/\s+/g, ""), "base64"));
|
|
17148
17158
|
}
|
|
17149
17159
|
if (normalizedEncoding === "quoted-printable") {
|
|
17150
|
-
return new Uint8Array(Buffer.from(decodeQuotedPrintable(body), "
|
|
17160
|
+
return new Uint8Array(Buffer.from(decodeQuotedPrintable(body), "latin1"));
|
|
17151
17161
|
}
|
|
17152
17162
|
return new Uint8Array(Buffer.from(body, "utf8"));
|
|
17153
17163
|
};
|
|
@@ -17541,7 +17551,7 @@ var chooseEmailBodyCandidate = (current, candidate) => {
|
|
|
17541
17551
|
}
|
|
17542
17552
|
return candidate.length > current.length ? candidate : current;
|
|
17543
17553
|
};
|
|
17544
|
-
var parseEmailMimeParts = (body, contentType) => {
|
|
17554
|
+
var parseEmailMimeParts = (body, contentType, transferEncoding) => {
|
|
17545
17555
|
const attachments = [];
|
|
17546
17556
|
let bodyText;
|
|
17547
17557
|
let bodyHtml;
|
|
@@ -17563,11 +17573,11 @@ var parseEmailMimeParts = (body, contentType) => {
|
|
|
17563
17573
|
const nestedContentType = headers.get("content-type");
|
|
17564
17574
|
const disposition = headers.get("content-disposition");
|
|
17565
17575
|
const dispositionType = disposition?.split(";")[0]?.trim().toLowerCase();
|
|
17566
|
-
const
|
|
17576
|
+
const transferEncoding2 = headers.get("content-transfer-encoding");
|
|
17567
17577
|
const contentId = normalizeEmailContentId(headers.get("content-id"));
|
|
17568
17578
|
const contentLocation = normalizeWhitespace(headers.get("content-location") ?? "");
|
|
17569
17579
|
const filename = disposition?.match(/filename="?([^";]+)"?/i)?.[1] ?? nestedContentType?.match(/name="?([^";]+)"?/i)?.[1];
|
|
17570
|
-
const decodedBytes = decodeEmailPartBody(nestedBody,
|
|
17580
|
+
const decodedBytes = decodeEmailPartBody(nestedBody, transferEncoding2);
|
|
17571
17581
|
const decodedText = Buffer.from(decodedBytes).toString("utf8");
|
|
17572
17582
|
const normalizedContentType = nestedContentType?.toLowerCase() ?? "";
|
|
17573
17583
|
const isMultipart = normalizedContentType.startsWith("multipart/");
|
|
@@ -17615,7 +17625,8 @@ var parseEmailMimeParts = (body, contentType) => {
|
|
|
17615
17625
|
}
|
|
17616
17626
|
}
|
|
17617
17627
|
};
|
|
17618
|
-
|
|
17628
|
+
const topLevelBody = transferEncoding && !parseMimeBoundary(contentType) ? decodeUtf8(decodeEmailPartBody(body, transferEncoding)) : body;
|
|
17629
|
+
collectMimeParts(topLevelBody, contentType);
|
|
17619
17630
|
return {
|
|
17620
17631
|
attachments,
|
|
17621
17632
|
bodyHtml,
|
|
@@ -17631,7 +17642,7 @@ var authoredEmailText = (text) => {
|
|
|
17631
17642
|
var extractEmailText = (raw) => {
|
|
17632
17643
|
const { body, headerBlock } = splitEmailMessage(raw);
|
|
17633
17644
|
const headers = parseHeaderBlock(headerBlock);
|
|
17634
|
-
const parsed = parseEmailMimeParts(body, headers.get("content-type"));
|
|
17645
|
+
const parsed = parseEmailMimeParts(body, headers.get("content-type"), headers.get("content-transfer-encoding"));
|
|
17635
17646
|
const htmlText = parsed.bodyHtml ? stripEmailHtml(parsed.bodyHtml) : undefined;
|
|
17636
17647
|
const plainText = parsed.bodyText ? normalizeWhitespace(parsed.bodyText) : undefined;
|
|
17637
17648
|
const preferredBodyText = choosePreferredEmailBodyText(htmlText, plainText);
|
|
@@ -17688,6 +17699,7 @@ var parseEmailHeaders = (raw) => {
|
|
|
17688
17699
|
ccAddressEntries: ccParsed.entries,
|
|
17689
17700
|
ccAddresses: ccParsed.addresses,
|
|
17690
17701
|
contentType: getHeader("Content-Type"),
|
|
17702
|
+
contentTransferEncoding: getHeader("Content-Transfer-Encoding"),
|
|
17691
17703
|
from,
|
|
17692
17704
|
fromAddress: fromParsed.addresses[0],
|
|
17693
17705
|
fromAddressEntries: fromParsed.entries,
|
|
@@ -17712,7 +17724,7 @@ var parseEmailHeaders = (raw) => {
|
|
|
17712
17724
|
var extractEmailDocumentsFromRawMessage = async (input, raw, options) => {
|
|
17713
17725
|
const headers = parseEmailHeaders(raw);
|
|
17714
17726
|
const { body } = splitEmailMessage(raw);
|
|
17715
|
-
const parsed = parseEmailMimeParts(body, headers.contentType);
|
|
17727
|
+
const parsed = parseEmailMimeParts(body, headers.contentType, headers.contentTransferEncoding);
|
|
17716
17728
|
const source = options?.source ?? input.source ?? input.path ?? input.name ?? `${slugify(input.title ?? DEFAULT_BINARY_NAME)}.eml`;
|
|
17717
17729
|
const maildirMetadata = parseMaildirMetadata(source);
|
|
17718
17730
|
const mergedMetadata = {
|
|
@@ -17915,7 +17927,7 @@ var extractEmailDocumentsFromRawMessage = async (input, raw, options) => {
|
|
|
17915
17927
|
return [messageDocument, ...attachmentDocuments.flat()];
|
|
17916
17928
|
};
|
|
17917
17929
|
var normalizeEmailThreadKey = (value) => {
|
|
17918
|
-
const normalized = normalizeWhitespace(value?.replace(/^(re|fw|fwd)\s*:\s
|
|
17930
|
+
const normalized = normalizeWhitespace(value?.replace(/^(?:(?:re|fw|fwd|aw|sv|vs|antw)\s*:\s*)+/i, "")?.replace(/[<>]/g, "")?.toLowerCase() ?? "");
|
|
17919
17931
|
return normalized || undefined;
|
|
17920
17932
|
};
|
|
17921
17933
|
var normalizeEmailMessageId = (value) => {
|
|
@@ -36371,5 +36383,5 @@ export {
|
|
|
36371
36383
|
addRAGEvaluationSuiteCase
|
|
36372
36384
|
};
|
|
36373
36385
|
|
|
36374
|
-
//# debugId=
|
|
36386
|
+
//# debugId=E2463B33C7EF84EC64756E2164756E21
|
|
36375
36387
|
//# sourceMappingURL=index.js.map
|