@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
|
@@ -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
|
+
}
|
|
@@ -2,27 +2,40 @@
|
|
|
2
2
|
* DOCX Module - Base Exports (Platform Independent)
|
|
3
3
|
*
|
|
4
4
|
* Shared exports for both Node.js and browser environments.
|
|
5
|
+
*
|
|
6
|
+
* Each export is annotated with a `@stability` tag:
|
|
7
|
+
*
|
|
8
|
+
* - `@stability stable` — Public API. Backwards-compatible changes only;
|
|
9
|
+
* semver-major bumps for any breaking changes.
|
|
10
|
+
* - `@stability experimental` — Public but evolving. The shape may change
|
|
11
|
+
* without a major version bump while we collect feedback. Consumers
|
|
12
|
+
* should pin to exact minor versions if they rely on these.
|
|
13
|
+
* - `@stability preserve-only` — Round-trip preservation types. They exist
|
|
14
|
+
* so reading and writing a DOCX is loss-less; the underlying schema is
|
|
15
|
+
* not yet promised to be ergonomic. Avoid building features on top of
|
|
16
|
+
* them unless you also handle the underlying OOXML directly.
|
|
17
|
+
*
|
|
18
|
+
* Tree-shakeable subpaths: HTML/Markdown/Excel/PDF integrations live under
|
|
19
|
+
* `excelts/word/{html,markdown,excel}` and `excelts/pdf` — they are not
|
|
20
|
+
* re-exported here so bundlers can drop them when unused.
|
|
5
21
|
*/
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
|
|
22
|
+
// --- Stable API ---
|
|
23
|
+
/** @stability stable */
|
|
24
|
+
export { DocxError, DocxParseError, DocxWriteError, DocxMissingPartError, DocxInvalidStructureError, DocxUnsupportedFeatureError, DocxEncryptedError, DocxDecryptionError, DocxLimitExceededError, isDocxError } from "./errors.js";
|
|
25
|
+
// --- Stable API ---
|
|
26
|
+
/** @stability stable */
|
|
9
27
|
export { inchesToTwips, twipsToInches, cmToTwips, twipsToCm, ptToTwips, twipsToPt, mmToTwips, inchesToEmu, emuToInches, cmToEmu, emuToCm, ptToEmu, pxToEmu, emuToPx, ptToHalfPoint, halfPointToPt, ptToEighthPoint, eighthPointToPt, lineMultiplierToSpacing, spacingToLineMultiplier, percentToTablePct, tablePctToPercent } from "./units.js";
|
|
10
|
-
//
|
|
11
|
-
|
|
28
|
+
// --- Stable API ---
|
|
29
|
+
/** @stability stable */
|
|
30
|
+
export { Document } from "./builder/document-handle.js";
|
|
31
|
+
/** @stability stable — Run / Field / Math / shape / chart / SDT builders */
|
|
32
|
+
export {
|
|
12
33
|
// Run helpers
|
|
13
|
-
text, bold, italic, pageBreak, lineBreak, columnBreak, tab, positionalTab, ruby, carriageReturn, noBreakHyphen, softHyphen, field, pageNumberField, totalPagesField, sectionPagesField, sectionField, dateField, sequenceField, timeField, authorField, titleField, subjectField, keywordsField, fileNameField, fileSizeField, styleRefField, refField, pageRefField, noteRefField, hyperlinkField, quoteField, tocField, tcField, indexEntryField, indexField, ifField, includeTextField, includePictureField, formTextField, formCheckboxField, formDropdownField,
|
|
14
|
-
// Paragraph helpers
|
|
15
|
-
paragraph, textParagraph, heading, hyperlink, bookmarkStart, bookmarkEnd,
|
|
16
|
-
// Comment helpers
|
|
17
|
-
commentRangeStart, commentRangeEnd, commentReference,
|
|
18
|
-
// Track changes helpers
|
|
19
|
-
insertedRun, deletedRun, movedFromRun, movedToRun, moveFromRangeStart, moveFromRangeEnd, moveToRangeStart, moveToRangeEnd,
|
|
34
|
+
text, bold, italic, underline, strikethrough, pageBreak, lineBreak, columnBreak, tab, positionalTab, ruby, carriageReturn, noBreakHyphen, softHyphen, field, pageNumberField, totalPagesField, sectionPagesField, sectionField, dateField, sequenceField, timeField, authorField, titleField, subjectField, keywordsField, fileNameField, fileSizeField, styleRefField, refField, pageRefField, noteRefField, hyperlinkField, quoteField, tocField, tcField, indexEntryField, indexField, ifField, includeTextField, includePictureField, formTextField, formCheckboxField, formDropdownField,
|
|
20
35
|
// CheckBox helper
|
|
21
36
|
checkBox,
|
|
22
37
|
// Math helpers
|
|
23
|
-
mathBlock, mathRun, mathFraction, mathSqrt, mathRoot, mathSum, mathIntegral, mathProduct,
|
|
24
|
-
// Additional math helpers
|
|
25
|
-
mathSuperScript, mathSubScript, mathSubSuperScript, mathPreSubSuperScript, mathPhantom, mathGroupChar, mathBorderBox, mathDelimiter, mathNary, mathFunction, mathLimit, mathMatrix, mathAccent, mathBar, mathBox, mathEquationArray,
|
|
38
|
+
mathBlock, mathRun, mathFraction, mathSqrt, mathRoot, mathSum, mathIntegral, mathProduct, mathSuperScript, mathSubScript, mathSubSuperScript, mathPreSubSuperScript, mathPhantom, mathGroupChar, mathBorderBox, mathDelimiter, mathNary, mathFunction, mathLimit, mathMatrix, mathAccent, mathBar, mathBox, mathEquationArray,
|
|
26
39
|
// Symbol helper
|
|
27
40
|
symbol,
|
|
28
41
|
// Floating image helper
|
|
@@ -32,17 +45,113 @@ drawingShape,
|
|
|
32
45
|
// Chart helper
|
|
33
46
|
chart,
|
|
34
47
|
// SDT helper
|
|
35
|
-
structuredDocumentTag
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
export {
|
|
42
|
-
|
|
43
|
-
export {
|
|
44
|
-
|
|
45
|
-
export {
|
|
46
|
-
|
|
47
|
-
export {
|
|
48
|
-
|
|
48
|
+
structuredDocumentTag } from "./builder/run-builders.js";
|
|
49
|
+
/** @stability stable — paragraph / hyperlink / comment / track-changes builders */
|
|
50
|
+
export { paragraph, textParagraph, heading, hyperlink, bookmarkStart, bookmarkEnd, commentRangeStart, commentRangeEnd, commentReference, insertedRun, deletedRun, movedFromRun, movedToRun, moveFromRangeStart, moveFromRangeEnd, moveToRangeStart, moveToRangeEnd } from "./builder/paragraph-builders.js";
|
|
51
|
+
/** @stability stable — table builders */
|
|
52
|
+
export { border, gridBorders, cell, row, table, simpleTable } from "./builder/table-builders.js";
|
|
53
|
+
/** @stability stable — theme color resolution */
|
|
54
|
+
export { resolveThemeColor } from "./core/color-utils.js";
|
|
55
|
+
/** @stability stable — search / queries */
|
|
56
|
+
export { paragraphCount, countWords, getHeadings, findBookmark, findComment, listImages, listTables, listHyperlinks, listSections, tableCount, extractText, searchText } from "./query/search.js";
|
|
57
|
+
/** @stability stable */
|
|
58
|
+
export { replaceText } from "./query/replace.js";
|
|
59
|
+
/** @stability stable */
|
|
60
|
+
export { mailMerge } from "./query/mail-merge.js";
|
|
61
|
+
/** @stability stable */
|
|
62
|
+
export { mergeDocuments } from "./query/merge.js";
|
|
63
|
+
/** @stability stable */
|
|
64
|
+
export { splitDocument } from "./query/split.js";
|
|
65
|
+
/** @stability stable */
|
|
66
|
+
export { acceptAllRevisions, rejectAllRevisions, listRevisions, acceptRevision, rejectRevision } from "./query/revisions.js";
|
|
67
|
+
/** @stability stable */
|
|
68
|
+
export { resolveStyle, resolveRunStyle, resolveNumberingLevel, resolveTableStyle } from "./query/style-resolve.js";
|
|
69
|
+
/** @stability stable */
|
|
70
|
+
export { getCompatibilityMode, setCompatibilityMode } from "./query/compat.js";
|
|
71
|
+
/** @stability stable */
|
|
72
|
+
export { resolveDataBindings } from "./query/data-binding.js";
|
|
73
|
+
/** @stability stable */
|
|
74
|
+
export { extractFormFields, fillFormFields } from "./query/form-fields.js";
|
|
75
|
+
export { editDocxIncremental, listDocxParts, readDocxPart } from "./incremental-edit.js";
|
|
76
|
+
// --- Stable API ---
|
|
77
|
+
/** @stability stable */
|
|
78
|
+
export { packageDocx } from "./writer/docx-packager.js";
|
|
79
|
+
/** @stability stable */
|
|
80
|
+
export { readDocx } from "./reader/docx-reader.js";
|
|
81
|
+
/** @stability stable */
|
|
82
|
+
export { toBuffer, toBase64, patchDocument, compileTemplate, patchTemplate, fillTemplateFromBuffer, toFlatOpcFromDoc } from "./document-io.js";
|
|
83
|
+
// --- Experimental API ---
|
|
84
|
+
/** @stability experimental */
|
|
85
|
+
export { diffDocuments } from "./advanced/diff.js";
|
|
86
|
+
/** @stability experimental */
|
|
87
|
+
export { fillTemplate, fillTemplateEnhanced, listTemplateTags, isTemplateChart, TemplateError } from "./template/template-engine.js";
|
|
88
|
+
// --- Stable API ---
|
|
89
|
+
/** @stability stable */
|
|
90
|
+
export { parseFlatOpc, isFlatOpc, toFlatOpc } from "./convert/flat-opc.js";
|
|
91
|
+
// --- Experimental API ---
|
|
92
|
+
/** @stability experimental */
|
|
93
|
+
export { StreamingDocxWriter, createDocxStream } from "./writer/streaming-writer.js";
|
|
94
|
+
/** @stability experimental */
|
|
95
|
+
export { validateDocument } from "./advanced/validation.js";
|
|
96
|
+
// Font embedding
|
|
97
|
+
/** @stability stable */
|
|
98
|
+
export { embedFont, embedFontFamily, addEmbeddedFonts, subsetFont } from "./font/font-embed.js";
|
|
99
|
+
// --- Experimental API ---
|
|
100
|
+
/** @stability experimental */
|
|
101
|
+
export { extractOleObjects, hasOleObjects, getOleObjectData, createOleEmbedding } from "./advanced/ole-objects.js";
|
|
102
|
+
/** @stability experimental */
|
|
103
|
+
export { createBuildingBlock, createGlossaryDocument, findBuildingBlock, listBuildingBlocks, getAutoTextEntries, getQuickParts } from "./advanced/glossary.js";
|
|
104
|
+
// Document protection
|
|
105
|
+
/** @stability stable */
|
|
106
|
+
export { protectDocument, unprotectDocument, isDocumentProtected, getProtectionState, verifyProtectionPassword } from "./security/document-protection.js";
|
|
107
|
+
// Style mapping DSL
|
|
108
|
+
/** @stability stable */
|
|
109
|
+
export { parseStyleMap, createStyleMap, mergeStyleMaps, matchStyleMap, DEFAULT_STYLE_MAP } from "./advanced/style-map.js";
|
|
110
|
+
// --- Experimental API ---
|
|
111
|
+
/** @stability experimental */
|
|
112
|
+
export { hasVbaProject, getVbaProjectInfo, getVbaProjectData, addVbaProject, removeVbaProject, listVbaParts } from "./advanced/vba-project.js";
|
|
113
|
+
/** @stability experimental */
|
|
114
|
+
export { layoutDocument } from "./layout/layout.js";
|
|
115
|
+
/** @stability experimental */
|
|
116
|
+
export { layoutDocumentFull } from "./layout/layout-full.js";
|
|
117
|
+
/** @stability experimental */
|
|
118
|
+
export { updateFields, updateTableOfContents } from "./advanced/field-engine.js";
|
|
119
|
+
/** @stability experimental */
|
|
120
|
+
export { ommlToMathML, mathMLToOmml } from "./advanced/math-convert.js";
|
|
121
|
+
/** @stability experimental */
|
|
122
|
+
export { createShape, createRect, createRoundRect, createEllipse, createLine, createArrow, createFlowchartShape, createCallout, createStar } from "./advanced/drawing-shapes.js";
|
|
123
|
+
/** @stability experimental — Text shaping for complex scripts */
|
|
124
|
+
export { shapeText, detectScript, detectDirection } from "./font/text-shaping.js";
|
|
125
|
+
/** @stability experimental — Hyphenation engine */
|
|
126
|
+
export { createHyphenator, hyphenateWord, hyphenateText, ENGLISH_US_PATTERNS } from "./font/hyphenation.js";
|
|
127
|
+
/** @stability experimental — Format-based search */
|
|
128
|
+
export { searchByFormat, countByFormat, getUsedFormats } from "./query/format-search.js";
|
|
129
|
+
/** @stability experimental — ODT (OpenDocument Text) read/write */
|
|
130
|
+
export { readOdt, writeOdt } from "./convert/odt/odt.js";
|
|
131
|
+
/** @stability experimental — Page rendering to SVG */
|
|
132
|
+
export { renderPageToSvg, renderDocumentToSvg, renderPageFromLayout } from "./layout/render-page.js";
|
|
133
|
+
/** @stability experimental — Template data source abstraction */
|
|
134
|
+
export { JsonDataSource, XmlDataSource, CsvDataSource, CompositeDataSource, fillTemplateFromSource } from "./template/template-datasource.js";
|
|
135
|
+
/** @stability experimental — Chart data binding for templates */
|
|
136
|
+
export { bindChartData } from "./template/template-chart.js";
|
|
137
|
+
// NOTE: renderToMarkdown, renderToHtml, htmlToDocx, excelToDocx, markdownToDocx are NOT exported
|
|
138
|
+
// from the main entry — they live in dedicated subpaths to ensure tree-shaking:
|
|
139
|
+
// import { renderToMarkdown, markdownToDocx } from "excelts/word/markdown"
|
|
140
|
+
// import { renderToHtml } from "excelts/word/html"
|
|
141
|
+
// import { excelToDocx } from "excelts/word/excel"
|
|
142
|
+
// import { docxToPdf } from "excelts/pdf"
|
|
143
|
+
// --- Stable API ---
|
|
144
|
+
/** @stability stable — DOCX encryption */
|
|
145
|
+
export { encryptDocx } from "./security/encryption.js";
|
|
146
|
+
/** @stability experimental */
|
|
147
|
+
export { DEFAULT_SECURITY_POLICY, STRICT_SECURITY_POLICY, resolveSecurityPolicy } from "./security/policy.js";
|
|
148
|
+
/** @stability experimental */
|
|
149
|
+
export { createRenderContext, createIdGenerators } from "./writer/render-context.js";
|
|
150
|
+
/** @stability experimental */
|
|
151
|
+
export { mapDocument } from "./core/mapper.js";
|
|
152
|
+
/** @stability experimental */
|
|
153
|
+
export { walkDocument, walkBlocks, collectParagraphs, collectRuns, collectTables } from "./core/walker.js";
|
|
154
|
+
/** @stability experimental */
|
|
155
|
+
export { createConversionContext } from "./convert/conversion-ir.js";
|
|
156
|
+
/** @stability experimental */
|
|
157
|
+
export { docxToSemantic } from "./convert/docx-to-semantic.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared layout constants for the layout / pagination / SVG render modules.
|
|
3
|
+
*
|
|
4
|
+
* These defaults are used when a `SectionProperties` does not specify a
|
|
5
|
+
* page size or margin. Keeping them in a single file avoids drift between
|
|
6
|
+
* `layout.ts`, `layout-full.ts`, and `render-page.ts`.
|
|
7
|
+
*
|
|
8
|
+
* The values match Microsoft Word's defaults for US Letter paper:
|
|
9
|
+
* - Page size: 8.5 in × 11 in (12240 × 15840 twips)
|
|
10
|
+
* - Margins: 1 in on all sides (1440 twips)
|
|
11
|
+
*/
|
|
12
|
+
/** Default page width in twips (US Letter, 8.5 in). */
|
|
13
|
+
export const DEFAULT_PAGE_WIDTH_TWIPS = 12240;
|
|
14
|
+
/** Default page height in twips (US Letter, 11 in). */
|
|
15
|
+
export const DEFAULT_PAGE_HEIGHT_TWIPS = 15840;
|
|
16
|
+
/** Default page margin in twips (1 in on each side). */
|
|
17
|
+
export const DEFAULT_PAGE_MARGIN_TWIPS = 1440;
|