@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
|
@@ -40,6 +40,15 @@ export function hasDeflateRaw() {
|
|
|
40
40
|
/**
|
|
41
41
|
* Base streaming codec with unified lifecycle management.
|
|
42
42
|
* Backend can emit events via the returned codec reference.
|
|
43
|
+
*
|
|
44
|
+
* Backpressure: each `write()` chains a deflate task onto `writeChain`.
|
|
45
|
+
* Without throttling, a fast producer could enqueue thousands of tasks
|
|
46
|
+
* (each retaining its input chunk) before the backend catches up. To
|
|
47
|
+
* surface backpressure to the caller, we count pending writes; once the
|
|
48
|
+
* count reaches `HIGH_WATER_MARK`, `write()` returns `false`. When the
|
|
49
|
+
* count drops back below the mark, we emit `'drain'` so callers using
|
|
50
|
+
* the standard Node Writable contract (`pipe()` / `pipeline()`) can
|
|
51
|
+
* resume. This keeps memory bounded on slow backends or slow consumers.
|
|
43
52
|
*/
|
|
44
53
|
class AsyncStreamCodec extends EventEmitter {
|
|
45
54
|
constructor() {
|
|
@@ -48,6 +57,8 @@ class AsyncStreamCodec extends EventEmitter {
|
|
|
48
57
|
this.destroyed = false;
|
|
49
58
|
this.writeChain = Promise.resolve();
|
|
50
59
|
this._backend = null;
|
|
60
|
+
this._pendingWrites = 0;
|
|
61
|
+
this._needsDrain = false;
|
|
51
62
|
}
|
|
52
63
|
setBackend(backend) {
|
|
53
64
|
this._backend = backend;
|
|
@@ -67,6 +78,7 @@ class AsyncStreamCodec extends EventEmitter {
|
|
|
67
78
|
if (!backend) {
|
|
68
79
|
throw new Error("Backend not initialized");
|
|
69
80
|
}
|
|
81
|
+
this._pendingWrites++;
|
|
70
82
|
const promise = this.writeChain.then(() => backend.write(chunk));
|
|
71
83
|
this.writeChain = promise;
|
|
72
84
|
promise
|
|
@@ -79,7 +91,20 @@ class AsyncStreamCodec extends EventEmitter {
|
|
|
79
91
|
if (!this.destroyed) {
|
|
80
92
|
handleError(this, err, callback);
|
|
81
93
|
}
|
|
94
|
+
})
|
|
95
|
+
.finally(() => {
|
|
96
|
+
this._pendingWrites--;
|
|
97
|
+
if (this._needsDrain &&
|
|
98
|
+
this._pendingWrites < AsyncStreamCodec.HIGH_WATER_MARK &&
|
|
99
|
+
!this.destroyed) {
|
|
100
|
+
this._needsDrain = false;
|
|
101
|
+
this.emit("drain");
|
|
102
|
+
}
|
|
82
103
|
});
|
|
104
|
+
if (this._pendingWrites >= AsyncStreamCodec.HIGH_WATER_MARK) {
|
|
105
|
+
this._needsDrain = true;
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
83
108
|
return true;
|
|
84
109
|
}
|
|
85
110
|
end(callback) {
|
|
@@ -106,6 +131,10 @@ class AsyncStreamCodec extends EventEmitter {
|
|
|
106
131
|
}
|
|
107
132
|
}
|
|
108
133
|
}
|
|
134
|
+
// Allow up to this many in-flight chunks before signalling backpressure.
|
|
135
|
+
// 16 chunks × typical 64 KiB ≈ 1 MiB of in-flight retention, enough to
|
|
136
|
+
// saturate the deflate backend without unbounded growth.
|
|
137
|
+
AsyncStreamCodec.HIGH_WATER_MARK = 16;
|
|
109
138
|
function createNativeWebStreamCodec(format, isCompress) {
|
|
110
139
|
const stream = isCompress
|
|
111
140
|
? new CompressionStream(format)
|
|
@@ -10,6 +10,15 @@ import { Transform } from "../../stream/index.browser.js";
|
|
|
10
10
|
/**
|
|
11
11
|
* Generic wrapper around zlib streams that flushes after every write.
|
|
12
12
|
* This ensures true streaming behavior - data is emitted immediately, not buffered.
|
|
13
|
+
*
|
|
14
|
+
* Backpressure note: the inner `zstream` (Node's `zlib.createDeflate*` etc)
|
|
15
|
+
* is itself a Transform, so its own `_transform` honours backpressure on
|
|
16
|
+
* the writer side. The `'data'` listener pushes into our own Transform's
|
|
17
|
+
* readable side; if a consumer is slow, our `push()` returns false but
|
|
18
|
+
* the inner zlib stream keeps emitting 'data' until its OWN HWM stops it.
|
|
19
|
+
* In the worst case, the zlib internal queue + our readable queue both
|
|
20
|
+
* fill to HWM (≈64 KiB total). For excelts's actual use (one zlib stream
|
|
21
|
+
* per ZIP entry, consumer is the zip framer which keeps up), this is fine.
|
|
13
22
|
*/
|
|
14
23
|
class TrueStreamingZlib extends Transform {
|
|
15
24
|
constructor(zstream) {
|
|
@@ -498,9 +498,10 @@ export class WorkerPool {
|
|
|
498
498
|
*/
|
|
499
499
|
_handleWorkerError(poolWorker, event) {
|
|
500
500
|
const taskId = poolWorker.currentTaskId;
|
|
501
|
+
const session = poolWorker.streamSession;
|
|
501
502
|
// Terminate the failed worker
|
|
502
503
|
this._terminateWorker(poolWorker);
|
|
503
|
-
// Fail the current task if any
|
|
504
|
+
// Fail the current batch task if any
|
|
504
505
|
if (taskId !== null) {
|
|
505
506
|
const task = this._pendingTasks.get(taskId);
|
|
506
507
|
if (task) {
|
|
@@ -510,6 +511,30 @@ export class WorkerPool {
|
|
|
510
511
|
task.reject(new Error(event.message || "Worker error"));
|
|
511
512
|
}
|
|
512
513
|
}
|
|
514
|
+
// CRITICAL: a worker hosting a streaming session can die from an
|
|
515
|
+
// uncaught error in the worker script, OOM, CSP violation, page
|
|
516
|
+
// unload, etc. The session is NOT in `_pendingTasks` (those are
|
|
517
|
+
// batch-only) — without this, the session's `resolveStart` /
|
|
518
|
+
// slot waiter / drain waiter / `onError` are never called and the
|
|
519
|
+
// caller (AsyncStreamCodec.write/end) hangs forever. Wake every
|
|
520
|
+
// promise we own and report the error to the codec.
|
|
521
|
+
if (session) {
|
|
522
|
+
const error = new Error(event.message || "Worker terminated unexpectedly");
|
|
523
|
+
session.ended = true;
|
|
524
|
+
session.rejectStart?.(error);
|
|
525
|
+
session.rejectStart = null;
|
|
526
|
+
session.resolveStart = null;
|
|
527
|
+
this._resolveSlotWaiter(session);
|
|
528
|
+
this._resolveDrainWaiter(session);
|
|
529
|
+
try {
|
|
530
|
+
session.onError(error);
|
|
531
|
+
}
|
|
532
|
+
catch {
|
|
533
|
+
// The onError callback is user-supplied; if it throws we still
|
|
534
|
+
// want to keep cleaning up the pool.
|
|
535
|
+
}
|
|
536
|
+
poolWorker.streamSession = null;
|
|
537
|
+
}
|
|
513
538
|
// Try to process remaining tasks
|
|
514
539
|
this._processQueue();
|
|
515
540
|
}
|
|
@@ -234,15 +234,18 @@ export declare class ArchiveFile<F extends ArchiveFormat = "zip"> {
|
|
|
234
234
|
* archive.addFile("large-file.bin");
|
|
235
235
|
* archive.addDirectory("./data");
|
|
236
236
|
*
|
|
237
|
-
* //
|
|
237
|
+
* // Recommended: pipeTo() handles backpressure end-to-end.
|
|
238
|
+
* await archive.pipeTo(createWriteStream("output.zip"));
|
|
239
|
+
*
|
|
240
|
+
* // Or stream manually — REMEMBER to honor backpressure on the sink:
|
|
241
|
+
* import { once } from "node:events";
|
|
238
242
|
* const writeStream = createWriteStream("output.zip");
|
|
239
243
|
* for await (const chunk of archive.stream()) {
|
|
240
|
-
* writeStream.write(chunk)
|
|
244
|
+
* if (!writeStream.write(chunk)) {
|
|
245
|
+
* await once(writeStream, "drain");
|
|
246
|
+
* }
|
|
241
247
|
* }
|
|
242
248
|
* writeStream.end();
|
|
243
|
-
*
|
|
244
|
-
* // Or use pipeTo() for simpler file output
|
|
245
|
-
* await archive.pipeTo(createWriteStream("output.zip"));
|
|
246
249
|
* ```
|
|
247
250
|
*/
|
|
248
251
|
stream(options?: ArchiveStreamOptions): AsyncIterable<Uint8Array>;
|
|
@@ -1196,15 +1196,18 @@ export class ArchiveFile {
|
|
|
1196
1196
|
* archive.addFile("large-file.bin");
|
|
1197
1197
|
* archive.addDirectory("./data");
|
|
1198
1198
|
*
|
|
1199
|
-
* //
|
|
1199
|
+
* // Recommended: pipeTo() handles backpressure end-to-end.
|
|
1200
|
+
* await archive.pipeTo(createWriteStream("output.zip"));
|
|
1201
|
+
*
|
|
1202
|
+
* // Or stream manually — REMEMBER to honor backpressure on the sink:
|
|
1203
|
+
* import { once } from "node:events";
|
|
1200
1204
|
* const writeStream = createWriteStream("output.zip");
|
|
1201
1205
|
* for await (const chunk of archive.stream()) {
|
|
1202
|
-
* writeStream.write(chunk)
|
|
1206
|
+
* if (!writeStream.write(chunk)) {
|
|
1207
|
+
* await once(writeStream, "drain");
|
|
1208
|
+
* }
|
|
1203
1209
|
* }
|
|
1204
1210
|
* writeStream.end();
|
|
1205
|
-
*
|
|
1206
|
-
* // Or use pipeTo() for simpler file output
|
|
1207
|
-
* await archive.pipeTo(createWriteStream("output.zip"));
|
|
1208
1211
|
* ```
|
|
1209
1212
|
*/
|
|
1210
1213
|
stream(options = {}) {
|
|
@@ -2582,23 +2585,82 @@ export class ArchiveFile {
|
|
|
2582
2585
|
}
|
|
2583
2586
|
clearConsumedChunks();
|
|
2584
2587
|
}
|
|
2588
|
+
// Eagerly attach an error listener so a mid-stream gzip failure is
|
|
2589
|
+
// captured and surfaced (instead of becoming an uncaught exception
|
|
2590
|
+
// when the listener-less Transform emits 'error' during our drain
|
|
2591
|
+
// await below). Stored in a closure variable so the drain await can
|
|
2592
|
+
// race against it.
|
|
2593
|
+
let gzipError = null;
|
|
2594
|
+
const onGzipError = (err) => {
|
|
2595
|
+
if (!gzipError) {
|
|
2596
|
+
gzipError = err;
|
|
2597
|
+
}
|
|
2598
|
+
};
|
|
2599
|
+
gzipStream.on("error", onGzipError);
|
|
2585
2600
|
// Collect gzip output
|
|
2586
2601
|
gzipStream.on("data", (chunk) => {
|
|
2587
2602
|
chunks.push(chunk);
|
|
2588
2603
|
});
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
//
|
|
2593
|
-
for (const
|
|
2594
|
-
|
|
2604
|
+
try {
|
|
2605
|
+
// Pipe tar chunks through gzip. Honor `gzipStream.write()`'s
|
|
2606
|
+
// backpressure signal so the gzip Transform's internal buffer
|
|
2607
|
+
// can't grow unbounded if tar produces faster than gzip deflates.
|
|
2608
|
+
for await (const tarChunk of tarIterable) {
|
|
2609
|
+
if (gzipError) {
|
|
2610
|
+
// gzipError is captured as an Error (the closure annotation
|
|
2611
|
+
// says `Error | null`); rethrow rather than wrap to preserve
|
|
2612
|
+
// the original stack and message.
|
|
2613
|
+
// oxlint-disable-next-line no-throw-literal
|
|
2614
|
+
throw gzipError;
|
|
2615
|
+
}
|
|
2616
|
+
if (!gzipStream.write(tarChunk)) {
|
|
2617
|
+
// Race drain vs error so a mid-stream gzip failure rejects
|
|
2618
|
+
// promptly instead of leaving us parked on a 'drain' that
|
|
2619
|
+
// will never fire.
|
|
2620
|
+
await new Promise((resolve, reject) => {
|
|
2621
|
+
const cleanup = () => {
|
|
2622
|
+
gzipStream.off("drain", onDrain);
|
|
2623
|
+
gzipStream.off("error", onError);
|
|
2624
|
+
};
|
|
2625
|
+
const onDrain = () => {
|
|
2626
|
+
cleanup();
|
|
2627
|
+
resolve();
|
|
2628
|
+
};
|
|
2629
|
+
const onError = (err) => {
|
|
2630
|
+
cleanup();
|
|
2631
|
+
reject(err);
|
|
2632
|
+
};
|
|
2633
|
+
gzipStream.once("drain", onDrain);
|
|
2634
|
+
gzipStream.once("error", onError);
|
|
2635
|
+
});
|
|
2636
|
+
}
|
|
2637
|
+
// Yield any available gzip output
|
|
2638
|
+
for (const chunk of drainChunks()) {
|
|
2639
|
+
yield chunk;
|
|
2640
|
+
}
|
|
2595
2641
|
}
|
|
2642
|
+
// Finalize gzip stream — re-use the existing onGzipError listener
|
|
2643
|
+
// for the end() callback path, but wrap it as a Promise that
|
|
2644
|
+
// rejects on either error or accepts on end.
|
|
2645
|
+
await new Promise((resolve, reject) => {
|
|
2646
|
+
if (gzipError) {
|
|
2647
|
+
reject(gzipError);
|
|
2648
|
+
return;
|
|
2649
|
+
}
|
|
2650
|
+
const onEndError = (err) => {
|
|
2651
|
+
gzipStream.off("error", onEndError);
|
|
2652
|
+
reject(err);
|
|
2653
|
+
};
|
|
2654
|
+
gzipStream.once("error", onEndError);
|
|
2655
|
+
gzipStream.end(() => {
|
|
2656
|
+
gzipStream.off("error", onEndError);
|
|
2657
|
+
resolve();
|
|
2658
|
+
});
|
|
2659
|
+
});
|
|
2660
|
+
}
|
|
2661
|
+
finally {
|
|
2662
|
+
gzipStream.off("error", onGzipError);
|
|
2596
2663
|
}
|
|
2597
|
-
// Finalize gzip stream
|
|
2598
|
-
await new Promise((resolve, reject) => {
|
|
2599
|
-
gzipStream.on("error", reject);
|
|
2600
|
-
gzipStream.end(() => resolve());
|
|
2601
|
-
});
|
|
2602
2664
|
// Yield remaining chunks
|
|
2603
2665
|
for (const chunk of drainChunks()) {
|
|
2604
2666
|
yield chunk;
|
|
@@ -49,6 +49,11 @@ class BrowserInflateRaw extends Duplex {
|
|
|
49
49
|
this._bytesIn = 0;
|
|
50
50
|
this._bytesOut = 0;
|
|
51
51
|
this._readingDone = false;
|
|
52
|
+
// Backpressure: when `push()` returns false, the reader loop parks on this
|
|
53
|
+
// resolver. `_read()` (called by Node when the consumer wants more bytes)
|
|
54
|
+
// resolves it so the loop continues. Without this, a slow consumer would
|
|
55
|
+
// cause unbounded growth of the Duplex's internal readable buffer.
|
|
56
|
+
this._readPullResolver = null;
|
|
52
57
|
// Track pending write count for proper ordering
|
|
53
58
|
this._pendingWrites = 0;
|
|
54
59
|
this._writeFinishedPromise = null;
|
|
@@ -106,6 +111,29 @@ class BrowserInflateRaw extends Duplex {
|
|
|
106
111
|
}
|
|
107
112
|
});
|
|
108
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Park the reader loop until the consumer pulls more data. Resolved by
|
|
116
|
+
* the next `_read()` invocation from Node, which signals that the
|
|
117
|
+
* Duplex's readable buffer has room again.
|
|
118
|
+
*/
|
|
119
|
+
_waitForReadablePull() {
|
|
120
|
+
if (this._readPullResolver) {
|
|
121
|
+
// Should not happen — only one push site at a time.
|
|
122
|
+
return Promise.resolve();
|
|
123
|
+
}
|
|
124
|
+
return new Promise(resolve => {
|
|
125
|
+
this._readPullResolver = resolve;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
_read(_size) {
|
|
129
|
+
// Consumer wants more bytes. Wake the reader loop if it parked on
|
|
130
|
+
// backpressure.
|
|
131
|
+
const resolver = this._readPullResolver;
|
|
132
|
+
if (resolver) {
|
|
133
|
+
this._readPullResolver = null;
|
|
134
|
+
resolver();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
109
137
|
async _startReading() {
|
|
110
138
|
if (this.reading) {
|
|
111
139
|
return;
|
|
@@ -118,8 +146,14 @@ class BrowserInflateRaw extends Duplex {
|
|
|
118
146
|
break;
|
|
119
147
|
}
|
|
120
148
|
this._bytesOut += value.length;
|
|
121
|
-
//
|
|
122
|
-
|
|
149
|
+
// Push to the Duplex's readable side. If the consumer is slow,
|
|
150
|
+
// `push()` returns false; pause our reader-loop until the consumer
|
|
151
|
+
// pulls. Without this, a fast WebStream decompressor could overrun
|
|
152
|
+
// the Duplex's readable buffer and accumulate megabytes of
|
|
153
|
+
// decompressed data with no consumer.
|
|
154
|
+
if (!this.push(value)) {
|
|
155
|
+
await this._waitForReadablePull();
|
|
156
|
+
}
|
|
123
157
|
}
|
|
124
158
|
}
|
|
125
159
|
catch (e) {
|
|
@@ -177,6 +211,13 @@ class BrowserInflateRaw extends Duplex {
|
|
|
177
211
|
this.writer.abort(error ?? undefined).catch(() => { });
|
|
178
212
|
}
|
|
179
213
|
this.reader.cancel(error ?? undefined).catch(() => { });
|
|
214
|
+
// Wake the reader-loop's backpressure waiter if any so `_startReading()`
|
|
215
|
+
// can unwind cleanly instead of hanging on a never-resolved promise.
|
|
216
|
+
const resolver = this._readPullResolver;
|
|
217
|
+
if (resolver) {
|
|
218
|
+
this._readPullResolver = null;
|
|
219
|
+
resolver();
|
|
220
|
+
}
|
|
180
221
|
return super.destroy(error ?? undefined);
|
|
181
222
|
}
|
|
182
223
|
}
|
|
@@ -779,8 +779,13 @@ function validateChartExOptions(opts) {
|
|
|
779
779
|
validateBinning(binning);
|
|
780
780
|
}
|
|
781
781
|
opts.series.forEach((series, i) => {
|
|
782
|
-
|
|
783
|
-
|
|
782
|
+
// A series must reference its data either via a worksheet formula
|
|
783
|
+
// (`values`) or via cached literal values (`literalValues`). Headless
|
|
784
|
+
// chart pipelines (e.g. the Word `buildWordChartExXml` bridge) ship
|
|
785
|
+
// only `literalValues` because there is no underlying worksheet to
|
|
786
|
+
// reference.
|
|
787
|
+
if (!series.values && !series.literalValues?.length) {
|
|
788
|
+
throw new ChartOptionsError(`chartEx.series[${i}].values or literalValues is required.`);
|
|
784
789
|
}
|
|
785
790
|
if (series.literalValues?.some(value => !Number.isFinite(value))) {
|
|
786
791
|
throw new ChartOptionsError(`chartEx.series[${i}].literalValues must contain only finite numbers.`);
|
|
@@ -3549,11 +3549,8 @@ function consolidateDataForRender(space) {
|
|
|
3549
3549
|
function renderChartData(data) {
|
|
3550
3550
|
const parts = [];
|
|
3551
3551
|
parts.push(" <cx:chartData>");
|
|
3552
|
-
//
|
|
3553
|
-
//
|
|
3554
|
-
// schema. The writer now emits it at the chartSpace level; the
|
|
3555
|
-
// deprecated `data.externalData` slot is ignored here so a
|
|
3556
|
-
// legacy round-trip cannot double-emit it.
|
|
3552
|
+
// `cx:externalData` is a child of `cx:chartSpace`, not `cx:chartData`,
|
|
3553
|
+
// per the Chart2014 schema — emitted by the chartSpace renderer.
|
|
3557
3554
|
for (const entry of data.data) {
|
|
3558
3555
|
parts.push(renderDataEntry(entry));
|
|
3559
3556
|
}
|
|
@@ -3769,10 +3766,8 @@ function renderChart(chart) {
|
|
|
3769
3766
|
if (chart.legend) {
|
|
3770
3767
|
parts.push(renderLegend(chart.legend));
|
|
3771
3768
|
}
|
|
3772
|
-
// CT_Chart
|
|
3773
|
-
//
|
|
3774
|
-
// legacy type field kept for backward compat (see the @deprecated
|
|
3775
|
-
// note on `ChartExChart.spPr`); do not emit it to avoid invalid XML.
|
|
3769
|
+
// `CT_Chart` carries no `spPr` per the Chart2014 schema — chart-frame
|
|
3770
|
+
// styling lives on `CT_ChartSpace`, emitted by the chartSpace renderer.
|
|
3776
3771
|
if (chart.extLst) {
|
|
3777
3772
|
parts.push(` ${chart.extLst}`);
|
|
3778
3773
|
}
|
|
@@ -89,18 +89,6 @@ export interface ChartExSpace {
|
|
|
89
89
|
extLst?: string;
|
|
90
90
|
}
|
|
91
91
|
export interface ChartExData {
|
|
92
|
-
/**
|
|
93
|
-
* @deprecated Moved to {@link ChartExSpace.externalData} to match
|
|
94
|
-
* the Chart2014 schema (`cx:externalData` is a child of
|
|
95
|
-
* `cx:chartSpace`, not `cx:chartData`). The parser migrates legacy
|
|
96
|
-
* on-disk placements into `ChartExSpace.externalData`; this field
|
|
97
|
-
* remains on the type only to avoid breaking callers that read it
|
|
98
|
-
* directly. Write-side code no longer consults this slot.
|
|
99
|
-
*/
|
|
100
|
-
externalData?: Array<{
|
|
101
|
-
id: string;
|
|
102
|
-
autoUpdate?: boolean;
|
|
103
|
-
}>;
|
|
104
92
|
/** Chart data (numeric/string arrays referenced by series) */
|
|
105
93
|
data: ChartExDataEntry[];
|
|
106
94
|
}
|
|
@@ -129,7 +129,7 @@ interface ChartAnchorRange {
|
|
|
129
129
|
* `toPNG`, `unknownElements`) work uniformly. ChartTypeGroup-level
|
|
130
130
|
* APIs (`chartTypes`, `axes`, `plotArea`, `getAxis`, `categoryAxis`,
|
|
131
131
|
* `valueAxis`, `addSeries`, `removeSeries`, `getSeries`,
|
|
132
|
-
* `updateSeries`, `addSeriesFromOptions`, `
|
|
132
|
+
* `updateSeries`, `addSeriesFromOptions`, `getSeriesCount`, `mutate`,
|
|
133
133
|
* `setStyle`) are classic-only — ChartEx has its own topology that
|
|
134
134
|
* doesn't map cleanly onto the classic group/series abstraction;
|
|
135
135
|
* use {@link Chart.mutateChartEx} for ChartEx mutations.
|
|
@@ -393,10 +393,6 @@ declare class Chart {
|
|
|
393
393
|
* @param groupIndex - 0-based index of the chart type group (defaults to 0).
|
|
394
394
|
*/
|
|
395
395
|
getSeriesCount(groupIndex?: number): number;
|
|
396
|
-
/**
|
|
397
|
-
* @deprecated Use `getSeriesCount()` instead. Returns the count of series in the first chart type group.
|
|
398
|
-
*/
|
|
399
|
-
get seriesCount(): number;
|
|
400
396
|
/**
|
|
401
397
|
* Create a deep copy of this chart and add it to a target worksheet.
|
|
402
398
|
* The new chart receives a fresh chartNumber; the original is untouched.
|
|
@@ -55,7 +55,7 @@ const RAW_TX_CV_RE = /<c:v(?:\s[^>]*)?>([\s\S]*?)<\/c:v>/g;
|
|
|
55
55
|
* `toPNG`, `unknownElements`) work uniformly. ChartTypeGroup-level
|
|
56
56
|
* APIs (`chartTypes`, `axes`, `plotArea`, `getAxis`, `categoryAxis`,
|
|
57
57
|
* `valueAxis`, `addSeries`, `removeSeries`, `getSeries`,
|
|
58
|
-
* `updateSeries`, `addSeriesFromOptions`, `
|
|
58
|
+
* `updateSeries`, `addSeriesFromOptions`, `getSeriesCount`, `mutate`,
|
|
59
59
|
* `setStyle`) are classic-only — ChartEx has its own topology that
|
|
60
60
|
* doesn't map cleanly onto the classic group/series abstraction;
|
|
61
61
|
* use {@link Chart.mutateChartEx} for ChartEx mutations.
|
|
@@ -878,12 +878,6 @@ class Chart {
|
|
|
878
878
|
const ctg = this.chartTypes[groupIndex];
|
|
879
879
|
return ctg?.series?.length ?? 0;
|
|
880
880
|
}
|
|
881
|
-
/**
|
|
882
|
-
* @deprecated Use `getSeriesCount()` instead. Returns the count of series in the first chart type group.
|
|
883
|
-
*/
|
|
884
|
-
get seriesCount() {
|
|
885
|
-
return this.getSeriesCount(0);
|
|
886
|
-
}
|
|
887
881
|
// ===========================================================================
|
|
888
882
|
// Chart cloning and duplication
|
|
889
883
|
// ===========================================================================
|
|
@@ -1501,12 +1501,6 @@ export interface PivotFormat {
|
|
|
1501
1501
|
* label styling without dropping into raw XML.
|
|
1502
1502
|
*/
|
|
1503
1503
|
dLbl?: DataLabelEntry;
|
|
1504
|
-
/**
|
|
1505
|
-
* @deprecated Use {@link dLbl} for structured access. Retained so
|
|
1506
|
-
* files parsed before the structured slot landed continue to
|
|
1507
|
-
* round-trip. Writers prefer `dLbl` when both are present.
|
|
1508
|
-
*/
|
|
1509
|
-
rawDLbl?: string;
|
|
1510
1504
|
/** Extension list (raw XML for round-trip). */
|
|
1511
1505
|
extLst?: string;
|
|
1512
1506
|
}
|
|
@@ -500,7 +500,31 @@ export class WorkbookReaderBase extends EventEmitter {
|
|
|
500
500
|
}
|
|
501
501
|
async *_parseEntries(stream) {
|
|
502
502
|
const zip = createParse({ forceStream: true });
|
|
503
|
-
|
|
503
|
+
// Bidirectional error propagation, guarded against re-entry: each side
|
|
504
|
+
// marks itself "settled" before forwarding so the partner's destroy/emit
|
|
505
|
+
// doesn't bounce the error back into an infinite loop.
|
|
506
|
+
let propagating = false;
|
|
507
|
+
stream.on("error", (err) => {
|
|
508
|
+
if (propagating) {
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
propagating = true;
|
|
512
|
+
zip.emit("error", err);
|
|
513
|
+
});
|
|
514
|
+
zip.on("error", (err) => {
|
|
515
|
+
if (propagating) {
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
propagating = true;
|
|
519
|
+
try {
|
|
520
|
+
if (typeof stream.destroy === "function") {
|
|
521
|
+
stream.destroy(err);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
catch {
|
|
525
|
+
// Best-effort cleanup; original error already on `zip`.
|
|
526
|
+
}
|
|
527
|
+
});
|
|
504
528
|
stream.pipe(zip);
|
|
505
529
|
for await (const entry of iterateStream(zip)) {
|
|
506
530
|
let sheetNo;
|
|
@@ -48,6 +48,15 @@ class WorkbookReader extends WorkbookReaderBase {
|
|
|
48
48
|
return originalWrite(chunk, ...args);
|
|
49
49
|
};
|
|
50
50
|
tempStream.write = trackWrite;
|
|
51
|
+
// Forward source errors to the temp file stream so:
|
|
52
|
+
// - the file write doesn't silently leak when zip parsing fails
|
|
53
|
+
// - `writePromise` rejects with the original cause instead of hanging
|
|
54
|
+
// Without this, an `error` on `entry` (e.g. zip corruption / decryption
|
|
55
|
+
// failure) becomes an uncaught exception in Node ≥ 16.
|
|
56
|
+
entry.on("error", err => {
|
|
57
|
+
tempStream.destroy(err);
|
|
58
|
+
reject(err);
|
|
59
|
+
});
|
|
51
60
|
entry.pipe(tempStream);
|
|
52
61
|
});
|
|
53
62
|
return { sheetNo, path: filePath, cleanup, writePromise };
|
|
@@ -67,6 +67,7 @@ interface OutputStreamLike {
|
|
|
67
67
|
end(): void;
|
|
68
68
|
once(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
69
69
|
removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
70
|
+
on?(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
70
71
|
}
|
|
71
72
|
export interface WorksheetWriterLike {
|
|
72
73
|
id: number;
|
|
@@ -130,11 +131,50 @@ export declare abstract class WorkbookWriterBase<TWorksheetWriter extends Worksh
|
|
|
130
131
|
promise: Promise<void[] | void>;
|
|
131
132
|
protected _trueStreaming: boolean;
|
|
132
133
|
protected WorksheetWriterClass: WorksheetWriterConstructor<TWorksheetWriter>;
|
|
134
|
+
private _needsDrain;
|
|
135
|
+
private _drainResolvers;
|
|
136
|
+
private _drainListenerAttached;
|
|
137
|
+
private _sinkError;
|
|
133
138
|
constructor(options: WorkbookWriterOptions, WorksheetWriterClass: WorksheetWriterConstructor<TWorksheetWriter>);
|
|
134
139
|
/**
|
|
135
140
|
* Create output stream - can be overridden by Node.js to support filename
|
|
136
141
|
*/
|
|
137
142
|
protected _createOutputStream(options: WorkbookWriterOptions): OutputStreamLike;
|
|
143
|
+
/**
|
|
144
|
+
* Internal: record whether the sink accepted the last write. The
|
|
145
|
+
* `OutputStreamLike.write` type advertises `boolean | Promise<boolean>`
|
|
146
|
+
* for forward compatibility, but in practice every concrete sink we
|
|
147
|
+
* accept (Node `Writable`, browser `Writable` from `@stream`, internal
|
|
148
|
+
* `StreamBuf`, fs.WriteStream, etc) returns a sync `boolean`. We
|
|
149
|
+
* defensively handle the Promise shape but it's never exercised.
|
|
150
|
+
*/
|
|
151
|
+
private _trackBackpressure;
|
|
152
|
+
private _ensureDrainListener;
|
|
153
|
+
/**
|
|
154
|
+
* Attach error/close listeners on the user sink so any parked backpressure
|
|
155
|
+
* waiters are released the moment the sink fails. Without this, a
|
|
156
|
+
* `commit()` parked on `_waitForUserSinkDrain()` would hang forever if
|
|
157
|
+
* the sink errored before emitting 'drain'. Idempotent and a no-op for
|
|
158
|
+
* sinks that don't expose `.on` (e.g. internal `StreamBuf`).
|
|
159
|
+
*
|
|
160
|
+
* Uses a non-consuming listener: if the user has their own 'error' handler
|
|
161
|
+
* it still fires (EventEmitter broadcasts to all listeners). The error is
|
|
162
|
+
* also captured into `_sinkError` so `_finalize()` can replay it — `_finalize`
|
|
163
|
+
* registers its own listener with `once()`, which would miss errors that
|
|
164
|
+
* arrived earlier in the commit pipeline.
|
|
165
|
+
*/
|
|
166
|
+
private _lifecycleListenersAttached;
|
|
167
|
+
private _attachSinkLifecycleListeners;
|
|
168
|
+
private _wakeAllBackpressureWaiters;
|
|
169
|
+
/**
|
|
170
|
+
* Park here until any async writes have settled and the user sink has
|
|
171
|
+
* drained below its high-water mark. Resolves immediately when no
|
|
172
|
+
* backpressure is in flight.
|
|
173
|
+
*
|
|
174
|
+
* Called at async boundaries inside `commit()` so a slow sink throttles
|
|
175
|
+
* the producer instead of letting bytes accumulate unboundedly.
|
|
176
|
+
*/
|
|
177
|
+
private _waitForUserSinkDrain;
|
|
138
178
|
get definedNames(): DefinedNames;
|
|
139
179
|
/**
|
|
140
180
|
* The default font for the workbook (fontId=0 / "Normal" style).
|