@usejunior/docx-core 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +0 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/atomizer.d.ts.map +1 -1
  4. package/dist/atomizer.js +16 -3
  5. package/dist/atomizer.js.map +1 -1
  6. package/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -1
  7. package/dist/baselines/atomizer/documentReconstructor.js +11 -5
  8. package/dist/baselines/atomizer/documentReconstructor.js.map +1 -1
  9. package/dist/baselines/atomizer/inPlaceModifier.d.ts +81 -1
  10. package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -1
  11. package/dist/baselines/atomizer/inPlaceModifier.js +618 -34
  12. package/dist/baselines/atomizer/inPlaceModifier.js.map +1 -1
  13. package/dist/baselines/atomizer/pipeline.d.ts +1 -1
  14. package/dist/baselines/atomizer/pipeline.d.ts.map +1 -1
  15. package/dist/baselines/atomizer/pipeline.js +70 -1
  16. package/dist/baselines/atomizer/pipeline.js.map +1 -1
  17. package/dist/baselines/atomizer/premergeRuns.d.ts.map +1 -1
  18. package/dist/baselines/atomizer/premergeRuns.js +3 -0
  19. package/dist/baselines/atomizer/premergeRuns.js.map +1 -1
  20. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -1
  21. package/dist/baselines/atomizer/trackChangesAcceptorAst.js +63 -33
  22. package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -1
  23. package/dist/cli/compare-two.js +4 -4
  24. package/dist/cli/compare-two.js.map +1 -1
  25. package/dist/index.d.ts +6 -6
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +7 -7
  28. package/dist/index.js.map +1 -1
  29. package/dist/primitives/document.d.ts +6 -0
  30. package/dist/primitives/document.d.ts.map +1 -1
  31. package/dist/primitives/document.js +198 -3
  32. package/dist/primitives/document.js.map +1 -1
  33. package/dist/primitives/document_view.d.ts +39 -0
  34. package/dist/primitives/document_view.d.ts.map +1 -1
  35. package/dist/primitives/document_view.js +83 -13
  36. package/dist/primitives/document_view.js.map +1 -1
  37. package/dist/primitives/dom-helpers.d.ts +11 -0
  38. package/dist/primitives/dom-helpers.d.ts.map +1 -1
  39. package/dist/primitives/dom-helpers.js +23 -0
  40. package/dist/primitives/dom-helpers.js.map +1 -1
  41. package/dist/primitives/index.d.ts +1 -0
  42. package/dist/primitives/index.d.ts.map +1 -1
  43. package/dist/primitives/index.js +1 -0
  44. package/dist/primitives/index.js.map +1 -1
  45. package/dist/primitives/tables.d.ts +54 -0
  46. package/dist/primitives/tables.d.ts.map +1 -0
  47. package/dist/primitives/tables.js +192 -0
  48. package/dist/primitives/tables.js.map +1 -0
  49. package/package.json +2 -2
  50. package/dist/baselines/diffmatch/documentBuilder.d.ts +0 -44
  51. package/dist/baselines/diffmatch/documentBuilder.d.ts.map +0 -1
  52. package/dist/baselines/diffmatch/documentBuilder.js +0 -227
  53. package/dist/baselines/diffmatch/documentBuilder.js.map +0 -1
  54. package/dist/baselines/diffmatch/paragraphAlignment.d.ts +0 -75
  55. package/dist/baselines/diffmatch/paragraphAlignment.d.ts.map +0 -1
  56. package/dist/baselines/diffmatch/paragraphAlignment.js +0 -206
  57. package/dist/baselines/diffmatch/paragraphAlignment.js.map +0 -1
  58. package/dist/baselines/diffmatch/pipeline.d.ts +0 -33
  59. package/dist/baselines/diffmatch/pipeline.d.ts.map +0 -1
  60. package/dist/baselines/diffmatch/pipeline.js +0 -84
  61. package/dist/baselines/diffmatch/pipeline.js.map +0 -1
  62. package/dist/baselines/diffmatch/runDiff.d.ts +0 -53
  63. package/dist/baselines/diffmatch/runDiff.d.ts.map +0 -1
  64. package/dist/baselines/diffmatch/runDiff.js +0 -253
  65. package/dist/baselines/diffmatch/runDiff.js.map +0 -1
  66. package/dist/baselines/diffmatch/trackChangesRenderer.d.ts +0 -64
  67. package/dist/baselines/diffmatch/trackChangesRenderer.d.ts.map +0 -1
  68. package/dist/baselines/diffmatch/trackChangesRenderer.js +0 -178
  69. package/dist/baselines/diffmatch/trackChangesRenderer.js.map +0 -1
  70. package/dist/baselines/diffmatch/xmlParser.d.ts +0 -45
  71. package/dist/baselines/diffmatch/xmlParser.d.ts.map +0 -1
  72. package/dist/baselines/diffmatch/xmlParser.js +0 -216
  73. package/dist/baselines/diffmatch/xmlParser.js.map +0 -1
  74. package/dist/benchmark/gates.d.ts +0 -17
  75. package/dist/benchmark/gates.d.ts.map +0 -1
  76. package/dist/benchmark/gates.js +0 -260
  77. package/dist/benchmark/gates.js.map +0 -1
  78. package/dist/benchmark/metrics.d.ts +0 -15
  79. package/dist/benchmark/metrics.d.ts.map +0 -1
  80. package/dist/benchmark/metrics.js +0 -24
  81. package/dist/benchmark/metrics.js.map +0 -1
  82. package/dist/benchmark/reporter.d.ts +0 -10
  83. package/dist/benchmark/reporter.d.ts.map +0 -1
  84. package/dist/benchmark/reporter.js +0 -94
  85. package/dist/benchmark/reporter.js.map +0 -1
  86. package/dist/benchmark/runner.d.ts +0 -15
  87. package/dist/benchmark/runner.d.ts.map +0 -1
  88. package/dist/benchmark/runner.js +0 -241
  89. package/dist/benchmark/runner.js.map +0 -1
  90. package/dist/benchmark/scores.d.ts +0 -24
  91. package/dist/benchmark/scores.d.ts.map +0 -1
  92. package/dist/benchmark/scores.js +0 -103
  93. package/dist/benchmark/scores.js.map +0 -1
  94. package/dist/benchmark/types.d.ts +0 -81
  95. package/dist/benchmark/types.d.ts.map +0 -1
  96. package/dist/benchmark/types.js +0 -7
  97. package/dist/benchmark/types.js.map +0 -1
