@usejunior/docx-core 0.20.1 → 0.21.3
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.
- package/README.md +12 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/conformance-adapter.d.ts.map +1 -1
- package/dist/cli/conformance-adapter.js +0 -27
- package/dist/cli/conformance-adapter.js.map +1 -1
- package/dist/generation/compile.d.ts.map +1 -1
- package/dist/generation/compile.js +1 -3
- package/dist/generation/compile.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/integration/libreoffice-oracle.d.ts +3 -1
- package/dist/integration/libreoffice-oracle.d.ts.map +1 -1
- package/dist/integration/libreoffice-oracle.js +9 -3
- package/dist/integration/libreoffice-oracle.js.map +1 -1
- package/dist/primitives/accept_changes.d.ts +3 -4
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +165 -79
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/bookmarks.d.ts +7 -2
- package/dist/primitives/bookmarks.d.ts.map +1 -1
- package/dist/primitives/bookmarks.js +30 -6
- package/dist/primitives/bookmarks.js.map +1 -1
- package/dist/primitives/comments.d.ts +73 -4
- package/dist/primitives/comments.d.ts.map +1 -1
- package/dist/primitives/comments.js +266 -165
- package/dist/primitives/comments.js.map +1 -1
- package/dist/primitives/conformance.d.ts +42 -0
- package/dist/primitives/conformance.d.ts.map +1 -0
- package/dist/primitives/conformance.js +61 -0
- package/dist/primitives/conformance.js.map +1 -0
- package/dist/primitives/document.d.ts +98 -1
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +315 -22
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/errors.d.ts +3 -2
- package/dist/primitives/errors.d.ts.map +1 -1
- package/dist/primitives/errors.js +3 -1
- package/dist/primitives/errors.js.map +1 -1
- package/dist/primitives/extract_revisions.d.ts +23 -6
- package/dist/primitives/extract_revisions.d.ts.map +1 -1
- package/dist/primitives/extract_revisions.js +208 -38
- package/dist/primitives/extract_revisions.js.map +1 -1
- package/dist/primitives/footnotes.d.ts +36 -0
- package/dist/primitives/footnotes.d.ts.map +1 -1
- package/dist/primitives/footnotes.js +173 -75
- package/dist/primitives/footnotes.js.map +1 -1
- package/dist/primitives/index.d.ts +7 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +7 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/paragraph-index.d.ts +31 -0
- package/dist/primitives/paragraph-index.d.ts.map +1 -0
- package/dist/primitives/paragraph-index.js +140 -0
- package/dist/primitives/paragraph-index.js.map +1 -0
- package/dist/primitives/paragraph_merge_formatting.d.ts +24 -0
- package/dist/primitives/paragraph_merge_formatting.d.ts.map +1 -0
- package/dist/primitives/paragraph_merge_formatting.js +86 -0
- package/dist/primitives/paragraph_merge_formatting.js.map +1 -0
- package/dist/primitives/paragraph_structure.d.ts +19 -0
- package/dist/primitives/paragraph_structure.d.ts.map +1 -0
- package/dist/primitives/paragraph_structure.js +66 -0
- package/dist/primitives/paragraph_structure.js.map +1 -0
- package/dist/primitives/reject_changes.d.ts +3 -4
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +166 -79
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/relationships.d.ts +22 -0
- package/dist/primitives/relationships.d.ts.map +1 -1
- package/dist/primitives/relationships.js +87 -0
- package/dist/primitives/relationships.js.map +1 -1
- package/dist/primitives/revision-parts.d.ts +15 -0
- package/dist/primitives/revision-parts.d.ts.map +1 -1
- package/dist/primitives/revision-parts.js +33 -1
- package/dist/primitives/revision-parts.js.map +1 -1
- package/dist/primitives/sections.d.ts +2 -1
- package/dist/primitives/sections.d.ts.map +1 -1
- package/dist/primitives/sections.js +2 -2
- package/dist/primitives/sections.js.map +1 -1
- package/dist/primitives/styles.d.ts +1 -0
- package/dist/primitives/styles.d.ts.map +1 -1
- package/dist/primitives/styles.js +1 -0
- package/dist/primitives/styles.js.map +1 -1
- package/dist/primitives/table_cells.d.ts +49 -0
- package/dist/primitives/table_cells.d.ts.map +1 -0
- package/dist/primitives/table_cells.js +149 -0
- package/dist/primitives/table_cells.js.map +1 -0
- package/dist/primitives/table_columns.d.ts +50 -0
- package/dist/primitives/table_columns.d.ts.map +1 -0
- package/dist/primitives/table_columns.js +138 -0
- package/dist/primitives/table_columns.js.map +1 -0
- package/dist/primitives/table_edit_common.d.ts +39 -0
- package/dist/primitives/table_edit_common.d.ts.map +1 -0
- package/dist/primitives/table_edit_common.js +163 -0
- package/dist/primitives/table_edit_common.js.map +1 -0
- package/dist/primitives/table_occupancy.d.ts +39 -0
- package/dist/primitives/table_occupancy.d.ts.map +1 -0
- package/dist/primitives/table_occupancy.js +145 -0
- package/dist/primitives/table_occupancy.js.map +1 -0
- package/dist/primitives/table_rows.d.ts +56 -0
- package/dist/primitives/table_rows.d.ts.map +1 -0
- package/dist/primitives/table_rows.js +390 -0
- package/dist/primitives/table_rows.js.map +1 -0
- package/dist/primitives/text.d.ts +40 -1
- package/dist/primitives/text.d.ts.map +1 -1
- package/dist/primitives/text.js +309 -129
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +16 -2
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
- package/dist/primitives/track-changes-emitter.js +38 -13
- package/dist/primitives/track-changes-emitter.js.map +1 -1
- package/dist/primitives/zip.d.ts +22 -1
- package/dist/primitives/zip.d.ts.map +1 -1
- package/dist/primitives/zip.js +47 -8
- package/dist/primitives/zip.js.map +1 -1
- package/dist/shared/docx/DocxArchive.d.ts +6 -2
- package/dist/shared/docx/DocxArchive.d.ts.map +1 -1
- package/dist/shared/docx/DocxArchive.js +10 -4
- package/dist/shared/docx/DocxArchive.js.map +1 -1
- package/dist/shared/field-structure.d.ts +3 -0
- package/dist/shared/field-structure.d.ts.map +1 -1
- package/dist/shared/field-structure.js +7 -5
- package/dist/shared/field-structure.js.map +1 -1
- package/package.json +3 -4
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
* Operates on the W3C DOM (`@xmldom/xmldom`).
|
|
19
19
|
*/
|
|
20
20
|
import { OOXML } from './namespaces.js';
|
|
21
|
+
import { removeResolvedRowMarker, removeTableRowAndEmptyTable } from './table_rows.js';
|
|
22
|
+
import { RANGE_MARKUP_BLOCK_SIBLING_LOCALS, canSafelyRemoveEmptyParagraph } from './paragraph_structure.js';
|
|
23
|
+
import { retainLeadingParagraphFormatting, isEmptyParagraphFormattingRun, removeEmptyParagraphMarkProperties } from './paragraph_merge_formatting.js';
|
|
21
24
|
const W_NS = OOXML.W_NS;
|
|
22
25
|
const ACCEPT_ALL = () => true;
|
|
23
26
|
/** True iff `el` has an ancestor element with the given WordprocessingML local name. */
|
|
@@ -33,6 +36,33 @@ function hasWAncestor(el, localName) {
|
|
|
33
36
|
}
|
|
34
37
|
return false;
|
|
35
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Rename each `w:delInstrText` whose `w:del` wrapper was just unwrapped back to
|
|
41
|
+
* `w:instrText`, with the same selection rule as the `w:delText` → `w:t`
|
|
42
|
+
* rename. A deleted complex field (begin, instruction, end) comes back with
|
|
43
|
+
* its instruction: left as `w:delInstrText` outside a `w:del`, the restored
|
|
44
|
+
* field would be an empty shell with no instruction (issue #1082).
|
|
45
|
+
*
|
|
46
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.16.13
|
|
47
|
+
* @see https://github.com/UseJunior/safe-docx/issues/1082
|
|
48
|
+
*/
|
|
49
|
+
function restoreDeletedInstructionText(doc, root, selective) {
|
|
50
|
+
const deletedInstructions = collectByLocalName(root, 'delInstrText').filter((el) => !hasWAncestor(el, 'del') && (!selective || !hasWAncestor(el, 'moveFrom')));
|
|
51
|
+
for (const deleted of deletedInstructions) {
|
|
52
|
+
const parent = deleted.parentNode;
|
|
53
|
+
if (!parent)
|
|
54
|
+
continue;
|
|
55
|
+
const instr = doc.createElementNS(W_NS, 'w:instrText');
|
|
56
|
+
for (const child of Array.from(deleted.childNodes))
|
|
57
|
+
instr.appendChild(child);
|
|
58
|
+
const xmlSpace = deleted.getAttributeNS('http://www.w3.org/XML/1998/namespace', 'space')
|
|
59
|
+
?? deleted.getAttribute('xml:space');
|
|
60
|
+
if (xmlSpace) {
|
|
61
|
+
instr.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', xmlSpace);
|
|
62
|
+
}
|
|
63
|
+
parent.replaceChild(instr, deleted);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
36
66
|
// ── DOM helpers (internal) ──────────────────────────────────────────
|
|
37
67
|
function isW(node, localName) {
|
|
38
68
|
return (node.nodeType === 1 &&
|
|
@@ -68,10 +98,21 @@ function isRowPropertyRevisionMarker(el) {
|
|
|
68
98
|
const parent = el.parentNode;
|
|
69
99
|
return parent !== null && isW(parent, 'trPr');
|
|
70
100
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
101
|
+
function rejectSelectedRowRevisions(root, filter) {
|
|
102
|
+
let insertions = 0;
|
|
103
|
+
let deletions = 0;
|
|
104
|
+
for (const marker of collectByLocalName(root, 'ins').filter(filter).filter(isRowPropertyRevisionMarker)) {
|
|
105
|
+
const row = marker.parentNode?.parentNode;
|
|
106
|
+
if (row?.parentNode && isW(row, 'tr')) {
|
|
107
|
+
removeTableRowAndEmptyTable(root, row);
|
|
108
|
+
insertions++;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
for (const marker of collectByLocalName(root, 'del').filter(filter).filter(isRowPropertyRevisionMarker)) {
|
|
112
|
+
removeResolvedRowMarker(marker);
|
|
113
|
+
deletions++;
|
|
114
|
+
}
|
|
115
|
+
return { insertions, deletions };
|
|
75
116
|
}
|
|
76
117
|
function removeAllByLocalName(container, localName, filter = ACCEPT_ALL, exclude) {
|
|
77
118
|
const elements = collectByLocalName(container, localName).filter(filter);
|
|
@@ -130,22 +171,57 @@ const PR_CHANGE_LOCALS = [
|
|
|
130
171
|
'rPrChange', 'pPrChange', 'sectPrChange',
|
|
131
172
|
'tblPrChange', 'trPrChange', 'tcPrChange',
|
|
132
173
|
];
|
|
133
|
-
//
|
|
134
|
-
//
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
174
|
+
// EG_ParaRPrTrackChanges (wml.xsd): the paragraph-mark revision markers that
|
|
175
|
+
// lead a CT_ParaRPr, in schema order.
|
|
176
|
+
const PARA_MARK_REVISION_LOCALS = ['ins', 'del', 'moveFrom', 'moveTo'];
|
|
177
|
+
/** True iff `rPr` is a paragraph mark's run properties (w:pPr > w:rPr). */
|
|
178
|
+
function isParagraphMarkRunProperties(rPr) {
|
|
179
|
+
return rPr.parentNode !== null && isW(rPr.parentNode, 'pPr');
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Restore a paragraph mark's run properties from a rejected `w:rPrChange`
|
|
183
|
+
* snapshot without discarding the mark's own revision markers.
|
|
184
|
+
*
|
|
185
|
+
* CT_ParaRPr leads with the EG_ParaRPrTrackChanges markers (`w:ins`, `w:del`,
|
|
186
|
+
* `w:moveFrom`, `w:moveTo`) before the run-property base group. A marker
|
|
187
|
+
* records a revision to the paragraph BREAK and is independent of the mark's
|
|
188
|
+
* formatting history, so a selective reject of the formatting change alone
|
|
189
|
+
* must leave an unselected marker byte-untouched. Selected markers were
|
|
190
|
+
* already resolved by the earlier phases, so every marker still on the live
|
|
191
|
+
* element is a survivor to carry across. The CT_ParaRPrOriginal snapshot may
|
|
192
|
+
* itself carry a marker; the live element is the current record and wins that
|
|
193
|
+
* slot, and the result keeps the schema order. A snapshot-less change (the
|
|
194
|
+
* schema requires one) restores an empty base group but still keeps the
|
|
195
|
+
* survivors.
|
|
196
|
+
*
|
|
197
|
+
* Returns null when nothing remains to restore, so the caller removes the
|
|
198
|
+
* live element as before.
|
|
199
|
+
*
|
|
200
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.30
|
|
201
|
+
* @see https://github.com/UseJunior/safe-docx/issues/991
|
|
202
|
+
*/
|
|
203
|
+
function restoreParagraphMarkRunProperties(doc, live, snapshot) {
|
|
204
|
+
const restored = snapshot
|
|
205
|
+
? snapshot.cloneNode(true)
|
|
206
|
+
: doc.createElementNS(W_NS, 'w:rPr');
|
|
207
|
+
const markerOf = (el, name) => Array.from(el.childNodes).find((node) => isW(node, name));
|
|
208
|
+
const markers = [];
|
|
209
|
+
for (const name of PARA_MARK_REVISION_LOCALS) {
|
|
210
|
+
const survivor = markerOf(live, name);
|
|
211
|
+
const fromSnapshot = markerOf(restored, name);
|
|
212
|
+
if (fromSnapshot)
|
|
213
|
+
restored.removeChild(fromSnapshot);
|
|
214
|
+
const kept = survivor ? survivor.cloneNode(true) : fromSnapshot;
|
|
215
|
+
if (kept)
|
|
216
|
+
markers.push(kept);
|
|
217
|
+
}
|
|
218
|
+
if (!snapshot && markers.length === 0)
|
|
219
|
+
return null;
|
|
220
|
+
for (const marker of markers.reverse()) {
|
|
221
|
+
restored.insertBefore(marker, restored.firstChild);
|
|
222
|
+
}
|
|
223
|
+
return restored;
|
|
224
|
+
}
|
|
149
225
|
/**
|
|
150
226
|
* Find the next sibling paragraph a paragraph-mark revision can merge into,
|
|
151
227
|
* skipping block-level range/annotation markers. Returns null when the next
|
|
@@ -169,7 +245,7 @@ function findFollowingSiblingParagraph(p) {
|
|
|
169
245
|
return null;
|
|
170
246
|
}
|
|
171
247
|
/** True iff the paragraph still holds content beyond w:pPr and bare annotation markers. */
|
|
172
|
-
function paragraphHasContent(p) {
|
|
248
|
+
function paragraphHasContent(p, forFormatting = false) {
|
|
173
249
|
for (let i = 0; i < p.childNodes.length; i++) {
|
|
174
250
|
const child = p.childNodes[i];
|
|
175
251
|
if (child.nodeType !== 1)
|
|
@@ -177,53 +253,21 @@ function paragraphHasContent(p) {
|
|
|
177
253
|
if (isW(child, 'pPr'))
|
|
178
254
|
continue;
|
|
179
255
|
const el = child;
|
|
256
|
+
if (forFormatting && isEmptyParagraphFormattingRun(el))
|
|
257
|
+
continue;
|
|
180
258
|
if (el.namespaceURI === W_NS && RANGE_MARKUP_BLOCK_SIBLING_LOCALS.has(el.localName ?? ''))
|
|
181
259
|
continue;
|
|
182
260
|
return true;
|
|
183
261
|
}
|
|
184
262
|
return false;
|
|
185
263
|
}
|
|
186
|
-
/**
|
|
187
|
-
* True iff removing an emptied mark-revised paragraph keeps its parent
|
|
188
|
-
* structurally valid for Word: the parent must retain at least one block
|
|
189
|
-
* element, must not end on a w:tbl (a trailing table needs a following
|
|
190
|
-
* paragraph), and two tables must not become adjacent (Word merges
|
|
191
|
-
* back-to-back tables). w:sectPr is ignored — a trailing body sectPr is not a
|
|
192
|
-
* block element.
|
|
193
|
-
*/
|
|
194
|
-
function canSafelyRemoveEmptyParagraph(p) {
|
|
195
|
-
const blockSibling = (start, dir) => {
|
|
196
|
-
let sibling = start;
|
|
197
|
-
while (sibling) {
|
|
198
|
-
if (sibling.nodeType === 1) {
|
|
199
|
-
const el = sibling;
|
|
200
|
-
if ((el.namespaceURI === W_NS && RANGE_MARKUP_BLOCK_SIBLING_LOCALS.has(el.localName ?? '')) ||
|
|
201
|
-
isW(el, 'sectPr')) {
|
|
202
|
-
sibling = sibling[dir];
|
|
203
|
-
continue;
|
|
204
|
-
}
|
|
205
|
-
return el;
|
|
206
|
-
}
|
|
207
|
-
sibling = sibling[dir];
|
|
208
|
-
}
|
|
209
|
-
return null;
|
|
210
|
-
};
|
|
211
|
-
const prev = blockSibling(p.previousSibling, 'previousSibling');
|
|
212
|
-
const next = blockSibling(p.nextSibling, 'nextSibling');
|
|
213
|
-
if (!prev && !next)
|
|
214
|
-
return false;
|
|
215
|
-
if (prev && isW(prev, 'tbl') && !next)
|
|
216
|
-
return false;
|
|
217
|
-
if (prev && next && isW(prev, 'tbl') && isW(next, 'tbl'))
|
|
218
|
-
return false;
|
|
219
|
-
return true;
|
|
220
|
-
}
|
|
221
264
|
/**
|
|
222
265
|
* Resolve a paragraph whose paragraph MARK revision was applied (inserted mark
|
|
223
266
|
* rejected): the inserted paragraph break disappears, so the paragraph's
|
|
224
|
-
* surviving content merges into the FOLLOWING paragraph.
|
|
225
|
-
*
|
|
226
|
-
*
|
|
267
|
+
* surviving content merges into the FOLLOWING paragraph. Leading surviving
|
|
268
|
+
* content retains its base formatting. If only following content survives,
|
|
269
|
+
* following formatting wins; an all-empty rejected split retains the leading
|
|
270
|
+
* formatting. These choices are independently reader-characterized.
|
|
227
271
|
*
|
|
228
272
|
* The revision targets only the mark, never the paragraph's contents, so the
|
|
229
273
|
* contents must not be dropped wholesale (they disappear only via their own
|
|
@@ -241,11 +285,14 @@ function resolveParagraphMarkRevision(p) {
|
|
|
241
285
|
return;
|
|
242
286
|
const target = findFollowingSiblingParagraph(p);
|
|
243
287
|
if (!target) {
|
|
288
|
+
removeEmptyParagraphMarkProperties(p);
|
|
244
289
|
if (!paragraphHasContent(p) && canSafelyRemoveEmptyParagraph(p)) {
|
|
245
290
|
parent.removeChild(p);
|
|
246
291
|
}
|
|
247
292
|
return;
|
|
248
293
|
}
|
|
294
|
+
if (paragraphHasContent(p, true) || !paragraphHasContent(target, true))
|
|
295
|
+
retainLeadingParagraphFormatting(p, target);
|
|
249
296
|
// Insertion point: before the target's first non-pPr child (the merged
|
|
250
297
|
// content precedes the target's own content in document order).
|
|
251
298
|
let ref = null;
|
|
@@ -376,6 +423,8 @@ function relocateBookmarks(p, paragraphsToRemove) {
|
|
|
376
423
|
* Mutates the Document in place (same convention as acceptChanges).
|
|
377
424
|
*
|
|
378
425
|
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.21
|
|
426
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.12
|
|
427
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.17
|
|
379
428
|
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.22
|
|
380
429
|
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.25
|
|
381
430
|
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.26
|
|
@@ -400,9 +449,14 @@ export function rejectChanges(doc, opts) {
|
|
|
400
449
|
unresolvedRowRevisions: 0,
|
|
401
450
|
};
|
|
402
451
|
}
|
|
403
|
-
//
|
|
452
|
+
// Resolve row topology before paragraph-mark analysis, mirroring Word's
|
|
453
|
+
// accept/reject semantics for direct w:trPr row revision markers.
|
|
454
|
+
const rowRevisions = rejectSelectedRowRevisions(root, filter);
|
|
455
|
+
// Phase A — Identify inserted or moved-to paragraph marks.
|
|
404
456
|
const markInsertedParagraphs = new Set();
|
|
457
|
+
const removedMoveToBookmarkIds = new Set();
|
|
405
458
|
const allParagraphs = collectByLocalName(root, 'p');
|
|
459
|
+
const resolvedMarkProperties = allParagraphs.filter(p => ['ins', 'del', 'moveFrom', 'moveTo', 'rPrChange'].some(kind => paragraphHasParaMarker(p, kind, filter)));
|
|
406
460
|
for (const p of allParagraphs) {
|
|
407
461
|
// A paragraph-mark insertion (w:p > w:pPr > w:rPr > w:ins) means the
|
|
408
462
|
// paragraph BREAK was inserted — rejecting it merges the paragraph into the
|
|
@@ -413,9 +467,23 @@ export function rejectChanges(doc, opts) {
|
|
|
413
467
|
// inserted into a pre-existing paragraph, which Word/LibreOffice keep (empty) on
|
|
414
468
|
// reject. safe-docx's inserted paragraphs always carry the mark now, so the
|
|
415
469
|
// mark-based rule suffices and is Word-faithful. (Mirrors rejectAllChanges.)
|
|
416
|
-
if (paragraphHasParaMarker(p, 'ins', filter)) {
|
|
470
|
+
if (paragraphHasParaMarker(p, 'ins', filter) || paragraphHasParaMarker(p, 'moveTo', filter)) {
|
|
417
471
|
markInsertedParagraphs.add(p);
|
|
418
472
|
}
|
|
473
|
+
if (paragraphHasParaMarker(p, 'moveTo', filter)) {
|
|
474
|
+
const direct = Array.from(p.childNodes).filter((n) => n.nodeType === 1);
|
|
475
|
+
const substantive = direct.filter(n => !isW(n, 'pPr') && !isW(n, 'bookmarkStart') && !isW(n, 'bookmarkEnd'));
|
|
476
|
+
// A moved break does not imply that untracked or foreign content (and
|
|
477
|
+
// the bookmarks around it) disappears when the move is rejected.
|
|
478
|
+
if (substantive.length === 0 || !substantive.every(n => (isW(n, 'ins') || isW(n, 'moveTo')) && filter(n)))
|
|
479
|
+
continue;
|
|
480
|
+
const endIds = new Set(direct.filter(n => isW(n, 'bookmarkEnd')).map(n => n.getAttributeNS(W_NS, 'id')));
|
|
481
|
+
for (const start of direct.filter(n => isW(n, 'bookmarkStart'))) {
|
|
482
|
+
const id = start.getAttributeNS(W_NS, 'id');
|
|
483
|
+
if (id && endIds.has(id))
|
|
484
|
+
removedMoveToBookmarkIds.add(id);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
419
487
|
}
|
|
420
488
|
// Phase B — Preserve cross-paragraph bookmark boundaries. Direct-child
|
|
421
489
|
// bookmarks of a paragraph that will merge ride the Phase-G merge in
|
|
@@ -429,8 +497,8 @@ export function rejectChanges(doc, opts) {
|
|
|
429
497
|
// a selected insertion can have a live counterpart outside the wrapper so
|
|
430
498
|
// the combined redline visibly brackets inserted text. Rejecting the
|
|
431
499
|
// insertion must remove that revised-side counterpart as well.
|
|
432
|
-
const insertedBookmarkIds = new Set();
|
|
433
|
-
for (const insertion of collectByLocalName(root, 'ins').filter(filter)) {
|
|
500
|
+
const insertedBookmarkIds = new Set(removedMoveToBookmarkIds);
|
|
501
|
+
for (const insertion of [...collectByLocalName(root, 'ins'), ...collectByLocalName(root, 'moveTo')].filter(filter)) {
|
|
434
502
|
for (const localName of ['bookmarkStart', 'bookmarkEnd']) {
|
|
435
503
|
for (const boundary of collectByLocalName(insertion, localName)) {
|
|
436
504
|
const id = boundary.getAttributeNS(W_NS, 'id') ?? boundary.getAttribute('w:id');
|
|
@@ -460,23 +528,14 @@ export function rejectChanges(doc, opts) {
|
|
|
460
528
|
}
|
|
461
529
|
}
|
|
462
530
|
// Phase C — Remove insertions and move destinations
|
|
463
|
-
|
|
464
|
-
// whole `w:tr`, which this engine does not implement (conformance-adapter.ts
|
|
465
|
-
// already classifies the combination as unsupported). Sweeping it as a content
|
|
466
|
-
// insertion would strip the marker and keep the row — silent divergence with no
|
|
467
|
-
// residual record. Preserve it and report it instead (#845).
|
|
468
|
-
//
|
|
469
|
-
// The mirror direction needs no guard: rejecting a `w:trPr > w:del` correctly
|
|
470
|
-
// keeps the row and drops the marker, which Phase D's unwrap already does.
|
|
471
|
-
const unresolvedRowRevisions = countUnresolvedRowRevisions(root, 'ins', filter);
|
|
472
|
-
const insertionsRemoved = removeAllByLocalName(root, 'ins', filter, isRowPropertyRevisionMarker);
|
|
531
|
+
const insertionsRemoved = rowRevisions.insertions + removeAllByLocalName(root, 'ins', filter, isRowPropertyRevisionMarker);
|
|
473
532
|
const moveToRemoved = removeAllByLocalName(root, 'moveTo', filter);
|
|
474
533
|
removeAllByLocalName(root, 'moveToRangeStart', filter);
|
|
475
534
|
removeAllByLocalName(root, 'moveToRangeEnd', filter);
|
|
476
535
|
removeAllByLocalName(root, 'moveFromRangeStart', filter);
|
|
477
536
|
removeAllByLocalName(root, 'moveFromRangeEnd', filter);
|
|
478
537
|
// Phase D — Unwrap deletions and convert w:delText → w:t
|
|
479
|
-
const deletionsRestored = unwrapAllByLocalName(root, 'del', filter);
|
|
538
|
+
const deletionsRestored = rowRevisions.deletions + unwrapAllByLocalName(root, 'del', filter);
|
|
480
539
|
// Rename w:delText → w:t so getParagraphText() sees the restored text — but
|
|
481
540
|
// only for delTexts whose w:del wrapper was just unwrapped (no surviving w:del
|
|
482
541
|
// ancestor). In selective mode a foreign (non-target) revision is left intact,
|
|
@@ -501,6 +560,7 @@ export function rejectChanges(doc, opts) {
|
|
|
501
560
|
}
|
|
502
561
|
parent.replaceChild(t, dt);
|
|
503
562
|
}
|
|
563
|
+
restoreDeletedInstructionText(doc, root, selective);
|
|
504
564
|
// Phase E — Unwrap move sources (keep content at original position)
|
|
505
565
|
const moveFromUnwrapped = unwrapAllByLocalName(root, 'moveFrom', filter);
|
|
506
566
|
// Phase F — Restore original properties from *PrChange records
|
|
@@ -531,18 +591,43 @@ export function rejectChanges(doc, opts) {
|
|
|
531
591
|
break;
|
|
532
592
|
}
|
|
533
593
|
}
|
|
594
|
+
// A paragraph mark's w:rPr may carry BOTH a break revision marker and a
|
|
595
|
+
// w:rPrChange. Restoring the snapshot wholesale would destroy any
|
|
596
|
+
// surviving FOREIGN marker that a selective reject promised to leave
|
|
597
|
+
// byte-untouched (the paragraph-mark counterpart of the trPrChange and
|
|
598
|
+
// sectPrChange cases below).
|
|
599
|
+
if (localName === 'rPrChange' && isParagraphMarkRunProperties(parentProp)) {
|
|
600
|
+
const restored = restoreParagraphMarkRunProperties(doc, parentProp, originalProps);
|
|
601
|
+
if (restored)
|
|
602
|
+
grandParent.replaceChild(restored, parentProp);
|
|
603
|
+
else
|
|
604
|
+
grandParent.removeChild(parentProp);
|
|
605
|
+
propertyChangesReverted++;
|
|
606
|
+
continue;
|
|
607
|
+
}
|
|
534
608
|
if (originalProps) {
|
|
535
609
|
// Replace the current property element with the original
|
|
536
610
|
const restored = originalProps.cloneNode(true);
|
|
611
|
+
// CT_PPrChange snapshots carry only CT_PPrBase. Paragraph-mark
|
|
612
|
+
// formatting/history and section topology are separate live children;
|
|
613
|
+
// restoring base properties must not discard either of them.
|
|
614
|
+
if (localName === 'pPrChange') {
|
|
615
|
+
for (const child of Array.from(parentProp.childNodes)) {
|
|
616
|
+
if (isW(child, 'rPr') || isW(child, 'sectPr')) {
|
|
617
|
+
// Avoid duplicating extensions from legacy, non-base snapshots.
|
|
618
|
+
if (!Array.from(restored.childNodes).some(node => isW(node, child.localName))) {
|
|
619
|
+
restored.appendChild(child.cloneNode(true));
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}
|
|
537
624
|
// CT_SectPrChange carries CT_SectPrBase, which intentionally excludes
|
|
538
625
|
// header/footer references. Those live bindings are not part of the
|
|
539
626
|
// page-setup property revision and must survive rejection.
|
|
540
627
|
// A `w:trPr` may carry BOTH a row-level revision marker and a
|
|
541
628
|
// `w:trPrChange`. Restoring the snapshot replaces the whole `w:trPr`,
|
|
542
|
-
// which would silently destroy any surviving marker
|
|
543
|
-
//
|
|
544
|
-
// `unresolvedRowRevisions` disagree with the document) and any FOREIGN
|
|
545
|
-
// marker a selective reject promised to leave byte-untouched.
|
|
629
|
+
// which would silently destroy any surviving FOREIGN marker that a
|
|
630
|
+
// selective reject promised to leave byte-untouched.
|
|
546
631
|
//
|
|
547
632
|
// `w:trPrChange` carries CT_TrPrBase, which has no row-revision
|
|
548
633
|
// children of its own, so transplanting the survivors cannot collide
|
|
@@ -605,6 +690,8 @@ export function rejectChanges(doc, opts) {
|
|
|
605
690
|
for (const p of markInsertedParagraphs) {
|
|
606
691
|
resolveParagraphMarkRevision(p);
|
|
607
692
|
}
|
|
693
|
+
for (const p of resolvedMarkProperties)
|
|
694
|
+
removeEmptyParagraphMarkProperties(p);
|
|
608
695
|
// Strip w:rsidDel attributes on remaining elements. Skipped in selective mode
|
|
609
696
|
// so a targeted reject leaves foreign elements byte-untouched (#125).
|
|
610
697
|
if (!selective) {
|
|
@@ -624,7 +711,7 @@ export function rejectChanges(doc, opts) {
|
|
|
624
711
|
deletionsRestored,
|
|
625
712
|
movesReverted: moveFromUnwrapped + moveToRemoved,
|
|
626
713
|
propertyChangesReverted,
|
|
627
|
-
unresolvedRowRevisions,
|
|
714
|
+
unresolvedRowRevisions: 0,
|
|
628
715
|
};
|
|
629
716
|
}
|
|
630
717
|
//# sourceMappingURL=reject_changes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reject_changes.js","sourceRoot":"","sources":["../../src/primitives/reject_changes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reject_changes.js","sourceRoot":"","sources":["../../src/primitives/reject_changes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
+
import type { DocxZip } from './zip.js';
|
|
1
2
|
export type RelsMap = Map<string, string>;
|
|
3
|
+
export interface RelationshipEntry {
|
|
4
|
+
id: string;
|
|
5
|
+
type: string | null;
|
|
6
|
+
target: string | null;
|
|
7
|
+
targetMode: string | null;
|
|
8
|
+
}
|
|
9
|
+
/** Parse every declared relationship keyed by its part-local identifier. */
|
|
10
|
+
export declare function parseRelationshipEntries(relsDoc: Document | null): Map<string, RelationshipEntry>;
|
|
11
|
+
/** Return the OPC Relationships-part path owned by one source part. */
|
|
12
|
+
export declare function relationshipPartPath(sourcePartPath: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Ensure external hyperlink relationships owned by a source part and return
|
|
15
|
+
* the destination-to-rId mapping used to emit that part's `w:hyperlink`s.
|
|
16
|
+
* Existing relationships of every type reserve their identifiers; repeated
|
|
17
|
+
* destinations reuse one external hyperlink relationship deterministically.
|
|
18
|
+
*
|
|
19
|
+
* @conformance ECMA-376 edition 5, Part 2 § 6.5.2.3
|
|
20
|
+
* @conformance ECMA-376 edition 5, Part 2 § 6.5.3.4
|
|
21
|
+
* @see https://github.com/UseJunior/safe-docx/issues/956
|
|
22
|
+
*/
|
|
23
|
+
export declare function ensureExternalHyperlinkRelationships(zip: DocxZip, sourcePartPath: string, destinations: Iterable<string>): Promise<Map<string, string>>;
|
|
2
24
|
/**
|
|
3
25
|
* Parse a document.xml.rels DOM and return a Map<rId, targetUrl> for external hyperlinks only.
|
|
4
26
|
* Returns an empty map when the rels document is null (e.g. file missing from the DOCX archive).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/primitives/relationships.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/primitives/relationships.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAgBD,4EAA4E;AAC5E,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,QAAQ,GAAG,IAAI,GACvB,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAgBhC;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED;;;;;;;;;GASG;AACH,wBAAsB,oCAAoC,CACxD,GAAG,EAAE,OAAO,EACZ,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4C9B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAiBnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAgB1E;AAED,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,QAAQ,GAAG,IAAI,GACvB,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAahC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CASzE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Parser for word/_rels/document.xml.rels — extracts external hyperlink relationships.
|
|
2
2
|
import { OOXML } from './namespaces.js';
|
|
3
|
+
import { parseXml, serializeXml } from './xml.js';
|
|
3
4
|
/** OPC package-relationships namespace (parts almost always use it unprefixed). */
|
|
4
5
|
const OPC_RELATIONSHIPS_NS = 'http://schemas.openxmlformats.org/package/2006/relationships';
|
|
5
6
|
/**
|
|
@@ -11,6 +12,92 @@ const OPC_RELATIONSHIPS_NS = 'http://schemas.openxmlformats.org/package/2006/rel
|
|
|
11
12
|
function relationshipElements(relsDoc) {
|
|
12
13
|
return relsDoc.getElementsByTagNameNS(OPC_RELATIONSHIPS_NS, 'Relationship');
|
|
13
14
|
}
|
|
15
|
+
/** Parse every declared relationship keyed by its part-local identifier. */
|
|
16
|
+
export function parseRelationshipEntries(relsDoc) {
|
|
17
|
+
const entries = new Map();
|
|
18
|
+
if (!relsDoc)
|
|
19
|
+
return entries;
|
|
20
|
+
const relationships = relationshipElements(relsDoc);
|
|
21
|
+
for (let i = 0; i < relationships.length; i++) {
|
|
22
|
+
const relationship = relationships.item(i);
|
|
23
|
+
const id = relationship.getAttribute('Id');
|
|
24
|
+
if (!id)
|
|
25
|
+
continue;
|
|
26
|
+
entries.set(id, {
|
|
27
|
+
id,
|
|
28
|
+
type: relationship.getAttribute('Type'),
|
|
29
|
+
target: relationship.getAttribute('Target'),
|
|
30
|
+
targetMode: relationship.getAttribute('TargetMode'),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return entries;
|
|
34
|
+
}
|
|
35
|
+
/** Return the OPC Relationships-part path owned by one source part. */
|
|
36
|
+
export function relationshipPartPath(sourcePartPath) {
|
|
37
|
+
const separator = sourcePartPath.lastIndexOf('/');
|
|
38
|
+
const directory = separator < 0 ? '' : sourcePartPath.slice(0, separator + 1);
|
|
39
|
+
const fileName = separator < 0 ? sourcePartPath : sourcePartPath.slice(separator + 1);
|
|
40
|
+
return `${directory}_rels/${fileName}.rels`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Ensure external hyperlink relationships owned by a source part and return
|
|
44
|
+
* the destination-to-rId mapping used to emit that part's `w:hyperlink`s.
|
|
45
|
+
* Existing relationships of every type reserve their identifiers; repeated
|
|
46
|
+
* destinations reuse one external hyperlink relationship deterministically.
|
|
47
|
+
*
|
|
48
|
+
* @conformance ECMA-376 edition 5, Part 2 § 6.5.2.3
|
|
49
|
+
* @conformance ECMA-376 edition 5, Part 2 § 6.5.3.4
|
|
50
|
+
* @see https://github.com/UseJunior/safe-docx/issues/956
|
|
51
|
+
*/
|
|
52
|
+
export async function ensureExternalHyperlinkRelationships(zip, sourcePartPath, destinations) {
|
|
53
|
+
const orderedDestinations = [...new Set(destinations)];
|
|
54
|
+
const result = new Map();
|
|
55
|
+
if (orderedDestinations.length === 0)
|
|
56
|
+
return result;
|
|
57
|
+
if (orderedDestinations.some((destination) => destination.length === 0)) {
|
|
58
|
+
throw new Error('External hyperlink destinations must be non-empty');
|
|
59
|
+
}
|
|
60
|
+
const relsPath = relationshipPartPath(sourcePartPath);
|
|
61
|
+
const existingXml = await zip.readTextOrNull(relsPath);
|
|
62
|
+
const relsDoc = parseXml(existingXml ??
|
|
63
|
+
`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
|
|
64
|
+
`<Relationships xmlns="${OPC_RELATIONSHIPS_NS}"/>`);
|
|
65
|
+
const root = relsDoc.documentElement;
|
|
66
|
+
const relationships = Array.from(relationshipElements(relsDoc));
|
|
67
|
+
const usedIds = new Set();
|
|
68
|
+
for (const relationship of relationships) {
|
|
69
|
+
const id = relationship.getAttribute('Id');
|
|
70
|
+
if (id)
|
|
71
|
+
usedIds.add(id);
|
|
72
|
+
if (relationship.getAttribute('Type') !== OOXML.HYPERLINK_REL_TYPE
|
|
73
|
+
|| relationship.getAttribute('TargetMode') !== 'External')
|
|
74
|
+
continue;
|
|
75
|
+
const target = relationship.getAttribute('Target');
|
|
76
|
+
if (id && target && !result.has(target))
|
|
77
|
+
result.set(target, id);
|
|
78
|
+
}
|
|
79
|
+
let changed = false;
|
|
80
|
+
let candidate = 1;
|
|
81
|
+
for (const destination of orderedDestinations) {
|
|
82
|
+
if (result.has(destination))
|
|
83
|
+
continue;
|
|
84
|
+
while (usedIds.has(`rId${candidate}`))
|
|
85
|
+
candidate++;
|
|
86
|
+
const id = `rId${candidate++}`;
|
|
87
|
+
usedIds.add(id);
|
|
88
|
+
const relationship = relsDoc.createElementNS(OPC_RELATIONSHIPS_NS, 'Relationship');
|
|
89
|
+
relationship.setAttribute('Id', id);
|
|
90
|
+
relationship.setAttribute('Type', OOXML.HYPERLINK_REL_TYPE);
|
|
91
|
+
relationship.setAttribute('Target', destination);
|
|
92
|
+
relationship.setAttribute('TargetMode', 'External');
|
|
93
|
+
root.appendChild(relationship);
|
|
94
|
+
result.set(destination, id);
|
|
95
|
+
changed = true;
|
|
96
|
+
}
|
|
97
|
+
if (changed || existingXml === null)
|
|
98
|
+
zip.writeText(relsPath, serializeXml(relsDoc));
|
|
99
|
+
return new Map(orderedDestinations.map((destination) => [destination, result.get(destination)]));
|
|
100
|
+
}
|
|
14
101
|
/**
|
|
15
102
|
* Parse a document.xml.rels DOM and return a Map<rId, targetUrl> for external hyperlinks only.
|
|
16
103
|
* Returns an empty map when the rels document is null (e.g. file missing from the DOCX archive).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/primitives/relationships.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/primitives/relationships.ts"],"names":[],"mappings":"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"}
|