@usejunior/docx-core 0.15.0 → 0.17.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 (221) hide show
  1. package/README.md +18 -83
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/conformance-adapter.d.ts +14 -0
  4. package/dist/cli/conformance-adapter.d.ts.map +1 -1
  5. package/dist/cli/conformance-adapter.js +104 -12
  6. package/dist/cli/conformance-adapter.js.map +1 -1
  7. package/dist/footnotes.d.ts +7 -5
  8. package/dist/footnotes.d.ts.map +1 -1
  9. package/dist/footnotes.js +7 -5
  10. package/dist/footnotes.js.map +1 -1
  11. package/dist/generated/ecma-376-vocabulary.d.ts +93 -0
  12. package/dist/generated/ecma-376-vocabulary.d.ts.map +1 -0
  13. package/dist/generated/ecma-376-vocabulary.js +87 -0
  14. package/dist/generated/ecma-376-vocabulary.js.map +1 -0
  15. package/dist/generation/compile.js +2 -2
  16. package/dist/generation/compile.js.map +1 -1
  17. package/dist/generation/emit/comments-part.d.ts +2 -0
  18. package/dist/generation/emit/comments-part.d.ts.map +1 -1
  19. package/dist/generation/emit/comments-part.js +2 -0
  20. package/dist/generation/emit/comments-part.js.map +1 -1
  21. package/dist/generation/emit/paragraph.d.ts +3 -0
  22. package/dist/generation/emit/paragraph.d.ts.map +1 -1
  23. package/dist/generation/emit/paragraph.js +3 -0
  24. package/dist/generation/emit/paragraph.js.map +1 -1
  25. package/dist/generation/emit/run.d.ts.map +1 -1
  26. package/dist/generation/emit/run.js +6 -1
  27. package/dist/generation/emit/run.js.map +1 -1
  28. package/dist/generation/emit/settings-part.d.ts +12 -3
  29. package/dist/generation/emit/settings-part.d.ts.map +1 -1
  30. package/dist/generation/emit/settings-part.js +23 -5
  31. package/dist/generation/emit/settings-part.js.map +1 -1
  32. package/dist/generation/ordering.d.ts +3 -1
  33. package/dist/generation/ordering.d.ts.map +1 -1
  34. package/dist/generation/ordering.js +3 -1
  35. package/dist/generation/ordering.js.map +1 -1
  36. package/dist/generation/schema-enum-domains.d.ts +27 -0
  37. package/dist/generation/schema-enum-domains.d.ts.map +1 -0
  38. package/dist/generation/schema-enum-domains.js +69 -0
  39. package/dist/generation/schema-enum-domains.js.map +1 -0
  40. package/dist/generation/structural-checks.js +7 -1
  41. package/dist/generation/structural-checks.js.map +1 -1
  42. package/dist/generation/validate-spec.d.ts.map +1 -1
  43. package/dist/generation/validate-spec.js +149 -31
  44. package/dist/generation/validate-spec.js.map +1 -1
  45. package/dist/index.d.ts +7 -24
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +7 -46
  48. package/dist/index.js.map +1 -1
  49. package/dist/primitives/accept_ai_edits.d.ts +87 -0
  50. package/dist/primitives/accept_ai_edits.d.ts.map +1 -0
  51. package/dist/primitives/accept_ai_edits.js +253 -0
  52. package/dist/primitives/accept_ai_edits.js.map +1 -0
  53. package/dist/primitives/accept_changes.d.ts +36 -3
  54. package/dist/primitives/accept_changes.d.ts.map +1 -1
  55. package/dist/primitives/accept_changes.js +67 -31
  56. package/dist/primitives/accept_changes.js.map +1 -1
  57. package/dist/primitives/bookmarks.d.ts +44 -0
  58. package/dist/primitives/bookmarks.d.ts.map +1 -1
  59. package/dist/primitives/bookmarks.js +149 -11
  60. package/dist/primitives/bookmarks.js.map +1 -1
  61. package/dist/primitives/document.d.ts +53 -1
  62. package/dist/primitives/document.d.ts.map +1 -1
  63. package/dist/primitives/document.js +146 -2
  64. package/dist/primitives/document.js.map +1 -1
  65. package/dist/primitives/dom-helpers.d.ts.map +1 -1
  66. package/dist/primitives/dom-helpers.js +7 -2
  67. package/dist/primitives/dom-helpers.js.map +1 -1
  68. package/dist/primitives/index.d.ts +2 -1
  69. package/dist/primitives/index.d.ts.map +1 -1
  70. package/dist/primitives/index.js +2 -1
  71. package/dist/primitives/index.js.map +1 -1
  72. package/dist/primitives/layout.d.ts.map +1 -1
  73. package/dist/primitives/layout.js +41 -1
  74. package/dist/primitives/layout.js.map +1 -1
  75. package/dist/primitives/namespaces.d.ts +2 -0
  76. package/dist/primitives/namespaces.d.ts.map +1 -1
  77. package/dist/primitives/namespaces.js +2 -0
  78. package/dist/primitives/namespaces.js.map +1 -1
  79. package/dist/primitives/reject_changes.d.ts +21 -2
  80. package/dist/primitives/reject_changes.d.ts.map +1 -1
  81. package/dist/primitives/reject_changes.js +71 -31
  82. package/dist/primitives/reject_changes.js.map +1 -1
  83. package/dist/primitives/relationships.d.ts +33 -0
  84. package/dist/primitives/relationships.d.ts.map +1 -1
  85. package/dist/primitives/relationships.js +84 -1
  86. package/dist/primitives/relationships.js.map +1 -1
  87. package/dist/primitives/sectPrAudit.d.ts +11 -2
  88. package/dist/primitives/sectPrAudit.d.ts.map +1 -1
  89. package/dist/primitives/sectPrAudit.js +148 -23
  90. package/dist/primitives/sectPrAudit.js.map +1 -1
  91. package/dist/primitives/track-changes-emitter.d.ts +4 -0
  92. package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
  93. package/dist/primitives/track-changes-emitter.js +5 -2
  94. package/dist/primitives/track-changes-emitter.js.map +1 -1
  95. package/dist/primitives/validate_ai_revisions.d.ts.map +1 -1
  96. package/dist/primitives/validate_ai_revisions.js +13 -5
  97. package/dist/primitives/validate_ai_revisions.js.map +1 -1
  98. package/dist/primitives/zip.d.ts.map +1 -1
  99. package/dist/primitives/zip.js +6 -2
  100. package/dist/primitives/zip.js.map +1 -1
  101. package/dist/shared/field-structure.d.ts +6 -0
  102. package/dist/shared/field-structure.d.ts.map +1 -1
  103. package/dist/shared/field-structure.js +6 -0
  104. package/dist/shared/field-structure.js.map +1 -1
  105. package/package.json +4 -8
  106. package/dist/atomizer.d.ts +0 -273
  107. package/dist/atomizer.d.ts.map +0 -1
  108. package/dist/atomizer.js +0 -1002
  109. package/dist/atomizer.js.map +0 -1
  110. package/dist/baselines/atomizer/atomLcs.d.ts +0 -82
  111. package/dist/baselines/atomizer/atomLcs.d.ts.map +0 -1
  112. package/dist/baselines/atomizer/atomLcs.js +0 -376
  113. package/dist/baselines/atomizer/atomLcs.js.map +0 -1
  114. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts +0 -99
  115. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts.map +0 -1
  116. package/dist/baselines/atomizer/auxiliaryIdCollision.js +0 -415
  117. package/dist/baselines/atomizer/auxiliaryIdCollision.js.map +0 -1
  118. package/dist/baselines/atomizer/consumerCompatibility.d.ts +0 -2
  119. package/dist/baselines/atomizer/consumerCompatibility.d.ts.map +0 -1
  120. package/dist/baselines/atomizer/consumerCompatibility.js +0 -188
  121. package/dist/baselines/atomizer/consumerCompatibility.js.map +0 -1
  122. package/dist/baselines/atomizer/debug.d.ts +0 -41
  123. package/dist/baselines/atomizer/debug.d.ts.map +0 -1
  124. package/dist/baselines/atomizer/debug.js +0 -85
  125. package/dist/baselines/atomizer/debug.js.map +0 -1
  126. package/dist/baselines/atomizer/documentReconstructor.d.ts +0 -75
  127. package/dist/baselines/atomizer/documentReconstructor.d.ts.map +0 -1
  128. package/dist/baselines/atomizer/documentReconstructor.js +0 -1449
  129. package/dist/baselines/atomizer/documentReconstructor.js.map +0 -1
  130. package/dist/baselines/atomizer/formattingFidelity.d.ts +0 -99
  131. package/dist/baselines/atomizer/formattingFidelity.d.ts.map +0 -1
  132. package/dist/baselines/atomizer/formattingFidelity.js +0 -449
  133. package/dist/baselines/atomizer/formattingFidelity.js.map +0 -1
  134. package/dist/baselines/atomizer/hierarchicalLcs.d.ts +0 -121
  135. package/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +0 -1
  136. package/dist/baselines/atomizer/hierarchicalLcs.js +0 -753
  137. package/dist/baselines/atomizer/hierarchicalLcs.js.map +0 -1
  138. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts +0 -37
  139. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts.map +0 -1
  140. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js +0 -189
  141. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js.map +0 -1
  142. package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts +0 -74
  143. package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts.map +0 -1
  144. package/dist/baselines/atomizer/inPlaceModifier-containers.js +0 -171
  145. package/dist/baselines/atomizer/inPlaceModifier-containers.js.map +0 -1
  146. package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts +0 -88
  147. package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts.map +0 -1
  148. package/dist/baselines/atomizer/inPlaceModifier-deletion.js +0 -326
  149. package/dist/baselines/atomizer/inPlaceModifier-deletion.js.map +0 -1
  150. package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts +0 -85
  151. package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts.map +0 -1
  152. package/dist/baselines/atomizer/inPlaceModifier-postprocess.js +0 -402
  153. package/dist/baselines/atomizer/inPlaceModifier-postprocess.js.map +0 -1
  154. package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts +0 -39
  155. package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts.map +0 -1
  156. package/dist/baselines/atomizer/inPlaceModifier-presplit.js +0 -265
  157. package/dist/baselines/atomizer/inPlaceModifier-presplit.js.map +0 -1
  158. package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts +0 -62
  159. package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts.map +0 -1
  160. package/dist/baselines/atomizer/inPlaceModifier-shared.js +0 -139
  161. package/dist/baselines/atomizer/inPlaceModifier-shared.js.map +0 -1
  162. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +0 -198
  163. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +0 -1
  164. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +0 -475
  165. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +0 -1
  166. package/dist/baselines/atomizer/inPlaceModifier.d.ts +0 -27
  167. package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +0 -1
  168. package/dist/baselines/atomizer/inPlaceModifier.js +0 -648
  169. package/dist/baselines/atomizer/inPlaceModifier.js.map +0 -1
  170. package/dist/baselines/atomizer/numberingIntegration.d.ts +0 -59
  171. package/dist/baselines/atomizer/numberingIntegration.d.ts.map +0 -1
  172. package/dist/baselines/atomizer/numberingIntegration.js +0 -209
  173. package/dist/baselines/atomizer/numberingIntegration.js.map +0 -1
  174. package/dist/baselines/atomizer/pipeline.d.ts +0 -103
  175. package/dist/baselines/atomizer/pipeline.d.ts.map +0 -1
  176. package/dist/baselines/atomizer/pipeline.js +0 -1160
  177. package/dist/baselines/atomizer/pipeline.js.map +0 -1
  178. package/dist/baselines/atomizer/premergeRuns.d.ts +0 -26
  179. package/dist/baselines/atomizer/premergeRuns.d.ts.map +0 -1
  180. package/dist/baselines/atomizer/premergeRuns.js +0 -153
  181. package/dist/baselines/atomizer/premergeRuns.js.map +0 -1
  182. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts +0 -63
  183. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +0 -1
  184. package/dist/baselines/atomizer/trackChangesAcceptor.js +0 -254
  185. package/dist/baselines/atomizer/trackChangesAcceptor.js.map +0 -1
  186. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +0 -64
  187. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +0 -1
  188. package/dist/baselines/atomizer/trackChangesAcceptorAst.js +0 -642
  189. package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +0 -1
  190. package/dist/baselines/atomizer/xmlToWmlElement.d.ts +0 -65
  191. package/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +0 -1
  192. package/dist/baselines/atomizer/xmlToWmlElement.js +0 -96
  193. package/dist/baselines/atomizer/xmlToWmlElement.js.map +0 -1
  194. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +0 -51
  195. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +0 -1
  196. package/dist/baselines/wmlcomparer/DocxodusWasm.js +0 -83
  197. package/dist/baselines/wmlcomparer/DocxodusWasm.js.map +0 -1
  198. package/dist/baselines/wmlcomparer/DotnetCli.d.ts +0 -40
  199. package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +0 -1
  200. package/dist/baselines/wmlcomparer/DotnetCli.js +0 -142
  201. package/dist/baselines/wmlcomparer/DotnetCli.js.map +0 -1
  202. package/dist/cli/compare-two.d.ts +0 -28
  203. package/dist/cli/compare-two.d.ts.map +0 -1
  204. package/dist/cli/compare-two.js +0 -112
  205. package/dist/cli/compare-two.js.map +0 -1
  206. package/dist/cli/index.d.ts +0 -3
  207. package/dist/cli/index.d.ts.map +0 -1
  208. package/dist/cli/index.js +0 -25
  209. package/dist/cli/index.js.map +0 -1
  210. package/dist/compare-types.d.ts +0 -197
  211. package/dist/compare-types.d.ts.map +0 -1
  212. package/dist/compare-types.js +0 -2
  213. package/dist/compare-types.js.map +0 -1
  214. package/dist/format-detection.d.ts +0 -120
  215. package/dist/format-detection.d.ts.map +0 -1
  216. package/dist/format-detection.js +0 -339
  217. package/dist/format-detection.js.map +0 -1
  218. package/dist/move-detection.d.ts +0 -211
  219. package/dist/move-detection.d.ts.map +0 -1
  220. package/dist/move-detection.js +0 -390
  221. package/dist/move-detection.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"inPlaceModifier.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/inPlaceModifier.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Numbering Integration
