@fluxmail/core 0.9.0 → 0.10.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/searchContext.d.ts +17 -0
- package/dist/searchContext.d.ts.map +1 -0
- package/dist/searchContext.js +117 -0
- package/dist/searchContext.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Message } from './types.js';
|
|
2
|
+
export declare const SEARCH_CONTEXT_INPUT_LIMIT: number;
|
|
3
|
+
export declare const SEARCH_CONTEXT_OUTPUT_LIMIT = 300;
|
|
4
|
+
export interface BoundedBodyText {
|
|
5
|
+
text: string;
|
|
6
|
+
complete: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function htmlToReadableText(value: string): string;
|
|
9
|
+
/** Limit decoded content by UTF-8 bytes without splitting a Unicode code point. */
|
|
10
|
+
export declare function boundBodyText(value: string, limit?: number): BoundedBodyText;
|
|
11
|
+
export declare function extractSearchContext(body: {
|
|
12
|
+
text?: string;
|
|
13
|
+
html?: string;
|
|
14
|
+
}, queryText: string, options?: {
|
|
15
|
+
complete?: boolean;
|
|
16
|
+
}): NonNullable<Message['searchContext']>;
|
|
17
|
+
//# sourceMappingURL=searchContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchContext.d.ts","sourceRoot":"","sources":["../src/searchContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,0BAA0B,QAAa,CAAC;AACrD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AASD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAexD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAA6B,GAAG,eAAe,CAWhG;AAuDD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CA2BvC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export const SEARCH_CONTEXT_INPUT_LIMIT = 256 * 1024;
|
|
2
|
+
export const SEARCH_CONTEXT_OUTPUT_LIMIT = 300;
|
|
3
|
+
const BLOCK_END = /<\/(?:address|article|aside|blockquote|div|footer|h[1-6]|header|li|main|nav|ol|p|pre|section|table|tr|ul)>/gi;
|
|
4
|
+
function decodeCodePoint(value, fallback) {
|
|
5
|
+
return Number.isInteger(value) && value >= 0 && value <= 0x10ffff ? String.fromCodePoint(value) : fallback;
|
|
6
|
+
}
|
|
7
|
+
export function htmlToReadableText(value) {
|
|
8
|
+
return value
|
|
9
|
+
.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, ' ')
|
|
10
|
+
.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi, ' ')
|
|
11
|
+
.replace(/<br\s*\/?\s*>/gi, '\n')
|
|
12
|
+
.replace(BLOCK_END, '\n')
|
|
13
|
+
.replace(/<[^>]+>/g, ' ')
|
|
14
|
+
.replace(/ | /gi, ' ')
|
|
15
|
+
.replace(/&/gi, '&')
|
|
16
|
+
.replace(/</gi, '<')
|
|
17
|
+
.replace(/>/gi, '>')
|
|
18
|
+
.replace(/"|"/gi, '"')
|
|
19
|
+
.replace(/'|'/gi, "'")
|
|
20
|
+
.replace(/&#(\d+);/g, (match, value) => decodeCodePoint(Number(value), match))
|
|
21
|
+
.replace(/&#x([\da-f]+);/gi, (match, value) => decodeCodePoint(Number.parseInt(value, 16), match));
|
|
22
|
+
}
|
|
23
|
+
/** Limit decoded content by UTF-8 bytes without splitting a Unicode code point. */
|
|
24
|
+
export function boundBodyText(value, limit = SEARCH_CONTEXT_INPUT_LIMIT) {
|
|
25
|
+
if (Buffer.byteLength(value) <= limit)
|
|
26
|
+
return { text: value, complete: true };
|
|
27
|
+
let size = 0;
|
|
28
|
+
let text = '';
|
|
29
|
+
for (const character of value) {
|
|
30
|
+
const bytes = Buffer.byteLength(character);
|
|
31
|
+
if (size + bytes > limit)
|
|
32
|
+
break;
|
|
33
|
+
text += character;
|
|
34
|
+
size += bytes;
|
|
35
|
+
}
|
|
36
|
+
return { text, complete: false };
|
|
37
|
+
}
|
|
38
|
+
function readableLines(value) {
|
|
39
|
+
return value
|
|
40
|
+
.replace(/\r\n?/g, '\n')
|
|
41
|
+
.split('\n')
|
|
42
|
+
.map((line) => line.replace(/[\t\f\v ]+/gu, ' ').trim())
|
|
43
|
+
.filter(Boolean);
|
|
44
|
+
}
|
|
45
|
+
function cropLine(line, matchIndex, matchLength) {
|
|
46
|
+
const characters = [...line];
|
|
47
|
+
if (characters.length <= SEARCH_CONTEXT_OUTPUT_LIMIT)
|
|
48
|
+
return line;
|
|
49
|
+
const matchStart = Array.from(line.slice(0, matchIndex)).length;
|
|
50
|
+
const matchedCharacters = Array.from(line.slice(matchIndex, matchIndex + matchLength)).length;
|
|
51
|
+
const prefixMarker = matchStart > 0 ? 1 : 0;
|
|
52
|
+
const suffixMarker = matchStart + matchedCharacters < characters.length ? 1 : 0;
|
|
53
|
+
const available = SEARCH_CONTEXT_OUTPUT_LIMIT - prefixMarker - suffixMarker;
|
|
54
|
+
let start = Math.max(0, matchStart - Math.floor((available - matchedCharacters) / 2));
|
|
55
|
+
let end = Math.min(characters.length, start + available);
|
|
56
|
+
start = Math.max(0, end - available);
|
|
57
|
+
if (start > 0) {
|
|
58
|
+
const nextSpace = characters.slice(start, matchStart).findIndex((character) => /\s/u.test(character));
|
|
59
|
+
if (nextSpace >= 0)
|
|
60
|
+
start += nextSpace + 1;
|
|
61
|
+
}
|
|
62
|
+
if (end < characters.length) {
|
|
63
|
+
for (let index = end - 1; index >= matchStart + matchedCharacters; index -= 1) {
|
|
64
|
+
if (/\s/u.test(characters[index])) {
|
|
65
|
+
end = index;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const prefix = start > 0 ? '…' : '';
|
|
71
|
+
const suffix = end < characters.length ? '…' : '';
|
|
72
|
+
return `${prefix}${characters.slice(start, end).join('').trim()}${suffix}`;
|
|
73
|
+
}
|
|
74
|
+
function findMatch(line, queryText) {
|
|
75
|
+
const foldedLine = line.toLowerCase();
|
|
76
|
+
const phrase = queryText.trim().replace(/\s+/gu, ' ');
|
|
77
|
+
const phraseIndex = foldedLine.indexOf(phrase.toLowerCase());
|
|
78
|
+
if (phraseIndex >= 0)
|
|
79
|
+
return { index: phraseIndex, length: phrase.length };
|
|
80
|
+
let earliest;
|
|
81
|
+
for (const term of phrase.split(/\s+/u).filter(Boolean)) {
|
|
82
|
+
const index = foldedLine.indexOf(term.toLowerCase());
|
|
83
|
+
if (index >= 0 && (!earliest || index < earliest.index))
|
|
84
|
+
earliest = { index, length: term.length };
|
|
85
|
+
}
|
|
86
|
+
return earliest;
|
|
87
|
+
}
|
|
88
|
+
export function extractSearchContext(body, queryText, options = {}) {
|
|
89
|
+
const raw = body.text !== undefined ? body.text : body.html;
|
|
90
|
+
if (raw === undefined)
|
|
91
|
+
return { status: 'unavailable' };
|
|
92
|
+
const bounded = boundBodyText(raw);
|
|
93
|
+
const selected = body.text !== undefined ? bounded.text : htmlToReadableText(bounded.text);
|
|
94
|
+
const complete = (options.complete ?? true) && bounded.complete;
|
|
95
|
+
let best;
|
|
96
|
+
let fallback;
|
|
97
|
+
const phrase = queryText.trim().replace(/\s+/gu, ' ');
|
|
98
|
+
let position = 0;
|
|
99
|
+
for (const line of readableLines(selected)) {
|
|
100
|
+
const foldedLine = line.toLowerCase();
|
|
101
|
+
const phraseIndex = foldedLine.indexOf(phrase.toLowerCase());
|
|
102
|
+
if (phraseIndex >= 0) {
|
|
103
|
+
best = { line, index: phraseIndex, length: phrase.length };
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
const termMatch = findMatch(line, phrase);
|
|
107
|
+
if (termMatch && (!fallback || position + termMatch.index < fallback.position)) {
|
|
108
|
+
fallback = { line, ...termMatch, position: position + termMatch.index };
|
|
109
|
+
}
|
|
110
|
+
position += line.length + 1;
|
|
111
|
+
}
|
|
112
|
+
const match = best ?? fallback;
|
|
113
|
+
if (match)
|
|
114
|
+
return { status: 'matched', excerpt: cropLine(match.line, match.index, match.length) };
|
|
115
|
+
return { status: complete ? 'no_literal_match' : 'scan_limit' };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=searchContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchContext.js","sourceRoot":"","sources":["../src/searchContext.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export interface Capabilities {
|
|
|
22
22
|
search: SearchCapabilities;
|
|
23
23
|
/** Whether list results include snippets without fetching bodies. */
|
|
24
24
|
snippets: boolean;
|
|
25
|
+
/** Whether list and search results can include match-centered body excerpts. */
|
|
26
|
+
searchContext?: boolean;
|
|
25
27
|
}
|
|
26
28
|
export interface Account {
|
|
27
29
|
id: string;
|
|
@@ -107,6 +109,12 @@ export interface Message {
|
|
|
107
109
|
/** ISO 8601. */
|
|
108
110
|
date: string;
|
|
109
111
|
snippet?: string;
|
|
112
|
+
searchContext?: {
|
|
113
|
+
status: 'matched';
|
|
114
|
+
excerpt: string;
|
|
115
|
+
} | {
|
|
116
|
+
status: 'no_literal_match' | 'scan_limit' | 'unavailable';
|
|
117
|
+
};
|
|
110
118
|
/** Populated on getMessage/getThread, not on list. */
|
|
111
119
|
body?: MessageBody;
|
|
112
120
|
/** Populated on getMessage/getThread; omitted when a list response has no MIME metadata. */
|
|
@@ -185,6 +193,8 @@ export interface PageOpts {
|
|
|
185
193
|
pageToken?: string;
|
|
186
194
|
/** Include or suppress message snippets. Omission preserves the provider default. */
|
|
187
195
|
includeSnippet?: boolean;
|
|
196
|
+
/** Include a match-centered body excerpt for the portable text query. */
|
|
197
|
+
includeSearchContext?: boolean;
|
|
188
198
|
/** Internal cancellation signal used to stop provider work at the request deadline. */
|
|
189
199
|
signal?: AbortSignal;
|
|
190
200
|
/** Internal soft deadline. Providers return a resumable page at the next safe boundary. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAEpG,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,GACT,MAAM,GACN,SAAS,GACT,eAAe,GACf,OAAO,GACP,QAAQ,CAAC;AAEb,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAC5D,WAAW,EAAE,IAAI,GAAG;QAClB,MAAM,EAAE,OAAO,GAAG,aAAa,CAAC;QAChC,YAAY,EAAE,kBAAkB,CAAC;QACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,8FAA8F;IAC9F,aAAa,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,kDAAkD;IAClD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|