@cj-tech-master/excelts 9.5.4 → 9.5.5
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/dist/browser/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/browser/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/browser/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/browser/modules/archive/fs/archive-file.d.ts +8 -5
- package/dist/browser/modules/archive/fs/archive-file.js +78 -16
- package/dist/browser/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/browser/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/browser/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +0 -12
- package/dist/browser/modules/excel/chart/chart.d.ts +1 -5
- package/dist/browser/modules/excel/chart/chart.js +1 -7
- package/dist/browser/modules/excel/chart/types.d.ts +0 -6
- package/dist/browser/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/browser/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/browser/modules/excel/utils/string-buf.d.ts +5 -26
- package/dist/browser/modules/excel/utils/string-buf.js +4 -81
- package/dist/browser/modules/excel/workbook.browser.js +135 -25
- package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/browser/modules/excel/xlsx/xlsx.d.ts +10 -2
- package/dist/browser/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/browser/modules/pdf/excel-bridge.d.ts +30 -1
- package/dist/browser/modules/pdf/excel-bridge.js +32 -0
- package/dist/browser/modules/pdf/font/metrics.d.ts +3 -52
- package/dist/browser/modules/pdf/font/metrics.js +3 -237
- package/dist/browser/modules/pdf/index.d.ts +1 -1
- package/dist/browser/modules/pdf/index.js +1 -1
- package/dist/browser/modules/pdf/render-layout-to-pdf.d.ts +66 -0
- package/dist/browser/modules/pdf/render-layout-to-pdf.js +647 -0
- package/dist/browser/modules/pdf/word-bridge.d.ts +80 -12
- package/dist/browser/modules/pdf/word-bridge.js +122 -274
- package/dist/browser/modules/stream/index.base.d.ts +2 -0
- package/dist/browser/modules/stream/index.base.js +2 -1
- package/dist/browser/modules/stream/internal/sink-adapter.d.ts +65 -0
- package/dist/browser/modules/stream/internal/sink-adapter.js +198 -0
- package/dist/browser/modules/stream/pull-stream.d.ts +19 -2
- package/dist/browser/modules/stream/pull-stream.js +51 -5
- package/dist/browser/modules/stream/types.d.ts +13 -1
- package/dist/browser/modules/word/advanced/diff.d.ts +61 -0
- package/dist/browser/modules/word/advanced/diff.js +167 -0
- package/dist/browser/modules/word/advanced/drawing-shapes.d.ts +269 -0
- package/dist/browser/modules/word/advanced/drawing-shapes.js +268 -0
- package/dist/browser/modules/word/advanced/field-engine.d.ts +43 -0
- package/dist/browser/modules/word/advanced/field-engine.js +1225 -0
- package/dist/browser/modules/word/advanced/glossary.d.ts +86 -0
- package/dist/browser/modules/word/advanced/glossary.js +79 -0
- package/dist/browser/modules/word/advanced/math-convert.d.ts +30 -0
- package/dist/browser/modules/word/advanced/math-convert.js +595 -0
- package/dist/browser/modules/word/advanced/ole-objects.d.ts +115 -0
- package/dist/browser/modules/word/advanced/ole-objects.js +271 -0
- package/dist/browser/modules/word/advanced/style-map.d.ts +105 -0
- package/dist/browser/modules/word/advanced/style-map.js +322 -0
- package/dist/browser/modules/word/advanced/validation.d.ts +56 -0
- package/dist/browser/modules/word/advanced/validation.js +1065 -0
- package/dist/browser/modules/word/advanced/vba-project.d.ts +91 -0
- package/dist/browser/modules/word/advanced/vba-project.js +265 -0
- package/dist/browser/modules/word/bridge/excel-bridge.d.ts +127 -0
- package/dist/browser/modules/word/bridge/excel-bridge.js +980 -0
- package/dist/browser/modules/word/builder/document-handle.d.ts +151 -0
- package/dist/browser/modules/word/builder/document-handle.js +664 -0
- package/dist/browser/modules/word/builder/paragraph-builders.d.ts +61 -0
- package/dist/browser/modules/word/builder/paragraph-builders.js +90 -0
- package/dist/browser/modules/word/builder/run-builders.d.ts +374 -0
- package/dist/browser/modules/word/builder/run-builders.js +600 -0
- package/dist/browser/modules/word/builder/table-builders.d.ts +23 -0
- package/dist/browser/modules/word/builder/table-builders.js +45 -0
- package/dist/browser/modules/word/constants.d.ts +39 -1
- package/dist/browser/modules/word/constants.js +109 -1
- package/dist/browser/modules/word/convert/conversion-ir.d.ts +210 -0
- package/dist/browser/modules/word/convert/conversion-ir.js +31 -0
- package/dist/browser/modules/word/convert/docx-to-semantic.d.ts +39 -0
- package/dist/browser/modules/word/convert/docx-to-semantic.js +499 -0
- package/dist/browser/modules/word/convert/flat-opc.d.ts +44 -0
- package/dist/browser/modules/word/convert/flat-opc.js +385 -0
- package/dist/browser/modules/word/convert/html/html-import.d.ts +50 -0
- package/dist/browser/modules/word/convert/html/html-import.js +1907 -0
- package/dist/{types/modules/word → browser/modules/word/convert/html}/html-renderer.d.ts +14 -1
- package/dist/{esm/modules/word → browser/modules/word/convert/html}/html-renderer.js +420 -69
- package/dist/browser/modules/word/convert/html/html.d.ts +15 -0
- package/dist/browser/modules/word/convert/html/html.js +15 -0
- package/dist/browser/modules/word/convert/markdown/markdown-import.d.ts +68 -0
- package/dist/browser/modules/word/convert/markdown/markdown-import.js +1325 -0
- package/dist/browser/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
- package/dist/browser/modules/word/convert/markdown/markdown-renderer.js +634 -0
- package/dist/browser/modules/word/convert/markdown/markdown.d.ts +15 -0
- package/dist/browser/modules/word/convert/markdown/markdown.js +15 -0
- package/dist/browser/modules/word/convert/odt/odt.d.ts +41 -0
- package/dist/browser/modules/word/convert/odt/odt.js +1932 -0
- package/dist/browser/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
- package/dist/browser/modules/word/core/color-utils.js +43 -0
- package/dist/browser/modules/word/core/internal-utils.d.ts +90 -0
- package/dist/browser/modules/word/core/internal-utils.js +209 -0
- package/dist/browser/modules/word/core/mapper.d.ts +44 -0
- package/dist/browser/modules/word/core/mapper.js +427 -0
- package/dist/browser/modules/word/core/opc-paths.d.ts +33 -0
- package/dist/browser/modules/word/core/opc-paths.js +48 -0
- package/dist/browser/modules/word/core/text-utils.d.ts +38 -0
- package/dist/browser/modules/word/core/text-utils.js +202 -0
- package/dist/browser/modules/word/core/walker.d.ts +119 -0
- package/dist/browser/modules/word/core/walker.js +570 -0
- package/dist/browser/modules/word/crypto.d.ts +14 -9
- package/dist/browser/modules/word/crypto.js +13 -7
- package/dist/browser/modules/word/document-io.d.ts +59 -27
- package/dist/browser/modules/word/document-io.js +80 -197
- package/dist/browser/modules/word/errors.d.ts +44 -1
- package/dist/browser/modules/word/errors.js +54 -2
- package/dist/browser/modules/word/excel.d.ts +14 -0
- package/dist/browser/modules/word/excel.js +13 -0
- package/dist/browser/modules/word/font/font-embed.d.ts +112 -0
- package/dist/browser/modules/word/font/font-embed.js +646 -0
- package/dist/{esm/modules/word → browser/modules/word/font}/font-obfuscation.js +4 -9
- package/dist/browser/modules/word/font/hyphenation.d.ts +65 -0
- package/dist/browser/modules/word/font/hyphenation.js +4210 -0
- package/dist/browser/modules/word/font/text-shaping.d.ts +58 -0
- package/dist/browser/modules/word/font/text-shaping.js +635 -0
- package/dist/browser/modules/word/html.d.ts +7 -6
- package/dist/browser/modules/word/html.js +6 -5
- package/dist/browser/modules/word/incremental-edit.d.ts +123 -0
- package/dist/browser/modules/word/incremental-edit.js +361 -0
- package/dist/browser/modules/word/index.base.d.ts +194 -10
- package/dist/browser/modules/word/index.base.js +138 -29
- package/dist/browser/modules/word/layout/layout-constants.d.ts +17 -0
- package/dist/browser/modules/word/layout/layout-constants.js +17 -0
- package/dist/browser/modules/word/layout/layout-full.d.ts +53 -0
- package/dist/browser/modules/word/layout/layout-full.js +1696 -0
- package/dist/browser/modules/word/layout/layout-model.d.ts +344 -0
- package/dist/browser/modules/word/layout/layout-model.js +16 -0
- package/dist/browser/modules/word/layout/layout.d.ts +63 -0
- package/dist/browser/modules/word/layout/layout.js +1167 -0
- package/dist/browser/modules/word/layout/render-page.d.ts +57 -0
- package/dist/browser/modules/word/layout/render-page.js +1238 -0
- package/dist/browser/modules/word/markdown.d.ts +14 -0
- package/dist/browser/modules/word/markdown.js +13 -0
- package/dist/browser/modules/word/patcher.d.ts +62 -0
- package/dist/browser/modules/word/patcher.js +537 -0
- package/dist/browser/modules/word/query/compat.d.ts +25 -0
- package/dist/browser/modules/word/query/compat.js +58 -0
- package/dist/browser/modules/word/query/data-binding.d.ts +22 -0
- package/dist/browser/modules/word/query/data-binding.js +392 -0
- package/dist/browser/modules/word/query/form-fields.d.ts +41 -0
- package/dist/browser/modules/word/query/form-fields.js +268 -0
- package/dist/browser/modules/word/query/format-search.d.ts +99 -0
- package/dist/browser/modules/word/query/format-search.js +329 -0
- package/dist/browser/modules/word/query/mail-merge.d.ts +25 -0
- package/dist/browser/modules/word/query/mail-merge.js +111 -0
- package/dist/browser/modules/word/query/merge.d.ts +50 -0
- package/dist/browser/modules/word/query/merge.js +617 -0
- package/dist/browser/modules/word/query/replace.d.ts +47 -0
- package/dist/browser/modules/word/query/replace.js +301 -0
- package/dist/browser/modules/word/query/revisions.d.ts +67 -0
- package/dist/browser/modules/word/query/revisions.js +879 -0
- package/dist/browser/modules/word/query/search.d.ts +129 -0
- package/dist/browser/modules/word/query/search.js +346 -0
- package/dist/browser/modules/word/query/split.d.ts +44 -0
- package/dist/browser/modules/word/query/split.js +135 -0
- package/dist/browser/modules/word/query/style-resolve.d.ts +104 -0
- package/dist/browser/modules/word/query/style-resolve.js +368 -0
- package/dist/browser/modules/word/reader/chart-parser.d.ts +20 -0
- package/dist/browser/modules/word/reader/chart-parser.js +810 -0
- package/dist/browser/modules/word/reader/comments-parser.d.ts +26 -0
- package/dist/browser/modules/word/reader/comments-parser.js +92 -0
- package/dist/browser/modules/word/reader/doc-props-parsers.d.ts +15 -0
- package/dist/browser/modules/word/reader/doc-props-parsers.js +190 -0
- package/dist/browser/modules/word/reader/docx-reader.d.ts +27 -0
- package/dist/browser/modules/word/reader/docx-reader.js +2557 -0
- package/dist/browser/modules/word/reader/drawing-helpers.d.ts +27 -0
- package/dist/browser/modules/word/reader/drawing-helpers.js +84 -0
- package/dist/browser/modules/word/reader/form-field-parser.d.ts +21 -0
- package/dist/browser/modules/word/reader/form-field-parser.js +82 -0
- package/dist/browser/modules/word/reader/image-parsers.d.ts +11 -0
- package/dist/browser/modules/word/reader/image-parsers.js +291 -0
- package/dist/browser/modules/word/reader/math-parser.d.ts +12 -0
- package/dist/browser/modules/word/reader/math-parser.js +422 -0
- package/dist/browser/modules/word/reader/metadata-parsers.d.ts +17 -0
- package/dist/browser/modules/word/reader/metadata-parsers.js +87 -0
- package/dist/browser/modules/word/reader/numbering-parser.d.ts +13 -0
- package/dist/browser/modules/word/reader/numbering-parser.js +166 -0
- package/dist/browser/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
- package/dist/browser/modules/word/reader/paragraph-section-parsers.js +503 -0
- package/dist/browser/modules/word/reader/parse-utils.d.ts +91 -0
- package/dist/browser/modules/word/reader/parse-utils.js +249 -0
- package/dist/browser/modules/word/reader/properties-parsers.d.ts +21 -0
- package/dist/browser/modules/word/reader/properties-parsers.js +332 -0
- package/dist/browser/modules/word/reader/reader-context.d.ts +69 -0
- package/dist/browser/modules/word/reader/reader-context.js +61 -0
- package/dist/browser/modules/word/reader/sdt-helpers.d.ts +29 -0
- package/dist/browser/modules/word/reader/sdt-helpers.js +111 -0
- package/dist/browser/modules/word/reader/settings-parser.d.ts +8 -0
- package/dist/browser/modules/word/reader/settings-parser.js +263 -0
- package/dist/browser/modules/word/reader/styles-parser.d.ts +12 -0
- package/dist/browser/modules/word/reader/styles-parser.js +147 -0
- package/dist/browser/modules/word/reader/table-properties-parsers.d.ts +12 -0
- package/dist/browser/modules/word/reader/table-properties-parsers.js +234 -0
- package/dist/browser/modules/word/reader/theme-parser.d.ts +8 -0
- package/dist/browser/modules/word/reader/theme-parser.js +167 -0
- package/dist/browser/modules/word/reader/watermark-parser.d.ts +15 -0
- package/dist/browser/modules/word/reader/watermark-parser.js +110 -0
- package/dist/browser/modules/word/security/cfb-reader.d.ts +37 -0
- package/dist/browser/modules/word/security/cfb-reader.js +410 -0
- package/dist/browser/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
- package/dist/browser/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/browser/modules/word/security/document-protection.d.ts +93 -0
- package/dist/browser/modules/word/security/document-protection.js +201 -0
- package/dist/{types/modules/word → browser/modules/word/security}/encryption.d.ts +51 -4
- package/dist/browser/modules/word/security/encryption.js +602 -0
- package/dist/browser/modules/word/security/policy.d.ts +80 -0
- package/dist/browser/modules/word/security/policy.js +102 -0
- package/dist/browser/modules/word/template/template-chart.d.ts +56 -0
- package/dist/browser/modules/word/template/template-chart.js +167 -0
- package/dist/browser/modules/word/template/template-datasource.d.ts +154 -0
- package/dist/browser/modules/word/template/template-datasource.js +541 -0
- package/dist/browser/modules/word/template/template-engine.d.ts +121 -0
- package/dist/browser/modules/word/template/template-engine.js +1435 -0
- package/dist/browser/modules/word/types.d.ts +224 -25
- package/dist/browser/modules/word/units.d.ts +26 -0
- package/dist/browser/modules/word/units.js +43 -14
- package/dist/browser/modules/word/{writers → writer}/chart-writer.js +164 -23
- package/dist/browser/modules/word/writer/checkbox-writer.d.ts +17 -0
- package/dist/browser/modules/word/writer/checkbox-writer.js +79 -0
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/comment-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/browser/modules/word/writer/common-parts.d.ts +57 -0
- package/dist/browser/modules/word/writer/common-parts.js +101 -0
- package/dist/{types/modules/word → browser/modules/word/writer}/content-types.d.ts +2 -2
- package/dist/{esm/modules/word → browser/modules/word/writer}/content-types.js +14 -6
- package/dist/browser/modules/word/writer/document-writer.d.ts +24 -0
- package/dist/browser/modules/word/writer/document-writer.js +473 -0
- package/dist/browser/modules/word/writer/docx-packager.d.ts +35 -0
- package/dist/browser/modules/word/writer/docx-packager.js +1515 -0
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/footnote-writer.d.ts +3 -2
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/footnote-writer.js +13 -10
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/header-footer-writer.d.ts +3 -2
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/header-footer-writer.js +39 -21
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/image-writer.d.ts +1 -1
- package/dist/browser/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/browser/modules/word/writer/math-writer.d.ts +20 -0
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/math-writer.js +21 -1
- package/dist/browser/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/numbering-writer.js +11 -4
- package/dist/browser/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/paragraph-writer.js +73 -38
- package/dist/browser/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/parts-writer.js +91 -12
- package/dist/browser/modules/word/writer/reference-scanners.d.ts +42 -0
- package/dist/browser/modules/word/writer/reference-scanners.js +111 -0
- package/dist/browser/modules/word/writer/relationships.d.ts +52 -0
- package/dist/browser/modules/word/writer/relationships.js +117 -0
- package/dist/browser/modules/word/writer/render-context.d.ts +124 -0
- package/dist/browser/modules/word/writer/render-context.js +46 -0
- package/dist/browser/modules/word/{writers → writer}/run-writer.d.ts +10 -1
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/run-writer.js +126 -24
- package/dist/browser/modules/word/writer/sdt-writer.d.ts +25 -0
- package/dist/browser/modules/word/writer/sdt-writer.js +189 -0
- package/dist/browser/modules/word/writer/stream-buf.d.ts +37 -0
- package/dist/browser/modules/word/writer/stream-buf.js +73 -0
- package/dist/browser/modules/word/writer/streaming-writer.d.ts +344 -0
- package/dist/browser/modules/word/writer/streaming-writer.js +1382 -0
- package/dist/browser/modules/word/writer/string-buf.d.ts +8 -0
- package/dist/browser/modules/word/writer/string-buf.js +7 -0
- package/dist/browser/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/browser/modules/word/{writers → writer}/table-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/browser/modules/xml/types.d.ts +22 -0
- package/dist/browser/utils/crypto.browser.d.ts +3 -1
- package/dist/browser/utils/crypto.browser.js +3 -1
- package/dist/browser/utils/crypto.d.ts +4 -1
- package/dist/browser/utils/crypto.js +4 -1
- package/dist/browser/utils/font-metrics.d.ts +63 -0
- package/dist/browser/utils/font-metrics.js +293 -0
- package/dist/browser/utils/string-buf.d.ts +42 -0
- package/dist/browser/utils/string-buf.js +89 -0
- package/dist/browser/utils/theme-colors.d.ts +55 -0
- package/dist/browser/utils/theme-colors.js +120 -0
- package/dist/cjs/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/cjs/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/cjs/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/cjs/modules/archive/fs/archive-file.js +78 -16
- package/dist/cjs/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/cjs/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/cjs/modules/excel/chart/chart.js +1 -7
- package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/cjs/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/cjs/modules/excel/utils/string-buf.js +5 -81
- package/dist/cjs/modules/excel/workbook.browser.js +135 -25
- package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/cjs/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/cjs/modules/pdf/excel-bridge.js +33 -0
- package/dist/cjs/modules/pdf/font/metrics.js +11 -244
- package/dist/cjs/modules/pdf/index.js +2 -1
- package/dist/cjs/modules/pdf/render-layout-to-pdf.js +651 -0
- package/dist/cjs/modules/pdf/word-bridge.js +155 -274
- package/dist/cjs/modules/stream/index.base.js +4 -2
- package/dist/cjs/modules/stream/internal/sink-adapter.js +202 -0
- package/dist/cjs/modules/stream/pull-stream.js +51 -5
- package/dist/cjs/modules/word/advanced/diff.js +170 -0
- package/dist/cjs/modules/word/advanced/drawing-shapes.js +279 -0
- package/dist/cjs/modules/word/advanced/field-engine.js +1229 -0
- package/dist/cjs/modules/word/advanced/glossary.js +87 -0
- package/dist/cjs/modules/word/advanced/math-convert.js +599 -0
- package/dist/cjs/modules/word/advanced/ole-objects.js +277 -0
- package/dist/cjs/modules/word/advanced/style-map.js +329 -0
- package/dist/cjs/modules/word/advanced/validation.js +1068 -0
- package/dist/cjs/modules/word/advanced/vba-project.js +274 -0
- package/dist/cjs/modules/word/bridge/excel-bridge.js +1020 -0
- package/dist/cjs/modules/word/builder/document-handle.js +667 -0
- package/dist/cjs/modules/word/builder/paragraph-builders.js +109 -0
- package/dist/cjs/modules/word/builder/run-builders.js +676 -0
- package/dist/cjs/modules/word/builder/table-builders.js +53 -0
- package/dist/cjs/modules/word/constants.js +111 -2
- package/dist/cjs/modules/word/convert/conversion-ir.js +34 -0
- package/dist/cjs/modules/word/convert/docx-to-semantic.js +502 -0
- package/dist/cjs/modules/word/convert/flat-opc.js +390 -0
- package/dist/cjs/modules/word/convert/html/html-import.js +1910 -0
- package/dist/cjs/modules/word/{html-renderer.js → convert/html/html-renderer.js} +420 -69
- package/dist/cjs/modules/word/convert/html/html.js +20 -0
- package/dist/cjs/modules/word/convert/markdown/markdown-import.js +1329 -0
- package/dist/cjs/modules/word/convert/markdown/markdown-renderer.js +637 -0
- package/dist/cjs/modules/word/convert/markdown/markdown.js +21 -0
- package/dist/cjs/modules/word/convert/odt/odt.js +1936 -0
- package/dist/cjs/modules/word/core/color-utils.js +47 -0
- package/dist/cjs/modules/word/core/internal-utils.js +219 -0
- package/dist/cjs/modules/word/core/mapper.js +430 -0
- package/dist/cjs/modules/word/core/opc-paths.js +53 -0
- package/dist/cjs/modules/word/core/text-utils.js +210 -0
- package/dist/cjs/modules/word/core/walker.js +577 -0
- package/dist/cjs/modules/word/crypto.js +19 -8
- package/dist/cjs/modules/word/document-io.js +117 -197
- package/dist/cjs/modules/word/errors.js +59 -13
- package/dist/cjs/modules/word/excel.js +22 -0
- package/dist/cjs/modules/word/font/font-embed.js +652 -0
- package/dist/cjs/modules/word/{font-obfuscation.js → font/font-obfuscation.js} +4 -9
- package/dist/cjs/modules/word/font/hyphenation.js +4216 -0
- package/dist/cjs/modules/word/font/text-shaping.js +640 -0
- package/dist/cjs/modules/word/html.js +9 -7
- package/dist/cjs/modules/word/incremental-edit.js +366 -0
- package/dist/cjs/modules/word/index.base.js +370 -137
- package/dist/cjs/modules/word/layout/layout-constants.js +20 -0
- package/dist/cjs/modules/word/layout/layout-full.js +1699 -0
- package/dist/cjs/modules/word/layout/layout-model.js +17 -0
- package/dist/cjs/modules/word/layout/layout.js +1170 -0
- package/dist/cjs/modules/word/layout/render-page.js +1243 -0
- package/dist/cjs/modules/word/markdown.js +19 -0
- package/dist/cjs/modules/word/patcher.js +539 -0
- package/dist/cjs/modules/word/query/compat.js +61 -0
- package/dist/cjs/modules/word/query/data-binding.js +395 -0
- package/dist/cjs/modules/word/query/form-fields.js +272 -0
- package/dist/cjs/modules/word/query/format-search.js +334 -0
- package/dist/cjs/modules/word/query/mail-merge.js +114 -0
- package/dist/cjs/modules/word/query/merge.js +620 -0
- package/dist/cjs/modules/word/query/replace.js +304 -0
- package/dist/cjs/modules/word/query/revisions.js +885 -0
- package/dist/cjs/modules/word/query/search.js +361 -0
- package/dist/cjs/modules/word/query/split.js +138 -0
- package/dist/cjs/modules/word/query/style-resolve.js +374 -0
- package/dist/cjs/modules/word/reader/chart-parser.js +814 -0
- package/dist/cjs/modules/word/reader/comments-parser.js +96 -0
- package/dist/cjs/modules/word/reader/doc-props-parsers.js +194 -0
- package/dist/cjs/modules/word/reader/docx-reader.js +2560 -0
- package/dist/cjs/modules/word/reader/drawing-helpers.js +90 -0
- package/dist/cjs/modules/word/reader/form-field-parser.js +85 -0
- package/dist/cjs/modules/word/reader/image-parsers.js +293 -0
- package/dist/cjs/modules/word/reader/math-parser.js +424 -0
- package/dist/cjs/modules/word/reader/metadata-parsers.js +93 -0
- package/dist/cjs/modules/word/reader/numbering-parser.js +168 -0
- package/dist/cjs/modules/word/reader/paragraph-section-parsers.js +505 -0
- package/dist/cjs/modules/word/reader/parse-utils.js +271 -0
- package/dist/cjs/modules/word/reader/properties-parsers.js +338 -0
- package/dist/cjs/modules/word/reader/reader-context.js +66 -0
- package/dist/cjs/modules/word/reader/sdt-helpers.js +114 -0
- package/dist/cjs/modules/word/reader/settings-parser.js +265 -0
- package/dist/cjs/modules/word/reader/styles-parser.js +149 -0
- package/dist/cjs/modules/word/reader/table-properties-parsers.js +237 -0
- package/dist/cjs/modules/word/reader/theme-parser.js +169 -0
- package/dist/cjs/modules/word/reader/watermark-parser.js +113 -0
- package/dist/cjs/modules/word/security/cfb-reader.js +414 -0
- package/dist/cjs/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/cjs/modules/word/security/document-protection.js +208 -0
- package/dist/cjs/modules/word/security/encryption.js +612 -0
- package/dist/cjs/modules/word/security/policy.js +106 -0
- package/dist/cjs/modules/word/template/template-chart.js +170 -0
- package/dist/cjs/modules/word/template/template-datasource.js +549 -0
- package/dist/cjs/modules/word/template/template-engine.js +1430 -0
- package/dist/cjs/modules/word/units.js +44 -14
- package/dist/cjs/modules/word/{writers → writer}/chart-writer.js +163 -22
- package/dist/cjs/modules/word/writer/checkbox-writer.js +82 -0
- package/dist/cjs/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/cjs/modules/word/writer/common-parts.js +104 -0
- package/dist/cjs/modules/word/{content-types.js → writer/content-types.js} +14 -6
- package/dist/cjs/modules/word/writer/document-writer.js +478 -0
- package/dist/cjs/modules/word/writer/docx-packager.js +1551 -0
- package/dist/cjs/modules/word/{writers → writer}/footnote-writer.js +13 -10
- package/dist/cjs/modules/word/{writers → writer}/header-footer-writer.js +38 -20
- package/dist/cjs/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/cjs/modules/word/{writers → writer}/math-writer.js +21 -1
- package/dist/cjs/modules/word/{writers → writer}/numbering-writer.js +11 -4
- package/dist/cjs/modules/word/{writers → writer}/paragraph-writer.js +72 -37
- package/dist/cjs/modules/word/{writers → writer}/parts-writer.js +91 -12
- package/dist/cjs/modules/word/writer/reference-scanners.js +120 -0
- package/dist/cjs/modules/word/writer/relationships.js +124 -0
- package/dist/cjs/modules/word/writer/render-context.js +51 -0
- package/dist/cjs/modules/word/{writers → writer}/run-writer.js +127 -24
- package/dist/cjs/modules/word/writer/sdt-writer.js +192 -0
- package/dist/cjs/modules/word/writer/stream-buf.js +76 -0
- package/dist/cjs/modules/word/writer/streaming-writer.js +1387 -0
- package/dist/cjs/modules/word/writer/string-buf.js +11 -0
- package/dist/cjs/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/cjs/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/cjs/utils/crypto.browser.js +3 -1
- package/dist/cjs/utils/crypto.js +4 -1
- package/dist/cjs/utils/font-metrics.js +303 -0
- package/dist/cjs/utils/string-buf.js +92 -0
- package/dist/cjs/utils/theme-colors.js +126 -0
- package/dist/esm/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/esm/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/esm/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/esm/modules/archive/fs/archive-file.js +78 -16
- package/dist/esm/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/esm/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/esm/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/esm/modules/excel/chart/chart.js +1 -7
- package/dist/esm/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/esm/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/esm/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/esm/modules/excel/utils/string-buf.js +4 -81
- package/dist/esm/modules/excel/workbook.browser.js +135 -25
- package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/esm/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/esm/modules/pdf/excel-bridge.js +32 -0
- package/dist/esm/modules/pdf/font/metrics.js +3 -237
- package/dist/esm/modules/pdf/index.js +1 -1
- package/dist/esm/modules/pdf/render-layout-to-pdf.js +647 -0
- package/dist/esm/modules/pdf/word-bridge.js +122 -274
- package/dist/esm/modules/stream/index.base.js +2 -1
- package/dist/esm/modules/stream/internal/sink-adapter.js +198 -0
- package/dist/esm/modules/stream/pull-stream.js +51 -5
- package/dist/esm/modules/word/advanced/diff.js +167 -0
- package/dist/esm/modules/word/advanced/drawing-shapes.js +268 -0
- package/dist/esm/modules/word/advanced/field-engine.js +1225 -0
- package/dist/esm/modules/word/advanced/glossary.js +79 -0
- package/dist/esm/modules/word/advanced/math-convert.js +595 -0
- package/dist/esm/modules/word/advanced/ole-objects.js +271 -0
- package/dist/esm/modules/word/advanced/style-map.js +322 -0
- package/dist/esm/modules/word/advanced/validation.js +1065 -0
- package/dist/esm/modules/word/advanced/vba-project.js +265 -0
- package/dist/esm/modules/word/bridge/excel-bridge.js +980 -0
- package/dist/esm/modules/word/builder/document-handle.js +664 -0
- package/dist/esm/modules/word/builder/paragraph-builders.js +90 -0
- package/dist/esm/modules/word/builder/run-builders.js +600 -0
- package/dist/esm/modules/word/builder/table-builders.js +45 -0
- package/dist/esm/modules/word/constants.js +109 -1
- package/dist/esm/modules/word/convert/conversion-ir.js +31 -0
- package/dist/esm/modules/word/convert/docx-to-semantic.js +499 -0
- package/dist/esm/modules/word/convert/flat-opc.js +385 -0
- package/dist/esm/modules/word/convert/html/html-import.js +1907 -0
- package/dist/{browser/modules/word → esm/modules/word/convert/html}/html-renderer.js +420 -69
- package/dist/esm/modules/word/convert/html/html.js +15 -0
- package/dist/esm/modules/word/convert/markdown/markdown-import.js +1325 -0
- package/dist/esm/modules/word/convert/markdown/markdown-renderer.js +634 -0
- package/dist/esm/modules/word/convert/markdown/markdown.js +15 -0
- package/dist/esm/modules/word/convert/odt/odt.js +1932 -0
- package/dist/esm/modules/word/core/color-utils.js +43 -0
- package/dist/esm/modules/word/core/internal-utils.js +209 -0
- package/dist/esm/modules/word/core/mapper.js +427 -0
- package/dist/esm/modules/word/core/opc-paths.js +48 -0
- package/dist/esm/modules/word/core/text-utils.js +202 -0
- package/dist/esm/modules/word/core/walker.js +570 -0
- package/dist/esm/modules/word/crypto.js +13 -7
- package/dist/esm/modules/word/document-io.js +80 -197
- package/dist/esm/modules/word/errors.js +54 -2
- package/dist/esm/modules/word/excel.js +13 -0
- package/dist/esm/modules/word/font/font-embed.js +646 -0
- package/dist/{browser/modules/word → esm/modules/word/font}/font-obfuscation.js +4 -9
- package/dist/esm/modules/word/font/hyphenation.js +4210 -0
- package/dist/esm/modules/word/font/text-shaping.js +635 -0
- package/dist/esm/modules/word/html.js +6 -5
- package/dist/esm/modules/word/incremental-edit.js +361 -0
- package/dist/esm/modules/word/index.base.js +138 -29
- package/dist/esm/modules/word/layout/layout-constants.js +17 -0
- package/dist/esm/modules/word/layout/layout-full.js +1696 -0
- package/dist/esm/modules/word/layout/layout-model.js +16 -0
- package/dist/esm/modules/word/layout/layout.js +1167 -0
- package/dist/esm/modules/word/layout/render-page.js +1238 -0
- package/dist/esm/modules/word/markdown.js +13 -0
- package/dist/esm/modules/word/patcher.js +537 -0
- package/dist/esm/modules/word/query/compat.js +58 -0
- package/dist/esm/modules/word/query/data-binding.js +392 -0
- package/dist/esm/modules/word/query/form-fields.js +268 -0
- package/dist/esm/modules/word/query/format-search.js +329 -0
- package/dist/esm/modules/word/query/mail-merge.js +111 -0
- package/dist/esm/modules/word/query/merge.js +617 -0
- package/dist/esm/modules/word/query/replace.js +301 -0
- package/dist/esm/modules/word/query/revisions.js +879 -0
- package/dist/esm/modules/word/query/search.js +346 -0
- package/dist/esm/modules/word/query/split.js +135 -0
- package/dist/esm/modules/word/query/style-resolve.js +368 -0
- package/dist/esm/modules/word/reader/chart-parser.js +810 -0
- package/dist/esm/modules/word/reader/comments-parser.js +92 -0
- package/dist/esm/modules/word/reader/doc-props-parsers.js +190 -0
- package/dist/esm/modules/word/reader/docx-reader.js +2557 -0
- package/dist/esm/modules/word/reader/drawing-helpers.js +84 -0
- package/dist/esm/modules/word/reader/form-field-parser.js +82 -0
- package/dist/esm/modules/word/reader/image-parsers.js +291 -0
- package/dist/esm/modules/word/reader/math-parser.js +422 -0
- package/dist/esm/modules/word/reader/metadata-parsers.js +87 -0
- package/dist/esm/modules/word/reader/numbering-parser.js +166 -0
- package/dist/esm/modules/word/reader/paragraph-section-parsers.js +503 -0
- package/dist/esm/modules/word/reader/parse-utils.js +249 -0
- package/dist/esm/modules/word/reader/properties-parsers.js +332 -0
- package/dist/esm/modules/word/reader/reader-context.js +61 -0
- package/dist/esm/modules/word/reader/sdt-helpers.js +111 -0
- package/dist/esm/modules/word/reader/settings-parser.js +263 -0
- package/dist/esm/modules/word/reader/styles-parser.js +147 -0
- package/dist/esm/modules/word/reader/table-properties-parsers.js +234 -0
- package/dist/esm/modules/word/reader/theme-parser.js +167 -0
- package/dist/esm/modules/word/reader/watermark-parser.js +110 -0
- package/dist/esm/modules/word/security/cfb-reader.js +410 -0
- package/dist/esm/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/esm/modules/word/security/document-protection.js +201 -0
- package/dist/esm/modules/word/security/encryption.js +602 -0
- package/dist/esm/modules/word/security/policy.js +102 -0
- package/dist/esm/modules/word/template/template-chart.js +167 -0
- package/dist/esm/modules/word/template/template-datasource.js +541 -0
- package/dist/esm/modules/word/template/template-engine.js +1435 -0
- package/dist/esm/modules/word/units.js +43 -14
- package/dist/esm/modules/word/{writers → writer}/chart-writer.js +164 -23
- package/dist/esm/modules/word/writer/checkbox-writer.js +79 -0
- package/dist/esm/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/esm/modules/word/writer/common-parts.js +101 -0
- package/dist/{browser/modules/word → esm/modules/word/writer}/content-types.js +14 -6
- package/dist/esm/modules/word/writer/document-writer.js +473 -0
- package/dist/esm/modules/word/writer/docx-packager.js +1515 -0
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/footnote-writer.js +13 -10
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/header-footer-writer.js +39 -21
- package/dist/esm/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/math-writer.js +21 -1
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/numbering-writer.js +11 -4
- package/dist/esm/modules/word/{writers → writer}/paragraph-writer.js +73 -38
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/parts-writer.js +91 -12
- package/dist/esm/modules/word/writer/reference-scanners.js +111 -0
- package/dist/esm/modules/word/writer/relationships.js +117 -0
- package/dist/esm/modules/word/writer/render-context.js +46 -0
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/run-writer.js +126 -24
- package/dist/esm/modules/word/writer/sdt-writer.js +189 -0
- package/dist/esm/modules/word/writer/stream-buf.js +73 -0
- package/dist/esm/modules/word/writer/streaming-writer.js +1382 -0
- package/dist/esm/modules/word/writer/string-buf.js +7 -0
- package/dist/esm/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/esm/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/esm/utils/crypto.browser.js +3 -1
- package/dist/esm/utils/crypto.js +4 -1
- package/dist/esm/utils/font-metrics.js +293 -0
- package/dist/esm/utils/string-buf.js +89 -0
- package/dist/esm/utils/theme-colors.js +120 -0
- package/dist/iife/excelts.iife.js +70692 -70337
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +57 -57
- package/dist/types/modules/archive/fs/archive-file.d.ts +8 -5
- package/dist/types/modules/excel/chart/chart-ex-types.d.ts +0 -12
- package/dist/types/modules/excel/chart/chart.d.ts +1 -5
- package/dist/types/modules/excel/chart/types.d.ts +0 -6
- package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
- package/dist/types/modules/excel/utils/string-buf.d.ts +5 -26
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
- package/dist/types/modules/excel/xlsx/xlsx.d.ts +10 -2
- package/dist/types/modules/pdf/excel-bridge.d.ts +30 -1
- package/dist/types/modules/pdf/font/metrics.d.ts +3 -52
- package/dist/types/modules/pdf/index.d.ts +1 -1
- package/dist/types/modules/pdf/render-layout-to-pdf.d.ts +66 -0
- package/dist/types/modules/pdf/word-bridge.d.ts +80 -12
- package/dist/types/modules/stream/index.base.d.ts +2 -0
- package/dist/types/modules/stream/internal/sink-adapter.d.ts +65 -0
- package/dist/types/modules/stream/pull-stream.d.ts +19 -2
- package/dist/types/modules/stream/types.d.ts +13 -1
- package/dist/types/modules/word/advanced/diff.d.ts +61 -0
- package/dist/types/modules/word/advanced/drawing-shapes.d.ts +269 -0
- package/dist/types/modules/word/advanced/field-engine.d.ts +43 -0
- package/dist/types/modules/word/advanced/glossary.d.ts +86 -0
- package/dist/types/modules/word/advanced/math-convert.d.ts +30 -0
- package/dist/types/modules/word/advanced/ole-objects.d.ts +115 -0
- package/dist/types/modules/word/advanced/style-map.d.ts +105 -0
- package/dist/types/modules/word/advanced/validation.d.ts +56 -0
- package/dist/types/modules/word/advanced/vba-project.d.ts +91 -0
- package/dist/types/modules/word/bridge/excel-bridge.d.ts +127 -0
- package/dist/types/modules/word/builder/document-handle.d.ts +151 -0
- package/dist/types/modules/word/builder/paragraph-builders.d.ts +61 -0
- package/dist/types/modules/word/builder/run-builders.d.ts +374 -0
- package/dist/types/modules/word/builder/table-builders.d.ts +23 -0
- package/dist/types/modules/word/constants.d.ts +39 -1
- package/dist/types/modules/word/convert/conversion-ir.d.ts +210 -0
- package/dist/types/modules/word/convert/docx-to-semantic.d.ts +39 -0
- package/dist/types/modules/word/convert/flat-opc.d.ts +44 -0
- package/dist/types/modules/word/convert/html/html-import.d.ts +50 -0
- package/dist/{browser/modules/word → types/modules/word/convert/html}/html-renderer.d.ts +14 -1
- package/dist/types/modules/word/convert/html/html.d.ts +15 -0
- package/dist/types/modules/word/convert/markdown/markdown-import.d.ts +68 -0
- package/dist/types/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
- package/dist/types/modules/word/convert/markdown/markdown.d.ts +15 -0
- package/dist/types/modules/word/convert/odt/odt.d.ts +41 -0
- package/dist/types/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
- package/dist/types/modules/word/core/internal-utils.d.ts +90 -0
- package/dist/types/modules/word/core/mapper.d.ts +44 -0
- package/dist/types/modules/word/core/opc-paths.d.ts +33 -0
- package/dist/types/modules/word/core/text-utils.d.ts +38 -0
- package/dist/types/modules/word/core/walker.d.ts +119 -0
- package/dist/types/modules/word/crypto.d.ts +14 -9
- package/dist/types/modules/word/document-io.d.ts +59 -27
- package/dist/types/modules/word/errors.d.ts +44 -1
- package/dist/types/modules/word/excel.d.ts +14 -0
- package/dist/types/modules/word/font/font-embed.d.ts +112 -0
- package/dist/types/modules/word/font/hyphenation.d.ts +65 -0
- package/dist/types/modules/word/font/text-shaping.d.ts +58 -0
- package/dist/types/modules/word/html.d.ts +7 -6
- package/dist/types/modules/word/incremental-edit.d.ts +123 -0
- package/dist/types/modules/word/index.base.d.ts +194 -10
- package/dist/types/modules/word/layout/layout-constants.d.ts +17 -0
- package/dist/types/modules/word/layout/layout-full.d.ts +53 -0
- package/dist/types/modules/word/layout/layout-model.d.ts +344 -0
- package/dist/types/modules/word/layout/layout.d.ts +63 -0
- package/dist/types/modules/word/layout/render-page.d.ts +57 -0
- package/dist/types/modules/word/markdown.d.ts +14 -0
- package/dist/types/modules/word/patcher.d.ts +62 -0
- package/dist/types/modules/word/query/compat.d.ts +25 -0
- package/dist/types/modules/word/query/data-binding.d.ts +22 -0
- package/dist/types/modules/word/query/form-fields.d.ts +41 -0
- package/dist/types/modules/word/query/format-search.d.ts +99 -0
- package/dist/types/modules/word/query/mail-merge.d.ts +25 -0
- package/dist/types/modules/word/query/merge.d.ts +50 -0
- package/dist/types/modules/word/query/replace.d.ts +47 -0
- package/dist/types/modules/word/query/revisions.d.ts +67 -0
- package/dist/types/modules/word/query/search.d.ts +129 -0
- package/dist/types/modules/word/query/split.d.ts +44 -0
- package/dist/types/modules/word/query/style-resolve.d.ts +104 -0
- package/dist/types/modules/word/reader/chart-parser.d.ts +20 -0
- package/dist/types/modules/word/reader/comments-parser.d.ts +26 -0
- package/dist/types/modules/word/reader/doc-props-parsers.d.ts +15 -0
- package/dist/types/modules/word/reader/docx-reader.d.ts +27 -0
- package/dist/types/modules/word/reader/drawing-helpers.d.ts +27 -0
- package/dist/types/modules/word/reader/form-field-parser.d.ts +21 -0
- package/dist/types/modules/word/reader/image-parsers.d.ts +11 -0
- package/dist/types/modules/word/reader/math-parser.d.ts +12 -0
- package/dist/types/modules/word/reader/metadata-parsers.d.ts +17 -0
- package/dist/types/modules/word/reader/numbering-parser.d.ts +13 -0
- package/dist/types/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
- package/dist/types/modules/word/reader/parse-utils.d.ts +91 -0
- package/dist/types/modules/word/reader/properties-parsers.d.ts +21 -0
- package/dist/types/modules/word/reader/reader-context.d.ts +69 -0
- package/dist/types/modules/word/reader/sdt-helpers.d.ts +29 -0
- package/dist/types/modules/word/reader/settings-parser.d.ts +8 -0
- package/dist/types/modules/word/reader/styles-parser.d.ts +12 -0
- package/dist/types/modules/word/reader/table-properties-parsers.d.ts +12 -0
- package/dist/types/modules/word/reader/theme-parser.d.ts +8 -0
- package/dist/types/modules/word/reader/watermark-parser.d.ts +15 -0
- package/dist/types/modules/word/security/cfb-reader.d.ts +37 -0
- package/dist/types/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
- package/dist/types/modules/word/security/document-protection.d.ts +93 -0
- package/dist/{browser/modules/word → types/modules/word/security}/encryption.d.ts +51 -4
- package/dist/types/modules/word/security/policy.d.ts +80 -0
- package/dist/types/modules/word/template/template-chart.d.ts +56 -0
- package/dist/types/modules/word/template/template-datasource.d.ts +154 -0
- package/dist/types/modules/word/template/template-engine.d.ts +121 -0
- package/dist/types/modules/word/types.d.ts +224 -25
- package/dist/types/modules/word/units.d.ts +26 -0
- package/dist/types/modules/word/writer/checkbox-writer.d.ts +17 -0
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/comment-writer.d.ts +2 -1
- package/dist/types/modules/word/writer/common-parts.d.ts +57 -0
- package/dist/{browser/modules/word → types/modules/word/writer}/content-types.d.ts +2 -2
- package/dist/types/modules/word/writer/document-writer.d.ts +24 -0
- package/dist/types/modules/word/writer/docx-packager.d.ts +35 -0
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/footnote-writer.d.ts +3 -2
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/header-footer-writer.d.ts +3 -2
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/image-writer.d.ts +1 -1
- package/dist/types/modules/word/writer/math-writer.d.ts +20 -0
- package/dist/types/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
- package/dist/types/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
- package/dist/types/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
- package/dist/types/modules/word/writer/reference-scanners.d.ts +42 -0
- package/dist/types/modules/word/writer/relationships.d.ts +52 -0
- package/dist/types/modules/word/writer/render-context.d.ts +124 -0
- package/dist/types/modules/word/{writers → writer}/run-writer.d.ts +10 -1
- package/dist/types/modules/word/writer/sdt-writer.d.ts +25 -0
- package/dist/types/modules/word/writer/stream-buf.d.ts +37 -0
- package/dist/types/modules/word/writer/streaming-writer.d.ts +344 -0
- package/dist/types/modules/word/writer/string-buf.d.ts +8 -0
- package/dist/types/modules/word/{writers → writer}/table-writer.d.ts +2 -1
- package/dist/types/modules/xml/types.d.ts +22 -0
- package/dist/types/utils/crypto.browser.d.ts +3 -1
- package/dist/types/utils/crypto.d.ts +4 -1
- package/dist/types/utils/font-metrics.d.ts +63 -0
- package/dist/types/utils/string-buf.d.ts +42 -0
- package/dist/types/utils/theme-colors.d.ts +55 -0
- package/package.json +121 -39
- package/dist/browser/modules/word/color-utils.js +0 -94
- package/dist/browser/modules/word/document.d.ts +0 -657
- package/dist/browser/modules/word/document.js +0 -1533
- package/dist/browser/modules/word/docx-packager.d.ts +0 -14
- package/dist/browser/modules/word/docx-packager.js +0 -822
- package/dist/browser/modules/word/docx-reader.d.ts +0 -11
- package/dist/browser/modules/word/docx-reader.js +0 -4929
- package/dist/browser/modules/word/encryption.js +0 -274
- package/dist/browser/modules/word/internal-utils.d.ts +0 -23
- package/dist/browser/modules/word/internal-utils.js +0 -54
- package/dist/browser/modules/word/namespaces.d.ts +0 -159
- package/dist/browser/modules/word/namespaces.js +0 -189
- package/dist/browser/modules/word/relationships.d.ts +0 -30
- package/dist/browser/modules/word/relationships.js +0 -48
- package/dist/browser/modules/word/writers/checkbox-writer.d.ts +0 -9
- package/dist/browser/modules/word/writers/checkbox-writer.js +0 -42
- package/dist/browser/modules/word/writers/document-writer.d.ts +0 -16
- package/dist/browser/modules/word/writers/document-writer.js +0 -461
- package/dist/browser/modules/word/writers/math-writer.d.ts +0 -9
- package/dist/cjs/modules/word/color-utils.js +0 -97
- package/dist/cjs/modules/word/document.js +0 -1645
- package/dist/cjs/modules/word/docx-packager.js +0 -825
- package/dist/cjs/modules/word/docx-reader.js +0 -4932
- package/dist/cjs/modules/word/encryption.js +0 -282
- package/dist/cjs/modules/word/internal-utils.js +0 -59
- package/dist/cjs/modules/word/namespaces.js +0 -192
- package/dist/cjs/modules/word/relationships.js +0 -55
- package/dist/cjs/modules/word/writers/checkbox-writer.js +0 -45
- package/dist/cjs/modules/word/writers/document-writer.js +0 -465
- package/dist/esm/modules/word/color-utils.js +0 -94
- package/dist/esm/modules/word/document.js +0 -1533
- package/dist/esm/modules/word/docx-packager.js +0 -822
- package/dist/esm/modules/word/docx-reader.js +0 -4929
- package/dist/esm/modules/word/encryption.js +0 -274
- package/dist/esm/modules/word/internal-utils.js +0 -54
- package/dist/esm/modules/word/namespaces.js +0 -189
- package/dist/esm/modules/word/relationships.js +0 -48
- package/dist/esm/modules/word/writers/checkbox-writer.js +0 -42
- package/dist/esm/modules/word/writers/document-writer.js +0 -461
- package/dist/types/modules/word/document.d.ts +0 -657
- package/dist/types/modules/word/docx-packager.d.ts +0 -14
- package/dist/types/modules/word/docx-reader.d.ts +0 -11
- package/dist/types/modules/word/internal-utils.d.ts +0 -23
- package/dist/types/modules/word/namespaces.d.ts +0 -159
- package/dist/types/modules/word/relationships.d.ts +0 -30
- package/dist/types/modules/word/writers/checkbox-writer.d.ts +0 -9
- package/dist/types/modules/word/writers/document-writer.d.ts +0 -16
- package/dist/types/modules/word/writers/math-writer.d.ts +0 -9
- /package/dist/browser/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
- /package/dist/browser/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/section-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/browser/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/browser/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/types/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
- /package/dist/types/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/section-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DOCX Module - HTML
|
|
2
|
+
* DOCX Module - HTML Converters (Subpath Entry)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Re-exports the HTML converter API at `excelts/word/html`. This file is
|
|
5
|
+
* referenced by `package.json#exports["./word/html"]`; it forwards to the
|
|
6
|
+
* implementation under `./convert/html`.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```ts
|
|
9
|
-
* import { renderToHtml } from "excelts/word/html";
|
|
10
|
+
* import { renderToHtml, htmlToDocxBody } from "excelts/word/html";
|
|
10
11
|
* ```
|
|
11
12
|
*/
|
|
12
|
-
export { renderToHtml } from "./html
|
|
13
|
-
export type { HtmlRenderOptions, HtmlRenderResult } from "./html
|
|
13
|
+
export { renderToHtml, htmlToDocxBody } from "./convert/html/html.js";
|
|
14
|
+
export type { HtmlRenderOptions, HtmlRenderResult, HtmlImportOptions } from "./convert/html/html.js";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DOCX Module - HTML
|
|
2
|
+
* DOCX Module - HTML Converters (Subpath Entry)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Re-exports the HTML converter API at `excelts/word/html`. This file is
|
|
5
|
+
* referenced by `package.json#exports["./word/html"]`; it forwards to the
|
|
6
|
+
* implementation under `./convert/html`.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```ts
|
|
9
|
-
* import { renderToHtml } from "excelts/word/html";
|
|
10
|
+
* import { renderToHtml, htmlToDocxBody } from "excelts/word/html";
|
|
10
11
|
* ```
|
|
11
12
|
*/
|
|
12
|
-
export { renderToHtml } from "./html
|
|
13
|
+
export { renderToHtml, htmlToDocxBody } from "./convert/html/html.js";
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Incremental Edit API
|
|
3
|
+
*
|
|
4
|
+
* Supports efficient "open → modify → save" workflows by editing a DOCX
|
|
5
|
+
* file at the ZIP entry level.
|
|
6
|
+
*
|
|
7
|
+
* Use cases:
|
|
8
|
+
* - Replace just the document.xml in an existing template
|
|
9
|
+
* - Update headers/footers without touching styles or images
|
|
10
|
+
* - Patch specific parts (e.g. core properties metadata)
|
|
11
|
+
*
|
|
12
|
+
* **Limitations and caveats — read before using `replacePart`/`deletePart`:**
|
|
13
|
+
*
|
|
14
|
+
* This API is a thin wrapper around ZIP entry mutation. It deliberately
|
|
15
|
+
* does not understand DOCX semantics:
|
|
16
|
+
*
|
|
17
|
+
* - `[Content_Types].xml` is **not** updated when you add a new part with
|
|
18
|
+
* a previously-unseen content type. If your replacement part introduces
|
|
19
|
+
* a new MIME type, callers must also patch `[Content_Types].xml` (or
|
|
20
|
+
* round-trip through `readDocx` + `packageDocx` instead).
|
|
21
|
+
* - Relationship files (`*.rels`) are **not** rebuilt. Adding or deleting
|
|
22
|
+
* a part with relationships will leave the corresponding `_rels/*.rels`
|
|
23
|
+
* stale.
|
|
24
|
+
* - `replaceBody`, `replaceHeader`, `replaceFooter` only rewrite their
|
|
25
|
+
* target XML part; they do **not** modify the corresponding `.rels` file
|
|
26
|
+
* or copy in new media binaries. As a result they reject content that
|
|
27
|
+
* would introduce new relationship IDs (images, hyperlinks, charts,
|
|
28
|
+
* altChunks, opaque drawings carrying rIds) — use `patchDocument` /
|
|
29
|
+
* `packageDocx` for those cases. Existing references that survive
|
|
30
|
+
* unchanged are fine because their `.rels` entries already exist.
|
|
31
|
+
*
|
|
32
|
+
* For DOCX-aware edits (changes that may add/remove relationships or
|
|
33
|
+
* content types) use `patchDocument` or `compileTemplate`, or round-trip
|
|
34
|
+
* through `readDocx` + `packageDocx`.
|
|
35
|
+
*
|
|
36
|
+
* Note: This API operates on raw ZIP entries; it does not parse the DOCX
|
|
37
|
+
* model. For higher-level edits use `patchDocument` or `compileTemplate`.
|
|
38
|
+
*/
|
|
39
|
+
import type { BodyContent, Paragraph, Table } from "./types.js";
|
|
40
|
+
/** A single incremental edit operation. */
|
|
41
|
+
export type IncrementalEdit = {
|
|
42
|
+
/**
|
|
43
|
+
* Replace a specific part by raw bytes.
|
|
44
|
+
*
|
|
45
|
+
* Caveat: does not update `[Content_Types].xml` or any `.rels` file.
|
|
46
|
+
* Adding a part with a new content type or new relationships will
|
|
47
|
+
* produce a malformed package. See the file header for details.
|
|
48
|
+
*/
|
|
49
|
+
readonly type: "replacePart";
|
|
50
|
+
readonly path: string;
|
|
51
|
+
readonly data: Uint8Array;
|
|
52
|
+
} | {
|
|
53
|
+
/** Replace a part with a string (UTF-8 encoded). Same caveats as `replacePart`. */
|
|
54
|
+
readonly type: "replacePartText";
|
|
55
|
+
readonly path: string;
|
|
56
|
+
readonly text: string;
|
|
57
|
+
} | {
|
|
58
|
+
/**
|
|
59
|
+
* Delete a specific part.
|
|
60
|
+
*
|
|
61
|
+
* Caveat: does not update `[Content_Types].xml` or any `.rels` file.
|
|
62
|
+
* Deleting a part that other parts reference (via rels or other XML)
|
|
63
|
+
* will leave dangling references — round-trip through readDocx +
|
|
64
|
+
* packageDocx if you need a consistent package.
|
|
65
|
+
*/
|
|
66
|
+
readonly type: "deletePart";
|
|
67
|
+
readonly path: string;
|
|
68
|
+
} | {
|
|
69
|
+
/** Replace the body content of `word/document.xml`. */
|
|
70
|
+
readonly type: "replaceBody";
|
|
71
|
+
readonly body: readonly BodyContent[];
|
|
72
|
+
} | {
|
|
73
|
+
/** Replace a header part identified by path (e.g. `word/header1.xml`). */
|
|
74
|
+
readonly type: "replaceHeader";
|
|
75
|
+
readonly path: string;
|
|
76
|
+
readonly children: readonly (Paragraph | Table)[];
|
|
77
|
+
} | {
|
|
78
|
+
/** Replace a footer part identified by path (e.g. `word/footer1.xml`). */
|
|
79
|
+
readonly type: "replaceFooter";
|
|
80
|
+
readonly path: string;
|
|
81
|
+
readonly children: readonly (Paragraph | Table)[];
|
|
82
|
+
};
|
|
83
|
+
/** Options for incremental editing. */
|
|
84
|
+
export interface IncrementalEditOptions {
|
|
85
|
+
/** Compression level for replaced entries (0-9). Default: 6. */
|
|
86
|
+
readonly compressionLevel?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Apply incremental edits to an existing DOCX file.
|
|
90
|
+
*
|
|
91
|
+
* Reads all parts from the original ZIP, applies the edits, and writes a
|
|
92
|
+
* new ZIP. Unchanged parts are passed through (decompressed and recompressed,
|
|
93
|
+
* but their content is not parsed).
|
|
94
|
+
*
|
|
95
|
+
* @param buffer - The original DOCX file as a Uint8Array.
|
|
96
|
+
* @param edits - Array of incremental edits to apply.
|
|
97
|
+
* @param options - Optional settings.
|
|
98
|
+
* @returns A new DOCX file as a Uint8Array.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* const original = await fs.readFile("template.docx");
|
|
103
|
+
* const edited = await editDocxIncremental(original, [
|
|
104
|
+
* { type: "replaceBody", body: [...newParagraphs] }
|
|
105
|
+
* ]);
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export declare function editDocxIncremental(buffer: Uint8Array, edits: readonly IncrementalEdit[], options?: IncrementalEditOptions): Promise<Uint8Array>;
|
|
109
|
+
/**
|
|
110
|
+
* List all part paths in a DOCX file without parsing the model.
|
|
111
|
+
*
|
|
112
|
+
* @param buffer - The DOCX file as a Uint8Array.
|
|
113
|
+
* @returns Array of part paths.
|
|
114
|
+
*/
|
|
115
|
+
export declare function listDocxParts(buffer: Uint8Array): Promise<string[]>;
|
|
116
|
+
/**
|
|
117
|
+
* Read a single part's raw bytes from a DOCX file.
|
|
118
|
+
*
|
|
119
|
+
* @param buffer - The DOCX file as a Uint8Array.
|
|
120
|
+
* @param path - The part path (e.g. `"word/document.xml"`).
|
|
121
|
+
* @returns The part's raw bytes, or undefined if the part doesn't exist.
|
|
122
|
+
*/
|
|
123
|
+
export declare function readDocxPart(buffer: Uint8Array, path: string): Promise<Uint8Array | undefined>;
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Incremental Edit API
|
|
3
|
+
*
|
|
4
|
+
* Supports efficient "open → modify → save" workflows by editing a DOCX
|
|
5
|
+
* file at the ZIP entry level.
|
|
6
|
+
*
|
|
7
|
+
* Use cases:
|
|
8
|
+
* - Replace just the document.xml in an existing template
|
|
9
|
+
* - Update headers/footers without touching styles or images
|
|
10
|
+
* - Patch specific parts (e.g. core properties metadata)
|
|
11
|
+
*
|
|
12
|
+
* **Limitations and caveats — read before using `replacePart`/`deletePart`:**
|
|
13
|
+
*
|
|
14
|
+
* This API is a thin wrapper around ZIP entry mutation. It deliberately
|
|
15
|
+
* does not understand DOCX semantics:
|
|
16
|
+
*
|
|
17
|
+
* - `[Content_Types].xml` is **not** updated when you add a new part with
|
|
18
|
+
* a previously-unseen content type. If your replacement part introduces
|
|
19
|
+
* a new MIME type, callers must also patch `[Content_Types].xml` (or
|
|
20
|
+
* round-trip through `readDocx` + `packageDocx` instead).
|
|
21
|
+
* - Relationship files (`*.rels`) are **not** rebuilt. Adding or deleting
|
|
22
|
+
* a part with relationships will leave the corresponding `_rels/*.rels`
|
|
23
|
+
* stale.
|
|
24
|
+
* - `replaceBody`, `replaceHeader`, `replaceFooter` only rewrite their
|
|
25
|
+
* target XML part; they do **not** modify the corresponding `.rels` file
|
|
26
|
+
* or copy in new media binaries. As a result they reject content that
|
|
27
|
+
* would introduce new relationship IDs (images, hyperlinks, charts,
|
|
28
|
+
* altChunks, opaque drawings carrying rIds) — use `patchDocument` /
|
|
29
|
+
* `packageDocx` for those cases. Existing references that survive
|
|
30
|
+
* unchanged are fine because their `.rels` entries already exist.
|
|
31
|
+
*
|
|
32
|
+
* For DOCX-aware edits (changes that may add/remove relationships or
|
|
33
|
+
* content types) use `patchDocument` or `compileTemplate`, or round-trip
|
|
34
|
+
* through `readDocx` + `packageDocx`.
|
|
35
|
+
*
|
|
36
|
+
* Note: This API operates on raw ZIP entries; it does not parse the DOCX
|
|
37
|
+
* model. For higher-level edits use `patchDocument` or `compileTemplate`.
|
|
38
|
+
*/
|
|
39
|
+
import { zip } from "../archive/create-archive.js";
|
|
40
|
+
import { unzip } from "../archive/read-archive.js";
|
|
41
|
+
import { XmlWriter } from "../xml/writer.js";
|
|
42
|
+
import { PartPath } from "./constants.js";
|
|
43
|
+
import { utf8Decoder, utf8Encoder } from "./core/internal-utils.js";
|
|
44
|
+
import { walkBlocks } from "./core/walker.js";
|
|
45
|
+
import { DocxUnsupportedFeatureError } from "./errors.js";
|
|
46
|
+
import { renderBodyContent, renderDocument } from "./writer/document-writer.js";
|
|
47
|
+
import { renderHeader, renderFooter } from "./writer/header-footer-writer.js";
|
|
48
|
+
import { createRenderContext } from "./writer/render-context.js";
|
|
49
|
+
/**
|
|
50
|
+
* Apply incremental edits to an existing DOCX file.
|
|
51
|
+
*
|
|
52
|
+
* Reads all parts from the original ZIP, applies the edits, and writes a
|
|
53
|
+
* new ZIP. Unchanged parts are passed through (decompressed and recompressed,
|
|
54
|
+
* but their content is not parsed).
|
|
55
|
+
*
|
|
56
|
+
* @param buffer - The original DOCX file as a Uint8Array.
|
|
57
|
+
* @param edits - Array of incremental edits to apply.
|
|
58
|
+
* @param options - Optional settings.
|
|
59
|
+
* @returns A new DOCX file as a Uint8Array.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* const original = await fs.readFile("template.docx");
|
|
64
|
+
* const edited = await editDocxIncremental(original, [
|
|
65
|
+
* { type: "replaceBody", body: [...newParagraphs] }
|
|
66
|
+
* ]);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export async function editDocxIncremental(buffer, edits, options) {
|
|
70
|
+
// Read all entries from the original ZIP. Some third-party ZIP writers emit
|
|
71
|
+
// entry paths with a leading "/" — strip it so lookups by canonical path
|
|
72
|
+
// (e.g. "word/document.xml") match consistently with the rest of the
|
|
73
|
+
// codebase (see readDocxPart below).
|
|
74
|
+
const reader = unzip(buffer);
|
|
75
|
+
const parts = new Map();
|
|
76
|
+
for await (const entry of reader.entries()) {
|
|
77
|
+
const normalizedPath = entry.path.replace(/^\/+/, "");
|
|
78
|
+
parts.set(normalizedPath, await entry.bytes());
|
|
79
|
+
}
|
|
80
|
+
// Apply edits
|
|
81
|
+
for (const edit of edits) {
|
|
82
|
+
switch (edit.type) {
|
|
83
|
+
case "replacePart":
|
|
84
|
+
parts.set(edit.path.replace(/^\/+/, ""), edit.data);
|
|
85
|
+
break;
|
|
86
|
+
case "replacePartText":
|
|
87
|
+
parts.set(edit.path.replace(/^\/+/, ""), utf8Encoder.encode(edit.text));
|
|
88
|
+
break;
|
|
89
|
+
case "deletePart":
|
|
90
|
+
parts.delete(edit.path.replace(/^\/+/, ""));
|
|
91
|
+
break;
|
|
92
|
+
case "replaceBody": {
|
|
93
|
+
// Preserve the original document's section properties, background,
|
|
94
|
+
// and document-level wrappers — only swap the children inside w:body.
|
|
95
|
+
// Reject new external references for the same reason as
|
|
96
|
+
// replaceHeader/Footer: this editor doesn't rewrite document.xml.rels.
|
|
97
|
+
assertNoExternalReferences(edit.body, "body");
|
|
98
|
+
const original = parts.get(PartPath.Document);
|
|
99
|
+
parts.set(PartPath.Document, original
|
|
100
|
+
? replaceBodyChildrenInDocumentXml(original, edit.body)
|
|
101
|
+
: renderBodyOnly(edit.body));
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
case "replaceHeader":
|
|
105
|
+
parts.set(edit.path.replace(/^\/+/, ""), renderHeaderFooter("header", edit.children));
|
|
106
|
+
break;
|
|
107
|
+
case "replaceFooter":
|
|
108
|
+
parts.set(edit.path.replace(/^\/+/, ""), renderHeaderFooter("footer", edit.children));
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Write back to a new ZIP
|
|
113
|
+
const archive = zip({ level: options?.compressionLevel ?? 6 });
|
|
114
|
+
for (const [path, data] of parts) {
|
|
115
|
+
archive.add(path, data);
|
|
116
|
+
}
|
|
117
|
+
return archive.bytes();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* List all part paths in a DOCX file without parsing the model.
|
|
121
|
+
*
|
|
122
|
+
* @param buffer - The DOCX file as a Uint8Array.
|
|
123
|
+
* @returns Array of part paths.
|
|
124
|
+
*/
|
|
125
|
+
export async function listDocxParts(buffer) {
|
|
126
|
+
const reader = unzip(buffer);
|
|
127
|
+
const paths = [];
|
|
128
|
+
for await (const entry of reader.entries()) {
|
|
129
|
+
paths.push(entry.path);
|
|
130
|
+
}
|
|
131
|
+
return paths;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Read a single part's raw bytes from a DOCX file.
|
|
135
|
+
*
|
|
136
|
+
* @param buffer - The DOCX file as a Uint8Array.
|
|
137
|
+
* @param path - The part path (e.g. `"word/document.xml"`).
|
|
138
|
+
* @returns The part's raw bytes, or undefined if the part doesn't exist.
|
|
139
|
+
*/
|
|
140
|
+
export async function readDocxPart(buffer, path) {
|
|
141
|
+
const reader = unzip(buffer);
|
|
142
|
+
for await (const entry of reader.entries()) {
|
|
143
|
+
const normalizedPath = entry.path.replace(/^\//, "");
|
|
144
|
+
if (normalizedPath === path) {
|
|
145
|
+
return entry.bytes();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
// =============================================================================
|
|
151
|
+
// Internal helpers
|
|
152
|
+
// =============================================================================
|
|
153
|
+
function renderBodyOnly(body) {
|
|
154
|
+
const minimalDoc = { body };
|
|
155
|
+
const ctx = createRenderContext();
|
|
156
|
+
const xml = new XmlWriter();
|
|
157
|
+
renderDocument(xml, minimalDoc, ctx);
|
|
158
|
+
return utf8Encoder.encode(xml.toString());
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Replace the children inside `<w:body>...</w:body>` of an existing
|
|
162
|
+
* document.xml, preserving the original section properties (the trailing
|
|
163
|
+
* `w:sectPr` directly under w:body), the document background, and any other
|
|
164
|
+
* document-level structure (namespace declarations, custom attributes, etc.).
|
|
165
|
+
*
|
|
166
|
+
* If the document doesn't contain a parseable `<w:body>` block we fall back
|
|
167
|
+
* to a minimal render so callers still get a valid DOCX (this matches the
|
|
168
|
+
* legacy behavior of `replaceBody`).
|
|
169
|
+
*/
|
|
170
|
+
function replaceBodyChildrenInDocumentXml(original, body) {
|
|
171
|
+
const text = utf8Decoder.decode(original);
|
|
172
|
+
// Locate <w:body...> opening tag and the matching </w:body>. We must
|
|
173
|
+
// ignore any literal "<w:body" or "</w:body>" sitting inside an XML
|
|
174
|
+
// comment, CDATA section, or processing instruction — those are common
|
|
175
|
+
// in author-edited documents and confused the previous purely-regex
|
|
176
|
+
// scan.
|
|
177
|
+
const range = findBodyTagRange(text);
|
|
178
|
+
if (!range) {
|
|
179
|
+
return renderBodyOnly(body);
|
|
180
|
+
}
|
|
181
|
+
const { bodyStart, bodyCloseIdx } = range;
|
|
182
|
+
const innerBody = text.slice(bodyStart, bodyCloseIdx);
|
|
183
|
+
// Preserve the trailing <w:sectPr ...>...</w:sectPr> if present. Section
|
|
184
|
+
// properties at this level apply to the whole document and would otherwise
|
|
185
|
+
// be lost.
|
|
186
|
+
let trailingSectPr = "";
|
|
187
|
+
const sectPrMatch = /<w:sectPr(?:\s[^>]*)?>[\s\S]*?<\/w:sectPr>\s*$|<w:sectPr(?:\s[^>]*)?\/>\s*$/.exec(innerBody);
|
|
188
|
+
if (sectPrMatch) {
|
|
189
|
+
trailingSectPr = sectPrMatch[0].trimEnd();
|
|
190
|
+
}
|
|
191
|
+
// Render new body children (no document/body wrappers, no sectPr — we add
|
|
192
|
+
// back the preserved one ourselves).
|
|
193
|
+
const ctx = createRenderContext();
|
|
194
|
+
const xml = new XmlWriter();
|
|
195
|
+
for (const block of body) {
|
|
196
|
+
renderBodyContent(xml, block, ctx);
|
|
197
|
+
}
|
|
198
|
+
const newInner = xml.toString() + trailingSectPr;
|
|
199
|
+
const updated = text.slice(0, bodyStart) + newInner + text.slice(bodyCloseIdx);
|
|
200
|
+
return utf8Encoder.encode(updated);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Locate the inner-text range of `<w:body>...</w:body>`, ignoring any
|
|
204
|
+
* occurrence of the literal tag inside XML comments (`<!-- ... -->`),
|
|
205
|
+
* CDATA sections (`<![CDATA[ ... ]]>`), or processing instructions
|
|
206
|
+
* (`<?...?>`). Returns the offsets of the first byte after the body open
|
|
207
|
+
* tag and the first byte of the body close tag, or `undefined` if either
|
|
208
|
+
* tag was not found.
|
|
209
|
+
*
|
|
210
|
+
* The scanner is a tiny linear pass — no lexer, no DOM. It only knows
|
|
211
|
+
* about the three "skip these contents" sections that can legitimately
|
|
212
|
+
* contain `<` and `>` characters.
|
|
213
|
+
*/
|
|
214
|
+
function findBodyTagRange(text) {
|
|
215
|
+
let bodyStart = -1;
|
|
216
|
+
let bodyCloseIdx = -1;
|
|
217
|
+
let i = 0;
|
|
218
|
+
while (i < text.length) {
|
|
219
|
+
const lt = text.indexOf("<", i);
|
|
220
|
+
if (lt < 0) {
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
// Comment <!-- ... -->
|
|
224
|
+
if (text.startsWith("<!--", lt)) {
|
|
225
|
+
const end = text.indexOf("-->", lt + 4);
|
|
226
|
+
i = end < 0 ? text.length : end + 3;
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
// CDATA <![CDATA[ ... ]]>
|
|
230
|
+
if (text.startsWith("<![CDATA[", lt)) {
|
|
231
|
+
const end = text.indexOf("]]>", lt + 9);
|
|
232
|
+
i = end < 0 ? text.length : end + 3;
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
// Processing instruction <? ... ?>
|
|
236
|
+
if (text.startsWith("<?", lt)) {
|
|
237
|
+
const end = text.indexOf("?>", lt + 2);
|
|
238
|
+
i = end < 0 ? text.length : end + 2;
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
// Closing tag </w:body>
|
|
242
|
+
if (text.startsWith("</w:body>", lt)) {
|
|
243
|
+
// Track the LAST close tag (matches the previous behaviour of
|
|
244
|
+
// picking up the outermost body) — there should only be one in a
|
|
245
|
+
// well-formed document anyway, but a stale match would just be
|
|
246
|
+
// overwritten by the real one.
|
|
247
|
+
bodyCloseIdx = lt;
|
|
248
|
+
i = lt + "</w:body>".length;
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
// Opening tag <w:body...>
|
|
252
|
+
if (text.startsWith("<w:body", lt)) {
|
|
253
|
+
const next = text.charCodeAt(lt + 7);
|
|
254
|
+
// Must be either whitespace before attributes or '>' for the bare tag,
|
|
255
|
+
// or '/' for the (rare) self-closing form. Anything else (e.g.
|
|
256
|
+
// "<w:bodyExtra") is a different element name.
|
|
257
|
+
if (next === 0x20 ||
|
|
258
|
+
next === 0x09 ||
|
|
259
|
+
next === 0x0a ||
|
|
260
|
+
next === 0x0d ||
|
|
261
|
+
next === 0x3e ||
|
|
262
|
+
next === 0x2f) {
|
|
263
|
+
const gt = text.indexOf(">", lt);
|
|
264
|
+
if (gt < 0) {
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
// Self-closing `<w:body/>` carries no children — fall back to a
|
|
268
|
+
// full render rather than trying to splice into nothing.
|
|
269
|
+
if (text.charCodeAt(gt - 1) === 0x2f) {
|
|
270
|
+
return undefined;
|
|
271
|
+
}
|
|
272
|
+
if (bodyStart < 0) {
|
|
273
|
+
bodyStart = gt + 1;
|
|
274
|
+
}
|
|
275
|
+
i = gt + 1;
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// Any other tag — skip past its '>'.
|
|
280
|
+
const gt = text.indexOf(">", lt + 1);
|
|
281
|
+
i = gt < 0 ? text.length : gt + 1;
|
|
282
|
+
}
|
|
283
|
+
if (bodyStart < 0 || bodyCloseIdx < 0 || bodyStart >= bodyCloseIdx) {
|
|
284
|
+
return undefined;
|
|
285
|
+
}
|
|
286
|
+
return { bodyStart, bodyCloseIdx };
|
|
287
|
+
}
|
|
288
|
+
function renderHeaderFooter(kind, children) {
|
|
289
|
+
// Reject content that requires fresh part-level relationships (images,
|
|
290
|
+
// external hyperlinks, charts, alt-chunks, embedded fonts, etc.). The
|
|
291
|
+
// incremental editor only rewrites individual XML parts; it does not
|
|
292
|
+
// rebuild the per-part `*.rels` file or copy in new media binaries, so
|
|
293
|
+
// any new `r:embed` / `r:id` reference would dangle. Callers wanting to
|
|
294
|
+
// add such content should use the full `patchDocument` / `packageDocx`
|
|
295
|
+
// flow instead.
|
|
296
|
+
assertNoExternalReferences(children, kind);
|
|
297
|
+
const xml = new XmlWriter();
|
|
298
|
+
if (kind === "header") {
|
|
299
|
+
renderHeader(xml, { children });
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
renderFooter(xml, { children });
|
|
303
|
+
}
|
|
304
|
+
return utf8Encoder.encode(xml.toString());
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Walk a header/footer / body fragment and throw if it contains any element
|
|
308
|
+
* that needs a per-part relationship registration the incremental editor
|
|
309
|
+
* cannot perform.
|
|
310
|
+
*
|
|
311
|
+
* The list mirrors what {@link renderBodyContent} writes as `r:embed` /
|
|
312
|
+
* `r:id` / `r:link` attributes:
|
|
313
|
+
* - inline & floating images (`r:embed` / `r:link`)
|
|
314
|
+
* - external hyperlinks (`r:id` on `w:hyperlink`)
|
|
315
|
+
* - charts and chart extensions (`r:id` on `w:chart` / `cx:chart`)
|
|
316
|
+
* - alt-chunks (`r:id` on `w:altChunk`)
|
|
317
|
+
* - opaque drawings carrying preserved relationships
|
|
318
|
+
*/
|
|
319
|
+
function assertNoExternalReferences(blocks, context) {
|
|
320
|
+
let offending;
|
|
321
|
+
walkBlocks(blocks, {
|
|
322
|
+
enterRun(run) {
|
|
323
|
+
for (const c of run.content) {
|
|
324
|
+
if (c.type === "image") {
|
|
325
|
+
offending ?? (offending = "inline image");
|
|
326
|
+
return "stop";
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return "continue";
|
|
330
|
+
},
|
|
331
|
+
enterHyperlink(h) {
|
|
332
|
+
if (h.url || h.rId) {
|
|
333
|
+
offending ?? (offending = "hyperlink");
|
|
334
|
+
return "stop";
|
|
335
|
+
}
|
|
336
|
+
return "continue";
|
|
337
|
+
},
|
|
338
|
+
visitFloatingImage() {
|
|
339
|
+
offending ?? (offending = "floating image");
|
|
340
|
+
},
|
|
341
|
+
visitChart() {
|
|
342
|
+
offending ?? (offending = "chart");
|
|
343
|
+
},
|
|
344
|
+
visitChartEx() {
|
|
345
|
+
offending ?? (offending = "chart (extended)");
|
|
346
|
+
},
|
|
347
|
+
visitAltChunk() {
|
|
348
|
+
offending ?? (offending = "altChunk");
|
|
349
|
+
},
|
|
350
|
+
visitOpaqueDrawing(drawing) {
|
|
351
|
+
if (drawing.referencedRIds.length > 0) {
|
|
352
|
+
offending ?? (offending = "opaque drawing with relationships");
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
if (offending) {
|
|
357
|
+
throw new DocxUnsupportedFeatureError(`incremental ${context} replacement does not support ${offending}: ` +
|
|
358
|
+
"relationship parts (.rels) are not rewritten. Use patchDocument() or " +
|
|
359
|
+
"rebuild the document with packageDocx() instead.");
|
|
360
|
+
}
|
|
361
|
+
}
|