@usejunior/docx-core 0.18.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/core-types.d.ts +1 -139
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +1 -3
- package/dist/core-types.js.map +1 -1
- package/dist/generation/emit/borders.d.ts +14 -0
- package/dist/generation/emit/borders.d.ts.map +1 -0
- package/dist/generation/emit/borders.js +45 -0
- package/dist/generation/emit/borders.js.map +1 -0
- package/dist/generation/emit/properties.d.ts +1 -1
- package/dist/generation/emit/properties.d.ts.map +1 -1
- package/dist/generation/emit/properties.js +4 -0
- package/dist/generation/emit/properties.js.map +1 -1
- package/dist/generation/emit/table.d.ts.map +1 -1
- package/dist/generation/emit/table.js +3 -31
- package/dist/generation/emit/table.js.map +1 -1
- package/dist/generation/index.d.ts +1 -1
- package/dist/generation/index.d.ts.map +1 -1
- package/dist/generation/types.d.ts +9 -0
- package/dist/generation/types.d.ts.map +1 -1
- package/dist/generation/types.js.map +1 -1
- package/dist/generation/validate-spec.d.ts.map +1 -1
- package/dist/generation/validate-spec.js +2 -0
- package/dist/generation/validate-spec.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/generation-probes.d.ts +36 -2
- package/dist/integration/generation-probes.d.ts.map +1 -1
- package/dist/integration/generation-probes.js +137 -15
- package/dist/integration/generation-probes.js.map +1 -1
- package/dist/integration/libreoffice-oracle.js +1 -1
- package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -1
- package/dist/integration/synthetic-docx-fixture.js +37 -20
- package/dist/integration/synthetic-docx-fixture.js.map +1 -1
- package/dist/primitives/accept_ai_edits.js +14 -2
- package/dist/primitives/accept_ai_edits.js.map +1 -1
- package/dist/primitives/accept_changes.d.ts +7 -0
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +92 -4
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/bookmarks.d.ts +1 -0
- package/dist/primitives/bookmarks.d.ts.map +1 -1
- package/dist/primitives/bookmarks.js +1 -1
- package/dist/primitives/bookmarks.js.map +1 -1
- package/dist/primitives/comments.d.ts +31 -4
- package/dist/primitives/comments.d.ts.map +1 -1
- package/dist/primitives/comments.js +111 -12
- package/dist/primitives/comments.js.map +1 -1
- package/dist/primitives/document.d.ts +47 -1
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +198 -13
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/document_view-headings.d.ts +3 -1
- package/dist/primitives/document_view-headings.d.ts.map +1 -1
- package/dist/primitives/document_view-headings.js +5 -5
- package/dist/primitives/document_view-headings.js.map +1 -1
- package/dist/primitives/document_view.d.ts +2 -0
- package/dist/primitives/document_view.d.ts.map +1 -1
- package/dist/primitives/document_view.js +18 -4
- package/dist/primitives/document_view.js.map +1 -1
- package/dist/primitives/field_evaluation.d.ts +70 -0
- package/dist/primitives/field_evaluation.d.ts.map +1 -0
- package/dist/primitives/field_evaluation.js +462 -0
- package/dist/primitives/field_evaluation.js.map +1 -0
- package/dist/primitives/footnotes.d.ts +17 -3
- package/dist/primitives/footnotes.d.ts.map +1 -1
- package/dist/primitives/footnotes.js +64 -17
- package/dist/primitives/footnotes.js.map +1 -1
- package/dist/primitives/formatting_tags.js +2 -2
- package/dist/primitives/formatting_tags.js.map +1 -1
- package/dist/primitives/index.d.ts +8 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +8 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/merge_runs.d.ts +3 -1
- package/dist/primitives/merge_runs.d.ts.map +1 -1
- package/dist/primitives/merge_runs.js +12 -2
- package/dist/primitives/merge_runs.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +12 -2
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +13 -2
- package/dist/primitives/namespaces.js.map +1 -1
- package/dist/primitives/note_conversion.d.ts +11 -0
- package/dist/primitives/note_conversion.d.ts.map +1 -0
- package/dist/primitives/note_conversion.js +12 -0
- package/dist/primitives/note_conversion.js.map +1 -0
- package/dist/primitives/opc-target.d.ts +24 -0
- package/dist/primitives/opc-target.d.ts.map +1 -0
- package/dist/primitives/opc-target.js +99 -0
- package/dist/primitives/opc-target.js.map +1 -0
- package/dist/primitives/paragraph_numbering.d.ts +40 -0
- package/dist/primitives/paragraph_numbering.d.ts.map +1 -0
- package/dist/primitives/paragraph_numbering.js +198 -0
- package/dist/primitives/paragraph_numbering.js.map +1 -0
- package/dist/primitives/reject_changes.d.ts +7 -0
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +133 -10
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/sectPrAudit.d.ts +18 -1
- package/dist/primitives/sectPrAudit.d.ts.map +1 -1
- package/dist/primitives/sectPrAudit.js +120 -34
- package/dist/primitives/sectPrAudit.js.map +1 -1
- package/dist/primitives/sections.d.ts +134 -0
- package/dist/primitives/sections.d.ts.map +1 -0
- package/dist/primitives/sections.js +644 -0
- package/dist/primitives/sections.js.map +1 -0
- package/dist/primitives/serialize_html.d.ts.map +1 -1
- package/dist/primitives/serialize_html.js +18 -7
- package/dist/primitives/serialize_html.js.map +1 -1
- package/dist/primitives/styles.d.ts +60 -0
- package/dist/primitives/styles.d.ts.map +1 -1
- package/dist/primitives/styles.js +206 -25
- package/dist/primitives/styles.js.map +1 -1
- package/dist/primitives/symbol_run_content.d.ts +42 -0
- package/dist/primitives/symbol_run_content.d.ts.map +1 -0
- package/dist/primitives/symbol_run_content.js +79 -0
- package/dist/primitives/symbol_run_content.js.map +1 -0
- package/dist/primitives/text.d.ts +29 -0
- package/dist/primitives/text.d.ts.map +1 -1
- package/dist/primitives/text.js +354 -44
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +9 -0
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
- package/dist/primitives/track-changes-emitter.js +40 -2
- package/dist/primitives/track-changes-emitter.js.map +1 -1
- package/dist/primitives/validate_document.d.ts.map +1 -1
- package/dist/primitives/validate_document.js +22 -1
- package/dist/primitives/validate_document.js.map +1 -1
- package/dist/shared/docx/DocxArchive.d.ts.map +1 -1
- package/dist/shared/docx/DocxArchive.js +7 -0
- package/dist/shared/docx/DocxArchive.js.map +1 -1
- package/dist/shared/field-semantics.d.ts +26 -0
- package/dist/shared/field-semantics.d.ts.map +1 -0
- package/dist/shared/field-semantics.js +232 -0
- package/dist/shared/field-semantics.js.map +1 -0
- package/dist/shared/field-structure.d.ts +14 -0
- package/dist/shared/field-structure.d.ts.map +1 -1
- package/dist/shared/field-structure.js +98 -7
- package/dist/shared/field-structure.js.map +1 -1
- package/package.json +3 -5
|
@@ -51,10 +51,34 @@ function getDepth(node) {
|
|
|
51
51
|
function collectByLocalName(container, localName) {
|
|
52
52
|
return Array.from(container.getElementsByTagNameNS(W_NS, localName));
|
|
53
53
|
}
|
|
54
|
-
|
|
54
|
+
/**
|
|
55
|
+
* True iff this element is a row-level revision marker — a `w:ins`/`w:del`
|
|
56
|
+
* whose direct parent is `w:trPr`.
|
|
57
|
+
*
|
|
58
|
+
* These describe the ROW rather than wrapping a span of content:
|
|
59
|
+
* `w:tr > w:trPr > w:ins` marks the row itself as inserted and
|
|
60
|
+
* `w:tr > w:trPr > w:del` marks it as deleted. A sweep that matches on local
|
|
61
|
+
* name alone cannot tell them apart from the content wrappers, and removing one
|
|
62
|
+
* strips the `w:id`/`w:author`/`w:date` evidence while leaving the `w:tr` it
|
|
63
|
+
* described in the document.
|
|
64
|
+
*
|
|
65
|
+
* @see https://github.com/UseJunior/safe-docx/issues/845
|
|
66
|
+
*/
|
|
67
|
+
function isRowPropertyRevisionMarker(el) {
|
|
68
|
+
const parent = el.parentNode;
|
|
69
|
+
return parent !== null && isW(parent, 'trPr');
|
|
70
|
+
}
|
|
71
|
+
/** Row-level markers the filter selects, which this engine cannot resolve. */
|
|
72
|
+
function countUnresolvedRowRevisions(container, localName, filter) {
|
|
73
|
+
return collectByLocalName(container, localName).filter(filter).filter(isRowPropertyRevisionMarker)
|
|
74
|
+
.length;
|
|
75
|
+
}
|
|
76
|
+
function removeAllByLocalName(container, localName, filter = ACCEPT_ALL, exclude) {
|
|
55
77
|
const elements = collectByLocalName(container, localName).filter(filter);
|
|
56
78
|
let count = 0;
|
|
57
79
|
for (const el of elements) {
|
|
80
|
+
if (exclude?.(el))
|
|
81
|
+
continue;
|
|
58
82
|
if (el.parentNode) {
|
|
59
83
|
el.parentNode.removeChild(el);
|
|
60
84
|
count++;
|
|
@@ -292,13 +316,22 @@ function relocateBookmarks(p, paragraphsToRemove) {
|
|
|
292
316
|
}
|
|
293
317
|
}
|
|
294
318
|
}
|
|
295
|
-
// Also check sibling bookmarks
|
|
319
|
+
// Also check sibling bookmarks that actually ENVELOP this paragraph
|
|
320
|
+
// (sibling-style: <bookmarkStart/><p/><bookmarkEnd/>). Merely moving every
|
|
321
|
+
// consecutive bookmark beside the paragraph corrupts adjacent, unrelated
|
|
322
|
+
// Safe DOCX paragraph anchors—for example, a deleted source paragraph may
|
|
323
|
+
// leave its empty start/end pair immediately after an inserted paragraph.
|
|
324
|
+
// A sibling bookmark belongs to this paragraph only when the start on the
|
|
325
|
+
// left and end on the right share the same w:id.
|
|
326
|
+
const precedingStarts = new Map();
|
|
296
327
|
let prev = p.previousSibling;
|
|
297
328
|
while (prev) {
|
|
298
329
|
if (prev.nodeType === 1) {
|
|
299
330
|
const el = prev;
|
|
300
|
-
if (isW(el, 'bookmarkStart')
|
|
301
|
-
|
|
331
|
+
if (isW(el, 'bookmarkStart')) {
|
|
332
|
+
const id = el.getAttributeNS(W_NS, 'id') ?? el.getAttribute('w:id');
|
|
333
|
+
if (id !== null)
|
|
334
|
+
precedingStarts.set(id, el);
|
|
302
335
|
prev = prev.previousSibling;
|
|
303
336
|
continue;
|
|
304
337
|
}
|
|
@@ -306,12 +339,15 @@ function relocateBookmarks(p, paragraphsToRemove) {
|
|
|
306
339
|
}
|
|
307
340
|
prev = prev.previousSibling;
|
|
308
341
|
}
|
|
342
|
+
const followingEnds = new Map();
|
|
309
343
|
let next = p.nextSibling;
|
|
310
344
|
while (next) {
|
|
311
345
|
if (next.nodeType === 1) {
|
|
312
346
|
const el = next;
|
|
313
|
-
if (isW(el, '
|
|
314
|
-
|
|
347
|
+
if (isW(el, 'bookmarkEnd')) {
|
|
348
|
+
const id = el.getAttributeNS(W_NS, 'id') ?? el.getAttribute('w:id');
|
|
349
|
+
if (id !== null)
|
|
350
|
+
followingEnds.set(id, el);
|
|
315
351
|
next = next.nextSibling;
|
|
316
352
|
continue;
|
|
317
353
|
}
|
|
@@ -319,12 +355,17 @@ function relocateBookmarks(p, paragraphsToRemove) {
|
|
|
319
355
|
}
|
|
320
356
|
next = next.nextSibling;
|
|
321
357
|
}
|
|
358
|
+
for (const [id, start] of precedingStarts) {
|
|
359
|
+
const end = followingEnds.get(id);
|
|
360
|
+
if (end)
|
|
361
|
+
toMove.push(start, end);
|
|
362
|
+
}
|
|
363
|
+
const firstNonPPr = Array.from(target.childNodes).find((n) => !(n.nodeType === 1 && isW(n, 'pPr'))) ?? null;
|
|
322
364
|
for (const bm of toMove) {
|
|
323
365
|
// Insert at the beginning of the target paragraph (after pPr if present)
|
|
324
|
-
const firstNonPPr = Array.from(target.childNodes).find((n) => !(n.nodeType === 1 && isW(n, 'pPr')));
|
|
325
366
|
if (bm.parentNode)
|
|
326
367
|
bm.parentNode.removeChild(bm);
|
|
327
|
-
target.insertBefore(bm, firstNonPPr
|
|
368
|
+
target.insertBefore(bm, firstNonPPr);
|
|
328
369
|
}
|
|
329
370
|
}
|
|
330
371
|
// ── Public API ──────────────────────────────────────────────────────
|
|
@@ -351,7 +392,13 @@ export function rejectChanges(doc, opts) {
|
|
|
351
392
|
const selective = filter !== ACCEPT_ALL;
|
|
352
393
|
const root = doc.getElementsByTagNameNS(W_NS, 'body').item(0) ?? doc.documentElement;
|
|
353
394
|
if (!root) {
|
|
354
|
-
return {
|
|
395
|
+
return {
|
|
396
|
+
insertionsRemoved: 0,
|
|
397
|
+
deletionsRestored: 0,
|
|
398
|
+
movesReverted: 0,
|
|
399
|
+
propertyChangesReverted: 0,
|
|
400
|
+
unresolvedRowRevisions: 0,
|
|
401
|
+
};
|
|
355
402
|
}
|
|
356
403
|
// Phase A — Identify paragraphs whose MARK is a tracked insertion
|
|
357
404
|
const markInsertedParagraphs = new Set();
|
|
@@ -378,8 +425,51 @@ export function rejectChanges(doc, opts) {
|
|
|
378
425
|
for (const p of markInsertedParagraphs) {
|
|
379
426
|
relocateBookmarks(p, markInsertedParagraphs);
|
|
380
427
|
}
|
|
428
|
+
// Mirror Accept All's projection-aware bookmark cleanup: an endpoint inside
|
|
429
|
+
// a selected insertion can have a live counterpart outside the wrapper so
|
|
430
|
+
// the combined redline visibly brackets inserted text. Rejecting the
|
|
431
|
+
// insertion must remove that revised-side counterpart as well.
|
|
432
|
+
const insertedBookmarkIds = new Set();
|
|
433
|
+
for (const insertion of collectByLocalName(root, 'ins').filter(filter)) {
|
|
434
|
+
for (const localName of ['bookmarkStart', 'bookmarkEnd']) {
|
|
435
|
+
for (const boundary of collectByLocalName(insertion, localName)) {
|
|
436
|
+
const id = boundary.getAttributeNS(W_NS, 'id') ?? boundary.getAttribute('w:id');
|
|
437
|
+
if (id)
|
|
438
|
+
insertedBookmarkIds.add(id);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
const isInsideRevision = (marker) => {
|
|
443
|
+
let current = marker.parentNode;
|
|
444
|
+
while (current && current !== root) {
|
|
445
|
+
if (isW(current, 'del') || isW(current, 'ins') || isW(current, 'moveFrom') || isW(current, 'moveTo')) {
|
|
446
|
+
return true;
|
|
447
|
+
}
|
|
448
|
+
current = current.parentNode;
|
|
449
|
+
}
|
|
450
|
+
return false;
|
|
451
|
+
};
|
|
452
|
+
if (insertedBookmarkIds.size > 0) {
|
|
453
|
+
for (const localName of ['bookmarkStart', 'bookmarkEnd']) {
|
|
454
|
+
for (const marker of collectByLocalName(root, localName)) {
|
|
455
|
+
const id = marker.getAttributeNS(W_NS, 'id') ?? marker.getAttribute('w:id');
|
|
456
|
+
if (id && insertedBookmarkIds.has(id) && !isInsideRevision(marker)) {
|
|
457
|
+
marker.parentNode?.removeChild(marker);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
381
462
|
// Phase C — Remove insertions and move destinations
|
|
382
|
-
|
|
463
|
+
// A `w:trPr > w:ins` marks the ROW as inserted; rejecting it should remove the
|
|
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);
|
|
383
473
|
const moveToRemoved = removeAllByLocalName(root, 'moveTo', filter);
|
|
384
474
|
removeAllByLocalName(root, 'moveToRangeStart', filter);
|
|
385
475
|
removeAllByLocalName(root, 'moveToRangeEnd', filter);
|
|
@@ -444,6 +534,38 @@ export function rejectChanges(doc, opts) {
|
|
|
444
534
|
if (originalProps) {
|
|
445
535
|
// Replace the current property element with the original
|
|
446
536
|
const restored = originalProps.cloneNode(true);
|
|
537
|
+
// CT_SectPrChange carries CT_SectPrBase, which intentionally excludes
|
|
538
|
+
// header/footer references. Those live bindings are not part of the
|
|
539
|
+
// page-setup property revision and must survive rejection.
|
|
540
|
+
// A `w:trPr` may carry BOTH a row-level revision marker and a
|
|
541
|
+
// `w:trPrChange`. Restoring the snapshot replaces the whole `w:trPr`,
|
|
542
|
+
// which would silently destroy any surviving marker — including the
|
|
543
|
+
// unresolved `w:ins` Phase C deliberately preserved (making the reported
|
|
544
|
+
// `unresolvedRowRevisions` disagree with the document) and any FOREIGN
|
|
545
|
+
// marker a selective reject promised to leave byte-untouched.
|
|
546
|
+
//
|
|
547
|
+
// `w:trPrChange` carries CT_TrPrBase, which has no row-revision
|
|
548
|
+
// children of its own, so transplanting the survivors cannot collide
|
|
549
|
+
// with the restored properties.
|
|
550
|
+
if (localName === 'trPrChange') {
|
|
551
|
+
const survivingRowMarkers = Array.from(parentProp.childNodes)
|
|
552
|
+
.filter((node) => node.nodeType === 1
|
|
553
|
+
&& (isW(node, 'ins') || isW(node, 'del')))
|
|
554
|
+
.map((marker) => marker.cloneNode(true));
|
|
555
|
+
for (const marker of survivingRowMarkers.reverse()) {
|
|
556
|
+
restored.insertBefore(marker, restored.firstChild);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
if (localName === 'sectPrChange') {
|
|
560
|
+
const liveReferences = Array.from(parentProp.childNodes)
|
|
561
|
+
.filter((node) => node.nodeType === 1
|
|
562
|
+
&& (isW(node, 'headerReference')
|
|
563
|
+
|| isW(node, 'footerReference')))
|
|
564
|
+
.map((reference) => reference.cloneNode(true));
|
|
565
|
+
for (const reference of liveReferences.reverse()) {
|
|
566
|
+
restored.insertBefore(reference, restored.firstChild);
|
|
567
|
+
}
|
|
568
|
+
}
|
|
447
569
|
grandParent.replaceChild(restored, parentProp);
|
|
448
570
|
}
|
|
449
571
|
else {
|
|
@@ -502,6 +624,7 @@ export function rejectChanges(doc, opts) {
|
|
|
502
624
|
deletionsRestored,
|
|
503
625
|
movesReverted: moveFromUnwrapped + moveToRemoved,
|
|
504
626
|
propertyChangesReverted,
|
|
627
|
+
unresolvedRowRevisions,
|
|
505
628
|
};
|
|
506
629
|
}
|
|
507
630
|
//# 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,13 +1,28 @@
|
|
|
1
|
-
export type SectPrIssueType = 'missing_body' | 'multiple_body_level_sectpr' | 'body_level_sectpr_not_last' | 'sectpr_invalid_parent' | 'sectpr_in_ppr_without_paragraph_parent' | 'sectpr_reference_missing_rid' | 'sectpr_reference_invalid_type' | 'sectpr_duplicate_reference_type' | 'sectpr_reference_dangling_rid' | 'sectpr_duplicate_relationship_id' | 'sectpr_reference_wrong_relationship_type' | 'sectpr_reference_invalid_target' | 'sectpr_reference_missing_target_part' | 'sectpr_reference_wrong_target_root';
|
|
1
|
+
export type SectPrIssueType = 'missing_body' | 'multiple_body_level_sectpr' | 'body_level_sectpr_not_last' | 'sectpr_invalid_parent' | 'sectpr_in_ppr_without_paragraph_parent' | 'sectpr_reference_missing_rid' | 'sectpr_reference_invalid_type' | 'sectpr_reference_invalid_placement' | 'sectpr_duplicate_reference_type' | 'sectpr_reference_dangling_rid' | 'sectpr_duplicate_relationship_id' | 'sectpr_reference_wrong_relationship_type' | 'sectpr_reference_invalid_target_mode' | 'sectpr_reference_external_target' | 'sectpr_reference_invalid_target' | 'sectpr_reference_missing_target_part' | 'sectpr_reference_wrong_target_root';
|
|
2
2
|
export interface SectPrAuditIssue {
|
|
3
3
|
type: SectPrIssueType;
|
|
4
4
|
path: string;
|
|
5
5
|
message: string;
|
|
6
6
|
rid?: string;
|
|
7
|
+
sectionOrdinal?: number;
|
|
8
|
+
kind?: SectPrBindingKind;
|
|
9
|
+
role?: SectPrBindingRole;
|
|
10
|
+
targetPath?: string;
|
|
11
|
+
}
|
|
12
|
+
export type SectPrBindingKind = 'header' | 'footer';
|
|
13
|
+
export type SectPrBindingRole = 'default' | 'first' | 'even';
|
|
14
|
+
export interface SectPrBinding {
|
|
15
|
+
sectionOrdinal: number;
|
|
16
|
+
kind: SectPrBindingKind;
|
|
17
|
+
role: SectPrBindingRole;
|
|
18
|
+
rid: string;
|
|
19
|
+
targetPath: string;
|
|
20
|
+
path: string;
|
|
7
21
|
}
|
|
8
22
|
export interface SectPrAuditSummary {
|
|
9
23
|
ok: boolean;
|
|
10
24
|
issues: SectPrAuditIssue[];
|
|
25
|
+
bindings: SectPrBinding[];
|
|
11
26
|
stats: {
|
|
12
27
|
bodyLevelSectPrCount: number;
|
|
13
28
|
paragraphLevelSectPrCount: number;
|
|
@@ -22,6 +37,8 @@ export interface SectPrAuditSummary {
|
|
|
22
37
|
*
|
|
23
38
|
* @conformance ECMA-376 edition 5, Part 1 § 17.10.5
|
|
24
39
|
* @conformance ECMA-376 edition 5, Part 1 § 17.10.2
|
|
40
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.10.4
|
|
41
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.10.3
|
|
25
42
|
* @see https://github.com/UseJunior/safe-docx/issues/560
|
|
26
43
|
*/
|
|
27
44
|
export declare function auditSectPr(documentXml: string, documentRelsXml?: string | null, packageParts?: ReadonlyMap<string, string>): SectPrAuditSummary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sectPrAudit.d.ts","sourceRoot":"","sources":["../../src/primitives/sectPrAudit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sectPrAudit.d.ts","sourceRoot":"","sources":["../../src/primitives/sectPrAudit.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,4BAA4B,GAC5B,4BAA4B,GAC5B,uBAAuB,GACvB,wCAAwC,GACxC,8BAA8B,GAC9B,+BAA+B,GAC/B,oCAAoC,GACpC,iCAAiC,GACjC,+BAA+B,GAC/B,kCAAkC,GAClC,0CAA0C,GAC1C,sCAAsC,GACtC,kCAAkC,GAClC,iCAAiC,GACjC,sCAAsC,GACtC,oCAAoC,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE;QACL,oBAAoB,EAAE,MAAM,CAAC;QAC7B,yBAAyB,EAAE,MAAM,CAAC;QAClC,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAsFD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,kBAAkB,CAiTpB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { parseXml } from './xml.js';
|
|
2
2
|
import { childElements } from './dom-helpers.js';
|
|
3
3
|
import { OOXML } from './namespaces.js';
|
|
4
|
+
import { OpcRelationshipTargetError, normalizeOpcRelationshipTarget, } from './opc-target.js';
|
|
4
5
|
function elementSiblingIndex(node) {
|
|
5
6
|
const parent = node.parentNode;
|
|
6
7
|
if (!parent)
|
|
@@ -54,7 +55,9 @@ function collectRelationships(documentRelsXml) {
|
|
|
54
55
|
relationshipsById.set(id, {
|
|
55
56
|
type: rel?.getAttribute('Type') ?? '',
|
|
56
57
|
target: rel?.getAttribute('Target') ?? '',
|
|
57
|
-
|
|
58
|
+
targetMode: rel?.hasAttribute('TargetMode')
|
|
59
|
+
? rel.getAttribute('TargetMode') ?? undefined
|
|
60
|
+
: undefined,
|
|
58
61
|
});
|
|
59
62
|
}
|
|
60
63
|
}
|
|
@@ -64,24 +67,6 @@ function collectRelationships(documentRelsXml) {
|
|
|
64
67
|
return { relationships: new Map(), duplicateIds: [] };
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
|
-
function resolveDocumentTarget(target) {
|
|
68
|
-
// Part-name fragments are outside this audit's explicit OPC target model.
|
|
69
|
-
if (target.includes('#'))
|
|
70
|
-
return undefined;
|
|
71
|
-
const parts = target.startsWith('/') ? [] : ['word'];
|
|
72
|
-
for (const segment of target.split('/')) {
|
|
73
|
-
if (!segment || segment === '.')
|
|
74
|
-
continue;
|
|
75
|
-
if (segment === '..') {
|
|
76
|
-
if (parts.length === 0)
|
|
77
|
-
return undefined;
|
|
78
|
-
parts.pop();
|
|
79
|
-
}
|
|
80
|
-
else
|
|
81
|
-
parts.push(segment);
|
|
82
|
-
}
|
|
83
|
-
return parts.length > 0 ? parts.join('/') : undefined;
|
|
84
|
-
}
|
|
85
70
|
function getRid(ref) {
|
|
86
71
|
return ref.getAttributeNS(OOXML.R_NS, 'id') || undefined;
|
|
87
72
|
}
|
|
@@ -92,12 +77,16 @@ function getRid(ref) {
|
|
|
92
77
|
*
|
|
93
78
|
* @conformance ECMA-376 edition 5, Part 1 § 17.10.5
|
|
94
79
|
* @conformance ECMA-376 edition 5, Part 1 § 17.10.2
|
|
80
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.10.4
|
|
81
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.10.3
|
|
95
82
|
* @see https://github.com/UseJunior/safe-docx/issues/560
|
|
96
83
|
*/
|
|
97
84
|
export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
98
85
|
const issues = [];
|
|
86
|
+
const bindings = [];
|
|
99
87
|
const relationshipCollection = collectRelationships(documentRelsXml);
|
|
100
88
|
const relationships = relationshipCollection.relationships;
|
|
89
|
+
const ambiguousRelationshipIds = new Set(relationshipCollection.duplicateIds);
|
|
101
90
|
for (const id of relationshipCollection.duplicateIds) {
|
|
102
91
|
issues.push({
|
|
103
92
|
type: 'sectpr_duplicate_relationship_id',
|
|
@@ -118,6 +107,7 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
118
107
|
message: 'Missing w:body element',
|
|
119
108
|
},
|
|
120
109
|
],
|
|
110
|
+
bindings,
|
|
121
111
|
stats: {
|
|
122
112
|
bodyLevelSectPrCount: 0,
|
|
123
113
|
paragraphLevelSectPrCount: 0,
|
|
@@ -149,10 +139,19 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
149
139
|
}
|
|
150
140
|
}
|
|
151
141
|
}
|
|
152
|
-
const sectPrNodes = Array.from(doc.getElementsByTagNameNS(OOXML.W_NS, 'sectPr'))
|
|
142
|
+
const sectPrNodes = Array.from(doc.getElementsByTagNameNS(OOXML.W_NS, 'sectPr'))
|
|
143
|
+
.filter((sectPr) => {
|
|
144
|
+
for (let ancestor = sectPr.parentNode; ancestor; ancestor = ancestor.parentNode) {
|
|
145
|
+
if (ancestor.nodeType === 1 &&
|
|
146
|
+
isWmlElement(ancestor, 'sectPrChange')) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return true;
|
|
151
|
+
});
|
|
153
152
|
let paragraphLevelSectPrCount = 0;
|
|
154
153
|
let referenceCount = 0;
|
|
155
|
-
for (const sectPr of sectPrNodes) {
|
|
154
|
+
for (const [sectionOrdinal, sectPr] of sectPrNodes.entries()) {
|
|
156
155
|
const seenReferenceTypes = new Set();
|
|
157
156
|
const parent = sectPr.parentNode;
|
|
158
157
|
const parentTag = parent && parent.nodeType === 1 ? parent.tagName : '';
|
|
@@ -174,20 +173,54 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
174
173
|
message: `w:sectPr has invalid parent '${parentTag || '(none)'}'`,
|
|
175
174
|
});
|
|
176
175
|
}
|
|
176
|
+
const descendantReferences = Array.from(sectPr.getElementsByTagNameNS(OOXML.W_NS, '*')).filter((element) => {
|
|
177
|
+
if (element.localName !== 'headerReference' && element.localName !== 'footerReference') {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
let ancestor = element.parentNode;
|
|
181
|
+
while (ancestor && ancestor !== sectPr) {
|
|
182
|
+
if (ancestor.nodeType === 1 && isWmlElement(ancestor, 'sectPr'))
|
|
183
|
+
return false;
|
|
184
|
+
ancestor = ancestor.parentNode;
|
|
185
|
+
}
|
|
186
|
+
return ancestor === sectPr;
|
|
187
|
+
});
|
|
188
|
+
referenceCount += descendantReferences.length;
|
|
189
|
+
for (const reference of descendantReferences) {
|
|
190
|
+
if (reference.parentNode === sectPr)
|
|
191
|
+
continue;
|
|
192
|
+
const referenceType = reference.getAttributeNS(OOXML.W_NS, 'type') ?? '';
|
|
193
|
+
issues.push({
|
|
194
|
+
type: 'sectpr_reference_invalid_placement',
|
|
195
|
+
path: nodePath(reference),
|
|
196
|
+
message: `${reference.tagName} must be a direct child of w:sectPr`,
|
|
197
|
+
sectionOrdinal,
|
|
198
|
+
kind: reference.localName === 'headerReference' ? 'header' : 'footer',
|
|
199
|
+
role: REFERENCE_TYPES.has(referenceType)
|
|
200
|
+
? referenceType
|
|
201
|
+
: undefined,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
177
204
|
for (const child of childElements(sectPr)) {
|
|
178
205
|
const isHeaderReference = isWmlElement(child, 'headerReference');
|
|
179
206
|
const isFooterReference = isWmlElement(child, 'footerReference');
|
|
180
207
|
if (!isHeaderReference && !isFooterReference) {
|
|
181
208
|
continue;
|
|
182
209
|
}
|
|
183
|
-
|
|
210
|
+
const kind = isHeaderReference ? 'header' : 'footer';
|
|
184
211
|
const referenceType = child.getAttributeNS(OOXML.W_NS, 'type') ?? '';
|
|
212
|
+
const role = REFERENCE_TYPES.has(referenceType)
|
|
213
|
+
? referenceType
|
|
214
|
+
: undefined;
|
|
185
215
|
if (!REFERENCE_TYPES.has(referenceType)) {
|
|
186
216
|
issues.push({
|
|
187
217
|
type: 'sectpr_reference_invalid_type',
|
|
188
218
|
path: nodePath(child),
|
|
189
219
|
message: `${child.tagName} has missing or invalid w:type '${referenceType || '(missing)'}'; expected first, default, or even`,
|
|
220
|
+
sectionOrdinal,
|
|
221
|
+
kind,
|
|
190
222
|
});
|
|
223
|
+
continue;
|
|
191
224
|
}
|
|
192
225
|
else {
|
|
193
226
|
const referenceKey = `${isHeaderReference ? 'header' : 'footer'}:${referenceType}`;
|
|
@@ -196,7 +229,11 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
196
229
|
type: 'sectpr_duplicate_reference_type',
|
|
197
230
|
path: nodePath(child),
|
|
198
231
|
message: `${child.tagName} duplicates the '${referenceType}' role within this w:sectPr`,
|
|
232
|
+
sectionOrdinal,
|
|
233
|
+
kind,
|
|
234
|
+
role,
|
|
199
235
|
});
|
|
236
|
+
continue;
|
|
200
237
|
}
|
|
201
238
|
else {
|
|
202
239
|
seenReferenceTypes.add(referenceKey);
|
|
@@ -208,9 +245,14 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
208
245
|
type: 'sectpr_reference_missing_rid',
|
|
209
246
|
path: nodePath(child),
|
|
210
247
|
message: `${child.tagName} is missing r:id`,
|
|
248
|
+
sectionOrdinal,
|
|
249
|
+
kind,
|
|
250
|
+
role,
|
|
211
251
|
});
|
|
212
252
|
continue;
|
|
213
253
|
}
|
|
254
|
+
if (ambiguousRelationshipIds.has(rid))
|
|
255
|
+
continue;
|
|
214
256
|
const relationship = relationships.get(rid);
|
|
215
257
|
if (!relationship) {
|
|
216
258
|
issues.push({
|
|
@@ -218,31 +260,52 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
218
260
|
path: nodePath(child),
|
|
219
261
|
message: `${child.tagName} references missing relationship id '${rid}'`,
|
|
220
262
|
rid,
|
|
263
|
+
sectionOrdinal,
|
|
264
|
+
kind,
|
|
265
|
+
role,
|
|
221
266
|
});
|
|
222
267
|
continue;
|
|
223
268
|
}
|
|
224
|
-
const kind = isHeaderReference ? 'header' : 'footer';
|
|
225
269
|
const expectedType = `http://schemas.openxmlformats.org/officeDocument/2006/relationships/${kind}`;
|
|
226
|
-
if (relationship.type !== expectedType
|
|
270
|
+
if (relationship.type !== expectedType) {
|
|
227
271
|
issues.push({
|
|
228
272
|
type: 'sectpr_reference_wrong_relationship_type',
|
|
229
273
|
path: nodePath(child),
|
|
230
274
|
message: `${child.tagName} relationship '${rid}' has type '${relationship.type || '(missing)'}'`,
|
|
231
275
|
rid,
|
|
276
|
+
sectionOrdinal,
|
|
277
|
+
kind,
|
|
278
|
+
role,
|
|
279
|
+
});
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
let targetName;
|
|
283
|
+
try {
|
|
284
|
+
targetName = normalizeOpcRelationshipTarget({
|
|
285
|
+
ownerPart: 'word/document.xml',
|
|
286
|
+
target: relationship.target,
|
|
287
|
+
targetMode: relationship.targetMode,
|
|
288
|
+
}).target;
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
const targetError = error instanceof OpcRelationshipTargetError ? error : undefined;
|
|
292
|
+
const type = targetError?.issue === 'invalid_target_mode'
|
|
293
|
+
? 'sectpr_reference_invalid_target_mode'
|
|
294
|
+
: targetError?.issue === 'external_target_not_allowed'
|
|
295
|
+
? 'sectpr_reference_external_target'
|
|
296
|
+
: 'sectpr_reference_invalid_target';
|
|
297
|
+
issues.push({
|
|
298
|
+
type,
|
|
299
|
+
path: nodePath(child),
|
|
300
|
+
message: `${child.tagName} relationship '${rid}' has unsupported or malformed target '${relationship.target}': ${error instanceof Error ? error.message : String(error)}`,
|
|
301
|
+
rid,
|
|
302
|
+
sectionOrdinal,
|
|
303
|
+
kind,
|
|
304
|
+
role,
|
|
232
305
|
});
|
|
233
306
|
continue;
|
|
234
307
|
}
|
|
235
308
|
if (packageParts) {
|
|
236
|
-
const targetName = resolveDocumentTarget(relationship.target);
|
|
237
|
-
if (!targetName) {
|
|
238
|
-
issues.push({
|
|
239
|
-
type: 'sectpr_reference_invalid_target',
|
|
240
|
-
path: nodePath(child),
|
|
241
|
-
message: `${child.tagName} relationship '${rid}' has unsupported or malformed target '${relationship.target}'`,
|
|
242
|
-
rid,
|
|
243
|
-
});
|
|
244
|
-
continue;
|
|
245
|
-
}
|
|
246
309
|
const targetXml = packageParts.get(targetName);
|
|
247
310
|
if (!targetXml) {
|
|
248
311
|
issues.push({
|
|
@@ -250,6 +313,10 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
250
313
|
path: nodePath(child),
|
|
251
314
|
message: `${child.tagName} relationship '${rid}' resolves to missing part '${targetName}'`,
|
|
252
315
|
rid,
|
|
316
|
+
sectionOrdinal,
|
|
317
|
+
kind,
|
|
318
|
+
role,
|
|
319
|
+
targetPath: targetName,
|
|
253
320
|
});
|
|
254
321
|
continue;
|
|
255
322
|
}
|
|
@@ -262,7 +329,12 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
262
329
|
path: nodePath(child),
|
|
263
330
|
message: `${child.tagName} relationship '${rid}' targets <${actualRoot?.tagName ?? 'nothing'}>, expected WordprocessingML <${expectedRoot}>`,
|
|
264
331
|
rid,
|
|
332
|
+
sectionOrdinal,
|
|
333
|
+
kind,
|
|
334
|
+
role,
|
|
335
|
+
targetPath: targetName,
|
|
265
336
|
});
|
|
337
|
+
continue;
|
|
266
338
|
}
|
|
267
339
|
}
|
|
268
340
|
catch {
|
|
@@ -271,14 +343,28 @@ export function auditSectPr(documentXml, documentRelsXml, packageParts) {
|
|
|
271
343
|
path: nodePath(child),
|
|
272
344
|
message: `${child.tagName} relationship '${rid}' targets malformed XML`,
|
|
273
345
|
rid,
|
|
346
|
+
sectionOrdinal,
|
|
347
|
+
kind,
|
|
348
|
+
role,
|
|
349
|
+
targetPath: targetName,
|
|
274
350
|
});
|
|
351
|
+
continue;
|
|
275
352
|
}
|
|
276
353
|
}
|
|
354
|
+
bindings.push({
|
|
355
|
+
sectionOrdinal,
|
|
356
|
+
kind,
|
|
357
|
+
role: referenceType,
|
|
358
|
+
rid,
|
|
359
|
+
targetPath: targetName,
|
|
360
|
+
path: nodePath(child),
|
|
361
|
+
});
|
|
277
362
|
}
|
|
278
363
|
}
|
|
279
364
|
return {
|
|
280
365
|
ok: issues.length === 0,
|
|
281
366
|
issues,
|
|
367
|
+
bindings,
|
|
282
368
|
stats: {
|
|
283
369
|
bodyLevelSectPrCount: bodyLevelSectPrNodes.length,
|
|
284
370
|
paragraphLevelSectPrCount,
|