@usejunior/docx-core 0.10.0 → 0.11.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 (232) hide show
  1. package/LICENSE +202 -21
  2. package/NOTICE +2 -0
  3. package/README.md +2 -2
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/atomizer.d.ts +13 -7
  6. package/dist/atomizer.d.ts.map +1 -1
  7. package/dist/atomizer.js +59 -24
  8. package/dist/atomizer.js.map +1 -1
  9. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts +99 -0
  10. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts.map +1 -0
  11. package/dist/baselines/atomizer/auxiliaryIdCollision.js +415 -0
  12. package/dist/baselines/atomizer/auxiliaryIdCollision.js.map +1 -0
  13. package/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -1
  14. package/dist/baselines/atomizer/documentReconstructor.js +120 -27
  15. package/dist/baselines/atomizer/documentReconstructor.js.map +1 -1
  16. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +9 -0
  17. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +1 -1
  18. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +52 -4
  19. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +1 -1
  20. package/dist/baselines/atomizer/pipeline.d.ts +12 -53
  21. package/dist/baselines/atomizer/pipeline.d.ts.map +1 -1
  22. package/dist/baselines/atomizer/pipeline.js +126 -231
  23. package/dist/baselines/atomizer/pipeline.js.map +1 -1
  24. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -1
  25. package/dist/baselines/atomizer/trackChangesAcceptorAst.js +153 -23
  26. package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -1
  27. package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +1 -1
  28. package/dist/baselines/wmlcomparer/DotnetCli.js +7 -0
  29. package/dist/baselines/wmlcomparer/DotnetCli.js.map +1 -1
  30. package/dist/cli/compare-two.d.ts.map +1 -1
  31. package/dist/cli/compare-two.js +3 -1
  32. package/dist/cli/compare-two.js.map +1 -1
  33. package/dist/cli/conformance-adapter.d.ts +3 -0
  34. package/dist/cli/conformance-adapter.d.ts.map +1 -0
  35. package/dist/cli/conformance-adapter.js +93 -0
  36. package/dist/cli/conformance-adapter.js.map +1 -0
  37. package/dist/cli/index.d.ts.map +1 -1
  38. package/dist/cli/index.js +5 -1
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/compare-types.d.ts +46 -0
  41. package/dist/compare-types.d.ts.map +1 -1
  42. package/dist/generation/compile.d.ts +21 -0
  43. package/dist/generation/compile.d.ts.map +1 -0
  44. package/dist/generation/compile.js +46 -0
  45. package/dist/generation/compile.js.map +1 -0
  46. package/dist/generation/context.d.ts +42 -0
  47. package/dist/generation/context.d.ts.map +1 -0
  48. package/dist/generation/context.js +65 -0
  49. package/dist/generation/context.js.map +1 -0
  50. package/dist/generation/emit/comments-part.d.ts +36 -0
  51. package/dist/generation/emit/comments-part.d.ts.map +1 -0
  52. package/dist/generation/emit/comments-part.js +116 -0
  53. package/dist/generation/emit/comments-part.js.map +1 -0
  54. package/dist/generation/emit/document-part.d.ts +24 -0
  55. package/dist/generation/emit/document-part.d.ts.map +1 -0
  56. package/dist/generation/emit/document-part.js +60 -0
  57. package/dist/generation/emit/document-part.js.map +1 -0
  58. package/dist/generation/emit/emit-context.d.ts +26 -0
  59. package/dist/generation/emit/emit-context.d.ts.map +1 -0
  60. package/dist/generation/emit/emit-context.js +19 -0
  61. package/dist/generation/emit/emit-context.js.map +1 -0
  62. package/dist/generation/emit/header-footer-part.d.ts +23 -0
  63. package/dist/generation/emit/header-footer-part.d.ts.map +1 -0
  64. package/dist/generation/emit/header-footer-part.js +57 -0
  65. package/dist/generation/emit/header-footer-part.js.map +1 -0
  66. package/dist/generation/emit/numbering-part.d.ts +29 -0
  67. package/dist/generation/emit/numbering-part.d.ts.map +1 -0
  68. package/dist/generation/emit/numbering-part.js +100 -0
  69. package/dist/generation/emit/numbering-part.js.map +1 -0
  70. package/dist/generation/emit/package-parts.d.ts +24 -0
  71. package/dist/generation/emit/package-parts.d.ts.map +1 -0
  72. package/dist/generation/emit/package-parts.js +121 -0
  73. package/dist/generation/emit/package-parts.js.map +1 -0
  74. package/dist/generation/emit/paragraph.d.ts +24 -0
  75. package/dist/generation/emit/paragraph.d.ts.map +1 -0
  76. package/dist/generation/emit/paragraph.js +63 -0
  77. package/dist/generation/emit/paragraph.js.map +1 -0
  78. package/dist/generation/emit/properties.d.ts +34 -0
  79. package/dist/generation/emit/properties.d.ts.map +1 -0
  80. package/dist/generation/emit/properties.js +138 -0
  81. package/dist/generation/emit/properties.js.map +1 -0
  82. package/dist/generation/emit/run.d.ts +15 -0
  83. package/dist/generation/emit/run.d.ts.map +1 -0
  84. package/dist/generation/emit/run.js +71 -0
  85. package/dist/generation/emit/run.js.map +1 -0
  86. package/dist/generation/emit/section.d.ts +29 -0
  87. package/dist/generation/emit/section.d.ts.map +1 -0
  88. package/dist/generation/emit/section.js +117 -0
  89. package/dist/generation/emit/section.js.map +1 -0
  90. package/dist/generation/emit/settings-part.d.ts +13 -0
  91. package/dist/generation/emit/settings-part.d.ts.map +1 -0
  92. package/dist/generation/emit/settings-part.js +24 -0
  93. package/dist/generation/emit/settings-part.js.map +1 -0
  94. package/dist/generation/emit/styles-part.d.ts +16 -0
  95. package/dist/generation/emit/styles-part.d.ts.map +1 -0
  96. package/dist/generation/emit/styles-part.js +80 -0
  97. package/dist/generation/emit/styles-part.js.map +1 -0
  98. package/dist/generation/emit/table.d.ts +26 -0
  99. package/dist/generation/emit/table.d.ts.map +1 -0
  100. package/dist/generation/emit/table.js +196 -0
  101. package/dist/generation/emit/table.js.map +1 -0
  102. package/dist/generation/errors.d.ts +22 -0
  103. package/dist/generation/errors.d.ts.map +1 -0
  104. package/dist/generation/errors.js +29 -0
  105. package/dist/generation/errors.js.map +1 -0
  106. package/dist/generation/index.d.ts +13 -0
  107. package/dist/generation/index.d.ts.map +1 -0
  108. package/dist/generation/index.js +12 -0
  109. package/dist/generation/index.js.map +1 -0
  110. package/dist/generation/ordering.d.ts +46 -0
  111. package/dist/generation/ordering.d.ts.map +1 -0
  112. package/dist/generation/ordering.js +119 -0
  113. package/dist/generation/ordering.js.map +1 -0
  114. package/dist/generation/recipes.d.ts +47 -0
  115. package/dist/generation/recipes.d.ts.map +1 -0
  116. package/dist/generation/recipes.js +84 -0
  117. package/dist/generation/recipes.js.map +1 -0
  118. package/dist/generation/structural-checks.d.ts +24 -0
  119. package/dist/generation/structural-checks.d.ts.map +1 -0
  120. package/dist/generation/structural-checks.js +318 -0
  121. package/dist/generation/structural-checks.js.map +1 -0
  122. package/dist/generation/types.d.ts +217 -0
  123. package/dist/generation/types.d.ts.map +1 -0
  124. package/dist/generation/types.js +16 -0
  125. package/dist/generation/types.js.map +1 -0
  126. package/dist/generation/validate-spec.d.ts +27 -0
  127. package/dist/generation/validate-spec.d.ts.map +1 -0
  128. package/dist/generation/validate-spec.js +307 -0
  129. package/dist/generation/validate-spec.js.map +1 -0
  130. package/dist/index.d.ts +3 -0
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +8 -0
  133. package/dist/index.js.map +1 -1
  134. package/dist/integration/generation-probes.d.ts +15 -0
  135. package/dist/integration/generation-probes.d.ts.map +1 -0
  136. package/dist/integration/generation-probes.js +84 -0
  137. package/dist/integration/generation-probes.js.map +1 -0
  138. package/dist/integration/libreoffice-oracle.d.ts +8 -0
  139. package/dist/integration/libreoffice-oracle.d.ts.map +1 -1
  140. package/dist/integration/libreoffice-oracle.js +14 -6
  141. package/dist/integration/libreoffice-oracle.js.map +1 -1
  142. package/dist/integration/synthetic-docx-fixture.d.ts +72 -0
  143. package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -1
  144. package/dist/integration/synthetic-docx-fixture.js +131 -4
  145. package/dist/integration/synthetic-docx-fixture.js.map +1 -1
  146. package/dist/primitives/accept_changes.d.ts +2 -1
  147. package/dist/primitives/accept_changes.d.ts.map +1 -1
  148. package/dist/primitives/accept_changes.js +153 -12
  149. package/dist/primitives/accept_changes.js.map +1 -1
  150. package/dist/primitives/document.d.ts +38 -0
  151. package/dist/primitives/document.d.ts.map +1 -1
  152. package/dist/primitives/document.js +75 -9
  153. package/dist/primitives/document.js.map +1 -1
  154. package/dist/primitives/document_view-comments.d.ts.map +1 -1
  155. package/dist/primitives/document_view-comments.js +4 -3
  156. package/dist/primitives/document_view-comments.js.map +1 -1
  157. package/dist/primitives/document_view-types.d.ts +15 -0
  158. package/dist/primitives/document_view-types.d.ts.map +1 -1
  159. package/dist/primitives/document_view.d.ts.map +1 -1
  160. package/dist/primitives/document_view.js +21 -13
  161. package/dist/primitives/document_view.js.map +1 -1
  162. package/dist/primitives/formatting_tags.d.ts +1 -0
  163. package/dist/primitives/formatting_tags.d.ts.map +1 -1
  164. package/dist/primitives/formatting_tags.js +16 -10
  165. package/dist/primitives/formatting_tags.js.map +1 -1
  166. package/dist/primitives/index.d.ts +4 -0
  167. package/dist/primitives/index.d.ts.map +1 -1
  168. package/dist/primitives/index.js +4 -0
  169. package/dist/primitives/index.js.map +1 -1
  170. package/dist/primitives/layout.d.ts.map +1 -1
  171. package/dist/primitives/layout.js +13 -0
  172. package/dist/primitives/layout.js.map +1 -1
  173. package/dist/primitives/minimal_save.d.ts +38 -0
  174. package/dist/primitives/minimal_save.d.ts.map +1 -0
  175. package/dist/primitives/minimal_save.js +323 -0
  176. package/dist/primitives/minimal_save.js.map +1 -0
  177. package/dist/primitives/namespaces.d.ts +41 -0
  178. package/dist/primitives/namespaces.d.ts.map +1 -1
  179. package/dist/primitives/namespaces.js +43 -0
  180. package/dist/primitives/namespaces.js.map +1 -1
  181. package/dist/primitives/reject_changes.d.ts +4 -2
  182. package/dist/primitives/reject_changes.d.ts.map +1 -1
  183. package/dist/primitives/reject_changes.js +177 -24
  184. package/dist/primitives/reject_changes.js.map +1 -1
  185. package/dist/primitives/revision-parts.d.ts +7 -0
  186. package/dist/primitives/revision-parts.d.ts.map +1 -0
  187. package/dist/primitives/revision-parts.js +27 -0
  188. package/dist/primitives/revision-parts.js.map +1 -0
  189. package/dist/primitives/revision-vocabulary.d.ts +7 -0
  190. package/dist/primitives/revision-vocabulary.d.ts.map +1 -0
  191. package/dist/primitives/revision-vocabulary.js +39 -0
  192. package/dist/primitives/revision-vocabulary.js.map +1 -0
  193. package/dist/primitives/schema-corpus-capture.d.ts +19 -0
  194. package/dist/primitives/schema-corpus-capture.d.ts.map +1 -0
  195. package/dist/primitives/schema-corpus-capture.js +29 -0
  196. package/dist/primitives/schema-corpus-capture.js.map +1 -0
  197. package/dist/primitives/sectPrAudit.d.ts +19 -0
  198. package/dist/primitives/sectPrAudit.d.ts.map +1 -0
  199. package/dist/primitives/sectPrAudit.js +165 -0
  200. package/dist/primitives/sectPrAudit.js.map +1 -0
  201. package/dist/primitives/semantic_tags.d.ts.map +1 -1
  202. package/dist/primitives/semantic_tags.js +2 -1
  203. package/dist/primitives/semantic_tags.js.map +1 -1
  204. package/dist/primitives/serialize_html.d.ts +1 -0
  205. package/dist/primitives/serialize_html.d.ts.map +1 -1
  206. package/dist/primitives/serialize_html.js +4 -2
  207. package/dist/primitives/serialize_html.js.map +1 -1
  208. package/dist/primitives/styles.d.ts +15 -0
  209. package/dist/primitives/styles.d.ts.map +1 -1
  210. package/dist/primitives/styles.js +11 -0
  211. package/dist/primitives/styles.js.map +1 -1
  212. package/dist/primitives/track-changes-emitter.d.ts +9 -0
  213. package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
  214. package/dist/primitives/track-changes-emitter.js +54 -4
  215. package/dist/primitives/track-changes-emitter.js.map +1 -1
  216. package/dist/primitives/validate_ai_revisions.d.ts +35 -0
  217. package/dist/primitives/validate_ai_revisions.d.ts.map +1 -0
  218. package/dist/primitives/validate_ai_revisions.js +323 -0
  219. package/dist/primitives/validate_ai_revisions.js.map +1 -0
  220. package/dist/primitives/xml.d.ts +5 -0
  221. package/dist/primitives/xml.d.ts.map +1 -1
  222. package/dist/primitives/xml.js +5 -0
  223. package/dist/primitives/xml.js.map +1 -1
  224. package/dist/primitives/zip.d.ts +1 -0
  225. package/dist/primitives/zip.d.ts.map +1 -1
  226. package/dist/primitives/zip.js +21 -3
  227. package/dist/primitives/zip.js.map +1 -1
  228. package/dist/shared/field-structure.d.ts +14 -0
  229. package/dist/shared/field-structure.d.ts.map +1 -0
  230. package/dist/shared/field-structure.js +166 -0
  231. package/dist/shared/field-structure.js.map +1 -0
  232. package/package.json +7 -4
