@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../src/util/worker-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../src/util/worker-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,4FAA4F;AAC5F,qBAAa,wBAAyB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;CAK/B;AA+BD,qBAAa,kBAAmB,SAAQ,KAAK;gBAC7B,EAAE,EAAE,MAAM;CAIzB;AAED;;;GAGG;AACH,qBAAa,UAAU,CAAC,KAAK,EAAE,OAAO,CAAE,SAAQ,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAyC;gBAE7C,OAAO,EAAE,iBAAiB;IAStC,OAAO,CAAC,KAAK;IA4Cb,OAAO,CAAC,OAAO;IAyBf,uDAAuD;IACvD,OAAO,CAAC,IAAI;IAWZ,oGAAoG;IACpG,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,UAAU;IAclB,sDAAsD;IACtD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB/B"}
|
package/dist/util/worker-pool.js
CHANGED
|
@@ -9,9 +9,19 @@
|
|
|
9
9
|
* cannot wedge a scan of 320k files.
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.WorkerPool = exports.WorkerTimeoutError = void 0;
|
|
12
|
+
exports.WorkerPool = exports.WorkerTimeoutError = exports.WorkerRestartBudgetError = void 0;
|
|
13
13
|
const node_worker_threads_1 = require("node:worker_threads");
|
|
14
14
|
const node_events_1 = require("node:events");
|
|
15
|
+
/** The pool gave up replacing workers. Carries the ids of the tasks that were in flight. */
|
|
16
|
+
class WorkerRestartBudgetError extends Error {
|
|
17
|
+
restarts;
|
|
18
|
+
constructor(restarts) {
|
|
19
|
+
super(`worker pool gave up after ${restarts} restarts; workers are crashing faster than they can do work`);
|
|
20
|
+
this.name = 'WorkerRestartBudgetError';
|
|
21
|
+
this.restarts = restarts;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.WorkerRestartBudgetError = WorkerRestartBudgetError;
|
|
15
25
|
class WorkerTimeoutError extends Error {
|
|
16
26
|
constructor(ms) {
|
|
17
27
|
super(`worker task timed out after ${ms}ms`);
|
|
@@ -29,9 +39,14 @@ class WorkerPool extends node_events_1.EventEmitter {
|
|
|
29
39
|
queue = [];
|
|
30
40
|
nextId = 1;
|
|
31
41
|
closing = false;
|
|
42
|
+
restarts = 0;
|
|
43
|
+
maxRestarts;
|
|
44
|
+
/** Set once the restart budget is spent. Every queued and future task fails with it. */
|
|
45
|
+
brokenBy = null;
|
|
32
46
|
constructor(options) {
|
|
33
47
|
super();
|
|
34
48
|
this.options = options;
|
|
49
|
+
this.maxRestarts = options.maxRestarts ?? 50 + 10 * Math.max(1, options.size);
|
|
35
50
|
for (let i = 0; i < Math.max(1, options.size); i++) {
|
|
36
51
|
this.spawn();
|
|
37
52
|
}
|
|
@@ -60,18 +75,18 @@ class WorkerPool extends node_events_1.EventEmitter {
|
|
|
60
75
|
});
|
|
61
76
|
worker.on('error', err => {
|
|
62
77
|
this.emit('worker-error', err);
|
|
63
|
-
|
|
64
|
-
if (current) {
|
|
65
|
-
clearTimeout(current.timer);
|
|
66
|
-
slot.current = null;
|
|
67
|
-
current.reject(err instanceof Error ? err : new Error(String(err)));
|
|
68
|
-
}
|
|
78
|
+
this.fail(slot, err instanceof Error ? err : new Error(String(err)));
|
|
69
79
|
this.replace(slot);
|
|
70
80
|
});
|
|
71
|
-
worker.on('exit',
|
|
72
|
-
if (
|
|
73
|
-
|
|
81
|
+
worker.on('exit', code => {
|
|
82
|
+
if (this.closing || !this.slots.includes(slot)) {
|
|
83
|
+
return;
|
|
74
84
|
}
|
|
85
|
+
// A worker that exits while holding a task takes the task down with it. Rejecting here
|
|
86
|
+
// rather than letting the per task timer expire turns a crash into an immediate failure
|
|
87
|
+
// instead of one that costs the whole timeout before anyone notices.
|
|
88
|
+
this.fail(slot, new Error(`worker exited with code ${code} while running a task`));
|
|
89
|
+
this.replace(slot);
|
|
75
90
|
});
|
|
76
91
|
this.slots.push(slot);
|
|
77
92
|
return slot;
|
|
@@ -83,9 +98,39 @@ class WorkerPool extends node_events_1.EventEmitter {
|
|
|
83
98
|
}
|
|
84
99
|
slot.busy = false;
|
|
85
100
|
void slot.worker.terminate().catch(() => undefined);
|
|
86
|
-
if (
|
|
87
|
-
|
|
88
|
-
|
|
101
|
+
if (this.closing || this.brokenBy) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Circuit breaker. A worker that dies during startup would otherwise be replaced forever,
|
|
105
|
+
// producing no results, no error and no end.
|
|
106
|
+
this.restarts++;
|
|
107
|
+
if (this.restarts > this.maxRestarts) {
|
|
108
|
+
this.brokenBy = new WorkerRestartBudgetError(this.restarts);
|
|
109
|
+
this.emit('worker-error', this.brokenBy);
|
|
110
|
+
this.failQueue(this.brokenBy);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.spawn();
|
|
114
|
+
this.drainQueue();
|
|
115
|
+
}
|
|
116
|
+
/** Reject whatever a slot was running, if anything. */
|
|
117
|
+
fail(slot, err) {
|
|
118
|
+
const current = slot.current;
|
|
119
|
+
if (!current) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
clearTimeout(current.timer);
|
|
123
|
+
slot.current = null;
|
|
124
|
+
slot.busy = false;
|
|
125
|
+
current.reject(err);
|
|
126
|
+
}
|
|
127
|
+
/** Reject everything in flight and waiting, so a broken pool stops a run instead of stalling it. */
|
|
128
|
+
failQueue(err) {
|
|
129
|
+
while (this.queue.length) {
|
|
130
|
+
this.queue.shift().reject(err);
|
|
131
|
+
}
|
|
132
|
+
for (const slot of this.slots) {
|
|
133
|
+
this.fail(slot, err);
|
|
89
134
|
}
|
|
90
135
|
}
|
|
91
136
|
dispatch(slot, item) {
|
|
@@ -125,6 +170,9 @@ class WorkerPool extends node_events_1.EventEmitter {
|
|
|
125
170
|
if (this.closing) {
|
|
126
171
|
return Promise.reject(new Error('worker pool is closing'));
|
|
127
172
|
}
|
|
173
|
+
if (this.brokenBy) {
|
|
174
|
+
return Promise.reject(this.brokenBy);
|
|
175
|
+
}
|
|
128
176
|
return new Promise((resolve, reject) => {
|
|
129
177
|
const item = { envelope: { id: this.nextId++, task }, resolve, reject };
|
|
130
178
|
const slot = this.slots.find(candidate => !candidate.busy);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../src/util/worker-pool.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,6DAA6C;AAC7C,6CAA2C;
|
|
1
|
+
{"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../src/util/worker-pool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@postalsys/email-content",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Extract conversationally relevant content from arbitrary email messages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"email",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"dist"
|
|
40
40
|
],
|
|
41
41
|
"engines": {
|
|
42
|
-
"node": ">=
|
|
42
|
+
"node": ">=20.0.0"
|
|
43
43
|
},
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
@@ -52,10 +52,11 @@
|
|
|
52
52
|
"lint": "eslint src test",
|
|
53
53
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"docs/**/*.md\" \"*.json\" \"*.js\"",
|
|
54
54
|
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"docs/**/*.md\" \"*.json\" \"*.js\"",
|
|
55
|
-
"test": "npm run build:test && node --test
|
|
56
|
-
"test:fast": "node --test
|
|
55
|
+
"test": "npm run build:test && node --test .build-test/test/*.test.js",
|
|
56
|
+
"test:fast": "node --test test/*.test.ts",
|
|
57
57
|
"prepublishOnly": "npm run build",
|
|
58
|
-
"cli": "node dist/cli/main.js"
|
|
58
|
+
"cli": "node dist/cli/main.js",
|
|
59
|
+
"verify:package": "node scripts/verify-package.js"
|
|
59
60
|
},
|
|
60
61
|
"dependencies": {
|
|
61
62
|
"@zone-eu/mailsplit": "5.4.14",
|