@usejunior/docx-core 0.9.0 → 0.9.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.
@@ -530,7 +530,7 @@ export async function compareDocumentsAtomizer(original, revised, options = {})
530
530
  comparisonResult = selected;
531
531
  }
532
532
  else {
533
- comparisonResult = runComparisonPass(undefined, 'rebuild');
533
+ comparisonResult = runComparisonPass({ atomizeParagraphLevelMarkers: true }, 'rebuild');
534
534
  fallbackReason = 'round_trip_safety_check_failed';
535
535
  fallbackDiagnostics = {
536
536
  attempts: failedAttempts,
@@ -538,30 +538,33 @@ export async function compareDocumentsAtomizer(original, revised, options = {})
538
538
  }
539
539
  }
540
540
  else {
541
- comparisonResult = runComparisonPass(undefined, 'rebuild');
541
+ comparisonResult = runComparisonPass({ atomizeParagraphLevelMarkers: true }, 'rebuild');
542
542
  }
543
543
  const { mergedAtoms, newDocumentXml } = comparisonResult;
544
544
  // Step 12: Clone appropriate archive and update document.xml.
545
545
  // Use the revised archive only for true inplace output.
546
546
  const baseArchive = comparisonResult.outputMode === 'inplace' ? revisedArchive : originalArchive;
547
+ // The merge source is the *opposite* archive from the base: inplace pulls
548
+ // deleted-but-still-referenced definitions from the original, rebuild pulls
549
+ // added-but-still-referenced definitions from the revised. Without this,
550
+ // rebuild output ships dangling references when the original lacks an
551
+ // auxiliary part that the revised side introduced (issue #94).
552
+ const mergeSourceArchive = comparisonResult.outputMode === 'inplace' ? originalArchive : revisedArchive;
547
553
  const resultArchive = await baseArchive.clone();
548
554
  resultArchive.setDocumentXml(newDocumentXml);