@@ -0,0 +1,323 @@
1
+ /**
2
+ * minimal_save — restore untouched top-level body blocks from the original
3
+ * document.xml at save time.
4
+ *
5
+ * The in-memory session DOM is normalized at open (`mergeRuns` +
6
+ * `simplifyRedlines`) because text addressing, bookmarks, and comparison
7
+ * baselines all assume the normalized shape. Serializing that DOM wholesale
8
+ * persists the normalization for every paragraph, so a one-paragraph edit
9
+ * rewrites the whole document on disk (proofErr stripped, runs merged) and
10
+ * downstream diffs lie about the edit's blast radius.
11
+ *
12
+ * This module reconciles at save time instead: any body block (w:p, w:tbl,
13
+ * w:sectPr, ...) whose serialization equals the corresponding block of a
14
+ * freshly-normalized re-parse of the original XML was, by construction,
15
+ * untouched by edits — so it is replaced with the pristine original block.
16
+ * Edited blocks that are tables are descended into (rows → cells →
17
+ * paragraphs) so a one-cell edit doesn't churn the rest of the table.
18
+ * Edited or inserted leaves have no equal counterpart and are kept as-is.
19
+ * The output contract is element-for-element preservation of untouched
20
+ * blocks (the XML still passes through the serializer, so byte-identity
21
+ * with the original file is not guaranteed).
22
+ *
23
+ * @see https://github.com/UseJunior/safe-docx/issues/408
24
+ */
25
+ import { XMLSerializer } from '@xmldom/xmldom';
26
+ import { parseXml } from './xml.js';
27
+ import { OOXML, W } from './namespaces.js';
28
+ import { childElements } from './dom-helpers.js';
29
+ import { mergeRuns } from './merge_runs.js';
30
+ import { simplifyRedlines } from './simplify_redlines.js';
31
+ /**
32
+ * Containers whose ELEMENT-CHILD structure normalization provably preserves
33
+ * (mergeRuns/simplifyRedlines mutate inside paragraphs only): an edited
34
+ * table can be descended into so its untouched rows/cells/paragraphs still
35
+ * restore. Paragraphs are deliberately absent — normalization adds/removes
36
+ * their children, so the original↔normalized index lockstep breaks there.
37
+ */
38
+ const RECURSABLE_CONTAINER_LOCALS = new Set([W.tbl, W.tr, W.tc]);
39
+ function bodyElement(doc) {
40
+ return doc.getElementsByTagNameNS(OOXML.W_NS, W.body).item(0);
41
+ }
42
+ /**
43
+ * DP cell budget (~16 MB of Int32). Edits touch few blocks, so the common
44
+ * prefix/suffix trim below collapses the DP to roughly the edited span;
45
+ * only a document with massive scattered edits exceeds this, and those
46
+ * blocks then simply stay normalized (conservative, never wrong).
47
+ */
48
+ const MAX_LCS_DP_CELLS = 4_000_000;
49
+ /**
50
+ * Order-preserving alignment of two sequences by longest common subsequence,
51
+ * returning matched index pairs `[i, j]` with `a[i] === b[j]`.
52
+ *
53
+ * An LCS (rather than a serialization-keyed FIFO map) is required for
54
+ * correctness when two blocks normalize to identical serializations: if the
55
+ * earlier duplicate is edited, a FIFO would hand the untouched later block
56
+ * the earlier block's original (swapping rsid/paraId provenance). The
57
+ * backtrack below matches from the tail, so untouched trailing duplicates
58
+ * pair with their own originals.
59
+ */
60
+ function lcsPairs(a, b) {
61
+ if (a.length === 0 || b.length === 0)
62
+ return [];
63
+ // Identical leading/trailing runs are LCS matches by construction; pairing
64
+ // them up front shrinks the DP to the edited middle span.
65
+ let start = 0;
66
+ while (start < a.length && start < b.length && a[start] === b[start])
67
+ start++;
68
+ let endA = a.length;
69
+ let endB = b.length;
70
+ while (endA > start && endB > start && a[endA - 1] === b[endB - 1]) {
71
+ endA--;
72
+ endB--;
73
+ }
74
+ const pairs = [];
75
+ for (let k = 0; k < start; k++)
76
+ pairs.push([k, k]);
77
+ const n = endA - start;
78
+ const m = endB - start;
79
+ if (n > 0 && m > 0 && n * m <= MAX_LCS_DP_CELLS) {
80
+ // Intern strings to integers so DP comparisons don't re-compare long XML.
81
+ const ids = new Map();
82
+ const intern = (s) => {
83
+ let id = ids.get(s);
84
+ if (id === undefined) {
85
+ id = ids.size;
86
+ ids.set(s, id);
87
+ }
88
+ return id;
89
+ };
90
+ const ai = a.slice(start, endA).map(intern);
91
+ const bi = b.slice(start, endB).map(intern);
92
+ // dp[(i, j)] = LCS length of ai[0..i) and bi[0..j), row-major stride m+1.
93
+ const stride = m + 1;
94
+ const dp = new Int32Array((n + 1) * stride);
95
+ for (let i = 1; i <= n; i++) {
96
+ for (let j = 1; j <= m; j++) {
97
+ dp[i * stride + j] =
98
+ ai[i - 1] === bi[j - 1]
99
+ ? dp[(i - 1) * stride + (j - 1)] + 1
100
+ : Math.max(dp[(i - 1) * stride + j], dp[i * stride + (j - 1)]);
101
+ }
102
+ }
103
+ const middle = [];
104
+ let i = n;
105
+ let j = m;
106
+ while (i > 0 && j > 0) {
107
+ if (ai[i - 1] === bi[j - 1] &&
108
+ dp[i * stride + j] === dp[(i - 1) * stride + (j - 1)] + 1) {
109
+ middle.push([start + i - 1, start + j - 1]);
110
+ i--;
111
+ j--;
112
+ }
113
+ else if (dp[(i - 1) * stride + j] >= dp[i * stride + (j - 1)]) {
114
+ i--;
115
+ }
116
+ else {
117
+ j--;
118
+ }
119
+ }
120
+ pairs.push(...middle.reverse());
121
+ }
122
+ for (let k = 0; endA + k < a.length; k++)
123
+ pairs.push([endA + k, endB + k]);
124
+ return pairs;
125
+ }
126
+ const serializer = new XMLSerializer();
127
+ function sameQualifiedName(a, b) {
128
+ return a.namespaceURI === b.namespaceURI && a.localName === b.localName;
129
+ }
130
+ function isWElement(node, localName) {
131
+ return (node.nodeType === 1 &&
132
+ node.namespaceURI === OOXML.W_NS &&
133
+ node.localName === localName);
134
+ }
135
+ function directChildElement(el, localName) {
136
+ let child = el.firstChild;
137
+ while (child) {
138
+ if (isWElement(child, localName))
139
+ return child;
140
+ child = child.nextSibling;
141
+ }
142
+ return null;
143
+ }
144
+ function clonedRunFormattingKey(run) {
145
+ const rPr = directChildElement(run, W.rPr);
146
+ return rPr ? serializer.serializeToString(rPr) : '';
147
+ }
148
+ function clonedRunContentChildren(run) {
149
+ const out = [];
150
+ let child = run.firstChild;
151
+ while (child) {
152
+ const next = child.nextSibling;
153
+ if (!isWElement(child, W.rPr))
154
+ out.push(child);
155
+ child = next;
156
+ }
157
+ return out;
158
+ }
159
+ function runHasOnlyTextContent(run) {
160
+ return clonedRunContentChildren(run).every((child) => {
161
+ if (child.nodeType === 3)
162
+ return !(child.textContent ?? '').trim();
163
+ return isWElement(child, W.t);
164
+ });
165
+ }
166
+ function consolidateAdjacentTextChildren(run) {
167
+ let child = run.firstChild;
168
+ while (child) {
169
+ if (!isWElement(child, W.t)) {
170
+ child = child.nextSibling;
171
+ continue;
172
+ }
173
+ const first = child;
174
+ let next = first.nextSibling;
175
+ while (next) {
176
+ if (next.nodeType === 3 && !(next.textContent ?? '').trim()) {
177
+ const whitespace = next;
178
+ next = whitespace.nextSibling;
179
+ whitespace.parentNode?.removeChild(whitespace);
180
+ continue;
181
+ }
182
+ if (!isWElement(next, W.t))
183
+ break;
184
+ const following = next.nextSibling;
185
+ first.textContent = (first.textContent ?? '') + (next.textContent ?? '');
186
+ next.parentNode?.removeChild(next);
187
+ next = following;
188
+ }
189
+ const text = first.textContent ?? '';
190
+ if (text.startsWith(' ') || text.endsWith(' ')) {
191
+ first.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
192
+ }
193
+ else {
194
+ first.removeAttributeNS('http://www.w3.org/XML/1998/namespace', 'space');
195
+ }
196
+ child = first.nextSibling;
197
+ }
198
+ }
199
+ function mergeAdjacentRunsForKey(container) {
200
+ let child = container.firstChild;
201
+ let currentRun = null;
202
+ while (child) {
203
+ const next = child.nextSibling;
204
+ if (!isWElement(child, W.r)) {
205
+ currentRun = null;
206
+ child = next;
207
+ continue;
208
+ }
209
+ if (currentRun &&
210
+ runHasOnlyTextContent(currentRun) &&
211
+ runHasOnlyTextContent(child) &&
212
+ clonedRunFormattingKey(currentRun) === clonedRunFormattingKey(child)) {
213
+ for (const node of clonedRunContentChildren(child)) {
214
+ currentRun.appendChild(node);
215
+ }
216
+ consolidateAdjacentTextChildren(currentRun);
217
+ child.parentNode?.removeChild(child);
218
+ }
219
+ else {
220
+ currentRun = child;
221
+ consolidateAdjacentTextChildren(currentRun);
222
+ }
223
+ child = next;
224
+ }
225
+ }
226
+ function canonicalizeHyperlinkRunsForKey(root) {
227
+ const hyperlinks = Array.from(root.getElementsByTagNameNS(OOXML.W_NS, W.hyperlink));
228
+ if (root.namespaceURI === OOXML.W_NS && root.localName === W.hyperlink) {
229
+ hyperlinks.unshift(root);
230
+ }
231
+ for (const hyperlink of hyperlinks) {
232
+ mergeAdjacentRunsForKey(hyperlink);
233
+ }
234
+ }
235
+ /**
236
+ * The atomizer can reconstruct untouched hyperlink text as one run with
237
+ * multiple `w:t` children, while open-time `mergeRuns` leaves the original
238
+ * as adjacent runs inside `w:hyperlink`. Canonicalize that comparison-only
239
+ * shape so restore can still import the pristine original block.
240
+ */
241
+ function restoreKey(el) {
242
+ const clone = el.cloneNode(true);
243
+ canonicalizeHyperlinkRunsForKey(clone);
244
+ return serializer.serializeToString(clone);
245
+ }
246
+ /**
247
+ * Reconcile the element children of one container: LCS-matched (untouched)
248
+ * children of `cur` are replaced with the corresponding pristine `orig`
249
+ * child; unmatched (edited) children that pair 1:1 with a same-named
250
+ * recursable container across an LCS gap are descended into, so e.g. the
251
+ * untouched cells and paragraphs of an edited table still restore.
252
+ *
253
+ * `orig` and `norm` children are index-lockstep (norm is orig with
254
+ * normalization applied, which never adds/removes container children);
255
+ * a count mismatch abandons this subtree.
256
+ */
257
+ function reconcileChildren(orig, norm, cur, ownerDoc) {
258
+ const origChildren = childElements(orig);
259
+ const normChildren = childElements(norm);
260
+ const curChildren = childElements(cur);
261
+ if (origChildren.length !== normChildren.length)
262
+ return 0;
263
+ if (origChildren.length === 0 || curChildren.length === 0)
264
+ return 0;
265
+ const normKeys = normChildren.map(restoreKey);
266
+ const curKeys = curChildren.map(restoreKey);
267
+ const pairs = lcsPairs(normKeys, curKeys);
268
+ let restored = 0;
269
+ for (const [i, j] of pairs) {
270
+ const pristine = ownerDoc.importNode(origChildren[i], true);
271
+ cur.replaceChild(pristine, curChildren[j]);
272
+ restored++;
273
+ }
274
+ // Between consecutive LCS anchors, the leftovers on each side are the
275
+ // edited children. When they pair 1:1 in order and both sides are the
276
+ // same recursable container, descend — only serialization-equal
277
+ // descendants will restore, so a mispairing cannot corrupt content.
278
+ let prevI = -1;
279
+ let prevJ = -1;
280
+ for (const [ai, aj] of [...pairs, [normChildren.length, curChildren.length]]) {
281
+ const gapLen = ai - prevI - 1;
282
+ if (gapLen > 0 && gapLen === aj - prevJ - 1) {
283
+ for (let k = 1; k <= gapLen; k++) {
284
+ const normEl = normChildren[prevI + k];
285
+ const curEl = curChildren[prevJ + k];
286
+ if (sameQualifiedName(normEl, curEl) &&
287
+ normEl.namespaceURI === OOXML.W_NS &&
288
+ RECURSABLE_CONTAINER_LOCALS.has(normEl.localName)) {
289
+ restored += reconcileChildren(origChildren[prevI + k], normEl, curEl, ownerDoc);
290
+ }
291
+ }
292
+ }
293
+ prevI = ai;
294
+ prevJ = aj;
295
+ }
296
+ return restored;
297
+ }
298
+ /**
299
+ * Replace every block of `currentDoc` that is untouched — i.e.
300
+ * serialization-equal to the same block of the original document.xml after
301
+ * open-time normalization — with the pristine original block, descending
302
+ * into edited tables so their untouched rows/cells/paragraphs restore too.
303
+ *
304
+ * `currentDoc` must already have internal bookmarks removed (untouched
305
+ * blocks otherwise never match the bookmark-free reference). Returns the
306
+ * number of elements restored; 0 means the document is fully edited or the
307
+ * reference could not be aligned (output then matches today's full
308
+ * re-serialization, never anything worse).
309
+ */
310
+ export function restoreUntouchedBlocks(currentDoc, originalXmlText) {
311
+ const original = parseXml(originalXmlText);
312
+ const normRef = parseXml(originalXmlText);
313
+ // Mirror DocxDocument.normalize()'s document.xml steps, in order.
314
+ mergeRuns(normRef);
315
+ simplifyRedlines(normRef);
316
+ const originalBody = bodyElement(original);
317
+ const normRefBody = bodyElement(normRef);
318
+ const currentBody = bodyElement(currentDoc);
319
+ if (!originalBody || !normRefBody || !currentBody)
320
+ return 0;
321
+ return reconcileChildren(originalBody, normRefBody, currentBody, currentDoc);
322
+ }
323
+ //# sourceMappingURL=minimal_save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimal_save.js","sourceRoot":"","sources":["../../src/primitives/minimal_save.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,8 @@ export declare const W: {
53
53
  readonly abstractNumId: "abstractNumId";
