@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.
Files changed (142) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core-types.d.ts +1 -139
  3. package/dist/core-types.d.ts.map +1 -1
  4. package/dist/core-types.js +1 -3
  5. package/dist/core-types.js.map +1 -1
  6. package/dist/generation/emit/borders.d.ts +14 -0
  7. package/dist/generation/emit/borders.d.ts.map +1 -0
  8. package/dist/generation/emit/borders.js +45 -0
  9. package/dist/generation/emit/borders.js.map +1 -0
  10. package/dist/generation/emit/properties.d.ts +1 -1
  11. package/dist/generation/emit/properties.d.ts.map +1 -1
  12. package/dist/generation/emit/properties.js +4 -0
  13. package/dist/generation/emit/properties.js.map +1 -1
  14. package/dist/generation/emit/table.d.ts.map +1 -1
  15. package/dist/generation/emit/table.js +3 -31
  16. package/dist/generation/emit/table.js.map +1 -1
  17. package/dist/generation/index.d.ts +1 -1
  18. package/dist/generation/index.d.ts.map +1 -1
  19. package/dist/generation/types.d.ts +9 -0
  20. package/dist/generation/types.d.ts.map +1 -1
  21. package/dist/generation/types.js.map +1 -1
  22. package/dist/generation/validate-spec.d.ts.map +1 -1
  23. package/dist/generation/validate-spec.js +2 -0
  24. package/dist/generation/validate-spec.js.map +1 -1
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +11 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/integration/generation-probes.d.ts +36 -2
  30. package/dist/integration/generation-probes.d.ts.map +1 -1
  31. package/dist/integration/generation-probes.js +137 -15
  32. package/dist/integration/generation-probes.js.map +1 -1
  33. package/dist/integration/libreoffice-oracle.js +1 -1
  34. package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -1
  35. package/dist/integration/synthetic-docx-fixture.js +37 -20
  36. package/dist/integration/synthetic-docx-fixture.js.map +1 -1
  37. package/dist/primitives/accept_ai_edits.js +14 -2
  38. package/dist/primitives/accept_ai_edits.js.map +1 -1
  39. package/dist/primitives/accept_changes.d.ts +7 -0
  40. package/dist/primitives/accept_changes.d.ts.map +1 -1
  41. package/dist/primitives/accept_changes.js +92 -4
  42. package/dist/primitives/accept_changes.js.map +1 -1
  43. package/dist/primitives/bookmarks.d.ts +1 -0
  44. package/dist/primitives/bookmarks.d.ts.map +1 -1
  45. package/dist/primitives/bookmarks.js +1 -1
  46. package/dist/primitives/bookmarks.js.map +1 -1
  47. package/dist/primitives/comments.d.ts +31 -4
  48. package/dist/primitives/comments.d.ts.map +1 -1
  49. package/dist/primitives/comments.js +111 -12
  50. package/dist/primitives/comments.js.map +1 -1
  51. package/dist/primitives/document.d.ts +47 -1
  52. package/dist/primitives/document.d.ts.map +1 -1
  53. package/dist/primitives/document.js +198 -13
  54. package/dist/primitives/document.js.map +1 -1
  55. package/dist/primitives/document_view-headings.d.ts +3 -1
  56. package/dist/primitives/document_view-headings.d.ts.map +1 -1
  57. package/dist/primitives/document_view-headings.js +5 -5
  58. package/dist/primitives/document_view-headings.js.map +1 -1
  59. package/dist/primitives/document_view.d.ts +2 -0
  60. package/dist/primitives/document_view.d.ts.map +1 -1
  61. package/dist/primitives/document_view.js +18 -4
  62. package/dist/primitives/document_view.js.map +1 -1
  63. package/dist/primitives/field_evaluation.d.ts +70 -0
  64. package/dist/primitives/field_evaluation.d.ts.map +1 -0
  65. package/dist/primitives/field_evaluation.js +462 -0
  66. package/dist/primitives/field_evaluation.js.map +1 -0
  67. package/dist/primitives/footnotes.d.ts +17 -3
  68. package/dist/primitives/footnotes.d.ts.map +1 -1
  69. package/dist/primitives/footnotes.js +64 -17
  70. package/dist/primitives/footnotes.js.map +1 -1
  71. package/dist/primitives/formatting_tags.js +2 -2
  72. package/dist/primitives/formatting_tags.js.map +1 -1
  73. package/dist/primitives/index.d.ts +8 -1
  74. package/dist/primitives/index.d.ts.map +1 -1
  75. package/dist/primitives/index.js +8 -1
  76. package/dist/primitives/index.js.map +1 -1
  77. package/dist/primitives/merge_runs.d.ts +3 -1
  78. package/dist/primitives/merge_runs.d.ts.map +1 -1
  79. package/dist/primitives/merge_runs.js +12 -2
  80. package/dist/primitives/merge_runs.js.map +1 -1
  81. package/dist/primitives/namespaces.d.ts +12 -2
  82. package/dist/primitives/namespaces.d.ts.map +1 -1
  83. package/dist/primitives/namespaces.js +13 -2
  84. package/dist/primitives/namespaces.js.map +1 -1
  85. package/dist/primitives/note_conversion.d.ts +11 -0
  86. package/dist/primitives/note_conversion.d.ts.map +1 -0
  87. package/dist/primitives/note_conversion.js +12 -0
  88. package/dist/primitives/note_conversion.js.map +1 -0
  89. package/dist/primitives/opc-target.d.ts +24 -0
  90. package/dist/primitives/opc-target.d.ts.map +1 -0
  91. package/dist/primitives/opc-target.js +99 -0
  92. package/dist/primitives/opc-target.js.map +1 -0
  93. package/dist/primitives/paragraph_numbering.d.ts +40 -0
  94. package/dist/primitives/paragraph_numbering.d.ts.map +1 -0
  95. package/dist/primitives/paragraph_numbering.js +198 -0
  96. package/dist/primitives/paragraph_numbering.js.map +1 -0
  97. package/dist/primitives/reject_changes.d.ts +7 -0
  98. package/dist/primitives/reject_changes.d.ts.map +1 -1
  99. package/dist/primitives/reject_changes.js +133 -10
  100. package/dist/primitives/reject_changes.js.map +1 -1
  101. package/dist/primitives/sectPrAudit.d.ts +18 -1
  102. package/dist/primitives/sectPrAudit.d.ts.map +1 -1
  103. package/dist/primitives/sectPrAudit.js +120 -34
  104. package/dist/primitives/sectPrAudit.js.map +1 -1
  105. package/dist/primitives/sections.d.ts +134 -0
  106. package/dist/primitives/sections.d.ts.map +1 -0
  107. package/dist/primitives/sections.js +644 -0
  108. package/dist/primitives/sections.js.map +1 -0
  109. package/dist/primitives/serialize_html.d.ts.map +1 -1
  110. package/dist/primitives/serialize_html.js +18 -7
  111. package/dist/primitives/serialize_html.js.map +1 -1
  112. package/dist/primitives/styles.d.ts +60 -0
  113. package/dist/primitives/styles.d.ts.map +1 -1
  114. package/dist/primitives/styles.js +206 -25
  115. package/dist/primitives/styles.js.map +1 -1
  116. package/dist/primitives/symbol_run_content.d.ts +42 -0
  117. package/dist/primitives/symbol_run_content.d.ts.map +1 -0
  118. package/dist/primitives/symbol_run_content.js +79 -0
  119. package/dist/primitives/symbol_run_content.js.map +1 -0
  120. package/dist/primitives/text.d.ts +29 -0
  121. package/dist/primitives/text.d.ts.map +1 -1
  122. package/dist/primitives/text.js +354 -44
  123. package/dist/primitives/text.js.map +1 -1
  124. package/dist/primitives/track-changes-emitter.d.ts +9 -0
  125. package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
  126. package/dist/primitives/track-changes-emitter.js +40 -2
  127. package/dist/primitives/track-changes-emitter.js.map +1 -1
  128. package/dist/primitives/validate_document.d.ts.map +1 -1
  129. package/dist/primitives/validate_document.js +22 -1
  130. package/dist/primitives/validate_document.js.map +1 -1
  131. package/dist/shared/docx/DocxArchive.d.ts.map +1 -1
  132. package/dist/shared/docx/DocxArchive.js +7 -0
  133. package/dist/shared/docx/DocxArchive.js.map +1 -1
  134. package/dist/shared/field-semantics.d.ts +26 -0
  135. package/dist/shared/field-semantics.d.ts.map +1 -0
  136. package/dist/shared/field-semantics.js +232 -0
  137. package/dist/shared/field-semantics.js.map +1 -0
  138. package/dist/shared/field-structure.d.ts +14 -0
  139. package/dist/shared/field-structure.d.ts.map +1 -1
  140. package/dist/shared/field-structure.js +98 -7
  141. package/dist/shared/field-structure.js.map +1 -1
  142. 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
- function removeAllByLocalName(container, localName, filter = ACCEPT_ALL) {
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 (sibling-style: <bookmarkStart/><p/><bookmarkEnd/>)
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') || isW(el, 'bookmarkEnd')) {
301
- toMove.push(el);
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, 'bookmarkStart') || isW(el, 'bookmarkEnd')) {
314
- toMove.push(el);
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 ?? null);
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 { insertionsRemoved: 0, deletionsRestored: 0, movesReverted: 0, propertyChangesReverted: 0 };
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
- const insertionsRemoved = removeAllByLocalName(root, 'ins', filter);
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":"AAIA,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,4BAA4B,GAC5B,4BAA4B,GAC5B,uBAAuB,GACvB,wCAAwC,GACxC,8BAA8B,GAC9B,+BAA+B,GAC/B,iCAAiC,GACjC,+BAA+B,GAC/B,kCAAkC,GAClC,0CAA0C,GAC1C,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;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,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;AAmGD;;;;;;;;GAQG;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,CA2MpB"}
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
- external: rel?.getAttribute('TargetMode') === 'External',
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
- referenceCount++;
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 || relationship.external) {
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,