@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,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StringBuf - Cross-Platform String Buffer
|
|
3
|
+
*
|
|
4
|
+
* Efficient string builder that accumulates UTF-8 encoded bytes into a single
|
|
5
|
+
* `Uint8Array`. Designed for hot paths that build large XML / text payloads
|
|
6
|
+
* (XLSX worksheet writers, streaming DOCX writer) where naïve `string +=`
|
|
7
|
+
* concatenation triggers O(n²) re-allocations.
|
|
8
|
+
*
|
|
9
|
+
* Works identically in Node.js and Browser environments — uses only
|
|
10
|
+
* `TextEncoder` and `Uint8Array`.
|
|
11
|
+
*/
|
|
12
|
+
interface StringBufOptions {
|
|
13
|
+
/** Initial capacity in bytes (default: 16384). */
|
|
14
|
+
size?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Encoding label, accepted for API symmetry. Only UTF-8 is supported by
|
|
17
|
+
* `TextEncoder`, so this option is ignored.
|
|
18
|
+
*/
|
|
19
|
+
encoding?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Efficient string builder backed by a growable `Uint8Array`.
|
|
23
|
+
*/
|
|
24
|
+
declare class StringBuf {
|
|
25
|
+
private _buf;
|
|
26
|
+
private _inPos;
|
|
27
|
+
private _buffer;
|
|
28
|
+
constructor(options?: StringBufOptions);
|
|
29
|
+
get length(): number;
|
|
30
|
+
get capacity(): number;
|
|
31
|
+
get buffer(): Uint8Array;
|
|
32
|
+
/** Return a snapshot of the bytes written so far. Cached until next mutation. */
|
|
33
|
+
toBuffer(): Uint8Array;
|
|
34
|
+
reset(position?: number): void;
|
|
35
|
+
private _grow;
|
|
36
|
+
/** Append a string, encoded as UTF-8. */
|
|
37
|
+
addText(text: string): void;
|
|
38
|
+
/** Append the contents of another StringBuf without re-encoding. */
|
|
39
|
+
addStringBuf(inBuf: StringBuf): void;
|
|
40
|
+
}
|
|
41
|
+
export { StringBuf };
|
|
42
|
+
export type { StringBufOptions };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StringBuf - Cross-Platform String Buffer
|
|
3
|
+
*
|
|
4
|
+
* Efficient string builder that accumulates UTF-8 encoded bytes into a single
|
|
5
|
+
* `Uint8Array`. Designed for hot paths that build large XML / text payloads
|
|
6
|
+
* (XLSX worksheet writers, streaming DOCX writer) where naïve `string +=`
|
|
7
|
+
* concatenation triggers O(n²) re-allocations.
|
|
8
|
+
*
|
|
9
|
+
* Works identically in Node.js and Browser environments — uses only
|
|
10
|
+
* `TextEncoder` and `Uint8Array`.
|
|
11
|
+
*/
|
|
12
|
+
const encoder = new TextEncoder();
|
|
13
|
+
/**
|
|
14
|
+
* Efficient string builder backed by a growable `Uint8Array`.
|
|
15
|
+
*/
|
|
16
|
+
class StringBuf {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this._buf = new Uint8Array((options && options.size) || 16384);
|
|
19
|
+
this._inPos = 0;
|
|
20
|
+
this._buffer = undefined;
|
|
21
|
+
}
|
|
22
|
+
get length() {
|
|
23
|
+
return this._inPos;
|
|
24
|
+
}
|
|
25
|
+
get capacity() {
|
|
26
|
+
return this._buf.length;
|
|
27
|
+
}
|
|
28
|
+
get buffer() {
|
|
29
|
+
return this._buf;
|
|
30
|
+
}
|
|
31
|
+
/** Return a snapshot of the bytes written so far. Cached until next mutation. */
|
|
32
|
+
toBuffer() {
|
|
33
|
+
if (!this._buffer) {
|
|
34
|
+
this._buffer = this._buf.slice(0, this._inPos);
|
|
35
|
+
}
|
|
36
|
+
return this._buffer;
|
|
37
|
+
}
|
|
38
|
+
reset(position) {
|
|
39
|
+
position = position ?? 0;
|
|
40
|
+
this._buffer = undefined;
|
|
41
|
+
this._inPos = position;
|
|
42
|
+
}
|
|
43
|
+
_grow(min) {
|
|
44
|
+
let size = this._buf.length * 2;
|
|
45
|
+
while (size < min) {
|
|
46
|
+
size *= 2;
|
|
47
|
+
}
|
|
48
|
+
const buf = new Uint8Array(size);
|
|
49
|
+
buf.set(this._buf);
|
|
50
|
+
this._buf = buf;
|
|
51
|
+
}
|
|
52
|
+
/** Append a string, encoded as UTF-8. */
|
|
53
|
+
addText(text) {
|
|
54
|
+
this._buffer = undefined;
|
|
55
|
+
// Optimistically reserve 1 byte per char (true for ASCII; multi-byte
|
|
56
|
+
// chars trigger the slow path below).
|
|
57
|
+
const optimistic = this._inPos + text.length;
|
|
58
|
+
if (optimistic > this._buf.length - 4) {
|
|
59
|
+
this._grow(optimistic);
|
|
60
|
+
}
|
|
61
|
+
// `encodeInto` writes directly into the buffer, avoiding the intermediate
|
|
62
|
+
// Uint8Array allocation that `encoder.encode()` creates.
|
|
63
|
+
const target = this._buf.subarray(this._inPos);
|
|
64
|
+
const result = encoder.encodeInto(text, target);
|
|
65
|
+
if (result.read < text.length) {
|
|
66
|
+
// Multi-byte chars exceeded the optimistic estimate.
|
|
67
|
+
// Worst case: 3 bytes per remaining char.
|
|
68
|
+
const remaining = text.length - result.read;
|
|
69
|
+
this._grow(this._inPos + result.written + remaining * 3);
|
|
70
|
+
const result2 = encoder.encodeInto(text.substring(result.read), this._buf.subarray(this._inPos + result.written));
|
|
71
|
+
this._inPos += result.written + result2.written;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this._inPos += result.written;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Append the contents of another StringBuf without re-encoding. */
|
|
78
|
+
addStringBuf(inBuf) {
|
|
79
|
+
if (inBuf.length) {
|
|
80
|
+
this._buffer = undefined;
|
|
81
|
+
if (this.length + inBuf.length > this.capacity) {
|
|
82
|
+
this._grow(this.length + inBuf.length);
|
|
83
|
+
}
|
|
84
|
+
this._buf.set(inBuf._buf.subarray(0, inBuf.length), this._inPos);
|
|
85
|
+
this._inPos += inBuf.length;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export { StringBuf };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OOXML Theme Color Resolution — shared between Excel and Word modules.
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for resolving theme color references with tint/shade
|
|
5
|
+
* transformations per the ECMA-376 color model.
|
|
6
|
+
*/
|
|
7
|
+
/** Standard OOXML theme color names (scheme keys in theme1.xml). */
|
|
8
|
+
export type OoxmlThemeColorName = "dk1" | "lt1" | "dk2" | "lt2" | "accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "hlink" | "folHlink";
|
|
9
|
+
/**
|
|
10
|
+
* Map from OOXML property attribute values to theme scheme keys.
|
|
11
|
+
*
|
|
12
|
+
* Word/Excel run/paragraph/cell properties use long-form names ("dark1",
|
|
13
|
+
* "light1", "hyperlink") while the theme XML stores short-form keys
|
|
14
|
+
* ("dk1", "lt1", "hlink"). This map normalises both forms.
|
|
15
|
+
*/
|
|
16
|
+
export declare const THEME_COLOR_ATTRIBUTE_MAP: Record<string, OoxmlThemeColorName>;
|
|
17
|
+
/**
|
|
18
|
+
* Apply a tint (lighten toward white) to a hex color.
|
|
19
|
+
*
|
|
20
|
+
* OOXML tint formula: `newComponent = component + (255 - component) * tint`
|
|
21
|
+
* where tint ∈ [0, 1]. tint=0 → original, tint=1 → white.
|
|
22
|
+
*
|
|
23
|
+
* @param hex - 6-character hex color string (no "#" prefix).
|
|
24
|
+
* @param tint - Tint value in range [0, 1].
|
|
25
|
+
* @returns Tinted 6-character hex color string.
|
|
26
|
+
*/
|
|
27
|
+
export declare function applyTint(hex: string, tint: number): string;
|
|
28
|
+
/**
|
|
29
|
+
* Apply a shade (darken toward black) to a hex color.
|
|
30
|
+
*
|
|
31
|
+
* OOXML shade formula: `newComponent = component * shade`
|
|
32
|
+
* where shade ∈ [0, 1]. shade=1 → original, shade=0 → black.
|
|
33
|
+
*
|
|
34
|
+
* @param hex - 6-character hex color string (no "#" prefix).
|
|
35
|
+
* @param shade - Shade value in range [0, 1].
|
|
36
|
+
* @returns Shaded 6-character hex color string.
|
|
37
|
+
*/
|
|
38
|
+
export declare function applyShade(hex: string, shade: number): string;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve a theme color reference to a hex color string.
|
|
41
|
+
*
|
|
42
|
+
* Looks up the theme color by attribute name (normalising long-form names
|
|
43
|
+
* like "dark1" to scheme keys like "dk1"), then applies optional tint or
|
|
44
|
+
* shade transformation.
|
|
45
|
+
*
|
|
46
|
+
* @param themeColorName - The theme color attribute value (e.g. "accent1", "dark1", "dk1").
|
|
47
|
+
* @param colors - The theme color scheme (scheme key → 6-char hex mapping).
|
|
48
|
+
* @param tint - Optional tint value in [0, 1]. Values > 1 are treated as
|
|
49
|
+
* raw bytes (0-255) and normalised by dividing by 255.
|
|
50
|
+
* @param shade - Optional shade value in [0, 1]. Values > 1 are treated as
|
|
51
|
+
* raw bytes (0-255) and normalised by dividing by 255.
|
|
52
|
+
* @returns Resolved 6-character hex color string, or undefined if the theme
|
|
53
|
+
* color name cannot be found in the provided scheme.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveOoxmlThemeColor(themeColorName: string, colors: Readonly<Record<string, string>>, tint?: number, shade?: number): string | undefined;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OOXML Theme Color Resolution — shared between Excel and Word modules.
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for resolving theme color references with tint/shade
|
|
5
|
+
* transformations per the ECMA-376 color model.
|
|
6
|
+
*/
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Constants
|
|
9
|
+
// =============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Map from OOXML property attribute values to theme scheme keys.
|
|
12
|
+
*
|
|
13
|
+
* Word/Excel run/paragraph/cell properties use long-form names ("dark1",
|
|
14
|
+
* "light1", "hyperlink") while the theme XML stores short-form keys
|
|
15
|
+
* ("dk1", "lt1", "hlink"). This map normalises both forms.
|
|
16
|
+
*/
|
|
17
|
+
export const THEME_COLOR_ATTRIBUTE_MAP = {
|
|
18
|
+
dark1: "dk1",
|
|
19
|
+
light1: "lt1",
|
|
20
|
+
dark2: "dk2",
|
|
21
|
+
light2: "lt2",
|
|
22
|
+
accent1: "accent1",
|
|
23
|
+
accent2: "accent2",
|
|
24
|
+
accent3: "accent3",
|
|
25
|
+
accent4: "accent4",
|
|
26
|
+
accent5: "accent5",
|
|
27
|
+
accent6: "accent6",
|
|
28
|
+
hyperlink: "hlink",
|
|
29
|
+
followedHyperlink: "folHlink",
|
|
30
|
+
// Also accept direct scheme keys
|
|
31
|
+
dk1: "dk1",
|
|
32
|
+
lt1: "lt1",
|
|
33
|
+
dk2: "dk2",
|
|
34
|
+
lt2: "lt2",
|
|
35
|
+
hlink: "hlink",
|
|
36
|
+
folHlink: "folHlink"
|
|
37
|
+
};
|
|
38
|
+
// =============================================================================
|
|
39
|
+
// Tint / Shade transformations
|
|
40
|
+
// =============================================================================
|
|
41
|
+
/**
|
|
42
|
+
* Apply a tint (lighten toward white) to a hex color.
|
|
43
|
+
*
|
|
44
|
+
* OOXML tint formula: `newComponent = component + (255 - component) * tint`
|
|
45
|
+
* where tint ∈ [0, 1]. tint=0 → original, tint=1 → white.
|
|
46
|
+
*
|
|
47
|
+
* @param hex - 6-character hex color string (no "#" prefix).
|
|
48
|
+
* @param tint - Tint value in range [0, 1].
|
|
49
|
+
* @returns Tinted 6-character hex color string.
|
|
50
|
+
*/
|
|
51
|
+
export function applyTint(hex, tint) {
|
|
52
|
+
const r = parseInt(hex.slice(0, 2), 16);
|
|
53
|
+
const g = parseInt(hex.slice(2, 4), 16);
|
|
54
|
+
const b = parseInt(hex.slice(4, 6), 16);
|
|
55
|
+
const nr = Math.round(r + (255 - r) * tint);
|
|
56
|
+
const ng = Math.round(g + (255 - g) * tint);
|
|
57
|
+
const nb = Math.round(b + (255 - b) * tint);
|
|
58
|
+
return toHex2(nr) + toHex2(ng) + toHex2(nb);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Apply a shade (darken toward black) to a hex color.
|
|
62
|
+
*
|
|
63
|
+
* OOXML shade formula: `newComponent = component * shade`
|
|
64
|
+
* where shade ∈ [0, 1]. shade=1 → original, shade=0 → black.
|
|
65
|
+
*
|
|
66
|
+
* @param hex - 6-character hex color string (no "#" prefix).
|
|
67
|
+
* @param shade - Shade value in range [0, 1].
|
|
68
|
+
* @returns Shaded 6-character hex color string.
|
|
69
|
+
*/
|
|
70
|
+
export function applyShade(hex, shade) {
|
|
71
|
+
const r = parseInt(hex.slice(0, 2), 16);
|
|
72
|
+
const g = parseInt(hex.slice(2, 4), 16);
|
|
73
|
+
const b = parseInt(hex.slice(4, 6), 16);
|
|
74
|
+
const nr = Math.round(r * shade);
|
|
75
|
+
const ng = Math.round(g * shade);
|
|
76
|
+
const nb = Math.round(b * shade);
|
|
77
|
+
return toHex2(nr) + toHex2(ng) + toHex2(nb);
|
|
78
|
+
}
|
|
79
|
+
// =============================================================================
|
|
80
|
+
// Theme Color Resolution
|
|
81
|
+
// =============================================================================
|
|
82
|
+
/**
|
|
83
|
+
* Resolve a theme color reference to a hex color string.
|
|
84
|
+
*
|
|
85
|
+
* Looks up the theme color by attribute name (normalising long-form names
|
|
86
|
+
* like "dark1" to scheme keys like "dk1"), then applies optional tint or
|
|
87
|
+
* shade transformation.
|
|
88
|
+
*
|
|
89
|
+
* @param themeColorName - The theme color attribute value (e.g. "accent1", "dark1", "dk1").
|
|
90
|
+
* @param colors - The theme color scheme (scheme key → 6-char hex mapping).
|
|
91
|
+
* @param tint - Optional tint value in [0, 1]. Values > 1 are treated as
|
|
92
|
+
* raw bytes (0-255) and normalised by dividing by 255.
|
|
93
|
+
* @param shade - Optional shade value in [0, 1]. Values > 1 are treated as
|
|
94
|
+
* raw bytes (0-255) and normalised by dividing by 255.
|
|
95
|
+
* @returns Resolved 6-character hex color string, or undefined if the theme
|
|
96
|
+
* color name cannot be found in the provided scheme.
|
|
97
|
+
*/
|
|
98
|
+
export function resolveOoxmlThemeColor(themeColorName, colors, tint, shade) {
|
|
99
|
+
const key = THEME_COLOR_ATTRIBUTE_MAP[themeColorName] ?? themeColorName;
|
|
100
|
+
const base = colors[key];
|
|
101
|
+
if (!base) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
if (tint !== undefined && tint !== 0) {
|
|
105
|
+
const normalizedTint = tint > 1 ? tint / 255 : tint;
|
|
106
|
+
return applyTint(base, normalizedTint);
|
|
107
|
+
}
|
|
108
|
+
if (shade !== undefined && shade !== 0) {
|
|
109
|
+
const normalizedShade = shade > 1 ? shade / 255 : shade;
|
|
110
|
+
return applyShade(base, normalizedShade);
|
|
111
|
+
}
|
|
112
|
+
return base;
|
|
113
|
+
}
|
|
114
|
+
// =============================================================================
|
|
115
|
+
// Helpers
|
|
116
|
+
// =============================================================================
|
|
117
|
+
function toHex2(n) {
|
|
118
|
+
const h = Math.max(0, Math.min(255, n)).toString(16);
|
|
119
|
+
return h.length < 2 ? "0" + h : h;
|
|
120
|
+
}
|
|
@@ -52,6 +52,15 @@ function hasDeflateRaw() {
|
|
|
52
52
|
/**
|
|
53
53
|
* Base streaming codec with unified lifecycle management.
|
|
54
54
|
* Backend can emit events via the returned codec reference.
|
|
55
|
+
*
|
|
56
|
+
* Backpressure: each `write()` chains a deflate task onto `writeChain`.
|
|
57
|
+
* Without throttling, a fast producer could enqueue thousands of tasks
|
|
58
|
+
* (each retaining its input chunk) before the backend catches up. To
|
|
59
|
+
* surface backpressure to the caller, we count pending writes; once the
|
|
60
|
+
* count reaches `HIGH_WATER_MARK`, `write()` returns `false`. When the
|
|
61
|
+
* count drops back below the mark, we emit `'drain'` so callers using
|
|
62
|
+
* the standard Node Writable contract (`pipe()` / `pipeline()`) can
|
|
63
|
+
* resume. This keeps memory bounded on slow backends or slow consumers.
|
|
55
64
|
*/
|
|
56
65
|
class AsyncStreamCodec extends event_emitter_1.EventEmitter {
|
|
57
66
|
constructor() {
|
|
@@ -60,6 +69,8 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
|
|
|
60
69
|
this.destroyed = false;
|
|
61
70
|
this.writeChain = Promise.resolve();
|
|
62
71
|
this._backend = null;
|
|
72
|
+
this._pendingWrites = 0;
|
|
73
|
+
this._needsDrain = false;
|
|
63
74
|
}
|
|
64
75
|
setBackend(backend) {
|
|
65
76
|
this._backend = backend;
|
|
@@ -79,6 +90,7 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
|
|
|
79
90
|
if (!backend) {
|
|
80
91
|
throw new Error("Backend not initialized");
|
|
81
92
|
}
|
|
93
|
+
this._pendingWrites++;
|
|
82
94
|
const promise = this.writeChain.then(() => backend.write(chunk));
|
|
83
95
|
this.writeChain = promise;
|
|
84
96
|
promise
|
|
@@ -91,7 +103,20 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
|
|
|
91
103
|
if (!this.destroyed) {
|
|
92
104
|
handleError(this, err, callback);
|
|
93
105
|
}
|
|
106
|
+
})
|
|
107
|
+
.finally(() => {
|
|
108
|
+
this._pendingWrites--;
|
|
109
|
+
if (this._needsDrain &&
|
|
110
|
+
this._pendingWrites < AsyncStreamCodec.HIGH_WATER_MARK &&
|
|
111
|
+
!this.destroyed) {
|
|
112
|
+
this._needsDrain = false;
|
|
113
|
+
this.emit("drain");
|
|
114
|
+
}
|
|
94
115
|
});
|
|
116
|
+
if (this._pendingWrites >= AsyncStreamCodec.HIGH_WATER_MARK) {
|
|
117
|
+
this._needsDrain = true;
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
95
120
|
return true;
|
|
96
121
|
}
|
|
97
122
|
end(callback) {
|
|
@@ -118,6 +143,10 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
|
|
|
118
143
|
}
|
|
119
144
|
}
|
|
120
145
|
}
|
|
146
|
+
// Allow up to this many in-flight chunks before signalling backpressure.
|
|
147
|
+
// 16 chunks × typical 64 KiB ≈ 1 MiB of in-flight retention, enough to
|
|
148
|
+
// saturate the deflate backend without unbounded growth.
|
|
149
|
+
AsyncStreamCodec.HIGH_WATER_MARK = 16;
|
|
121
150
|
function createNativeWebStreamCodec(format, isCompress) {
|
|
122
151
|
const stream = isCompress
|
|
123
152
|
? new CompressionStream(format)
|
|
@@ -21,6 +21,15 @@ const _stream_1 = require("../../stream/index.js");
|
|
|
21
21
|
/**
|
|
22
22
|
* Generic wrapper around zlib streams that flushes after every write.
|
|
23
23
|
* This ensures true streaming behavior - data is emitted immediately, not buffered.
|
|
24
|
+
*
|
|
25
|
+
* Backpressure note: the inner `zstream` (Node's `zlib.createDeflate*` etc)
|
|
26
|
+
* is itself a Transform, so its own `_transform` honours backpressure on
|
|
27
|
+
* the writer side. The `'data'` listener pushes into our own Transform's
|
|
28
|
+
* readable side; if a consumer is slow, our `push()` returns false but
|
|
29
|
+
* the inner zlib stream keeps emitting 'data' until its OWN HWM stops it.
|
|
30
|
+
* In the worst case, the zlib internal queue + our readable queue both
|
|
31
|
+
* fill to HWM (≈64 KiB total). For excelts's actual use (one zlib stream
|
|
32
|
+
* per ZIP entry, consumer is the zip framer which keeps up), this is fine.
|
|
24
33
|
*/
|
|
25
34
|
class TrueStreamingZlib extends _stream_1.Transform {
|
|
26
35
|
constructor(zstream) {
|
|
@@ -507,9 +507,10 @@ class WorkerPool {
|
|
|
507
507
|
*/
|
|
508
508
|
_handleWorkerError(poolWorker, event) {
|
|
509
509
|
const taskId = poolWorker.currentTaskId;
|
|
510
|
+
const session = poolWorker.streamSession;
|
|
510
511
|
// Terminate the failed worker
|
|
511
512
|
this._terminateWorker(poolWorker);
|
|
512
|
-
// Fail the current task if any
|
|
513
|
+
// Fail the current batch task if any
|
|
513
514
|
if (taskId !== null) {
|
|
514
515
|
const task = this._pendingTasks.get(taskId);
|
|
515
516
|
if (task) {
|
|
@@ -519,6 +520,30 @@ class WorkerPool {
|
|
|
519
520
|
task.reject(new Error(event.message || "Worker error"));
|
|
520
521
|
}
|
|
521
522
|
}
|
|
523
|
+
// CRITICAL: a worker hosting a streaming session can die from an
|
|
524
|
+
// uncaught error in the worker script, OOM, CSP violation, page
|
|
525
|
+
// unload, etc. The session is NOT in `_pendingTasks` (those are
|
|
526
|
+
// batch-only) — without this, the session's `resolveStart` /
|
|
527
|
+
// slot waiter / drain waiter / `onError` are never called and the
|
|
528
|
+
// caller (AsyncStreamCodec.write/end) hangs forever. Wake every
|
|
529
|
+
// promise we own and report the error to the codec.
|
|
530
|
+
if (session) {
|
|
531
|
+
const error = new Error(event.message || "Worker terminated unexpectedly");
|
|
532
|
+
session.ended = true;
|
|
533
|
+
session.rejectStart?.(error);
|
|
534
|
+
session.rejectStart = null;
|
|
535
|
+
session.resolveStart = null;
|
|
536
|
+
this._resolveSlotWaiter(session);
|
|
537
|
+
this._resolveDrainWaiter(session);
|
|
538
|
+
try {
|
|
539
|
+
session.onError(error);
|
|
540
|
+
}
|
|
541
|
+
catch {
|
|
542
|
+
// The onError callback is user-supplied; if it throws we still
|
|
543
|
+
// want to keep cleaning up the pool.
|
|
544
|
+
}
|
|
545
|
+
poolWorker.streamSession = null;
|
|
546
|
+
}
|
|
522
547
|
// Try to process remaining tasks
|
|
523
548
|
this._processQueue();
|
|
524
549
|
}
|
|
@@ -1232,15 +1232,18 @@ class ArchiveFile {
|
|
|
1232
1232
|
* archive.addFile("large-file.bin");
|
|
1233
1233
|
* archive.addDirectory("./data");
|
|
1234
1234
|
*
|
|
1235
|
-
* //
|
|
1235
|
+
* // Recommended: pipeTo() handles backpressure end-to-end.
|
|
1236
|
+
* await archive.pipeTo(createWriteStream("output.zip"));
|
|
1237
|
+
*
|
|
1238
|
+
* // Or stream manually — REMEMBER to honor backpressure on the sink:
|
|
1239
|
+
* import { once } from "node:events";
|
|
1236
1240
|
* const writeStream = createWriteStream("output.zip");
|
|
1237
1241
|
* for await (const chunk of archive.stream()) {
|
|
1238
|
-
* writeStream.write(chunk)
|
|
1242
|
+
* if (!writeStream.write(chunk)) {
|
|
1243
|
+
* await once(writeStream, "drain");
|
|
1244
|
+
* }
|
|
1239
1245
|
* }
|
|
1240
1246
|
* writeStream.end();
|
|
1241
|
-
*
|
|
1242
|
-
* // Or use pipeTo() for simpler file output
|
|
1243
|
-
* await archive.pipeTo(createWriteStream("output.zip"));
|
|
1244
1247
|
* ```
|
|
1245
1248
|
*/
|
|
1246
1249
|
stream(options = {}) {
|
|
@@ -2618,23 +2621,82 @@ class ArchiveFile {
|
|
|
2618
2621
|
}
|
|
2619
2622
|
clearConsumedChunks();
|
|
2620
2623
|
}
|
|
2624
|
+
// Eagerly attach an error listener so a mid-stream gzip failure is
|
|
2625
|
+
// captured and surfaced (instead of becoming an uncaught exception
|
|
2626
|
+
// when the listener-less Transform emits 'error' during our drain
|
|
2627
|
+
// await below). Stored in a closure variable so the drain await can
|
|
2628
|
+
// race against it.
|
|
2629
|
+
let gzipError = null;
|
|
2630
|
+
const onGzipError = (err) => {
|
|
2631
|
+
if (!gzipError) {
|
|
2632
|
+
gzipError = err;
|
|
2633
|
+
}
|
|
2634
|
+
};
|
|
2635
|
+
gzipStream.on("error", onGzipError);
|
|
2621
2636
|
// Collect gzip output
|
|
2622
2637
|
gzipStream.on("data", (chunk) => {
|
|
2623
2638
|
chunks.push(chunk);
|
|
2624
2639
|
});
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
//
|
|
2629
|
-
for (const
|
|
2630
|
-
|
|
2640
|
+
try {
|
|
2641
|
+
// Pipe tar chunks through gzip. Honor `gzipStream.write()`'s
|
|
2642
|
+
// backpressure signal so the gzip Transform's internal buffer
|
|
2643
|
+
// can't grow unbounded if tar produces faster than gzip deflates.
|
|
2644
|
+
for await (const tarChunk of tarIterable) {
|
|
2645
|
+
if (gzipError) {
|
|
2646
|
+
// gzipError is captured as an Error (the closure annotation
|
|
2647
|
+
// says `Error | null`); rethrow rather than wrap to preserve
|
|
2648
|
+
// the original stack and message.
|
|
2649
|
+
// oxlint-disable-next-line no-throw-literal
|
|
2650
|
+
throw gzipError;
|
|
2651
|
+
}
|
|
2652
|
+
if (!gzipStream.write(tarChunk)) {
|
|
2653
|
+
// Race drain vs error so a mid-stream gzip failure rejects
|
|
2654
|
+
// promptly instead of leaving us parked on a 'drain' that
|
|
2655
|
+
// will never fire.
|
|
2656
|
+
await new Promise((resolve, reject) => {
|
|
2657
|
+
const cleanup = () => {
|
|
2658
|
+
gzipStream.off("drain", onDrain);
|
|
2659
|
+
gzipStream.off("error", onError);
|
|
2660
|
+
};
|
|
2661
|
+
const onDrain = () => {
|
|
2662
|
+
cleanup();
|
|
2663
|
+
resolve();
|
|
2664
|
+
};
|
|
2665
|
+
const onError = (err) => {
|
|
2666
|
+
cleanup();
|
|
2667
|
+
reject(err);
|
|
2668
|
+
};
|
|
2669
|
+
gzipStream.once("drain", onDrain);
|
|
2670
|
+
gzipStream.once("error", onError);
|
|
2671
|
+
});
|
|
2672
|
+
}
|
|
2673
|
+
// Yield any available gzip output
|
|
2674
|
+
for (const chunk of drainChunks()) {
|
|
2675
|
+
yield chunk;
|
|
2676
|
+
}
|
|
2631
2677
|
}
|
|
2678
|
+
// Finalize gzip stream — re-use the existing onGzipError listener
|
|
2679
|
+
// for the end() callback path, but wrap it as a Promise that
|
|
2680
|
+
// rejects on either error or accepts on end.
|
|
2681
|
+
await new Promise((resolve, reject) => {
|
|
2682
|
+
if (gzipError) {
|
|
2683
|
+
reject(gzipError);
|
|
2684
|
+
return;
|
|
2685
|
+
}
|
|
2686
|
+
const onEndError = (err) => {
|
|
2687
|
+
gzipStream.off("error", onEndError);
|
|
2688
|
+
reject(err);
|
|
2689
|
+
};
|
|
2690
|
+
gzipStream.once("error", onEndError);
|
|
2691
|
+
gzipStream.end(() => {
|
|
2692
|
+
gzipStream.off("error", onEndError);
|
|
2693
|
+
resolve();
|
|
2694
|
+
});
|
|
2695
|
+
});
|
|
2696
|
+
}
|
|
2697
|
+
finally {
|
|
2698
|
+
gzipStream.off("error", onGzipError);
|
|
2632
2699
|
}
|
|
2633
|
-
// Finalize gzip stream
|
|
2634
|
-
await new Promise((resolve, reject) => {
|
|
2635
|
-
gzipStream.on("error", reject);
|
|
2636
|
-
gzipStream.end(() => resolve());
|
|
2637
|
-
});
|
|
2638
2700
|
// Yield remaining chunks
|
|
2639
2701
|
for (const chunk of drainChunks()) {
|
|
2640
2702
|
yield chunk;
|
|
@@ -54,6 +54,11 @@ class BrowserInflateRaw extends _stream_1.Duplex {
|
|
|
54
54
|
this._bytesIn = 0;
|
|
55
55
|
this._bytesOut = 0;
|
|
56
56
|
this._readingDone = false;
|
|
57
|
+
// Backpressure: when `push()` returns false, the reader loop parks on this
|
|
58
|
+
// resolver. `_read()` (called by Node when the consumer wants more bytes)
|
|
59
|
+
// resolves it so the loop continues. Without this, a slow consumer would
|
|
60
|
+
// cause unbounded growth of the Duplex's internal readable buffer.
|
|
61
|
+
this._readPullResolver = null;
|
|
57
62
|
// Track pending write count for proper ordering
|
|
58
63
|
this._pendingWrites = 0;
|
|
59
64
|
this._writeFinishedPromise = null;
|
|
@@ -111,6 +116,29 @@ class BrowserInflateRaw extends _stream_1.Duplex {
|
|
|
111
116
|
}
|
|
112
117
|
});
|
|
113
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Park the reader loop until the consumer pulls more data. Resolved by
|
|
121
|
+
* the next `_read()` invocation from Node, which signals that the
|
|
122
|
+
* Duplex's readable buffer has room again.
|
|
123
|
+
*/
|
|
124
|
+
_waitForReadablePull() {
|
|
125
|
+
if (this._readPullResolver) {
|
|
126
|
+
// Should not happen — only one push site at a time.
|
|
127
|
+
return Promise.resolve();
|
|
128
|
+
}
|
|
129
|
+
return new Promise(resolve => {
|
|
130
|
+
this._readPullResolver = resolve;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
_read(_size) {
|
|
134
|
+
// Consumer wants more bytes. Wake the reader loop if it parked on
|
|
135
|
+
// backpressure.
|
|
136
|
+
const resolver = this._readPullResolver;
|
|
137
|
+
if (resolver) {
|
|
138
|
+
this._readPullResolver = null;
|
|
139
|
+
resolver();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
114
142
|
async _startReading() {
|
|
115
143
|
if (this.reading) {
|
|
116
144
|
return;
|
|
@@ -123,8 +151,14 @@ class BrowserInflateRaw extends _stream_1.Duplex {
|
|
|
123
151
|
break;
|
|
124
152
|
}
|
|
125
153
|
this._bytesOut += value.length;
|
|
126
|
-
//
|
|
127
|
-
|
|
154
|
+
// Push to the Duplex's readable side. If the consumer is slow,
|
|
155
|
+
// `push()` returns false; pause our reader-loop until the consumer
|
|
156
|
+
// pulls. Without this, a fast WebStream decompressor could overrun
|
|
157
|
+
// the Duplex's readable buffer and accumulate megabytes of
|
|
158
|
+
// decompressed data with no consumer.
|
|
159
|
+
if (!this.push(value)) {
|
|
160
|
+
await this._waitForReadablePull();
|
|
161
|
+
}
|
|
128
162
|
}
|
|
129
163
|
}
|
|
130
164
|
catch (e) {
|
|
@@ -182,6 +216,13 @@ class BrowserInflateRaw extends _stream_1.Duplex {
|
|
|
182
216
|
this.writer.abort(error ?? undefined).catch(() => { });
|
|
183
217
|
}
|
|
184
218
|
this.reader.cancel(error ?? undefined).catch(() => { });
|
|
219
|
+
// Wake the reader-loop's backpressure waiter if any so `_startReading()`
|
|
220
|
+
// can unwind cleanly instead of hanging on a never-resolved promise.
|
|
221
|
+
const resolver = this._readPullResolver;
|
|
222
|
+
if (resolver) {
|
|
223
|
+
this._readPullResolver = null;
|
|
224
|
+
resolver();
|
|
225
|
+
}
|
|
185
226
|
return super.destroy(error ?? undefined);
|
|
186
227
|
}
|
|
187
228
|
}
|
|
@@ -783,8 +783,13 @@ function validateChartExOptions(opts) {
|
|
|
783
783
|
validateBinning(binning);
|
|
784
784
|
}
|
|
785
785
|
opts.series.forEach((series, i) => {
|
|
786
|
-
|
|
787
|
-
|
|
786
|
+
// A series must reference its data either via a worksheet formula
|
|
787
|
+
// (`values`) or via cached literal values (`literalValues`). Headless
|
|
788
|
+
// chart pipelines (e.g. the Word `buildWordChartExXml` bridge) ship
|
|
789
|
+
// only `literalValues` because there is no underlying worksheet to
|
|
790
|
+
// reference.
|
|
791
|
+
if (!series.values && !series.literalValues?.length) {
|
|
792
|
+
throw new errors_1.ChartOptionsError(`chartEx.series[${i}].values or literalValues is required.`);
|
|
788
793
|
}
|
|
789
794
|
if (series.literalValues?.some(value => !Number.isFinite(value))) {
|
|
790
795
|
throw new errors_1.ChartOptionsError(`chartEx.series[${i}].literalValues must contain only finite numbers.`);
|
|
@@ -3561,11 +3561,8 @@ function consolidateDataForRender(space) {
|
|
|
3561
3561
|
function renderChartData(data) {
|
|
3562
3562
|
const parts = [];
|
|
3563
3563
|
parts.push(" <cx:chartData>");
|
|
3564
|
-
//
|
|
3565
|
-
//
|
|
3566
|
-
// schema. The writer now emits it at the chartSpace level; the
|
|
3567
|
-
// deprecated `data.externalData` slot is ignored here so a
|
|
3568
|
-
// legacy round-trip cannot double-emit it.
|
|
3564
|
+
// `cx:externalData` is a child of `cx:chartSpace`, not `cx:chartData`,
|
|
3565
|
+
// per the Chart2014 schema — emitted by the chartSpace renderer.
|
|
3569
3566
|
for (const entry of data.data) {
|
|
3570
3567
|
parts.push(renderDataEntry(entry));
|
|
3571
3568
|
}
|
|
@@ -3781,10 +3778,8 @@ function renderChart(chart) {
|
|
|
3781
3778
|
if (chart.legend) {
|
|
3782
3779
|
parts.push(renderLegend(chart.legend));
|
|
3783
3780
|
}
|
|
3784
|
-
// CT_Chart
|
|
3785
|
-
//
|
|
3786
|
-
// legacy type field kept for backward compat (see the @deprecated
|
|
3787
|
-
// note on `ChartExChart.spPr`); do not emit it to avoid invalid XML.
|
|
3781
|
+
// `CT_Chart` carries no `spPr` per the Chart2014 schema — chart-frame
|
|
3782
|
+
// styling lives on `CT_ChartSpace`, emitted by the chartSpace renderer.
|
|
3788
3783
|
if (chart.extLst) {
|
|
3789
3784
|
parts.push(` ${chart.extLst}`);
|
|
3790
3785
|
}
|