docxmlater 10.4.0 → 11.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/constants/legacyCompatFlags.d.ts +1 -1
- package/dist/constants/legacyCompatFlags.d.ts.map +1 -1
- package/dist/constants/legacyCompatFlags.js.map +1 -1
- package/dist/core/Document.d.ts +75 -67
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +618 -414
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentContent.d.ts +11 -10
- package/dist/core/DocumentContent.d.ts.map +1 -1
- package/dist/core/DocumentContent.js +19 -19
- package/dist/core/DocumentContent.js.map +1 -1
- package/dist/core/DocumentEvents.d.ts +39 -0
- package/dist/core/DocumentEvents.d.ts.map +1 -0
- package/dist/core/DocumentEvents.js +51 -0
- package/dist/core/DocumentEvents.js.map +1 -0
- package/dist/core/DocumentGenerator.d.ts +11 -11
- package/dist/core/DocumentGenerator.d.ts.map +1 -1
- package/dist/core/DocumentGenerator.js +72 -52
- package/dist/core/DocumentGenerator.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +15 -15
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +2100 -1076
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/core/DocumentValidator.d.ts +3 -3
- package/dist/core/DocumentValidator.d.ts.map +1 -1
- package/dist/core/DocumentValidator.js +31 -31
- package/dist/core/DocumentValidator.js.map +1 -1
- package/dist/core/ElementRegistry.d.ts +22 -0
- package/dist/core/ElementRegistry.d.ts.map +1 -0
- package/dist/core/ElementRegistry.js +27 -0
- package/dist/core/ElementRegistry.js.map +1 -0
- package/dist/core/Relationship.js +4 -4
- package/dist/core/Relationship.js.map +1 -1
- package/dist/core/RelationshipManager.d.ts +1 -1
- package/dist/core/RelationshipManager.d.ts.map +1 -1
- package/dist/core/RelationshipManager.js +32 -32
- package/dist/core/RelationshipManager.js.map +1 -1
- package/dist/elements/AlternateContent.d.ts +1 -1
- package/dist/elements/AlternateContent.d.ts.map +1 -1
- package/dist/elements/AlternateContent.js.map +1 -1
- package/dist/elements/Bookmark.d.ts +6 -1
- package/dist/elements/Bookmark.d.ts.map +1 -1
- package/dist/elements/Bookmark.js +19 -3
- package/dist/elements/Bookmark.js.map +1 -1
- package/dist/elements/BookmarkManager.d.ts +1 -1
- package/dist/elements/BookmarkManager.d.ts.map +1 -1
- package/dist/elements/BookmarkManager.js +7 -7
- package/dist/elements/BookmarkManager.js.map +1 -1
- package/dist/elements/Comment.d.ts +2 -2
- package/dist/elements/Comment.d.ts.map +1 -1
- package/dist/elements/Comment.js +4 -4
- package/dist/elements/Comment.js.map +1 -1
- package/dist/elements/CommentManager.d.ts +2 -2
- package/dist/elements/CommentManager.d.ts.map +1 -1
- package/dist/elements/CommentManager.js +9 -9
- package/dist/elements/CommentManager.js.map +1 -1
- package/dist/elements/CommonTypes.d.ts +9 -4
- package/dist/elements/CommonTypes.d.ts.map +1 -1
- package/dist/elements/CommonTypes.js +1 -0
- package/dist/elements/CommonTypes.js.map +1 -1
- package/dist/elements/CustomXml.d.ts +1 -1
- package/dist/elements/CustomXml.d.ts.map +1 -1
- package/dist/elements/CustomXml.js.map +1 -1
- package/dist/elements/Endnote.d.ts +2 -2
- package/dist/elements/Endnote.d.ts.map +1 -1
- package/dist/elements/Endnote.js +9 -9
- package/dist/elements/Endnote.js.map +1 -1
- package/dist/elements/EndnoteManager.d.ts +1 -1
- package/dist/elements/EndnoteManager.d.ts.map +1 -1
- package/dist/elements/EndnoteManager.js +11 -11
- package/dist/elements/EndnoteManager.js.map +1 -1
- package/dist/elements/Field.d.ts +9 -5
- package/dist/elements/Field.d.ts.map +1 -1
- package/dist/elements/Field.js +21 -9
- package/dist/elements/Field.js.map +1 -1
- package/dist/elements/FieldHelpers.d.ts +1 -1
- package/dist/elements/FieldHelpers.d.ts.map +1 -1
- package/dist/elements/FieldHelpers.js +10 -10
- package/dist/elements/FieldHelpers.js.map +1 -1
- package/dist/elements/Footer.d.ts +3 -3
- package/dist/elements/Footer.d.ts.map +1 -1
- package/dist/elements/Footer.js +5 -5
- package/dist/elements/Footer.js.map +1 -1
- package/dist/elements/Footnote.d.ts +2 -2
- package/dist/elements/Footnote.d.ts.map +1 -1
- package/dist/elements/Footnote.js +9 -9
- package/dist/elements/Footnote.js.map +1 -1
- package/dist/elements/FootnoteManager.d.ts +1 -1
- package/dist/elements/FootnoteManager.d.ts.map +1 -1
- package/dist/elements/FootnoteManager.js +11 -11
- package/dist/elements/FootnoteManager.js.map +1 -1
- package/dist/elements/Header.d.ts +3 -3
- package/dist/elements/Header.d.ts.map +1 -1
- package/dist/elements/Header.js +5 -5
- package/dist/elements/Header.js.map +1 -1
- package/dist/elements/HeaderFooterManager.d.ts +2 -2
- package/dist/elements/HeaderFooterManager.d.ts.map +1 -1
- package/dist/elements/HeaderFooterManager.js.map +1 -1
- package/dist/elements/Hyperlink.d.ts +5 -5
- package/dist/elements/Hyperlink.d.ts.map +1 -1
- package/dist/elements/Hyperlink.js +29 -29
- package/dist/elements/Hyperlink.js.map +1 -1
- package/dist/elements/Image.d.ts +1 -1
- package/dist/elements/Image.d.ts.map +1 -1
- package/dist/elements/Image.js +67 -67
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/ImageManager.d.ts +1 -1
- package/dist/elements/ImageManager.d.ts.map +1 -1
- package/dist/elements/ImageManager.js +4 -4
- package/dist/elements/ImageManager.js.map +1 -1
- package/dist/elements/ImageRun.d.ts +3 -3
- package/dist/elements/ImageRun.d.ts.map +1 -1
- package/dist/elements/ImageRun.js +2 -2
- package/dist/elements/ImageRun.js.map +1 -1
- package/dist/elements/MathElement.d.ts +1 -1
- package/dist/elements/MathElement.d.ts.map +1 -1
- package/dist/elements/MathElement.js.map +1 -1
- package/dist/elements/Paragraph.d.ts +34 -19
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +286 -231
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/elements/PreservedElement.d.ts +1 -1
- package/dist/elements/PreservedElement.d.ts.map +1 -1
- package/dist/elements/PreservedElement.js.map +1 -1
- package/dist/elements/PropertyChangeTypes.d.ts +2 -2
- package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
- package/dist/elements/PropertyChangeTypes.js.map +1 -1
- package/dist/elements/RangeMarker.d.ts +14 -1
- package/dist/elements/RangeMarker.d.ts.map +1 -1
- package/dist/elements/RangeMarker.js +46 -8
- package/dist/elements/RangeMarker.js.map +1 -1
- package/dist/elements/RegisteredBodyElement.d.ts +15 -0
- package/dist/elements/RegisteredBodyElement.d.ts.map +1 -0
- package/dist/elements/RegisteredBodyElement.js +44 -0
- package/dist/elements/RegisteredBodyElement.js.map +1 -0
- package/dist/elements/Revision.d.ts +8 -8
- package/dist/elements/Revision.d.ts.map +1 -1
- package/dist/elements/Revision.js +12 -12
- package/dist/elements/Revision.js.map +1 -1
- package/dist/elements/RevisionContent.d.ts +3 -3
- package/dist/elements/RevisionContent.d.ts.map +1 -1
- package/dist/elements/RevisionContent.js.map +1 -1
- package/dist/elements/RevisionManager.d.ts +2 -2
- package/dist/elements/RevisionManager.d.ts.map +1 -1
- package/dist/elements/RevisionManager.js +2 -2
- package/dist/elements/RevisionManager.js.map +1 -1
- package/dist/elements/Run.d.ts +16 -10
- package/dist/elements/Run.d.ts.map +1 -1
- package/dist/elements/Run.js +199 -173
- package/dist/elements/Run.js.map +1 -1
- package/dist/elements/Section.d.ts +4 -2
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +152 -145
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Shape.d.ts +3 -3
- package/dist/elements/Shape.d.ts.map +1 -1
- package/dist/elements/Shape.js +12 -12
- package/dist/elements/Shape.js.map +1 -1
- package/dist/elements/StructuredDocumentTag.d.ts +3 -3
- package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
- package/dist/elements/StructuredDocumentTag.js +39 -39
- package/dist/elements/StructuredDocumentTag.js.map +1 -1
- package/dist/elements/Table.d.ts +16 -10
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +118 -89
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableCell.d.ts +11 -11
- package/dist/elements/TableCell.d.ts.map +1 -1
- package/dist/elements/TableCell.js +108 -78
- package/dist/elements/TableCell.js.map +1 -1
- package/dist/elements/TableGridChange.d.ts +1 -1
- package/dist/elements/TableGridChange.d.ts.map +1 -1
- package/dist/elements/TableGridChange.js +3 -3
- package/dist/elements/TableGridChange.js.map +1 -1
- package/dist/elements/TableOfContents.d.ts +1 -1
- package/dist/elements/TableOfContents.d.ts.map +1 -1
- package/dist/elements/TableOfContents.js +2 -2
- package/dist/elements/TableOfContents.js.map +1 -1
- package/dist/elements/TableOfContentsElement.d.ts +2 -2
- package/dist/elements/TableOfContentsElement.d.ts.map +1 -1
- package/dist/elements/TableOfContentsElement.js +5 -5
- package/dist/elements/TableOfContentsElement.js.map +1 -1
- package/dist/elements/TableRow.d.ts +18 -7
- package/dist/elements/TableRow.d.ts.map +1 -1
- package/dist/elements/TableRow.js +127 -74
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/elements/TextBox.d.ts +4 -4
- package/dist/elements/TextBox.d.ts.map +1 -1
- package/dist/elements/TextBox.js +6 -6
- package/dist/elements/TextBox.js.map +1 -1
- package/dist/esm/constants/legacyCompatFlags.js +97 -0
- package/dist/esm/constants/legacyCompatFlags.js.map +1 -0
- package/dist/esm/constants/limits.js +36 -0
- package/dist/esm/constants/limits.js.map +1 -0
- package/dist/esm/core/Document.js +8498 -0
- package/dist/esm/core/Document.js.map +1 -0
- package/dist/esm/core/DocumentContent.js +190 -0
- package/dist/esm/core/DocumentContent.js.map +1 -0
- package/dist/esm/core/DocumentEvents.js +47 -0
- package/dist/esm/core/DocumentEvents.js.map +1 -0
- package/dist/esm/core/DocumentGenerator.js +764 -0
- package/dist/esm/core/DocumentGenerator.js.map +1 -0
- package/dist/esm/core/DocumentIdManager.js +67 -0
- package/dist/esm/core/DocumentIdManager.js.map +1 -0
- package/dist/esm/core/DocumentParser.js +8760 -0
- package/dist/esm/core/DocumentParser.js.map +1 -0
- package/dist/esm/core/DocumentValidator.js +222 -0
- package/dist/esm/core/DocumentValidator.js.map +1 -0
- package/dist/esm/core/ElementRegistry.js +24 -0
- package/dist/esm/core/ElementRegistry.js.map +1 -0
- package/dist/esm/core/Relationship.js +177 -0
- package/dist/esm/core/Relationship.js.map +1 -0
- package/dist/esm/core/RelationshipManager.js +202 -0
- package/dist/esm/core/RelationshipManager.js.map +1 -0
- package/dist/esm/elements/AlternateContent.js +19 -0
- package/dist/esm/elements/AlternateContent.js.map +1 -0
- package/dist/esm/elements/Bookmark.js +115 -0
- package/dist/esm/elements/Bookmark.js.map +1 -0
- package/dist/esm/elements/BookmarkManager.js +99 -0
- package/dist/esm/elements/BookmarkManager.js.map +1 -0
- package/dist/esm/elements/Comment.js +181 -0
- package/dist/esm/elements/Comment.js.map +1 -0
- package/dist/esm/elements/CommentManager.js +233 -0
- package/dist/esm/elements/CommentManager.js.map +1 -0
- package/dist/esm/elements/CommonTypes.js +106 -0
- package/dist/esm/elements/CommonTypes.js.map +1 -0
- package/dist/esm/elements/CustomXml.js +19 -0
- package/dist/esm/elements/CustomXml.js.map +1 -0
- package/dist/esm/elements/Endnote.js +107 -0
- package/dist/esm/elements/Endnote.js.map +1 -0
- package/dist/esm/elements/EndnoteManager.js +119 -0
- package/dist/esm/elements/EndnoteManager.js.map +1 -0
- package/dist/esm/elements/Field.js +856 -0
- package/dist/esm/elements/Field.js.map +1 -0
- package/dist/esm/elements/FieldHelpers.js +134 -0
- package/dist/esm/elements/FieldHelpers.js.map +1 -0
- package/dist/esm/elements/FontManager.js +158 -0
- package/dist/esm/elements/FontManager.js.map +1 -0
- package/dist/esm/elements/Footer.js +141 -0
- package/dist/esm/elements/Footer.js.map +1 -0
- package/dist/esm/elements/Footnote.js +107 -0
- package/dist/esm/elements/Footnote.js.map +1 -0
- package/dist/esm/elements/FootnoteManager.js +119 -0
- package/dist/esm/elements/FootnoteManager.js.map +1 -0
- package/dist/esm/elements/Header.js +141 -0
- package/dist/esm/elements/Header.js.map +1 -0
- package/dist/esm/elements/HeaderFooterManager.js +87 -0
- package/dist/esm/elements/HeaderFooterManager.js.map +1 -0
- package/dist/esm/elements/Hyperlink.js +586 -0
- package/dist/esm/elements/Hyperlink.js.map +1 -0
- package/dist/esm/elements/Image.js +1288 -0
- package/dist/esm/elements/Image.js.map +1 -0
- package/dist/esm/elements/ImageManager.js +223 -0
- package/dist/esm/elements/ImageManager.js.map +1 -0
- package/dist/esm/elements/ImageRun.js +29 -0
- package/dist/esm/elements/ImageRun.js.map +1 -0
- package/dist/esm/elements/MathElement.js +37 -0
- package/dist/esm/elements/MathElement.js.map +1 -0
- package/dist/esm/elements/Paragraph.js +2308 -0
- package/dist/esm/elements/Paragraph.js.map +1 -0
- package/dist/esm/elements/PreservedElement.js +29 -0
- package/dist/esm/elements/PreservedElement.js.map +1 -0
- package/dist/esm/elements/PropertyChangeTypes.js +53 -0
- package/dist/esm/elements/PropertyChangeTypes.js.map +1 -0
- package/dist/esm/elements/RangeMarker.js +219 -0
- package/dist/esm/elements/RangeMarker.js.map +1 -0
- package/dist/esm/elements/RegisteredBodyElement.js +40 -0
- package/dist/esm/elements/RegisteredBodyElement.js.map +1 -0
- package/dist/esm/elements/Revision.js +498 -0
- package/dist/esm/elements/Revision.js.map +1 -0
- package/dist/esm/elements/RevisionContent.js +18 -0
- package/dist/esm/elements/RevisionContent.js.map +1 -0
- package/dist/esm/elements/RevisionManager.js +486 -0
- package/dist/esm/elements/RevisionManager.js.map +1 -0
- package/dist/esm/elements/Run.js +1465 -0
- package/dist/esm/elements/Run.js.map +1 -0
- package/dist/esm/elements/Section.js +978 -0
- package/dist/esm/elements/Section.js.map +1 -0
- package/dist/esm/elements/Shape.js +493 -0
- package/dist/esm/elements/Shape.js.map +1 -0
- package/dist/esm/elements/StructuredDocumentTag.js +471 -0
- package/dist/esm/elements/StructuredDocumentTag.js.map +1 -0
- package/dist/esm/elements/Table.js +1456 -0
- package/dist/esm/elements/Table.js.map +1 -0
- package/dist/esm/elements/TableCell.js +835 -0
- package/dist/esm/elements/TableCell.js.map +1 -0
- package/dist/esm/elements/TableGridChange.js +52 -0
- package/dist/esm/elements/TableGridChange.js.map +1 -0
- package/dist/esm/elements/TableOfContents.js +389 -0
- package/dist/esm/elements/TableOfContents.js.map +1 -0
- package/dist/esm/elements/TableOfContentsElement.js +29 -0
- package/dist/esm/elements/TableOfContentsElement.js.map +1 -0
- package/dist/esm/elements/TableRow.js +555 -0
- package/dist/esm/elements/TableRow.js.map +1 -0
- package/dist/esm/elements/TextBox.js +459 -0
- package/dist/esm/elements/TextBox.js.map +1 -0
- package/dist/esm/formatting/AbstractNumbering.js +325 -0
- package/dist/esm/formatting/AbstractNumbering.js.map +1 -0
- package/dist/esm/formatting/NumberingInstance.js +150 -0
- package/dist/esm/formatting/NumberingInstance.js.map +1 -0
- package/dist/esm/formatting/NumberingLevel.js +608 -0
- package/dist/esm/formatting/NumberingLevel.js.map +1 -0
- package/dist/esm/formatting/NumberingManager.js +423 -0
- package/dist/esm/formatting/NumberingManager.js.map +1 -0
- package/dist/esm/formatting/Style.js +1151 -0
- package/dist/esm/formatting/Style.js.map +1 -0
- package/dist/esm/formatting/StylesManager.js +557 -0
- package/dist/esm/formatting/StylesManager.js.map +1 -0
- package/dist/esm/helpers/CleanupHelper.js +350 -0
- package/dist/esm/helpers/CleanupHelper.js.map +1 -0
- package/dist/esm/images/ImageOptimizer.js +161 -0
- package/dist/esm/images/ImageOptimizer.js.map +1 -0
- package/dist/esm/index.js +75 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal.js +16 -0
- package/dist/esm/internal.js.map +1 -0
- package/dist/esm/managers/DrawingManager.js +163 -0
- package/dist/esm/managers/DrawingManager.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/processors/ChangelogGenerator.js +970 -0
- package/dist/esm/processors/ChangelogGenerator.js.map +1 -0
- package/dist/esm/processors/CompatibilityUpgrader.js +130 -0
- package/dist/esm/processors/CompatibilityUpgrader.js.map +1 -0
- package/dist/esm/processors/InMemoryRevisionAcceptor.js +530 -0
- package/dist/esm/processors/InMemoryRevisionAcceptor.js.map +1 -0
- package/dist/esm/processors/MoveOperationHelper.js +57 -0
- package/dist/esm/processors/MoveOperationHelper.js.map +1 -0
- package/dist/esm/processors/RevisionAwareProcessor.js +232 -0
- package/dist/esm/processors/RevisionAwareProcessor.js.map +1 -0
- package/dist/esm/processors/RevisionWalker.js +278 -0
- package/dist/esm/processors/RevisionWalker.js.map +1 -0
- package/dist/{utils → esm/processors}/SelectiveRevisionAcceptor.js +81 -42
- package/dist/esm/processors/SelectiveRevisionAcceptor.js.map +1 -0
- package/dist/esm/processors/ShadingResolver.js +66 -0
- package/dist/esm/processors/ShadingResolver.js.map +1 -0
- package/dist/esm/processors/acceptRevisions.js +416 -0
- package/dist/esm/processors/acceptRevisions.js.map +1 -0
- package/dist/esm/processors/cnfStyleDecoder.js +89 -0
- package/dist/esm/processors/cnfStyleDecoder.js.map +1 -0
- package/dist/esm/processors/stripTrackedChanges.js +201 -0
- package/dist/esm/processors/stripTrackedChanges.js.map +1 -0
- package/dist/esm/tracking/DocumentTrackingContext.js +531 -0
- package/dist/esm/tracking/DocumentTrackingContext.js.map +1 -0
- package/dist/esm/tracking/TrackingContext.js +2 -0
- package/dist/esm/tracking/TrackingContext.js.map +1 -0
- package/dist/esm/types/compatibility-types.js +8 -0
- package/dist/esm/types/compatibility-types.js.map +1 -0
- package/dist/esm/types/document-types.js +2 -0
- package/dist/esm/types/document-types.js.map +1 -0
- package/dist/esm/types/formatting.js +2 -0
- package/dist/esm/types/formatting.js.map +1 -0
- package/dist/esm/types/list-types.js +2 -0
- package/dist/esm/types/list-types.js.map +1 -0
- package/dist/esm/types/settings-types.js +2 -0
- package/dist/esm/types/settings-types.js.map +1 -0
- package/dist/esm/types/styleConfig.js +2 -0
- package/dist/esm/types/styleConfig.js.map +1 -0
- package/dist/esm/utils/KeyedRegistry.js +32 -0
- package/dist/esm/utils/KeyedRegistry.js.map +1 -0
- package/dist/esm/utils/corruptionDetection.js +155 -0
- package/dist/esm/utils/corruptionDetection.js.map +1 -0
- package/dist/esm/utils/dateFormatting.js +4 -0
- package/dist/esm/utils/dateFormatting.js.map +1 -0
- package/dist/esm/utils/deepClone.js +40 -0
- package/dist/esm/utils/deepClone.js.map +1 -0
- package/dist/esm/utils/deepEqual.js +47 -0
- package/dist/esm/utils/deepEqual.js.map +1 -0
- package/dist/esm/utils/diagnostics.js +69 -0
- package/dist/esm/utils/diagnostics.js.map +1 -0
- package/dist/esm/utils/errorHandling.js +36 -0
- package/dist/esm/utils/errorHandling.js.map +1 -0
- package/dist/esm/utils/formatting.js +93 -0
- package/dist/esm/utils/formatting.js.map +1 -0
- package/dist/esm/utils/list-detection.js +148 -0
- package/dist/esm/utils/list-detection.js.map +1 -0
- package/dist/esm/utils/logger.js +205 -0
- package/dist/esm/utils/logger.js.map +1 -0
- package/dist/esm/utils/parsingHelpers.js +56 -0
- package/dist/esm/utils/parsingHelpers.js.map +1 -0
- package/dist/esm/utils/textDiff.js +42 -0
- package/dist/esm/utils/textDiff.js.map +1 -0
- package/dist/esm/utils/units.js +152 -0
- package/dist/esm/utils/units.js.map +1 -0
- package/dist/esm/utils/validation.js +285 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/dist/esm/utils/xmlSanitization.js +54 -0
- package/dist/esm/utils/xmlSanitization.js.map +1 -0
- package/dist/esm/validation/RevisionAutoFixer.js +340 -0
- package/dist/esm/validation/RevisionAutoFixer.js.map +1 -0
- package/dist/esm/validation/RevisionValidator.js +240 -0
- package/dist/esm/validation/RevisionValidator.js.map +1 -0
- package/dist/esm/validation/ValidationRuleRegistry.js +40 -0
- package/dist/esm/validation/ValidationRuleRegistry.js.map +1 -0
- package/dist/esm/validation/ValidationRules.js +92 -0
- package/dist/esm/validation/ValidationRules.js.map +1 -0
- package/dist/esm/validation/index.js +4 -0
- package/dist/esm/validation/index.js.map +1 -0
- package/dist/esm/xml/XMLBuilder.js +434 -0
- package/dist/esm/xml/XMLBuilder.js.map +1 -0
- package/dist/esm/xml/XMLParser.js +486 -0
- package/dist/esm/xml/XMLParser.js.map +1 -0
- package/dist/esm/zip/ZipHandler.js +298 -0
- package/dist/esm/zip/ZipHandler.js.map +1 -0
- package/dist/esm/zip/ZipReader.js +147 -0
- package/dist/esm/zip/ZipReader.js.map +1 -0
- package/dist/esm/zip/ZipWriter.js +199 -0
- package/dist/esm/zip/ZipWriter.js.map +1 -0
- package/dist/esm/zip/errors.js +43 -0
- package/dist/esm/zip/errors.js.map +1 -0
- package/dist/esm/zip/types.js +31 -0
- package/dist/esm/zip/types.js.map +1 -0
- package/dist/formatting/AbstractNumbering.d.ts +2 -2
- package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
- package/dist/formatting/AbstractNumbering.js +33 -33
- package/dist/formatting/AbstractNumbering.js.map +1 -1
- package/dist/formatting/NumberingInstance.d.ts +2 -2
- package/dist/formatting/NumberingInstance.d.ts.map +1 -1
- package/dist/formatting/NumberingInstance.js +7 -7
- package/dist/formatting/NumberingInstance.js.map +1 -1
- package/dist/formatting/NumberingLevel.d.ts +11 -2
- package/dist/formatting/NumberingLevel.d.ts.map +1 -1
- package/dist/formatting/NumberingLevel.js +111 -25
- package/dist/formatting/NumberingLevel.js.map +1 -1
- package/dist/formatting/NumberingManager.d.ts +4 -4
- package/dist/formatting/NumberingManager.d.ts.map +1 -1
- package/dist/formatting/NumberingManager.js +28 -28
- package/dist/formatting/NumberingManager.js.map +1 -1
- package/dist/formatting/Style.d.ts +14 -7
- package/dist/formatting/Style.d.ts.map +1 -1
- package/dist/formatting/Style.js +309 -112
- package/dist/formatting/Style.js.map +1 -1
- package/dist/formatting/StylesManager.d.ts +2 -2
- package/dist/formatting/StylesManager.d.ts.map +1 -1
- package/dist/formatting/StylesManager.js +52 -52
- package/dist/formatting/StylesManager.js.map +1 -1
- package/dist/helpers/CleanupHelper.d.ts +1 -1
- package/dist/helpers/CleanupHelper.d.ts.map +1 -1
- package/dist/helpers/CleanupHelper.js +15 -15
- package/dist/helpers/CleanupHelper.js.map +1 -1
- package/dist/index.d.ts +81 -90
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +286 -317
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +16 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +42 -0
- package/dist/internal.js.map +1 -0
- package/dist/managers/DrawingManager.d.ts +3 -3
- package/dist/managers/DrawingManager.d.ts.map +1 -1
- package/dist/managers/DrawingManager.js +12 -12
- package/dist/managers/DrawingManager.js.map +1 -1
- package/dist/{utils → processors}/ChangelogGenerator.d.ts +2 -2
- package/dist/processors/ChangelogGenerator.d.ts.map +1 -0
- package/dist/{utils → processors}/ChangelogGenerator.js +2 -2
- package/dist/processors/ChangelogGenerator.js.map +1 -0
- package/dist/processors/CompatibilityUpgrader.d.ts.map +1 -0
- package/dist/{utils → processors}/CompatibilityUpgrader.js +10 -10
- package/dist/processors/CompatibilityUpgrader.js.map +1 -0
- package/dist/{utils → processors}/InMemoryRevisionAcceptor.d.ts +3 -3
- package/dist/processors/InMemoryRevisionAcceptor.d.ts.map +1 -0
- package/dist/{utils → processors}/InMemoryRevisionAcceptor.js +84 -27
- package/dist/processors/InMemoryRevisionAcceptor.js.map +1 -0
- package/dist/{utils → processors}/MoveOperationHelper.d.ts +4 -4
- package/dist/processors/MoveOperationHelper.d.ts.map +1 -0
- package/dist/{utils → processors}/MoveOperationHelper.js +10 -10
- package/dist/processors/MoveOperationHelper.js.map +1 -0
- package/dist/{utils → processors}/RevisionAwareProcessor.d.ts +3 -3
- package/dist/processors/RevisionAwareProcessor.d.ts.map +1 -0
- package/dist/{utils → processors}/RevisionAwareProcessor.js +2 -2
- package/dist/processors/RevisionAwareProcessor.js.map +1 -0
- package/dist/{utils → processors}/RevisionWalker.d.ts +2 -1
- package/dist/processors/RevisionWalker.d.ts.map +1 -0
- package/dist/{utils → processors}/RevisionWalker.js +28 -0
- package/dist/processors/RevisionWalker.js.map +1 -0
- package/dist/{utils → processors}/SelectiveRevisionAcceptor.d.ts +4 -3
- package/dist/processors/SelectiveRevisionAcceptor.d.ts.map +1 -0
- package/dist/processors/SelectiveRevisionAcceptor.js +402 -0
- package/dist/processors/SelectiveRevisionAcceptor.js.map +1 -0
- package/dist/processors/ShadingResolver.d.ts +6 -0
- package/dist/processors/ShadingResolver.d.ts.map +1 -0
- package/dist/{utils → processors}/ShadingResolver.js +2 -2
- package/dist/processors/ShadingResolver.js.map +1 -0
- package/dist/{utils → processors}/acceptRevisions.d.ts +1 -1
- package/dist/processors/acceptRevisions.d.ts.map +1 -0
- package/dist/{utils → processors}/acceptRevisions.js +24 -4
- package/dist/processors/acceptRevisions.js.map +1 -0
- package/dist/{utils → processors}/cnfStyleDecoder.d.ts +1 -1
- package/dist/processors/cnfStyleDecoder.d.ts.map +1 -0
- package/dist/processors/cnfStyleDecoder.js.map +1 -0
- package/dist/processors/stripTrackedChanges.d.ts +3 -0
- package/dist/processors/stripTrackedChanges.d.ts.map +1 -0
- package/dist/{utils → processors}/stripTrackedChanges.js +16 -6
- package/dist/processors/stripTrackedChanges.js.map +1 -0
- package/dist/tracking/DocumentTrackingContext.d.ts +4 -4
- package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js +38 -43
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.d.ts +8 -8
- package/dist/tracking/TrackingContext.d.ts.map +1 -1
- package/dist/tracking/TrackingContext.js.map +1 -1
- package/dist/types/document-types.d.ts +28 -0
- package/dist/types/document-types.d.ts.map +1 -0
- package/dist/types/document-types.js +3 -0
- package/dist/types/document-types.js.map +1 -0
- package/dist/types/formatting.d.ts +4 -4
- package/dist/types/formatting.d.ts.map +1 -1
- package/dist/types/formatting.js.map +1 -1
- package/dist/types/settings-types.d.ts +6 -0
- package/dist/types/settings-types.d.ts.map +1 -1
- package/dist/types/settings-types.js.map +1 -1
- package/dist/utils/KeyedRegistry.d.ts +13 -0
- package/dist/utils/KeyedRegistry.d.ts.map +1 -0
- package/dist/utils/KeyedRegistry.js +36 -0
- package/dist/utils/KeyedRegistry.js.map +1 -0
- package/dist/utils/corruptionDetection.d.ts +1 -1
- package/dist/utils/corruptionDetection.d.ts.map +1 -1
- package/dist/utils/corruptionDetection.js +4 -4
- package/dist/utils/corruptionDetection.js.map +1 -1
- package/dist/utils/deepEqual.d.ts +2 -0
- package/dist/utils/deepEqual.d.ts.map +1 -0
- package/dist/utils/deepEqual.js +50 -0
- package/dist/utils/deepEqual.js.map +1 -0
- package/dist/utils/list-detection.d.ts +2 -2
- package/dist/utils/list-detection.d.ts.map +1 -1
- package/dist/utils/list-detection.js.map +1 -1
- package/dist/utils/parsingHelpers.d.ts +1 -1
- package/dist/utils/parsingHelpers.d.ts.map +1 -1
- package/dist/utils/parsingHelpers.js +2 -2
- package/dist/utils/parsingHelpers.js.map +1 -1
- package/dist/utils/validation.js +7 -7
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/xmlSanitization.js +2 -2
- package/dist/utils/xmlSanitization.js.map +1 -1
- package/dist/validation/RevisionAutoFixer.d.ts +4 -4
- package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
- package/dist/validation/RevisionAutoFixer.js +11 -11
- package/dist/validation/RevisionAutoFixer.js.map +1 -1
- package/dist/validation/RevisionValidator.d.ts +5 -4
- package/dist/validation/RevisionValidator.d.ts.map +1 -1
- package/dist/validation/RevisionValidator.js +29 -30
- package/dist/validation/RevisionValidator.js.map +1 -1
- package/dist/validation/ValidationRuleRegistry.d.ts +27 -0
- package/dist/validation/ValidationRuleRegistry.d.ts.map +1 -0
- package/dist/validation/ValidationRuleRegistry.js +43 -0
- package/dist/validation/ValidationRuleRegistry.js.map +1 -0
- package/dist/validation/index.d.ts +3 -3
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +10 -10
- package/dist/validation/index.js.map +1 -1
- package/dist/xml/XMLBuilder.d.ts +6 -1
- package/dist/xml/XMLBuilder.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.js +11 -6
- package/dist/xml/XMLBuilder.js.map +1 -1
- package/dist/xml/XMLParser.js +6 -6
- package/dist/xml/XMLParser.js.map +1 -1
- package/dist/zip/ZipHandler.d.ts +1 -1
- package/dist/zip/ZipHandler.d.ts.map +1 -1
- package/dist/zip/ZipHandler.js +8 -8
- package/dist/zip/ZipHandler.js.map +1 -1
- package/dist/zip/ZipReader.d.ts +1 -1
- package/dist/zip/ZipReader.d.ts.map +1 -1
- package/dist/zip/ZipReader.js +14 -14
- package/dist/zip/ZipReader.js.map +1 -1
- package/dist/zip/ZipWriter.d.ts +1 -1
- package/dist/zip/ZipWriter.d.ts.map +1 -1
- package/dist/zip/ZipWriter.js +10 -10
- package/dist/zip/ZipWriter.js.map +1 -1
- package/package.json +20 -4
- package/src/constants/legacyCompatFlags.ts +1 -1
- package/src/core/Document.ts +478 -167
- package/src/core/DocumentContent.ts +14 -11
- package/src/core/DocumentEvents.ts +90 -0
- package/src/core/DocumentGenerator.ts +49 -22
- package/src/core/DocumentParser.ts +2235 -620
- package/src/core/DocumentValidator.ts +7 -7
- package/src/core/ElementRegistry.ts +69 -0
- package/src/core/Relationship.ts +1 -1
- package/src/core/RelationshipManager.ts +4 -4
- package/src/elements/AlternateContent.ts +1 -1
- package/src/elements/Bookmark.ts +52 -4
- package/src/elements/BookmarkManager.ts +2 -2
- package/src/elements/Comment.ts +3 -3
- package/src/elements/CommentManager.ts +4 -4
- package/src/elements/CommonTypes.ts +45 -7
- package/src/elements/CustomXml.ts +1 -1
- package/src/elements/Endnote.ts +2 -2
- package/src/elements/EndnoteManager.ts +3 -3
- package/src/elements/Field.ts +44 -10
- package/src/elements/FieldHelpers.ts +2 -2
- package/src/elements/Footer.ts +4 -4
- package/src/elements/Footnote.ts +2 -2
- package/src/elements/FootnoteManager.ts +3 -3
- package/src/elements/Header.ts +4 -4
- package/src/elements/HeaderFooterManager.ts +2 -2
- package/src/elements/Hyperlink.ts +16 -12
- package/src/elements/Image.ts +3 -3
- package/src/elements/ImageManager.ts +2 -2
- package/src/elements/ImageRun.ts +3 -3
- package/src/elements/MathElement.ts +1 -1
- package/src/elements/Paragraph.ts +221 -88
- package/src/elements/PreservedElement.ts +1 -1
- package/src/elements/PropertyChangeTypes.ts +2 -2
- package/src/elements/RangeMarker.ts +153 -12
- package/src/elements/RegisteredBodyElement.ts +52 -0
- package/src/elements/Revision.ts +14 -14
- package/src/elements/RevisionContent.ts +3 -3
- package/src/elements/RevisionManager.ts +3 -3
- package/src/elements/Run.ts +221 -94
- package/src/elements/Section.ts +136 -69
- package/src/elements/Shape.ts +4 -4
- package/src/elements/StructuredDocumentTag.ts +3 -3
- package/src/elements/Table.ts +91 -27
- package/src/elements/TableCell.ts +62 -34
- package/src/elements/TableGridChange.ts +1 -1
- package/src/elements/TableOfContents.ts +1 -1
- package/src/elements/TableOfContentsElement.ts +2 -2
- package/src/elements/TableRow.ts +192 -48
- package/src/elements/TextBox.ts +5 -5
- package/src/formatting/AbstractNumbering.ts +3 -3
- package/src/formatting/NumberingInstance.ts +2 -2
- package/src/formatting/NumberingLevel.ts +201 -10
- package/src/formatting/NumberingManager.ts +5 -5
- package/src/formatting/Style.ts +382 -86
- package/src/formatting/StylesManager.ts +4 -4
- package/src/helpers/CleanupHelper.ts +6 -6
- package/src/index.ts +118 -127
- package/src/internal.ts +79 -0
- package/src/managers/DrawingManager.ts +3 -3
- package/src/{utils → processors}/ChangelogGenerator.ts +3 -3
- package/src/{utils → processors}/CompatibilityUpgrader.ts +2 -2
- package/src/{utils → processors}/InMemoryRevisionAcceptor.ts +100 -12
- package/src/{utils → processors}/MoveOperationHelper.ts +5 -5
- package/src/{utils → processors}/RevisionAwareProcessor.ts +3 -3
- package/src/{utils → processors}/RevisionWalker.ts +42 -1
- package/src/{utils → processors}/SelectiveRevisionAcceptor.ts +98 -39
- package/src/{utils → processors}/ShadingResolver.ts +5 -5
- package/src/{utils → processors}/acceptRevisions.ts +77 -9
- package/src/{utils → processors}/cnfStyleDecoder.ts +1 -1
- package/src/{utils → processors}/stripTrackedChanges.ts +35 -10
- package/src/tracking/DocumentTrackingContext.ts +12 -14
- package/src/tracking/TrackingContext.ts +8 -8
- package/src/types/document-types.ts +53 -0
- package/src/types/formatting.ts +4 -4
- package/src/types/settings-types.ts +32 -0
- package/src/utils/KeyedRegistry.ts +41 -0
- package/src/utils/corruptionDetection.ts +2 -2
- package/src/utils/deepEqual.ts +58 -0
- package/src/utils/list-detection.ts +2 -2
- package/src/utils/parsingHelpers.ts +11 -3
- package/src/utils/validation.ts +3 -3
- package/src/utils/xmlSanitization.ts +1 -1
- package/src/validation/RevisionAutoFixer.ts +5 -5
- package/src/validation/RevisionValidator.ts +39 -28
- package/src/validation/ValidationRuleRegistry.ts +86 -0
- package/src/validation/index.ts +3 -3
- package/src/xml/XMLBuilder.ts +13 -3
- package/src/xml/XMLParser.ts +2 -2
- package/src/zip/ZipHandler.ts +4 -4
- package/src/zip/ZipReader.ts +3 -3
- package/src/zip/ZipWriter.ts +3 -3
- package/dist/utils/ChangelogGenerator.d.ts.map +0 -1
- package/dist/utils/ChangelogGenerator.js.map +0 -1
- package/dist/utils/CompatibilityUpgrader.d.ts.map +0 -1
- package/dist/utils/CompatibilityUpgrader.js.map +0 -1
- package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +0 -1
- package/dist/utils/InMemoryRevisionAcceptor.js.map +0 -1
- package/dist/utils/MoveOperationHelper.d.ts.map +0 -1
- package/dist/utils/MoveOperationHelper.js.map +0 -1
- package/dist/utils/RevisionAwareProcessor.d.ts.map +0 -1
- package/dist/utils/RevisionAwareProcessor.js.map +0 -1
- package/dist/utils/RevisionWalker.d.ts.map +0 -1
- package/dist/utils/RevisionWalker.js.map +0 -1
- package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +0 -1
- package/dist/utils/SelectiveRevisionAcceptor.js.map +0 -1
- package/dist/utils/ShadingResolver.d.ts +0 -6
- package/dist/utils/ShadingResolver.d.ts.map +0 -1
- package/dist/utils/ShadingResolver.js.map +0 -1
- package/dist/utils/acceptRevisions.d.ts.map +0 -1
- package/dist/utils/acceptRevisions.js.map +0 -1
- package/dist/utils/cnfStyleDecoder.d.ts.map +0 -1
- package/dist/utils/cnfStyleDecoder.js.map +0 -1
- package/dist/utils/stripTrackedChanges.d.ts +0 -3
- package/dist/utils/stripTrackedChanges.d.ts.map +0 -1
- package/dist/utils/stripTrackedChanges.js.map +0 -1
- package/src/__tests__/helper-methods.test.ts +0 -512
- package/src/constants/CLAUDE.md +0 -28
- package/src/core/CLAUDE.md +0 -113
- package/src/elements/CLAUDE.md +0 -142
- package/src/formatting/CLAUDE.md +0 -78
- package/src/managers/CLAUDE.md +0 -47
- package/src/tracking/CLAUDE.md +0 -30
- package/src/types/CLAUDE.md +0 -39
- package/src/utils/CLAUDE.md +0 -168
- package/src/validation/CLAUDE.md +0 -40
- package/src/xml/CLAUDE.md +0 -65
- package/src/zip/CLAUDE.md +0 -55
- /package/dist/{utils → processors}/CompatibilityUpgrader.d.ts +0 -0
- /package/dist/{utils → processors}/cnfStyleDecoder.js +0 -0
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* They enable Word to properly display and manage complex revision regions.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { XMLElement } from '../xml/XMLBuilder';
|
|
9
|
-
import { formatDateForXml } from '../utils/dateFormatting';
|
|
8
|
+
import { XMLElement } from '../xml/XMLBuilder.js';
|
|
9
|
+
import { formatDateForXml } from '../utils/dateFormatting.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Range marker type
|
|
@@ -25,6 +25,13 @@ export type RangeMarkerType =
|
|
|
25
25
|
| 'customXmlDelRangeStart'
|
|
26
26
|
| 'customXmlDelRangeEnd';
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* `w:displacedByCustomXml` attribute value per ECMA-376 §17.13.5 — ST_DisplacedByCustomXml.
|
|
30
|
+
* Indicates which side of a custom-XML boundary a displaced range marker
|
|
31
|
+
* semantically belongs to.
|
|
32
|
+
*/
|
|
33
|
+
export type DisplacedByCustomXml = 'next' | 'prev';
|
|
34
|
+
|
|
28
35
|
/**
|
|
29
36
|
* Range marker properties
|
|
30
37
|
*/
|
|
@@ -39,6 +46,26 @@ export interface RangeMarkerProperties {
|
|
|
39
46
|
author?: string;
|
|
40
47
|
/** Date when the change was made (for start markers only) */
|
|
41
48
|
date?: Date;
|
|
49
|
+
/**
|
|
50
|
+
* `w:displacedByCustomXml` per ECMA-376 CT_MarkupRange / CT_MoveBookmark.
|
|
51
|
+
* Only valid on moveFromRangeStart, moveToRangeStart, moveFromRangeEnd,
|
|
52
|
+
* and moveToRangeEnd (the CT_MarkupRange-derived marker types).
|
|
53
|
+
* Ignored on serialize for other types. "next" / "prev".
|
|
54
|
+
*/
|
|
55
|
+
displacedByCustomXml?: DisplacedByCustomXml;
|
|
56
|
+
/**
|
|
57
|
+
* `w:colFirst` per ECMA-376 CT_BookmarkRange — first column index for
|
|
58
|
+
* table-column-scoped moves. Only valid on moveFromRangeStart /
|
|
59
|
+
* moveToRangeStart (CT_MoveBookmark-derived). Ignored on serialize for
|
|
60
|
+
* other types. 0-based, inclusive.
|
|
61
|
+
*/
|
|
62
|
+
colFirst?: number;
|
|
63
|
+
/**
|
|
64
|
+
* `w:colLast` per ECMA-376 CT_BookmarkRange — last column index for
|
|
65
|
+
* table-column-scoped moves. Only valid on moveFromRangeStart /
|
|
66
|
+
* moveToRangeStart. 0-based, inclusive.
|
|
67
|
+
*/
|
|
68
|
+
colLast?: number;
|
|
42
69
|
}
|
|
43
70
|
|
|
44
71
|
/**
|
|
@@ -51,6 +78,9 @@ export class RangeMarker {
|
|
|
51
78
|
private name?: string;
|
|
52
79
|
private author?: string;
|
|
53
80
|
private date?: Date;
|
|
81
|
+
private displacedByCustomXml?: DisplacedByCustomXml;
|
|
82
|
+
private colFirst?: number;
|
|
83
|
+
private colLast?: number;
|
|
54
84
|
|
|
55
85
|
/**
|
|
56
86
|
* Creates a new RangeMarker
|
|
@@ -62,6 +92,9 @@ export class RangeMarker {
|
|
|
62
92
|
this.name = properties.name;
|
|
63
93
|
this.author = properties.author;
|
|
64
94
|
this.date = properties.date;
|
|
95
|
+
this.displacedByCustomXml = properties.displacedByCustomXml;
|
|
96
|
+
this.colFirst = properties.colFirst;
|
|
97
|
+
this.colLast = properties.colLast;
|
|
65
98
|
}
|
|
66
99
|
|
|
67
100
|
/**
|
|
@@ -107,6 +140,30 @@ export class RangeMarker {
|
|
|
107
140
|
return this.date;
|
|
108
141
|
}
|
|
109
142
|
|
|
143
|
+
/**
|
|
144
|
+
* Gets the w:displacedByCustomXml attribute value. Only meaningful on
|
|
145
|
+
* moveFrom/moveTo range start/end markers; undefined on all other types.
|
|
146
|
+
*/
|
|
147
|
+
getDisplacedByCustomXml(): DisplacedByCustomXml | undefined {
|
|
148
|
+
return this.displacedByCustomXml;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Gets the w:colFirst column index. Only meaningful on CT_MoveBookmark-
|
|
153
|
+
* derived start markers; undefined otherwise.
|
|
154
|
+
*/
|
|
155
|
+
getColFirst(): number | undefined {
|
|
156
|
+
return this.colFirst;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Gets the w:colLast column index. Only meaningful on CT_MoveBookmark-
|
|
161
|
+
* derived start markers; undefined otherwise.
|
|
162
|
+
*/
|
|
163
|
+
getColLast(): number | undefined {
|
|
164
|
+
return this.colLast;
|
|
165
|
+
}
|
|
166
|
+
|
|
110
167
|
/**
|
|
111
168
|
* Checks if this is a start marker
|
|
112
169
|
*/
|
|
@@ -164,24 +221,108 @@ export class RangeMarker {
|
|
|
164
221
|
}
|
|
165
222
|
|
|
166
223
|
/**
|
|
167
|
-
*
|
|
168
|
-
*
|
|
224
|
+
* Returns true for marker types whose OOXML schema base is CT_MoveBookmark
|
|
225
|
+
* (ECMA-376 §17.13.5.15 / 19). Only these carry a w:name attribute.
|
|
226
|
+
* moveFromRangeEnd/moveToRangeEnd derive from CT_MarkupRange, and all
|
|
227
|
+
* customXml* markers derive from CT_TrackChange or CT_Markup — none of
|
|
228
|
+
* those have w:name in the schema, so emitting it produces invalid XML
|
|
229
|
+
* that fails Open XML SDK validation.
|
|
230
|
+
*/
|
|
231
|
+
private supportsName(): boolean {
|
|
232
|
+
return this.type === 'moveFromRangeStart' || this.type === 'moveToRangeStart';
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Returns true for marker types derived from CT_MarkupRange, which are the
|
|
237
|
+
* only ones whose schema permits `w:displacedByCustomXml` (ECMA-376 §17.13.5).
|
|
238
|
+
* customXml* markers (CT_TrackChange / CT_Markup) do NOT have this attribute,
|
|
239
|
+
* so emitting it there would fail schema validation.
|
|
240
|
+
*/
|
|
241
|
+
private supportsDisplacedByCustomXml(): boolean {
|
|
242
|
+
return (
|
|
243
|
+
this.type === 'moveFromRangeStart' ||
|
|
244
|
+
this.type === 'moveToRangeStart' ||
|
|
245
|
+
this.type === 'moveFromRangeEnd' ||
|
|
246
|
+
this.type === 'moveToRangeEnd'
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Returns true for marker types derived from CT_BookmarkRange, the only
|
|
252
|
+
* ones whose schema permits `w:colFirst` / `w:colLast` (ECMA-376 §17.13.5).
|
|
253
|
+
* The end markers and customXml* markers do NOT have these attributes.
|
|
254
|
+
*/
|
|
255
|
+
private supportsColumnRange(): boolean {
|
|
256
|
+
return this.type === 'moveFromRangeStart' || this.type === 'moveToRangeStart';
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Generates XML for this range marker.
|
|
261
|
+
*
|
|
262
|
+
* Required-attribute compliance per ECMA-376:
|
|
263
|
+
* - moveFromRangeStart / moveToRangeStart (CT_MoveBookmark §17.13.5.24):
|
|
264
|
+
* REQUIRE w:id, w:author, w:date, w:name. If any is missing, supply a
|
|
265
|
+
* sentinel default so the emitted XML stays schema-valid:
|
|
266
|
+
* - author → "Unknown" (matches CT_TrackChange fallback elsewhere)
|
|
267
|
+
* - date → new Date() (best-effort; the revision couldn't be
|
|
268
|
+
* recorded without any time information)
|
|
269
|
+
* - name → "_move_${id}" (synthesized link name; both halves of a
|
|
270
|
+
* move operation must use the same name,
|
|
271
|
+
* so construct it deterministically from
|
|
272
|
+
* the id)
|
|
273
|
+
* - customXml*RangeStart (CT_TrackChangeRange §17.13.5.5): REQUIRE
|
|
274
|
+
* w:id, w:author, w:date. Same defaults for author/date.
|
|
275
|
+
* - End markers (CT_MarkupRange §17.13.5.4): only w:id required.
|
|
276
|
+
*
|
|
277
|
+
* Defaults are preferred over throwing or returning null because they
|
|
278
|
+
* keep the surrounding tracked-change context intact and leave the
|
|
279
|
+
* document openable. Factory methods (`createMoveFromStart`, etc.)
|
|
280
|
+
* already enforce the required fields at construction, so the defaults
|
|
281
|
+
* only fire when a caller directly invokes the public constructor with
|
|
282
|
+
* incomplete properties.
|
|
283
|
+
*
|
|
284
|
+
* @returns XMLElement representing the range marker.
|
|
169
285
|
*/
|
|
170
286
|
toXML(): XMLElement {
|
|
171
287
|
const attributes: Record<string, string> = {
|
|
172
288
|
'w:id': this.id.toString(),
|
|
173
289
|
};
|
|
174
290
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
291
|
+
const isStart = this.isStartMarker();
|
|
292
|
+
const isMoveBookmark = this.supportsName();
|
|
293
|
+
|
|
294
|
+
// Emit w:name only on CT_MoveBookmark-derived elements (moveFromRangeStart /
|
|
295
|
+
// moveToRangeStart). CT_MoveBookmark requires w:name (§17.13.5.24); supply a
|
|
296
|
+
// synthesized fallback if the caller constructed the marker without one.
|
|
297
|
+
// Other range markers — customXml*Range* (CT_TrackChange / CT_Markup) and
|
|
298
|
+
// moveFrom/ToRangeEnd (CT_MarkupRange) — have no w:name in their schema.
|
|
299
|
+
if (isMoveBookmark) {
|
|
300
|
+
attributes['w:name'] = this.name || `_move_${this.id}`;
|
|
178
301
|
}
|
|
179
302
|
|
|
180
|
-
//
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
303
|
+
// Author and date are required on both CT_MoveBookmark and CT_TrackChange
|
|
304
|
+
// start markers. Supply defaults if missing so the emission stays valid.
|
|
305
|
+
if (isStart) {
|
|
306
|
+
attributes['w:author'] = this.author || 'Unknown';
|
|
307
|
+
attributes['w:date'] = this.formatDate(this.date ?? new Date());
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Emit w:displacedByCustomXml only on CT_MarkupRange-derived types
|
|
311
|
+
// (move*RangeStart / move*RangeEnd). On CT_TrackChange and CT_Markup
|
|
312
|
+
// elements the attribute is not defined by the schema.
|
|
313
|
+
if (this.displacedByCustomXml && this.supportsDisplacedByCustomXml()) {
|
|
314
|
+
attributes['w:displacedByCustomXml'] = this.displacedByCustomXml;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// Emit w:colFirst / w:colLast only on CT_BookmarkRange-derived start
|
|
318
|
+
// markers (moveFromRangeStart / moveToRangeStart). Explicit-undefined
|
|
319
|
+
// check so valid column index 0 is not dropped.
|
|
320
|
+
if (this.supportsColumnRange()) {
|
|
321
|
+
if (this.colFirst !== undefined) {
|
|
322
|
+
attributes['w:colFirst'] = this.colFirst.toString();
|
|
323
|
+
}
|
|
324
|
+
if (this.colLast !== undefined) {
|
|
325
|
+
attributes['w:colLast'] = this.colLast.toString();
|
|
185
326
|
}
|
|
186
327
|
}
|
|
187
328
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Body element produced by an `ElementRegistry` handler. Carries the
|
|
3
|
+
* consumer's parsed model object together with the handler reference so
|
|
4
|
+
* the document save flow can call `handler.serialize(model)` to round
|
|
5
|
+
* the element back to XML — letting consumers mutate their own model and
|
|
6
|
+
* have changes survive `doc.save()`.
|
|
7
|
+
*
|
|
8
|
+
* If the handler's `serialize()` throws, the original raw XML is emitted
|
|
9
|
+
* unchanged so a buggy custom serializer cannot corrupt the document.
|
|
10
|
+
*/
|
|
11
|
+
import type { ElementHandler } from '../core/ElementRegistry.js';
|
|
12
|
+
import type { XMLElement } from '../xml/XMLBuilder.js';
|
|
13
|
+
import { getGlobalLogger } from '../utils/logger.js';
|
|
14
|
+
|
|
15
|
+
export class RegisteredBodyElement<E = unknown> {
|
|
16
|
+
constructor(
|
|
17
|
+
private readonly tag: string,
|
|
18
|
+
private readonly model: E,
|
|
19
|
+
private readonly handler: ElementHandler<E>,
|
|
20
|
+
private readonly originalXml: string
|
|
21
|
+
) {}
|
|
22
|
+
|
|
23
|
+
getTag(): string {
|
|
24
|
+
return this.tag;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getModel(): E {
|
|
28
|
+
return this.model;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getRawXml(): string {
|
|
32
|
+
return this.originalXml;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
getType(): string {
|
|
36
|
+
return 'registeredBodyElement';
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
toXML(): XMLElement {
|
|
40
|
+
let xml: string;
|
|
41
|
+
try {
|
|
42
|
+
xml = this.handler.serialize(this.model);
|
|
43
|
+
} catch (err) {
|
|
44
|
+
getGlobalLogger().warn('ElementRegistry serializer threw; emitting original XML', {
|
|
45
|
+
tag: this.tag,
|
|
46
|
+
error: String(err),
|
|
47
|
+
});
|
|
48
|
+
xml = this.originalXml;
|
|
49
|
+
}
|
|
50
|
+
return { name: '__rawXml', rawXml: xml } as XMLElement;
|
|
51
|
+
}
|
|
52
|
+
}
|
package/src/elements/Revision.ts
CHANGED
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* to document content, showing who made changes and when.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { Run } from './Run';
|
|
9
|
-
import type { RunFormatting } from './Run';
|
|
10
|
-
import { XMLElement } from '../xml/XMLBuilder';
|
|
11
|
-
import type { RevisionLocation } from './PropertyChangeTypes';
|
|
12
|
-
import type { RevisionContent } from './RevisionContent';
|
|
13
|
-
import { isRunContent, isHyperlinkContent } from './RevisionContent';
|
|
14
|
-
import { formatDateForXml } from '../utils/dateFormatting';
|
|
8
|
+
import { Run } from './Run.js';
|
|
9
|
+
import type { RunFormatting } from './Run.js';
|
|
10
|
+
import { XMLElement } from '../xml/XMLBuilder.js';
|
|
11
|
+
import type { RevisionLocation } from './PropertyChangeTypes.js';
|
|
12
|
+
import type { RevisionContent } from './RevisionContent.js';
|
|
13
|
+
import { isRunContent, isHyperlinkContent } from './RevisionContent.js';
|
|
14
|
+
import { formatDateForXml } from '../utils/dateFormatting.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Revision type - All OpenXML WordprocessingML revision types
|
|
@@ -52,7 +52,7 @@ export type RevisionType =
|
|
|
52
52
|
*/
|
|
53
53
|
export interface FieldContext {
|
|
54
54
|
/** Reference to the parent ComplexField (if revision is in field result) */
|
|
55
|
-
field?: import('./Field').ComplexField;
|
|
55
|
+
field?: import('./Field.js').ComplexField;
|
|
56
56
|
/** Field instruction (e.g., "HYPERLINK", "TOC", "MERGEFIELD") */
|
|
57
57
|
instruction?: string;
|
|
58
58
|
/** Position within field: 'instruction' or 'result' */
|
|
@@ -194,8 +194,8 @@ export class Revision {
|
|
|
194
194
|
* Gets only the Hyperlink objects from this revision
|
|
195
195
|
* @returns Array of Hyperlink objects
|
|
196
196
|
*/
|
|
197
|
-
getHyperlinks(): import('./Hyperlink').Hyperlink[] {
|
|
198
|
-
return this.content.filter((item): item is import('./Hyperlink').Hyperlink =>
|
|
197
|
+
getHyperlinks(): import('./Hyperlink.js').Hyperlink[] {
|
|
198
|
+
return this.content.filter((item): item is import('./Hyperlink.js').Hyperlink =>
|
|
199
199
|
isHyperlinkContent(item)
|
|
200
200
|
);
|
|
201
201
|
}
|
|
@@ -211,7 +211,7 @@ export class Revision {
|
|
|
211
211
|
/**
|
|
212
212
|
* Adds a hyperlink to this revision
|
|
213
213
|
*/
|
|
214
|
-
addHyperlink(hyperlink: import('./Hyperlink').Hyperlink): this {
|
|
214
|
+
addHyperlink(hyperlink: import('./Hyperlink.js').Hyperlink): this {
|
|
215
215
|
this.content.push(hyperlink);
|
|
216
216
|
return this;
|
|
217
217
|
}
|
|
@@ -232,7 +232,7 @@ export class Revision {
|
|
|
232
232
|
getText(): string {
|
|
233
233
|
return this.content
|
|
234
234
|
.filter(
|
|
235
|
-
(item): item is Run | import('./Hyperlink').Hyperlink =>
|
|
235
|
+
(item): item is Run | import('./Hyperlink.js').Hyperlink =>
|
|
236
236
|
isRunContent(item) || isHyperlinkContent(item)
|
|
237
237
|
)
|
|
238
238
|
.map((item) => item.getText())
|
|
@@ -331,7 +331,7 @@ export class Revision {
|
|
|
331
331
|
* Gets the parent field if this revision is inside a complex field
|
|
332
332
|
* @returns The parent ComplexField or undefined
|
|
333
333
|
*/
|
|
334
|
-
getParentField(): import('./Field').ComplexField | undefined {
|
|
334
|
+
getParentField(): import('./Field.js').ComplexField | undefined {
|
|
335
335
|
return this.fieldContext?.field;
|
|
336
336
|
}
|
|
337
337
|
|
|
@@ -832,7 +832,7 @@ export class Revision {
|
|
|
832
832
|
* <w:hyperlink r:id="rId1"><w:ins ...><w:r>...</w:r></w:ins></w:hyperlink>
|
|
833
833
|
*/
|
|
834
834
|
private createHyperlinkWrappedRevisionXml(
|
|
835
|
-
hyperlink: import('./Hyperlink').Hyperlink,
|
|
835
|
+
hyperlink: import('./Hyperlink.js').Hyperlink,
|
|
836
836
|
revisionElementName: string,
|
|
837
837
|
revisionAttributes: Record<string, string>
|
|
838
838
|
): XMLElement {
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* This module provides the type definitions and type guards for revision content.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type { Run } from './Run';
|
|
13
|
-
import type { Hyperlink } from './Hyperlink';
|
|
14
|
-
import type { ImageRun } from './ImageRun';
|
|
12
|
+
import type { Run } from './Run.js';
|
|
13
|
+
import type { Hyperlink } from './Hyperlink.js';
|
|
14
|
+
import type { ImageRun } from './ImageRun.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Content types valid within a revision (tracked change)
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Tracks all revisions, assigns unique IDs, and provides statistics.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Revision, RevisionType } from './Revision';
|
|
8
|
-
import type { RevisionLocation } from './PropertyChangeTypes';
|
|
9
|
-
import { getGlobalLogger, createScopedLogger, ILogger } from '../utils/logger';
|
|
7
|
+
import { Revision, RevisionType } from './Revision.js';
|
|
8
|
+
import type { RevisionLocation } from './PropertyChangeTypes.js';
|
|
9
|
+
import { getGlobalLogger, createScopedLogger, ILogger } from '../utils/logger.js';
|
|
10
10
|
|
|
11
11
|
// Scoped logger for RevisionManager
|
|
12
12
|
function getLogger(): ILogger {
|