docxmlater 10.0.2 → 10.0.3
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 +2 -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 +60 -54
- 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.map +1 -1
- package/dist/elements/Paragraph.js +128 -117
- 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.js +1 -1
- 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.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 +10107 -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 +4227 -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 +668 -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 +613 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentContent.d.ts","sourceRoot":"","sources":["../../src/core/DocumentContent.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAKhE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,KAAK,GACL,sBAAsB,GACtB,qBAAqB,GACrB,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAKrB,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,OAAO,CAAU;;IAczB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAWxC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS;IAezC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAY5B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK;IAYjD,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI;IAW1D,kBAAkB,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI;IAWrD,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAY1C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAY9D,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAc3D,eAAe,IAAI,WAAW,EAAE;IAUhC,sBAAsB,IAAI,WAAW,EAAE;IASvC,aAAa,IAAI,SAAS,EAAE;IAW5B,gBAAgB,IAAI,SAAS,EAAE;IAkC/B,SAAS,IAAI,KAAK,EAAE;IASpB,YAAY,IAAI,KAAK,EAAE;IAiCvB,0BAA0B,IAAI,sBAAsB,EAAE;IAWtD,yBAAyB,IAAI,qBAAqB,EAAE;IAWpD,mBAAmB,IAAI,MAAM;IAO7B,iBAAiB,IAAI,MAAM;IAO3B,aAAa,IAAI,MAAM;IAWvB,UAAU,IAAI,OAAO;IAUrB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAYlC,KAAK,IAAI,IAAI;IAUb,eAAe,IAAI,IAAI;IAYvB,WAAW,IAAI,IAAI;IAenB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAUrC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAUvC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAqBnD,YAAY,IAAI,MAAM;IAkBtB,iBAAiB,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"DocumentContent.d.ts","sourceRoot":"","sources":["../../src/core/DocumentContent.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAKhE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,KAAK,GACL,sBAAsB,GACtB,qBAAqB,GACrB,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAKrB,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,OAAO,CAAU;;IAczB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAWxC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS;IAezC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAY5B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK;IAYjD,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI;IAW1D,kBAAkB,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI;IAWrD,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAY1C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAY9D,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAc3D,eAAe,IAAI,WAAW,EAAE;IAUhC,sBAAsB,IAAI,WAAW,EAAE;IASvC,aAAa,IAAI,SAAS,EAAE;IAW5B,gBAAgB,IAAI,SAAS,EAAE;IAkC/B,SAAS,IAAI,KAAK,EAAE;IASpB,YAAY,IAAI,KAAK,EAAE;IAiCvB,0BAA0B,IAAI,sBAAsB,EAAE;IAWtD,yBAAyB,IAAI,qBAAqB,EAAE;IAWpD,mBAAmB,IAAI,MAAM;IAO7B,iBAAiB,IAAI,MAAM;IAO3B,aAAa,IAAI,MAAM;IAWvB,UAAU,IAAI,OAAO;IAUrB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAYlC,KAAK,IAAI,IAAI;IAUb,eAAe,IAAI,IAAI;IAYvB,WAAW,IAAI,IAAI;IAenB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAUrC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAUvC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAqBnD,YAAY,IAAI,MAAM;IAkBtB,iBAAiB,CAAC,aAAa,UAAO,GAAG,MAAM;IAqB/C,KAAK,IAAI,eAAe;IAYxB,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentContent.js","sourceRoot":"","sources":["../../src/core/DocumentContent.ts"],"names":[],"mappings":";;;AAOA,qDAAkD;AAClD,6CAA0C;AAC1C,iDAA8C;AAC9C,6EAA0E;AAC1E,+EAA4E;AAsB5E,MAAa,eAAe;IAClB,YAAY,GAAkB,EAAE,CAAC;IACjC,OAAO,CAAU;IAEzB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;IAC/B,CAAC;IAUD,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,eAAe,CAAC,IAAa;QAC3B,MAAM,IAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IASD,WAAW,CAAC,IAAY,EAAE,OAAe;QACvC,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAQD,wBAAwB,CAAC,GAA0B;QACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,kBAAkB,CAAC,GAA2B;QAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,cAAc,CAAC,OAAoB;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IASD,mBAAmB,CAAC,KAAa,EAAE,OAAoB;QACrD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,mBAAmB,CAAC,KAAa;QAC/B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IASD,eAAe;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAQD,sBAAsB;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAOD,aAAa;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,EAAE,EAAmB,EAAE,CAAC,EAAE,YAAY,qBAAS,CACjD,CAAC;IACJ,CAAC;IAOD,gBAAgB;QACd,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,MAAM,iBAAiB,GAAG,CAAC,QAAuB,EAAE,EAAE;YACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,YAAY,qBAAS,EAAE,CAAC;oBACjC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,OAAO,YAAY,aAAK,EAAE,CAAC;oBAEpC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;wBACrD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;4BACxD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvC,IAAI,IAAI,EAAE,CAAC;gCACT,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;4BAC3C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,YAAY,6CAAqB,EAAE,CAAC;oBAEpD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;oBACrC,iBAAiB,CAAC,OAAwB,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrC,OAAO,UAAU,CAAC;IACpB,CAAC;IAOD,SAAS;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAe,EAAE,CAAC,EAAE,YAAY,aAAK,CAAC,CAAC;IAC5E,CAAC;IAOD,YAAY;QACV,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,MAAM,aAAa,GAAG,CAAC,QAAuB,EAAE,EAAE;YAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,YAAY,aAAK,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAErB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;wBACrD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;4BACxD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvC,IAAI,IAAI,EAAE,CAAC;gCAET,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;4BAE3C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,YAAY,6CAAqB,EAAE,CAAC;oBACpD,aAAa,CAAC,OAAO,CAAC,UAAU,EAAmB,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,0BAA0B;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,EAAE,EAAgC,EAAE,CAAC,EAAE,YAAY,+CAAsB,CAC3E,CAAC;IACJ,CAAC;IAOD,yBAAyB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,EAAE,EAA+B,EAAE,CAAC,EAAE,YAAY,6CAAqB,CACzE,CAAC;IACJ,CAAC;IAOD,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAClC,CAAC;IAKD,iBAAiB;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;IACrC,CAAC;IAKD,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;IACjC,CAAC;IASD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAQD,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IASD,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,eAAe;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,qBAAS,CAAC,CACnC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,aAAK,CAAC,CAC/B,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAUD,OAAO,CAAC,OAAoB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAQD,QAAQ,CAAC,OAAoB;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAQD,qBAAqB,CAAC,OAAe;QACnC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEhD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC;YACtD,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IASD,YAAY;QACV,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC;gBAET,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAQD,iBAAiB,CAAC,gBAAyB,IAAI;QAC7C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;YAC5E,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAYD,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;IACxC,CAAC;CACF;AAjbD,0CAibC"}
|
|
1
|
+
{"version":3,"file":"DocumentContent.js","sourceRoot":"","sources":["../../src/core/DocumentContent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * DocumentContent - Manages document body elements\r\n *\r\n * Handles paragraphs, tables, sections, and other body elements.\r\n * Extracted from Document.ts for better separation of concerns.\r\n */\r\n\r\nimport { Paragraph } from \"../elements/Paragraph\";\r\nimport { Table } from \"../elements/Table\";\r\nimport { Section } from \"../elements/Section\";\r\nimport { StructuredDocumentTag } from \"../elements/StructuredDocumentTag\";\r\nimport { TableOfContentsElement } from \"../elements/TableOfContentsElement\";\r\nimport { AlternateContent } from \"../elements/AlternateContent\";\r\nimport { MathParagraph } from \"../elements/MathElement\";\r\nimport { CustomXmlBlock } from \"../elements/CustomXml\";\r\nimport { PreservedElement } from \"../elements/PreservedElement\";\r\n\r\n/**\r\n * Body element type - can be a Paragraph, Table, TOC, SDT, or raw XML preservation element\r\n */\r\nexport type BodyElement =\r\n | Paragraph\r\n | Table\r\n | TableOfContentsElement\r\n | StructuredDocumentTag\r\n | AlternateContent\r\n | MathParagraph\r\n | CustomXmlBlock\r\n | PreservedElement;\r\n\r\n/**\r\n * Manages document content (paragraphs, tables, sections)\r\n */\r\nexport class DocumentContent {\r\n private bodyElements: BodyElement[] = [];\r\n private section: Section;\r\n\r\n constructor() {\r\n this.section = new Section();\r\n }\r\n\r\n // ==================== Body Elements ====================\r\n\r\n /**\r\n * Adds an existing paragraph to the document body\r\n *\r\n * @param paragraph - The Paragraph instance to add\r\n * @returns This instance for chaining\r\n */\r\n addParagraph(paragraph: Paragraph): this {\r\n this.bodyElements.push(paragraph);\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates a new paragraph and adds it to the document\r\n *\r\n * @param text - Optional text content for the paragraph\r\n * @returns The created Paragraph instance\r\n */\r\n createParagraph(text?: string): Paragraph {\r\n const para = new Paragraph();\r\n if (text) {\r\n para.addText(text);\r\n }\r\n this.bodyElements.push(para);\r\n return para;\r\n }\r\n\r\n /**\r\n * Adds an existing table to the document body\r\n *\r\n * @param table - The Table instance to add\r\n * @returns This instance for chaining\r\n */\r\n addTable(table: Table): this {\r\n this.bodyElements.push(table);\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates a new table and adds it to the document\r\n *\r\n * @param rows - Number of rows to create\r\n * @param columns - Number of columns per row\r\n * @returns The created Table instance\r\n */\r\n createTable(rows: number, columns: number): Table {\r\n const table = new Table(rows, columns);\r\n this.bodyElements.push(table);\r\n return table;\r\n }\r\n\r\n /**\r\n * Adds a Structured Document Tag to the document body\r\n *\r\n * @param sdt - The StructuredDocumentTag instance to add\r\n * @returns This instance for chaining\r\n */\r\n addStructuredDocumentTag(sdt: StructuredDocumentTag): this {\r\n this.bodyElements.push(sdt);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds a Table of Contents element to the document body\r\n *\r\n * @param toc - The TableOfContentsElement to add\r\n * @returns This instance for chaining\r\n */\r\n addTableOfContents(toc: TableOfContentsElement): this {\r\n this.bodyElements.push(toc);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds any body element to the document\r\n *\r\n * @param element - The body element to add\r\n * @returns This instance for chaining\r\n */\r\n addBodyElement(element: BodyElement): this {\r\n this.bodyElements.push(element);\r\n return this;\r\n }\r\n\r\n /**\r\n * Inserts a body element at a specific index\r\n *\r\n * @param index - Position to insert at (0-based)\r\n * @param element - The body element to insert\r\n * @returns This instance for chaining\r\n */\r\n insertBodyElementAt(index: number, element: BodyElement): this {\r\n index = Math.max(0, Math.min(index, this.bodyElements.length));\r\n this.bodyElements.splice(index, 0, element);\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes a body element at a specific index\r\n *\r\n * @param index - Position to remove from (0-based)\r\n * @returns The removed element or undefined\r\n */\r\n removeBodyElementAt(index: number): BodyElement | undefined {\r\n if (index < 0 || index >= this.bodyElements.length) {\r\n return undefined;\r\n }\r\n return this.bodyElements.splice(index, 1)[0];\r\n }\r\n\r\n // ==================== Getters ====================\r\n\r\n /**\r\n * Gets all body elements\r\n *\r\n * @returns Array of all body elements\r\n */\r\n getBodyElements(): BodyElement[] {\r\n return [...this.bodyElements];\r\n }\r\n\r\n /**\r\n * Gets body elements with mutable access (internal use)\r\n *\r\n * @returns Reference to body elements array\r\n * @internal\r\n */\r\n getBodyElementsMutable(): BodyElement[] {\r\n return this.bodyElements;\r\n }\r\n\r\n /**\r\n * Gets top-level paragraphs only\r\n *\r\n * @returns Array of Paragraph instances in document body\r\n */\r\n getParagraphs(): Paragraph[] {\r\n return this.bodyElements.filter(\r\n (el): el is Paragraph => el instanceof Paragraph\r\n );\r\n }\r\n\r\n /**\r\n * Gets all paragraphs including nested ones (in tables, SDTs)\r\n *\r\n * @returns Array of all Paragraph instances\r\n */\r\n getAllParagraphs(): Paragraph[] {\r\n const paragraphs: Paragraph[] = [];\r\n\r\n const collectParagraphs = (elements: BodyElement[]) => {\r\n for (const element of elements) {\r\n if (element instanceof Paragraph) {\r\n paragraphs.push(element);\r\n } else if (element instanceof Table) {\r\n // Collect paragraphs from table cells\r\n for (let row = 0; row < element.getRowCount(); row++) {\r\n for (let col = 0; col < element.getColumnCount(); col++) {\r\n const cell = element.getCell(row, col);\r\n if (cell) {\r\n paragraphs.push(...cell.getParagraphs());\r\n }\r\n }\r\n }\r\n } else if (element instanceof StructuredDocumentTag) {\r\n // Recursively collect from SDT content\r\n const content = element.getContent();\r\n collectParagraphs(content as BodyElement[]);\r\n }\r\n }\r\n };\r\n\r\n collectParagraphs(this.bodyElements);\r\n return paragraphs;\r\n }\r\n\r\n /**\r\n * Gets top-level tables only\r\n *\r\n * @returns Array of Table instances in document body\r\n */\r\n getTables(): Table[] {\r\n return this.bodyElements.filter((el): el is Table => el instanceof Table);\r\n }\r\n\r\n /**\r\n * Gets all tables including nested ones\r\n *\r\n * @returns Array of all Table instances\r\n */\r\n getAllTables(): Table[] {\r\n const tables: Table[] = [];\r\n\r\n const collectTables = (elements: BodyElement[]) => {\r\n for (const element of elements) {\r\n if (element instanceof Table) {\r\n tables.push(element);\r\n // Check for nested tables in cells\r\n for (let row = 0; row < element.getRowCount(); row++) {\r\n for (let col = 0; col < element.getColumnCount(); col++) {\r\n const cell = element.getCell(row, col);\r\n if (cell) {\r\n // Tables can be nested in cell content\r\n const cellContent = cell.getParagraphs();\r\n // Note: Cells typically contain paragraphs, not tables directly\r\n }\r\n }\r\n }\r\n } else if (element instanceof StructuredDocumentTag) {\r\n collectTables(element.getContent() as BodyElement[]);\r\n }\r\n }\r\n };\r\n\r\n collectTables(this.bodyElements);\r\n return tables;\r\n }\r\n\r\n /**\r\n * Gets Table of Contents elements\r\n *\r\n * @returns Array of TableOfContentsElement instances\r\n */\r\n getTableOfContentsElements(): TableOfContentsElement[] {\r\n return this.bodyElements.filter(\r\n (el): el is TableOfContentsElement => el instanceof TableOfContentsElement\r\n );\r\n }\r\n\r\n /**\r\n * Gets Structured Document Tags\r\n *\r\n * @returns Array of StructuredDocumentTag instances\r\n */\r\n getStructuredDocumentTags(): StructuredDocumentTag[] {\r\n return this.bodyElements.filter(\r\n (el): el is StructuredDocumentTag => el instanceof StructuredDocumentTag\r\n );\r\n }\r\n\r\n // ==================== Counts ====================\r\n\r\n /**\r\n * Gets the total number of body elements\r\n */\r\n getBodyElementCount(): number {\r\n return this.bodyElements.length;\r\n }\r\n\r\n /**\r\n * Gets the number of top-level paragraphs\r\n */\r\n getParagraphCount(): number {\r\n return this.getParagraphs().length;\r\n }\r\n\r\n /**\r\n * Gets the number of top-level tables\r\n */\r\n getTableCount(): number {\r\n return this.getTables().length;\r\n }\r\n\r\n // ==================== Section ====================\r\n\r\n /**\r\n * Gets the document section (page setup, margins, etc.)\r\n *\r\n * @returns The Section instance\r\n */\r\n getSection(): Section {\r\n return this.section;\r\n }\r\n\r\n /**\r\n * Sets the document section\r\n *\r\n * @param section - The Section instance to set\r\n * @returns This instance for chaining\r\n */\r\n setSection(section: Section): this {\r\n this.section = section;\r\n return this;\r\n }\r\n\r\n // ==================== Clearing ====================\r\n\r\n /**\r\n * Clears all body elements\r\n *\r\n * @returns This instance for chaining\r\n */\r\n clear(): this {\r\n this.bodyElements = [];\r\n return this;\r\n }\r\n\r\n /**\r\n * Clears all paragraphs from the document\r\n *\r\n * @returns This instance for chaining\r\n */\r\n clearParagraphs(): this {\r\n this.bodyElements = this.bodyElements.filter(\r\n (el) => !(el instanceof Paragraph)\r\n );\r\n return this;\r\n }\r\n\r\n /**\r\n * Clears all tables from the document\r\n *\r\n * @returns This instance for chaining\r\n */\r\n clearTables(): this {\r\n this.bodyElements = this.bodyElements.filter(\r\n (el) => !(el instanceof Table)\r\n );\r\n return this;\r\n }\r\n\r\n // ==================== Search ====================\r\n\r\n /**\r\n * Finds the index of a body element\r\n *\r\n * @param element - The element to find\r\n * @returns Index or -1 if not found\r\n */\r\n indexOf(element: BodyElement): number {\r\n return this.bodyElements.indexOf(element);\r\n }\r\n\r\n /**\r\n * Checks if a body element exists\r\n *\r\n * @param element - The element to check\r\n * @returns true if the element is in the document\r\n */\r\n contains(element: BodyElement): boolean {\r\n return this.bodyElements.includes(element);\r\n }\r\n\r\n /**\r\n * Finds paragraphs by style ID\r\n *\r\n * @param styleId - The style ID to search for\r\n * @returns Array of paragraphs with the style\r\n */\r\n findParagraphsByStyle(styleId: string): Paragraph[] {\r\n const results: Paragraph[] = [];\r\n const normalizedStyleId = styleId.toLowerCase();\r\n\r\n for (const paragraph of this.getAllParagraphs()) {\r\n const paraStyle = paragraph.getStyle()?.toLowerCase();\r\n if (paraStyle === normalizedStyleId) {\r\n results.push(paragraph);\r\n }\r\n }\r\n\r\n return results;\r\n }\r\n\r\n // ==================== Statistics ====================\r\n\r\n /**\r\n * Gets word count for all text content\r\n *\r\n * @returns Approximate word count\r\n */\r\n getWordCount(): number {\r\n let wordCount = 0;\r\n for (const paragraph of this.getAllParagraphs()) {\r\n const text = paragraph.getText();\r\n if (text) {\r\n // Simple word counting - split on whitespace\r\n wordCount += text.split(/\\s+/).filter((word) => word.length > 0).length;\r\n }\r\n }\r\n return wordCount;\r\n }\r\n\r\n /**\r\n * Gets character count for all text content\r\n *\r\n * @param includeSpaces - Whether to include spaces (default: true)\r\n * @returns Character count\r\n */\r\n getCharacterCount(includeSpaces = true): number {\r\n let charCount = 0;\r\n for (const paragraph of this.getAllParagraphs()) {\r\n const text = paragraph.getText();\r\n if (text) {\r\n charCount += includeSpaces ? text.length : text.replace(/\\s/g, \"\").length;\r\n }\r\n }\r\n return charCount;\r\n }\r\n\r\n // ==================== Utility ====================\r\n\r\n /**\r\n * Creates a clone of this content instance\r\n *\r\n * Note: This creates shallow copies of body elements.\r\n * For deep cloning, individual elements should be cloned.\r\n *\r\n * @returns New DocumentContent instance\r\n */\r\n clone(): DocumentContent {\r\n const cloned = new DocumentContent();\r\n cloned.bodyElements = [...this.bodyElements];\r\n cloned.section = this.section?.clone();\r\n return cloned;\r\n }\r\n\r\n /**\r\n * Checks if the document has any content\r\n *\r\n * @returns true if document has no body elements\r\n */\r\n isEmpty(): boolean {\r\n return this.bodyElements.length === 0;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentGenerator.d.ts","sourceRoot":"","sources":["../../src/core/DocumentGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAW9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAY/D,MAAM,WAAW,iBAAiB;IAEhC,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;IAE1B,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAiBD,qBAAa,iBAAiB;IAI5B,oBAAoB,IAAI,MAAM;IAoB9B,YAAY,IAAI,MAAM;IAYtB,mBAAmB,CACjB,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,kBAAkB,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACpG,MAAM;IAmCT,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM;IA8DzD,gBAAgB,CAAC,UAAU,GAAE,kBAAuB,GAAG,MAAM;IA4B7D,mBAAmB,CACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,GAC5D,MAAM;IAuDT,uDAAuD,CACrD,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,iBAAiB,EAC7B,WAAW,CAAC,EAAE,WAAW,EACzB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"DocumentGenerator.d.ts","sourceRoot":"","sources":["../../src/core/DocumentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,11 +165,24 @@ ${properties}
|
|
|
165
165
|
const mimeType = ImageManager_1.ImageManager.getMimeType(ext);
|
|
166
166
|
generatedDefaults.add(`${ext}|${mimeType}`);
|
|
167
167
|
}
|
|
168
|
+
const mediaExtensions = new Map([
|
|
169
|
+
['png', 'image/png'], ['jpeg', 'image/jpeg'], ['jpg', 'image/jpeg'],
|
|
170
|
+
['gif', 'image/gif'], ['bmp', 'image/bmp'], ['tiff', 'image/tiff'],
|
|
171
|
+
['emf', 'image/x-emf'], ['wmf', 'image/x-wmf'],
|
|
172
|
+
]);
|
|
173
|
+
for (const file of (zipHandler.getFilePaths?.() || [])) {
|
|
174
|
+
if (file.startsWith('word/media/')) {
|
|
175
|
+
const ext = file.split('.').pop()?.toLowerCase();
|
|
176
|
+
if (ext && mediaExtensions.has(ext)) {
|
|
177
|
+
generatedDefaults.add(`${ext}|${mediaExtensions.get(ext)}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
168
181
|
if (fontManager && fontManager.getCount() > 0) {
|
|
169
182
|
const fontEntries = fontManager.generateContentTypeEntries();
|
|
170
183
|
for (const entry of fontEntries) {
|
|
171
|
-
const extMatch =
|
|
172
|
-
const typeMatch =
|
|
184
|
+
const extMatch = /Extension="([^"]+)"/.exec(entry);
|
|
185
|
+
const typeMatch = /ContentType="([^"]+)"/.exec(entry);
|
|
173
186
|
if (extMatch && typeMatch) {
|
|
174
187
|
generatedDefaults.add(`${extMatch[1]}|${typeMatch[1]}`);
|
|
175
188
|
}
|
|
@@ -182,12 +195,24 @@ ${properties}
|
|
|
182
195
|
generatedDefaults.add('ttf|application/x-font-ttf');
|
|
183
196
|
}
|
|
184
197
|
generatedOverrides.add('/word/document.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml');
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
198
|
+
if (filesInArchive.has('word/styles.xml')) {
|
|
199
|
+
generatedOverrides.add('/word/styles.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml');
|
|
200
|
+
}
|
|
201
|
+
if (filesInArchive.has('word/numbering.xml')) {
|
|
202
|
+
generatedOverrides.add('/word/numbering.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml');
|
|
203
|
+
}
|
|
204
|
+
if (filesInArchive.has('word/fontTable.xml')) {
|
|
205
|
+
generatedOverrides.add('/word/fontTable.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml');
|
|
206
|
+
}
|
|
207
|
+
if (filesInArchive.has('word/settings.xml')) {
|
|
208
|
+
generatedOverrides.add('/word/settings.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml');
|
|
209
|
+
}
|
|
210
|
+
if (filesInArchive.has('word/webSettings.xml')) {
|
|
211
|
+
generatedOverrides.add('/word/webSettings.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml');
|
|
212
|
+
}
|
|
213
|
+
if (filesInArchive.has('word/theme/theme1.xml')) {
|
|
214
|
+
generatedOverrides.add('/word/theme/theme1.xml|application/vnd.openxmlformats-officedocument.theme+xml');
|
|
215
|
+
}
|
|
191
216
|
for (const entry of headers) {
|
|
192
217
|
const filePath = `word/${entry.filename}`;
|
|
193
218
|
if (filesInArchive.has(filePath)) {
|
|
@@ -214,7 +239,18 @@ ${properties}
|
|
|
214
239
|
if (filesInArchive.has('word/people.xml')) {
|
|
215
240
|
generatedOverrides.add('/word/people.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.people+xml');
|
|
216
241
|
}
|
|
217
|
-
|
|
242
|
+
if (filesInArchive.has('word/commentsExtended.xml')) {
|
|
243
|
+
generatedOverrides.add('/word/commentsExtended.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml');
|
|
244
|
+
}
|
|
245
|
+
if (filesInArchive.has('word/commentsIds.xml')) {
|
|
246
|
+
generatedOverrides.add('/word/commentsIds.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.commentsIds+xml');
|
|
247
|
+
}
|
|
248
|
+
if (filesInArchive.has('word/commentsExtensible.xml')) {
|
|
249
|
+
generatedOverrides.add('/word/commentsExtensible.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtensible+xml');
|
|
250
|
+
}
|
|
251
|
+
if (zipHandler.hasFile?.("docProps/core.xml") || filesInArchive.has('docProps/core.xml')) {
|
|
252
|
+
generatedOverrides.add('/docProps/core.xml|application/vnd.openxmlformats-package.core-properties+xml');
|
|
253
|
+
}
|
|
218
254
|
if (zipHandler.hasFile?.("docProps/app.xml")) {
|
|
219
255
|
generatedOverrides.add('/docProps/app.xml|application/vnd.openxmlformats-officedocument.extended-properties+xml');
|
|
220
256
|
}
|
|
@@ -533,27 +569,25 @@ ${properties}
|
|
|
533
569
|
let xml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
534
570
|
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
|
|
535
571
|
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
|
|
536
|
-
<w:zoom w:percent="100"
|
|
537
|
-
|
|
572
|
+
<w:zoom w:percent="100"/>`;
|
|
573
|
+
if (trackChangesSettings?.revisionView) {
|
|
574
|
+
const view = trackChangesSettings.revisionView;
|
|
575
|
+
if (!view.showInsertionsAndDeletions || !view.showFormatting || view.showInkAnnotations === false) {
|
|
576
|
+
xml += `\n <w:revisionView w:insDel="${view.showInsertionsAndDeletions ? '1' : '0'}" w:formatting="${view.showFormatting ? '1' : '0'}"`;
|
|
577
|
+
if (view.showInkAnnotations !== undefined) {
|
|
578
|
+
xml += ` w:inkAnnotations="${view.showInkAnnotations ? '1' : '0'}"`;
|
|
579
|
+
}
|
|
580
|
+
xml += '/>';
|
|
581
|
+
}
|
|
582
|
+
}
|
|
538
583
|
if (trackChangesSettings?.trackChangesEnabled) {
|
|
539
584
|
xml += '\n <w:trackRevisions/>';
|
|
540
585
|
}
|
|
541
586
|
if (trackChangesSettings?.trackFormatting !== undefined) {
|
|
542
|
-
if (trackChangesSettings.trackFormatting) {
|
|
543
|
-
xml += '\n <w:trackFormatting/>';
|
|
544
|
-
}
|
|
545
|
-
else {
|
|
587
|
+
if (!trackChangesSettings.trackFormatting) {
|
|
546
588
|
xml += '\n <w:doNotTrackFormatting/>';
|
|
547
589
|
}
|
|
548
590
|
}
|
|
549
|
-
if (trackChangesSettings?.revisionView) {
|
|
550
|
-
const view = trackChangesSettings.revisionView;
|
|
551
|
-
xml += `\n <w:revisionView w:insDel="${view.showInsertionsAndDeletions ? '1' : '0'}" w:formatting="${view.showFormatting ? '1' : '0'}"`;
|
|
552
|
-
if (view.showInkAnnotations !== undefined) {
|
|
553
|
-
xml += ` w:inkAnnotations="${view.showInkAnnotations ? '1' : '0'}"`;
|
|
554
|
-
}
|
|
555
|
-
xml += '/>';
|
|
556
|
-
}
|
|
557
591
|
if (trackChangesSettings?.documentProtection) {
|
|
558
592
|
const prot = trackChangesSettings.documentProtection;
|
|
559
593
|
xml += `\n <w:documentProtection w:edit="${prot.edit}" w:enforcement="${prot.enforcement ? '1' : '0'}"`;
|
|
@@ -582,7 +616,8 @@ ${properties}
|
|
|
582
616
|
}
|
|
583
617
|
xml += `
|
|
584
618
|
<w:defaultTabStop w:val="720"/>
|
|
585
|
-
<w:characterSpacingControl w:val="doNotCompress"
|
|
619
|
+
<w:characterSpacingControl w:val="doNotCompress"/>
|
|
620
|
+
<w:updateFields w:val="true"/>`;
|
|
586
621
|
if (trackChangesSettings?.rsids && trackChangesSettings.rsids.length > 0) {
|
|
587
622
|
xml += '\n <w:rsids>';
|
|
588
623
|
if (trackChangesSettings.rsidRoot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentGenerator.js","sourceRoot":"","sources":["../../src/core/DocumentGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocumentGenerator.js","sourceRoot":"","sources":["../../src/core/DocumentGenerator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * DocumentGenerator - Handles XML generation for DOCX files\r\n * Converts structured data to OpenXML format\r\n */\r\n\r\nimport { CommentManager } from \"../elements/CommentManager\";\r\nimport { EndnoteManager } from \"../elements/EndnoteManager\";\r\nimport { FontManager } from \"../elements/FontManager\";\r\nimport { FootnoteManager } from \"../elements/FootnoteManager\";\r\nimport { HeaderFooterManager } from \"../elements/HeaderFooterManager\";\r\nimport { Hyperlink } from \"../elements/Hyperlink\";\r\nimport { ImageManager } from \"../elements/ImageManager\";\r\nimport { Paragraph } from \"../elements/Paragraph\";\r\nimport { Revision } from \"../elements/Revision\";\r\nimport { isHyperlinkContent } from \"../elements/RevisionContent\";\r\nimport { Section } from \"../elements/Section\";\r\nimport { StructuredDocumentTag } from \"../elements/StructuredDocumentTag\";\r\nimport { Table } from \"../elements/Table\";\r\nimport { TableOfContentsElement } from \"../elements/TableOfContentsElement\";\r\nimport { AlternateContent } from \"../elements/AlternateContent\";\r\nimport { MathParagraph } from \"../elements/MathElement\";\r\nimport { CustomXmlBlock } from \"../elements/CustomXml\";\r\nimport { PreservedElement } from \"../elements/PreservedElement\";\r\nimport { formatDateForXml } from \"../utils/dateFormatting\";\r\nimport { getGlobalLogger, createScopedLogger, ILogger } from \"../utils/logger\";\r\nimport { XMLBuilder, XMLElement } from \"../xml/XMLBuilder\";\r\nimport { DocumentProperties } from \"./Document\";\r\nimport { BodyElement } from \"./DocumentContent\";\r\nimport { RelationshipManager } from \"./RelationshipManager\";\r\nimport { TrackChangesSettings } from \"../types/settings-types\";\r\n\r\n// Create scoped logger for DocumentGenerator operations\r\nfunction getLogger(): ILogger {\r\n return createScopedLogger(getGlobalLogger(), 'DocumentGenerator');\r\n}\r\n\r\n/**\r\n * Interface for ZipHandler methods used in content type generation\r\n * This provides type safety for the ZipHandler parameter without creating\r\n * a circular dependency with the zip module.\r\n */\r\nexport interface IZipHandlerReader {\r\n /** Get list of file paths in the archive */\r\n getFilePaths?(): string[];\r\n /** Check if a file exists in the archive */\r\n hasFile?(path: string): boolean;\r\n}\r\n\r\n/**\r\n * Normalizes toXML() output to always return an array.\r\n * Some elements (e.g., TableOfContentsElement) return XMLElement[], while others return XMLElement.\r\n * This helper provides consistent array handling.\r\n *\r\n * @param xml - XMLElement or XMLElement[] from toXML()\r\n * @returns XMLElement array\r\n */\r\nfunction normalizeXmlOutput(xml: XMLElement | XMLElement[]): XMLElement[] {\r\n return Array.isArray(xml) ? xml : [xml];\r\n}\r\n\r\n/**\r\n * DocumentGenerator handles all XML generation logic\r\n */\r\nexport class DocumentGenerator {\r\n /**\r\n * Generates [Content_Types].xml\r\n */\r\n generateContentTypes(): string {\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\r\n <Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>\r\n <Default Extension=\"xml\" ContentType=\"application/xml\"/>\r\n <Override PartName=\"/word/document.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\"/>\r\n <Override PartName=\"/word/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"/>\r\n <Override PartName=\"/word/numbering.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\"/>\r\n <Override PartName=\"/word/fontTable.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\"/>\r\n <Override PartName=\"/word/settings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\"/>\r\n <Override PartName=\"/word/webSettings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml\"/>\r\n <Override PartName=\"/word/theme/theme1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/>\r\n <Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/>\r\n <Override PartName=\"/docProps/app.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"/>\r\n</Types>`;\r\n }\r\n\r\n /**\r\n * Generates _rels/.rels\r\n */\r\n generateRels(): string {\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\r\n <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"word/document.xml\"/>\r\n <Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\" Target=\"docProps/core.xml\"/>\r\n <Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\" Target=\"docProps/app.xml\"/>\r\n</Relationships>`;\r\n }\r\n\r\n /**\r\n * Generates word/document.xml with current body elements\r\n */\r\n generateDocumentXml(\r\n bodyElements: BodyElement[],\r\n section: Section,\r\n namespaces: Record<string, string>,\r\n documentBackground?: { color?: string; themeColor?: string; themeTint?: string; themeShade?: string }\r\n ): string {\r\n const logger = getLogger();\r\n logger.info('Generating document.xml', { elementCount: bodyElements.length });\r\n\r\n const bodyXmls: XMLElement[] = [];\r\n\r\n // Generate XML for each body element\r\n // Uses normalizeXmlOutput() to handle both single XMLElement and XMLElement[] returns\r\n for (const element of bodyElements) {\r\n const xmlElements = normalizeXmlOutput(element.toXML());\r\n bodyXmls.push(...xmlElements);\r\n }\r\n\r\n // Add section properties at the end\r\n bodyXmls.push(section.toXML());\r\n\r\n // Build pre-body content (w:background) per ECMA-376 Part 1 §17.2.1\r\n let preBodyContent: XMLElement[] | undefined;\r\n if (documentBackground) {\r\n const bgAttrs: Record<string, string> = {};\r\n if (documentBackground.color) bgAttrs[\"w:color\"] = documentBackground.color;\r\n if (documentBackground.themeColor) bgAttrs[\"w:themeColor\"] = documentBackground.themeColor;\r\n if (documentBackground.themeTint) bgAttrs[\"w:themeTint\"] = documentBackground.themeTint;\r\n if (documentBackground.themeShade) bgAttrs[\"w:themeShade\"] = documentBackground.themeShade;\r\n preBodyContent = [XMLBuilder.wSelf(\"background\", bgAttrs)];\r\n }\r\n\r\n const result = XMLBuilder.createDocument(bodyXmls, namespaces, preBodyContent);\r\n logger.info('Document.xml generated', { xmlSize: result.length });\r\n return result;\r\n }\r\n\r\n /**\r\n * Generates docProps/core.xml with extended properties\r\n */\r\n generateCoreProps(properties: DocumentProperties): string {\r\n const now = new Date();\r\n const created = properties.created || now;\r\n const modified = properties.modified || now;\r\n\r\n const formatDate = (date: Date): string => {\r\n return formatDateForXml(date);\r\n };\r\n\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<cp:coreProperties xmlns:cp=\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\"\r\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\r\n xmlns:dcterms=\"http://purl.org/dc/terms/\"\r\n xmlns:dcmitype=\"http://purl.org/dc/dcmitype/\"\r\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n <dc:title>${XMLBuilder.sanitizeXmlContent(properties.title || \"\")}</dc:title>\r\n <dc:subject>${XMLBuilder.sanitizeXmlContent(\r\n properties.subject || \"\"\r\n )}</dc:subject>\r\n <dc:creator>${XMLBuilder.sanitizeXmlContent(\r\n properties.creator || \"DocXML\"\r\n )}</dc:creator>\r\n <cp:keywords>${XMLBuilder.sanitizeXmlContent(\r\n properties.keywords || \"\"\r\n )}</cp:keywords>\r\n <dc:description>${XMLBuilder.sanitizeXmlContent(\r\n properties.description || \"\"\r\n )}</dc:description>\r\n <cp:lastModifiedBy>${XMLBuilder.sanitizeXmlContent(\r\n properties.lastModifiedBy || properties.creator || \"DocXML\"\r\n )}</cp:lastModifiedBy>\r\n <cp:revision>${properties.revision || 1}</cp:revision>${\r\n properties.category\r\n ? `\\n <cp:category>${XMLBuilder.sanitizeXmlContent(\r\n properties.category\r\n )}</cp:category>`\r\n : \"\"\r\n }${\r\n properties.contentStatus\r\n ? `\\n <cp:contentStatus>${XMLBuilder.sanitizeXmlContent(\r\n properties.contentStatus\r\n )}</cp:contentStatus>`\r\n : \"\"\r\n }${\r\n properties.language\r\n ? `\\n <dc:language>${XMLBuilder.sanitizeXmlContent(\r\n properties.language\r\n )}</dc:language>`\r\n : \"\"\r\n }\r\n <dcterms:created xsi:type=\"dcterms:W3CDTF\">${formatDate(\r\n created\r\n )}</dcterms:created>\r\n <dcterms:modified xsi:type=\"dcterms:W3CDTF\">${formatDate(\r\n modified\r\n )}</dcterms:modified>\r\n</cp:coreProperties>`;\r\n }\r\n\r\n /**\r\n * Generates docProps/app.xml with extended properties\r\n */\r\n generateAppProps(properties: DocumentProperties = {}): string {\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<Properties xmlns=\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\"\r\n xmlns:vt=\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\">\r\n <Application>${XMLBuilder.sanitizeXmlContent(\r\n properties.application || \"docxmlater\"\r\n )}</Application>\r\n <DocSecurity>0</DocSecurity>\r\n <ScaleCrop>false</ScaleCrop>\r\n <Company>${XMLBuilder.sanitizeXmlContent(properties.company || \"\")}</Company>${\r\n properties.manager\r\n ? `\\n <Manager>${XMLBuilder.sanitizeXmlContent(\r\n properties.manager\r\n )}</Manager>`\r\n : \"\"\r\n }\r\n <LinksUpToDate>false</LinksUpToDate>\r\n <SharedDoc>false</SharedDoc>\r\n <HyperlinksChanged>false</HyperlinksChanged>\r\n <AppVersion>${XMLBuilder.sanitizeXmlContent(\r\n properties.appVersion || properties.version || \"1.0.0\"\r\n )}</AppVersion>\r\n</Properties>`;\r\n }\r\n\r\n /**\r\n * Generates docProps/custom.xml with custom properties\r\n */\r\n generateCustomProps(\r\n customProps: Record<string, string | number | boolean | Date>\r\n ): string {\r\n if (!customProps || Object.keys(customProps).length === 0) {\r\n return \"\";\r\n }\r\n\r\n const formatCustomValue = (\r\n key: string,\r\n value: string | number | boolean | Date,\r\n pid: number\r\n ): string => {\r\n if (typeof value === \"string\") {\r\n return ` <property fmtid=\"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}\" pid=\"${pid}\" name=\"${XMLBuilder.sanitizeXmlContent(\r\n key\r\n )}\">\r\n <vt:lpwstr>${XMLBuilder.sanitizeXmlContent(value)}</vt:lpwstr>\r\n </property>`;\r\n } else if (typeof value === \"number\") {\r\n return ` <property fmtid=\"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}\" pid=\"${pid}\" name=\"${XMLBuilder.sanitizeXmlContent(\r\n key\r\n )}\">\r\n <vt:r8>${value}</vt:r8>\r\n </property>`;\r\n } else if (typeof value === \"boolean\") {\r\n return ` <property fmtid=\"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}\" pid=\"${pid}\" name=\"${XMLBuilder.sanitizeXmlContent(\r\n key\r\n )}\">\r\n <vt:bool>${value ? \"true\" : \"false\"}</vt:bool>\r\n </property>`;\r\n } else if (value instanceof Date) {\r\n return ` <property fmtid=\"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}\" pid=\"${pid}\" name=\"${XMLBuilder.sanitizeXmlContent(\r\n key\r\n )}\">\r\n <vt:filetime>${value.toISOString()}</vt:filetime>\r\n </property>`;\r\n }\r\n return \"\";\r\n };\r\n\r\n const properties = Object.entries(customProps)\r\n .map(([key, value], index) => formatCustomValue(key, value, index + 2))\r\n .filter((prop) => prop !== \"\")\r\n .join(\"\\n\");\r\n\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<Properties xmlns=\"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\"\r\n xmlns:vt=\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\">\r\n${properties}\r\n</Properties>`;\r\n }\r\n\r\n /**\r\n * Generates [Content_Types].xml with image extensions, headers/footers, comments, and fonts\r\n * Preserves entries for files that exist in the loaded document (customXML, etc.)\r\n * Merges framework-generated entries with original entries for round-trip fidelity\r\n */\r\n generateContentTypesWithImagesHeadersFootersAndComments(\r\n imageManager: ImageManager,\r\n headerFooterManager: HeaderFooterManager,\r\n commentManager: CommentManager,\r\n zipHandler: IZipHandlerReader,\r\n fontManager?: FontManager,\r\n hasCustomProperties = false,\r\n originalContentTypes?: { defaults: Set<string>; overrides: Set<string> },\r\n footnoteManager?: FootnoteManager,\r\n endnoteManager?: EndnoteManager\r\n ): string {\r\n const images = imageManager.getAllImages();\r\n const headers = headerFooterManager.getAllHeaders();\r\n const footers = headerFooterManager.getAllFooters();\r\n const hasComments = commentManager.getCount() > 0;\r\n\r\n // Build sets for framework-generated entries\r\n const generatedDefaults = new Set<string>();\r\n const generatedOverrides = new Set<string>();\r\n\r\n // Default types - always needed\r\n generatedDefaults.add('rels|application/vnd.openxmlformats-package.relationships+xml');\r\n generatedDefaults.add('xml|application/xml');\r\n\r\n // Image extensions from ImageManager\r\n for (const entry of images) {\r\n const ext = entry.image.getExtension();\r\n const mimeType = ImageManager.getMimeType(ext);\r\n generatedDefaults.add(`${ext}|${mimeType}`);\r\n }\r\n\r\n // Also detect image files in the archive not tracked by ImageManager\r\n // (e.g., numPicBullet images referenced by numbering.xml.rels)\r\n const mediaExtensions = new Map<string, string>([\r\n ['png', 'image/png'], ['jpeg', 'image/jpeg'], ['jpg', 'image/jpeg'],\r\n ['gif', 'image/gif'], ['bmp', 'image/bmp'], ['tiff', 'image/tiff'],\r\n ['emf', 'image/x-emf'], ['wmf', 'image/x-wmf'],\r\n ]);\r\n for (const file of (zipHandler.getFilePaths?.() || [])) {\r\n if (file.startsWith('word/media/')) {\r\n const ext = file.split('.').pop()?.toLowerCase();\r\n if (ext && mediaExtensions.has(ext)) {\r\n generatedDefaults.add(`${ext}|${mediaExtensions.get(ext)}`);\r\n }\r\n }\r\n }\r\n\r\n // Font extensions (if FontManager provided)\r\n if (fontManager && fontManager.getCount() > 0) {\r\n const fontEntries = fontManager.generateContentTypeEntries();\r\n for (const entry of fontEntries) {\r\n // Parse each entry and add to set (entries are XML strings)\r\n const extMatch = /Extension=\"([^\"]+)\"/.exec(entry);\r\n const typeMatch = /ContentType=\"([^\"]+)\"/.exec(entry);\r\n if (extMatch && typeMatch) {\r\n generatedDefaults.add(`${extMatch[1]}|${typeMatch[1]}`);\r\n }\r\n }\r\n }\r\n\r\n // Check for embedded .ttf fonts from original document\r\n // Also create a Set for efficient file existence checks\r\n const files = zipHandler.getFilePaths?.() || [];\r\n const filesInArchive = new Set(files);\r\n const hasTtfFonts = files.some((f: string) => f.endsWith(\".ttf\"));\r\n if (hasTtfFonts) {\r\n generatedDefaults.add('ttf|application/x-font-ttf');\r\n }\r\n\r\n // Override types - only add if file exists in archive\r\n generatedOverrides.add('/word/document.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml');\r\n if (filesInArchive.has('word/styles.xml')) {\r\n generatedOverrides.add('/word/styles.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml');\r\n }\r\n if (filesInArchive.has('word/numbering.xml')) {\r\n generatedOverrides.add('/word/numbering.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml');\r\n }\r\n if (filesInArchive.has('word/fontTable.xml')) {\r\n generatedOverrides.add('/word/fontTable.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml');\r\n }\r\n if (filesInArchive.has('word/settings.xml')) {\r\n generatedOverrides.add('/word/settings.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml');\r\n }\r\n if (filesInArchive.has('word/webSettings.xml')) {\r\n generatedOverrides.add('/word/webSettings.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml');\r\n }\r\n if (filesInArchive.has('word/theme/theme1.xml')) {\r\n generatedOverrides.add('/word/theme/theme1.xml|application/vnd.openxmlformats-officedocument.theme+xml');\r\n }\r\n\r\n // Headers - only add if file actually exists in archive\r\n // This prevents corruption when HeaderFooterManager has stale entries for removed headers\r\n for (const entry of headers) {\r\n const filePath = `word/${entry.filename}`;\r\n if (filesInArchive.has(filePath)) {\r\n generatedOverrides.add(`/word/${entry.filename}|application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml`);\r\n }\r\n }\r\n\r\n // Footers - only add if file actually exists in archive\r\n // This prevents corruption when HeaderFooterManager has stale entries for removed footers\r\n for (const entry of footers) {\r\n const filePath = `word/${entry.filename}`;\r\n if (filesInArchive.has(filePath)) {\r\n generatedOverrides.add(`/word/${entry.filename}|application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml`);\r\n }\r\n }\r\n\r\n // Comments\r\n if (hasComments) {\r\n generatedOverrides.add('/word/comments.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml');\r\n }\r\n\r\n // Footnotes\r\n const hasFootnotes = (footnoteManager && footnoteManager.getCount() > 0) || filesInArchive.has('word/footnotes.xml');\r\n if (hasFootnotes) {\r\n generatedOverrides.add('/word/footnotes.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml');\r\n }\r\n\r\n // Endnotes\r\n const hasEndnotes = (endnoteManager && endnoteManager.getCount() > 0) || filesInArchive.has('word/endnotes.xml');\r\n if (hasEndnotes) {\r\n generatedOverrides.add('/word/endnotes.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml');\r\n }\r\n\r\n // People (track changes authors)\r\n if (filesInArchive.has('word/people.xml')) {\r\n generatedOverrides.add('/word/people.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.people+xml');\r\n }\r\n\r\n // Comment companion files (passthrough)\r\n if (filesInArchive.has('word/commentsExtended.xml')) {\r\n generatedOverrides.add('/word/commentsExtended.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml');\r\n }\r\n if (filesInArchive.has('word/commentsIds.xml')) {\r\n generatedOverrides.add('/word/commentsIds.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.commentsIds+xml');\r\n }\r\n if (filesInArchive.has('word/commentsExtensible.xml')) {\r\n generatedOverrides.add('/word/commentsExtensible.xml|application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtensible+xml');\r\n }\r\n\r\n // Core properties (only add if file exists)\r\n if (zipHandler.hasFile?.(\"docProps/core.xml\") || filesInArchive.has('docProps/core.xml')) {\r\n generatedOverrides.add('/docProps/core.xml|application/vnd.openxmlformats-package.core-properties+xml');\r\n }\r\n\r\n // App.xml if it exists\r\n if (zipHandler.hasFile?.(\"docProps/app.xml\")) {\r\n generatedOverrides.add('/docProps/app.xml|application/vnd.openxmlformats-officedocument.extended-properties+xml');\r\n }\r\n\r\n // Custom properties if exists or will be created\r\n if (zipHandler.hasFile?.(\"docProps/custom.xml\") || hasCustomProperties) {\r\n generatedOverrides.add('/docProps/custom.xml|application/vnd.openxmlformats-officedocument.custom-properties+xml');\r\n }\r\n\r\n // CustomXML entries if they exist\r\n if (zipHandler.hasFile?.(\"customXML/item1.xml\")) {\r\n generatedOverrides.add('/customXML/item1.xml|application/xml');\r\n }\r\n if (zipHandler.hasFile?.(\"customXML/itemProps1.xml\")) {\r\n generatedOverrides.add('/customXML/itemProps1.xml|application/vnd.openxmlformats-officedocument.customXmlProperties+xml');\r\n }\r\n\r\n // Merge with original entries, but ONLY keep overrides for files that actually exist\r\n // This prevents corruption when headers/footers are removed but their Content_Types entries\r\n // from the original document would otherwise be preserved\r\n const allDefaults = new Set([\r\n ...generatedDefaults,\r\n ...(originalContentTypes?.defaults || [])\r\n ]);\r\n\r\n // filesInArchive was created earlier (line 318) for header/footer validation\r\n // Reuse it here to filter original overrides as well\r\n\r\n // Filter original overrides to only include files that exist in the archive\r\n const filteredOriginalOverrides: string[] = [];\r\n for (const entry of (originalContentTypes?.overrides || [])) {\r\n const parts = entry.split('|');\r\n const partName = parts[0] || '';\r\n // Convert /word/footer1.xml to word/footer1.xml for comparison\r\n const normalizedPath = partName.startsWith('/') ? partName.slice(1) : partName;\r\n if (filesInArchive.has(normalizedPath)) {\r\n filteredOriginalOverrides.push(entry);\r\n }\r\n }\r\n\r\n const allOverrides = new Set([\r\n ...generatedOverrides,\r\n ...filteredOriginalOverrides\r\n ]);\r\n\r\n // Build XML from merged sets\r\n let xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\n';\r\n xml += '<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\\n';\r\n\r\n // Add all default entries (escape attribute values for security)\r\n for (const entry of allDefaults) {\r\n const parts = entry.split('|');\r\n const ext = parts[0] || '';\r\n const contentType = parts[1] || '';\r\n const escapedExt = XMLBuilder.escapeXmlAttribute(ext);\r\n const escapedContentType = XMLBuilder.escapeXmlAttribute(contentType);\r\n xml += ` <Default Extension=\"${escapedExt}\" ContentType=\"${escapedContentType}\"/>\\n`;\r\n }\r\n\r\n // Add all override entries (escape attribute values for security)\r\n for (const entry of allOverrides) {\r\n const parts = entry.split('|');\r\n const partName = parts[0] || '';\r\n const contentType = parts[1] || '';\r\n const escapedPartName = XMLBuilder.escapeXmlAttribute(partName);\r\n const escapedContentType = XMLBuilder.escapeXmlAttribute(contentType);\r\n xml += ` <Override PartName=\"${escapedPartName}\" ContentType=\"${escapedContentType}\"/>\\n`;\r\n }\r\n\r\n xml += '</Types>';\r\n\r\n return xml;\r\n }\r\n\r\n /**\r\n * Clears ORPHANED hyperlink relationships from the RelationshipManager\r\n * Only removes relationships that don't have corresponding hyperlinks in the document\r\n *\r\n * This prevents corruption when paragraphs with hyperlinks are removed but\r\n * their relationships remain, causing Word's \"unreadable content\" error.\r\n * Preserves relationships for existing hyperlinks to maintain round-trip integrity.\r\n */\r\n private clearOrphanedHyperlinkRelationships(\r\n bodyElements: BodyElement[],\r\n headerFooterManager: HeaderFooterManager,\r\n relationshipManager: RelationshipManager,\r\n footnoteManager?: FootnoteManager,\r\n endnoteManager?: EndnoteManager\r\n ): void {\r\n // Step 1: Collect all relationship IDs currently used by hyperlinks\r\n const usedRelIds = new Set<string>();\r\n\r\n // Helper to scan paragraphs for hyperlink relationship IDs\r\n const scanParagraph = (para: Paragraph) => {\r\n for (const item of para.getContent()) {\r\n // Direct hyperlinks in paragraph\r\n if (item instanceof Hyperlink && item.isExternal()) {\r\n const relId = item.getRelationshipId();\r\n if (relId) {\r\n usedRelIds.add(relId);\r\n }\r\n }\r\n // Hyperlinks inside Revision objects (tracked changes)\r\n if (item instanceof Revision) {\r\n for (const revContent of item.getContent()) {\r\n if (isHyperlinkContent(revContent)) {\r\n const hyperlink = revContent;\r\n if (hyperlink.isExternal()) {\r\n const relId = hyperlink.getRelationshipId();\r\n if (relId) {\r\n usedRelIds.add(relId);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Helper to recursively scan any element type for hyperlinks\r\n const scanElement = (element: BodyElement | Paragraph | Table | StructuredDocumentTag): void => {\r\n if (element instanceof Paragraph) {\r\n // Scan paragraph content for hyperlinks\r\n scanParagraph(element);\r\n }\r\n else if (element instanceof Table) {\r\n // Scan all cells in the table\r\n for (let row = 0; row < element.getRowCount(); row++) {\r\n for (let col = 0; col < element.getColumnCount(); col++) {\r\n const cell = element.getCell(row, col);\r\n if (cell) {\r\n // Scan each paragraph in the cell\r\n const paragraphs = cell.getParagraphs();\r\n for (const para of paragraphs) {\r\n scanParagraph(para);\r\n }\r\n // Scan raw nested content (nested tables, SDTs stored as raw XML)\r\n // Extract any relationship IDs referenced in the raw XML to prevent orphan removal\r\n for (const nested of cell.getRawNestedContent()) {\r\n const rIdPattern = /r:id=\"(rId\\d+)\"/g;\r\n let rIdMatch: RegExpExecArray | null;\r\n while ((rIdMatch = rIdPattern.exec(nested.xml)) !== null) {\r\n usedRelIds.add(rIdMatch[1]!);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else if (element instanceof StructuredDocumentTag) {\r\n // Recursively scan SDT content (can contain Paragraphs, Tables, or nested SDTs)\r\n const content = element.getContent();\r\n for (const item of content) {\r\n scanElement(item); // Recursive call handles nested structures\r\n }\r\n }\r\n // TableOfContentsElement is for programmatic TOCs - real TOCs come as SDTs\r\n };\r\n\r\n // Scan body elements (handles all nested structures)\r\n for (const element of bodyElements) {\r\n scanElement(element);\r\n }\r\n\r\n // Scan headers (including tables and SDTs in headers)\r\n const headers = headerFooterManager.getAllHeaders();\r\n for (const header of headers) {\r\n for (const element of header.header.getElements()) {\r\n scanElement(element);\r\n }\r\n }\r\n\r\n // Scan footers (including tables and SDTs in footers)\r\n const footers = headerFooterManager.getAllFooters();\r\n for (const footer of footers) {\r\n for (const element of footer.footer.getElements()) {\r\n scanElement(element);\r\n }\r\n }\r\n\r\n // Scan footnotes for hyperlink relationship IDs\r\n if (footnoteManager) {\r\n for (const footnote of footnoteManager.getAllFootnotes()) {\r\n for (const para of footnote.getParagraphs()) {\r\n scanParagraph(para);\r\n }\r\n }\r\n }\r\n\r\n // Scan endnotes for hyperlink relationship IDs\r\n if (endnoteManager) {\r\n for (const endnote of endnoteManager.getAllEndnotes()) {\r\n for (const para of endnote.getParagraphs()) {\r\n scanParagraph(para);\r\n }\r\n }\r\n }\r\n\r\n // Step 2: Remove ONLY orphaned relationships (not used by any hyperlink)\r\n const allHyperlinkRels = relationshipManager.getRelationshipsByType(\r\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\"\r\n );\r\n\r\n for (const rel of allHyperlinkRels) {\r\n if (!usedRelIds.has(rel.getId())) {\r\n // This relationship is orphaned - remove it\r\n relationshipManager.removeRelationship(rel.getId());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Processes all hyperlinks in paragraphs and registers them with RelationshipManager\r\n * Clears orphaned hyperlink relationships to prevent corruption while preserving valid ones\r\n *\r\n * **IMPORTANT:** This method recursively processes ALL element types including:\r\n * - Top-level paragraphs\r\n * - Tables (all cells)\r\n * - StructuredDocumentTags (SDTs / content controls)\r\n * - Headers and footers\r\n *\r\n * This ensures hyperlinks with URL+anchor combinations (like theSource links)\r\n * that have their relationshipId cleared during parsing get new relationships\r\n * registered before XML generation.\r\n */\r\n processHyperlinks(\r\n bodyElements: BodyElement[],\r\n headerFooterManager: HeaderFooterManager,\r\n relationshipManager: RelationshipManager,\r\n footnoteManager?: FootnoteManager,\r\n endnoteManager?: EndnoteManager\r\n ): void {\r\n const logger = getLogger();\r\n logger.info('Processing hyperlinks');\r\n\r\n // Clear ORPHANED hyperlink relationships to prevent corruption\r\n // This is critical when paragraphs are removed (e.g., via clearParagraphs())\r\n // but preserves relationships for existing hyperlinks (round-trip integrity)\r\n this.clearOrphanedHyperlinkRelationships(\r\n bodyElements,\r\n headerFooterManager,\r\n relationshipManager,\r\n footnoteManager,\r\n endnoteManager\r\n );\r\n\r\n // Helper to recursively process any element type for hyperlinks\r\n // Mirrors the pattern in clearOrphanedHyperlinkRelationships() for consistency\r\n const processElement = (element: BodyElement | Paragraph | Table | StructuredDocumentTag): void => {\r\n if (element instanceof Paragraph) {\r\n this.processHyperlinksInParagraph(element, relationshipManager);\r\n }\r\n else if (element instanceof Table) {\r\n // Process all cells in the table\r\n for (let row = 0; row < element.getRowCount(); row++) {\r\n for (let col = 0; col < element.getColumnCount(); col++) {\r\n const cell = element.getCell(row, col);\r\n if (cell) {\r\n // Scan each paragraph in the cell\r\n const paragraphs = cell.getParagraphs();\r\n for (const para of paragraphs) {\r\n this.processHyperlinksInParagraph(para, relationshipManager);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else if (element instanceof StructuredDocumentTag) {\r\n // Recursively process SDT content (can contain Paragraphs, Tables, or nested SDTs)\r\n const content = element.getContent();\r\n for (const item of content) {\r\n processElement(item); // Recursive call handles nested structures\r\n }\r\n }\r\n // TableOfContentsElement is for programmatic TOCs - real TOCs come as SDTs\r\n };\r\n\r\n // Process body elements (handles all nested structures)\r\n for (const element of bodyElements) {\r\n processElement(element);\r\n }\r\n\r\n // Process headers (including tables and SDTs in headers)\r\n const headers = headerFooterManager.getAllHeaders();\r\n for (const header of headers) {\r\n for (const element of header.header.getElements()) {\r\n processElement(element);\r\n }\r\n }\r\n\r\n // Process footers (including tables and SDTs in footers)\r\n const footers = headerFooterManager.getAllFooters();\r\n for (const footer of footers) {\r\n for (const element of footer.footer.getElements()) {\r\n processElement(element);\r\n }\r\n }\r\n\r\n // Process footnotes for hyperlinks that need relationship registration\r\n if (footnoteManager) {\r\n for (const footnote of footnoteManager.getAllFootnotes()) {\r\n for (const para of footnote.getParagraphs()) {\r\n this.processHyperlinksInParagraph(para, relationshipManager);\r\n }\r\n }\r\n }\r\n\r\n // Process endnotes for hyperlinks that need relationship registration\r\n if (endnoteManager) {\r\n for (const endnote of endnoteManager.getAllEndnotes()) {\r\n for (const para of endnote.getParagraphs()) {\r\n this.processHyperlinksInParagraph(para, relationshipManager);\r\n }\r\n }\r\n }\r\n\r\n logger.info('Hyperlinks processed');\r\n }\r\n\r\n /**\r\n * Processes hyperlinks in a single paragraph\r\n *\r\n * **Validation:** Throws error if external hyperlink has no URL to prevent\r\n * document corruption per ECMA-376 §17.16.22.\r\n *\r\n * Also processes hyperlinks inside Revision objects (tracked changes).\r\n *\r\n * @throws {Error} If external hyperlink has undefined/empty URL\r\n */\r\n private processHyperlinksInParagraph(\r\n paragraph: Paragraph,\r\n relationshipManager: RelationshipManager\r\n ): void {\r\n const content = paragraph.getContent();\r\n\r\n for (const item of content) {\r\n // Direct hyperlink in paragraph\r\n if (\r\n item instanceof Hyperlink &&\r\n item.isExternal() &&\r\n !item.getRelationshipId()\r\n ) {\r\n this.registerHyperlinkRelationship(item, relationshipManager);\r\n }\r\n\r\n // Hyperlinks inside Revision objects (tracked changes)\r\n if (item instanceof Revision) {\r\n for (const revContent of item.getContent()) {\r\n if (isHyperlinkContent(revContent)) {\r\n const hyperlink = revContent;\r\n if (hyperlink.isExternal() && !hyperlink.getRelationshipId()) {\r\n this.registerHyperlinkRelationship(hyperlink, relationshipManager);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Registers a hyperlink with the relationship manager\r\n *\r\n * @throws {Error} If hyperlink has no URL\r\n */\r\n private registerHyperlinkRelationship(\r\n hyperlink: Hyperlink,\r\n relationshipManager: RelationshipManager\r\n ): void {\r\n const url = hyperlink.getUrl();\r\n\r\n // Validate that external hyperlink has a URL\r\n // This prevents invalid document generation and fails early with clear error\r\n if (!url) {\r\n throw new Error(\r\n `Invalid hyperlink in paragraph: External hyperlink \"${hyperlink.getText()}\" has no URL. ` +\r\n `This would create a corrupted document per ECMA-376 §17.16.22. ` +\r\n `Fix the hyperlink by providing a valid URL before saving.`\r\n );\r\n }\r\n\r\n const relationship = relationshipManager.addHyperlink(url);\r\n hyperlink.setRelationshipId(relationship.getId());\r\n }\r\n\r\n /**\r\n * Generates word/fontTable.xml\r\n * Required for DOCX compliance - defines fonts used in the document\r\n */\r\n generateFontTable(): string {\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<w:fonts xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"\r\n xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">\r\n <w:font w:name=\"Calibri\">\r\n <w:panose1 w:val=\"020F0502020204030204\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"swiss\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E10002FF\" w:usb1=\"4000ACFF\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"0000019F\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Times New Roman\">\r\n <w:panose1 w:val=\"02020603050405020304\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"roman\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E0002AFF\" w:usb1=\"C000785B\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"000001FF\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Arial\">\r\n <w:panose1 w:val=\"020B0604020202020204\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"swiss\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E0002AFF\" w:usb1=\"C000247B\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"000001FF\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Courier New\">\r\n <w:panose1 w:val=\"02070309020205020404\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"modern\"/>\r\n <w:pitch w:val=\"fixed\"/>\r\n <w:sig w:usb0=\"E0002AFF\" w:usb1=\"C0007843\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"000001FF\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Calibri Light\">\r\n <w:panose1 w:val=\"020F0302020204030204\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"swiss\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E10002FF\" w:usb1=\"4000ACFF\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"0000019F\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Georgia\">\r\n <w:panose1 w:val=\"02040502050204030303\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"roman\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E0002AFF\" w:usb1=\"00000000\" w:usb2=\"00000000\" w:usb3=\"00000000\" w:csb0=\"000001FF\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n</w:fonts>`;\r\n }\r\n\r\n /**\r\n * Generates word/webSettings.xml\r\n * When called with no argument, produces the minimal static template.\r\n * When called with settings, generates XML reflecting in-memory state.\r\n */\r\n generateWebSettings(settings?: {\r\n optimizeForBrowser?: boolean;\r\n allowPNG?: boolean;\r\n relyOnVML?: boolean;\r\n doNotRelyOnCSS?: boolean;\r\n doNotSaveAsSingleFile?: boolean;\r\n doNotOrganizeInFolder?: boolean;\r\n doNotUseLongFileNames?: boolean;\r\n pixelsPerInch?: number;\r\n targetScreenSz?: string;\r\n encoding?: string;\r\n }): string {\r\n if (!settings) {\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<w:webSettings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"\r\n xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">\r\n <w:optimizeForBrowser/>\r\n <w:allowPNG/>\r\n</w:webSettings>`;\r\n }\r\n\r\n let children = '';\r\n if (settings.optimizeForBrowser) children += '\\n <w:optimizeForBrowser/>';\r\n if (settings.allowPNG) children += '\\n <w:allowPNG/>';\r\n if (settings.relyOnVML) children += '\\n <w:relyOnVML/>';\r\n if (settings.doNotRelyOnCSS) children += '\\n <w:doNotRelyOnCSS/>';\r\n if (settings.doNotSaveAsSingleFile) children += '\\n <w:doNotSaveAsSingleFile/>';\r\n if (settings.doNotOrganizeInFolder) children += '\\n <w:doNotOrganizeInFolder/>';\r\n if (settings.doNotUseLongFileNames) children += '\\n <w:doNotUseLongFileNames/>';\r\n if (settings.pixelsPerInch !== undefined) children += `\\n <w:pixelsPerInch w:val=\"${settings.pixelsPerInch}\"/>`;\r\n if (settings.targetScreenSz) children += `\\n <w:targetScreenSz w:val=\"${settings.targetScreenSz}\"/>`;\r\n if (settings.encoding) children += `\\n <w:encoding w:val=\"${settings.encoding}\"/>`;\r\n\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<w:webSettings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"\r\n xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">${children}\r\n</w:webSettings>`;\r\n }\r\n\r\n /**\r\n * Generates word/settings.xml\r\n * Required for DOCX compliance - defines document settings\r\n * @param trackChangesSettings - Optional track changes settings\r\n */\r\n generateSettings(trackChangesSettings?: TrackChangesSettings): string {\r\n let xml = `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<w:settings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"\r\n xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">\r\n <w:zoom w:percent=\"100\"/>`;\r\n\r\n // Track changes settings — ordered per CT_Settings:\r\n // revisionView (#30) → trackRevisions (#31) → doNotTrackFormatting (#33)\r\n if (trackChangesSettings?.revisionView) {\r\n const view = trackChangesSettings.revisionView;\r\n // Only emit revisionView if it differs from defaults (all true)\r\n if (!view.showInsertionsAndDeletions || !view.showFormatting || view.showInkAnnotations === false) {\r\n xml += `\\n <w:revisionView w:insDel=\"${view.showInsertionsAndDeletions ? '1' : '0'}\" w:formatting=\"${view.showFormatting ? '1' : '0'}\"`;\r\n if (view.showInkAnnotations !== undefined) {\r\n xml += ` w:inkAnnotations=\"${view.showInkAnnotations ? '1' : '0'}\"`;\r\n }\r\n xml += '/>';\r\n }\r\n }\r\n\r\n if (trackChangesSettings?.trackChangesEnabled) {\r\n xml += '\\n <w:trackRevisions/>';\r\n }\r\n\r\n if (trackChangesSettings?.trackFormatting !== undefined) {\r\n if (!trackChangesSettings.trackFormatting) {\r\n xml += '\\n <w:doNotTrackFormatting/>';\r\n }\r\n // trackFormatting=true: emit nothing (default when w:trackRevisions is present)\r\n }\r\n\r\n // Document protection\r\n if (trackChangesSettings?.documentProtection) {\r\n const prot = trackChangesSettings.documentProtection;\r\n xml += `\\n <w:documentProtection w:edit=\"${prot.edit}\" w:enforcement=\"${prot.enforcement ? '1' : '0'}\"`;\r\n if (prot.cryptProviderType) {\r\n xml += ` w:cryptProviderType=\"${prot.cryptProviderType}\"`;\r\n }\r\n if (prot.cryptAlgorithmClass) {\r\n xml += ` w:cryptAlgorithmClass=\"${prot.cryptAlgorithmClass}\"`;\r\n }\r\n if (prot.cryptAlgorithmType) {\r\n xml += ` w:cryptAlgorithmType=\"${prot.cryptAlgorithmType}\"`;\r\n }\r\n if (prot.cryptAlgorithmSid) {\r\n xml += ` w:cryptAlgorithmSid=\"${prot.cryptAlgorithmSid}\"`;\r\n }\r\n if (prot.cryptSpinCount) {\r\n xml += ` w:cryptSpinCount=\"${prot.cryptSpinCount}\"`;\r\n }\r\n if (prot.hash) {\r\n xml += ` w:hash=\"${prot.hash}\"`;\r\n }\r\n if (prot.salt) {\r\n xml += ` w:salt=\"${prot.salt}\"`;\r\n }\r\n xml += '/>';\r\n }\r\n\r\n xml += `\r\n <w:defaultTabStop w:val=\"720\"/>\r\n <w:characterSpacingControl w:val=\"doNotCompress\"/>\r\n <w:updateFields w:val=\"true\"/>`;\r\n\r\n // RSIDs (Revision Save IDs)\r\n if (trackChangesSettings?.rsids && trackChangesSettings.rsids.length > 0) {\r\n xml += '\\n <w:rsids>';\r\n if (trackChangesSettings.rsidRoot) {\r\n xml += `\\n <w:rsidRoot w:val=\"${trackChangesSettings.rsidRoot}\"/>`;\r\n }\r\n for (const rsid of trackChangesSettings.rsids) {\r\n xml += `\\n <w:rsid w:val=\"${rsid}\"/>`;\r\n }\r\n xml += '\\n </w:rsids>';\r\n }\r\n\r\n xml += `\r\n <w:compat>\r\n <w:compatSetting w:name=\"compatibilityMode\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"15\"/>\r\n <w:compatSetting w:name=\"overrideTableStyleFontSizeAndJustification\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/>\r\n <w:compatSetting w:name=\"enableOpenTypeFeatures\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/>\r\n <w:compatSetting w:name=\"doNotFlipMirrorIndents\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/>\r\n <w:compatSetting w:name=\"differentiateMultirowTableHeaders\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/>\r\n </w:compat>\r\n <w:themeFontLang w:val=\"en-US\"/>\r\n <w:clrSchemeMapping w:bg1=\"light1\" w:t1=\"dark1\" w:bg2=\"light2\" w:t2=\"dark2\" w:accent1=\"accent1\" w:accent2=\"accent2\" w:accent3=\"accent3\" w:accent4=\"accent4\" w:accent5=\"accent5\" w:accent6=\"accent6\" w:hyperlink=\"hyperlink\" w:followedHyperlink=\"followedHyperlink\"/>\r\n</w:settings>`;\r\n\r\n return xml;\r\n }\r\n\r\n /**\r\n * Generates word/theme/theme1.xml\r\n * Required for DOCX compliance - defines color and font theme\r\n */\r\n generateTheme(): string {\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">\r\n <a:themeElements>\r\n <a:clrScheme name=\"Office\">\r\n <a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>\r\n <a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>\r\n <a:dk2><a:srgbClr val=\"44546A\"/></a:dk2>\r\n <a:lt2><a:srgbClr val=\"E7E6E6\"/></a:lt2>\r\n <a:accent1><a:srgbClr val=\"5B9BD5\"/></a:accent1>\r\n <a:accent2><a:srgbClr val=\"ED7D31\"/></a:accent2>\r\n <a:accent3><a:srgbClr val=\"A5A5A5\"/></a:accent3>\r\n <a:accent4><a:srgbClr val=\"FFC000\"/></a:accent4>\r\n <a:accent5><a:srgbClr val=\"4472C4\"/></a:accent5>\r\n <a:accent6><a:srgbClr val=\"70AD47\"/></a:accent6>\r\n <a:hlink><a:srgbClr val=\"0563C1\"/></a:hlink>\r\n <a:folHlink><a:srgbClr val=\"954F72\"/></a:folHlink>\r\n </a:clrScheme>\r\n <a:fontScheme name=\"Office\">\r\n <a:majorFont>\r\n <a:latin typeface=\"Calibri Light\" panose=\"020F0302020204030204\"/>\r\n <a:ea typeface=\"\"/>\r\n <a:cs typeface=\"\"/>\r\n </a:majorFont>\r\n <a:minorFont>\r\n <a:latin typeface=\"Calibri\" panose=\"020F0502020204030204\"/>\r\n <a:ea typeface=\"\"/>\r\n <a:cs typeface=\"\"/>\r\n </a:minorFont>\r\n </a:fontScheme>\r\n <a:fmtScheme name=\"Office\">\r\n <a:fillStyleLst>\r\n <a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>\r\n <a:gradFill rotWithShape=\"1\">\r\n <a:gsLst>\r\n <a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"110000\"/><a:satMod val=\"105000\"/><a:tint val=\"67000\"/></a:schemeClr></a:gs>\r\n <a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"103000\"/><a:tint val=\"73000\"/></a:schemeClr></a:gs>\r\n <a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"109000\"/><a:tint val=\"81000\"/></a:schemeClr></a:gs>\r\n </a:gsLst>\r\n <a:lin ang=\"5400000\" scaled=\"0\"/>\r\n </a:gradFill>\r\n <a:gradFill rotWithShape=\"1\">\r\n <a:gsLst>\r\n <a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:satMod val=\"103000\"/><a:lumMod val=\"102000\"/><a:tint val=\"94000\"/></a:schemeClr></a:gs>\r\n <a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:satMod val=\"110000\"/><a:lumMod val=\"100000\"/><a:shade val=\"100000\"/></a:schemeClr></a:gs>\r\n <a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"99000\"/><a:satMod val=\"120000\"/><a:shade val=\"78000\"/></a:schemeClr></a:gs>\r\n </a:gsLst>\r\n <a:lin ang=\"5400000\" scaled=\"0\"/>\r\n </a:gradFill>\r\n </a:fillStyleLst>\r\n <a:lnStyleLst>\r\n <a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>\r\n <a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>\r\n <a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>\r\n </a:lnStyleLst>\r\n <a:effectStyleLst>\r\n <a:effectStyle><a:effectLst/></a:effectStyle>\r\n <a:effectStyle><a:effectLst/></a:effectStyle>\r\n <a:effectStyle>\r\n <a:effectLst>\r\n <a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" rotWithShape=\"0\">\r\n <a:srgbClr val=\"000000\"><a:alpha val=\"63000\"/></a:srgbClr>\r\n </a:outerShdw>\r\n </a:effectLst>\r\n </a:effectStyle>\r\n </a:effectStyleLst>\r\n <a:bgFillStyleLst>\r\n <a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>\r\n <a:solidFill><a:schemeClr val=\"phClr\"><a:tint val=\"95000\"/><a:satMod val=\"170000\"/></a:schemeClr></a:solidFill>\r\n <a:gradFill rotWithShape=\"1\">\r\n <a:gsLst>\r\n <a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"93000\"/><a:satMod val=\"150000\"/><a:shade val=\"98000\"/><a:lumMod val=\"102000\"/></a:schemeClr></a:gs>\r\n <a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:tint val=\"98000\"/><a:satMod val=\"130000\"/><a:shade val=\"90000\"/><a:lumMod val=\"103000\"/></a:schemeClr></a:gs>\r\n <a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"63000\"/><a:satMod val=\"120000\"/></a:schemeClr></a:gs>\r\n </a:gsLst>\r\n <a:lin ang=\"5400000\" scaled=\"0\"/>\r\n </a:gradFill>\r\n </a:bgFillStyleLst>\r\n </a:fmtScheme>\r\n </a:themeElements>\r\n <a:objectDefaults/>\r\n <a:extraClrSchemeLst/>\r\n <a:extLst>\r\n <a:ext uri=\"{05A4C25C-085E-4340-85A3-A5531E510DB2}\">\r\n <thm15:themeFamily xmlns:thm15=\"http://schemas.microsoft.com/office/thememl/2012/main\" name=\"Office Theme\" id=\"{62F939B6-93AF-4DB8-9C6B-D6C7DFDC589F}\" vid=\"{4A3C46E8-61CC-4603-A589-7422A47A8E4A}\"/>\r\n </a:ext>\r\n </a:extLst>\r\n</a:theme>`;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentIdManager.d.ts","sourceRoot":"","sources":["../../src/core/DocumentIdManager.ts"],"names":[],"mappings":"AAgBA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"DocumentIdManager.d.ts","sourceRoot":"","sources":["../../src/core/DocumentIdManager.ts"],"names":[],"mappings":"AAgBA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAK;gBAMP,aAAa,SAAI;IAW7B,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IA+CxE,SAAS,IAAI,MAAM;IAWnB,UAAU,IAAI,MAAM;IAUpB,gBAAgB,IAAI,MAAM;IAU1B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAU3B,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU3C,KAAK,IAAI,IAAI;IASb,QAAQ,IAAI;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAa9B,MAAM,CAAC,MAAM,CAAC,aAAa,SAAI,GAAG,iBAAiB;CAGpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentIdManager.js","sourceRoot":"","sources":["../../src/core/DocumentIdManager.ts"],"names":[],"mappings":";;;AAgBA,MAAa,iBAAiB;IACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"DocumentIdManager.js","sourceRoot":"","sources":["../../src/core/DocumentIdManager.ts"],"names":[],"mappings":";;;AAgBA,MAAa,iBAAiB;IACpB,MAAM,GAAG,CAAC,CAAC;IAMnB,YAAY,aAAa,GAAG,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAC9B,CAAC;IASD,sBAAsB,CAAC,WAAoB,EAAE,WAAoB;QAC/D,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;QAGrB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,eAAe,CAAC;YAChC,IAAI,KAA6B,CAAC;YAElC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;wBACnC,WAAW,GAAG,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,eAAe,CAAC;YAChC,IAAI,KAA6B,CAAC;YAElC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;wBACnC,WAAW,GAAG,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAQD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IASD,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAQD,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAQD,SAAS,CAAC,EAAU;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAQD,iBAAiB,CAAC,UAAkB;QAClC,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAMD,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;IAOD,QAAQ;QACN,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IASD,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC;QAC7B,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;CACF;AA7ID,8CA6IC","sourcesContent":["/**\r\n * DocumentIdManager - Centralized annotation ID allocator\r\n *\r\n * Per ECMA-376, w:id attributes must be UNIQUE across ALL annotation types:\r\n * - w:bookmarkStart / w:bookmarkEnd\r\n * - w:ins / w:del (revisions)\r\n * - w:pPrChange / w:rPrChange / w:tblPrChange (property changes)\r\n * - w:moveFrom / w:moveTo\r\n * - w:commentRangeStart / w:commentRangeEnd\r\n * - w:comment\r\n *\r\n * This class provides a single source of truth for annotation IDs,\r\n * ensuring that BookmarkManager, RevisionManager, and CommentManager\r\n * all allocate from the same counter.\r\n */\r\n\r\nexport class DocumentIdManager {\r\n private nextId = 0;\r\n\r\n /**\r\n * Creates a new DocumentIdManager\r\n * @param initialNextId - Optional starting ID (default 0)\r\n */\r\n constructor(initialNextId = 0) {\r\n this.nextId = initialNextId;\r\n }\r\n\r\n /**\r\n * Initializes the ID counter from existing document content.\r\n * Scans ALL w:id attributes to find the global maximum.\r\n *\r\n * @param documentXml - Content of word/document.xml\r\n * @param commentsXml - Optional content of word/comments.xml\r\n */\r\n initializeFromDocument(documentXml?: string, commentsXml?: string): void {\r\n let globalMaxId = -1;\r\n\r\n // Scan document.xml for all w:id attributes\r\n if (documentXml) {\r\n const idRegex = /w:id=\"(\\d+)\"/g;\r\n let match: RegExpExecArray | null;\r\n\r\n while ((match = idRegex.exec(documentXml)) !== null) {\r\n const idStr = match[1];\r\n if (idStr) {\r\n const id = parseInt(idStr, 10);\r\n if (!isNaN(id) && id > globalMaxId) {\r\n globalMaxId = id;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Also scan comments.xml for w:id attributes\r\n if (commentsXml) {\r\n const idRegex = /w:id=\"(\\d+)\"/g;\r\n let match: RegExpExecArray | null;\r\n\r\n while ((match = idRegex.exec(commentsXml)) !== null) {\r\n const idStr = match[1];\r\n if (idStr) {\r\n const id = parseInt(idStr, 10);\r\n if (!isNaN(id) && id > globalMaxId) {\r\n globalMaxId = id;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Set nextId to one more than the highest existing ID\r\n if (globalMaxId >= 0) {\r\n this.nextId = globalMaxId + 1;\r\n }\r\n }\r\n\r\n /**\r\n * Gets the next available ID and increments the counter.\r\n * This is the primary method for allocating new annotation IDs.\r\n *\r\n * @returns The next available ID\r\n */\r\n getNextId(): number {\r\n return this.nextId++;\r\n }\r\n\r\n /**\r\n * Peeks at the next ID without consuming it.\r\n * Use this when you need to know what the next ID will be\r\n * without actually allocating it.\r\n *\r\n * @returns The next ID that would be allocated\r\n */\r\n peekNextId(): number {\r\n return this.nextId;\r\n }\r\n\r\n /**\r\n * Gets the current next ID value.\r\n * Alias for peekNextId() for backwards compatibility.\r\n *\r\n * @returns The current nextId value\r\n */\r\n getCurrentNextId(): number {\r\n return this.nextId;\r\n }\r\n\r\n /**\r\n * Sets the next ID to a specific value.\r\n * Use with caution - primarily for testing or special cases.\r\n *\r\n * @param id - The new next ID value\r\n */\r\n setNextId(id: number): void {\r\n this.nextId = id;\r\n }\r\n\r\n /**\r\n * Ensures the next ID is at least the given value.\r\n * If an existing ID is found that's >= current nextId, update to avoid collision.\r\n *\r\n * @param existingId - An ID that was found in existing content\r\n */\r\n ensureNextIdAbove(existingId: number): void {\r\n if (existingId >= this.nextId) {\r\n this.nextId = existingId + 1;\r\n }\r\n }\r\n\r\n /**\r\n * Resets the ID counter to 0.\r\n * Use when creating a new document from scratch.\r\n */\r\n reset(): void {\r\n this.nextId = 0;\r\n }\r\n\r\n /**\r\n * Gets statistics about the ID manager.\r\n *\r\n * @returns Object with nextId value\r\n */\r\n getStats(): { nextId: number } {\r\n return {\r\n nextId: this.nextId,\r\n };\r\n }\r\n\r\n /**\r\n * Creates a new DocumentIdManager instance.\r\n * Factory method for consistency with other managers.\r\n *\r\n * @param initialNextId - Optional starting ID (default 0)\r\n * @returns New DocumentIdManager instance\r\n */\r\n static create(initialNextId = 0): DocumentIdManager {\r\n return new DocumentIdManager(initialNextId);\r\n }\r\n}\r\n"]}
|
|
@@ -123,25 +123,25 @@ export declare class DocumentParser {
|
|
|
123
123
|
private parseCellMarginsFromXml;
|
|
124
124
|
static getRawXml(zipHandler: ZipHandler, partName: string): string | null;
|
|
125
125
|
static setRawXml(zipHandler: ZipHandler, partName: string, xmlContent: string): boolean;
|
|
126
|
-
static getRelationships(zipHandler: ZipHandler, partName: string):
|
|
126
|
+
static getRelationships(zipHandler: ZipHandler, partName: string): {
|
|
127
127
|
id?: string;
|
|
128
128
|
type?: string;
|
|
129
129
|
target?: string;
|
|
130
130
|
targetMode?: string;
|
|
131
|
-
}
|
|
131
|
+
}[];
|
|
132
132
|
private parseNamespaces;
|
|
133
133
|
private parseDocumentBackground;
|
|
134
134
|
parseHeadersAndFooters(zipHandler: ZipHandler, section: Section | null, relationshipManager: RelationshipManager, imageManager: ImageManager): Promise<{
|
|
135
|
-
headers:
|
|
135
|
+
headers: {
|
|
136
136
|
header: import("../elements/Header").Header;
|
|
137
137
|
relationshipId: string;
|
|
138
138
|
filename: string;
|
|
139
|
-
}
|
|
140
|
-
footers:
|
|
139
|
+
}[];
|
|
140
|
+
footers: {
|
|
141
141
|
footer: import("../elements/Footer").Footer;
|
|
142
142
|
relationshipId: string;
|
|
143
143
|
filename: string;
|
|
144
|
-
}
|
|
144
|
+
}[];
|
|
145
145
|
}>;
|
|
146
146
|
private parseHeader;
|
|
147
147
|
private parseFooter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAS9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,EAEL,OAAO,EAGR,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAA8B,MAAM,qBAAqB,CAAC;AAiBxE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAKD,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAgC;IAMvD,OAAO,CAAC,eAAe,CAAiC;gBAE5C,aAAa,
|
|
1
|
+
{"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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"}
|