54
54
  readonly lvlOverride: "lvlOverride";
55
55
  readonly startOverride: "startOverride";
56
+ readonly lvlJc: "lvlJc";
57
+ readonly multiLevelType: "multiLevelType";
56
58
  readonly tbl: "tbl";
57
59
  readonly tr: "tr";
58
60
  readonly tc: "tc";
@@ -60,14 +62,53 @@ export declare const W: {
60
62
  readonly tcPr: "tcPr";
61
63
  readonly trHeight: "trHeight";
62
64
  readonly tcMar: "tcMar";
65
+ readonly tblPr: "tblPr";
66
+ readonly tblGrid: "tblGrid";
67
+ readonly gridCol: "gridCol";
68
+ readonly tblW: "tblW";
69
+ readonly tblLayout: "tblLayout";
70
+ readonly tblBorders: "tblBorders";
71
+ readonly tcBorders: "tcBorders";
72
+ readonly tcW: "tcW";
73
+ readonly gridSpan: "gridSpan";
74
+ readonly vMerge: "vMerge";
75
+ readonly vAlign: "vAlign";
76
+ readonly shd: "shd";
77
+ readonly tblHeader: "tblHeader";
78
+ readonly insideH: "insideH";
79
+ readonly insideV: "insideV";
63
80
  readonly top: "top";
64
81
  readonly bottom: "bottom";
65
82
  readonly left: "left";
66
83
  readonly right: "right";
84
+ readonly end: "end";
67
85
  readonly val: "val";
68
86
  readonly hRule: "hRule";
69
87
  readonly w: "w";
70
88
  readonly type: "type";
89
+ readonly sectPr: "sectPr";
90
+ readonly pgSz: "pgSz";
91
+ readonly pgMar: "pgMar";
92
+ readonly pgNumType: "pgNumType";
93
+ readonly headerReference: "headerReference";
94
+ readonly footerReference: "footerReference";
95
+ readonly titlePg: "titlePg";
96
+ readonly hdr: "hdr";
97
+ readonly ftr: "ftr";
98
+ readonly settings: "settings";
99
+ readonly evenAndOddHeaders: "evenAndOddHeaders";
100
+ readonly docDefaults: "docDefaults";
101
+ readonly pPrDefault: "pPrDefault";
102
+ readonly rPrDefault: "rPrDefault";
103
+ readonly next: "next";
104
+ readonly qFormat: "qFormat";
105
+ readonly bCs: "bCs";
106
+ readonly iCs: "iCs";
107
+ readonly caps: "caps";
108
+ readonly smallCaps: "smallCaps";
109
+ readonly keepNext: "keepNext";
110
+ readonly pageBreakBefore: "pageBreakBefore";
111
+ readonly tabs: "tabs";
71
112
  readonly fldChar: "fldChar";
72
113
  readonly instrText: "instrText";
73
114
  readonly fldSimple: "fldSimple";
@@ -1 +1 @@
1
- {"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;;CAiBR,CAAC;AAEX,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GJ,CAAC"}
1
+ {"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;;CAiBR,CAAC;AAEX,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0JJ,CAAC"}
@@ -65,6 +65,8 @@ export const W = {
65
65
  abstractNumId: 'abstractNumId',
66
66
  lvlOverride: 'lvlOverride',
67
67
  startOverride: 'startOverride',
68
+ lvlJc: 'lvlJc',
69
+ multiLevelType: 'multiLevelType',
68
70
  // Tables + layout
69
71
  tbl: 'tbl',
70
72
  tr: 'tr',
@@ -73,14 +75,55 @@ export const W = {
73
75
  tcPr: 'tcPr',
74
76
  trHeight: 'trHeight',
75
77
  tcMar: 'tcMar',
78
+ tblPr: 'tblPr',
79
+ tblGrid: 'tblGrid',
80
+ gridCol: 'gridCol',
81
+ tblW: 'tblW',
82
+ tblLayout: 'tblLayout',
83
+ tblBorders: 'tblBorders',
84
+ tcBorders: 'tcBorders',
85
+ tcW: 'tcW',
86
+ gridSpan: 'gridSpan',
87
+ vMerge: 'vMerge',
88
+ vAlign: 'vAlign',
89
+ shd: 'shd',
90
+ tblHeader: 'tblHeader',
91
+ insideH: 'insideH',
92
+ insideV: 'insideV',
76
93
  top: 'top',
77
94
  bottom: 'bottom',
78
95
  left: 'left',
79
96
  right: 'right',
97
+ end: 'end',
80
98
  val: 'val',
81
99
  hRule: 'hRule',
82
100
  w: 'w',
83
101
  type: 'type',
102
+ // Sections + page setup (generation emitters)
103
+ sectPr: 'sectPr',
104
+ pgSz: 'pgSz',
105
+ pgMar: 'pgMar',
106
+ pgNumType: 'pgNumType',
107
+ headerReference: 'headerReference',
108
+ footerReference: 'footerReference',
109
+ titlePg: 'titlePg',
110
+ hdr: 'hdr',
111
+ ftr: 'ftr',
112
+ settings: 'settings',
113
+ evenAndOddHeaders: 'evenAndOddHeaders',
114
+ // Styles part + paragraph/run formatting (generation emitters)
115
+ docDefaults: 'docDefaults',
116
+ pPrDefault: 'pPrDefault',
117
+ rPrDefault: 'rPrDefault',
118
+ next: 'next',
119
+ qFormat: 'qFormat',
120
+ bCs: 'bCs',
121
+ iCs: 'iCs',
122
+ caps: 'caps',
123
+ smallCaps: 'smallCaps',
124
+ keepNext: 'keepNext',
125
+ pageBreakBefore: 'pageBreakBefore',
126
+ tabs: 'tabs',
84
127
  // Fields + special runs
85
128
  fldChar: 'fldChar',
86
129
  instrText: 'instrText',
@@ -1 +1 @@
1
- {"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,10 @@
6
6
  * - Unwrapping w:del elements and converting w:delText → w:t (deletions restored)
7
7
  * - Unwrapping w:moveFrom (keep at original position), removing w:moveTo and content
8
8
  * - Restoring original properties from *PrChange records
9
- * - Preserving cross-paragraph bookmark boundaries when removing inserted paragraphs
10
- * - Stripping paragraph-level revision markers and rsidDel attributes
9
+ * - Preserving cross-paragraph bookmark boundaries when resolving inserted paragraph marks
10
+ * - Stripping paragraph-level revision markers, merging a paragraph whose
11
+ * mark was a tracked insertion into the following paragraph
12
+ * - Stripping rsidDel attributes
11
13
  *
12
14
  * Operates on the W3C DOM (`@xmldom/xmldom`).
13
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reject_changes.d.ts","sourceRoot":"","sources":["../../src/primitives/reject_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAkKF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,mBAAmB,CAqJhE"}
1
+ {"version":3,"file":"reject_changes.d.ts","sourceRoot":"","sources":["../../src/primitives/reject_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAoTF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,mBAAmB,CA2JhE"}