549
- // Step 12b: For inplace mode, merge auxiliary part definitions (footnotes,
550
- // endnotes, comments) from the original document. Inplace reconstruction
551
- // inserts deleted content that may reference definitions not present in the
552
- // revised archive.
553
- if (comparisonResult.outputMode === 'inplace') {
554
- const mergeResults = new Map();
555
- for (const descriptor of AUXILIARY_PARTS) {
556
- const result = await mergeAuxiliaryPartDefinitions(originalArchive, resultArchive, newDocumentXml, descriptor);
557
- if (result.mergedIds.size > 0) {
558
- mergeResults.set(descriptor.label, result);
559
- }
560
- }
561
- // Post-merge hook for comment ancillary parts
562
- if (mergeResults.has('comment')) {
563
- await mergeCommentAncillaryParts(originalArchive, resultArchive, mergeResults.get('comment'));
564
- }
555
+ // Step 12b: Merge auxiliary part definitions (footnotes, endnotes, comments).
556
+ // Reconstruction may insert content (deleted in inplace, added in rebuild)
557
+ // whose definitions are missing from the base archive.
558
+ for (const descriptor of AUXILIARY_PARTS) {
559
+ await mergeAuxiliaryPartDefinitions(mergeSourceArchive, resultArchive, newDocumentXml, descriptor);
560
+ }
561
+ // Comment-specific post-pass: walk reply threads via commentsExtended.xml.
562
+ // Gated on root comment IDs in the *result* document (not on what the
563
+ // generic merge appended), so the pass runs even when the original already
564
+ // contains the root and revised only adds replies under it (issue #108).
565
+ const rootCommentIds = collectReferenceIds(newDocumentXml, 'w:commentReference');
566
+ if (rootCommentIds.size > 0) {
567
+ await mergeCommentAncillaryParts(mergeSourceArchive, resultArchive, rootCommentIds);
565
568
  }
566
569
  // Step 13: Save result and compute stats
567
570
  const resultBuffer = await resultArchive.save();
@@ -637,25 +640,27 @@ function parseEntries(xml, entryTag) {
637
640
  const serializer = new XMLSerializer();
638
641
  /**
639
642
  * Merge auxiliary part definitions (footnotes, endnotes, comments) from the
640
- * original archive into the result archive. When inplace mode inserts deleted
641
- * content, the corresponding definitions must exist in the auxiliary part.
643
+ * source archive into the result archive. The source archive is whichever
644
+ * side reconstruction may have introduced references to: original in inplace
645
+ * mode (deleted-but-referenced definitions), revised in rebuild mode
646
+ * (added-but-referenced definitions).
642
647
  */
643
- async function mergeAuxiliaryPartDefinitions(originalArchive, resultArchive, documentXml, descriptor) {
648
+ async function mergeAuxiliaryPartDefinitions(sourceArchive, resultArchive, documentXml, descriptor) {
644
649
  const result = { mergedIds: new Set(), createdPart: false };
645
650
  const referencedIds = collectReferenceIds(documentXml, descriptor.referenceTag);
646
651
  if (referencedIds.size === 0)
647
652
  return result;
648
- const originalPartXml = await originalArchive.getFile(descriptor.partPath);
649
- if (!originalPartXml)
653
+ const sourcePartXml = await sourceArchive.getFile(descriptor.partPath);
654
+ if (!sourcePartXml)
650
655
  return result;
651
656
  const resultPartXml = await resultArchive.getFile(descriptor.partPath);
652
- const originalParsed = parseEntries(originalPartXml, descriptor.entryTag);
657
+ const sourceParsed = parseEntries(sourcePartXml, descriptor.entryTag);
653
658
  const resultParsed = resultPartXml ? parseEntries(resultPartXml, descriptor.entryTag) : null;
654
659
  // Find missing entries: referenced in document.xml but not in result
655
660
  const missingElements = [];
656
661
  for (const id of referencedIds) {
657
- if (!(resultParsed?.entries.has(id)) && originalParsed.entries.has(id)) {
658
- missingElements.push(originalParsed.entries.get(id));
662
+ if (!(resultParsed?.entries.has(id)) && sourceParsed.entries.has(id)) {
663
+ missingElements.push(sourceParsed.entries.get(id));
659
664
  result.mergedIds.add(id);
660
665
  }
661
666
  }
@@ -673,27 +678,33 @@ async function mergeAuxiliaryPartDefinitions(originalArchive, resultArchive, doc
673
678
  }
674
679
  }
675
680
  else {
676
- // Create part from scratch: clone root from original, insert missing entries
677
- const newDoc = parseXml(originalPartXml);
681
+ // Create part from scratch: clone root from merge source, drop every
682
+ // non-reserved entry, then append the missing referenced ones.
683
+ // Reserved entries are footnote/endnote separators identified by
684
+ // w:type="separator" / w:type="continuationSeparator" — Word expects
685
+ // them to exist and they don't carry user content. Filtering by w:type
686
+ // (not by magic w:id values) keeps this robust across authoring tools.
687
+ const newDoc = parseXml(sourcePartXml);
678
688
  const rootEl = newDoc.getElementsByTagName(descriptor.rootTag)[0];
679
689
  if (rootEl) {
680
- // Remove all existing entries — we only want the missing ones
681
690
  const existingEntries = rootEl.getElementsByTagName(descriptor.entryTag);
682
691
  const toRemove = [];
683
692
  for (let i = 0; i < existingEntries.length; i++) {
684
- toRemove.push(existingEntries[i]);
693
+ const el = existingEntries[i];
694
+ const type = el.getAttribute('w:type');
695
+ if (type !== 'separator' && type !== 'continuationSeparator') {
696
+ toRemove.push(el);
697
+ }
685
698
  }
686
699
  for (const el of toRemove) {
687
700
  rootEl.removeChild(el);
688
701
  }
689
- // Add back only the missing entries
690
702
  for (const el of missingElements) {
691
703
  const imported = newDoc.importNode(el, true);
692
704
  rootEl.appendChild(imported);
693
705
  }
694
706
  resultArchive.setFile(descriptor.partPath, serializer.serializeToString(newDoc));
695
707
  result.createdPart = true;
696
- // Bootstrap OPC metadata for the newly created part
697
708
  await ensureOpcMetadata(resultArchive, descriptor);
698
709
  }
699
710
  }
@@ -765,52 +776,154 @@ async function ensureOpcMetadata(archive, descriptor) {
765
776
  // Comment Ancillary Parts Merging
766
777
  // =============================================================================
767
778
  /**
768
- * After merging comment definitions, copy related entries from
769
- * commentsExtended.xml and people.xml for author fidelity and reply threading.
779
+ * Walk the comment reply graph from each root referenced in the result
780
+ * document, merging reply <w:comment> entries, their commentsExtended.xml
781
+ * threading entries, and people.xml authors. Replies have no
782
+ * <w:commentReference> in document.xml — they're discoverable only via
783
+ * w15:paraIdParent in commentsExtended.xml. Without this expansion, rebuild
784
+ * mode silently drops reply threads (issue #108).
770
785
  */
771
- async function mergeCommentAncillaryParts(originalArchive, resultArchive, commentMergeResult) {
772
- // Collect authors and paraIds from the merged comment entries
773
- const originalCommentsXml = await originalArchive.getFile('word/comments.xml');
774
- if (!originalCommentsXml)
786
+ async function mergeCommentAncillaryParts(sourceArchive, resultArchive, rootCommentIds) {
787
+ const sourceCommentsXml = await sourceArchive.getFile('word/comments.xml');
788
+ if (!sourceCommentsXml)
775
789
  return;
776
- const origDoc = parseXml(originalCommentsXml);
777
- const mergedAuthors = new Set();
778
- const mergedParaIds = new Set();
779
- const commentEls = origDoc.getElementsByTagName('w:comment');
780
- for (let i = 0; i < commentEls.length; i++) {
781
- const el = commentEls[i];
790
+ const sourceDoc = parseXml(sourceCommentsXml);
791
+ // Build full source comment maps. Canonical paraId is the first <w:p>
792
+ // child's w14:paraId, matching getCommentElParaId() in primitives/comments.ts.
793
+ const commentById = new Map();
794
+ const paraIdByCommentId = new Map();
795
+ const commentIdByParaId = new Map();
796
+ const authorByCommentId = new Map();
797
+ const allCommentEls = sourceDoc.getElementsByTagName('w:comment');
798
+ for (let i = 0; i < allCommentEls.length; i++) {
799
+ const el = allCommentEls[i];
782
800
  const id = el.getAttribute('w:id');
783
- if (!id || !commentMergeResult.mergedIds.has(id))
801
+ if (!id)
784
802
  continue;
803
+ commentById.set(id, el);
785
804
  const author = el.getAttribute('w:author');
786
805
  if (author)
787
- mergedAuthors.add(author);
788
- // Collect paraIds from <w:p> children inside the comment
789
- const paras = el.getElementsByTagName('w:p');
790
- for (let j = 0; j < paras.length; j++) {
791
- const p = paras[j];
792
- const paraId = p.getAttribute('w14:paraId');
793
- if (paraId)
794
- mergedParaIds.add(paraId);
795
- }
796
- }
797
- // Merge commentsExtended.xml entries matching merged paraIds
798
- await mergeCommentsExtended(originalArchive, resultArchive, mergedParaIds);
799
- // Merge people.xml entries matching merged authors
800
- await mergePeople(originalArchive, resultArchive, mergedAuthors);
806
+ authorByCommentId.set(id, author);
807
+ const firstP = el.getElementsByTagName('w:p')[0];
808
+ const paraId = firstP?.getAttribute('w14:paraId');
809
+ if (paraId) {
810
+ paraIdByCommentId.set(id, paraId);
811
+ commentIdByParaId.set(paraId, id);
812
+ }
813
+ }
814
+ // Seed inclusion sets from the root IDs that appear in the result document.
815
+ const includedCommentIds = new Set();
816
+ const includedParaIds = new Set();
817
+ const includedAuthors = new Set();
818
+ for (const id of rootCommentIds) {
819
+ if (!commentById.has(id))
820
+ continue;
821
+ includedCommentIds.add(id);
822
+ const pid = paraIdByCommentId.get(id);
823
+ if (pid)
824
+ includedParaIds.add(pid);
825
+ const author = authorByCommentId.get(id);
826
+ if (author)
827
+ includedAuthors.add(author);
828
+ }
829
+ // BFS over commentsExtended.xml's paraIdParent graph from each included
830
+ // root paraId. Skip entries that don't resolve to a real source comment so
831
+ // we never pull in dangling commentEx/people without a backing definition.
832
+ const sourceExtendedXml = await sourceArchive.getFile('word/commentsExtended.xml');
833
+ if (sourceExtendedXml) {
834
+ const exDoc = parseXml(sourceExtendedXml);
835
+ const exEls = exDoc.getElementsByTagName('w15:commentEx');
836
+ const childrenOf = new Map();
837
+ for (let i = 0; i < exEls.length; i++) {
838
+ const ex = exEls[i];
839
+ const childPid = ex.getAttribute('w15:paraId');
840
+ const parentPid = ex.getAttribute('w15:paraIdParent');
841
+ if (!childPid || !parentPid)
842
+ continue;
843
+ const arr = childrenOf.get(parentPid);
844
+ if (arr)
845
+ arr.push(childPid);
846
+ else
847
+ childrenOf.set(parentPid, [childPid]);
848
+ }
849
+ const queue = [...includedParaIds];
850
+ while (queue.length > 0) {
851
+ const pid = queue.shift();
852
+ const children = childrenOf.get(pid);
853
+ if (!children)
854
+ continue;
855
+ for (const childPid of children) {
856
+ if (includedParaIds.has(childPid))
857
+ continue;
858
+ const childCommentId = commentIdByParaId.get(childPid);
859
+ if (!childCommentId)
860
+ continue;
861
+ includedParaIds.add(childPid);
862
+ includedCommentIds.add(childCommentId);
863
+ const author = authorByCommentId.get(childCommentId);
864
+ if (author)
865
+ includedAuthors.add(author);
866
+ queue.push(childPid);
867
+ }
868
+ }
869
+ }
870
+ // Append any reply <w:comment> definitions still missing from result.
871
+ // The generic merge already added roots when needed; we add the replies
872
+ // (and any roots not yet present in the result, defensively).
873
+ await mergeMissingCommentDefinitions(resultArchive, commentById, includedCommentIds);
874
+ // Merge commentsExtended and people for the expanded set.
875
+ await mergeCommentsExtended(sourceArchive, resultArchive, includedParaIds);
876
+ await mergePeople(sourceArchive, resultArchive, includedAuthors);
801
877
  }
802
- async function mergeCommentsExtended(originalArchive, resultArchive, mergedParaIds) {
878
+ /**
879
+ * Append any source <w:comment> definitions in `includedCommentIds` that
880
+ * aren't already in result/word/comments.xml. Mirrors the append-with-importNode
881
+ * pattern used by mergeCommentsExtended below.
882
+ */
883
+ async function mergeMissingCommentDefinitions(resultArchive, commentById, includedCommentIds) {
884
+ if (includedCommentIds.size === 0)
885
+ return;
886
+ const resultXml = await resultArchive.getFile('word/comments.xml');
887
+ if (!resultXml) {
888
+ // If result has no comments.xml at all, the generic merge would have
889
+ // bootstrapped it for any included root. Nothing to do here.
890
+ return;
891
+ }
892
+ const resultDoc = parseXml(resultXml);
893
+ const rootEl = resultDoc.documentElement;
894
+ const existingIds = new Set();
895
+ const existing = rootEl.getElementsByTagName('w:comment');
896
+ for (let i = 0; i < existing.length; i++) {
897
+ const id = existing[i].getAttribute('w:id');
898
+ if (id)
899
+ existingIds.add(id);
900
+ }
901
+ let appended = false;
902
+ for (const id of includedCommentIds) {
903
+ if (existingIds.has(id))
904
+ continue;
905
+ const sourceEl = commentById.get(id);
906
+ if (!sourceEl)
907
+ continue;
908
+ rootEl.appendChild(resultDoc.importNode(sourceEl, true));
909
+ appended = true;
910
+ }
911
+ if (appended) {
912
+ resultArchive.setFile('word/comments.xml', serializer.serializeToString(resultDoc));
913
+ }
914
+ }
915
+ async function mergeCommentsExtended(sourceArchive, resultArchive, mergedParaIds) {
803
916
  if (mergedParaIds.size === 0)
804
917
  return;
805
- const originalXml = await originalArchive.getFile('word/commentsExtended.xml');
806
- if (!originalXml)
918
+ const sourceXml = await sourceArchive.getFile('word/commentsExtended.xml');
919
+ if (!sourceXml)
807
920
  return;
808
- const origDoc = parseXml(originalXml);
809
- const origEntries = origDoc.getElementsByTagName('w15:commentEx');
921
+ const sourceDoc = parseXml(sourceXml);
922
+ const sourceEntries = sourceDoc.getElementsByTagName('w15:commentEx');
810
923
  // Collect entries whose paraId matches a merged comment's paragraph
811
924
  const entriesToMerge = [];
812
- for (let i = 0; i < origEntries.length; i++) {
813
- const el = origEntries[i];
925
+ for (let i = 0; i < sourceEntries.length; i++) {
926
+ const el = sourceEntries[i];
814
927
  const paraId = el.getAttribute('w15:paraId');
815
928
  if (paraId && mergedParaIds.has(paraId)) {
816
929
  entriesToMerge.push(el);
@@ -818,11 +931,10 @@ async function mergeCommentsExtended(originalArchive, resultArchive, mergedParaI
818
931
  }
819
932
  if (entriesToMerge.length === 0)
820
933
  return;
821
- let resultXml = await resultArchive.getFile('word/commentsExtended.xml');
934
+ const resultXml = await resultArchive.getFile('word/commentsExtended.xml');
822
935
  if (resultXml) {
823
936
  const resultDoc = parseXml(resultXml);
824
937
  const rootEl = resultDoc.documentElement;
825
- // Check existing paraIds to avoid duplicates
826
938
  const existingParaIds = new Set();
827
939
  const existing = rootEl.getElementsByTagName('w15:commentEx');
828
940
  for (let i = 0; i < existing.length; i++) {
@@ -837,21 +949,55 @@ async function mergeCommentsExtended(originalArchive, resultArchive, mergedParaI
837
949
  }
838
950
  }
839
951
  resultArchive.setFile('word/commentsExtended.xml', serializer.serializeToString(resultDoc));
952
+ return;
840
953
  }
841
- // If commentsExtended.xml doesn't exist in result, we don't create it —
842
- // the file is optional and its absence won't cause crashes.
954
+ // Bootstrap: result lacks commentsExtended.xml but the merged comments
955
+ // depend on it for reply threading / done state. Clone the source's root
956
+ // (preserves namespaces), drop non-matching entries, then add OPC metadata.
957
+ const newDoc = parseXml(sourceXml);
958
+ const newRoot = newDoc.documentElement;
959
+ const allEntries = newRoot.getElementsByTagName('w15:commentEx');
960
+ const toRemove = [];
961
+ for (let i = 0; i < allEntries.length; i++) {
962
+ const el = allEntries[i];
963
+ const paraId = el.getAttribute('w15:paraId');
964
+ if (!paraId || !mergedParaIds.has(paraId))
965
+ toRemove.push(el);
966
+ }
967
+ for (const el of toRemove)
968
+ newRoot.removeChild(el);
969
+ resultArchive.setFile('word/commentsExtended.xml', serializer.serializeToString(newDoc));
970
+ await ensureOpcMetadata(resultArchive, COMMENTS_EXTENDED_DESCRIPTOR);
843
971
  }
844
- async function mergePeople(originalArchive, resultArchive, mergedAuthors) {
972
+ const COMMENTS_EXTENDED_DESCRIPTOR = {
973
+ label: 'commentsExtended',
974
+ partPath: 'word/commentsExtended.xml',
975
+ referenceTag: '',
976
+ entryTag: 'w15:commentEx',
977
+ rootTag: 'w15:commentsEx',
978
+ contentType: 'application/vnd.ms-word.commentsExtended+xml',
979
+ relationshipType: 'http://schemas.microsoft.com/office/2011/relationships/commentsExtended',
980
+ };
981
+ const PEOPLE_DESCRIPTOR = {
982
+ label: 'people',
983
+ partPath: 'word/people.xml',
984
+ referenceTag: '',
985
+ entryTag: 'w15:person',
986
+ rootTag: 'w15:people',
987
+ contentType: 'application/vnd.ms-word.people+xml',
988
+ relationshipType: 'http://schemas.microsoft.com/office/2011/relationships/people',
989
+ };
990
+ async function mergePeople(sourceArchive, resultArchive, mergedAuthors) {
845
991
  if (mergedAuthors.size === 0)
846
992
  return;
847
- const originalXml = await originalArchive.getFile('word/people.xml');
848
- if (!originalXml)
993
+ const sourceXml = await sourceArchive.getFile('word/people.xml');
994
+ if (!sourceXml)
849
995
  return;
850
- const origDoc = parseXml(originalXml);
851
- const origPersons = origDoc.getElementsByTagName('w15:person');
996
+ const sourceDoc = parseXml(sourceXml);
997
+ const sourcePersons = sourceDoc.getElementsByTagName('w15:person');
852
998
  const personsToMerge = [];
853
- for (let i = 0; i < origPersons.length; i++) {
854
- const el = origPersons[i];
999
+ for (let i = 0; i < sourcePersons.length; i++) {
1000
+ const el = sourcePersons[i];
855
1001
  const author = el.getAttribute('w15:author');
856
1002
  if (author && mergedAuthors.has(author)) {
857
1003
  personsToMerge.push(el);
@@ -859,11 +1005,10 @@ async function mergePeople(originalArchive, resultArchive, mergedAuthors) {
859
1005
  }
860
1006
  if (personsToMerge.length === 0)
861
1007
  return;
862
- let resultXml = await resultArchive.getFile('word/people.xml');
1008
+ const resultXml = await resultArchive.getFile('word/people.xml');
863
1009
  if (resultXml) {
864
1010
  const resultDoc = parseXml(resultXml);
865
1011
  const rootEl = resultDoc.documentElement;
866
- // Check existing authors to avoid duplicates
867
1012
  const existingAuthors = new Set();
868
1013
  const existing = rootEl.getElementsByTagName('w15:person');
869
1014
  for (let i = 0; i < existing.length; i++) {
@@ -878,9 +1023,24 @@ async function mergePeople(originalArchive, resultArchive, mergedAuthors) {
878
1023
  }
879
1024
  }
880
1025
  resultArchive.setFile('word/people.xml', serializer.serializeToString(resultDoc));
1026
+ return;
1027
+ }
1028
+ // Bootstrap: result lacks people.xml. Clone source root (preserves
1029
+ // namespaces), remove non-matching authors, then add OPC metadata.
1030
+ const newDoc = parseXml(sourceXml);
1031
+ const newRoot = newDoc.documentElement;
1032
+ const allPersons = newRoot.getElementsByTagName('w15:person');
1033
+ const toRemove = [];
1034
+ for (let i = 0; i < allPersons.length; i++) {
1035
+ const el = allPersons[i];
1036
+ const author = el.getAttribute('w15:author');
1037
+ if (!author || !mergedAuthors.has(author))
1038
+ toRemove.push(el);
881
1039
  }
882
- // If people.xml doesn't exist in result, we don't create it —
883
- // the file is optional and its absence won't cause crashes.
1040
+ for (const el of toRemove)
1041
+ newRoot.removeChild(el);
1042
+ resultArchive.setFile('word/people.xml', serializer.serializeToString(newDoc));
1043
+ await ensureOpcMetadata(resultArchive, PEOPLE_DESCRIPTOR);
884
1044
  }
885
1045
  /**
886
1046
  * Compute comparison statistics from merged atoms.
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/pipeline.ts"],"names":[],"mappings":"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"}