@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.
Files changed (96) hide show
  1. package/README.md +207 -17
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/analyze.d.ts +55 -15
  4. package/dist/analyze.d.ts.map +1 -1
  5. package/dist/analyze.js +264 -61
  6. package/dist/analyze.js.map +1 -1
  7. package/dist/canonical/html.d.ts +21 -2
  8. package/dist/canonical/html.d.ts.map +1 -1
  9. package/dist/canonical/html.js +213 -14
  10. package/dist/canonical/html.js.map +1 -1
  11. package/dist/classify/confidence.d.ts +12 -0
  12. package/dist/classify/confidence.d.ts.map +1 -1
  13. package/dist/classify/confidence.js +54 -4
  14. package/dist/classify/confidence.js.map +1 -1
  15. package/dist/classify/reconcile.d.ts +25 -17
  16. package/dist/classify/reconcile.d.ts.map +1 -1
  17. package/dist/classify/reconcile.js +52 -20
  18. package/dist/classify/reconcile.js.map +1 -1
  19. package/dist/cli/annotate.d.ts.map +1 -1
  20. package/dist/cli/annotate.js +6 -3
  21. package/dist/cli/annotate.js.map +1 -1
  22. package/dist/cli/args.d.ts +14 -0
  23. package/dist/cli/args.d.ts.map +1 -1
  24. package/dist/cli/args.js +48 -1
  25. package/dist/cli/args.js.map +1 -1
  26. package/dist/cli/benchmark.d.ts +39 -0
  27. package/dist/cli/benchmark.d.ts.map +1 -1
  28. package/dist/cli/benchmark.js +179 -66
  29. package/dist/cli/benchmark.js.map +1 -1
  30. package/dist/cli/corpus.d.ts.map +1 -1
  31. package/dist/cli/corpus.js +13 -8
  32. package/dist/cli/corpus.js.map +1 -1
  33. package/dist/cli/disagreements.d.ts.map +1 -1
  34. package/dist/cli/disagreements.js +7 -4
  35. package/dist/cli/disagreements.js.map +1 -1
  36. package/dist/cli/evaluate.d.ts.map +1 -1
  37. package/dist/cli/evaluate.js +34 -10
  38. package/dist/cli/evaluate.js.map +1 -1
  39. package/dist/cli/extract.d.ts.map +1 -1
  40. package/dist/cli/extract.js +8 -3
  41. package/dist/cli/extract.js.map +1 -1
  42. package/dist/cli/main.js +8 -0
  43. package/dist/cli/main.js.map +1 -1
  44. package/dist/corpus/scanner.d.ts +9 -1
  45. package/dist/corpus/scanner.d.ts.map +1 -1
  46. package/dist/corpus/scanner.js +52 -13
  47. package/dist/corpus/scanner.js.map +1 -1
  48. package/dist/corpus/store.d.ts +33 -2
  49. package/dist/corpus/store.d.ts.map +1 -1
  50. package/dist/corpus/store.js +64 -4
  51. package/dist/corpus/store.js.map +1 -1
  52. package/dist/detect/patterns.d.ts +29 -0
  53. package/dist/detect/patterns.d.ts.map +1 -1
  54. package/dist/detect/patterns.js +80 -6
  55. package/dist/detect/patterns.js.map +1 -1
  56. package/dist/detect/reply-header.d.ts +14 -0
  57. package/dist/detect/reply-header.d.ts.map +1 -1
  58. package/dist/detect/reply-header.js +80 -37
  59. package/dist/detect/reply-header.js.map +1 -1
  60. package/dist/eval/oracle.d.ts +80 -0
  61. package/dist/eval/oracle.d.ts.map +1 -0
  62. package/dist/eval/oracle.js +250 -0
  63. package/dist/eval/oracle.js.map +1 -0
  64. package/dist/index.d.ts +6 -3
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +94 -56
  67. package/dist/index.js.map +1 -1
  68. package/dist/mime/model.d.ts +28 -3
  69. package/dist/mime/model.d.ts.map +1 -1
  70. package/dist/mime/model.js +41 -1
  71. package/dist/mime/model.js.map +1 -1
  72. package/dist/mime/parse.d.ts.map +1 -1
  73. package/dist/mime/parse.js +19 -2
  74. package/dist/mime/parse.js.map +1 -1
  75. package/dist/mime/select.d.ts +71 -0
  76. package/dist/mime/select.d.ts.map +1 -0
  77. package/dist/mime/select.js +198 -0
  78. package/dist/mime/select.js.map +1 -0
  79. package/dist/segment/html-blocks.d.ts +1 -1
  80. package/dist/segment/html-blocks.d.ts.map +1 -1
  81. package/dist/segment/html-blocks.js +77 -8
  82. package/dist/segment/html-blocks.js.map +1 -1
  83. package/dist/segment/text-blocks.d.ts.map +1 -1
  84. package/dist/segment/text-blocks.js +18 -1
  85. package/dist/segment/text-blocks.js.map +1 -1
  86. package/dist/segment/types.d.ts +14 -0
  87. package/dist/segment/types.d.ts.map +1 -1
  88. package/dist/types.d.ts +132 -11
  89. package/dist/types.d.ts.map +1 -1
  90. package/dist/types.js +37 -3
  91. package/dist/types.js.map +1 -1
  92. package/dist/util/worker-pool.d.ts +21 -0
  93. package/dist/util/worker-pool.d.ts.map +1 -1
  94. package/dist/util/worker-pool.js +61 -13
  95. package/dist/util/worker-pool.js.map +1 -1
  96. package/package.json +6 -5