3
- *
4
- * Applies numbering resolution to atoms before comparison.
5
- * This allows detection of list renumbering changes.
6
- *
7
- * Note: Full implementation would parse numbering.xml and inject
8
- * computed list labels as virtual tokens. For v1, this is a stub
9
- * that can be extended later.
10
- */
11
- import type { ComparisonUnitAtom, ListLevelInfo } from '../../core-types.js';
12
- /**
13
- * Options for numbering integration.
14
- */
15
- export interface NumberingIntegrationOptions {
16
- /** Enable numbering virtualization. Default: true */
17
- enabled: boolean;
18
- }
19
- /**
20
- * Default options for numbering integration.
21
- */
22
- export declare const DEFAULT_NUMBERING_OPTIONS: NumberingIntegrationOptions;
23
- /**
24
- * Parsed numbering definitions from numbering.xml.
25
- */
26
- interface NumberingDefinitions {
27
- /** Abstract numbering definitions keyed by abstractNumId */
28
- abstractNums: Map<string, ListLevelInfo[]>;
29
- /** Num definitions mapping numId to abstractNumId */
30
- numToAbstractNum: Map<string, string>;
31
- }
32
- /**
33
- * Parse numbering.xml to extract numbering definitions.
34
- *
35
- * @param numberingXml - Raw numbering.xml content
36
- * @returns Parsed numbering definitions
37
- */
38
- export declare function parseNumberingXml(numberingXml: string): NumberingDefinitions;
39
- /**
40
- * Apply numbering labels to atoms for comparison.
41
- *
42
- * This is a stub implementation. Full implementation would:
43
- * 1. Parse numbering.xml
44
- * 2. Walk through paragraphs tracking numbering state
45
- * 3. Compute the rendered list label for each numbered paragraph
46
- * 4. Inject the label as a virtual atom or modify the hash
47
- *
48
- * @param atoms - Atoms to process
49
- * @param numberingXml - Raw numbering.xml content (optional)
50
- * @param options - Numbering integration options
51
- */
52
- export declare function virtualizeNumberingLabels(atoms: ComparisonUnitAtom[], numberingXml?: string, options?: NumberingIntegrationOptions): void;
53
- /**
54
- * Check if an atom is the first atom in its paragraph.
55
- * Used to determine when to process numbering.
56
- */
57
- export declare function isFirstAtomInParagraph(atom: ComparisonUnitAtom, previousAtom: ComparisonUnitAtom | null): boolean;
58
- export {};
59
- //# sourceMappingURL=numberingIntegration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numberingIntegration.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/numberingIntegration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAc,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUzF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,2BAEvC,CAAC;AAEF;;GAEG;AACH,UAAU,oBAAoB;IAC5B,4DAA4D;IAC5D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3C,qDAAqD;IACrD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GACnB,oBAAoB,CAwCtB;AAwFD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,GAAE,2BAAuD,GAC/D,IAAI,CAkEN;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,YAAY,EAAE,kBAAkB,GAAG,IAAI,GACtC,OAAO,CAST"}
@@ -1,209 +0,0 @@
1
- /**
2
- * Numbering Integration
3
- *
4
- * Applies numbering resolution to atoms before comparison.
5
- * This allows detection of list renumbering changes.
6
- *
7
- * Note: Full implementation would parse numbering.xml and inject
8
- * computed list labels as virtual tokens. For v1, this is a stub
9
- * that can be extended later.
10
- */
11
- import { createNumberingState, processNumberedParagraph, expandLevelTextWithLegal, parseLevelElement, } from '../../numbering.js';
12
- import { findElement, parseDocumentXml } from './xmlToWmlElement.js';
13
- import { childElements } from '../../primitives/index.js';
14
- /**
15
- * Default options for numbering integration.
16
- */
17
- export const DEFAULT_NUMBERING_OPTIONS = {
18
- enabled: true,
19
- };
20
- /**
21
- * Parse numbering.xml to extract numbering definitions.
22
- *
23
- * @param numberingXml - Raw numbering.xml content
24
- * @returns Parsed numbering definitions
25
- */
26
- export function parseNumberingXml(numberingXml) {
27
- const definitions = {
28
- abstractNums: new Map(),
29
- numToAbstractNum: new Map(),
30
- };
31
- if (!numberingXml) {
32
- return definitions;
33
- }
34
- try {
35
- const root = parseDocumentXml(numberingXml);
36
- const numbering = findElement(root, 'w:numbering');
37
- if (!numbering) {
38
- return definitions;
39
- }
40
- // Parse abstract numbering definitions
41
- for (const child of childElements(numbering)) {
42
- if (child.tagName === 'w:abstractNum') {
43
- const abstractNumId = child.getAttribute('w:abstractNumId');
44
- if (abstractNumId) {
45
- const levels = parseAbstractNumLevels(child);
46
- definitions.abstractNums.set(abstractNumId, levels);
47
- }
48
- }
49
- else if (child.tagName === 'w:num') {
50
- const numId = child.getAttribute('w:numId');
51
- const abstractNumIdRef = findAbstractNumIdRef(child);
52
- if (numId && abstractNumIdRef) {
53
- definitions.numToAbstractNum.set(numId, abstractNumIdRef);
54
- }
55
- }
56
- }
57
- }
58
- catch (error) {
59
- // If parsing fails, return empty definitions
60
- console.warn('Failed to parse numbering.xml:', error);
61
- }
62
- return definitions;
63
- }
64
- /**
65
- * Parse level definitions from an abstractNum element.
66
- */
67
- function parseAbstractNumLevels(abstractNum) {
68
- const levels = [];
69
- for (const child of childElements(abstractNum)) {
70
- if (child.tagName === 'w:lvl') {
71
- levels.push(parseLevelElement(child));
72
- }
73
- }
74
- // Sort by ilvl
75
- levels.sort((a, b) => a.ilvl - b.ilvl);
76
- return levels;
77
- }
78
- /**
79
- * Find the abstractNumId reference in a num element.
80
- */
81
- function findAbstractNumIdRef(numElement) {
82
- for (const child of childElements(numElement)) {
83
- if (child.tagName === 'w:abstractNumId') {
84
- return child.getAttribute('w:val') || null;
85
- }
86
- }
87
- return null;
88
- }
89
- /**
90
- * Get the numId from a paragraph's numbering properties.
91
- */
92
- function getNumIdFromAtom(atom) {
93
- // Find w:p ancestor
94
- const pAncestor = atom.ancestorElements.find((a) => a.tagName === 'w:p');
95
- if (!pAncestor) {
96
- return null;
97
- }
98
- // Find w:pPr
99
- const pPr = childElements(pAncestor).find((c) => c.tagName === 'w:pPr');
100
- if (!pPr) {
101
- return null;
102
- }
103
- // Find w:numPr
104
- const numPr = childElements(pPr).find((c) => c.tagName === 'w:numPr');
105
- if (!numPr) {
106
- return null;
107
- }
108
- // Find w:numId
109
- const numId = childElements(numPr).find((c) => c.tagName === 'w:numId');
110
- return numId?.getAttribute('w:val') || null;
111
- }
112
- /**
113
- * Get the ilvl from a paragraph's numbering properties.
114
- */
115
- function getIlvlFromAtom(atom) {
116
- // Find w:p ancestor
117
- const pAncestor = atom.ancestorElements.find((a) => a.tagName === 'w:p');
118
- if (!pAncestor) {
119
- return 0;
120
- }
121
- // Find w:pPr
122
- const pPr = childElements(pAncestor).find((c) => c.tagName === 'w:pPr');
123
- if (!pPr) {
124
- return 0;
125
- }
126
- // Find w:numPr
127
- const numPr = childElements(pPr).find((c) => c.tagName === 'w:numPr');
128
- if (!numPr) {
129
- return 0;
130
- }
131
- // Find w:ilvl
132
- const ilvl = childElements(numPr).find((c) => c.tagName === 'w:ilvl');
133
- const val = ilvl?.getAttribute('w:val');
134
- return val ? parseInt(val, 10) : 0;
135
- }
136
- /**
137
- * Apply numbering labels to atoms for comparison.
138
- *
139
- * This is a stub implementation. Full implementation would:
140
- * 1. Parse numbering.xml
141
- * 2. Walk through paragraphs tracking numbering state
142
- * 3. Compute the rendered list label for each numbered paragraph
143
- * 4. Inject the label as a virtual atom or modify the hash
144
- *
145
- * @param atoms - Atoms to process
146
- * @param numberingXml - Raw numbering.xml content (optional)
147
- * @param options - Numbering integration options
148
- */
149
- export function virtualizeNumberingLabels(atoms, numberingXml, options = DEFAULT_NUMBERING_OPTIONS) {
150
- if (!options.enabled || !numberingXml) {
151
- return;
152
- }
153
- const definitions = parseNumberingXml(numberingXml);
154
- if (definitions.abstractNums.size === 0) {
155
- return;
156
- }
157
- const numberingState = createNumberingState();
158
- let lastParagraph = null;
159
- for (const atom of atoms) {
160
- // Find paragraph ancestor
161
- const pAncestor = atom.ancestorElements.find((a) => a.tagName === 'w:p');
162
- if (pAncestor && pAncestor !== lastParagraph) {
163
- lastParagraph = pAncestor;
164
- // Check if this paragraph has numbering
165
- const numId = getNumIdFromAtom(atom);
166
- const ilvl = getIlvlFromAtom(atom);
167
- if (numId) {
168
- const abstractNumId = definitions.numToAbstractNum.get(numId);
169
- if (abstractNumId) {
170
- const levels = definitions.abstractNums.get(abstractNumId);
171
- if (levels && levels[ilvl]) {
172
- const levelInfo = levels[ilvl];
173
- const counter = processNumberedParagraph(numberingState, parseInt(numId, 10), ilvl, levelInfo);
174
- // Build counter array for level text expansion
175
- const counters = [];
176
- const storedCounters = numberingState.counters.get(numId);
177
- for (let i = 0; i <= ilvl; i++) {
178
- counters.push(storedCounters?.[i] ?? counter);
179
- }
180
- // Compute the rendered label
181
- const label = expandLevelTextWithLegal(levelInfo.lvlText, counters, levels, ilvl);
182
- // Store the computed label on the atom for hash modification
183
- // This affects comparison by making atoms with different labels
184
- // have different hashes even if the text is the same
185
- if (label) {
186
- // Modify the atom's hash to include the numbering label
187
- // This is a simple approach - append label to hash input
188
- const originalHash = atom.sha1Hash;
189
- atom.sha1Hash = `${originalHash}:${numId}:${ilvl}:${label}`;
190
- }
191
- }
192
- }
193
- }
194
- }
195
- }
196
- }
197
- /**
198
- * Check if an atom is the first atom in its paragraph.
199
- * Used to determine when to process numbering.
200
- */
201
- export function isFirstAtomInParagraph(atom, previousAtom) {
202
- if (!previousAtom) {
203
- return true;
204
- }
205
- const currentP = atom.ancestorElements.find((a) => a.tagName === 'w:p');
206
- const previousP = previousAtom.ancestorElements.find((a) => a.tagName === 'w:p');
207
- return currentP !== previousP;
208
- }
209
- //# sourceMappingURL=numberingIntegration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numberingIntegration.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/numberingIntegration.ts"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- /**
2
- * Atomizer Pipeline
3
- *
4
- * Main orchestration for the atomizer-based document comparison.
5
- * Integrates atomization, LCS comparison, move detection, format detection,
6
- * and document reconstruction.
7
- */
8
- import type { CompareResult, CompareStats, ReconstructionMode } from '../../compare-types.js';
9
- import type { ComparisonUnitAtom, MoveDetectionSettings, FormatDetectionSettings } from '../../core-types.js';
10
- import { type NumberingIntegrationOptions } from './numberingIntegration.js';
11
- export { hasFldCharInsideDel, validateFieldStructure, type FieldStory, } from '../../shared/field-structure.js';
12
- import { type FieldStory } from '../../shared/field-structure.js';
13
- /**
14
- * Options for the atomizer pipeline.
15
- */
16
- export interface AtomizerOptions {
17
- /** Author name for track changes. Default: "Comparison" */
18
- author?: string;
19
- /** Timestamp for track changes. Default: current time */
20
- date?: Date;
21
- /** Move detection settings */
22
- moveDetection?: Partial<MoveDetectionSettings>;
23
- /** Format detection settings */
24
- formatDetection?: Partial<FormatDetectionSettings>;
25
- /** Numbering integration settings */
26
- numbering?: Partial<NumberingIntegrationOptions>;
27
- /**
28
- * Pre-compare normalization: merge adjacent <w:r> siblings with identical formatting.
29
- *
30
- * This reduces overly-fragmented diffs without relying on atom-level cross-run text merging,
31
- * and can improve revision grouping in Word.
32
- *
33
- * Default: true.
34
- */
35
- premergeRuns?: boolean;
36
- /**
37
- * How to reconstruct the output:
38
- * - 'rebuild': rebuild document.xml from atoms (best reject/accept idempotency)
39
- * - 'inplace': modify the revised document AST in place (experimental)
40
- *
41
- * Default: 'rebuild'
42
- */
43
- reconstructionMode?: ReconstructionMode;
44
- }
45
- /**
46
- * Split a docx into per-story XML fragments for field-closure validation.
47
- *
48
- * Each footnote/endnote entry is treated as an isolated story: a complex
49
- * field whose `begin` and `end` markers straddle stories breaks Word's
50
- * field state machine. We therefore validate each `<w:footnote>` and
51
- * `<w:endnote>` entry independently rather than treating the whole
52
- * `footnotes.xml`/`endnotes.xml` as one stream.
53
- *
54
- * Accepts arrays of sidecar XMLs (one per source archive) so callers can
55
- * validate the union of entries from every archive that may contribute to the
56
- * final result. Step 12 of `compareDocumentsAtomizer` merges entries from a
57
- * mode-dependent source archive into the base archive; passing both archives'
58
- * sidecars guarantees that whichever path the merge takes, the entries it
59
- * could publish have already been screened. Duplicates (same `w:id` in both
60
- * archives) yield redundant but harmless validation work.
61
- *
62
- * Header/footer stories are not yet covered — they require relationship
63
- * walking to enumerate `headerN.xml`/`footerN.xml`.
64
- *
65
- * @conformance ECMA-376 edition 5, Part 4 § 17.16.5
66
- * @see https://github.com/UseJunior/safe-docx/issues/212
67
- */
68
- export declare function splitStories(documentXml: string, footnotesXmls: ReadonlyArray<string | null>, endnotesXmls: ReadonlyArray<string | null>): FieldStory[];
69
- /**
70
- * Compare two DOCX documents using the atomizer-based approach.
71
- *
72
- * Pipeline steps:
73
- * 1. Load DOCX archives
74
- * 2. Extract document.xml
75
- * 3. Parse to WmlElement trees
76
- * 4. Atomize both documents
77
- * 5. (Optional) Apply numbering virtualization
78
- * 6. Run LCS on atom hashes
79
- * 7. Mark correlation status
80
- * 8. Run move detection
81
- * 9. Run format detection
82
- * 10. Reconstruct document with track changes
83
- * 11. Save and return result
84
- *
85
- * @param original - Original document as Buffer
86
- * @param revised - Revised document as Buffer
87
- * @param options - Pipeline options
88
- * @returns Comparison result with track changes document
89
- */
90
- export declare function compareDocumentsAtomizer(original: Buffer, revised: Buffer, options?: AtomizerOptions): Promise<CompareResult>;
91
- export interface AuxiliaryMergeResult {
92
- mergedIds: Set<string>;
93
- createdPart: boolean;
94
- }
95
- /**
96
- * Compute comparison statistics from merged atoms.
97
- *
98
- * Range counts are contiguous same-status runs in the merged atom stream, scoped
99
- * to a paragraph. Atom counts remain available under explicit names for callers
100
- * that need the old granular benchmark signal.
101
- */
102
- export declare function computeAtomizerStats(mergedAtoms: ComparisonUnitAtom[]): CompareStats;
103
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAeZ,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EAExB,MAAM,qBAAqB,CAAC;AAkC7B,OAAO,EAEL,KAAK,2BAA2B,EAEjC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,UAAU,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,iCAAiC,CAAC;AAUzC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/C,gCAAgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnD,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAkPD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,EAC3C,YAAY,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GACzC,UAAU,EAAE,CA4Bd;AAqHD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAwWxB;AAYD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAwgBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAyDpF"}