@usejunior/docx-core 0.0.1 → 0.1.1

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 (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -28
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/atomizer.d.ts +218 -0
  5. package/dist/atomizer.d.ts.map +1 -0
  6. package/dist/atomizer.js +856 -0
  7. package/dist/atomizer.js.map +1 -0
  8. package/dist/baselines/atomizer/atomLcs.d.ts +96 -0
  9. package/dist/baselines/atomizer/atomLcs.d.ts.map +1 -0
  10. package/dist/baselines/atomizer/atomLcs.js +347 -0
  11. package/dist/baselines/atomizer/atomLcs.js.map +1 -0
  12. package/dist/baselines/atomizer/debug.d.ts +41 -0
  13. package/dist/baselines/atomizer/debug.d.ts.map +1 -0
  14. package/dist/baselines/atomizer/debug.js +85 -0
  15. package/dist/baselines/atomizer/debug.js.map +1 -0
  16. package/dist/baselines/atomizer/documentReconstructor.d.ts +64 -0
  17. package/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -0
  18. package/dist/baselines/atomizer/documentReconstructor.js +939 -0
  19. package/dist/baselines/atomizer/documentReconstructor.js.map +1 -0
  20. package/dist/baselines/atomizer/hierarchicalLcs.d.ts +111 -0
  21. package/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +1 -0
  22. package/dist/baselines/atomizer/hierarchicalLcs.js +469 -0
  23. package/dist/baselines/atomizer/hierarchicalLcs.js.map +1 -0
  24. package/dist/baselines/atomizer/inPlaceModifier.d.ts +183 -0
  25. package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -0
  26. package/dist/baselines/atomizer/inPlaceModifier.js +1600 -0
  27. package/dist/baselines/atomizer/inPlaceModifier.js.map +1 -0
  28. package/dist/baselines/atomizer/numberingIntegration.d.ts +59 -0
  29. package/dist/baselines/atomizer/numberingIntegration.d.ts.map +1 -0
  30. package/dist/baselines/atomizer/numberingIntegration.js +209 -0
  31. package/dist/baselines/atomizer/numberingIntegration.js.map +1 -0
  32. package/dist/baselines/atomizer/pipeline.d.ts +65 -0
  33. package/dist/baselines/atomizer/pipeline.d.ts.map +1 -0
  34. package/dist/baselines/atomizer/pipeline.js +510 -0
  35. package/dist/baselines/atomizer/pipeline.js.map +1 -0
  36. package/dist/baselines/atomizer/premergeRuns.d.ts +26 -0
  37. package/dist/baselines/atomizer/premergeRuns.d.ts.map +1 -0
  38. package/dist/baselines/atomizer/premergeRuns.js +150 -0
  39. package/dist/baselines/atomizer/premergeRuns.js.map +1 -0
  40. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts +63 -0
  41. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +1 -0
  42. package/dist/baselines/atomizer/trackChangesAcceptor.js +254 -0
  43. package/dist/baselines/atomizer/trackChangesAcceptor.js.map +1 -0
  44. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +64 -0
  45. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -0
  46. package/dist/baselines/atomizer/trackChangesAcceptorAst.js +586 -0
  47. package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -0
  48. package/dist/baselines/atomizer/xmlToWmlElement.d.ts +65 -0
  49. package/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +1 -0
  50. package/dist/baselines/atomizer/xmlToWmlElement.js +95 -0
  51. package/dist/baselines/atomizer/xmlToWmlElement.js.map +1 -0
  52. package/dist/baselines/diffmatch/documentBuilder.d.ts +44 -0
  53. package/dist/baselines/diffmatch/documentBuilder.d.ts.map +1 -0
  54. package/dist/baselines/diffmatch/documentBuilder.js +227 -0
  55. package/dist/baselines/diffmatch/documentBuilder.js.map +1 -0
  56. package/dist/baselines/diffmatch/paragraphAlignment.d.ts +75 -0
  57. package/dist/baselines/diffmatch/paragraphAlignment.d.ts.map +1 -0
  58. package/dist/baselines/diffmatch/paragraphAlignment.js +206 -0
  59. package/dist/baselines/diffmatch/paragraphAlignment.js.map +1 -0
  60. package/dist/baselines/diffmatch/pipeline.d.ts +33 -0
  61. package/dist/baselines/diffmatch/pipeline.d.ts.map +1 -0
  62. package/dist/baselines/diffmatch/pipeline.js +84 -0
  63. package/dist/baselines/diffmatch/pipeline.js.map +1 -0
  64. package/dist/baselines/diffmatch/runDiff.d.ts +53 -0
  65. package/dist/baselines/diffmatch/runDiff.d.ts.map +1 -0
  66. package/dist/baselines/diffmatch/runDiff.js +253 -0
  67. package/dist/baselines/diffmatch/runDiff.js.map +1 -0
  68. package/dist/baselines/diffmatch/trackChangesRenderer.d.ts +64 -0
  69. package/dist/baselines/diffmatch/trackChangesRenderer.d.ts.map +1 -0
  70. package/dist/baselines/diffmatch/trackChangesRenderer.js +178 -0
  71. package/dist/baselines/diffmatch/trackChangesRenderer.js.map +1 -0
  72. package/dist/baselines/diffmatch/xmlParser.d.ts +45 -0
  73. package/dist/baselines/diffmatch/xmlParser.d.ts.map +1 -0
  74. package/dist/baselines/diffmatch/xmlParser.js +344 -0
  75. package/dist/baselines/diffmatch/xmlParser.js.map +1 -0
  76. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +51 -0
  77. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +1 -0
  78. package/dist/baselines/wmlcomparer/DocxodusWasm.js +83 -0
  79. package/dist/baselines/wmlcomparer/DocxodusWasm.js.map +1 -0
  80. package/dist/baselines/wmlcomparer/DotnetCli.d.ts +40 -0
  81. package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +1 -0
  82. package/dist/baselines/wmlcomparer/DotnetCli.js +135 -0
  83. package/dist/baselines/wmlcomparer/DotnetCli.js.map +1 -0
  84. package/dist/benchmark/metrics.d.ts +72 -0
  85. package/dist/benchmark/metrics.d.ts.map +1 -0
  86. package/dist/benchmark/metrics.js +45 -0
  87. package/dist/benchmark/metrics.js.map +1 -0
  88. package/dist/benchmark/reporter.d.ts +23 -0
  89. package/dist/benchmark/reporter.d.ts.map +1 -0
  90. package/dist/benchmark/reporter.js +147 -0
  91. package/dist/benchmark/reporter.js.map +1 -0
  92. package/dist/benchmark/runner.d.ts +30 -0
  93. package/dist/benchmark/runner.d.ts.map +1 -0
  94. package/dist/benchmark/runner.js +233 -0
  95. package/dist/benchmark/runner.js.map +1 -0
  96. package/dist/cli/compare-two.d.ts +28 -0
  97. package/dist/cli/compare-two.d.ts.map +1 -0
  98. package/dist/cli/compare-two.js +110 -0
  99. package/dist/cli/compare-two.js.map +1 -0
  100. package/dist/cli/index.d.ts +3 -0
  101. package/dist/cli/index.d.ts.map +1 -0
  102. package/dist/cli/index.js +21 -0
  103. package/dist/cli/index.js.map +1 -0
  104. package/dist/core-types.d.ts +296 -0
  105. package/dist/core-types.d.ts.map +1 -0
  106. package/dist/core-types.js +122 -0
  107. package/dist/core-types.js.map +1 -0
  108. package/dist/footnotes.d.ts +144 -0
  109. package/dist/footnotes.d.ts.map +1 -0
  110. package/dist/footnotes.js +291 -0
  111. package/dist/footnotes.js.map +1 -0
  112. package/dist/format-detection.d.ts +120 -0
  113. package/dist/format-detection.d.ts.map +1 -0
  114. package/dist/format-detection.js +338 -0
  115. package/dist/format-detection.js.map +1 -0
  116. package/dist/index.d.ts +177 -0
  117. package/dist/index.d.ts.map +1 -0
  118. package/dist/index.js +55 -0
  119. package/dist/index.js.map +1 -0
  120. package/dist/integration/output-artifacts.d.ts +6 -0
  121. package/dist/integration/output-artifacts.d.ts.map +1 -0
  122. package/dist/integration/output-artifacts.js +30 -0
  123. package/dist/integration/output-artifacts.js.map +1 -0
  124. package/dist/move-detection.d.ts +211 -0
  125. package/dist/move-detection.d.ts.map +1 -0
  126. package/dist/move-detection.js +391 -0
  127. package/dist/move-detection.js.map +1 -0
  128. package/dist/numbering.d.ts +136 -0
  129. package/dist/numbering.d.ts.map +1 -0
  130. package/dist/numbering.js +446 -0
  131. package/dist/numbering.js.map +1 -0
  132. package/dist/primitives/accept_changes.d.ts +30 -0
  133. package/dist/primitives/accept_changes.d.ts.map +1 -0
  134. package/dist/primitives/accept_changes.js +241 -0
  135. package/dist/primitives/accept_changes.js.map +1 -0
  136. package/dist/primitives/bookmarks.d.ts +12 -0
  137. package/dist/primitives/bookmarks.d.ts.map +1 -0
  138. package/dist/primitives/bookmarks.js +248 -0
  139. package/dist/primitives/bookmarks.js.map +1 -0
  140. package/dist/primitives/comments.d.ts +88 -0
  141. package/dist/primitives/comments.d.ts.map +1 -0
  142. package/dist/primitives/comments.js +703 -0
  143. package/dist/primitives/comments.js.map +1 -0
  144. package/dist/primitives/document.d.ts +168 -0
  145. package/dist/primitives/document.d.ts.map +1 -0
  146. package/dist/primitives/document.js +532 -0
  147. package/dist/primitives/document.js.map +1 -0
  148. package/dist/primitives/document_view.d.ts +93 -0
  149. package/dist/primitives/document_view.d.ts.map +1 -0
  150. package/dist/primitives/document_view.js +722 -0
  151. package/dist/primitives/document_view.js.map +1 -0
  152. package/dist/primitives/dom-helpers.d.ts +94 -0
  153. package/dist/primitives/dom-helpers.d.ts.map +1 -0
  154. package/dist/primitives/dom-helpers.js +219 -0
  155. package/dist/primitives/dom-helpers.js.map +1 -0
  156. package/dist/primitives/errors.d.ts +7 -0
  157. package/dist/primitives/errors.d.ts.map +1 -0
  158. package/dist/primitives/errors.js +10 -0
  159. package/dist/primitives/errors.js.map +1 -0
  160. package/dist/primitives/extract_revisions.d.ts +50 -0
  161. package/dist/primitives/extract_revisions.d.ts.map +1 -0
  162. package/dist/primitives/extract_revisions.js +340 -0
  163. package/dist/primitives/extract_revisions.js.map +1 -0
  164. package/dist/primitives/footnotes.d.ts +37 -0
  165. package/dist/primitives/footnotes.d.ts.map +1 -0
  166. package/dist/primitives/footnotes.js +552 -0
  167. package/dist/primitives/footnotes.js.map +1 -0
  168. package/dist/primitives/formatting_tags.d.ts +30 -0
  169. package/dist/primitives/formatting_tags.d.ts.map +1 -0
  170. package/dist/primitives/formatting_tags.js +217 -0
  171. package/dist/primitives/formatting_tags.js.map +1 -0
  172. package/dist/primitives/index.d.ts +26 -0
  173. package/dist/primitives/index.d.ts.map +1 -0
  174. package/dist/primitives/index.js +26 -0
  175. package/dist/primitives/index.js.map +1 -0
  176. package/dist/primitives/layout.d.ts +53 -0
  177. package/dist/primitives/layout.d.ts.map +1 -0
  178. package/dist/primitives/layout.js +178 -0
  179. package/dist/primitives/layout.js.map +1 -0
  180. package/dist/primitives/list_labels.d.ts +19 -0
  181. package/dist/primitives/list_labels.d.ts.map +1 -0
  182. package/dist/primitives/list_labels.js +57 -0
  183. package/dist/primitives/list_labels.js.map +1 -0
  184. package/dist/primitives/matching.d.ts +17 -0
  185. package/dist/primitives/matching.d.ts.map +1 -0
  186. package/dist/primitives/matching.js +144 -0
  187. package/dist/primitives/matching.js.map +1 -0
  188. package/dist/primitives/merge_runs.d.ts +23 -0
  189. package/dist/primitives/merge_runs.d.ts.map +1 -0
  190. package/dist/primitives/merge_runs.js +195 -0
  191. package/dist/primitives/merge_runs.js.map +1 -0
  192. package/dist/primitives/namespaces.d.ts +90 -0
  193. package/dist/primitives/namespaces.d.ts.map +1 -0
  194. package/dist/primitives/namespaces.js +107 -0
  195. package/dist/primitives/namespaces.js.map +1 -0
  196. package/dist/primitives/numbering.d.ts +27 -0
  197. package/dist/primitives/numbering.d.ts.map +1 -0
  198. package/dist/primitives/numbering.js +182 -0
  199. package/dist/primitives/numbering.js.map +1 -0
  200. package/dist/primitives/prevent_double_elevation.d.ts +18 -0
  201. package/dist/primitives/prevent_double_elevation.d.ts.map +1 -0
  202. package/dist/primitives/prevent_double_elevation.js +190 -0
  203. package/dist/primitives/prevent_double_elevation.js.map +1 -0
  204. package/dist/primitives/reject_changes.d.ts +27 -0
  205. package/dist/primitives/reject_changes.d.ts.map +1 -0
  206. package/dist/primitives/reject_changes.js +371 -0
  207. package/dist/primitives/reject_changes.js.map +1 -0
  208. package/dist/primitives/relationships.d.ts +7 -0
  209. package/dist/primitives/relationships.d.ts.map +1 -0
  210. package/dist/primitives/relationships.js +24 -0
  211. package/dist/primitives/relationships.js.map +1 -0
  212. package/dist/primitives/semantic_tags.d.ts +32 -0
  213. package/dist/primitives/semantic_tags.d.ts.map +1 -0
  214. package/dist/primitives/semantic_tags.js +139 -0
  215. package/dist/primitives/semantic_tags.js.map +1 -0
  216. package/dist/primitives/simplify_redlines.d.ts +19 -0
  217. package/dist/primitives/simplify_redlines.d.ts.map +1 -0
  218. package/dist/primitives/simplify_redlines.js +94 -0
  219. package/dist/primitives/simplify_redlines.js.map +1 -0
  220. package/dist/primitives/styles.d.ts +36 -0
  221. package/dist/primitives/styles.d.ts.map +1 -0
  222. package/dist/primitives/styles.js +190 -0
  223. package/dist/primitives/styles.js.map +1 -0
  224. package/dist/primitives/text.d.ts +27 -0
  225. package/dist/primitives/text.d.ts.map +1 -0
  226. package/dist/primitives/text.js +416 -0
  227. package/dist/primitives/text.js.map +1 -0
  228. package/dist/primitives/validate_document.d.ts +24 -0
  229. package/dist/primitives/validate_document.d.ts.map +1 -0
  230. package/dist/primitives/validate_document.js +147 -0
  231. package/dist/primitives/validate_document.js.map +1 -0
  232. package/dist/primitives/xml.d.ts +5 -0
  233. package/dist/primitives/xml.d.ts.map +1 -0
  234. package/dist/primitives/xml.js +19 -0
  235. package/dist/primitives/xml.js.map +1 -0
  236. package/dist/primitives/zip.d.ts +25 -0
  237. package/dist/primitives/zip.d.ts.map +1 -0
  238. package/dist/primitives/zip.js +78 -0
  239. package/dist/primitives/zip.js.map +1 -0
  240. package/dist/shared/docx/DocxArchive.d.ts +94 -0
  241. package/dist/shared/docx/DocxArchive.d.ts.map +1 -0
  242. package/dist/shared/docx/DocxArchive.js +169 -0
  243. package/dist/shared/docx/DocxArchive.js.map +1 -0
  244. package/dist/shared/ooxml/namespaces.d.ts +149 -0
  245. package/dist/shared/ooxml/namespaces.d.ts.map +1 -0
  246. package/dist/shared/ooxml/namespaces.js +224 -0
  247. package/dist/shared/ooxml/namespaces.js.map +1 -0
  248. package/dist/shared/ooxml/types.d.ts +136 -0
  249. package/dist/shared/ooxml/types.d.ts.map +1 -0
  250. package/dist/shared/ooxml/types.js +7 -0
  251. package/dist/shared/ooxml/types.js.map +1 -0
  252. package/package.json +63 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paragraphAlignment.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/paragraphAlignment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Baseline B: Pure TypeScript document comparison pipeline.
3
+ *
4
+ * Orchestrates the comparison flow:
5
+ * 1. Load DOCX archives
6
+ * 2. Extract paragraphs
7
+ * 3. Align paragraphs (LCS + similarity)
8
+ * 4. Diff runs within matched paragraphs
9
+ * 5. Render track changes
10
+ * 6. Build output document
11
+ */
12
+ import type { CompareResult } from '../../index.js';
13
+ /**
14
+ * Options for Baseline B comparison.
15
+ */
16
+ export interface BaselineBOptions {
17
+ /** Author name for track changes. Default: "Comparison" */
18
+ author?: string;
19
+ /** Timestamp for track changes. Default: current time */
20
+ date?: Date;
21
+ /** Minimum similarity to consider paragraphs matched. Default: 0.5 */
22
+ similarityThreshold?: number;
23
+ }
24
+ /**
25
+ * Compare two DOCX documents using the Baseline B (pure TypeScript) approach.
26
+ *
27
+ * @param original - Original document as Buffer
28
+ * @param revised - Revised document as Buffer
29
+ * @param options - Comparison options
30
+ * @returns Comparison result with track changes document
31
+ */
32
+ export declare function compareDocumentsBaselineB(original: Buffer, revised: Buffer, options?: BaselineBOptions): Promise<CompareResult>;
33
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,gBAAgB,CAAC;AAWlE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAqDxB"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Baseline B: Pure TypeScript document comparison pipeline.
3
+ *
4
+ * Orchestrates the comparison flow:
5
+ * 1. Load DOCX archives
6
+ * 2. Extract paragraphs
7
+ * 3. Align paragraphs (LCS + similarity)
8
+ * 4. Diff runs within matched paragraphs
9
+ * 5. Render track changes
10
+ * 6. Build output document
11
+ */
12
+ import { DocxArchive } from '../../shared/docx/DocxArchive.js';
13
+ import { extractParagraphs } from './xmlParser.js';
14
+ import { alignParagraphs, classifyAlignment } from './paragraphAlignment.js';
15
+ import { resetRevisionIds } from './trackChangesRenderer.js';
16
+ import { generateParagraphOperations, buildDocumentWithTrackChanges, } from './documentBuilder.js';
17
+ /**
18
+ * Compare two DOCX documents using the Baseline B (pure TypeScript) approach.
19
+ *
20
+ * @param original - Original document as Buffer
21
+ * @param revised - Revised document as Buffer
22
+ * @param options - Comparison options
23
+ * @returns Comparison result with track changes document
24
+ */
25
+ export async function compareDocumentsBaselineB(original, revised, options = {}) {
26
+ const { author = 'Comparison', date = new Date(), similarityThreshold = 0.5, } = options;
27
+ // 1. Load archives
28
+ const originalArchive = await DocxArchive.load(original);
29
+ const revisedArchive = await DocxArchive.load(revised);
30
+ // 2. Extract document XML
31
+ const originalXml = await originalArchive.getDocumentXml();
32
+ const revisedXml = await revisedArchive.getDocumentXml();
33
+ // 3. Extract paragraphs from both documents
34
+ const originalParagraphs = extractParagraphs(originalXml);
35
+ const revisedParagraphs = extractParagraphs(revisedXml);
36
+ // 4. Reset revision ID counter for this comparison
37
+ resetRevisionIds();
38
+ // 5. Align paragraphs between documents
39
+ const alignment = alignParagraphs(originalParagraphs, revisedParagraphs, similarityThreshold);
40
+ // 6. Generate paragraph operations with track changes
41
+ const operations = generateParagraphOperations(alignment, originalParagraphs, revisedParagraphs, { author, date });
42
+ // 7. Build new document.xml with track changes
43
+ const newDocumentXml = buildDocumentWithTrackChanges(originalXml, operations);
44
+ // 8. Clone original archive and update document.xml
45
+ const resultArchive = await originalArchive.clone();
46
+ resultArchive.setDocumentXml(newDocumentXml);
47
+ // 9. Save result and compute stats
48
+ const resultBuffer = await resultArchive.save();
49
+ const stats = computeStats(alignment, operations);
50
+ return {
51
+ document: resultBuffer,
52
+ stats,
53
+ engine: 'diffmatch',
54
+ };
55
+ }
56
+ /**
57
+ * Compute comparison statistics from alignment and operations.
58
+ */
59
+ function computeStats(alignment, operations) {
60
+ // Count operations
61
+ let insertions = 0;
62
+ let deletions = 0;
63
+ let modifications = 0;
64
+ for (const op of operations) {
65
+ if (op.type === 'inserted') {
66
+ insertions++;
67
+ }
68
+ else if (op.type === 'deleted') {
69
+ deletions++;
70
+ }
71
+ else if (op.type === 'modified') {
72
+ modifications++;
73
+ }
74
+ }
75
+ // Also count modifications from alignment for more accurate stats
76
+ const classification = classifyAlignment(alignment);
77
+ modifications = classification.modified.length;
78
+ return {
79
+ insertions,
80
+ deletions,
81
+ modifications,
82
+ };
83
+ }
84
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Baseline B: Run-level diff using diff-match-patch.
3
+ *
4
+ * Performs character-level diff on matched paragraphs, then maps
5
+ * the diff operations back to run boundaries for track changes generation.
6
+ */
7
+ import type { RunInfo, RunDiffResult, DiffOp } from '../../shared/ooxml/types.js';
8
+ /**
9
+ * Compute a diff between two strings.
10
+ *
11
+ * @param original - Original text
12
+ * @param revised - Revised text
13
+ * @param cleanupSemantic - Apply semantic cleanup (default: true)
14
+ * @returns Array of diff operations [operation, text]
15
+ */
16
+ export declare function computeDiff(original: string, revised: string, cleanupSemantic?: boolean): DiffOp[];
17
+ /**
18
+ * Compute a word-level diff (more suitable for document comparison).
19
+ *
20
+ * Tokenizes input by words, performs diff, then reconstructs.
21
+ */
22
+ export declare function computeWordDiff(original: string, revised: string): DiffOp[];
23
+ /**
24
+ * Split a run at a given character offset.
25
+ *
26
+ * @param run - The run to split
27
+ * @param offset - Character offset to split at
28
+ * @returns [before, after] runs
29
+ */
30
+ export declare function splitRun(run: RunInfo, offset: number): [RunInfo, RunInfo];
31
+ /**
32
+ * Extract text from runs.
33
+ */
34
+ export declare function extractText(runs: RunInfo[]): string;
35
+ /**
36
+ * Compute run-level diff between original and revised runs.
37
+ *
38
+ * Maps character-level diff back to run boundaries, splitting runs
39
+ * when necessary.
40
+ *
41
+ * @param originalRuns - Runs from original paragraph
42
+ * @param revisedRuns - Runs from revised paragraph
43
+ * @returns Merged runs with revision markers
44
+ */
45
+ export declare function diffRuns(originalRuns: RunInfo[], revisedRuns: RunInfo[]): RunDiffResult;
46
+ /**
47
+ * Count changes in a diff result.
48
+ */
49
+ export declare function countChanges(diffs: DiffOp[]): {
50
+ insertions: number;
51
+ deletions: number;
52
+ };
53
+ //# sourceMappingURL=runDiff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runDiff.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/runDiff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAclF;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,eAAe,UAAO,GACrB,MAAM,EAAE,CAQV;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB3E;AAuFD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAgBzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAEnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,YAAY,EAAE,OAAO,EAAE,EACvB,WAAW,EAAE,OAAO,EAAE,GACrB,aAAa,CAkGf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAavF"}
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Baseline B: Run-level diff using diff-match-patch.
3
+ *
4
+ * Performs character-level diff on matched paragraphs, then maps
5
+ * the diff operations back to run boundaries for track changes generation.
6
+ */
7
+ import DiffMatchPatch from 'diff-match-patch';
8
+ /** Diff operation codes from diff-match-patch */
9
+ const DIFF_DELETE = -1;
10
+ const DIFF_INSERT = 1;
11
+ const DIFF_EQUAL = 0;
12
+ /** Create a shared diff-match-patch instance */
13
+ const dmp = new DiffMatchPatch();
14
+ // Configure diff-match-patch for better document comparison
15
+ dmp.Diff_Timeout = 5; // 5 seconds timeout
16
+ dmp.Diff_EditCost = 4; // Favor fewer, larger edits
17
+ /**
18
+ * Compute a diff between two strings.
19
+ *
20
+ * @param original - Original text
21
+ * @param revised - Revised text
22
+ * @param cleanupSemantic - Apply semantic cleanup (default: true)
23
+ * @returns Array of diff operations [operation, text]
24
+ */
25
+ export function computeDiff(original, revised, cleanupSemantic = true) {
26
+ const diffs = dmp.diff_main(original, revised);
27
+ if (cleanupSemantic) {
28
+ dmp.diff_cleanupSemantic(diffs);
29
+ }
30
+ return diffs;
31
+ }
32
+ /**
33
+ * Compute a word-level diff (more suitable for document comparison).
34
+ *
35
+ * Tokenizes input by words, performs diff, then reconstructs.
36
+ */
37
+ export function computeWordDiff(original, revised) {
38
+ // Tokenize by words (keep punctuation attached to words)
39
+ const tokenize = (text) => {
40
+ return text.match(/\S+\s*/g) ?? [];
41
+ };
42
+ const originalTokens = tokenize(original);
43
+ const revisedTokens = tokenize(revised);
44
+ // Convert tokens to characters for diff-match-patch (1 token = 1 char)
45
+ const { chars1, chars2, lineArray } = tokensToChars(originalTokens, revisedTokens);
46
+ // Compute diff on character representation
47
+ const diffs = dmp.diff_main(chars1, chars2);
48
+ dmp.diff_cleanupSemantic(diffs);
49
+ // Convert back to actual text
50
+ return charsToTokens(diffs, lineArray);
51
+ }
52
+ /**
53
+ * Convert token arrays to character sequences for diffing.
54
+ */
55
+ function tokensToChars(tokens1, tokens2) {
56
+ const tokenSet = new Map();
57
+ const lineArray = [];
58
+ const encode = (tokens) => {
59
+ let chars = '';
60
+ for (const token of tokens) {
61
+ if (!tokenSet.has(token)) {
62
+ tokenSet.set(token, lineArray.length);
63
+ lineArray.push(token);
64
+ }
65
+ chars += String.fromCharCode(tokenSet.get(token));
66
+ }
67
+ return chars;
68
+ };
69
+ const chars1 = encode(tokens1);
70
+ const chars2 = encode(tokens2);
71
+ return { chars1, chars2, lineArray };
72
+ }
73
+ /**
74
+ * Convert character diff back to token diff.
75
+ */
76
+ function charsToTokens(diffs, lineArray) {
77
+ const result = [];
78
+ for (const [op, chars] of diffs) {
79
+ let text = '';
80
+ for (let i = 0; i < chars.length; i++) {
81
+ text += lineArray[chars.charCodeAt(i)] ?? '';
82
+ }
83
+ if (text) {
84
+ result.push([op, text]);
85
+ }
86
+ }
87
+ return result;
88
+ }
89
+ /**
90
+ * Map a character offset to a position in the run array.
91
+ */
92
+ function offsetToRunPosition(runs, offset) {
93
+ let charCount = 0;
94
+ for (let i = 0; i < runs.length; i++) {
95
+ const run = runs[i];
96
+ const runLength = run.text.length;
97
+ if (charCount + runLength > offset) {
98
+ return {
99
+ runIndex: i,
100
+ charOffset: offset - charCount,
101
+ };
102
+ }
103
+ charCount += runLength;
104
+ }
105
+ // Offset is at or past end
106
+ return {
107
+ runIndex: runs.length - 1,
108
+ charOffset: runs[runs.length - 1]?.text.length ?? 0,
109
+ };
110
+ }
111
+ /**
112
+ * Split a run at a given character offset.
113
+ *
114
+ * @param run - The run to split
115
+ * @param offset - Character offset to split at
116
+ * @returns [before, after] runs
117
+ */
118
+ export function splitRun(run, offset) {
119
+ const before = {
120
+ text: run.text.slice(0, offset),
121
+ start: run.start,
122
+ end: run.start + offset,
123
+ properties: run.properties ? { ...run.properties } : undefined,
124
+ };
125
+ const after = {
126
+ text: run.text.slice(offset),
127
+ start: run.start + offset,
128
+ end: run.end,
129
+ properties: run.properties ? { ...run.properties } : undefined,
130
+ };
131
+ return [before, after];
132
+ }
133
+ /**
134
+ * Extract text from runs.
135
+ */
136
+ export function extractText(runs) {
137
+ return runs.map(r => r.text).join('');
138
+ }
139
+ /**
140
+ * Compute run-level diff between original and revised runs.
141
+ *
142
+ * Maps character-level diff back to run boundaries, splitting runs
143
+ * when necessary.
144
+ *
145
+ * @param originalRuns - Runs from original paragraph
146
+ * @param revisedRuns - Runs from revised paragraph
147
+ * @returns Merged runs with revision markers
148
+ */
149
+ export function diffRuns(originalRuns, revisedRuns) {
150
+ const originalText = extractText(originalRuns);
151
+ const revisedText = extractText(revisedRuns);
152
+ // Compute character-level diff
153
+ const diffs = computeDiff(originalText, revisedText);
154
+ // Build merged runs with revision markers
155
+ const mergedRuns = [];
156
+ let originalOffset = 0;
157
+ let revisedOffset = 0;
158
+ for (const [op, text] of diffs) {
159
+ if (op === DIFF_EQUAL) {
160
+ // Equal text - use revised runs' formatting
161
+ const startPos = offsetToRunPosition(revisedRuns, revisedOffset);
162
+ const endPos = offsetToRunPosition(revisedRuns, revisedOffset + text.length);
163
+ // Extract runs that cover this range
164
+ for (let i = startPos.runIndex; i <= endPos.runIndex && i < revisedRuns.length; i++) {
165
+ const run = revisedRuns[i];
166
+ const runStart = i === startPos.runIndex ? startPos.charOffset : 0;
167
+ const runEnd = i === endPos.runIndex ? endPos.charOffset : run.text.length;
168
+ if (runEnd > runStart) {
169
+ mergedRuns.push({
170
+ text: run.text.slice(runStart, runEnd),
171
+ start: revisedOffset + runStart,
172
+ end: revisedOffset + runEnd,
173
+ properties: run.properties,
174
+ });
175
+ }
176
+ }
177
+ originalOffset += text.length;
178
+ revisedOffset += text.length;
179
+ }
180
+ else if (op === DIFF_DELETE) {
181
+ // Deleted text - use original runs' formatting, mark as deletion
182
+ const startPos = offsetToRunPosition(originalRuns, originalOffset);
183
+ const endPos = offsetToRunPosition(originalRuns, originalOffset + text.length);
184
+ for (let i = startPos.runIndex; i <= endPos.runIndex && i < originalRuns.length; i++) {
185
+ const run = originalRuns[i];
186
+ const runStart = i === startPos.runIndex ? startPos.charOffset : 0;
187
+ const runEnd = i === endPos.runIndex ? endPos.charOffset : run.text.length;
188
+ if (runEnd > runStart) {
189
+ mergedRuns.push({
190
+ text: run.text.slice(runStart, runEnd),
191
+ start: originalOffset + runStart,
192
+ end: originalOffset + runEnd,
193
+ properties: run.properties,
194
+ revision: {
195
+ id: 0, // Will be assigned later
196
+ author: '',
197
+ date: new Date(),
198
+ type: 'deletion',
199
+ },
200
+ });
201
+ }
202
+ }
203
+ originalOffset += text.length;
204
+ }
205
+ else if (op === DIFF_INSERT) {
206
+ // Inserted text - use revised runs' formatting, mark as insertion
207
+ const startPos = offsetToRunPosition(revisedRuns, revisedOffset);
208
+ const endPos = offsetToRunPosition(revisedRuns, revisedOffset + text.length);
209
+ for (let i = startPos.runIndex; i <= endPos.runIndex && i < revisedRuns.length; i++) {
210
+ const run = revisedRuns[i];
211
+ const runStart = i === startPos.runIndex ? startPos.charOffset : 0;
212
+ const runEnd = i === endPos.runIndex ? endPos.charOffset : run.text.length;
213
+ if (runEnd > runStart) {
214
+ mergedRuns.push({
215
+ text: run.text.slice(runStart, runEnd),
216
+ start: revisedOffset + runStart,
217
+ end: revisedOffset + runEnd,
218
+ properties: run.properties,
219
+ revision: {
220
+ id: 0, // Will be assigned later
221
+ author: '',
222
+ date: new Date(),
223
+ type: 'insertion',
224
+ },
225
+ });
226
+ }
227
+ }
228
+ revisedOffset += text.length;
229
+ }
230
+ }
231
+ return {
232
+ originalRuns,
233
+ revisedRuns,
234
+ mergedRuns,
235
+ };
236
+ }
237
+ /**
238
+ * Count changes in a diff result.
239
+ */
240
+ export function countChanges(diffs) {
241
+ let insertions = 0;
242
+ let deletions = 0;
243
+ for (const [op, text] of diffs) {
244
+ if (op === DIFF_INSERT) {
245
+ insertions += text.length;
246
+ }
247
+ else if (op === DIFF_DELETE) {
248
+ deletions += text.length;
249
+ }
250
+ }
251
+ return { insertions, deletions };
252
+ }
253
+ //# sourceMappingURL=runDiff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runDiff.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/runDiff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Baseline B: Track changes OOXML renderer.
3
+ *
4
+ * Generates OOXML track changes markup (w:ins, w:del) from diff results.
5
+ */
6
+ import type { RunInfo } from '../../shared/ooxml/types.js';
7
+ /**
8
+ * Reset the revision ID counter.
9
+ */
10
+ export declare function resetRevisionIds(): void;
11
+ /**
12
+ * Allocate a new revision ID.
13
+ */
14
+ export declare function allocateRevisionId(): number;
15
+ /**
16
+ * Format a date for OOXML (ISO 8601 format).
17
+ */
18
+ export declare function formatOoxmlDate(date: Date): string;
19
+ /**
20
+ * Escape XML special characters.
21
+ */
22
+ export declare function escapeXml(text: string): string;
23
+ /**
24
+ * Generate insertion markup.
25
+ */
26
+ export declare function generateInsertion(runs: RunInfo[], author: string, date: Date): string;
27
+ /**
28
+ * Generate deletion markup.
29
+ */
30
+ export declare function generateDeletion(runs: RunInfo[], author: string, date: Date): string;
31
+ /**
32
+ * Generate unchanged run markup.
33
+ */
34
+ export declare function generateUnchangedRun(run: RunInfo): string;
35
+ /**
36
+ * Options for rendering track changes.
37
+ */
38
+ export interface RenderOptions {
39
+ /** Author name for revisions */
40
+ author: string;
41
+ /** Timestamp for revisions */
42
+ date: Date;
43
+ }
44
+ /**
45
+ * Render merged runs with track changes to OOXML.
46
+ *
47
+ * @param mergedRuns - Runs with revision markers from diffRuns()
48
+ * @param options - Rendering options
49
+ * @returns OOXML paragraph content with track changes
50
+ */
51
+ export declare function renderTrackChanges(mergedRuns: RunInfo[], options: RenderOptions): string;
52
+ /**
53
+ * Wrap content in a paragraph element.
54
+ */
55
+ export declare function wrapInParagraph(content: string, pPr?: string): string;
56
+ /**
57
+ * Generate a complete deleted paragraph.
58
+ */
59
+ export declare function generateDeletedParagraph(runs: RunInfo[], author: string, date: Date, pPr?: string): string;
60
+ /**
61
+ * Generate a complete inserted paragraph.
62
+ */
63
+ export declare function generateInsertedParagraph(runs: RunInfo[], author: string, date: Date, pPr?: string): string;
64
+ //# sourceMappingURL=trackChangesRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackChangesRenderer.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/trackChangesRenderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAK3D;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AA2DD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,GACT,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,GACT,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,OAAO,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,MAAM,CAsCR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAGR"}