docxmlater 10.0.2 → 10.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 -2
- package/dist/constants/legacyCompatFlags.d.ts.map +1 -1
- package/dist/constants/legacyCompatFlags.js.map +1 -1
- package/dist/constants/limits.d.ts +0 -27
- package/dist/constants/limits.d.ts.map +1 -1
- package/dist/constants/limits.js +13 -13
- package/dist/constants/limits.js.map +1 -1
- package/dist/core/Document.d.ts +23 -19
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +197 -63
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentContent.d.ts.map +1 -1
- package/dist/core/DocumentContent.js.map +1 -1
- package/dist/core/DocumentGenerator.d.ts.map +1 -1
- package/dist/core/DocumentGenerator.js +59 -24
- package/dist/core/DocumentGenerator.js.map +1 -1
- package/dist/core/DocumentIdManager.d.ts.map +1 -1
- package/dist/core/DocumentIdManager.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +6 -6
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +86 -55
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/core/DocumentValidator.d.ts.map +1 -1
- package/dist/core/DocumentValidator.js.map +1 -1
- package/dist/core/Relationship.d.ts.map +1 -1
- package/dist/core/Relationship.js +1 -1
- package/dist/core/Relationship.js.map +1 -1
- package/dist/core/RelationshipManager.js +3 -3
- package/dist/core/RelationshipManager.js.map +1 -1
- package/dist/elements/AlternateContent.js.map +1 -1
- package/dist/elements/Bookmark.d.ts.map +1 -1
- package/dist/elements/Bookmark.js.map +1 -1
- package/dist/elements/BookmarkManager.d.ts.map +1 -1
- package/dist/elements/BookmarkManager.js.map +1 -1
- package/dist/elements/Comment.js +1 -1
- package/dist/elements/Comment.js.map +1 -1
- package/dist/elements/CommentManager.d.ts.map +1 -1
- package/dist/elements/CommentManager.js +8 -2
- package/dist/elements/CommentManager.js.map +1 -1
- package/dist/elements/CommonTypes.d.ts.map +1 -1
- package/dist/elements/CommonTypes.js +1 -2
- package/dist/elements/CommonTypes.js.map +1 -1
- package/dist/elements/CustomXml.js.map +1 -1
- package/dist/elements/Endnote.d.ts.map +1 -1
- package/dist/elements/Endnote.js.map +1 -1
- package/dist/elements/EndnoteManager.d.ts.map +1 -1
- package/dist/elements/EndnoteManager.js.map +1 -1
- package/dist/elements/Field.d.ts.map +1 -1
- package/dist/elements/Field.js +31 -28
- package/dist/elements/Field.js.map +1 -1
- package/dist/elements/FieldHelpers.d.ts.map +1 -1
- package/dist/elements/FieldHelpers.js +6 -6
- package/dist/elements/FieldHelpers.js.map +1 -1
- package/dist/elements/FontManager.d.ts.map +1 -1
- package/dist/elements/FontManager.js.map +1 -1
- package/dist/elements/Footer.js.map +1 -1
- package/dist/elements/Footnote.d.ts.map +1 -1
- package/dist/elements/Footnote.js.map +1 -1
- package/dist/elements/FootnoteManager.d.ts.map +1 -1
- package/dist/elements/FootnoteManager.js.map +1 -1
- package/dist/elements/Header.js.map +1 -1
- package/dist/elements/HeaderFooterManager.js.map +1 -1
- package/dist/elements/Hyperlink.d.ts.map +1 -1
- package/dist/elements/Hyperlink.js +5 -5
- package/dist/elements/Hyperlink.js.map +1 -1
- package/dist/elements/Image.d.ts +2 -2
- package/dist/elements/Image.d.ts.map +1 -1
- package/dist/elements/Image.js +21 -5
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/ImageManager.d.ts.map +1 -1
- package/dist/elements/ImageManager.js +2 -2
- package/dist/elements/ImageManager.js.map +1 -1
- package/dist/elements/ImageRun.js.map +1 -1
- package/dist/elements/MathElement.js.map +1 -1
- package/dist/elements/Paragraph.d.ts +8 -0
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +153 -118
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/elements/PreservedElement.js.map +1 -1
- package/dist/elements/PropertyChangeTypes.js.map +1 -1
- package/dist/elements/RangeMarker.js.map +1 -1
- package/dist/elements/Revision.d.ts +1 -0
- package/dist/elements/Revision.d.ts.map +1 -1
- package/dist/elements/Revision.js +44 -5
- package/dist/elements/Revision.js.map +1 -1
- package/dist/elements/RevisionContent.js.map +1 -1
- package/dist/elements/RevisionManager.d.ts.map +1 -1
- package/dist/elements/RevisionManager.js.map +1 -1
- package/dist/elements/Run.d.ts.map +1 -1
- package/dist/elements/Run.js +1 -3
- package/dist/elements/Run.js.map +1 -1
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +127 -118
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Shape.d.ts.map +1 -1
- package/dist/elements/Shape.js +21 -0
- package/dist/elements/Shape.js.map +1 -1
- package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
- package/dist/elements/StructuredDocumentTag.js +20 -8
- package/dist/elements/StructuredDocumentTag.js.map +1 -1
- package/dist/elements/Table.d.ts +2 -2
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +29 -35
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableCell.d.ts +2 -2
- package/dist/elements/TableCell.d.ts.map +1 -1
- package/dist/elements/TableCell.js +63 -67
- package/dist/elements/TableCell.js.map +1 -1
- package/dist/elements/TableGridChange.js.map +1 -1
- package/dist/elements/TableOfContents.d.ts +6 -6
- package/dist/elements/TableOfContents.d.ts.map +1 -1
- package/dist/elements/TableOfContents.js.map +1 -1
- package/dist/elements/TableOfContentsElement.js.map +1 -1
- package/dist/elements/TableRow.d.ts.map +1 -1
- package/dist/elements/TableRow.js +65 -47
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/elements/TextBox.d.ts.map +1 -1
- package/dist/elements/TextBox.js +1 -1
- package/dist/elements/TextBox.js.map +1 -1
- package/dist/formatting/AbstractNumbering.d.ts +1 -1
- package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
- package/dist/formatting/AbstractNumbering.js +11 -11
- package/dist/formatting/AbstractNumbering.js.map +1 -1
- package/dist/formatting/NumberingInstance.d.ts.map +1 -1
- package/dist/formatting/NumberingInstance.js +4 -4
- package/dist/formatting/NumberingInstance.js.map +1 -1
- package/dist/formatting/NumberingLevel.d.ts.map +1 -1
- package/dist/formatting/NumberingLevel.js +26 -26
- package/dist/formatting/NumberingLevel.js.map +1 -1
- package/dist/formatting/NumberingManager.d.ts +1 -1
- package/dist/formatting/NumberingManager.d.ts.map +1 -1
- package/dist/formatting/NumberingManager.js.map +1 -1
- package/dist/formatting/Style.d.ts.map +1 -1
- package/dist/formatting/Style.js +87 -95
- package/dist/formatting/Style.js.map +1 -1
- package/dist/formatting/StylesManager.d.ts +3 -3
- package/dist/formatting/StylesManager.d.ts.map +1 -1
- package/dist/formatting/StylesManager.js.map +1 -1
- package/dist/helpers/CleanupHelper.js.map +1 -1
- package/dist/images/ImageOptimizer.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/managers/DrawingManager.d.ts.map +1 -1
- package/dist/managers/DrawingManager.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.js.map +1 -1
- package/dist/types/compatibility-types.js.map +1 -1
- package/dist/types/formatting.js.map +1 -1
- package/dist/types/list-types.d.ts +4 -4
- package/dist/types/list-types.d.ts.map +1 -1
- package/dist/types/list-types.js.map +1 -1
- package/dist/types/settings-types.js.map +1 -1
- package/dist/types/styleConfig.js.map +1 -1
- package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
- package/dist/utils/ChangelogGenerator.js.map +1 -1
- package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
- package/dist/utils/CompatibilityUpgrader.js +7 -7
- package/dist/utils/CompatibilityUpgrader.js.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js +23 -2
- package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
- package/dist/utils/MoveOperationHelper.js.map +1 -1
- package/dist/utils/RevisionAwareProcessor.js.map +1 -1
- package/dist/utils/RevisionWalker.js.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.d.ts +1 -0
- package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.js +46 -0
- package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
- package/dist/utils/ShadingResolver.js +1 -1
- package/dist/utils/ShadingResolver.js.map +1 -1
- package/dist/utils/acceptRevisions.d.ts +0 -28
- package/dist/utils/acceptRevisions.d.ts.map +1 -1
- package/dist/utils/acceptRevisions.js +5 -7
- package/dist/utils/acceptRevisions.js.map +1 -1
- package/dist/utils/cnfStyleDecoder.js +1 -1
- package/dist/utils/cnfStyleDecoder.js.map +1 -1
- package/dist/utils/corruptionDetection.js.map +1 -1
- package/dist/utils/dateFormatting.js.map +1 -1
- package/dist/utils/deepClone.d.ts +0 -1
- package/dist/utils/deepClone.d.ts.map +1 -1
- package/dist/utils/deepClone.js +0 -7
- package/dist/utils/deepClone.js.map +1 -1
- package/dist/utils/diagnostics.d.ts +2 -2
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/errorHandling.js.map +1 -1
- package/dist/utils/formatting.js.map +1 -1
- 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 +3 -3
- package/dist/utils/list-detection.js.map +1 -1
- package/dist/utils/logger.d.ts +2 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +0 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/parsingHelpers.js.map +1 -1
- package/dist/utils/stripTrackedChanges.d.ts +0 -19
- package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
- package/dist/utils/stripTrackedChanges.js +0 -2
- package/dist/utils/stripTrackedChanges.js.map +1 -1
- package/dist/utils/textDiff.js.map +1 -1
- package/dist/utils/units.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/xmlSanitization.js.map +1 -1
- package/dist/validation/RevisionAutoFixer.js.map +1 -1
- package/dist/validation/RevisionValidator.js.map +1 -1
- package/dist/validation/ValidationRules.js.map +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/xml/XMLBuilder.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.js +10 -0
- package/dist/xml/XMLBuilder.js.map +1 -1
- package/dist/xml/XMLParser.d.ts.map +1 -1
- package/dist/xml/XMLParser.js +4 -5
- package/dist/xml/XMLParser.js.map +1 -1
- package/dist/zip/ZipHandler.js.map +1 -1
- package/dist/zip/ZipReader.js.map +1 -1
- package/dist/zip/ZipWriter.js.map +1 -1
- package/dist/zip/errors.js.map +1 -1
- package/dist/zip/types.js.map +1 -1
- package/package.json +34 -4
- package/src/__tests__/helper-methods.test.ts +512 -0
- package/src/constants/legacyCompatFlags.ts +138 -0
- package/src/constants/limits.ts +50 -0
- package/src/core/CLAUDE.md +109 -0
- package/src/core/Document.ts +15569 -0
- package/src/core/DocumentContent.ts +467 -0
- package/src/core/DocumentGenerator.ts +1104 -0
- package/src/core/DocumentIdManager.ts +158 -0
- package/src/core/DocumentParser.ts +10140 -0
- package/src/core/DocumentValidator.ts +372 -0
- package/src/core/Relationship.ts +367 -0
- package/src/core/RelationshipManager.ts +428 -0
- package/src/elements/AlternateContent.ts +42 -0
- package/src/elements/Bookmark.ts +210 -0
- package/src/elements/BookmarkManager.ts +250 -0
- package/src/elements/CLAUDE.md +126 -0
- package/src/elements/Comment.ts +359 -0
- package/src/elements/CommentManager.ts +502 -0
- package/src/elements/CommonTypes.ts +549 -0
- package/src/elements/CustomXml.ts +36 -0
- package/src/elements/Endnote.ts +217 -0
- package/src/elements/EndnoteManager.ts +249 -0
- package/src/elements/Field.ts +1233 -0
- package/src/elements/FieldHelpers.ts +333 -0
- package/src/elements/FontManager.ts +339 -0
- package/src/elements/Footer.ts +269 -0
- package/src/elements/Footnote.ts +217 -0
- package/src/elements/FootnoteManager.ts +249 -0
- package/src/elements/Header.ts +269 -0
- package/src/elements/HeaderFooterManager.ts +219 -0
- package/src/elements/Hyperlink.ts +1146 -0
- package/src/elements/Image.ts +1756 -0
- package/src/elements/ImageManager.ts +432 -0
- package/src/elements/ImageRun.ts +59 -0
- package/src/elements/MathElement.ts +65 -0
- package/src/elements/Paragraph.ts +4287 -0
- package/src/elements/PreservedElement.ts +53 -0
- package/src/elements/PropertyChangeTypes.ts +442 -0
- package/src/elements/RangeMarker.ts +400 -0
- package/src/elements/Revision.ts +1217 -0
- package/src/elements/RevisionContent.ts +73 -0
- package/src/elements/RevisionManager.ts +1070 -0
- package/src/elements/Run.ts +3068 -0
- package/src/elements/Section.ts +1421 -0
- package/src/elements/Shape.ts +873 -0
- package/src/elements/StructuredDocumentTag.ts +978 -0
- package/src/elements/Table.ts +2524 -0
- package/src/elements/TableCell.ts +1586 -0
- package/src/elements/TableGridChange.ts +151 -0
- package/src/elements/TableOfContents.ts +691 -0
- package/src/elements/TableOfContentsElement.ts +89 -0
- package/src/elements/TableRow.ts +906 -0
- package/src/elements/TextBox.ts +768 -0
- package/src/formatting/AbstractNumbering.ts +548 -0
- package/src/formatting/CLAUDE.md +74 -0
- package/src/formatting/NumberingInstance.ts +212 -0
- package/src/formatting/NumberingLevel.ts +1006 -0
- package/src/formatting/NumberingManager.ts +827 -0
- package/src/formatting/Style.ts +1833 -0
- package/src/formatting/StylesManager.ts +1005 -0
- package/src/helpers/CleanupHelper.ts +524 -0
- package/src/images/ImageOptimizer.ts +274 -0
- package/src/index.ts +554 -0
- package/src/managers/CLAUDE.md +47 -0
- package/src/managers/DrawingManager.ts +319 -0
- package/src/tracking/DocumentTrackingContext.ts +643 -0
- package/src/tracking/TrackingContext.ts +173 -0
- package/src/types/compatibility-types.ts +49 -0
- package/src/types/formatting.ts +210 -0
- package/src/types/list-types.ts +152 -0
- package/src/types/settings-types.ts +59 -0
- package/src/types/styleConfig.ts +189 -0
- package/src/utils/CLAUDE.md +153 -0
- package/src/utils/ChangelogGenerator.ts +1581 -0
- package/src/utils/CompatibilityUpgrader.ts +237 -0
- package/src/utils/InMemoryRevisionAcceptor.ts +696 -0
- package/src/utils/MoveOperationHelper.ts +238 -0
- package/src/utils/RevisionAwareProcessor.ts +526 -0
- package/src/utils/RevisionWalker.ts +457 -0
- package/src/utils/SelectiveRevisionAcceptor.ts +683 -0
- package/src/utils/ShadingResolver.ts +107 -0
- package/src/utils/acceptRevisions.ts +714 -0
- package/src/utils/cnfStyleDecoder.ts +217 -0
- package/src/utils/corruptionDetection.ts +345 -0
- package/src/utils/dateFormatting.ts +20 -0
- package/src/utils/deepClone.ts +78 -0
- package/src/utils/diagnostics.ts +129 -0
- package/src/utils/errorHandling.ts +80 -0
- package/src/utils/formatting.ts +213 -0
- package/src/utils/list-detection.ts +274 -0
- package/src/utils/logger.ts +404 -0
- package/src/utils/parsingHelpers.ts +190 -0
- package/src/utils/stripTrackedChanges.ts +353 -0
- package/src/utils/textDiff.ts +100 -0
- package/src/utils/units.ts +421 -0
- package/src/utils/validation.ts +542 -0
- package/src/utils/xmlSanitization.ts +182 -0
- package/src/validation/RevisionAutoFixer.ts +542 -0
- package/src/validation/RevisionValidator.ts +460 -0
- package/src/validation/ValidationRules.ts +338 -0
- package/src/validation/index.ts +30 -0
- package/src/xml/CLAUDE.md +65 -0
- package/src/xml/XMLBuilder.ts +871 -0
- package/src/xml/XMLParser.ts +919 -0
- package/src/zip/CLAUDE.md +55 -0
- package/src/zip/ZipHandler.ts +637 -0
- package/src/zip/ZipReader.ts +299 -0
- package/src/zip/ZipWriter.ts +390 -0
- package/src/zip/errors.ts +69 -0
- package/src/zip/types.ts +116 -0
- package/dist/core/ListNormalizer.d.ts +0 -23
- package/dist/core/ListNormalizer.d.ts.map +0 -1
- package/dist/core/ListNormalizer.js +0 -624
- package/dist/core/ListNormalizer.js.map +0 -1
- package/dist/images/index.d.ts +0 -2
- package/dist/images/index.d.ts.map +0 -1
- package/dist/images/index.js +0 -8
- package/dist/images/index.js.map +0 -1
- package/dist/ms-doc/cfb/CFBReader.d.ts +0 -35
- package/dist/ms-doc/cfb/CFBReader.d.ts.map +0 -1
- package/dist/ms-doc/cfb/CFBReader.js +0 -360
- package/dist/ms-doc/cfb/CFBReader.js.map +0 -1
- package/dist/ms-doc/converter/DocToDocxConverter.d.ts +0 -55
- package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +0 -1
- package/dist/ms-doc/converter/DocToDocxConverter.js +0 -324
- package/dist/ms-doc/converter/DocToDocxConverter.js.map +0 -1
- package/dist/ms-doc/fib/FIB.d.ts +0 -18
- package/dist/ms-doc/fib/FIB.d.ts.map +0 -1
- package/dist/ms-doc/fib/FIB.js +0 -342
- package/dist/ms-doc/fib/FIB.js.map +0 -1
- package/dist/ms-doc/fields/FieldParser.d.ts +0 -31
- package/dist/ms-doc/fields/FieldParser.d.ts.map +0 -1
- package/dist/ms-doc/fields/FieldParser.js +0 -266
- package/dist/ms-doc/fields/FieldParser.js.map +0 -1
- package/dist/ms-doc/images/PictureExtractor.d.ts +0 -22
- package/dist/ms-doc/images/PictureExtractor.d.ts.map +0 -1
- package/dist/ms-doc/images/PictureExtractor.js +0 -233
- package/dist/ms-doc/images/PictureExtractor.js.map +0 -1
- package/dist/ms-doc/index.d.ts +0 -20
- package/dist/ms-doc/index.d.ts.map +0 -1
- package/dist/ms-doc/index.js +0 -59
- package/dist/ms-doc/index.js.map +0 -1
- package/dist/ms-doc/properties/SPRM.d.ts +0 -210
- package/dist/ms-doc/properties/SPRM.d.ts.map +0 -1
- package/dist/ms-doc/properties/SPRM.js +0 -633
- package/dist/ms-doc/properties/SPRM.js.map +0 -1
- package/dist/ms-doc/sections/SectionParser.d.ts +0 -25
- package/dist/ms-doc/sections/SectionParser.d.ts.map +0 -1
- package/dist/ms-doc/sections/SectionParser.js +0 -214
- package/dist/ms-doc/sections/SectionParser.js.map +0 -1
- package/dist/ms-doc/styles/StyleSheet.d.ts +0 -23
- package/dist/ms-doc/styles/StyleSheet.d.ts.map +0 -1
- package/dist/ms-doc/styles/StyleSheet.js +0 -268
- package/dist/ms-doc/styles/StyleSheet.js.map +0 -1
- package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +0 -61
- package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +0 -1
- package/dist/ms-doc/subdocuments/SubdocumentParser.js +0 -208
- package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +0 -1
- package/dist/ms-doc/tables/TableParser.d.ts +0 -29
- package/dist/ms-doc/tables/TableParser.d.ts.map +0 -1
- package/dist/ms-doc/tables/TableParser.js +0 -176
- package/dist/ms-doc/tables/TableParser.js.map +0 -1
- package/dist/ms-doc/text/PieceTable.d.ts +0 -21
- package/dist/ms-doc/text/PieceTable.d.ts.map +0 -1
- package/dist/ms-doc/text/PieceTable.js +0 -171
- package/dist/ms-doc/text/PieceTable.js.map +0 -1
- package/dist/ms-doc/types/Constants.d.ts +0 -99
- package/dist/ms-doc/types/Constants.d.ts.map +0 -1
- package/dist/ms-doc/types/Constants.js +0 -102
- package/dist/ms-doc/types/Constants.js.map +0 -1
- package/dist/ms-doc/types/DocTypes.d.ts +0 -368
- package/dist/ms-doc/types/DocTypes.d.ts.map +0 -1
- package/dist/ms-doc/types/DocTypes.js +0 -3
- package/dist/ms-doc/types/DocTypes.js.map +0 -1
- package/dist/tracking/index.d.ts +0 -3
- package/dist/tracking/index.d.ts.map +0 -1
- package/dist/tracking/index.js +0 -6
- package/dist/tracking/index.js.map +0 -1
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration interfaces for customizable style formatting
|
|
3
|
+
* Used by Document.applyCustomFormattingToExistingStyles()
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Run (character) formatting configuration for styles
|
|
8
|
+
*/
|
|
9
|
+
export interface StyleRunFormatting {
|
|
10
|
+
/** Font family name (e.g., 'Verdana', 'Arial', 'Times New Roman') */
|
|
11
|
+
font?: string;
|
|
12
|
+
|
|
13
|
+
/** Font size in points (e.g., 12, 14, 18) */
|
|
14
|
+
size?: number;
|
|
15
|
+
|
|
16
|
+
/** Whether text should be bold */
|
|
17
|
+
bold?: boolean;
|
|
18
|
+
|
|
19
|
+
/** Whether text should be italic */
|
|
20
|
+
italic?: boolean;
|
|
21
|
+
|
|
22
|
+
/** Whether text should be underlined */
|
|
23
|
+
underline?: boolean;
|
|
24
|
+
|
|
25
|
+
/** Text color as hex without # (e.g., '000000', 'FF0000') */
|
|
26
|
+
color?: string;
|
|
27
|
+
|
|
28
|
+
/** If true, preserve existing bold formatting (don't apply bold property) */
|
|
29
|
+
preserveBold?: boolean;
|
|
30
|
+
|
|
31
|
+
/** If true, preserve existing italic formatting (don't apply italic property) */
|
|
32
|
+
preserveItalic?: boolean;
|
|
33
|
+
|
|
34
|
+
/** If true, preserve existing underline formatting (don't apply underline property) */
|
|
35
|
+
preserveUnderline?: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Paragraph formatting configuration for styles
|
|
40
|
+
*/
|
|
41
|
+
export interface StyleParagraphFormatting {
|
|
42
|
+
/** Text alignment */
|
|
43
|
+
alignment?: "left" | "center" | "right" | "justify";
|
|
44
|
+
|
|
45
|
+
/** Spacing configuration */
|
|
46
|
+
spacing?: {
|
|
47
|
+
/** Spacing before paragraph in twips (20 twips = 1 point) */
|
|
48
|
+
before?: number;
|
|
49
|
+
|
|
50
|
+
/** Spacing after paragraph in twips (20 twips = 1 point) */
|
|
51
|
+
after?: number;
|
|
52
|
+
|
|
53
|
+
/** Line spacing in twips (240 = single spacing when lineRule is 'auto') */
|
|
54
|
+
line?: number;
|
|
55
|
+
|
|
56
|
+
/** How to interpret the line spacing value */
|
|
57
|
+
lineRule?: "auto" | "exact" | "atLeast";
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/** Indentation configuration */
|
|
61
|
+
indentation?: {
|
|
62
|
+
/** Left indent in twips (1440 twips = 1 inch) */
|
|
63
|
+
left?: number;
|
|
64
|
+
|
|
65
|
+
/** Right indent in twips */
|
|
66
|
+
right?: number;
|
|
67
|
+
|
|
68
|
+
/** First line indent in twips (positive = indent, negative = outdent) */
|
|
69
|
+
firstLine?: number;
|
|
70
|
+
|
|
71
|
+
/** Hanging indent in twips (typically used for lists) */
|
|
72
|
+
hanging?: number;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Whether to remove spacing between consecutive paragraphs of the same style
|
|
77
|
+
* Per ECMA-376 Part 1 §17.3.1.8
|
|
78
|
+
*/
|
|
79
|
+
contextualSpacing?: boolean;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Table appearance options for Heading2 wrapping
|
|
84
|
+
* Heading2 paragraphs are always wrapped in 1x1 tables with these settings
|
|
85
|
+
*/
|
|
86
|
+
export interface Heading2TableOptions {
|
|
87
|
+
/** Cell background color as hex without # (e.g., 'BFBFBF' for gray) */
|
|
88
|
+
shading?: string;
|
|
89
|
+
|
|
90
|
+
/** Top cell margin in twips */
|
|
91
|
+
marginTop?: number;
|
|
92
|
+
|
|
93
|
+
/** Bottom cell margin in twips */
|
|
94
|
+
marginBottom?: number;
|
|
95
|
+
|
|
96
|
+
/** Left cell margin in twips (115 twips = 0.08 inches) */
|
|
97
|
+
marginLeft?: number;
|
|
98
|
+
|
|
99
|
+
/** Right cell margin in twips (115 twips = 0.08 inches) */
|
|
100
|
+
marginRight?: number;
|
|
101
|
+
|
|
102
|
+
/** Table width as percentage (5000 = 100%) */
|
|
103
|
+
tableWidthPercent?: number;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Base style configuration combining run and paragraph formatting
|
|
108
|
+
*/
|
|
109
|
+
export interface StyleConfig {
|
|
110
|
+
/** Character formatting for the style */
|
|
111
|
+
run?: StyleRunFormatting;
|
|
112
|
+
|
|
113
|
+
/** Paragraph formatting for the style */
|
|
114
|
+
paragraph?: StyleParagraphFormatting;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Extended configuration for Heading2 style including table options
|
|
119
|
+
* Heading2 paragraphs are always wrapped in tables
|
|
120
|
+
*/
|
|
121
|
+
export interface Heading2Config extends StyleConfig {
|
|
122
|
+
/** Table appearance options for wrapping Heading2 paragraphs */
|
|
123
|
+
tableOptions?: Heading2TableOptions;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Extended configuration for Normal style with alignment preservation options
|
|
128
|
+
*/
|
|
129
|
+
export interface NormalConfig extends StyleConfig {
|
|
130
|
+
/**
|
|
131
|
+
* Whether to preserve center alignment during style application.
|
|
132
|
+
* When true, paragraphs that are center-aligned will retain their center alignment
|
|
133
|
+
* instead of being changed to the Normal style's alignment (typically 'left').
|
|
134
|
+
* This is useful for preserving intentional centering like image captions or table headers.
|
|
135
|
+
* @default false
|
|
136
|
+
*/
|
|
137
|
+
preserveCenterAlignment?: boolean;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Complete configuration for applyStyles()
|
|
142
|
+
* All properties are optional - defaults will be used if not provided
|
|
143
|
+
*/
|
|
144
|
+
export interface ApplyStylesOptions {
|
|
145
|
+
/** Heading1 style configuration */
|
|
146
|
+
heading1?: StyleConfig;
|
|
147
|
+
|
|
148
|
+
/** Heading2 style configuration with table options */
|
|
149
|
+
heading2?: Heading2Config;
|
|
150
|
+
|
|
151
|
+
/** Heading3 style configuration */
|
|
152
|
+
heading3?: StyleConfig;
|
|
153
|
+
|
|
154
|
+
/** Normal style configuration with alignment preservation options */
|
|
155
|
+
normal?: NormalConfig;
|
|
156
|
+
|
|
157
|
+
/** List Paragraph style configuration */
|
|
158
|
+
listParagraph?: StyleConfig;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Whether to preserve blank lines added after 1x1 Heading 2 tables.
|
|
162
|
+
* When true, blank paragraphs added after Heading 2 tables are marked as preserved
|
|
163
|
+
* to prevent accidental removal by document processing operations (e.g., removing extra blank lines).
|
|
164
|
+
* @default true
|
|
165
|
+
*/
|
|
166
|
+
preserveBlankLinesAfterHeading2Tables?: boolean;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Whether to preserve white font (FFFFFF) color during style application.
|
|
170
|
+
* When true, runs with white color will not have their color changed.
|
|
171
|
+
* This is useful for preserving hidden text like ID tags or overlay text.
|
|
172
|
+
* @default false
|
|
173
|
+
*/
|
|
174
|
+
preserveWhiteFont?: boolean;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Whether to apply Normal style changes to NormalWeb (Normal (Web)) style as well.
|
|
178
|
+
* When true (default), if NormalWeb style exists in the document,
|
|
179
|
+
* it will receive the same formatting changes applied to Normal.
|
|
180
|
+
* This ensures consistency between Normal and Normal (Web) styles.
|
|
181
|
+
* @default true
|
|
182
|
+
*/
|
|
183
|
+
linkNormalWebToNormal?: boolean;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* @deprecated Use {@link ApplyStylesOptions} instead (renamed in v4.0.0)
|
|
188
|
+
*/
|
|
189
|
+
export type ApplyCustomFormattingOptions = ApplyStylesOptions;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Utils Module
|
|
2
|
+
|
|
3
|
+
`src/utils/` — Standalone utilities (22 TypeScript files) for unit conversions, revision processing, validation, logging, and helpers.
|
|
4
|
+
|
|
5
|
+
## Unit Conversions (`units.ts`)
|
|
6
|
+
|
|
7
|
+
40+ conversion functions between twips, EMUs, points, half-points, pixels, inches, centimeters.
|
|
8
|
+
|
|
9
|
+
Key constants: 1 inch = 1440 twips = 914400 EMUs = 72 points. 1 point = 20 twips. Font sizes use half-points.
|
|
10
|
+
|
|
11
|
+
## Validation (`validation.ts`)
|
|
12
|
+
|
|
13
|
+
- `validateRunText(text)` — Detects XML patterns accidentally passed as text
|
|
14
|
+
- `cleanXmlFromText(text)` — Removes XML patterns from text
|
|
15
|
+
- `isValidDocxStructure(files)` — Validates DOCX file structure
|
|
16
|
+
|
|
17
|
+
## Corruption Detection (`corruptionDetection.ts`)
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
const report = detectCorruptionInDocument(doc);
|
|
21
|
+
// report: { isCorrupted, summary, locations: [{ suggestedFix }] }
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Detects XML markup in text, invalid characters, malformed structures.
|
|
25
|
+
|
|
26
|
+
## XML Sanitization (`xmlSanitization.ts`)
|
|
27
|
+
|
|
28
|
+
XML 1.0 control character validation. Auto-applied by `XMLBuilder.escapeXmlText()`.
|
|
29
|
+
|
|
30
|
+
- `removeInvalidXmlChars(text)` — Strips 0x00-0x08, 0x0B-0x0C, 0x0E-0x1F, 0x7F
|
|
31
|
+
- `hasInvalidXmlChars(text)` / `findInvalidXmlChars(text)`
|
|
32
|
+
- Tab (0x09), newline (0x0A), CR (0x0D) are preserved
|
|
33
|
+
|
|
34
|
+
## Parsing Helpers (`parsingHelpers.ts`)
|
|
35
|
+
|
|
36
|
+
Safe OOXML attribute parsing with zero-value edge case handling:
|
|
37
|
+
|
|
38
|
+
- `safeParseInt(value, default?)` — NaN-safe integer parsing
|
|
39
|
+
- `parseOoxmlBoolean(prop)` — Handles self-closing tags, `val="1"`, `val="true"`, `val="on"`
|
|
40
|
+
- `isExplicitlySet(value)` — Handles 0 correctly (common bug: treating 0 as falsy)
|
|
41
|
+
- `parseNumericAttribute(value, default?)` — Zero-safe numeric parsing
|
|
42
|
+
|
|
43
|
+
## Formatting Utilities (`formatting.ts`)
|
|
44
|
+
|
|
45
|
+
- `normalizeColor(color)` — Uppercase 6-char hex
|
|
46
|
+
|
|
47
|
+
## Deep Clone (`deepClone.ts`)
|
|
48
|
+
|
|
49
|
+
- `deepClone<T>(obj)` — Safe deep cloning
|
|
50
|
+
|
|
51
|
+
## Date Formatting (`dateFormatting.ts`)
|
|
52
|
+
|
|
53
|
+
- `formatDateForXml(date)` — ISO 8601 without milliseconds (Word rejects dates with ms in `w:date`)
|
|
54
|
+
|
|
55
|
+
## Revision Processing
|
|
56
|
+
|
|
57
|
+
### acceptRevisions (`acceptRevisions.ts`)
|
|
58
|
+
|
|
59
|
+
Main entry point for accepting tracked changes via raw XML:
|
|
60
|
+
```typescript
|
|
61
|
+
await acceptAllRevisions(zipHandler, options?)
|
|
62
|
+
// Options: acceptInsertions, acceptDeletions, acceptMoves, acceptPropertyChanges, useDomParser
|
|
63
|
+
```
|
|
64
|
+
Processes document.xml + all headers/footers, remaps image relationship IDs, cleans metadata.
|
|
65
|
+
|
|
66
|
+
### RevisionWalker (`RevisionWalker.ts`)
|
|
67
|
+
|
|
68
|
+
DOM-based tree walker for revision acceptance. Handles nested revisions, preserves element order via `_orderedChildren`. ReDoS-safe.
|
|
69
|
+
|
|
70
|
+
### ChangelogGenerator (`ChangelogGenerator.ts`)
|
|
71
|
+
|
|
72
|
+
Converts revisions to structured changelog data:
|
|
73
|
+
```typescript
|
|
74
|
+
const entries = ChangelogGenerator.fromDocument(doc, options?);
|
|
75
|
+
ChangelogGenerator.toMarkdown(entries) // Also: toJSON, toHTML, toCSV
|
|
76
|
+
ChangelogGenerator.getSummary(entries)
|
|
77
|
+
ChangelogGenerator.consolidate(entries)
|
|
78
|
+
```
|
|
79
|
+
Options: `includeFormattingChanges`, `consolidate`, `filterAuthors`, `filterCategories`, `sortBy`, `sortOrder`.
|
|
80
|
+
|
|
81
|
+
### SelectiveRevisionAcceptor (`SelectiveRevisionAcceptor.ts`)
|
|
82
|
+
|
|
83
|
+
Accept/reject revisions by criteria (authors, types, date range, categories).
|
|
84
|
+
|
|
85
|
+
### MoveOperationHelper (`MoveOperationHelper.ts`)
|
|
86
|
+
|
|
87
|
+
Creates complete move operations with ECMA-376 range markers. See `src/elements/CLAUDE.md` for usage.
|
|
88
|
+
|
|
89
|
+
### stripTrackedChanges (`stripTrackedChanges.ts`)
|
|
90
|
+
|
|
91
|
+
Removes all revision markup: `await stripTrackedChanges(zipHandler)`.
|
|
92
|
+
|
|
93
|
+
## Text Diff (`textDiff.ts`)
|
|
94
|
+
|
|
95
|
+
Character-level diff for granular tracking in `Run.setText()`:
|
|
96
|
+
```typescript
|
|
97
|
+
const segments = diffText('Hello World', 'Hello Earth');
|
|
98
|
+
// [{ type: 'equal', text: 'Hello ' }, { type: 'delete', text: 'World' }, { type: 'insert', text: 'Earth' }]
|
|
99
|
+
if (diffHasUnchangedParts(segments)) { /* granular tracking */ }
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Compatibility Utilities
|
|
103
|
+
|
|
104
|
+
### CompatibilityUpgrader (`CompatibilityUpgrader.ts`)
|
|
105
|
+
|
|
106
|
+
Upgrades `w:compat` blocks to modern Word 2013+ format. Used by `Document.upgradeToModernFormat()`.
|
|
107
|
+
|
|
108
|
+
Related constants in `src/constants/legacyCompatFlags.ts`:
|
|
109
|
+
- `LEGACY_COMPAT_ELEMENTS` — 65 legacy boolean flags
|
|
110
|
+
- `MODERN_COMPAT_SETTINGS` — 5 default modern settings
|
|
111
|
+
- `MS_WORD_COMPAT_URI` — Microsoft namespace URI
|
|
112
|
+
|
|
113
|
+
## Logging (`logger.ts`)
|
|
114
|
+
|
|
115
|
+
**Levels:** `DEBUG`, `INFO`, `WARN`, `ERROR`
|
|
116
|
+
|
|
117
|
+
**Implementations:** `ConsoleLogger` (timestamps), `SilentLogger` (no output), `CollectingLogger` (in-memory).
|
|
118
|
+
|
|
119
|
+
**Environment:**
|
|
120
|
+
```bash
|
|
121
|
+
DOCXMLATER_LOG_LEVEL=info npm test # info/debug/silent
|
|
122
|
+
DEBUG=docxmlater npm test
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Programmatic:**
|
|
126
|
+
```typescript
|
|
127
|
+
import { setGlobalLogger, ConsoleLogger, LogLevel } from 'docxmlater';
|
|
128
|
+
setGlobalLogger(new ConsoleLogger(LogLevel.INFO));
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Scoped:**
|
|
132
|
+
```typescript
|
|
133
|
+
const logger = createScopedLogger(getGlobalLogger(), 'MyComponent');
|
|
134
|
+
logger.info('Done', { count: 10 });
|
|
135
|
+
// Output: 12:34:56.789 [INFO ] [MyComponent] Done count=10
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
| Component | INFO | DEBUG |
|
|
139
|
+
|-----------|------|-------|
|
|
140
|
+
| Document | Load/save ops | + details |
|
|
141
|
+
| ZipHandler | File ops, validation | + counts, sizes |
|
|
142
|
+
| DocumentParser | Completion, warnings | + element counts |
|
|
143
|
+
| DocumentGenerator | Generation steps | + XML sizes |
|
|
144
|
+
| RevisionManager | Clear, summary | + each registration |
|
|
145
|
+
|
|
146
|
+
## Error Handling (`errorHandling.ts`)
|
|
147
|
+
|
|
148
|
+
`DocXMLaterError` → `InvalidDocxError`, `ParseError`, `ValidationError`.
|
|
149
|
+
|
|
150
|
+
## Diagnostics (`diagnostics.ts`)
|
|
151
|
+
|
|
152
|
+
- `debugXmlStructure(xml)` — Debug XML structure
|
|
153
|
+
- `inspectElement(element)` — Element inspection
|