@@ -1,216 +0,0 @@
1
- /**
2
- * XML Parser for extracting paragraphs and runs from DOCX document.xml.
3
- *
4
- * Uses xmldom to parse OOXML and extract ParagraphInfo objects
5
- * suitable for comparison.
6
- */
7
- import { XMLSerializer } from '@xmldom/xmldom';
8
- import { parseXml } from '../../primitives/xml.js';
9
- import { hashParagraph } from './paragraphAlignment.js';
10
- const ELEMENT_NODE = 1;
11
- const serializer = new XMLSerializer();
12
- /**
13
- * Extract paragraphs from document.xml content.
14
- *
15
- * @param documentXml - The raw document.xml content
16
- * @returns Array of ParagraphInfo objects with runs and metadata
17
- */
18
- export function extractParagraphs(documentXml) {
19
- const doc = parseXml(documentXml);
20
- const paragraphs = [];
21
- // Navigate to w:body
22
- const body = doc.getElementsByTagName('w:body')[0];
23
- if (!body) {
24
- return paragraphs;
25
- }
26
- // Find direct w:p children in body.
27
- let paragraphIndex = 0;
28
- for (const child of childElements(body)) {
29
- if (child.tagName === 'w:p') {
30
- const para = extractParagraph(child, paragraphIndex);
31
- paragraphs.push(para);
32
- paragraphIndex++;
33
- }
34
- // Note: We skip w:tbl (tables) for v1 - could add support later
35
- }
36
- return paragraphs;
37
- }
38
- /**
39
- * Extract a single paragraph from a parsed w:p element.
40
- */
41
- function extractParagraph(pElement, index) {
42
- const runs = [];
43
- let charOffset = 0;
44
- let pPrXml;
45
- for (const child of childElements(pElement)) {
46
- if (child.tagName === 'w:pPr') {
47
- // Extract paragraph properties as XML for preservation
48
- pPrXml = elementToXml(child);
49
- }
50
- else if (child.tagName === 'w:r') {
51
- // Extract run
52
- const runInfo = extractRun(child, charOffset);
53
- if (runInfo.text.length > 0) {
54
- runs.push(runInfo);
55
- charOffset = runInfo.end;
56
- }
57
- }
58
- // Skip other elements (bookmarkStart, bookmarkEnd, etc.)
59
- }
60
- // Combine all run text
61
- const text = runs.map(r => r.text).join('');
62
- return {
63
- text,
64
- runs,
65
- hash: hashParagraph(text),
66
- pPrXml,
67
- originalIndex: index,
68
- };
69
- }
70
- /**
71
- * Extract a single run from a parsed w:r element.
72
- */
73
- function extractRun(rElement, startOffset) {
74
- let text = '';
75
- let properties;
76
- for (const child of childElements(rElement)) {
77
- if (child.tagName === 'w:rPr') {
78
- properties = extractRunProperties(child);
79
- }
80
- else if (child.tagName === 'w:t') {
81
- // Get text content
82
- text += child.textContent ?? '';
83
- }
84
- else if (child.tagName === 'w:tab') {
85
- // Tab character
86
- text += '\t';
87
- }
88
- else if (child.tagName === 'w:br') {
89
- // Break (newline)
90
- text += '\n';
91
- }
92
- // Skip other elements (w:sym, w:drawing, etc.)
93
- }
94
- return {
95
- text,
96
- start: startOffset,
97
- end: startOffset + text.length,
98
- properties,
99
- };
100
- }
101
- /**
102
- * Extract run properties from a w:rPr element.
103
- */
104
- export function extractRunProperties(rPrElement) {
105
- const props = {};
106
- let hasProps = false;
107
- for (const child of childElements(rPrElement)) {
108
- if (child.tagName === 'w:b') {
109
- props.bold = true;
110
- hasProps = true;
111
- }
112
- else if (child.tagName === 'w:i') {
113
- props.italic = true;
114
- hasProps = true;
115
- }
116
- else if (child.tagName === 'w:u') {
117
- const val = child.getAttribute('w:val');
118
- props.underline = val || 'single';
119
- hasProps = true;
120
- }
121
- else if (child.tagName === 'w:strike') {
122
- props.strikethrough = true;
123
- hasProps = true;
124
- }
125
- else if (child.tagName === 'w:highlight') {
126
- const val = child.getAttribute('w:val');
127
- if (val) {
128
- props.highlight = val;
129
- hasProps = true;
130
- }
131
- }
132
- else if (child.tagName === 'w:color') {
133
- const val = child.getAttribute('w:val');
134
- if (val) {
135
- props.color = val;
136
- hasProps = true;
137
- }
138
- }
139
- else if (child.tagName === 'w:sz') {
140
- const val = child.getAttribute('w:val');
141
- if (val) {
142
- const parsed = Number.parseInt(val, 10);
143
- if (!Number.isNaN(parsed)) {
144
- props.fontSize = parsed;
145
- hasProps = true;
146
- }
147
- }
148
- }
149
- else if (child.tagName === 'w:rFonts') {
150
- const ascii = child.getAttribute('w:ascii');
151
- if (ascii) {
152
- props.fontFamily = ascii;
153
- hasProps = true;
154
- }
155
- }
156
- }
157
- return hasProps ? props : undefined;
158
- }
159
- /**
160
- * Get the document body content (everything inside w:body).
161
- * Useful for document reconstruction.
162
- */
163
- export function getBodyContent(documentXml) {
164
- // Use regex to extract body content while preserving structure
165
- const bodyMatch = documentXml.match(/(<w:body[^>]*>)([\s\S]*?)(<\/w:body>)/);
166
- if (!bodyMatch) {
167
- return {
168
- beforeBody: documentXml,
169
- bodyContent: '',
170
- afterBody: '',
171
- };
172
- }
173
- const bodyStart = documentXml.indexOf(bodyMatch[0]);
174
- const bodyEnd = bodyStart + bodyMatch[0].length;
175
- return {
176
- beforeBody: documentXml.slice(0, bodyStart) + bodyMatch[1],
177
- bodyContent: bodyMatch[2],
178
- afterBody: bodyMatch[3] + documentXml.slice(bodyEnd),
179
- };
180
- }
181
- /**
182
- * Extract sectPr (section properties) from body content if present.
183
- * sectPr must remain at the end of body.
184
- */
185
- export function extractSectPr(bodyContent) {
186
- // Find the last w:sectPr in the body
187
- const sectPrMatch = bodyContent.match(/<w:sectPr[^>]*>[\s\S]*?<\/w:sectPr>\s*$/);
188
- if (!sectPrMatch) {
189
- return { content: bodyContent, sectPr: null };
190
- }
191
- const sectPrStart = bodyContent.lastIndexOf(sectPrMatch[0]);
192
- return {
193
- content: bodyContent.slice(0, sectPrStart),
194
- sectPr: sectPrMatch[0],
195
- };
196
- }
197
- /**
198
- * Convert an element back to XML string.
199
- */
200
- function elementToXml(element) {
201
- return serializer.serializeToString(element);
202
- }
203
- /**
204
- * Get direct element children.
205
- */
206
- function childElements(element) {
207
- const children = [];
208
- for (let i = 0; i < element.childNodes.length; i++) {
209
- const child = element.childNodes[i];
210
- if (child && child.nodeType === ELEMENT_NODE) {
211
- children.push(child);
212
- }
213
- }
214
- return children;
215
- }
216
- //# sourceMappingURL=xmlParser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xmlParser.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/xmlParser.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Quality benchmark gates.
3
- *
4
- * G1: Text round-trip (HARD) — 3 sub-checks
5
- * G2: Formatting projection (SOFT / diagnostic in v1)
6
- * G3: Structural integrity (HARD)
7
- */
8
- import type { G1TextRoundTripResult, GateResult, GateResults } from './types.js';
9
- export declare function gateTextRoundTrip(resultDocumentXml: string, originalText: string, revisedText: string): G1TextRoundTripResult;
10
- export declare function gateFormattingProjection(resultBuffer: Buffer, revisedBuffer: Buffer, originalBuffer: Buffer): Promise<GateResult>;
11
- export declare function gateStructuralIntegrity(resultBuffer: Buffer): Promise<GateResult>;
12
- export declare function runGates(resultBuffer: Buffer, resultDocumentXml: string, originalText: string, revisedText: string, originalBuffer: Buffer, revisedBuffer: Buffer): Promise<{
13
- gates: GateResults;
14
- hardGatesPassed: boolean;
15
- softGatesPassed: boolean;
16
- }>;
17
- //# sourceMappingURL=gates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../src/benchmark/gates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,OAAO,KAAK,EACV,qBAAqB,EACrB,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,wBAAgB,iBAAiB,CAC/B,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,qBAAqB,CAoFvB;AAID,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,CAAC,CAiDrB;AA0DD,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA2DvF;AAID,wBAAsB,QAAQ,CAC5B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAuBrF"}
@@ -1,260 +0,0 @@
1
- /**
2
- * Quality benchmark gates.
3
- *
4
- * G1: Text round-trip (HARD) — 3 sub-checks
5
- * G2: Formatting projection (SOFT / diagnostic in v1)
6
- * G3: Structural integrity (HARD)
7
- */
8
- import { parseXml } from '../primitives/xml.js';
9
- import { acceptAllChanges, rejectAllChanges, compareTexts, extractTextWithParagraphs, } from '../baselines/atomizer/trackChangesAcceptorAst.js';
10
- import { validateNumberingIntegrity, validateNoteIntegrity, validateBookmarkIntegrity, } from '../shared/validators/structural.js';
11
- import { DocxArchive, DOCX_PATHS } from '../shared/docx/DocxArchive.js';
12
- import { cleanupInternalBookmarks, insertParagraphBookmarks, getParagraphBookmarkId } from '../primitives/bookmarks.js';
13
- import { buildNodesForDocumentView } from '../primitives/document_view.js';
14
- import { parseDocumentRels } from '../primitives/relationships.js';
15
- import { OOXML } from '../primitives/namespaces.js';
16
- // ── G1: Text round-trip (HARD) ─────────────────────────────────────
17
- export function gateTextRoundTrip(resultDocumentXml, originalText, revisedText) {
18
- // G1c: XML parse validity
19
- try {
20
- parseXml(resultDocumentXml);
21
- }
22
- catch (e) {
23
- const msg = e instanceof Error ? e.message : String(e);
24
- return {
25
- xmlParseValidity: { passed: false, detail: `XML parse error: ${msg}` },
26
- normalizedTextParity: { passed: false, detail: 'Skipped (XML parse failed)' },
27
- paragraphCountParity: { passed: false, detail: 'Skipped (XML parse failed)' },
28
- };
29
- }
30
- const g1c = { passed: true, detail: 'Valid XML' };
31
- // G1a: Normalized text parity
32
- let acceptedXml;
33
- let rejectedXml;
34
- try {
35
- acceptedXml = acceptAllChanges(resultDocumentXml);
36
- rejectedXml = rejectAllChanges(resultDocumentXml);
37
- }
38
- catch (e) {
39
- const msg = e instanceof Error ? e.message : String(e);
40
- return {
41
- xmlParseValidity: g1c,
42
- normalizedTextParity: { passed: false, detail: `Accept/reject failed: ${msg}` },
43
- paragraphCountParity: { passed: false, detail: 'Skipped (accept/reject failed)' },
44
- };
45
- }
46
- const acceptedText = extractTextWithParagraphs(acceptedXml);
47
- const rejectedText = extractTextWithParagraphs(rejectedXml);
48
- const acceptComparison = compareTexts(revisedText, acceptedText);
49
- const rejectComparison = compareTexts(originalText, rejectedText);
50
- const acceptOk = acceptComparison.normalizedIdentical;
51
- const rejectOk = rejectComparison.normalizedIdentical;
52
- let g1aDetail;
53
- if (acceptOk && rejectOk) {
54
- g1aDetail = 'Accept → revised and reject → original both match';
55
- }
56
- else {
57
- const parts = [];
58
- if (!acceptOk) {
59
- parts.push(`accept mismatch (expected=${acceptComparison.expectedLength}, actual=${acceptComparison.actualLength})`);
60
- }
61
- if (!rejectOk) {
62
- parts.push(`reject mismatch (expected=${rejectComparison.expectedLength}, actual=${rejectComparison.actualLength})`);
63
- }
64
- g1aDetail = parts.join('; ');
65
- }
66
- const g1a = { passed: acceptOk && rejectOk, detail: g1aDetail };
67
- // G1b: Paragraph count parity
68
- // Count non-empty text lines as proxy for paragraphs (extractTextWithParagraphs
69
- // produces one line per w:p with visible text).
70
- const revisedParaLines = revisedText.split('\n').filter((l) => l.length > 0).length;
71
- const originalParaLines = originalText.split('\n').filter((l) => l.length > 0).length;
72
- const acceptedParaLines = acceptedText.split('\n').filter((l) => l.length > 0).length;
73
- const rejectedParaLines = rejectedText.split('\n').filter((l) => l.length > 0).length;
74
- const acceptParaOk = acceptedParaLines === revisedParaLines;
75
- const rejectParaOk = rejectedParaLines === originalParaLines;
76
- let g1bDetail;
77
- if (acceptParaOk && rejectParaOk) {
78
- g1bDetail = `Paragraph counts match (accepted=${acceptedParaLines}, rejected=${rejectedParaLines})`;
79
- }
80
- else {
81
- const parts = [];
82
- if (!acceptParaOk) {
83
- parts.push(`accept para count: expected=${revisedParaLines}, actual=${acceptedParaLines}`);
84
- }
85
- if (!rejectParaOk) {
86
- parts.push(`reject para count: expected=${originalParaLines}, actual=${rejectedParaLines}`);
87
- }
88
- g1bDetail = parts.join('; ');
89
- }
90
- const g1b = { passed: acceptParaOk && rejectParaOk, detail: g1bDetail };
91
- return {
92
- xmlParseValidity: g1c,
93
- normalizedTextParity: g1a,
94
- paragraphCountParity: g1b,
95
- };
96
- }
97
- // ── G2: Formatting projection (SOFT) ───────────────────────────────
98
- export async function gateFormattingProjection(resultBuffer, revisedBuffer, originalBuffer) {
99
- try {
100
- const acceptedProjection = await extractCanonicalProjection(resultBuffer, 'accept');
101
- const revisedProjection = await extractCanonicalProjection(revisedBuffer, 'identity');
102
- const rejectedProjection = await extractCanonicalProjection(resultBuffer, 'reject');
103
- const originalProjection = await extractCanonicalProjection(originalBuffer, 'identity');
104
- const acceptMismatches = [];
105
- const rejectMismatches = [];
106
- // Compare accepted projection vs revised
107
- const maxAcceptLen = Math.max(acceptedProjection.length, revisedProjection.length);
108
- for (let i = 0; i < maxAcceptLen; i++) {
109
- const a = acceptedProjection[i];
110
- const r = revisedProjection[i];
111
- if (!a || !r) {
112
- acceptMismatches.push(`paragraph ${i}: missing in ${!a ? 'accepted' : 'revised'}`);
113
- continue;
114
- }
115
- if (a.tagged_text !== r.tagged_text) {
116
- acceptMismatches.push(`paragraph ${i} (${a.id}): tagged_text differs`);
117
- }
118
- }
119
- // Compare rejected projection vs original
120
- const maxRejectLen = Math.max(rejectedProjection.length, originalProjection.length);
121
- for (let i = 0; i < maxRejectLen; i++) {
122
- const rj = rejectedProjection[i];
123
- const o = originalProjection[i];
124
- if (!rj || !o) {
125
- rejectMismatches.push(`paragraph ${i}: missing in ${!rj ? 'rejected' : 'original'}`);
126
- continue;
127
- }
128
- if (rj.tagged_text !== o.tagged_text) {
129
- rejectMismatches.push(`paragraph ${i} (${rj.id}): tagged_text differs`);
130
- }
131
- }
132
- const passed = acceptMismatches.length === 0 && rejectMismatches.length === 0;
133
- const detail = passed
134
- ? 'Formatting projection matches'
135
- : `Accept mismatches: ${acceptMismatches.length}, reject mismatches: ${rejectMismatches.length}. First: ${[...acceptMismatches, ...rejectMismatches].slice(0, 3).join('; ')}`;
136
- return { passed, detail };
137
- }
138
- catch (e) {
139
- const msg = e instanceof Error ? e.message : String(e);
140
- return { passed: false, detail: `G2 error: ${msg}` };
141
- }
142
- }
143
- async function extractCanonicalProjection(docxBuffer, mode) {
144
- const archive = await DocxArchive.load(docxBuffer);
145
- let documentXmlStr = await archive.getDocumentXml();
146
- // Apply accept/reject if needed
147
- if (mode === 'accept') {
148
- documentXmlStr = acceptAllChanges(documentXmlStr);
149
- }
150
- else if (mode === 'reject') {
151
- documentXmlStr = rejectAllChanges(documentXmlStr);
152
- }
153
- const stylesXmlStr = await archive.getFile(DOCX_PATHS.STYLES);
154
- const numberingXmlStr = await archive.getFile(DOCX_PATHS.NUMBERING);
155
- const footnotesXmlStr = await archive.getFile(DOCX_PATHS.FOOTNOTES);
156
- const relsStr = await archive.getFile(DOCX_PATHS.RELS);
157
- const doc = parseXml(documentXmlStr);
158
- // Cleanup existing bookmarks and insert fresh ones
159
- cleanupInternalBookmarks(doc);
160
- insertParagraphBookmarks(doc, 'benchmark');
161
- // Re-walk paragraphs
162
- const paragraphs = Array.from(doc.getElementsByTagNameNS(OOXML.W_NS, 'p'))
163
- .map((p) => {
164
- const id = getParagraphBookmarkId(p);
165
- return id ? { id, p } : null;
166
- })
167
- .filter((x) => x !== null);
168
- const stylesXml = stylesXmlStr ? parseXml(stylesXmlStr) : null;
169
- const numberingXml = numberingXmlStr ? parseXml(numberingXmlStr) : null;
170
- const footnotesXml = footnotesXmlStr ? parseXml(footnotesXmlStr) : null;
171
- const relsMap = relsStr ? parseDocumentRels(parseXml(relsStr)) : undefined;
172
- const { nodes } = buildNodesForDocumentView({
173
- paragraphs,
174
- stylesXml,
175
- numberingXml,
176
- show_formatting: true,
177
- formatting_mode: 'full',
178
- relsMap,
179
- documentXml: doc,
180
- footnotesXml,
181
- });
182
- return nodes.map((n) => ({ id: n.id, tagged_text: n.tagged_text }));
183
- }
184
- // ── G3: Structural integrity (HARD) ────────────────────────────────
185
- export async function gateStructuralIntegrity(resultBuffer) {
186
- try {
187
- const archive = await DocxArchive.load(resultBuffer);
188
- const documentXml = await archive.getDocumentXml();
189
- const numberingXml = await archive.getFile(DOCX_PATHS.NUMBERING);
190
- const footnotesXml = await archive.getFile(DOCX_PATHS.FOOTNOTES);
191
- const endnotesXml = await archive.getFile(DOCX_PATHS.ENDNOTES);
192
- const issues = [];
193
- const numbering = validateNumberingIntegrity(documentXml, numberingXml);
194
- if (numbering.missingNumIds.length > 0) {
195
- issues.push(`Missing numIds: ${numbering.missingNumIds.join(', ')}`);
196
- }
197
- if (numbering.missingAbstractNumIds.length > 0) {
198
- issues.push(`Missing abstractNumIds: ${numbering.missingAbstractNumIds.join(', ')}`);
199
- }
200
- if (numbering.invalidLevels.length > 0) {
201
- issues.push(`Invalid levels: ${numbering.invalidLevels.join(', ')}`);
202
- }
203
- const notes = validateNoteIntegrity(documentXml, footnotesXml, endnotesXml);
204
- if (notes.missingFootnoteRefs.length > 0) {
205
- issues.push(`Missing footnote refs: ${notes.missingFootnoteRefs.join(', ')}`);
206
- }
207
- if (notes.missingEndnoteRefs.length > 0) {
208
- issues.push(`Missing endnote refs: ${notes.missingEndnoteRefs.join(', ')}`);
209
- }
210
- if (notes.duplicateFootnoteIds.length > 0) {
211
- issues.push(`Duplicate footnote IDs: ${notes.duplicateFootnoteIds.join(', ')}`);
212
- }
213
- if (notes.duplicateEndnoteIds.length > 0) {
214
- issues.push(`Duplicate endnote IDs: ${notes.duplicateEndnoteIds.join(', ')}`);
215
- }
216
- const bookmarks = validateBookmarkIntegrity(documentXml);
217
- if (bookmarks.unmatchedStartIds.length > 0) {
218
- issues.push(`Unmatched bookmark starts: ${bookmarks.unmatchedStartIds.length}`);
219
- }
220
- if (bookmarks.unmatchedEndIds.length > 0) {
221
- issues.push(`Unmatched bookmark ends: ${bookmarks.unmatchedEndIds.length}`);
222
- }
223
- if (bookmarks.duplicateStartIds.length > 0) {
224
- issues.push(`Duplicate bookmark start IDs: ${bookmarks.duplicateStartIds.length}`);
225
- }
226
- if (bookmarks.duplicateEndIds.length > 0) {
227
- issues.push(`Duplicate bookmark end IDs: ${bookmarks.duplicateEndIds.length}`);
228
- }
229
- const passed = issues.length === 0;
230
- const detail = passed
231
- ? 'All structural validators passed'
232
- : issues.join('; ');
233
- return { passed, detail };
234
- }
235
- catch (e) {
236
- const msg = e instanceof Error ? e.message : String(e);
237
- return { passed: false, detail: `G3 error: ${msg}` };
238
- }
239
- }
240
- // ── Gate orchestrator ───────────────────────────────────────────────
241
- export async function runGates(resultBuffer, resultDocumentXml, originalText, revisedText, originalBuffer, revisedBuffer) {
242
- const textRoundTrip = gateTextRoundTrip(resultDocumentXml, originalText, revisedText);
243
- const g1Passed = textRoundTrip.xmlParseValidity.passed &&
244
- textRoundTrip.normalizedTextParity.passed &&
245
- textRoundTrip.paragraphCountParity.passed;
246
- const structuralIntegrity = await gateStructuralIntegrity(resultBuffer);
247
- const formattingProjection = await gateFormattingProjection(resultBuffer, revisedBuffer, originalBuffer);
248
- const hardGatesPassed = g1Passed && structuralIntegrity.passed;
249
- const softGatesPassed = formattingProjection.passed;
250
- return {
251
- gates: {
252
- textRoundTrip,
253
- formattingProjection,
254
- structuralIntegrity,
255
- },
256
- hardGatesPassed,
257
- softGatesPassed,
258
- };
259
- }
260
- //# sourceMappingURL=gates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates.js","sourceRoot":"","sources":["../../src/benchmark/gates.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Benchmark metric utilities.
3
- *
4
- * Timing and memory measurement helpers used by the quality benchmark runner.
5
- */
6
- /**
7
- * Measure current RSS memory usage in megabytes.
8
- */
9
- export declare function measureMemory(): number;
10
- /**
11
- * Create a high-resolution timer. Returns a function that, when called,
12
- * returns elapsed milliseconds since creation.
13
- */
14
- export declare function createTimer(): () => number;
15
- //# sourceMappingURL=metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,MAAM,CAM1C"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Benchmark metric utilities.
3
- *
4
- * Timing and memory measurement helpers used by the quality benchmark runner.
5
- */
6
- /**
7
- * Measure current RSS memory usage in megabytes.
8
- */
9
- export function measureMemory() {
10
- const usage = process.memoryUsage();
11
- return usage.rss / (1024 * 1024);
12
- }
13
- /**
14
- * Create a high-resolution timer. Returns a function that, when called,
15
- * returns elapsed milliseconds since creation.
16
- */
17
- export function createTimer() {
18
- const start = process.hrtime.bigint();
19
- return () => {
20
- const end = process.hrtime.bigint();
21
- return Number(end - start) / 1_000_000;
22
- };
23
- }
24
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtC,OAAO,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Quality benchmark reporter.
3
- *
4
- * Formats gate-then-score results as Markdown, JSON, or console output.
5
- */
6
- import type { FixtureBenchmarkResult } from './types.js';
7
- export declare function generateMarkdownReport(results: FixtureBenchmarkResult[]): string;
8
- export declare function generateJsonReport(results: FixtureBenchmarkResult[]): string;
9
- export declare function printSummary(results: FixtureBenchmarkResult[]): void;
10
- //# sourceMappingURL=reporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAUzD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CA4DhF;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAS5E;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAyBpE"}