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
package/src/elements/CLAUDE.md
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# Elements Module
|
|
2
|
-
|
|
3
|
-
`src/elements/` — All document element classes (40 TypeScript files).
|
|
4
|
-
|
|
5
|
-
## Element Hierarchy
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
Body Elements (added to document body)
|
|
9
|
-
├── Paragraph
|
|
10
|
-
├── Table
|
|
11
|
-
├── TableOfContents / TableOfContentsElement
|
|
12
|
-
├── StructuredDocumentTag
|
|
13
|
-
├── AlternateContent # mc:AlternateContent raw XML passthrough
|
|
14
|
-
├── MathParagraph # m:oMathPara raw XML passthrough
|
|
15
|
-
├── CustomXmlBlock # w:customXml raw XML passthrough
|
|
16
|
-
└── PreservedElement # Generic XML passthrough (block context)
|
|
17
|
-
|
|
18
|
-
Inline Elements (within paragraphs)
|
|
19
|
-
├── Run (formatted text span)
|
|
20
|
-
├── ImageRun (inline image)
|
|
21
|
-
├── Hyperlink
|
|
22
|
-
├── Bookmark / RangeMarker
|
|
23
|
-
├── Field
|
|
24
|
-
├── Comment (anchor)
|
|
25
|
-
├── Footnote/Endnote (reference)
|
|
26
|
-
├── StructuredDocumentTag (inline)
|
|
27
|
-
├── MathExpression # m:oMath inline raw XML passthrough
|
|
28
|
-
└── PreservedElement (inline)
|
|
29
|
-
|
|
30
|
-
Header/Footer Elements
|
|
31
|
-
├── Header / Footer
|
|
32
|
-
└── Section (page setup, header/footer references)
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Core Elements
|
|
36
|
-
|
|
37
|
-
### Paragraph (`Paragraph.ts`)
|
|
38
|
-
|
|
39
|
-
Container for text and inline content. Key formatting: `alignment`, `spacing`, `indentation`, `pPrChange` (revision tracking), `keepNext`/`keepLines`/`pageBreakBefore` (pagination).
|
|
40
|
-
|
|
41
|
-
**CT_OnOff properties:** `keepNext`, `keepLines`, `pageBreakBefore`, `suppressLineNumbers`, `suppressAutoHyphens`, `contextualSpacing`, `mirrorIndents`, `suppressOverlap` all use `!== undefined` semantics with `w:val` attribute, supporting explicit `false` to override style inheritance.
|
|
42
|
-
|
|
43
|
-
**Rule:** `setKeepNext(true)` / `setKeepLines(true)` auto-clears `pageBreakBefore` to `undefined` (absent, not explicit false).
|
|
44
|
-
|
|
45
|
-
**Alignment:** `ParagraphAlignment` includes bidi-aware values (`start`, `end`), CJK (`distribute`), Arabic kashida (`mediumKashida`, `highKashida`, `lowKashida`), and Thai (`thaiDistribute`).
|
|
46
|
-
|
|
47
|
-
**w14 attributes:** `paraId` and `textId` (Word 2010+) are auto-generated for new paragraphs during `prepareSave()`. Values are 8-char hex, must be < `0x80000000`.
|
|
48
|
-
|
|
49
|
-
CJK methods: `setKinsoku()`, `setWordWrap()`, `setOverflowPunct()`, `setTopLinePunct()`, `setAutoSpaceDE()`, `setAutoSpaceDN()`.
|
|
50
|
-
|
|
51
|
-
### Run (`Run.ts`)
|
|
52
|
-
|
|
53
|
-
Formatted text span. Character formatting (bold, italic, underline, strikethrough), font properties, color (hex or `'auto'`), highlight, special chars (tabs, breaks, symbols), complex script support.
|
|
54
|
-
|
|
55
|
-
**CT_OnOff properties:** Boolean properties use `!== undefined` semantics: `undefined` = inherit from style, `true` = on, `false` = explicitly off (`w:val="0"`). This applies to: bold, bCs, italic, iCs, caps, smallCaps, strike, dstrike, snapToGrid.
|
|
56
|
-
|
|
57
|
-
**Vertical alignment:** `setSubscript()`, `setSuperscript()`, and `vertAlignBaseline` field for explicit baseline reset per ST_VerticalAlignRun.
|
|
58
|
-
|
|
59
|
-
Theme fonts: `setFontAsciiTheme()`, `setFontHAnsiTheme()`, `setFontEastAsiaTheme()`, `setFontCsTheme()`.
|
|
60
|
-
Underline: `setUnderlineColor()`, `setUnderlineThemeColor()`.
|
|
61
|
-
w14 effects: `addRawW14Property(xml)` for Word 2010+ ligatures, numForm, textOutline.
|
|
62
|
-
Form fields: `FormFieldData`, `FormFieldTextInput`, `FormFieldCheckBox`, `FormFieldDropDownList` interfaces.
|
|
63
|
-
|
|
64
|
-
**Static helper:** `Run.generateRunPropertiesXML(formatting)` — generates `w:rPr` with all 38+ CT_RPr elements in strict ECMA-376 order. Used by both Run and Style serialization.
|
|
65
|
-
|
|
66
|
-
### Table (`Table.ts`, `TableRow.ts`, `TableCell.ts`)
|
|
67
|
-
|
|
68
|
-
Row/column management, cell merging (horizontal + vertical), border styling, property change tracking (`w:tblPrChange`), inter-row content preservation (bookmarks, comments between rows).
|
|
69
|
-
|
|
70
|
-
Navigation: `getFirstParagraph()`, `getLastParagraph()`.
|
|
71
|
-
Layout: `getLayout()` returns `'fixed'` or `'auto'`.
|
|
72
|
-
Legacy merge: `setHorizontalMerge()` / `getHorizontalMerge()` (hMerge).
|
|
73
|
-
|
|
74
|
-
**Constraints:** `removeRow()` prevents removing the last row (ECMA-376 requires >= 1 row). `insertRow()`/`insertRows()` use grid span count for correct column count with merged cells. `tblPrEx` is serialized before `trPr` in `w:tr` per CT_Row.
|
|
75
|
-
|
|
76
|
-
**TableRow:** `setHeightRule(rule)` sets height rule independently. When `w:hRule` is absent, the spec default is `"auto"` (not `"atLeast"`).
|
|
77
|
-
|
|
78
|
-
**Nested Tables:** Raw XML passthrough via `TableCell.rawNestedContent[]`.
|
|
79
|
-
```typescript
|
|
80
|
-
cell.addRawNestedContent(position, xml, "table")
|
|
81
|
-
cell.getRawNestedContent()
|
|
82
|
-
cell.hasNestedTables()
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
**Inter-Row Content:** Per ECMA-376, elements like bookmarkEnd can appear between rows.
|
|
86
|
-
```typescript
|
|
87
|
-
table.addInterRowContent(afterRowIndex, xml, type)
|
|
88
|
-
table.getInterRowContent()
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Image (`Image.ts`, `ImageRun.ts`)
|
|
92
|
-
|
|
93
|
-
PNG/JPEG/GIF/SVG/EMF/WMF with buffer-based format detection. Inline and floating positioning. Full ECMA-376 attribute coverage: presetGeometry, compressionState, bwMode, picLocks, inline dist, transparency (`a:alphaModFix`), enhanced border model (`ImageBorder`), 9 raw XML passthrough slots, linked images (`r:link`), SVG dual-relationship (`asvg:svgBlip`).
|
|
94
|
-
|
|
95
|
-
## Revision System
|
|
96
|
-
|
|
97
|
-
### Revision (`Revision.ts`)
|
|
98
|
-
|
|
99
|
-
Types: `insert`, `delete`, `moveFrom`, `moveTo`, `runPropertiesChange`, `paragraphPropertiesChange`, `tablePropertiesChange`, `tableCellInsert`, `tableCellDelete`, `tableCellMerge`, `numberingChange`, `sectionPropertiesChange`.
|
|
100
|
-
|
|
101
|
-
### RevisionManager (`RevisionManager.ts`)
|
|
102
|
-
|
|
103
|
-
Registration, retrieval, category/author/date filtering, location-aware queries, statistics, validation (duplicate IDs, orphaned moves).
|
|
104
|
-
|
|
105
|
-
### MoveOperationHelper (`../utils/MoveOperationHelper.ts`)
|
|
106
|
-
|
|
107
|
-
Creates complete move operations with all required ECMA-376 range markers (`moveFromRangeStart/End`, `moveToRangeStart/End`). Without range markers, Word displays moves as separate delete+insert pairs.
|
|
108
|
-
|
|
109
|
-
```typescript
|
|
110
|
-
MoveOperationHelper.addMoveOperation(sourcePara, destPara, {
|
|
111
|
-
author: 'John Doe',
|
|
112
|
-
content: new Run('moved text'),
|
|
113
|
-
});
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## Other Elements
|
|
117
|
-
|
|
118
|
-
- **Hyperlink**: Internal/external URLs, tooltip, relationship management
|
|
119
|
-
- **Bookmark / BookmarkManager**: Named locations, cross-references, unique ID assignment
|
|
120
|
-
- **Field / FieldHelpers**: MERGEFIELD, DATE, TIME, PAGE, NUMPAGES, TOC, REF
|
|
121
|
-
- **Comment / CommentManager**: Author/date, reply threading, anchor positioning
|
|
122
|
-
- **Header / Footer / HeaderFooterManager**: Default, first page, even pages
|
|
123
|
-
- **Section**: Page size, margins, orientation, columns, page numbering
|
|
124
|
-
- **Footnote / Endnote / FootnoteManager / EndnoteManager**: Note content, numbering, separators
|
|
125
|
-
- **StructuredDocumentTag**: Rich/plain text, date pickers, dropdowns, checkboxes
|
|
126
|
-
- **Shape / TextBox**: Basic shapes, text boxes with content
|
|
127
|
-
- **FontManager**: Font table and declarations
|
|
128
|
-
- **ImageManager**: Image collection with relationship handling
|
|
129
|
-
|
|
130
|
-
## Preserved Element Classes
|
|
131
|
-
|
|
132
|
-
Store elements as raw XML for round-trip fidelity (internal structure not modified by framework):
|
|
133
|
-
- **AlternateContent**: `mc:AlternateContent` — Word 2010+ drawing with VML fallback
|
|
134
|
-
- **MathParagraph / MathExpression**: `m:oMathPara` / `m:oMath` — math content
|
|
135
|
-
- **CustomXmlBlock**: `w:customXml` — embedded custom XML
|
|
136
|
-
- **PreservedElement**: Generic wrapper for `w:proofErr`, `w:permStart`, `w:permEnd`, `w:altChunk`, `w:ruby`
|
|
137
|
-
|
|
138
|
-
All share the same API pattern: `constructor(rawXml)`, `toXML()`, `getRawXml()`, `getType()`.
|
|
139
|
-
|
|
140
|
-
## Serialization
|
|
141
|
-
|
|
142
|
-
Every element has `toXML()` returning `XMLElement { name, attributes, children }`. Elements don't hold references to their parent document.
|
package/src/formatting/CLAUDE.md
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Formatting Module
|
|
2
|
-
|
|
3
|
-
`src/formatting/` — Styles and numbering systems.
|
|
4
|
-
|
|
5
|
-
## Style System
|
|
6
|
-
|
|
7
|
-
### Style (`Style.ts`)
|
|
8
|
-
|
|
9
|
-
Types: `paragraph`, `character`, `table`, `numbering`.
|
|
10
|
-
|
|
11
|
-
Properties: `styleId`, `type`, `name`, `basedOn` (inheritance), `next`, `link`, `runFormatting`, `paragraphFormatting`, `tableFormatting`, `isDefault`.
|
|
12
|
-
|
|
13
|
-
**Inheritance:** Styles inherit via `basedOn`. Resolution: default → basedOn chain → own formatting.
|
|
14
|
-
|
|
15
|
-
**Run properties:** Style.ts delegates rPr generation to `Run.generateRunPropertiesXML()` for full ECMA-376 CT_RPr coverage (38+ elements in correct order).
|
|
16
|
-
|
|
17
|
-
**Conditional formatting:** `tblStylePr` elements follow CT_Style order: pPr → rPr → tblPr → trPr → tcPr.
|
|
18
|
-
|
|
19
|
-
Built-in styles: `Normal`, `Heading1`-`Heading6`, `Title`, `Subtitle`, `DefaultParagraphFont`, `TableGrid`.
|
|
20
|
-
|
|
21
|
-
### StylesManager (`StylesManager.ts`)
|
|
22
|
-
|
|
23
|
-
Stores, validates, generates `word/styles.xml`, parses from existing documents. Validates unique IDs, basedOn existence, no circular inheritance.
|
|
24
|
-
|
|
25
|
-
## Numbering System
|
|
26
|
-
|
|
27
|
-
### Concepts
|
|
28
|
-
|
|
29
|
-
- **AbstractNumbering**: Reusable template defining structure (up to 9 levels) with format/indentation per level
|
|
30
|
-
- **NumberingInstance**: Links abstract numbering to usage (referenced by paragraphs via numId). Can override levels.
|
|
31
|
-
- **NumberingLevel**: Format for one level — format type, text pattern, alignment, indentation, font
|
|
32
|
-
|
|
33
|
-
### NumberingLevel (`NumberingLevel.ts`)
|
|
34
|
-
|
|
35
|
-
**Formats:** `decimal`, `upperRoman`, `lowerRoman`, `upperLetter`, `lowerLetter`, `bullet`.
|
|
36
|
-
|
|
37
|
-
**Level text:** `%1.` (level 1 number), `%1.%2.` (two levels), `•` (bullet).
|
|
38
|
-
|
|
39
|
-
**Standard indentation:** `leftIndent = 720 + (level * 360)` twips, `hangingIndent = 360` twips.
|
|
40
|
-
|
|
41
|
-
**Factory methods:**
|
|
42
|
-
```typescript
|
|
43
|
-
NumberingLevel.createBulletLevel(level, symbol)
|
|
44
|
-
NumberingLevel.createNumberedLevel(level, format, text)
|
|
45
|
-
NumberingLevel.calculateStandardIndentation(level)
|
|
46
|
-
NumberingLevel.getBulletSymbolWithFont(level, style)
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Text formatting:** `setItalic()`, `setUnderline(style)`, `setBold()`, `setColor()`.
|
|
50
|
-
|
|
51
|
-
### AbstractNumbering (`AbstractNumbering.ts`)
|
|
52
|
-
|
|
53
|
-
```typescript
|
|
54
|
-
AbstractNumbering.createNumberedList(id, maxLevels) // 1., 2., 3.
|
|
55
|
-
AbstractNumbering.createBulletedList(id, maxLevels) // bullet symbols
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### NumberingInstance (`NumberingInstance.ts`)
|
|
59
|
-
|
|
60
|
-
Links to abstract numbering. Level overrides:
|
|
61
|
-
```typescript
|
|
62
|
-
const instance = new NumberingInstance(numId, abstractNumId);
|
|
63
|
-
instance.addLevelOverride(0, customLevel);
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### NumberingManager (`NumberingManager.ts`)
|
|
67
|
-
|
|
68
|
-
Manages abstract numberings + instances. Generates `word/numbering.xml`. Assigns unique IDs.
|
|
69
|
-
|
|
70
|
-
```typescript
|
|
71
|
-
manager.addAbstractNumbering(abstractNum);
|
|
72
|
-
manager.addNumberingInstance(instance);
|
|
73
|
-
paragraph.setNumbering(numId, level);
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Key Behavior: Indentation vs Numbering
|
|
77
|
-
|
|
78
|
-
Per ECMA-376 §17.3.1.12, paragraph-level indentation overrides numbering-level indentation. The framework auto-clears conflicting paragraph indentation when numbering is applied (left, firstLine, hanging cleared; right preserved). To change list indentation, change the numbering **level** instead of setting indent directly.
|
package/src/managers/CLAUDE.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Managers Module
|
|
2
|
-
|
|
3
|
-
`src/managers/` — Specialized manager classes for document features.
|
|
4
|
-
|
|
5
|
-
## Manager Pattern
|
|
6
|
-
|
|
7
|
-
Managers encapsulate complex operations for specific features. Common interface: `add`, `get`, `getAll`, `remove`, `dispose`. All managers are created by Document and accessed via getters (e.g., `doc.getImageManager()`). Always access through Document — never instantiate directly.
|
|
8
|
-
|
|
9
|
-
## DrawingManager (`DrawingManager.ts`)
|
|
10
|
-
|
|
11
|
-
Manages shapes, text boxes, and preserved drawings. Drawing types: `shape`, `picture`, `textBox`, `diagram`, `chart`, `preserved`.
|
|
12
|
-
|
|
13
|
-
**PreservedDrawing:** Unknown drawing elements stored as raw XML during parsing for round-trip fidelity.
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
const drawingManager = doc.getDrawingManager();
|
|
17
|
-
drawingManager.addDrawing(shape);
|
|
18
|
-
drawingManager.getAllDrawings();
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Related Managers (in other modules)
|
|
22
|
-
|
|
23
|
-
| Manager | Location | Purpose |
|
|
24
|
-
|---------|----------|---------|
|
|
25
|
-
| ImageManager | `src/elements/` | Image buffering, relationship management, format detection |
|
|
26
|
-
| HeaderFooterManager | `src/elements/` | Default/first/even page headers and footers |
|
|
27
|
-
| BookmarkManager | `src/elements/` | Bookmark registration, unique IDs, start/end pairing |
|
|
28
|
-
| CommentManager | `src/elements/` | Comment storage, author tracking, reply threading |
|
|
29
|
-
| RevisionManager | `src/elements/` | Track changes, RSID management |
|
|
30
|
-
| FootnoteManager | `src/elements/` | Footnote numbering, separators |
|
|
31
|
-
| EndnoteManager | `src/elements/` | Endnote numbering, separators |
|
|
32
|
-
| FontManager | `src/elements/` | Font table declarations |
|
|
33
|
-
| StylesManager | `src/formatting/` | Style definitions, validation, inheritance |
|
|
34
|
-
| NumberingManager | `src/formatting/` | List numbering definitions |
|
|
35
|
-
| RelationshipManager | `src/core/` | Document part relationships |
|
|
36
|
-
|
|
37
|
-
## Lifecycle
|
|
38
|
-
|
|
39
|
-
1. **Init:** Created when Document is instantiated
|
|
40
|
-
2. **Use:** Accessed via `doc.get*Manager()` getters
|
|
41
|
-
3. **Cleanup:** All disposed when `doc.dispose()` is called
|
|
42
|
-
|
|
43
|
-
## Best Practices
|
|
44
|
-
|
|
45
|
-
- Check existence before adding: `if (!manager.hasBookmark('name')) { ... }`
|
|
46
|
-
- Use manager methods over manual calculation (e.g., `imageManager.getTotalImageSize()`)
|
|
47
|
-
- Always call `doc.dispose()` — cleans up all managers
|
package/src/tracking/CLAUDE.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Tracking Module
|
|
2
|
-
|
|
3
|
-
`src/tracking/` — Change tracking context for revision-aware document editing.
|
|
4
|
-
|
|
5
|
-
## Interfaces & Classes
|
|
6
|
-
|
|
7
|
-
### TrackingContext (interface)
|
|
8
|
-
|
|
9
|
-
Contract for tracking changes on document elements. Methods:
|
|
10
|
-
|
|
11
|
-
- `trackRunPropertyChange(run, previousProps)` — creates `w:rPrChange`
|
|
12
|
-
- `trackParagraphPropertyChange(para, previousProps)` — creates `w:pPrChange`
|
|
13
|
-
- `trackTableChange(table, previousProps)` — creates `w:tblPrChange`
|
|
14
|
-
- `trackInsertion(element)` / `trackDeletion(element)` — wraps in `w:ins`/`w:del`
|
|
15
|
-
- `flushPendingChanges()` — converts queued changes to Revision objects
|
|
16
|
-
- `isEnabled()` — check if tracking is active
|
|
17
|
-
|
|
18
|
-
### DocumentTrackingContext (`DocumentTrackingContext.ts`)
|
|
19
|
-
|
|
20
|
-
Implementation of `TrackingContext`. Key behaviors:
|
|
21
|
-
|
|
22
|
-
- **State:** enabled flag, author name, `trackFormatting` toggle, pending changes map
|
|
23
|
-
- **Consolidation:** Groups changes by element with time-window keys to batch similar edits (prevents one revision per keystroke)
|
|
24
|
-
- **PrChange application:** Creates/merges `*PrChange` markers (`rPrChange`, `pPrChange`, `tblPrChange`, `tcPrChange`, `sectPrChange`) per ECMA-376
|
|
25
|
-
- **Full snapshot tracking:** Stores complete previous properties (not deltas) for table/cell/section changes
|
|
26
|
-
- **WeakMap for element IDs:** Prevents GC issues with stable element references
|
|
27
|
-
|
|
28
|
-
## Key Pattern
|
|
29
|
-
|
|
30
|
-
Call `doc.flushPendingChanges()` before inspecting `pPrChange` or `rPrChange` in tests — pending changes are batched and only materialized on flush or save.
|
package/src/types/CLAUDE.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Types Module
|
|
2
|
-
|
|
3
|
-
`src/types/` — TypeScript type definitions shared across modules.
|
|
4
|
-
|
|
5
|
-
## Files
|
|
6
|
-
|
|
7
|
-
### `formatting.ts`
|
|
8
|
-
Formatting-related types used by Document search/replace and paragraph formatting:
|
|
9
|
-
- `BorderStyleType`, `BorderStyle`, `ParagraphBorder` — border definitions
|
|
10
|
-
- `ShadingPattern`, `ParagraphShading` — re-exported from CommonTypes
|
|
11
|
-
- `TabAlignment`, `TabLeader`, `TabStop` — tab stop configuration
|
|
12
|
-
- `FindOptions`, `ReplaceOptions`, `SearchResult` — text search/replace options
|
|
13
|
-
- `EmphasisType`, `ListPrefix`, `FormatOptions`, `StyleApplyOptions` — style application
|
|
14
|
-
|
|
15
|
-
### `styleConfig.ts`
|
|
16
|
-
Style configuration interfaces for Document's style application methods:
|
|
17
|
-
- `StyleRunFormatting` — character-level formatting (font, size, bold, etc.)
|
|
18
|
-
- `StyleParagraphFormatting` — paragraph-level formatting (alignment, spacing, indentation)
|
|
19
|
-
- `StyleConfig`, `Heading2Config`, `NormalConfig` — predefined style configurations
|
|
20
|
-
- `ApplyStylesOptions` — options for `doc.applyStyles()` / `doc.applyStylesFromObjects()`
|
|
21
|
-
- `ApplyCustomFormattingOptions` — deprecated alias for `ApplyStylesOptions`
|
|
22
|
-
|
|
23
|
-
### `settings-types.ts`
|
|
24
|
-
Document settings interfaces:
|
|
25
|
-
- `DocumentProtection` — password protection settings
|
|
26
|
-
- `RevisionViewSettings` — revision display mode
|
|
27
|
-
- `TrackChangesSettings` — track changes configuration
|
|
28
|
-
- `WebSettingsInfo` — web settings (div cleanup, encoding)
|
|
29
|
-
|
|
30
|
-
### `list-types.ts`
|
|
31
|
-
List detection and normalization:
|
|
32
|
-
- `ListCategory`, `NumberFormat`, `BulletFormat` — list type classification
|
|
33
|
-
- `ListDetectionResult`, `ListAnalysis` — detection output
|
|
34
|
-
- `ListNormalizationOptions`, `ListNormalizationReport` — normalization config/results
|
|
35
|
-
|
|
36
|
-
### `compatibility-types.ts`
|
|
37
|
-
Word compatibility mode types:
|
|
38
|
-
- `CompatSetting` — individual compatibility setting (name, uri, val)
|
|
39
|
-
- `CompatibilityInfo` — full compatibility state (mode value, legacy flags, modern settings)
|
package/src/utils/CLAUDE.md
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
# Utils Module
|
|
2
|
-
|
|
3
|
-
`src/utils/` — Standalone utilities (22 TypeScript files) for unit conversions, revision processing, validation, logging, and helpers.
|
|
4
|
-
|
|
5
|
-
## Architecture Classification
|
|
6
|
-
|
|
7
|
-
**Pure utilities** (no element/core imports — safe to use anywhere):
|
|
8
|
-
- `units.ts`, `validation.ts`, `deepClone.ts`, `dateFormatting.ts`, `errorHandling.ts`
|
|
9
|
-
- `xmlSanitization.ts`, `formatting.ts`, `parsingHelpers.ts`, `logger.ts`, `diagnostics.ts`
|
|
10
|
-
- `textDiff.ts`, `list-detection.ts`, `corruptionDetection.ts`
|
|
11
|
-
|
|
12
|
-
**Domain-specific processors** (import from elements/core — should arguably be in `src/processors/`):
|
|
13
|
-
- `acceptRevisions.ts`, `RevisionWalker.ts`, `InMemoryRevisionAcceptor.ts`
|
|
14
|
-
- `SelectiveRevisionAcceptor.ts`, `RevisionAwareProcessor.ts`, `MoveOperationHelper.ts`
|
|
15
|
-
- `ChangelogGenerator.ts`, `ShadingResolver.ts`, `stripTrackedChanges.ts`
|
|
16
|
-
- `CompatibilityUpgrader.ts`, `cnfStyleDecoder.ts`
|
|
17
|
-
|
|
18
|
-
This split explains the 36+ dependency-cruiser warnings about utils importing elements — the domain-specific files are processors, not pure utilities.
|
|
19
|
-
|
|
20
|
-
## Unit Conversions (`units.ts`)
|
|
21
|
-
|
|
22
|
-
40+ conversion functions between twips, EMUs, points, half-points, pixels, inches, centimeters.
|
|
23
|
-
|
|
24
|
-
Key constants: 1 inch = 1440 twips = 914400 EMUs = 72 points. 1 point = 20 twips. Font sizes use half-points.
|
|
25
|
-
|
|
26
|
-
## Validation (`validation.ts`)
|
|
27
|
-
|
|
28
|
-
- `validateRunText(text)` — Detects XML patterns accidentally passed as text
|
|
29
|
-
- `cleanXmlFromText(text)` — Removes XML patterns from text
|
|
30
|
-
- `isValidDocxStructure(files)` — Validates DOCX file structure
|
|
31
|
-
|
|
32
|
-
## Corruption Detection (`corruptionDetection.ts`)
|
|
33
|
-
|
|
34
|
-
```typescript
|
|
35
|
-
const report = detectCorruptionInDocument(doc);
|
|
36
|
-
// report: { isCorrupted, summary, locations: [{ suggestedFix }] }
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Detects XML markup in text, invalid characters, malformed structures.
|
|
40
|
-
|
|
41
|
-
## XML Sanitization (`xmlSanitization.ts`)
|
|
42
|
-
|
|
43
|
-
XML 1.0 control character validation. Auto-applied by `XMLBuilder.escapeXmlText()`.
|
|
44
|
-
|
|
45
|
-
- `removeInvalidXmlChars(text)` — Strips 0x00-0x08, 0x0B-0x0C, 0x0E-0x1F, 0x7F
|
|
46
|
-
- `hasInvalidXmlChars(text)` / `findInvalidXmlChars(text)`
|
|
47
|
-
- Tab (0x09), newline (0x0A), CR (0x0D) are preserved
|
|
48
|
-
|
|
49
|
-
## Parsing Helpers (`parsingHelpers.ts`)
|
|
50
|
-
|
|
51
|
-
Safe OOXML attribute parsing with zero-value edge case handling:
|
|
52
|
-
|
|
53
|
-
- `safeParseInt(value, default?)` — NaN-safe integer parsing
|
|
54
|
-
- `parseOoxmlBoolean(prop)` — Handles self-closing tags, `val="1"`, `val="true"`, `val="on"`
|
|
55
|
-
- `isExplicitlySet(value)` — Handles 0 correctly (common bug: treating 0 as falsy)
|
|
56
|
-
- `parseNumericAttribute(value, default?)` — Zero-safe numeric parsing
|
|
57
|
-
|
|
58
|
-
## Formatting Utilities (`formatting.ts`)
|
|
59
|
-
|
|
60
|
-
- `normalizeColor(color)` — Uppercase 6-char hex
|
|
61
|
-
|
|
62
|
-
## Deep Clone (`deepClone.ts`)
|
|
63
|
-
|
|
64
|
-
- `deepClone<T>(obj)` — Safe deep cloning
|
|
65
|
-
|
|
66
|
-
## Date Formatting (`dateFormatting.ts`)
|
|
67
|
-
|
|
68
|
-
- `formatDateForXml(date)` — ISO 8601 without milliseconds (Word rejects dates with ms in `w:date`)
|
|
69
|
-
|
|
70
|
-
## Revision Processing
|
|
71
|
-
|
|
72
|
-
### acceptRevisions (`acceptRevisions.ts`)
|
|
73
|
-
|
|
74
|
-
Main entry point for accepting tracked changes via raw XML:
|
|
75
|
-
```typescript
|
|
76
|
-
await acceptAllRevisions(zipHandler, options?)
|
|
77
|
-
// Options: acceptInsertions, acceptDeletions, acceptMoves, acceptPropertyChanges, useDomParser
|
|
78
|
-
```
|
|
79
|
-
Processes document.xml + all headers/footers, remaps image relationship IDs, cleans metadata.
|
|
80
|
-
|
|
81
|
-
### RevisionWalker (`RevisionWalker.ts`)
|
|
82
|
-
|
|
83
|
-
DOM-based tree walker for revision acceptance. Handles nested revisions, preserves element order via `_orderedChildren`. ReDoS-safe.
|
|
84
|
-
|
|
85
|
-
### ChangelogGenerator (`ChangelogGenerator.ts`)
|
|
86
|
-
|
|
87
|
-
Converts revisions to structured changelog data:
|
|
88
|
-
```typescript
|
|
89
|
-
const entries = ChangelogGenerator.fromDocument(doc, options?);
|
|
90
|
-
ChangelogGenerator.toMarkdown(entries) // Also: toJSON, toHTML, toCSV
|
|
91
|
-
ChangelogGenerator.getSummary(entries)
|
|
92
|
-
ChangelogGenerator.consolidate(entries)
|
|
93
|
-
```
|
|
94
|
-
Options: `includeFormattingChanges`, `consolidate`, `filterAuthors`, `filterCategories`, `sortBy`, `sortOrder`.
|
|
95
|
-
|
|
96
|
-
### SelectiveRevisionAcceptor (`SelectiveRevisionAcceptor.ts`)
|
|
97
|
-
|
|
98
|
-
Accept/reject revisions by criteria (authors, types, date range, categories).
|
|
99
|
-
|
|
100
|
-
### MoveOperationHelper (`MoveOperationHelper.ts`)
|
|
101
|
-
|
|
102
|
-
Creates complete move operations with ECMA-376 range markers. See `src/elements/CLAUDE.md` for usage.
|
|
103
|
-
|
|
104
|
-
### stripTrackedChanges (`stripTrackedChanges.ts`)
|
|
105
|
-
|
|
106
|
-
Removes all revision markup: `await stripTrackedChanges(zipHandler)`.
|
|
107
|
-
|
|
108
|
-
## Text Diff (`textDiff.ts`)
|
|
109
|
-
|
|
110
|
-
Character-level diff for granular tracking in `Run.setText()`:
|
|
111
|
-
```typescript
|
|
112
|
-
const segments = diffText('Hello World', 'Hello Earth');
|
|
113
|
-
// [{ type: 'equal', text: 'Hello ' }, { type: 'delete', text: 'World' }, { type: 'insert', text: 'Earth' }]
|
|
114
|
-
if (diffHasUnchangedParts(segments)) { /* granular tracking */ }
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Compatibility Utilities
|
|
118
|
-
|
|
119
|
-
### CompatibilityUpgrader (`CompatibilityUpgrader.ts`)
|
|
120
|
-
|
|
121
|
-
Upgrades `w:compat` blocks to modern Word 2013+ format. Used by `Document.upgradeToModernFormat()`.
|
|
122
|
-
|
|
123
|
-
Related constants in `src/constants/legacyCompatFlags.ts`:
|
|
124
|
-
- `LEGACY_COMPAT_ELEMENTS` — 65 legacy boolean flags
|
|
125
|
-
- `MODERN_COMPAT_SETTINGS` — 5 default modern settings
|
|
126
|
-
- `MS_WORD_COMPAT_URI` — Microsoft namespace URI
|
|
127
|
-
|
|
128
|
-
## Logging (`logger.ts`)
|
|
129
|
-
|
|
130
|
-
**Levels:** `DEBUG`, `INFO`, `WARN`, `ERROR`
|
|
131
|
-
|
|
132
|
-
**Implementations:** `ConsoleLogger` (timestamps), `SilentLogger` (no output), `CollectingLogger` (in-memory).
|
|
133
|
-
|
|
134
|
-
**Environment:**
|
|
135
|
-
```bash
|
|
136
|
-
DOCXMLATER_LOG_LEVEL=info npm test # info/debug/silent
|
|
137
|
-
DEBUG=docxmlater npm test
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**Programmatic:**
|
|
141
|
-
```typescript
|
|
142
|
-
import { setGlobalLogger, ConsoleLogger, LogLevel } from 'docxmlater';
|
|
143
|
-
setGlobalLogger(new ConsoleLogger(LogLevel.INFO));
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Scoped:**
|
|
147
|
-
```typescript
|
|
148
|
-
const logger = createScopedLogger(getGlobalLogger(), 'MyComponent');
|
|
149
|
-
logger.info('Done', { count: 10 });
|
|
150
|
-
// Output: 12:34:56.789 [INFO ] [MyComponent] Done count=10
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
| Component | INFO | DEBUG |
|
|
154
|
-
|-----------|------|-------|
|
|
155
|
-
| Document | Load/save ops | + details |
|
|
156
|
-
| ZipHandler | File ops, validation | + counts, sizes |
|
|
157
|
-
| DocumentParser | Completion, warnings | + element counts |
|
|
158
|
-
| DocumentGenerator | Generation steps | + XML sizes |
|
|
159
|
-
| RevisionManager | Clear, summary | + each registration |
|
|
160
|
-
|
|
161
|
-
## Error Handling (`errorHandling.ts`)
|
|
162
|
-
|
|
163
|
-
`DocXMLaterError` → `InvalidDocxError`, `ParseError`, `ValidationError`.
|
|
164
|
-
|
|
165
|
-
## Diagnostics (`diagnostics.ts`)
|
|
166
|
-
|
|
167
|
-
- `debugXmlStructure(xml)` — Debug XML structure
|
|
168
|
-
- `inspectElement(element)` — Element inspection
|
package/src/validation/CLAUDE.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Validation Module
|
|
2
|
-
|
|
3
|
-
`src/validation/` — Revision validation, rule definitions, and auto-fix.
|
|
4
|
-
|
|
5
|
-
## Classes
|
|
6
|
-
|
|
7
|
-
### RevisionValidator (`RevisionValidator.ts`)
|
|
8
|
-
|
|
9
|
-
Static validation class. Entry point: `validate(doc, options?)`.
|
|
10
|
-
|
|
11
|
-
Runs all rules with configurable strictness (`strict` / `normal` / `lenient`). Returns `ValidationResult` with categorized issues (errors, warnings, infos) and summary stats.
|
|
12
|
-
|
|
13
|
-
Individual validators: `validateRevisionIds()`, `validateMovePairs()`, `validateAuthors()`, `validateDates()`, `validateContent()`, `validateSequentialIds()`.
|
|
14
|
-
|
|
15
|
-
### ValidationRules (`ValidationRules.ts`)
|
|
16
|
-
|
|
17
|
-
10 rules organized by severity:
|
|
18
|
-
|
|
19
|
-
| Rule | Severity | Description | Auto-fixable |
|
|
20
|
-
|--------|----------|----------------------------|-------------|
|
|
21
|
-
| REV001 | Error | Duplicate revision IDs | Yes |
|
|
22
|
-
| REV002 | Error | Missing authors | Yes |
|
|
23
|
-
| REV003 | Error | Orphaned moveFrom | Yes |
|
|
24
|
-
| REV004 | Error | Orphaned moveTo | Yes |
|
|
25
|
-
| REV101 | Warning | Missing dates | Yes |
|
|
26
|
-
| REV102 | Warning | Invalid date format | Yes |
|
|
27
|
-
| REV103 | Warning | Empty revisions | Yes |
|
|
28
|
-
| REV104 | Warning | Non-sequential IDs | Yes |
|
|
29
|
-
| REV201 | Info | Large revision count | No |
|
|
30
|
-
| REV202 | Info | Old revision dates | No |
|
|
31
|
-
|
|
32
|
-
**Auto-fix dependency order:** REV001 -> REV002 -> REV003/004 -> REV103 -> REV104
|
|
33
|
-
|
|
34
|
-
### RevisionAutoFixer (`RevisionAutoFixer.ts`)
|
|
35
|
-
|
|
36
|
-
Applies fixes in correct dependency order. Supports dry-run mode via `preview()`.
|
|
37
|
-
|
|
38
|
-
Entry point: `fix(doc, options?)`. Returns `AutoFixResult` with detailed actions taken.
|
|
39
|
-
|
|
40
|
-
Individual fixers: `fixDuplicateIds()`, `fixMissingAuthors()`, `fixOrphanedMoveMarkers()`, `fixEmptyRevisions()`, `fixNonSequentialIds()`.
|
package/src/xml/CLAUDE.md
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# XML Module
|
|
2
|
-
|
|
3
|
-
`src/xml/` — XML generation and parsing (2 files).
|
|
4
|
-
|
|
5
|
-
## XMLBuilder (`XMLBuilder.ts`)
|
|
6
|
-
|
|
7
|
-
Generates well-formed XML using DOM-like approach (not string concatenation) to prevent injection.
|
|
8
|
-
|
|
9
|
-
**Key methods:**
|
|
10
|
-
- `createDocument(rootTag, namespaces, children)` — Root element with namespaces. Auto-generates `mc:Ignorable` when extended namespaces (w14, w15, wp14, w16se, etc.) are present.
|
|
11
|
-
- `wElement(name, attributes, children)` — Element with `w:` namespace
|
|
12
|
-
- `wSelf(name, attributes)` — Self-closing `w:` element
|
|
13
|
-
- `escapeXmlText(text)` / `escapeXmlAttribute(value)` — Includes XML 1.0 character sanitization
|
|
14
|
-
|
|
15
|
-
## XMLParser (`XMLParser.ts`)
|
|
16
|
-
|
|
17
|
-
Position-based parser (ReDoS-safe). Maximum nesting depth: 256.
|
|
18
|
-
|
|
19
|
-
**`parseToObject(xml, options?)`** — Returns fast-xml-parser compatible format:
|
|
20
|
-
|
|
21
|
-
| Feature | Format |
|
|
22
|
-
|---------|--------|
|
|
23
|
-
| Attributes | `@_` prefix (`@_Id`, `@_Type`) |
|
|
24
|
-
| Text content | `#text` property |
|
|
25
|
-
| Multiple same-name children | Array `[]` |
|
|
26
|
-
| Single child | Object `{}` |
|
|
27
|
-
| Self-closing tags | Empty object `{}` |
|
|
28
|
-
| Namespaces | Preserved in keys (`w:p`, `w:r`) |
|
|
29
|
-
| Element order | `_orderedChildren` array |
|
|
30
|
-
|
|
31
|
-
**Options:**
|
|
32
|
-
```typescript
|
|
33
|
-
interface ParseToObjectOptions {
|
|
34
|
-
ignoreAttributes?: boolean; // default: false
|
|
35
|
-
attributeNamePrefix?: string; // default: '@_'
|
|
36
|
-
textNodeName?: string; // default: '#text'
|
|
37
|
-
parseAttributeValue?: boolean; // default: true (numbers/booleans)
|
|
38
|
-
trimValues?: boolean; // default: true
|
|
39
|
-
alwaysArray?: boolean; // default: false
|
|
40
|
-
maxNestingDepth?: number; // default: 256
|
|
41
|
-
ignoreNamespace?: boolean; // default: false
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**Element Order (`_orderedChildren`):**
|
|
46
|
-
|
|
47
|
-
Critical for parsing mixed content like runs with interleaved tabs and breaks:
|
|
48
|
-
|
|
49
|
-
```typescript
|
|
50
|
-
const xml = `<w:r><w:t>Hello</w:t><w:tab/><w:t>World</w:t></w:r>`;
|
|
51
|
-
const result = XMLParser.parseToObject(xml);
|
|
52
|
-
// result["w:r"]._orderedChildren = [
|
|
53
|
-
// { type: "w:t", index: 0 },
|
|
54
|
-
// { type: "w:tab", index: 0 },
|
|
55
|
-
// { type: "w:t", index: 1 }
|
|
56
|
-
// ]
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
`type` = element tag name, `index` = position within elements of that type.
|
|
60
|
-
|
|
61
|
-
## Testing
|
|
62
|
-
|
|
63
|
-
- `tests/xml/XMLBuilder.test.ts` — Builder tests
|
|
64
|
-
- `tests/xml/XMLBuilder-sanitization.test.ts` — 41 sanitization tests
|
|
65
|
-
- `tests/xml/XMLParser.test.ts` — 39 parser tests
|
package/src/zip/CLAUDE.md
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# ZIP Module
|
|
2
|
-
|
|
3
|
-
`src/zip/` — DOCX/ZIP archive handling (5 files). Dependency: JSZip.
|
|
4
|
-
|
|
5
|
-
## Classes
|
|
6
|
-
|
|
7
|
-
### ZipHandler (`ZipHandler.ts`)
|
|
8
|
-
|
|
9
|
-
High-level facade combining ZipReader/ZipWriter. Used by Document for all file I/O.
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
await zipHandler.loadFromFile(filepath) / loadFromBuffer(buffer)
|
|
13
|
-
await zipHandler.saveToFile(filepath) / toBuffer()
|
|
14
|
-
zipHandler.addFile(path, content) // string or Buffer
|
|
15
|
-
zipHandler.getFile(path) // returns string | undefined
|
|
16
|
-
zipHandler.hasFile(path) / getFileNames()
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### ZipReader (`ZipReader.ts`)
|
|
20
|
-
|
|
21
|
-
Reads/extracts from DOCX/ZIP. UTF-8 text extraction, binary file extraction, size validation.
|
|
22
|
-
|
|
23
|
-
### ZipWriter (`ZipWriter.ts`)
|
|
24
|
-
|
|
25
|
-
Creates DOCX/ZIP archives. UTF-8 string → Buffer conversion, compression control.
|
|
26
|
-
|
|
27
|
-
## Types and Constants (`types.ts`)
|
|
28
|
-
|
|
29
|
-
`DOCX_PATHS` — Standard file paths (`CONTENT_TYPES`, `RELS`, `DOCUMENT`, `STYLES`, `NUMBERING`, `SETTINGS`, `FONT_TABLE`, `THEME`, `CORE_PROPS`, `APP_PROPS`, `FOOTNOTES`, `ENDNOTES`, etc.).
|
|
30
|
-
|
|
31
|
-
`REQUIRED_DOCX_FILES` — Files required for valid DOCX.
|
|
32
|
-
|
|
33
|
-
`SizeLimitOptions` — Warning (50MB) and max (150MB) size limits.
|
|
34
|
-
|
|
35
|
-
## Error Types (`errors.ts`)
|
|
36
|
-
|
|
37
|
-
`DocxError` (base) → `DocxNotFoundError`, `InvalidDocxError`, `CorruptedArchiveError`, `MissingRequiredFileError`, `FileOperationError`.
|
|
38
|
-
|
|
39
|
-
## UTF-8 Encoding
|
|
40
|
-
|
|
41
|
-
All text is UTF-8 per ECMA-376:
|
|
42
|
-
- `ZipWriter.addFile()` converts strings to UTF-8 Buffers
|
|
43
|
-
- `ZipReader` extracts text as UTF-8 strings
|
|
44
|
-
- Binary files (images) preserved as-is
|
|
45
|
-
- XML declarations include `encoding="UTF-8"`
|
|
46
|
-
|
|
47
|
-
Supports: ASCII, Latin diacritics, Greek, Cyrillic, Arabic, Hebrew, Devanagari, CJK, emoji, RTL.
|
|
48
|
-
|
|
49
|
-
## Security
|
|
50
|
-
|
|
51
|
-
File paths validated against path traversal (`../`, absolute paths, URL-encoded sequences).
|
|
52
|
-
|
|
53
|
-
## Testing
|
|
54
|
-
|
|
55
|
-
`tests/zip/ZipHandler.test.ts` — 62 tests including 11 UTF-8 encoding tests.
|
|
File without changes
|
|
File without changes
|