@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":"atomizer.js","sourceRoot":"","sources":["../src/atomizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * LCS Algorithm for Atoms
3
+ *
4
+ * Implements hash-based Longest Common Subsequence (LCS) algorithm
5
+ * for comparing arrays of ComparisonUnitAtom.
6
+ */
7
+ import type { ComparisonUnitAtom } from '../../core-types.js';
8
+ /**
9
+ * Represents a match between atoms in original and revised documents.
10
+ */
11
+ export interface AtomMatch {
12
+ /** Index in the original atom array */
13
+ originalIndex: number;
14
+ /** Index in the revised atom array */
15
+ revisedIndex: number;
16
+ }
17
+ /**
18
+ * Result of the LCS comparison.
19
+ */
20
+ export interface LcsResult {
21
+ /** Matched atom pairs (in LCS) */
22
+ matches: AtomMatch[];
23
+ /** Indices of atoms only in original (deleted) */
24
+ deletedIndices: number[];
25
+ /** Indices of atoms only in revised (inserted) */
26
+ insertedIndices: number[];
27
+ }
28
+ /**
29
+ * Compute the Longest Common Subsequence of two atom arrays.
30
+ *
31
+ * Uses hash-based comparison for O(1) equality checks.
32
+ * Time complexity: O(N * M) where N and M are array lengths.
33
+ *
34
+ * @param original - Atoms from the original document
35
+ * @param revised - Atoms from the revised document
36
+ * @returns LCS result with matches and differences
37
+ */
38
+ export declare function computeAtomLcs(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[]): LcsResult;
39
+ /**
40
+ * Mark correlation status on atoms based on LCS result.
41
+ *
42
+ * Sets atoms to Equal, Deleted, or Inserted status.
43
+ * Also links matched atoms via comparisonUnitAtomBefore reference.
44
+ *
45
+ * @param original - Atoms from the original document
46
+ * @param revised - Atoms from the revised document
47
+ * @param lcsResult - Result from computeAtomLcs
48
+ */
49
+ export declare function markCorrelationStatus(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], lcsResult: LcsResult): void;
50
+ /**
51
+ * Create a merged atom list for document reconstruction.
52
+ *
53
+ * Interleaves original and revised atoms in document order,
54
+ * preserving the structure needed for track changes rendering.
55
+ *
56
+ * @param original - Atoms from the original document (with status marked)
57
+ * @param revised - Atoms from the revised document (with status marked)
58
+ * @param lcsResult - Result from computeAtomLcs
59
+ * @returns Merged atom list in document order
60
+ */
61
+ export declare function createMergedAtomList(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], lcsResult: LcsResult): ComparisonUnitAtom[];
62
+ /**
63
+ * Compute unified paragraph indices for merged atoms.
64
+ *
65
+ * Maps original and revised paragraph indices to a unified output paragraph index.
66
+ * This ensures that:
67
+ * 1. Atoms from corresponding paragraphs (Equal matches) share the same output index
68
+ * 2. Deleted paragraphs get their own output indices interleaved with matched paragraphs
69
+ * 3. Inserted paragraphs get their own output indices
70
+ *
71
+ * @param original - Original atoms with paragraphIndex set
72
+ * @param revised - Revised atoms with paragraphIndex set
73
+ * @param merged - Merged atom list
74
+ * @param lcsResult - LCS result with matches
75
+ */
76
+ export declare function assignUnifiedParagraphIndices(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], merged: ComparisonUnitAtom[], lcsResult: LcsResult): void;
77
+ /**
78
+ * Statistics from the LCS comparison.
79
+ */
80
+ export interface LcsStats {
81
+ /** Number of atoms that are equal */
82
+ equal: number;
83
+ /** Number of atoms deleted from original */
84
+ deleted: number;
85
+ /** Number of atoms inserted in revised */
86
+ inserted: number;
87
+ /** Total atoms in original */
88
+ originalCount: number;
89
+ /** Total atoms in revised */
90
+ revisedCount: number;
91
+ }
92
+ /**
93
+ * Compute statistics from LCS result.
94
+ */
95
+ export declare function computeLcsStats(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], lcsResult: LcsResult): LcsStats;
96
+ //# sourceMappingURL=atomLcs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomLcs.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/atomLcs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,kDAAkD;IAClD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kDAAkD;IAClD,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,GAC5B,SAAS,CAwDX;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,IAAI,CAsBN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,kBAAkB,EAAE,CAmFtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,MAAM,EAAE,kBAAkB,EAAE,EAC5B,SAAS,EAAE,SAAS,GACnB,IAAI,CA6GN;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,QAAQ,CAQV"}
@@ -0,0 +1,347 @@
1
+ /**
2
+ * LCS Algorithm for Atoms
3
+ *
4
+ * Implements hash-based Longest Common Subsequence (LCS) algorithm
5
+ * for comparing arrays of ComparisonUnitAtom.
6
+ */
7
+ import { CorrelationStatus } from '../../core-types.js';
8
+ import { EMPTY_PARAGRAPH_TAG } from '../../atomizer.js';
9
+ import { debug } from './debug.js';
10
+ /**
11
+ * Compute the Longest Common Subsequence of two atom arrays.
12
+ *
13
+ * Uses hash-based comparison for O(1) equality checks.
14
+ * Time complexity: O(N * M) where N and M are array lengths.
15
+ *
16
+ * @param original - Atoms from the original document
17
+ * @param revised - Atoms from the revised document
18
+ * @returns LCS result with matches and differences
19
+ */
20
+ export function computeAtomLcs(original, revised) {
21
+ const n = original.length;
22
+ const m = revised.length;
23
+ // Build LCS length table
24
+ // dp[i][j] = length of LCS of original[0..i-1] and revised[0..j-1]
25
+ const dp = Array(n + 1)
26
+ .fill(null)
27
+ .map(() => Array(m + 1).fill(0));
28
+ for (let i = 1; i <= n; i++) {
29
+ for (let j = 1; j <= m; j++) {
30
+ if (atomsEqual(original[i - 1], revised[j - 1])) {
31
+ dp[i][j] = dp[i - 1][j - 1] + 1;
32
+ }
33
+ else {
34
+ dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
35
+ }
36
+ }
37
+ }
38
+ // Backtrack to find the actual LCS matches
39
+ const matches = [];
40
+ let i = n;
41
+ let j = m;
42
+ while (i > 0 && j > 0) {
43
+ if (atomsEqual(original[i - 1], revised[j - 1])) {
44
+ matches.unshift({ originalIndex: i - 1, revisedIndex: j - 1 });
45
+ i--;
46
+ j--;
47
+ }
48
+ else if (dp[i - 1][j] > dp[i][j - 1]) {
49
+ i--;
50
+ }
51
+ else {
52
+ j--;
53
+ }
54
+ }
55
+ // Find deleted and inserted indices
56
+ const matchedOriginal = new Set(matches.map((m) => m.originalIndex));
57
+ const matchedRevised = new Set(matches.map((m) => m.revisedIndex));
58
+ const deletedIndices = [];
59
+ for (let idx = 0; idx < n; idx++) {
60
+ if (!matchedOriginal.has(idx)) {
61
+ deletedIndices.push(idx);
62
+ }
63
+ }
64
+ const insertedIndices = [];
65
+ for (let idx = 0; idx < m; idx++) {
66
+ if (!matchedRevised.has(idx)) {
67
+ insertedIndices.push(idx);
68
+ }
69
+ }
70
+ return { matches, deletedIndices, insertedIndices };
71
+ }
72
+ /**
73
+ * Check if two atoms are equal based on their hash.
74
+ *
75
+ * For more precise comparison, we also check the text content
76
+ * and ancestor context to avoid false positives from hash collisions.
77
+ */
78
+ function atomsEqual(a, b) {
79
+ // First check hash for quick rejection
80
+ if (a.sha1Hash !== b.sha1Hash) {
81
+ return false;
82
+ }
83
+ // Same hash - verify content to avoid collisions
84
+ const aText = a.contentElement.textContent ?? '';
85
+ const bText = b.contentElement.textContent ?? '';
86
+ if (aText !== bText) {
87
+ return false;
88
+ }
89
+ // Check tag name
90
+ if (a.contentElement.tagName !== b.contentElement.tagName) {
91
+ return false;
92
+ }
93
+ return true;
94
+ }
95
+ /**
96
+ * Mark correlation status on atoms based on LCS result.
97
+ *
98
+ * Sets atoms to Equal, Deleted, or Inserted status.
99
+ * Also links matched atoms via comparisonUnitAtomBefore reference.
100
+ *
101
+ * @param original - Atoms from the original document
102
+ * @param revised - Atoms from the revised document
103
+ * @param lcsResult - Result from computeAtomLcs
104
+ */
105
+ export function markCorrelationStatus(original, revised, lcsResult) {
106
+ // Mark matched atoms as Equal and link them
107
+ for (const match of lcsResult.matches) {
108
+ const origAtom = original[match.originalIndex];
109
+ const revAtom = revised[match.revisedIndex];
110
+ origAtom.correlationStatus = CorrelationStatus.Equal;
111
+ revAtom.correlationStatus = CorrelationStatus.Equal;
112
+ // Link revised atom to original for format change detection
113
+ revAtom.comparisonUnitAtomBefore = origAtom;
114
+ }
115
+ // Mark deleted atoms
116
+ for (const idx of lcsResult.deletedIndices) {
117
+ original[idx].correlationStatus = CorrelationStatus.Deleted;
118
+ }
119
+ // Mark inserted atoms
120
+ for (const idx of lcsResult.insertedIndices) {
121
+ revised[idx].correlationStatus = CorrelationStatus.Inserted;
122
+ }
123
+ }
124
+ /**
125
+ * Create a merged atom list for document reconstruction.
126
+ *
127
+ * Interleaves original and revised atoms in document order,
128
+ * preserving the structure needed for track changes rendering.
129
+ *
130
+ * @param original - Atoms from the original document (with status marked)
131
+ * @param revised - Atoms from the revised document (with status marked)
132
+ * @param lcsResult - Result from computeAtomLcs
133
+ * @returns Merged atom list in document order
134
+ */
135
+ export function createMergedAtomList(original, revised, lcsResult) {
136
+ const merged = [];
137
+ // Build maps for quick lookup
138
+ const originalToRevised = new Map();
139
+ const revisedToOriginal = new Map();
140
+ for (const match of lcsResult.matches) {
141
+ originalToRevised.set(match.originalIndex, match.revisedIndex);
142
+ revisedToOriginal.set(match.revisedIndex, match.originalIndex);
143
+ }
144
+ const deletedSet = new Set(lcsResult.deletedIndices);
145
+ const insertedSet = new Set(lcsResult.insertedIndices);
146
+ // We'll walk through the revised document order
147
+ // and insert deleted atoms at appropriate positions
148
+ let originalPtr = 0;
149
+ let revisedPtr = 0;
150
+ while (revisedPtr < revised.length || originalPtr < original.length) {
151
+ // First, add any deleted atoms that come before the current revised position
152
+ while (originalPtr < original.length && deletedSet.has(originalPtr)) {
153
+ const atom = original[originalPtr];
154
+ atom.sourceDocument = 'original';
155
+ merged.push(atom);
156
+ originalPtr++;
157
+ }
158
+ // Now handle the current revised atom
159
+ if (revisedPtr < revised.length) {
160
+ const revAtom = revised[revisedPtr];
161
+ if (insertedSet.has(revisedPtr)) {
162
+ // This is an inserted atom
163
+ revAtom.sourceDocument = 'revised';
164
+ merged.push(revAtom);
165
+ }
166
+ else {
167
+ // This is an equal atom - advance original pointer past its match
168
+ const matchedOrigIdx = revisedToOriginal.get(revisedPtr);
169
+ if (matchedOrigIdx !== undefined) {
170
+ // Add any deleted atoms before this match
171
+ while (originalPtr < matchedOrigIdx) {
172
+ if (deletedSet.has(originalPtr)) {
173
+ const atom = original[originalPtr];
174
+ atom.sourceDocument = 'original';
175
+ merged.push(atom);
176
+ }
177
+ originalPtr++;
178
+ }
179
+ // For equal empty paragraphs, use the original version to preserve
180
+ // the original document's structure (important for reject all changes)
181
+ const origAtom = original[matchedOrigIdx];
182
+ if (origAtom.contentElement.tagName === EMPTY_PARAGRAPH_TAG) {
183
+ origAtom.sourceDocument = 'original';
184
+ merged.push(origAtom);
185
+ }
186
+ else {
187
+ // For non-empty content, use the revised version
188
+ revAtom.sourceDocument = 'revised';
189
+ merged.push(revAtom);
190
+ }
191
+ // Advance past the matched original atom
192
+ originalPtr = matchedOrigIdx + 1;
193
+ }
194
+ else {
195
+ merged.push(revAtom);
196
+ }
197
+ }
198
+ revisedPtr++;
199
+ }
200
+ else {
201
+ // No more revised atoms - add remaining deleted originals
202
+ while (originalPtr < original.length) {
203
+ if (deletedSet.has(originalPtr)) {
204
+ const atom = original[originalPtr];
205
+ atom.sourceDocument = 'original';
206
+ merged.push(atom);
207
+ }
208
+ originalPtr++;
209
+ }
210
+ }
211
+ }
212
+ return merged;
213
+ }
214
+ /**
215
+ * Compute unified paragraph indices for merged atoms.
216
+ *
217
+ * Maps original and revised paragraph indices to a unified output paragraph index.
218
+ * This ensures that:
219
+ * 1. Atoms from corresponding paragraphs (Equal matches) share the same output index
220
+ * 2. Deleted paragraphs get their own output indices interleaved with matched paragraphs
221
+ * 3. Inserted paragraphs get their own output indices
222
+ *
223
+ * @param original - Original atoms with paragraphIndex set
224
+ * @param revised - Revised atoms with paragraphIndex set
225
+ * @param merged - Merged atom list
226
+ * @param lcsResult - LCS result with matches
227
+ */
228
+ export function assignUnifiedParagraphIndices(original, revised, merged, lcsResult) {
229
+ // Build paragraph correspondence from matches
230
+ const originalToRevisedPara = new Map();
231
+ for (const match of lcsResult.matches) {
232
+ const origAtom = original[match.originalIndex];
233
+ const revAtom = revised[match.revisedIndex];
234
+ if (origAtom.paragraphIndex !== undefined && revAtom.paragraphIndex !== undefined) {
235
+ if (!originalToRevisedPara.has(origAtom.paragraphIndex)) {
236
+ originalToRevisedPara.set(origAtom.paragraphIndex, revAtom.paragraphIndex);
237
+ }
238
+ }
239
+ }
240
+ // Collect all unique original paragraph indices
241
+ const allOriginalParas = [...new Set(original.map(a => a.paragraphIndex).filter(p => p !== undefined))];
242
+ allOriginalParas.sort((a, b) => a - b);
243
+ // Collect all unique revised paragraph indices
244
+ const allRevisedParas = [...new Set(revised.map(a => a.paragraphIndex).filter(p => p !== undefined))];
245
+ allRevisedParas.sort((a, b) => a - b);
246
+ // Build interleaved output index sequence
247
+ // Walk through original paragraphs in order, interleaving with revised paragraphs
248
+ const originalToOutputPara = new Map();
249
+ const revisedToOutputPara = new Map();
250
+ let nextOutputPara = 0;
251
+ let revisedIdx = 0;
252
+ for (const origPara of allOriginalParas) {
253
+ const correspondingRevised = originalToRevisedPara.get(origPara);
254
+ if (correspondingRevised !== undefined) {
255
+ // This original paragraph has a correspondent in revised
256
+ // First, assign output indices to any revised paragraphs before this correspondent
257
+ while (revisedIdx < allRevisedParas.length && allRevisedParas[revisedIdx] < correspondingRevised) {
258
+ const revPara = allRevisedParas[revisedIdx];
259
+ if (!revisedToOutputPara.has(revPara)) {
260
+ revisedToOutputPara.set(revPara, nextOutputPara++);
261
+ }
262
+ revisedIdx++;
263
+ }
264
+ // Assign the same output index to both original and revised
265
+ if (!revisedToOutputPara.has(correspondingRevised)) {
266
+ revisedToOutputPara.set(correspondingRevised, nextOutputPara);
267
+ originalToOutputPara.set(origPara, nextOutputPara);
268
+ nextOutputPara++;
269
+ }
270
+ else {
271
+ originalToOutputPara.set(origPara, revisedToOutputPara.get(correspondingRevised));
272
+ }
273
+ // Move past this revised paragraph
274
+ if (revisedIdx < allRevisedParas.length && allRevisedParas[revisedIdx] === correspondingRevised) {
275
+ revisedIdx++;
276
+ }
277
+ }
278
+ else {
279
+ // This original paragraph is deleted (no correspondent)
280
+ // Give it its own output index
281
+ originalToOutputPara.set(origPara, nextOutputPara++);
282
+ }
283
+ }
284
+ // Assign output indices to any remaining revised paragraphs (inserted)
285
+ while (revisedIdx < allRevisedParas.length) {
286
+ const revPara = allRevisedParas[revisedIdx];
287
+ if (!revisedToOutputPara.has(revPara)) {
288
+ revisedToOutputPara.set(revPara, nextOutputPara++);
289
+ }
290
+ revisedIdx++;
291
+ }
292
+ // Assign unified paragraph indices to merged atoms
293
+ let emptyParagraphsWithoutMapping = 0;
294
+ for (const atom of merged) {
295
+ if (atom.paragraphIndex === undefined)
296
+ continue;
297
+ const isEmptyPara = atom.contentElement.tagName === EMPTY_PARAGRAPH_TAG;
298
+ if (atom.correlationStatus === CorrelationStatus.Deleted ||
299
+ atom.correlationStatus === CorrelationStatus.MovedSource) {
300
+ // Deleted and MovedSource atoms have paragraph indices from original
301
+ const outputPara = originalToOutputPara.get(atom.paragraphIndex);
302
+ if (outputPara !== undefined) {
303
+ atom.paragraphIndex = outputPara;
304
+ }
305
+ else if (isEmptyPara) {
306
+ emptyParagraphsWithoutMapping++;
307
+ }
308
+ }
309
+ else if (atom.correlationStatus === CorrelationStatus.Equal && isEmptyPara) {
310
+ // Equal empty paragraphs use the original atom (see createMergedAtomList),
311
+ // so their paragraphIndex is from original, not revised
312
+ const outputPara = originalToOutputPara.get(atom.paragraphIndex);
313
+ if (outputPara !== undefined) {
314
+ atom.paragraphIndex = outputPara;
315
+ }
316
+ else {
317
+ emptyParagraphsWithoutMapping++;
318
+ }
319
+ }
320
+ else {
321
+ // Inserted and Equal (non-empty) atoms have paragraph indices from revised
322
+ const outputPara = revisedToOutputPara.get(atom.paragraphIndex);
323
+ if (outputPara !== undefined) {
324
+ atom.paragraphIndex = outputPara;
325
+ }
326
+ else if (isEmptyPara) {
327
+ emptyParagraphsWithoutMapping++;
328
+ }
329
+ }
330
+ }
331
+ if (emptyParagraphsWithoutMapping > 0) {
332
+ debug('atomLcs', `Empty paragraphs without mapping: ${emptyParagraphsWithoutMapping}`);
333
+ }
334
+ }
335
+ /**
336
+ * Compute statistics from LCS result.
337
+ */
338
+ export function computeLcsStats(original, revised, lcsResult) {
339
+ return {
340
+ equal: lcsResult.matches.length,
341
+ deleted: lcsResult.deletedIndices.length,
342
+ inserted: lcsResult.insertedIndices.length,
343
+ originalCount: original.length,
344
+ revisedCount: revised.length,
345
+ };
346
+ }
347
+ //# sourceMappingURL=atomLcs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomLcs.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/atomLcs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Debug Logging Utility
3
+ *
4
+ * Provides controlled debug logging for the docx-comparison package.
5
+ * Debug output is controlled by the DOCX_COMPARISON_DEBUG environment variable.
6
+ *
7
+ * Usage:
8
+ * import { debug, warn } from './debug.js';
9
+ * debug('inPlaceModifier', 'Processing atom', { status: atom.correlationStatus });
10
+ * warn('inPlaceModifier', 'Target paragraph is null');
11
+ *
12
+ * Enable debug output:
13
+ * DOCX_COMPARISON_DEBUG=1 npm test
14
+ * DOCX_COMPARISON_DEBUG=inPlaceModifier,atomizer npm test // Enable specific modules
15
+ */
16
+ /**
17
+ * Log a debug message (only when DOCX_COMPARISON_DEBUG is enabled).
18
+ *
19
+ * @param module - The module name (e.g., 'inPlaceModifier', 'atomizer')
20
+ * @param message - The message to log
21
+ * @param data - Optional data to include
22
+ */
23
+ export declare function debug(module: string, message: string, data?: unknown): void;
24
+ /**
25
+ * Log a warning message (always shown, but respects log level).
26
+ * These indicate potential issues that don't prevent operation but may affect results.
27
+ *
28
+ * @param module - The module name
29
+ * @param message - The warning message
30
+ * @param data - Optional data to include
31
+ */
32
+ export declare function warn(module: string, message: string, data?: unknown): void;
33
+ /**
34
+ * Log an error message (always shown).
35
+ *
36
+ * @param module - The module name
37
+ * @param message - The error message
38
+ * @param data - Optional data to include
39
+ */
40
+ export declare function error(module: string, message: string, data?: unknown): void;
41
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAS3E;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAO1E;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAO3E"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Debug Logging Utility
3
+ *
4
+ * Provides controlled debug logging for the docx-comparison package.
5
+ * Debug output is controlled by the DOCX_COMPARISON_DEBUG environment variable.
6
+ *
7
+ * Usage:
8
+ * import { debug, warn } from './debug.js';
9
+ * debug('inPlaceModifier', 'Processing atom', { status: atom.correlationStatus });
10
+ * warn('inPlaceModifier', 'Target paragraph is null');
11
+ *
12
+ * Enable debug output:
13
+ * DOCX_COMPARISON_DEBUG=1 npm test
14
+ * DOCX_COMPARISON_DEBUG=inPlaceModifier,atomizer npm test // Enable specific modules
15
+ */
16
+ /**
17
+ * Check if debug logging is enabled for a given module.
18
+ */
19
+ function isDebugEnabled(module) {
20
+ const debugEnv = process.env.DOCX_COMPARISON_DEBUG;
21
+ if (!debugEnv)
22
+ return false;
23
+ if (debugEnv === '1' || debugEnv === 'true' || debugEnv === '*')
24
+ return true;
25
+ return debugEnv.split(',').includes(module);
26
+ }
27
+ /**
28
+ * Format a log message with timestamp and module.
29
+ */
30
+ function formatMessage(level, module, message) {
31
+ const timestamp = new Date().toISOString();
32
+ return `[${timestamp}] [${level.toUpperCase()}] [${module}] ${message}`;
33
+ }
34
+ /**
35
+ * Log a debug message (only when DOCX_COMPARISON_DEBUG is enabled).
36
+ *
37
+ * @param module - The module name (e.g., 'inPlaceModifier', 'atomizer')
38
+ * @param message - The message to log
39
+ * @param data - Optional data to include
40
+ */
41
+ export function debug(module, message, data) {
42
+ if (!isDebugEnabled(module))
43
+ return;
44
+ const formatted = formatMessage('debug', module, message);
45
+ if (data !== undefined) {
46
+ console.log(formatted, data);
47
+ }
48
+ else {
49
+ console.log(formatted);
50
+ }
51
+ }
52
+ /**
53
+ * Log a warning message (always shown, but respects log level).
54
+ * These indicate potential issues that don't prevent operation but may affect results.
55
+ *
56
+ * @param module - The module name
57
+ * @param message - The warning message
58
+ * @param data - Optional data to include
59
+ */
60
+ export function warn(module, message, data) {
61
+ const formatted = formatMessage('warn', module, message);
62
+ if (data !== undefined) {
63
+ console.warn(formatted, data);
64
+ }
65
+ else {
66
+ console.warn(formatted);
67
+ }
68
+ }
69
+ /**
70
+ * Log an error message (always shown).
71
+ *
72
+ * @param module - The module name
73
+ * @param message - The error message
74
+ * @param data - Optional data to include
75
+ */
76
+ export function error(module, message, data) {
77
+ const formatted = formatMessage('error', module, message);
78
+ if (data !== undefined) {
79
+ console.error(formatted, data);
80
+ }
81
+ else {
82
+ console.error(formatted);
83
+ }
84
+ }
85
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAe,EAAE,MAAc,EAAE,OAAe;IACrE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,MAAM,KAAK,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,OAAe,EAAE,IAAc;IACnE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAAE,OAAO;IAEpC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,MAAc,EAAE,OAAe,EAAE,IAAc;IAClE,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,OAAe,EAAE,IAAc;IACnE,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}