@@ -118,8 +118,8 @@ async function annotateCommand(args) {
118
118
  return 2;
119
119
  }
120
120
  const model = (0, args_1.flagString)(args, 'model', 'gpt-5.6-sol');
121
- const limit = (0, args_1.flagNumber)(args, 'sample', 25);
122
- const concurrency = (0, args_1.flagNumber)(args, 'concurrency', 4);
121
+ const limit = (0, args_1.flagPositiveInt)(args, 'sample', 25);
122
+ const concurrency = (0, args_1.flagPositiveInt)(args, 'concurrency', 4);
123
123
  const traffic = (0, args_1.flagString)(args, 'traffic', 'human');
124
124
  const seed = (0, args_1.flagString)(args, 'seed', 'annotate');
125
125
  const dryRun = (0, args_1.flagBool)(args, 'dry-run', false);
@@ -134,7 +134,10 @@ async function annotateCommand(args) {
134
134
  }
135
135
  }
136
136
  const store = new store_2.CorpusStore(dbPath);
137
- const root = store.queryOne('SELECT root FROM runs ORDER BY id DESC LIMIT 1')?.root;
137
+ // Only a run that finished cleanly. An interrupted or failed run holds partial output that
138
+ // looks exactly like a small corpus, and reading it as a baseline approves a release against
139
+ // whatever fraction of the messages happened to finish.
140
+ const root = store.latestCompletedRun()?.root;
138
141
  if (!root) {
139
142
  process.stderr.write('no completed scan run found\n');
140
143
  store.close();
@@ -1 +1 @@
1
- {"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/cli/annotate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/cli/annotate.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,20 @@ export interface ParsedArgs {
12
12
  export declare function parseArgs(argv: readonly string[]): ParsedArgs;
13
13
  export declare function flagString(args: ParsedArgs, name: string, fallback: string): string;
14
14
  export declare function flagOptionalString(args: ParsedArgs, name: string): string | undefined;
15
+ /**
16
+ * An invalid command line option.
17
+ *
18
+ * Thrown rather than clamped. `--concurrency -1` and `--timeout -1` used to reach worker pool
19
+ * creation and SQL, where they mean something arbitrary; a message naming the option is both
20
+ * cheaper to debug and impossible to misread as a result.
21
+ */
22
+ export declare class CliOptionError extends Error {
23
+ readonly option: string;
24
+ constructor(option: string, expected: string, received: string);
25
+ }
15
26
  export declare function flagNumber(args: ParsedArgs, name: string, fallback: number): number;
27
+ export declare function flagNumberInRange(args: ParsedArgs, name: string, fallback: number, min: number, max: number): number;
28
+ export declare function flagPositiveInt(args: ParsedArgs, name: string, fallback: number): number;
29
+ export declare function flagNonNegativeInt(args: ParsedArgs, name: string, fallback: number): number;
16
30
  export declare function flagBool(args: ParsedArgs, name: string, fallback: boolean): boolean;
17
31
  //# sourceMappingURL=args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACxC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CA+B7D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOnF;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CASnF"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACxC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CA+B7D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrF;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAKjE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUnF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMpH;AAcD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CASnF"}
package/dist/cli/args.js CHANGED
@@ -7,10 +7,14 @@
7
7
  * rather than convenience.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.CliOptionError = void 0;
10
11
  exports.parseArgs = parseArgs;
11
12
  exports.flagString = flagString;
12
13
  exports.flagOptionalString = flagOptionalString;
13
14
  exports.flagNumber = flagNumber;
15
+ exports.flagNumberInRange = flagNumberInRange;
16
+ exports.flagPositiveInt = flagPositiveInt;
17
+ exports.flagNonNegativeInt = flagNonNegativeInt;
14
18
  exports.flagBool = flagBool;
15
19
  function parseArgs(argv) {
16
20
  const positional = [];
@@ -51,13 +55,56 @@ function flagOptionalString(args, name) {
51
55
  const value = args.flags.get(name);
52
56
  return typeof value === 'string' ? value : undefined;
53
57
  }
58
+ /**
59
+ * An invalid command line option.
60
+ *
61
+ * Thrown rather than clamped. `--concurrency -1` and `--timeout -1` used to reach worker pool
62
+ * creation and SQL, where they mean something arbitrary; a message naming the option is both
63
+ * cheaper to debug and impossible to misread as a result.
64
+ */
65
+ class CliOptionError extends Error {
66
+ option;
67
+ constructor(option, expected, received) {
68
+ super(`--${option} expects ${expected}, got "${received}"`);
69
+ this.name = 'CliOptionError';
70
+ this.option = option;
71
+ }
72
+ }
73
+ exports.CliOptionError = CliOptionError;
54
74
  function flagNumber(args, name, fallback) {
55
75
  const value = args.flags.get(name);
56
76
  if (typeof value !== 'string') {
57
77
  return fallback;
58
78
  }
59
79
  const parsed = Number(value);
60
- return Number.isFinite(parsed) ? parsed : fallback;
80
+ if (!Number.isFinite(parsed)) {
81
+ throw new CliOptionError(name, 'a finite number', value);
82
+ }
83
+ return parsed;
84
+ }
85
+ function flagNumberInRange(args, name, fallback, min, max) {
86
+ const value = flagNumber(args, name, fallback);
87
+ if (value < min || value > max) {
88
+ throw new CliOptionError(name, `a number between ${min} and ${max}`, String(value));
89
+ }
90
+ return value;
91
+ }
92
+ function flagInteger(args, name, fallback, min, expected) {
93
+ const raw = args.flags.get(name);
94
+ if (typeof raw !== 'string') {
95
+ return fallback;
96
+ }
97
+ const parsed = Number(raw);
98
+ if (!Number.isSafeInteger(parsed) || parsed < min) {
99
+ throw new CliOptionError(name, expected, raw);
100
+ }
101
+ return parsed;
102
+ }
103
+ function flagPositiveInt(args, name, fallback) {
104
+ return flagInteger(args, name, fallback, 1, 'a positive integer');
105
+ }
106
+ function flagNonNegativeInt(args, name, fallback) {
107
+ return flagInteger(args, name, fallback, 0, 'a non negative integer');
61
108
  }
62
109
  function flagBool(args, name, fallback) {
63
110
  const value = args.flags.get(name);
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAOH,8BA+BC;AAED,gCAGC;AAED,gDAGC;AAmBD,gCAUC;AAED,8CAMC;AAcD,0CAEC;AAED,gDAEC;AAED,4BASC;AA7GD,SAAgB,SAAS,CAAC,IAAuB;IAC7C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACZ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,SAAS;QACb,CAAC;QACD,4FAA4F;QAC5F,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAChC,SAAS;QACb,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,SAAgB,UAAU,CAAC,IAAgB,EAAE,IAAY,EAAE,QAAgB;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAgB,EAAE,IAAY;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAa,cAAe,SAAQ,KAAK;IAC5B,MAAM,CAAS;IAExB,YAAY,MAAc,EAAE,QAAgB,EAAE,QAAgB;QAC1D,KAAK,CAAC,KAAK,MAAM,YAAY,QAAQ,UAAU,QAAQ,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AARD,wCAQC;AAED,SAAgB,UAAU,CAAC,IAAgB,EAAE,IAAY,EAAE,QAAgB;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAgB,EAAE,IAAY,EAAE,QAAgB,EAAE,GAAW,EAAE,GAAW;IACxG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,QAAQ,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,IAAgB,EAAE,IAAY,EAAE,QAAgB,EAAE,GAAW,EAAE,QAAgB;IAChG,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QAChD,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAgB,eAAe,CAAC,IAAgB,EAAE,IAAY,EAAE,QAAgB;IAC5E,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAgB,EAAE,IAAY,EAAE,QAAgB;IAC/E,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAgB,EAAE,IAAY,EAAE,QAAiB;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,CAAC;AAChE,CAAC"}
@@ -7,7 +7,46 @@
7
7
  *
8
8
  * The catastrophic checks here are structural and need no labels, so they can run over hundreds of
9
9
  * thousands of messages. They are a floor, not a substitute for the labelled evaluation in Phase 4.
10
+ *
11
+ * Whether the input had content is decided by `src/eval/oracle.ts`, which re-parses the message and
12
+ * never touches the extraction selection path. Deriving it from the output instead, which is what
13
+ * this file used to do, made the headline catastrophic counter unable to see total content loss.
10
14
  */
15
+ import { type Label, type WarningCode } from '../types';
11
16
  import { type ParsedArgs } from './args';
17
+ /** Everything the structural gate can decide about one message. */
18
+ export interface MessageCheck {
19
+ /** Visible body characters counted from the input, independently of extraction. */
20
+ inputVisibleChars: number;
21
+ visibleChars: number;
22
+ hiddenChars: number;
23
+ labels: Label[];
24
+ warnings: WarningCode[];
25
+ /** The message had visible body text and extraction returned nothing at all. */
26
+ emptyFromNonEmpty: boolean;
27
+ /** The message had visible body text and every segment was hidden. */
28
+ everythingHidden: boolean;
29
+ /** Something is visible, but all of it is a signature or a disclaimer. */
30
+ onlyFooterVisible: boolean;
31
+ /** At least one hidden segment names no structural or history reason. */
32
+ hiddenWithoutAnchor: boolean;
33
+ /** Forwarded content was hidden rather than collapsed. */
34
+ forwardedHidden: boolean;
35
+ /** HTML degraded to the malformed fallback and still produced no output. */
36
+ degradedWithEmptyOutput: boolean;
37
+ /** Required MIME coverage groups with no member anywhere in the output. */
38
+ missingCoverageGroups: number;
39
+ /** Alternative members deliberately not emitted. Reported apart from missing groups. */
40
+ alternativesNotEmitted: number;
41
+ /** Required groups represented only by hidden segments. */
42
+ coverageHiddenOnly: number;
43
+ }
44
+ /**
45
+ * Run the structural gate over one raw message.
46
+ *
47
+ * Exported so the committed fixture gate and its tests exercise exactly the code the corpus run
48
+ * uses, rather than a re-implementation that could drift from it.
49
+ */
50
+ export declare function checkMessage(raw: Buffer): Promise<MessageCheck>;
12
51
  export declare function benchmarkCommand(args: ParsedArgs): Promise<number>;
13
52
  //# sourceMappingURL=benchmark.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAiCjE,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA0JxE"}
1
+ {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EAAc,KAAK,KAAK,EAA6B,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAY1F,mEAAmE;AACnE,MAAM,WAAW,YAAY;IACzB,mFAAmF;IACnF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gFAAgF;IAChF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yEAAyE;IACzE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0DAA0D;IAC1D,eAAe,EAAE,OAAO,CAAC;IACzB,4EAA4E;IAC5E,uBAAuB,EAAE,OAAO,CAAC;IACjC,2EAA2E;IAC3E,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wFAAwF;IACxF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAgCrE;AAkJD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAyGxE"}
@@ -8,17 +8,26 @@
8
8
  *
9
9
  * The catastrophic checks here are structural and need no labels, so they can run over hundreds of
10
10
  * thousands of messages. They are a floor, not a substitute for the labelled evaluation in Phase 4.
11
+ *
12
+ * Whether the input had content is decided by `src/eval/oracle.ts`, which re-parses the message and
13
+ * never touches the extraction selection path. Deriving it from the output instead, which is what
14
+ * this file used to do, made the headline catastrophic counter unable to see total content loss.
11
15
  */
12
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
13
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
18
  };
15
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.checkMessage = checkMessage;
16
21
  exports.benchmarkCommand = benchmarkCommand;
17
22
  const node_fs_1 = __importDefault(require("node:fs"));
18
23
  const node_path_1 = __importDefault(require("node:path"));
19
24
  const index_1 = require("../index");
25
+ const parse_1 = require("../mime/parse");
20
26
  const store_1 = require("../corpus/store");
27
+ const oracle_1 = require("../eval/oracle");
28
+ const types_1 = require("../types");
21
29
  const args_1 = require("./args");
30
+ /** Reasons that count as a structural anchor for hiding content. */
22
31
  const ANCHOR_REASONS = new Set([
23
32
  'preceded_by_reply_header',
24
33
  'preceded_by_forward_header',
@@ -27,6 +36,104 @@ const ANCHOR_REASONS = new Set([
27
36
  'matched_parent_message',
28
37
  'matched_thread_ancestor'
29
38
  ]);
39
+ /**
40
+ * Run the structural gate over one raw message.
41
+ *
42
+ * Exported so the committed fixture gate and its tests exercise exactly the code the corpus run
43
+ * uses, rather than a re-implementation that could drift from it.
44
+ */
45
+ async function checkMessage(raw) {
46
+ // Independent parse. The extractor's own view of the message is never consulted here.
47
+ const parsed = await (0, parse_1.parseMessage)(raw);
48
+ const inventory = (0, oracle_1.inventoryVisibleInput)(parsed);
49
+ const groups = (0, oracle_1.requiredCoverageGroups)(parsed);
50
+ const result = await (0, index_1.extract)(raw);
51
+ const visible = result.segments;
52
+ const hidden = result.hiddenSegments;
53
+ const visibleChars = visible.reduce((sum, segment) => sum + segment.text.length, 0);
54
+ const hiddenChars = hidden.reduce((sum, segment) => sum + segment.text.length, 0);
55
+ const warnings = result.warnings.map(warning => warning.code);
56
+ const partsOf = (segments) => new Set(segments.map(segment => (0, types_1.mimePartOf)(segment.source)).filter((part) => part !== null));
57
+ const coverage = (0, oracle_1.coverageOf)(groups, partsOf(visible), partsOf(hidden));
58
+ return {
59
+ missingCoverageGroups: coverage.missing.length,
60
+ alternativesNotEmitted: coverage.alternativesNotEmitted.length,
61
+ coverageHiddenOnly: coverage.hiddenOnly.length,
62
+ inputVisibleChars: inventory.visibleChars,
63
+ visibleChars,
64
+ hiddenChars,
65
+ labels: [...visible, ...hidden].map(segment => segment.type),
66
+ warnings,
67
+ emptyFromNonEmpty: inventory.hasVisibleText && visibleChars + hiddenChars === 0,
68
+ everythingHidden: inventory.hasVisibleText && visibleChars === 0,
69
+ onlyFooterVisible: visible.length > 0 && visible.every(segment => segment.type === 'SIGNATURE' || segment.type === 'DISCLAIMER'),
70
+ hiddenWithoutAnchor: hidden.some(segment => !segment.reasons.some(reason => ANCHOR_REASONS.has(reason))),
71
+ forwardedHidden: hidden.some(segment => segment.type === 'FORWARDED_CONTENT'),
72
+ degradedWithEmptyOutput: warnings.includes('html_parse_error') && visibleChars + hiddenChars === 0
73
+ };
74
+ }
75
+ function newCounters() {
76
+ return {
77
+ messages: 0,
78
+ errors: 0,
79
+ nonEmptyInputs: 0,
80
+ emptyFromNonEmpty: 0,
81
+ missingCoverageGroups: 0,
82
+ messagesMissingCoverage: 0,
83
+ alternativesNotEmitted: 0,
84
+ coverageHiddenOnly: 0,
85
+ everythingHidden: 0,
86
+ onlySignatureVisible: 0,
87
+ hiddenWithoutAnchor: 0,
88
+ forwardedHidden: 0,
89
+ degradedWithEmptyOutput: 0,
90
+ hiddenChars: 0,
91
+ visibleChars: 0,
92
+ labels: new Map(),
93
+ warnings: new Map(),
94
+ durations: []
95
+ };
96
+ }
97
+ function record(counters, check) {
98
+ counters.messages++;
99
+ counters.visibleChars += check.visibleChars;
100
+ counters.hiddenChars += check.hiddenChars;
101
+ if (check.inputVisibleChars > 0) {
102
+ counters.nonEmptyInputs++;
103
+ }
104
+ for (const label of check.labels) {
105
+ counters.labels.set(label, (counters.labels.get(label) ?? 0) + 1);
106
+ }
107
+ // Per message, not per occurrence: a per warning tally divided by the message count is not a
108
+ // percentage of anything, which is the bug the old hidden-without-anchor rate had.
109
+ for (const code of new Set(check.warnings)) {
110
+ counters.warnings.set(code, (counters.warnings.get(code) ?? 0) + 1);
111
+ }
112
+ counters.missingCoverageGroups += check.missingCoverageGroups;
113
+ counters.alternativesNotEmitted += check.alternativesNotEmitted;
114
+ counters.coverageHiddenOnly += check.coverageHiddenOnly;
115
+ if (check.missingCoverageGroups > 0) {
116
+ counters.messagesMissingCoverage++;
117
+ }
118
+ if (check.emptyFromNonEmpty) {
119
+ counters.emptyFromNonEmpty++;
120
+ }
121
+ if (check.everythingHidden) {
122
+ counters.everythingHidden++;
123
+ }
124
+ if (check.onlyFooterVisible) {
125
+ counters.onlySignatureVisible++;
126
+ }
127
+ if (check.hiddenWithoutAnchor) {
128
+ counters.hiddenWithoutAnchor++;
129
+ }
130
+ if (check.forwardedHidden) {
131
+ counters.forwardedHidden++;
132
+ }
133
+ if (check.degradedWithEmptyOutput) {
134
+ counters.degradedWithEmptyOutput++;
135
+ }
136
+ }
30
137
  function percentile(values, fraction) {
31
138
  if (!values.length) {
32
139
  return 0;
@@ -34,99 +141,85 @@ function percentile(values, fraction) {
34
141
  const index = Math.min(values.length - 1, Math.max(0, Math.floor(values.length * fraction)));
35
142
  return values[index] ?? 0;
36
143
  }
37
- async function benchmarkCommand(args) {
144
+ /** Resolve the list of message files to run, either from a directory or from the corpus database. */
145
+ function resolveInputs(args) {
146
+ const dir = (0, args_1.flagOptionalString)(args, 'dir');
147
+ if (dir) {
148
+ if (!node_fs_1.default.existsSync(dir)) {
149
+ return { error: `no such directory: ${dir}`, code: 2 };
150
+ }
151
+ const files = node_fs_1.default
152
+ .readdirSync(dir)
153
+ .filter(name => name.endsWith('.eml'))
154
+ .sort()
155
+ .map(name => node_path_1.default.join(dir, name));
156
+ return { files, label: `dir=${dir}` };
157
+ }
38
158
  const dbPath = (0, args_1.flagString)(args, 'db', 'data/corpus.sqlite');
39
159
  if (!node_fs_1.default.existsSync(dbPath)) {
40
- process.stderr.write(`no corpus database at ${dbPath}. Run "corpus scan" first.\n`);
41
- return 2;
160
+ return { error: `no corpus database at ${dbPath}. Run "corpus scan" first, or pass --dir.`, code: 2 };
42
161
  }
43
- const limit = (0, args_1.flagNumber)(args, 'sample', 2000);
162
+ const limit = (0, args_1.flagPositiveInt)(args, 'sample', 2000);
44
163
  const traffic = (0, args_1.flagString)(args, 'traffic', 'human');
45
164
  const onlyReplies = (0, args_1.flagString)(args, 'replies', 'true') !== 'false';
46
165
  const store = new store_1.CorpusStore(dbPath);
47
- const root = store.queryOne('SELECT root FROM runs ORDER BY id DESC LIMIT 1')?.root;
48
- if (!root) {
49
- process.stderr.write('no completed scan run found\n');
50
- store.close();
51
- return 2;
166
+ try {
167
+ // Only a run that finished cleanly. An interrupted or failed run holds partial output that
168
+ // looks exactly like a small corpus, and reading it as a baseline approves a release against
169
+ // whatever fraction of the messages happened to finish.
170
+ const root = store.latestCompletedRun()?.root;
171
+ if (!root) {
172
+ return { error: 'no completed scan run found', code: 2 };
173
+ }
174
+ // Ordering by path keeps the selection deterministic for a given database and filter.
175
+ const where = ["f.status = 'ok'"];
176
+ if (traffic !== 'all') {
177
+ where.push(`m.traffic = '${traffic.replace(/'/g, '')}'`);
178
+ }
179
+ if (onlyReplies) {
180
+ where.push('m.is_reply = 1');
181
+ }
182
+ const rows = store.query(`SELECT m.path AS path FROM messages m JOIN files f ON f.path = m.path WHERE ${where.join(' AND ')} ORDER BY m.path LIMIT ?`, limit);
183
+ return { files: rows.map(row => node_path_1.default.join(root, row.path)), label: `traffic=${traffic}, replies-only=${onlyReplies}` };
52
184
  }
53
- // Ordering by path keeps the selection deterministic for a given database and filter.
54
- const where = ["f.status = 'ok'"];
55
- if (traffic !== 'all') {
56
- where.push(`m.traffic = '${traffic.replace(/'/g, '')}'`);
185
+ finally {
186
+ store.close();
57
187
  }
58
- if (onlyReplies) {
59
- where.push('m.is_reply = 1');
188
+ }
189
+ async function benchmarkCommand(args) {
190
+ const inputs = resolveInputs(args);
191
+ if ('error' in inputs) {
192
+ process.stderr.write(`${inputs.error}\n`);
193
+ return inputs.code;
60
194
  }
61
- const rows = store.query(`SELECT m.path AS path FROM messages m JOIN files f ON f.path = m.path WHERE ${where.join(' AND ')} ORDER BY m.path LIMIT ?`, limit);
62
- store.close();
63
- if (!rows.length) {
195
+ if (!inputs.files.length) {
64
196
  process.stderr.write('no matching messages\n');
65
197
  return 1;
66
198
  }
67
- const counters = {
68
- messages: 0,
69
- errors: 0,
70
- emptyFromNonEmpty: 0,
71
- everythingHidden: 0,
72
- onlySignatureVisible: 0,
73
- hiddenWithoutAnchor: 0,
74
- forwardedHidden: 0,
75
- hiddenChars: 0,
76
- visibleChars: 0,
77
- labels: new Map(),
78
- durations: []
79
- };
199
+ const counters = newCounters();
80
200
  const rssStart = process.memoryUsage.rss();
81
201
  let rssPeak = rssStart;
82
202
  const started = Date.now();
83
- for (const row of rows) {
203
+ for (const file of inputs.files) {
84
204
  let raw;
85
205
  try {
86
- raw = node_fs_1.default.readFileSync(node_path_1.default.join(root, row.path));
206
+ raw = node_fs_1.default.readFileSync(file);
87
207
  }
88
208
  catch {
89
209
  counters.errors++;
90
210
  continue;
91
211
  }
92
212
  const t0 = process.hrtime.bigint();
93
- let result;
213
+ let check;
94
214
  try {
95
- result = await (0, index_1.extract)(raw);
215
+ check = await checkMessage(raw);
96
216
  }
97
217
  catch {
98
218
  counters.errors++;
99
219
  continue;
100
220
  }
101
221
  counters.durations.push(Number(process.hrtime.bigint() - t0) / 1e6);
102
- counters.messages++;
103
- const visible = result.segments;
104
- const hidden = result.hiddenSegments;
105
- const visibleChars = visible.reduce((sum, segment) => sum + segment.text.length, 0);
106
- const hiddenChars = hidden.reduce((sum, segment) => sum + segment.text.length, 0);
107
- counters.visibleChars += visibleChars;
108
- counters.hiddenChars += hiddenChars;
109
- for (const segment of [...visible, ...hidden]) {
110
- counters.labels.set(segment.type, (counters.labels.get(segment.type) ?? 0) + 1);
111
- }
112
- const hadContent = visibleChars + hiddenChars > 0;
113
- if (hadContent && visibleChars === 0) {
114
- counters.everythingHidden++;
115
- }
116
- if (hadContent && !visible.length) {
117
- counters.emptyFromNonEmpty++;
118
- }
119
- if (visible.length > 0 && visible.every(segment => segment.type === 'SIGNATURE' || segment.type === 'DISCLAIMER')) {
120
- counters.onlySignatureVisible++;
121
- }
122
- for (const segment of hidden) {
123
- if (!segment.reasons.some(reason => ANCHOR_REASONS.has(reason))) {
124
- counters.hiddenWithoutAnchor++;
125
- }
126
- if (segment.type === 'FORWARDED_CONTENT') {
127
- counters.forwardedHidden++;
128
- }
129
- }
222
+ record(counters, check);
130
223
  if (counters.messages % 250 === 0) {
131
224
  rssPeak = Math.max(rssPeak, process.memoryUsage.rss());
132
225
  }
@@ -136,12 +229,12 @@ async function benchmarkCommand(args) {
136
229
  counters.durations.sort((a, b) => a - b);
137
230
  const out = [];
138
231
  const pct = (value) => `${((100 * value) / Math.max(1, counters.messages)).toFixed(2)}%`;
139
- out.push(`sample: ${counters.messages} messages (traffic=${traffic}, replies-only=${onlyReplies})`);
232
+ out.push(`sample: ${counters.messages} messages (${inputs.label})`);
140
233
  out.push(`errors: ${counters.errors}`);
141
234
  out.push('');
142
235
  out.push('THROUGHPUT');
143
236
  out.push(` total ${(elapsed / 1000).toFixed(1)}s`);
144
- out.push(` rate ${((counters.messages / elapsed) * 1000).toFixed(0)} messages/s (single threaded)`);
237
+ out.push(` rate ${((counters.messages / Math.max(1, elapsed)) * 1000).toFixed(0)} messages/s (single threaded)`);
145
238
  out.push(` per message p50 ${percentile(counters.durations, 0.5).toFixed(2)} ms`);
146
239
  out.push(` per message p90 ${percentile(counters.durations, 0.9).toFixed(2)} ms`);
147
240
  out.push(` per message p99 ${percentile(counters.durations, 0.99).toFixed(2)} ms`);
@@ -150,6 +243,7 @@ async function benchmarkCommand(args) {
150
243
  out.push('');
151
244
  out.push('CONTENT');
152
245
  const totalChars = counters.visibleChars + counters.hiddenChars;
246
+ out.push(` non empty inputs ${counters.nonEmptyInputs} (${pct(counters.nonEmptyInputs)})`);
153
247
  out.push(` visible characters ${counters.visibleChars.toLocaleString('en-US')} (${((100 * counters.visibleChars) / Math.max(1, totalChars)).toFixed(1)}%)`);
154
248
  out.push(` hidden characters ${counters.hiddenChars.toLocaleString('en-US')} (${((100 * counters.hiddenChars) / Math.max(1, totalChars)).toFixed(1)}%)`);
155
249
  out.push('');
@@ -157,6 +251,13 @@ async function benchmarkCommand(args) {
157
251
  for (const [label, count] of [...counters.labels].sort((a, b) => b[1] - a[1])) {
158
252
  out.push(` ${label.padEnd(18)} ${String(count).padStart(7)}`);
159
253
  }
254
+ if (counters.warnings.size) {
255
+ out.push('');
256
+ out.push('MESSAGES BY WARNING');
257
+ for (const [code, count] of [...counters.warnings].sort((a, b) => b[1] - a[1])) {
258
+ out.push(` ${code.padEnd(34)} ${String(count).padStart(7)} (${pct(count)})`);
259
+ }
260
+ }
160
261
  out.push('');
161
262
  out.push('CATASTROPHIC CHECKS (structural, no labels required)');
162
263
  out.push(` empty extraction from non empty message ${counters.emptyFromNonEmpty} (${pct(counters.emptyFromNonEmpty)})`);
@@ -164,9 +265,21 @@ async function benchmarkCommand(args) {
164
265
  out.push(` only a footer left visible ${counters.onlySignatureVisible} (${pct(counters.onlySignatureVisible)})`);
165
266
  out.push(` hidden without a structural anchor ${counters.hiddenWithoutAnchor} (${pct(counters.hiddenWithoutAnchor)})`);
166
267
  out.push(` forwarded content hidden ${counters.forwardedHidden} (${pct(counters.forwardedHidden)})`);
268
+ out.push(` degraded HTML with empty output ${counters.degradedWithEmptyOutput} (${pct(counters.degradedWithEmptyOutput)})`);
269
+ out.push(` messages missing a MIME coverage group ${counters.messagesMissingCoverage} (${pct(counters.messagesMissingCoverage)})`);
270
+ out.push('');
271
+ out.push('MIME COVERAGE (informational, not failures)');
272
+ out.push(` missing required groups ${counters.missingCoverageGroups}`);
273
+ out.push(` alternative members not emitted ${counters.alternativesNotEmitted}`);
274
+ out.push(` groups represented only by hidden text ${counters.coverageHiddenOnly}`);
167
275
  process.stdout.write(`${out.join('\n')}\n`);
168
276
  // A non zero exit makes this usable as a regression gate.
169
- const failed = counters.emptyFromNonEmpty + counters.everythingHidden + counters.hiddenWithoutAnchor + counters.forwardedHidden;
277
+ const failed = counters.emptyFromNonEmpty +
278
+ counters.everythingHidden +
279
+ counters.hiddenWithoutAnchor +
280
+ counters.forwardedHidden +
281
+ counters.degradedWithEmptyOutput +
282
+ counters.messagesMissingCoverage;
170
283
  return failed === 0 ? 0 : 1;
171
284
  }
172
285
  //# sourceMappingURL=benchmark.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;AAwCH,4CA0JC;AAhMD,sDAAyB;AACzB,0DAA6B;AAC7B,oCAAmC;AACnC,2CAA8C;AAE9C,iCAAiE;AAgBjE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC3B,0BAA0B;IAC1B,4BAA4B;IAC5B,wBAAwB;IACxB,yBAAyB;IACzB,wBAAwB;IACxB,yBAAyB;CAC5B,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,MAAyB,EAAE,QAAgB;IAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC;IACb,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7F,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,IAAgB;IACnD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC5D,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,8BAA8B,CAAC,CAAC;QACpF,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;IAEpE,MAAM,KAAK,GAAG,IAAI,mBAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAmB,gDAAgD,CAAC,EAAE,IAAI,CAAC;IACtG,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACtD,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,CAAC;IACb,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,GAAa,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CACpB,+EAA+E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAC5H,KAAK,CACR,CAAC;IACF,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAa;QACvB,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,CAAC;QACnB,oBAAoB,EAAE,CAAC;QACvB,mBAAmB,EAAE,CAAC;QACtB,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,SAAS,EAAE,EAAE;KAChB,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACD,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACL,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QAED,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACL,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QACD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QACpE,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAEpB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClF,QAAQ,CAAC,YAAY,IAAI,YAAY,CAAC;QACtC,QAAQ,CAAC,WAAW,IAAI,WAAW,CAAC;QAEpC,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,CAAC,CAAC;QAClD,IAAI,UAAU,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YAChH,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QACpC,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC9D,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YACnC,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAEjG,GAAG,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,QAAQ,sBAAsB,OAAO,kBAAkB,WAAW,GAAG,CAAC,CAAC;IACpG,GAAG,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;IACjH,GAAG,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpF,GAAG,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpF,GAAG,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrF,GAAG,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAClF,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpB,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC;IAChE,GAAG,CAAC,IAAI,CACJ,wBAAwB,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACrJ,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3J,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACjE,GAAG,CAAC,IAAI,CAAC,8CAA8C,QAAQ,CAAC,iBAAiB,KAAK,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC1H,GAAG,CAAC,IAAI,CAAC,8CAA8C,QAAQ,CAAC,gBAAgB,KAAK,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxH,GAAG,CAAC,IAAI,CAAC,8CAA8C,QAAQ,CAAC,oBAAoB,KAAK,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChI,GAAG,CAAC,IAAI,CAAC,8CAA8C,QAAQ,CAAC,mBAAmB,KAAK,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC9H,GAAG,CAAC,IAAI,CAAC,8CAA8C,QAAQ,CAAC,eAAe,KAAK,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAEtH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5C,0DAA0D;IAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,eAAe,CAAC;IAChI,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":"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"}