@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,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Module - OLE Embedded Objects
|
|
3
|
+
*
|
|
4
|
+
* Provides support for reading and round-tripping OLE (Object Linking and Embedding)
|
|
5
|
+
* objects within DOCX files. OLE objects allow embedding other documents (Excel
|
|
6
|
+
* spreadsheets, PowerPoint presentations, PDFs, etc.) within a Word document.
|
|
7
|
+
*
|
|
8
|
+
* OLE objects in OOXML are stored as:
|
|
9
|
+
* - Binary data in word/embeddings/*.bin (OLE2 compound document)
|
|
10
|
+
* - Referenced via r:id in w:object/o:OLEObject elements
|
|
11
|
+
* - May have a preview image (EMF/WMF) in word/media/
|
|
12
|
+
*
|
|
13
|
+
* This module focuses on preservation (round-trip) and metadata extraction,
|
|
14
|
+
* not full OLE compound document manipulation.
|
|
15
|
+
*/
|
|
16
|
+
import type { DocxDocument, OpaquePart } from "../types.js";
|
|
17
|
+
/** OLE object type classification. */
|
|
18
|
+
export type OleObjectType = "embedded" | "linked";
|
|
19
|
+
/** OLE object display style. */
|
|
20
|
+
export type OleDisplayAs = "icon" | "content";
|
|
21
|
+
/** Metadata about an OLE embedded object. */
|
|
22
|
+
export interface OleObject {
|
|
23
|
+
/** Unique relationship ID for the OLE binary. */
|
|
24
|
+
readonly rId: string;
|
|
25
|
+
/** OLE ProgId (e.g. "Excel.Sheet.12", "PowerPoint.Slide.12", "Package"). */
|
|
26
|
+
readonly progId: string;
|
|
27
|
+
/** Whether the object is embedded or linked. */
|
|
28
|
+
readonly objectType: OleObjectType;
|
|
29
|
+
/** Display mode. */
|
|
30
|
+
readonly displayAs: OleDisplayAs;
|
|
31
|
+
/** Relationship ID for the preview image (EMF/WMF). */
|
|
32
|
+
readonly imageRId?: string;
|
|
33
|
+
/** Shape ID for the hosting VML shape. */
|
|
34
|
+
readonly shapeId?: string;
|
|
35
|
+
/** Object width in EMU. */
|
|
36
|
+
readonly width?: number;
|
|
37
|
+
/** Object height in EMU. */
|
|
38
|
+
readonly height?: number;
|
|
39
|
+
/** File name of the embedded data within the archive. */
|
|
40
|
+
readonly fileName?: string;
|
|
41
|
+
/** The raw binary data of the OLE object. */
|
|
42
|
+
readonly data?: Uint8Array;
|
|
43
|
+
/** Link target (for linked objects). */
|
|
44
|
+
readonly linkTarget?: string;
|
|
45
|
+
/** Raw XML of the w:object element for round-trip preservation. */
|
|
46
|
+
readonly rawXml?: string;
|
|
47
|
+
}
|
|
48
|
+
/** Result of extracting OLE objects from a document. */
|
|
49
|
+
export interface OleExtractionResult {
|
|
50
|
+
/** All OLE objects found in the document. */
|
|
51
|
+
readonly objects: readonly OleObject[];
|
|
52
|
+
/** Mapping of progId to count. */
|
|
53
|
+
readonly summary: Readonly<Record<string, number>>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Extract metadata about OLE embedded objects from a parsed DOCX document.
|
|
57
|
+
* OLE objects are preserved in opaqueParts during reading; this function
|
|
58
|
+
* inspects them to extract meaningful metadata.
|
|
59
|
+
*
|
|
60
|
+
* @param doc - The parsed DOCX document.
|
|
61
|
+
* @returns Extraction result with OLE object metadata.
|
|
62
|
+
*/
|
|
63
|
+
export declare function extractOleObjects(doc: DocxDocument): OleExtractionResult;
|
|
64
|
+
/**
|
|
65
|
+
* Check if a document contains any OLE embedded objects.
|
|
66
|
+
*/
|
|
67
|
+
export declare function hasOleObjects(doc: DocxDocument): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Get the binary data of a specific OLE object by its relationship ID.
|
|
70
|
+
* Returns undefined if not found.
|
|
71
|
+
*/
|
|
72
|
+
export declare function getOleObjectData(doc: DocxDocument, rId: string): Uint8Array | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Result of `createOleEmbedding`. Contains the OLE binary part and,
|
|
75
|
+
* when a preview image was supplied, an additional media part for it
|
|
76
|
+
* plus the relationship rIds the caller should reference from the body
|
|
77
|
+
* model.
|
|
78
|
+
*/
|
|
79
|
+
export interface OleEmbeddingResult {
|
|
80
|
+
/** OLE binary opaque part (always present). */
|
|
81
|
+
readonly olePart: OpaquePart;
|
|
82
|
+
/** Suggested rId to use for the OLE binary in the document model. */
|
|
83
|
+
readonly oleRId: string;
|
|
84
|
+
/** Preview image media part (only when `options.previewImage` was supplied). */
|
|
85
|
+
readonly previewPart?: OpaquePart;
|
|
86
|
+
/** Suggested rId for the preview image. */
|
|
87
|
+
readonly previewRId?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create an OLE embedding plus, optionally, its preview image.
|
|
91
|
+
*
|
|
92
|
+
* Returns an {@link OleEmbeddingResult} with one or two `OpaquePart`s plus
|
|
93
|
+
* suggested relationship IDs. Each call gets a unique counter-based file
|
|
94
|
+
* name so calling this helper repeatedly does not produce path
|
|
95
|
+
* collisions; pass `options.fileName` to force a specific name.
|
|
96
|
+
*
|
|
97
|
+
* The previous signature returned only one `OpaquePart` and silently
|
|
98
|
+
* dropped `options.previewImage` / `options.previewContentType`. That has
|
|
99
|
+
* been removed — the new shape forces callers to wire up preview parts
|
|
100
|
+
* properly when they want one.
|
|
101
|
+
*
|
|
102
|
+
* @param data - The binary data of the OLE object (OLE2 compound document).
|
|
103
|
+
* @param progId - The OLE ProgId (e.g. "Excel.Sheet.12").
|
|
104
|
+
* @param options - Additional options.
|
|
105
|
+
*/
|
|
106
|
+
export declare function createOleEmbedding(data: Uint8Array, progId: string, options?: {
|
|
107
|
+
/** Override file name. Defaults to `oleObject<N>.bin` with a process-unique counter. */
|
|
108
|
+
fileName?: string;
|
|
109
|
+
/** Optional preview image bytes (typically EMF or PNG). */
|
|
110
|
+
previewImage?: Uint8Array;
|
|
111
|
+
/** Content type for the preview image. Required when `previewImage` is set. */
|
|
112
|
+
previewContentType?: string;
|
|
113
|
+
/** Override preview file name. Defaults to `image<N>.<ext>` from previewContentType. */
|
|
114
|
+
previewFileName?: string;
|
|
115
|
+
}): OleEmbeddingResult;
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Module - OLE Embedded Objects
|
|
3
|
+
*
|
|
4
|
+
* Provides support for reading and round-tripping OLE (Object Linking and Embedding)
|
|
5
|
+
* objects within DOCX files. OLE objects allow embedding other documents (Excel
|
|
6
|
+
* spreadsheets, PowerPoint presentations, PDFs, etc.) within a Word document.
|
|
7
|
+
*
|
|
8
|
+
* OLE objects in OOXML are stored as:
|
|
9
|
+
* - Binary data in word/embeddings/*.bin (OLE2 compound document)
|
|
10
|
+
* - Referenced via r:id in w:object/o:OLEObject elements
|
|
11
|
+
* - May have a preview image (EMF/WMF) in word/media/
|
|
12
|
+
*
|
|
13
|
+
* This module focuses on preservation (round-trip) and metadata extraction,
|
|
14
|
+
* not full OLE compound document manipulation.
|
|
15
|
+
*/
|
|
16
|
+
import { getFileName } from "../core/opc-paths.js";
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// OLE Object Extraction
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Extract metadata about OLE embedded objects from a parsed DOCX document.
|
|
22
|
+
* OLE objects are preserved in opaqueParts during reading; this function
|
|
23
|
+
* inspects them to extract meaningful metadata.
|
|
24
|
+
*
|
|
25
|
+
* @param doc - The parsed DOCX document.
|
|
26
|
+
* @returns Extraction result with OLE object metadata.
|
|
27
|
+
*/
|
|
28
|
+
export function extractOleObjects(doc) {
|
|
29
|
+
const objects = [];
|
|
30
|
+
const summary = {};
|
|
31
|
+
// Scan opaque parts for OLE embeddings
|
|
32
|
+
if (doc.opaqueParts) {
|
|
33
|
+
for (const part of doc.opaqueParts) {
|
|
34
|
+
if (isOleEmbedding(part.path)) {
|
|
35
|
+
const obj = parseOlePartMetadata(part);
|
|
36
|
+
if (obj) {
|
|
37
|
+
objects.push(obj);
|
|
38
|
+
summary[obj.progId] = (summary[obj.progId] ?? 0) + 1;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Also scan body for OpaqueDrawing elements that may contain OLE references
|
|
44
|
+
for (const element of doc.body) {
|
|
45
|
+
if (element.type === "opaqueDrawing") {
|
|
46
|
+
const oleFromDrawing = extractOleFromRawXml(element.rawXml);
|
|
47
|
+
if (oleFromDrawing) {
|
|
48
|
+
// Check if we already have this object from opaque parts
|
|
49
|
+
const exists = objects.some(o => o.rId === oleFromDrawing.rId);
|
|
50
|
+
if (!exists) {
|
|
51
|
+
objects.push(oleFromDrawing);
|
|
52
|
+
summary[oleFromDrawing.progId] = (summary[oleFromDrawing.progId] ?? 0) + 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return { objects, summary };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if a document contains any OLE embedded objects.
|
|
61
|
+
*/
|
|
62
|
+
export function hasOleObjects(doc) {
|
|
63
|
+
if (doc.opaqueParts) {
|
|
64
|
+
for (const part of doc.opaqueParts) {
|
|
65
|
+
if (isOleEmbedding(part.path)) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get the binary data of a specific OLE object by its relationship ID.
|
|
74
|
+
* Returns undefined if not found.
|
|
75
|
+
*/
|
|
76
|
+
export function getOleObjectData(doc, rId) {
|
|
77
|
+
if (!doc.opaqueParts) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
for (const part of doc.opaqueParts) {
|
|
81
|
+
if (isOleEmbedding(part.path)) {
|
|
82
|
+
// Check relationships for matching rId
|
|
83
|
+
if (part.relationships) {
|
|
84
|
+
for (const rel of part.relationships) {
|
|
85
|
+
if (rel.id === rId) {
|
|
86
|
+
return part.data;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Also check if the file path matches the expected pattern for this
|
|
91
|
+
// rId. We anchor on a non-digit boundary so `rId4` does not also
|
|
92
|
+
// match `oleObject40`, `oleObject41`, … Without the boundary, the
|
|
93
|
+
// first such adjacent file silently leaks back as if it were the
|
|
94
|
+
// requested OLE object.
|
|
95
|
+
const expectedStem = rId.replace("rId", "oleObject");
|
|
96
|
+
const oleStemRe = new RegExp(`(^|/)${escapeRegex(expectedStem)}(?:\\.[^./]+)?$`);
|
|
97
|
+
if (oleStemRe.test(part.path)) {
|
|
98
|
+
return part.data;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Unknown rId — do NOT fall back to "first embedded blob" (that historically
|
|
103
|
+
// returned an arbitrary OLE object and silently leaked the wrong data).
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create an OLE embedding plus, optionally, its preview image.
|
|
108
|
+
*
|
|
109
|
+
* Returns an {@link OleEmbeddingResult} with one or two `OpaquePart`s plus
|
|
110
|
+
* suggested relationship IDs. Each call gets a unique counter-based file
|
|
111
|
+
* name so calling this helper repeatedly does not produce path
|
|
112
|
+
* collisions; pass `options.fileName` to force a specific name.
|
|
113
|
+
*
|
|
114
|
+
* The previous signature returned only one `OpaquePart` and silently
|
|
115
|
+
* dropped `options.previewImage` / `options.previewContentType`. That has
|
|
116
|
+
* been removed — the new shape forces callers to wire up preview parts
|
|
117
|
+
* properly when they want one.
|
|
118
|
+
*
|
|
119
|
+
* @param data - The binary data of the OLE object (OLE2 compound document).
|
|
120
|
+
* @param progId - The OLE ProgId (e.g. "Excel.Sheet.12").
|
|
121
|
+
* @param options - Additional options.
|
|
122
|
+
*/
|
|
123
|
+
export function createOleEmbedding(data, progId, options) {
|
|
124
|
+
const oleSeq = nextOleSequence();
|
|
125
|
+
const fileName = options?.fileName ?? `oleObject${oleSeq}.bin`;
|
|
126
|
+
const olePart = {
|
|
127
|
+
path: `word/embeddings/${fileName}`,
|
|
128
|
+
data,
|
|
129
|
+
contentType: "application/vnd.openxmlformats-officedocument.oleObject",
|
|
130
|
+
relationships: undefined
|
|
131
|
+
};
|
|
132
|
+
const oleRId = `rIdOle${oleSeq}`;
|
|
133
|
+
// progId is metadata for downstream consumers — not stored on
|
|
134
|
+
// OpaquePart but accepted in the signature so callers can pass it
|
|
135
|
+
// alongside without a separate channel. We don't need it here.
|
|
136
|
+
void progId;
|
|
137
|
+
if (!options?.previewImage) {
|
|
138
|
+
return { olePart, oleRId };
|
|
139
|
+
}
|
|
140
|
+
if (!options.previewContentType) {
|
|
141
|
+
throw new Error("createOleEmbedding: options.previewImage requires options.previewContentType");
|
|
142
|
+
}
|
|
143
|
+
const previewExt = previewExtFromContentType(options.previewContentType);
|
|
144
|
+
const previewSeq = nextPreviewSequence();
|
|
145
|
+
const previewFileName = options.previewFileName ?? `oleImage${previewSeq}.${previewExt}`;
|
|
146
|
+
const previewPart = {
|
|
147
|
+
path: `word/media/${previewFileName}`,
|
|
148
|
+
data: options.previewImage,
|
|
149
|
+
contentType: options.previewContentType,
|
|
150
|
+
relationships: undefined
|
|
151
|
+
};
|
|
152
|
+
const previewRId = `rIdOleImg${previewSeq}`;
|
|
153
|
+
return { olePart, oleRId, previewPart, previewRId };
|
|
154
|
+
}
|
|
155
|
+
/** Module-level counters used to allocate unique file names per call. */
|
|
156
|
+
let _oleSeq = 0;
|
|
157
|
+
let _previewSeq = 0;
|
|
158
|
+
function nextOleSequence() {
|
|
159
|
+
_oleSeq++;
|
|
160
|
+
return _oleSeq;
|
|
161
|
+
}
|
|
162
|
+
function nextPreviewSequence() {
|
|
163
|
+
_previewSeq++;
|
|
164
|
+
return _previewSeq;
|
|
165
|
+
}
|
|
166
|
+
function previewExtFromContentType(ct) {
|
|
167
|
+
const map = {
|
|
168
|
+
"image/png": "png",
|
|
169
|
+
"image/jpeg": "jpg",
|
|
170
|
+
"image/gif": "gif",
|
|
171
|
+
"image/x-emf": "emf",
|
|
172
|
+
"image/emf": "emf",
|
|
173
|
+
"image/x-wmf": "wmf",
|
|
174
|
+
"image/wmf": "wmf",
|
|
175
|
+
"image/bmp": "bmp",
|
|
176
|
+
"image/svg+xml": "svg"
|
|
177
|
+
};
|
|
178
|
+
return map[ct.toLowerCase()] ?? "bin";
|
|
179
|
+
}
|
|
180
|
+
// =============================================================================
|
|
181
|
+
// Internal Helpers
|
|
182
|
+
// =============================================================================
|
|
183
|
+
function isOleEmbedding(path) {
|
|
184
|
+
return path.startsWith("word/embeddings/") || (path.endsWith(".bin") && path.includes("embed"));
|
|
185
|
+
}
|
|
186
|
+
function parseOlePartMetadata(part) {
|
|
187
|
+
// Extract what we can from the path and content type
|
|
188
|
+
const fileName = getFileName(part.path);
|
|
189
|
+
// Try to detect progId from file extension or OLE magic
|
|
190
|
+
let progId = "Package"; // Default
|
|
191
|
+
if (fileName.includes("oleObject")) {
|
|
192
|
+
progId = detectProgIdFromData(part.data);
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
rId: "",
|
|
196
|
+
progId,
|
|
197
|
+
objectType: "embedded",
|
|
198
|
+
displayAs: "icon",
|
|
199
|
+
fileName,
|
|
200
|
+
data: part.data
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
function detectProgIdFromData(data) {
|
|
204
|
+
// OLE2 compound document magic: D0 CF 11 E0 A1 B1 1A E1
|
|
205
|
+
if (data.length >= 8 &&
|
|
206
|
+
data[0] === 0xd0 &&
|
|
207
|
+
data[1] === 0xcf &&
|
|
208
|
+
data[2] === 0x11 &&
|
|
209
|
+
data[3] === 0xe0) {
|
|
210
|
+
// It's an OLE2 compound document — try to detect type
|
|
211
|
+
// Look for common signatures within the embedded data
|
|
212
|
+
const str = tryDecodeAscii(data.slice(0, 2048));
|
|
213
|
+
if (str.includes("Excel") || str.includes("Workbook") || str.includes("Sheet")) {
|
|
214
|
+
return "Excel.Sheet.12";
|
|
215
|
+
}
|
|
216
|
+
if (str.includes("PowerPoint") || str.includes("Presentation")) {
|
|
217
|
+
return "PowerPoint.Show.12";
|
|
218
|
+
}
|
|
219
|
+
if (str.includes("Visio")) {
|
|
220
|
+
return "Visio.Drawing.15";
|
|
221
|
+
}
|
|
222
|
+
return "Package";
|
|
223
|
+
}
|
|
224
|
+
// PDF signature
|
|
225
|
+
if (data.length >= 4 &&
|
|
226
|
+
data[0] === 0x25 &&
|
|
227
|
+
data[1] === 0x50 &&
|
|
228
|
+
data[2] === 0x44 &&
|
|
229
|
+
data[3] === 0x46) {
|
|
230
|
+
return "AcroExch.Document";
|
|
231
|
+
}
|
|
232
|
+
return "Package";
|
|
233
|
+
}
|
|
234
|
+
function tryDecodeAscii(data) {
|
|
235
|
+
let str = "";
|
|
236
|
+
for (let i = 0; i < data.length; i++) {
|
|
237
|
+
const b = data[i];
|
|
238
|
+
if (b >= 0x20 && b < 0x7f) {
|
|
239
|
+
str += String.fromCharCode(b);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return str;
|
|
243
|
+
}
|
|
244
|
+
function extractOleFromRawXml(rawXml) {
|
|
245
|
+
// Parse OLE object info from raw XML using regex (lightweight)
|
|
246
|
+
const progIdMatch = rawXml.match(/ProgID="([^"]+)"/i) ?? rawXml.match(/progId="([^"]+)"/i);
|
|
247
|
+
const rIdMatch = rawXml.match(/r:id="([^"]+)"/i);
|
|
248
|
+
const typeMatch = rawXml.match(/Type="([^"]+)"/i);
|
|
249
|
+
if (!progIdMatch) {
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
const progId = progIdMatch[1];
|
|
253
|
+
const rId = rIdMatch ? rIdMatch[1] : "";
|
|
254
|
+
const objectType = typeMatch && typeMatch[1].toLowerCase().includes("link") ? "linked" : "embedded";
|
|
255
|
+
// Extract dimensions
|
|
256
|
+
const widthMatch = rawXml.match(/(?:cx|width)="(\d+)"/i);
|
|
257
|
+
const heightMatch = rawXml.match(/(?:cy|height)="(\d+)"/i);
|
|
258
|
+
return {
|
|
259
|
+
rId,
|
|
260
|
+
progId,
|
|
261
|
+
objectType,
|
|
262
|
+
displayAs: rawXml.includes('DrawAspect="Icon"') ? "icon" : "content",
|
|
263
|
+
width: widthMatch ? parseInt(widthMatch[1], 10) : undefined,
|
|
264
|
+
height: heightMatch ? parseInt(heightMatch[1], 10) : undefined,
|
|
265
|
+
rawXml
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
/** Escape regex meta-characters in a literal string for use inside RegExp. */
|
|
269
|
+
function escapeRegex(s) {
|
|
270
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
271
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Module - Style Mapping DSL
|
|
3
|
+
*
|
|
4
|
+
* A domain-specific language for customizing how DOCX elements are
|
|
5
|
+
* mapped to HTML output during conversion. Inspired by mammoth.js's
|
|
6
|
+
* style mapping approach but designed for this project's architecture.
|
|
7
|
+
*
|
|
8
|
+
* The DSL allows users to define rules that control the HTML output
|
|
9
|
+
* for specific Word styles, without modifying the core renderer.
|
|
10
|
+
*
|
|
11
|
+
* Syntax examples:
|
|
12
|
+
* ```
|
|
13
|
+
* p[style-name='Heading 1'] => h1.custom-heading
|
|
14
|
+
* p[style-name='Quote'] => blockquote.pull-quote
|
|
15
|
+
* r[style-name='Emphasis'] => em.highlight
|
|
16
|
+
* p[style-name='Code'] => pre > code
|
|
17
|
+
* table[style-name='GridTable'] => table.data-table
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
/** Target element type in the mapping rule. */
|
|
21
|
+
export type MappingSourceType = "p" | "r" | "table" | "image" | "b" | "i" | "u" | "strike";
|
|
22
|
+
/** A condition for matching source elements. */
|
|
23
|
+
export interface MappingCondition {
|
|
24
|
+
/** Attribute to match on. */
|
|
25
|
+
readonly attribute: "style-name" | "style-id" | "outline-level" | "numbering-level" | "is-bold" | "is-italic";
|
|
26
|
+
/** Value to match (exact or regex). */
|
|
27
|
+
readonly value: string;
|
|
28
|
+
/** Use regex matching. */
|
|
29
|
+
readonly regex?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Target HTML element specification. */
|
|
32
|
+
export interface MappingTarget {
|
|
33
|
+
/** HTML tag name. */
|
|
34
|
+
readonly tagName: string;
|
|
35
|
+
/** CSS class(es) to add. */
|
|
36
|
+
readonly className?: string;
|
|
37
|
+
/** Additional HTML attributes. */
|
|
38
|
+
readonly attributes?: Readonly<Record<string, string>>;
|
|
39
|
+
/** Nested element (for `pre > code` style mappings). */
|
|
40
|
+
readonly child?: MappingTarget;
|
|
41
|
+
/** Whether to preserve separator. */
|
|
42
|
+
readonly separator?: string;
|
|
43
|
+
/** Whether this is a "fresh" mapping (wrap each paragraph separately). */
|
|
44
|
+
readonly fresh?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/** A single style mapping rule. */
|
|
47
|
+
export interface StyleMappingRule {
|
|
48
|
+
/** Source element type. */
|
|
49
|
+
readonly source: MappingSourceType;
|
|
50
|
+
/** Conditions that must all be satisfied. */
|
|
51
|
+
readonly conditions: readonly MappingCondition[];
|
|
52
|
+
/** Target HTML output. */
|
|
53
|
+
readonly target: MappingTarget;
|
|
54
|
+
/** Priority (higher = checked first). Default: 0. */
|
|
55
|
+
readonly priority?: number;
|
|
56
|
+
}
|
|
57
|
+
/** A compiled set of style mapping rules. */
|
|
58
|
+
export interface StyleMap {
|
|
59
|
+
/** All rules, sorted by priority (highest first). */
|
|
60
|
+
readonly rules: readonly StyleMappingRule[];
|
|
61
|
+
}
|
|
62
|
+
/** Options for the style mapping parser. */
|
|
63
|
+
export interface StyleMapOptions {
|
|
64
|
+
/** Base rules to include (before user rules). */
|
|
65
|
+
readonly base?: StyleMap;
|
|
66
|
+
/** Whether to include default mappings (Heading → h1-h6, etc.). */
|
|
67
|
+
readonly includeDefaults?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/** Default style mappings (standard Word styles → semantic HTML). */
|
|
70
|
+
export declare const DEFAULT_STYLE_MAP: StyleMap;
|
|
71
|
+
/**
|
|
72
|
+
* Parse a style mapping DSL string into a StyleMap.
|
|
73
|
+
*
|
|
74
|
+
* @param dsl - The DSL string (one rule per line).
|
|
75
|
+
* @param options - Parser options.
|
|
76
|
+
* @returns A compiled StyleMap.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* const map = parseStyleMap(`
|
|
81
|
+
* p[style-name='Heading 1'] => h1.title
|
|
82
|
+
* p[style-name='Code Block'] => pre > code
|
|
83
|
+
* r[style-name='Emphasis'] => em.custom-em
|
|
84
|
+
* `);
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function parseStyleMap(dsl: string, options?: StyleMapOptions): StyleMap;
|
|
88
|
+
/**
|
|
89
|
+
* Create a style map programmatically (without DSL parsing).
|
|
90
|
+
*/
|
|
91
|
+
export declare function createStyleMap(rules: readonly StyleMappingRule[]): StyleMap;
|
|
92
|
+
/**
|
|
93
|
+
* Merge multiple style maps together.
|
|
94
|
+
* Later maps take precedence (higher priority) over earlier ones.
|
|
95
|
+
*/
|
|
96
|
+
export declare function mergeStyleMaps(...maps: readonly StyleMap[]): StyleMap;
|
|
97
|
+
/**
|
|
98
|
+
* Match a source element against the style map and return the target.
|
|
99
|
+
*
|
|
100
|
+
* @param map - The style map to match against.
|
|
101
|
+
* @param source - Source element type.
|
|
102
|
+
* @param attributes - Attributes of the source element.
|
|
103
|
+
* @returns The matching target, or undefined if no match.
|
|
104
|
+
*/
|
|
105
|
+
export declare function matchStyleMap(map: StyleMap, source: MappingSourceType, attributes: Readonly<Record<string, string>>): MappingTarget | undefined;
|