@postalsys/email-content 0.0.4 → 0.1.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 +207 -17
- package/dist/.tsbuildinfo +1 -1
- package/dist/analyze.d.ts +55 -15
- package/dist/analyze.d.ts.map +1 -1
- package/dist/analyze.js +264 -61
- package/dist/analyze.js.map +1 -1
- package/dist/canonical/html.d.ts +21 -2
- package/dist/canonical/html.d.ts.map +1 -1
- package/dist/canonical/html.js +213 -14
- package/dist/canonical/html.js.map +1 -1
- package/dist/classify/confidence.d.ts +12 -0
- package/dist/classify/confidence.d.ts.map +1 -1
- package/dist/classify/confidence.js +54 -4
- package/dist/classify/confidence.js.map +1 -1
- package/dist/classify/reconcile.d.ts +25 -17
- package/dist/classify/reconcile.d.ts.map +1 -1
- package/dist/classify/reconcile.js +52 -20
- package/dist/classify/reconcile.js.map +1 -1
- package/dist/cli/annotate.d.ts.map +1 -1
- package/dist/cli/annotate.js +6 -3
- package/dist/cli/annotate.js.map +1 -1
- package/dist/cli/args.d.ts +14 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +48 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/benchmark.d.ts +39 -0
- package/dist/cli/benchmark.d.ts.map +1 -1
- package/dist/cli/benchmark.js +179 -66
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/corpus.d.ts.map +1 -1
- package/dist/cli/corpus.js +13 -8
- package/dist/cli/corpus.js.map +1 -1
- package/dist/cli/disagreements.d.ts.map +1 -1
- package/dist/cli/disagreements.js +7 -4
- package/dist/cli/disagreements.js.map +1 -1
- package/dist/cli/evaluate.d.ts.map +1 -1
- package/dist/cli/evaluate.js +34 -10
- package/dist/cli/evaluate.js.map +1 -1
- package/dist/cli/extract.d.ts.map +1 -1
- package/dist/cli/extract.js +8 -3
- package/dist/cli/extract.js.map +1 -1
- package/dist/cli/main.js +8 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/corpus/scanner.d.ts +9 -1
- package/dist/corpus/scanner.d.ts.map +1 -1
- package/dist/corpus/scanner.js +52 -13
- package/dist/corpus/scanner.js.map +1 -1
- package/dist/corpus/store.d.ts +33 -2
- package/dist/corpus/store.d.ts.map +1 -1
- package/dist/corpus/store.js +64 -4
- package/dist/corpus/store.js.map +1 -1
- package/dist/detect/patterns.d.ts +29 -0
- package/dist/detect/patterns.d.ts.map +1 -1
- package/dist/detect/patterns.js +80 -6
- package/dist/detect/patterns.js.map +1 -1
- package/dist/detect/reply-header.d.ts +14 -0
- package/dist/detect/reply-header.d.ts.map +1 -1
- package/dist/detect/reply-header.js +80 -37
- package/dist/detect/reply-header.js.map +1 -1
- package/dist/eval/oracle.d.ts +80 -0
- package/dist/eval/oracle.d.ts.map +1 -0
- package/dist/eval/oracle.js +250 -0
- package/dist/eval/oracle.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -56
- package/dist/index.js.map +1 -1
- package/dist/mime/model.d.ts +28 -3
- package/dist/mime/model.d.ts.map +1 -1
- package/dist/mime/model.js +41 -1
- package/dist/mime/model.js.map +1 -1
- package/dist/mime/parse.d.ts.map +1 -1
- package/dist/mime/parse.js +19 -2
- package/dist/mime/parse.js.map +1 -1
- package/dist/mime/select.d.ts +71 -0
- package/dist/mime/select.d.ts.map +1 -0
- package/dist/mime/select.js +198 -0
- package/dist/mime/select.js.map +1 -0
- package/dist/segment/html-blocks.d.ts +1 -1
- package/dist/segment/html-blocks.d.ts.map +1 -1
- package/dist/segment/html-blocks.js +77 -8
- package/dist/segment/html-blocks.js.map +1 -1
- package/dist/segment/text-blocks.d.ts.map +1 -1
- package/dist/segment/text-blocks.js +18 -1
- package/dist/segment/text-blocks.js.map +1 -1
- package/dist/segment/types.d.ts +14 -0
- package/dist/segment/types.d.ts.map +1 -1
- package/dist/types.d.ts +132 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +37 -3
- package/dist/types.js.map +1 -1
- package/dist/util/worker-pool.d.ts +21 -0
- package/dist/util/worker-pool.d.ts.map +1 -1
- package/dist/util/worker-pool.js +61 -13
- package/dist/util/worker-pool.js.map +1 -1
- package/package.json +6 -5
|
@@ -357,6 +357,24 @@ function kindFor(nodes, ancestors, text, evidence) {
|
|
|
357
357
|
* does not come close to this threshold.
|
|
358
358
|
*/
|
|
359
359
|
const MAX_UNCLOSED_TAGS = 500;
|
|
360
|
+
/**
|
|
361
|
+
* Runs of character data between tags tolerated before the DOM parse is skipped.
|
|
362
|
+
*
|
|
363
|
+
* node-html-parser appends every text node through a path that first calls `remove()` on it, and
|
|
364
|
+
* `remove()` scans the prospective parent's child list for the node. The node is not in that list
|
|
365
|
+
* yet, so the scan always runs to the end: appending the k-th text child of one element costs O(k),
|
|
366
|
+
* and a document that is one element holding many text children is quadratic. Measured on
|
|
367
|
+
* `<div>` wrapping `a<br>` repeated: 5,000 runs 52ms, 10,000 runs 247ms, 20,000 runs 1,362ms, on
|
|
368
|
+
* only 120 KB of markup. Elements are unaffected, because the parser constructs them with a null
|
|
369
|
+
* parent.
|
|
370
|
+
*
|
|
371
|
+
* Text runs are counted before parsing as an upper bound on how many of them can end up siblings.
|
|
372
|
+
* The threshold is set from the corpus rather than guessed: over a deterministic 19,982 message
|
|
373
|
+
* sample holding 16,867 HTML parts, the highest count seen was 8,337 and the slowest real parse was
|
|
374
|
+
* 21.5 milliseconds. 15,000 leaves most of a doubling of headroom above the worst real message and
|
|
375
|
+
* still caps the adversarial case well under a second.
|
|
376
|
+
*/
|
|
377
|
+
const MAX_TEXT_RUNS = 15000;
|
|
360
378
|
const OPEN_BLOCK_TAG = /<(?:div|table|tr|td|span|p|blockquote|ul|ol|li|font)\b/gi;
|
|
361
379
|
const CLOSE_BLOCK_TAG = /<\/(?:div|table|tr|td|span|p|blockquote|ul|ol|li|font)\b/gi;
|
|
362
380
|
function countPattern(text, regex) {
|
|
@@ -368,9 +386,37 @@ function countPattern(text, regex) {
|
|
|
368
386
|
regex.lastIndex = 0;
|
|
369
387
|
return count;
|
|
370
388
|
}
|
|
371
|
-
/**
|
|
389
|
+
/**
|
|
390
|
+
* Count non empty gaps between tags, stopping as soon as the cap is passed.
|
|
391
|
+
*
|
|
392
|
+
* Matches the parser's own rule, which creates a text node for any non empty gap, whitespace
|
|
393
|
+
* included, so an indented document counts its indentation.
|
|
394
|
+
*/
|
|
395
|
+
function exceedsTextRunCap(html) {
|
|
396
|
+
let runs = 0;
|
|
397
|
+
let i = 0;
|
|
398
|
+
while (i < html.length) {
|
|
399
|
+
const lt = html.indexOf('<', i);
|
|
400
|
+
if (lt === -1) {
|
|
401
|
+
return runs + 1 > MAX_TEXT_RUNS;
|
|
402
|
+
}
|
|
403
|
+
if (lt > i && ++runs > MAX_TEXT_RUNS) {
|
|
404
|
+
return true;
|
|
405
|
+
}
|
|
406
|
+
const gt = html.indexOf('>', lt + 1);
|
|
407
|
+
if (gt === -1) {
|
|
408
|
+
return false;
|
|
409
|
+
}
|
|
410
|
+
i = gt + 1;
|
|
411
|
+
}
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
414
|
+
/** True when markup is shaped badly enough that parsing it is not worth the time. */
|
|
372
415
|
function isPathologicalHtml(html) {
|
|
373
|
-
|
|
416
|
+
if (countPattern(html, OPEN_BLOCK_TAG) - countPattern(html, CLOSE_BLOCK_TAG) > MAX_UNCLOSED_TAGS) {
|
|
417
|
+
return true;
|
|
418
|
+
}
|
|
419
|
+
return exceedsTextRunCap(html);
|
|
374
420
|
}
|
|
375
421
|
function segmentHtmlBlocks(html, mimePart) {
|
|
376
422
|
const patterns = (0, patterns_1.loadPatterns)();
|
|
@@ -385,6 +431,15 @@ function segmentHtmlBlocks(html, mimePart) {
|
|
|
385
431
|
}
|
|
386
432
|
catch {
|
|
387
433
|
// A parse failure must still yield the content, as one unknown block.
|
|
434
|
+
//
|
|
435
|
+
// `content` is the block's projected text, and everything downstream reads it: `toSegments`
|
|
436
|
+
// drops segments whose text is blank, and the never-empty invariant guard tests it too.
|
|
437
|
+
// Leaving it empty, which is what this did, meant a malformed body carrying authored text
|
|
438
|
+
// came back as zero visible segments, zero hidden segments and a lone `html_parse_error`.
|
|
439
|
+
// Total content loss whose only trace was a warning.
|
|
440
|
+
//
|
|
441
|
+
// `text` stays the raw HTML so blocks still tile the source exactly.
|
|
442
|
+
const projected = (0, html_1.stripTagsToText)(html);
|
|
388
443
|
return {
|
|
389
444
|
source: html,
|
|
390
445
|
degraded: true,
|
|
@@ -395,11 +450,11 @@ function segmentHtmlBlocks(html, mimePart) {
|
|
|
395
450
|
representation: 'html',
|
|
396
451
|
mimePart,
|
|
397
452
|
text: html,
|
|
398
|
-
content:
|
|
453
|
+
content: projected,
|
|
399
454
|
start: 0,
|
|
400
455
|
end: html.length,
|
|
401
456
|
html,
|
|
402
|
-
features: (0, features_1.computeFeatures)(
|
|
457
|
+
features: (0, features_1.computeFeatures)(projected, { index: 0, total: 1, start: 0, totalChars: html.length, quoteDepth: 0 }),
|
|
403
458
|
evidence: []
|
|
404
459
|
}
|
|
405
460
|
]
|
|
@@ -472,12 +527,26 @@ function segmentHtmlBlocks(html, mimePart) {
|
|
|
472
527
|
const blocks = [];
|
|
473
528
|
let previousEnd = 0;
|
|
474
529
|
for (const { run, domPath } of runs) {
|
|
475
|
-
|
|
476
|
-
|
|
530
|
+
// Loops rather than Math.min/max over a spread. A run of an HTML document can hold more
|
|
531
|
+
// nodes than V8 allows call arguments, and the resulting RangeError would degrade the whole
|
|
532
|
+
// message for no reason.
|
|
533
|
+
let nodeStart = Infinity;
|
|
534
|
+
let nodeEnd = -Infinity;
|
|
535
|
+
for (const node of run.nodes) {
|
|
536
|
+
const range = node.range;
|
|
537
|
+
if (!range) {
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
if (range[0] < nodeStart) {
|
|
541
|
+
nodeStart = range[0];
|
|
542
|
+
}
|
|
543
|
+
if (range[1] > nodeEnd) {
|
|
544
|
+
nodeEnd = range[1];
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
if (nodeStart === Infinity) {
|
|
477
548
|
continue;
|
|
478
549
|
}
|
|
479
|
-
const nodeStart = Math.min(...ranges.map(range => range[0]));
|
|
480
|
-
const nodeEnd = Math.max(...ranges.map(range => range[1]));
|
|
481
550
|
if (nodeEnd <= previousEnd) {
|
|
482
551
|
continue;
|
|
483
552
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-blocks.js","sourceRoot":"","sources":["../../src/segment/html-blocks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"html-blocks.js","sourceRoot":"","sources":["../../src/segment/html-blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-blocks.d.ts","sourceRoot":"","sources":["../../src/segment/text-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAoB,KAAK,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAMxF,OAAO,EAAE,KAAK,KAAK,EAAiC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"text-blocks.d.ts","sourceRoot":"","sources":["../../src/segment/text-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAoB,KAAK,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAMxF,OAAO,EAAE,KAAK,KAAK,EAAiC,MAAM,SAAS,CAAC;AAoEpE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,CAiJ9G"}
|
|
@@ -39,6 +39,23 @@ function contentOf(lines) {
|
|
|
39
39
|
.map(line => line.content)
|
|
40
40
|
.join('\n');
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Deepest quote level in a slice.
|
|
44
|
+
*
|
|
45
|
+
* A loop rather than `Math.max(...slice.map(...))`. Spreading an array into a call passes one
|
|
46
|
+
* argument per element, and V8 throws `RangeError: Maximum call stack size exceeded` somewhere
|
|
47
|
+
* above 125k arguments. A message of 130,000 short lines is large but perfectly legal, and it made
|
|
48
|
+
* the whole analysis fall back to a single unclassified block.
|
|
49
|
+
*/
|
|
50
|
+
function maxDepth(lines) {
|
|
51
|
+
let depth = 0;
|
|
52
|
+
for (const line of lines) {
|
|
53
|
+
if (line.depth > depth) {
|
|
54
|
+
depth = line.depth;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return depth;
|
|
58
|
+
}
|
|
42
59
|
function classifyKind(lines, forced) {
|
|
43
60
|
if (forced) {
|
|
44
61
|
return forced;
|
|
@@ -176,7 +193,7 @@ function segmentTextBlocks(raw, mimePart) {
|
|
|
176
193
|
total: starts.length,
|
|
177
194
|
start: first.start,
|
|
178
195
|
totalChars: canonical.text.length,
|
|
179
|
-
quoteDepth:
|
|
196
|
+
quoteDepth: maxDepth(slice)
|
|
180
197
|
}),
|
|
181
198
|
evidence: boundary?.evidence ? [boundary.evidence] : []
|
|
182
199
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-blocks.js","sourceRoot":"","sources":["../../src/segment/text-blocks.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;
|
|
1
|
+
{"version":3,"file":"text-blocks.js","sourceRoot":"","sources":["../../src/segment/text-blocks.ts"],"names":[],"mappings":"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"}
|
package/dist/segment/types.d.ts
CHANGED
|
@@ -63,7 +63,21 @@ export interface BlockFeatures {
|
|
|
63
63
|
hasTopBorder: boolean;
|
|
64
64
|
}
|
|
65
65
|
export interface Block {
|
|
66
|
+
/**
|
|
67
|
+
* Document-global decision index: position in the sequence the classifier sees.
|
|
68
|
+
*
|
|
69
|
+
* A message can hold several independent body sections, and they are classified as one linear
|
|
70
|
+
* sequence so that positional rules such as "the last block" keep meaning what they say. The
|
|
71
|
+
* classifier indexes its own arrays with this, so it always equals the array position.
|
|
72
|
+
*/
|
|
66
73
|
index: number;
|
|
74
|
+
/**
|
|
75
|
+
* Section-local source index: position within this block's own representation.
|
|
76
|
+
*
|
|
77
|
+
* Present when the block was renumbered into a document sequence. This is what a segment
|
|
78
|
+
* reports, so traceability still points at a block of a specific MIME part.
|
|
79
|
+
*/
|
|
80
|
+
sourceIndex?: number;
|
|
67
81
|
kind: BlockKind;
|
|
68
82
|
representation: Representation;
|
|
69
83
|
/** MIME part this block came from, for example "1.2". */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/segment/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,iFAAiF;AACjF,MAAM,MAAM,SAAS,GACf,WAAW,GACX,OAAO,GACP,cAAc,GACd,gBAAgB,GAChB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,MAAM,GACN,OAAO,GACP,WAAW,GACX,OAAO,GACP,OAAO,GACP,SAAS,CAAC;AAEhB,wFAAwF;AACxF,MAAM,WAAW,QAAQ;IACrB,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC;IAChJ,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,6DAA6D;IAC7D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4FAA4F;IAC5F,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/segment/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,iFAAiF;AACjF,MAAM,MAAM,SAAS,GACf,WAAW,GACX,OAAO,GACP,cAAc,GACd,gBAAgB,GAChB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,MAAM,GACN,OAAO,GACP,WAAW,GACX,OAAO,GACP,OAAO,GACP,SAAS,CAAC;AAEhB,wFAAwF;AACxF,MAAM,WAAW,QAAQ;IACrB,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC;IAChJ,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,6DAA6D;IAC7D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4FAA4F;IAC5F,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IAClB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACxB"}
|
package/dist/types.d.ts
CHANGED
|
@@ -14,9 +14,27 @@
|
|
|
14
14
|
* constant stayed at its initial value, so every stored result claimed a version that no longer
|
|
15
15
|
* described the code that produced it.
|
|
16
16
|
*/
|
|
17
|
-
export declare const EXTRACTOR_VERSION = "0.0
|
|
17
|
+
export declare const EXTRACTOR_VERSION = "0.1.0";
|
|
18
18
|
/** Version of the corpus processing pipeline (scanner, feature extraction, storage schema). */
|
|
19
|
-
export declare const PROCESSING_VERSION = "0.0
|
|
19
|
+
export declare const PROCESSING_VERSION = "0.1.0";
|
|
20
|
+
/**
|
|
21
|
+
* Invalid caller configuration.
|
|
22
|
+
*
|
|
23
|
+
* Deliberately distinct from how malformed *messages* are handled. A bad message degrades and never
|
|
24
|
+
* throws, because the sender chose the message and the caller cannot fix it. A bad option is the
|
|
25
|
+
* programmer's own mistake, it will repeat on every message, and returning a plausible looking
|
|
26
|
+
* degraded result for it would hide an operational fault behind what reads like ordinary output.
|
|
27
|
+
*
|
|
28
|
+
* Carries a stable code and the offending option name. It never carries the value, message content
|
|
29
|
+
* or credentials, so it is safe to log.
|
|
30
|
+
*/
|
|
31
|
+
export declare class ConfigurationError extends Error {
|
|
32
|
+
/** Stable machine readable code, for example `invalid_option`. */
|
|
33
|
+
readonly code: string;
|
|
34
|
+
/** Dotted path of the offending option, for example `confidence.hideThreshold`. */
|
|
35
|
+
readonly option: string;
|
|
36
|
+
constructor(option: string, expected: string, code?: string);
|
|
37
|
+
}
|
|
20
38
|
/** Final block classification. */
|
|
21
39
|
export type Label = 'NEW_CONTENT' | 'INLINE_QUOTE' | 'REPLY_HISTORY' | 'FORWARDED_CONTENT' | 'SIGNATURE' | 'DISCLAIMER' | 'UNKNOWN';
|
|
22
40
|
export declare const LABELS: readonly Label[];
|
|
@@ -33,12 +51,21 @@ export type Representation = 'text' | 'html';
|
|
|
33
51
|
/**
|
|
34
52
|
* Traceability back to the original message. Every segment must carry one of these so a reviewer
|
|
35
53
|
* can always find the exact bytes the decision was made about.
|
|
54
|
+
*
|
|
55
|
+
* Discriminated on `kind`, because the two cases genuinely know different things. A segment that
|
|
56
|
+
* came from a MIME part can name it; a segment produced when MIME parsing failed outright knows
|
|
57
|
+
* only a range in the raw message. The previous flat shape forced the second case to invent
|
|
58
|
+
* `mimePart: 'TEXT', representation: 'text'`, which was false whenever the surviving content came
|
|
59
|
+
* from HTML, and false in every particular when there was no MIME tree at all.
|
|
36
60
|
*/
|
|
37
|
-
export
|
|
61
|
+
export type SourceRef = MimeSourceRef | RawSourceRef;
|
|
62
|
+
/** A segment traced to a part of the parsed MIME tree. */
|
|
63
|
+
export interface MimeSourceRef {
|
|
64
|
+
kind: 'mime-part';
|
|
38
65
|
/** IMAP style MIME part path, for example "1.2". "TEXT" for a single part message root. */
|
|
39
66
|
mimePart: string;
|
|
40
67
|
representation: Representation;
|
|
41
|
-
/** Index of the block within its representation, in document order. */
|
|
68
|
+
/** Index of the block within its own representation, in document order. */
|
|
42
69
|
blockIndex: number;
|
|
43
70
|
/** Character offsets into the decoded, canonicalised part content. */
|
|
44
71
|
start: number;
|
|
@@ -46,6 +73,23 @@ export interface SourceRef {
|
|
|
46
73
|
/** HTML only. Stable child index path from the body element, for example "0/2/1". */
|
|
47
74
|
domPath?: string;
|
|
48
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* A segment traced only to a range in the raw message.
|
|
78
|
+
*
|
|
79
|
+
* Emitted when MIME parsing failed and there is no part structure to point at. Naming a part here
|
|
80
|
+
* would be a fabrication, and a traceability field that lies is worse than one that admits it does
|
|
81
|
+
* not know.
|
|
82
|
+
*/
|
|
83
|
+
export interface RawSourceRef {
|
|
84
|
+
kind: 'raw-message';
|
|
85
|
+
/** Byte offsets into the raw message as supplied. */
|
|
86
|
+
start: number;
|
|
87
|
+
end: number;
|
|
88
|
+
}
|
|
89
|
+
/** The MIME part a segment came from, or null when only a raw message range is known. */
|
|
90
|
+
export declare function mimePartOf(source: SourceRef): string | null;
|
|
91
|
+
/** The block index within its representation, or null when only a raw message range is known. */
|
|
92
|
+
export declare function blockIndexOf(source: SourceRef): number | null;
|
|
49
93
|
/**
|
|
50
94
|
* Machine readable justification codes. Closed vocabulary: a decision that cannot name its reason
|
|
51
95
|
* is not allowed to influence visibility.
|
|
@@ -56,7 +100,22 @@ export interface Segment {
|
|
|
56
100
|
type: Label;
|
|
57
101
|
/** Plain text of the segment. Always present, always taken verbatim from the source. */
|
|
58
102
|
text: string;
|
|
59
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Original HTML for HTML sourced segments. Never regenerated or rewritten.
|
|
105
|
+
*
|
|
106
|
+
* **UNTRUSTED. This is attacker controlled markup, copied verbatim from the message.**
|
|
107
|
+
*
|
|
108
|
+
* It can contain event handler attributes, remote images and stylesheets that leak the fact and
|
|
109
|
+
* time of reading, forms, frames, unsafe SVG, `javascript:` and `data:` URLs, and tracking
|
|
110
|
+
* links. Classification is not sanitisation: this library decides whether a span of the message
|
|
111
|
+
* is new content, history or a footer, and says nothing whatsoever about whether it is safe to
|
|
112
|
+
* render.
|
|
113
|
+
*
|
|
114
|
+
* Never assign it to `innerHTML`. Sanitise it with a maintained sanitiser after segmentation
|
|
115
|
+
* and immediately before rendering, block remote resource loading, and serve it under a
|
|
116
|
+
* restrictive Content Security Policy as defence in depth. See the security section of the
|
|
117
|
+
* README.
|
|
118
|
+
*/
|
|
60
119
|
html?: string;
|
|
61
120
|
/** Calibrated in [0, 1]. */
|
|
62
121
|
confidence: number;
|
|
@@ -65,28 +124,90 @@ export interface Segment {
|
|
|
65
124
|
source: SourceRef;
|
|
66
125
|
}
|
|
67
126
|
/** Warning codes emitted during parsing or extraction. Never contains message content. */
|
|
68
|
-
export type WarningCode = 'mime_parse_error' | 'mime_truncated' | 'missing_boundary' | 'max_nesting_exceeded' | 'max_parts_exceeded' | 'header_too_large' | 'unknown_charset' | 'charset_decode_replacement_chars' | 'transfer_encoding_error' | 'text_part_truncated' | 'html_parse_error' | 'no_body_parts'
|
|
127
|
+
export type WarningCode = 'mime_parse_error' | 'mime_truncated' | 'missing_boundary' | 'max_nesting_exceeded' | 'max_parts_exceeded' | 'header_too_large' | 'unknown_charset' | 'charset_decode_replacement_chars' | 'transfer_encoding_error' | 'text_part_truncated' | 'html_parse_error' | 'no_body_parts'
|
|
128
|
+
/**
|
|
129
|
+
* An eligible body part held markup but no user visible text: only scripts, styles, comments,
|
|
130
|
+
* tracking pixels or bare tags. Distinct from `no_body_parts`, which means there was no body
|
|
131
|
+
* part to look at, and precise enough for a caller to tell "nothing to show" from "we lost it".
|
|
132
|
+
*/
|
|
133
|
+
| 'no_visible_body_text'
|
|
134
|
+
/**
|
|
135
|
+
* An eligible inline body part exists but is not represented in the result. `mimePart` names it
|
|
136
|
+
* and `detail` carries the machine readable selection reason, from the closed set
|
|
137
|
+
* `related_resource`, `max_depth_exceeded` and `later_section_not_selected`.
|
|
138
|
+
*
|
|
139
|
+
* Deliberately not `non_contiguous_body`, which means something else entirely: that the chunks
|
|
140
|
+
* of a single MIME part arrived out of order during parsing.
|
|
141
|
+
*/
|
|
142
|
+
| 'body_section_not_selected' | 'non_contiguous_body' | 'extraction_degraded'
|
|
143
|
+
/**
|
|
144
|
+
* An aggregate input limit stopped the work. `detail` names the option that fired.
|
|
145
|
+
*
|
|
146
|
+
* Never thrown, always reported: an oversized message is adversarial or malformed input, not a
|
|
147
|
+
* programmer error, and this library's contract is that message input degrades rather than
|
|
148
|
+
* throwing. Whatever the limit did allow through is still returned in full. The caller keeps
|
|
149
|
+
* the original and can raise the limit or render it directly.
|
|
150
|
+
*/
|
|
151
|
+
| 'input_limit_exceeded'
|
|
152
|
+
/**
|
|
153
|
+
* Reply status could not be determined, because MIME parsing failed and there were no headers
|
|
154
|
+
* to read. `isReply` is `false` on such a result, which means "not known to be a reply" rather
|
|
155
|
+
* than "known not to be one". Reply status is never guessed by searching the raw bytes.
|
|
156
|
+
*/
|
|
157
|
+
| 'reply_status_unknown' | 'timeout';
|
|
69
158
|
export interface Warning {
|
|
70
159
|
code: WarningCode;
|
|
71
160
|
/** Human readable detail. Must never include message body text or addresses. */
|
|
72
161
|
detail?: string;
|
|
73
162
|
mimePart?: string;
|
|
74
163
|
}
|
|
75
|
-
/**
|
|
76
|
-
|
|
164
|
+
/**
|
|
165
|
+
* What every entry point returns.
|
|
166
|
+
*
|
|
167
|
+
* One contract, shared, because `extract()` and `analyze()` are the same pipeline entered at
|
|
168
|
+
* different stages and must not be able to disagree about the same message. They diverged once:
|
|
169
|
+
* `analyze()` returned `isReply` and `extract()` silently dropped it while the README showed it on
|
|
170
|
+
* both.
|
|
171
|
+
*/
|
|
172
|
+
export interface ContentAnalysisResult {
|
|
77
173
|
/** Segments the client should render, in document order. */
|
|
78
174
|
segments: Segment[];
|
|
79
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* Segments the client may hide, retained in full so nothing is ever lost.
|
|
177
|
+
*
|
|
178
|
+
* Only ever holds segments whose visibility is `hide`. Segments marked `collapse` stay in
|
|
179
|
+
* `segments`, because a collapsed segment is still rendered, just folded.
|
|
180
|
+
*/
|
|
80
181
|
hiddenSegments: Segment[];
|
|
81
182
|
/** Message level confidence, the weakest link across hide decisions. */
|
|
82
183
|
overallConfidence: number;
|
|
83
184
|
warnings: Warning[];
|
|
84
|
-
/**
|
|
185
|
+
/**
|
|
186
|
+
* Always true, and a statement about behaviour rather than about this object.
|
|
187
|
+
*
|
|
188
|
+
* The library does not mutate or consume the caller's source, so the original is always still
|
|
189
|
+
* recoverable. It is **not** embedded in this result: the caller must retain it.
|
|
190
|
+
*/
|
|
85
191
|
originalAvailable: true;
|
|
86
|
-
/**
|
|
192
|
+
/**
|
|
193
|
+
* Which representation drove the classification of the primary section.
|
|
194
|
+
*
|
|
195
|
+
* Not an inventory of every MIME representation retained. A message with several body sections
|
|
196
|
+
* can carry segments from more than one part; this names the driver, not the whole source set.
|
|
197
|
+
*/
|
|
87
198
|
primaryRepresentation: Representation | 'none';
|
|
88
199
|
extractorVersion: string;
|
|
89
200
|
/** True when thread history was available and used. */
|
|
90
201
|
historyUsed: boolean;
|
|
202
|
+
/**
|
|
203
|
+
* True when the input looked like a reply, from threading headers or a subject prefix.
|
|
204
|
+
*
|
|
205
|
+
* `false` also covers "could not tell": when MIME parsing fails outright there are no headers
|
|
206
|
+
* to read, and the result carries a `reply_status_unknown` warning to say so rather than
|
|
207
|
+
* pretending the answer is known.
|
|
208
|
+
*/
|
|
209
|
+
isReply: boolean;
|
|
91
210
|
}
|
|
211
|
+
/** Result of extracting one message. */
|
|
212
|
+
export type ExtractionResult = ContentAnalysisResult;
|
|
92
213
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,kCAAkC;AAClC,MAAM,MAAM,KAAK,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,mBAAmB,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpI,eAAO,MAAM,MAAM,EAAE,SAAS,KAAK,EAAyH,CAAC;AAE7J;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEtD,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* band but never dropped.
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.LABELS = exports.PROCESSING_VERSION = exports.EXTRACTOR_VERSION = void 0;
|
|
11
|
+
exports.LABELS = exports.ConfigurationError = exports.PROCESSING_VERSION = exports.EXTRACTOR_VERSION = void 0;
|
|
12
|
+
exports.mimePartOf = mimePartOf;
|
|
13
|
+
exports.blockIndexOf = blockIndexOf;
|
|
12
14
|
/**
|
|
13
15
|
* Version of the deterministic extraction logic, stamped into every result.
|
|
14
16
|
*
|
|
@@ -17,8 +19,40 @@ exports.LABELS = exports.PROCESSING_VERSION = exports.EXTRACTOR_VERSION = void 0
|
|
|
17
19
|
* constant stayed at its initial value, so every stored result claimed a version that no longer
|
|
18
20
|
* described the code that produced it.
|
|
19
21
|
*/
|
|
20
|
-
exports.EXTRACTOR_VERSION = '0.0
|
|
22
|
+
exports.EXTRACTOR_VERSION = '0.1.0'; // x-release-please-version
|
|
21
23
|
/** Version of the corpus processing pipeline (scanner, feature extraction, storage schema). */
|
|
22
|
-
exports.PROCESSING_VERSION = '0.0
|
|
24
|
+
exports.PROCESSING_VERSION = '0.1.0'; // x-release-please-version
|
|
25
|
+
/**
|
|
26
|
+
* Invalid caller configuration.
|
|
27
|
+
*
|
|
28
|
+
* Deliberately distinct from how malformed *messages* are handled. A bad message degrades and never
|
|
29
|
+
* throws, because the sender chose the message and the caller cannot fix it. A bad option is the
|
|
30
|
+
* programmer's own mistake, it will repeat on every message, and returning a plausible looking
|
|
31
|
+
* degraded result for it would hide an operational fault behind what reads like ordinary output.
|
|
32
|
+
*
|
|
33
|
+
* Carries a stable code and the offending option name. It never carries the value, message content
|
|
34
|
+
* or credentials, so it is safe to log.
|
|
35
|
+
*/
|
|
36
|
+
class ConfigurationError extends Error {
|
|
37
|
+
/** Stable machine readable code, for example `invalid_option`. */
|
|
38
|
+
code;
|
|
39
|
+
/** Dotted path of the offending option, for example `confidence.hideThreshold`. */
|
|
40
|
+
option;
|
|
41
|
+
constructor(option, expected, code = 'invalid_option') {
|
|
42
|
+
super(`${option} must be ${expected}`);
|
|
43
|
+
this.name = 'ConfigurationError';
|
|
44
|
+
this.code = code;
|
|
45
|
+
this.option = option;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.ConfigurationError = ConfigurationError;
|
|
23
49
|
exports.LABELS = ['NEW_CONTENT', 'INLINE_QUOTE', 'REPLY_HISTORY', 'FORWARDED_CONTENT', 'SIGNATURE', 'DISCLAIMER', 'UNKNOWN'];
|
|
50
|
+
/** The MIME part a segment came from, or null when only a raw message range is known. */
|
|
51
|
+
function mimePartOf(source) {
|
|
52
|
+
return source.kind === 'mime-part' ? source.mimePart : null;
|
|
53
|
+
}
|
|
54
|
+
/** The block index within its representation, or null when only a raw message range is known. */
|
|
55
|
+
function blockIndexOf(source) {
|
|
56
|
+
return source.kind === 'mime-part' ? source.blockIndex : null;
|
|
57
|
+
}
|
|
24
58
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAmGH,gCAEC;AAGD,oCAEC;AAxGD;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,OAAO,CAAC,CAAC,2BAA2B;AAErE,+FAA+F;AAClF,QAAA,kBAAkB,GAAG,OAAO,CAAC,CAAC,2BAA2B;AAEtE;;;;;;;;;;GAUG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IACzC,kEAAkE;IACzD,IAAI,CAAS;IACtB,mFAAmF;IAC1E,MAAM,CAAS;IAExB,YAAY,MAAc,EAAE,QAAgB,EAAE,IAAI,GAAG,gBAAgB;QACjE,KAAK,CAAC,GAAG,MAAM,YAAY,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAZD,gDAYC;AAKY,QAAA,MAAM,GAAqB,CAAC,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAU,CAAC;AAuD7J,yFAAyF;AACzF,SAAgB,UAAU,CAAC,MAAiB;IACxC,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,iGAAiG;AACjG,SAAgB,YAAY,CAAC,MAAiB;IAC1C,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC"}
|
|
@@ -24,6 +24,19 @@ export interface WorkerPoolOptions {
|
|
|
24
24
|
* terminates that worker, which the pool treats like any other worker failure.
|
|
25
25
|
*/
|
|
26
26
|
maxOldGenerationSizeMb?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Worker respawns allowed before the pool gives up. Default 50 plus ten per worker.
|
|
29
|
+
*
|
|
30
|
+
* Respawning without a budget turns a worker that dies during startup into an infinite loop:
|
|
31
|
+
* spawn, crash, spawn, forever, producing no results and no error. The budget converts that
|
|
32
|
+
* into a bounded failure that names the tasks in flight when it tripped.
|
|
33
|
+
*/
|
|
34
|
+
maxRestarts?: number;
|
|
35
|
+
}
|
|
36
|
+
/** The pool gave up replacing workers. Carries the ids of the tasks that were in flight. */
|
|
37
|
+
export declare class WorkerRestartBudgetError extends Error {
|
|
38
|
+
readonly restarts: number;
|
|
39
|
+
constructor(restarts: number);
|
|
27
40
|
}
|
|
28
41
|
export declare class WorkerTimeoutError extends Error {
|
|
29
42
|
constructor(ms: number);
|
|
@@ -38,9 +51,17 @@ export declare class WorkerPool<TTask, TResult> extends EventEmitter {
|
|
|
38
51
|
private readonly queue;
|
|
39
52
|
private nextId;
|
|
40
53
|
private closing;
|
|
54
|
+
private restarts;
|
|
55
|
+
private readonly maxRestarts;
|
|
56
|
+
/** Set once the restart budget is spent. Every queued and future task fails with it. */
|
|
57
|
+
private brokenBy;
|
|
41
58
|
constructor(options: WorkerPoolOptions);
|
|
42
59
|
private spawn;
|
|
43
60
|
private replace;
|
|
61
|
+
/** Reject whatever a slot was running, if anything. */
|
|
62
|
+
private fail;
|
|
63
|
+
/** Reject everything in flight and waiting, so a broken pool stops a run instead of stalling it. */
|
|
64
|
+
private failQueue;
|
|
44
65
|
private dispatch;
|
|
45
66
|
private drainQueue;
|
|
46
67
|
/** Number of tasks accepted but not yet completed. */
|