@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,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SinkAdapter — unified writable-sink view.
|
|
3
|
+
*
|
|
4
|
+
* Producers (zip writers, docx streamers, etc.) generate `Uint8Array`
|
|
5
|
+
* chunks and want to push them through a user-supplied destination
|
|
6
|
+
* without caring whether that destination is a Web `WritableStream`,
|
|
7
|
+
* a Node `Writable`, or some duck-typed object.
|
|
8
|
+
*
|
|
9
|
+
* `SinkAdapter` collapses all three into one promise-based API:
|
|
10
|
+
* - `write(chunk)` resolves once the chunk has been accepted by the
|
|
11
|
+
* sink (after awaiting `drain` for Node-style sinks under
|
|
12
|
+
* backpressure, or `writer.ready` for Web streams).
|
|
13
|
+
* - `end()` finalises the sink and resolves on close.
|
|
14
|
+
* - The first sink error is captured and re-thrown from the next
|
|
15
|
+
* `write` / `end` so callers can't lose it.
|
|
16
|
+
*
|
|
17
|
+
* Producers are expected to either:
|
|
18
|
+
* - drive `await sink.write(chunk)` directly (preferred — gives
|
|
19
|
+
* true end-to-end backpressure), or
|
|
20
|
+
* - chain writes onto a single shared promise so a synchronous
|
|
21
|
+
* emit callback can still feed the adapter without blocking.
|
|
22
|
+
*/
|
|
23
|
+
import { onceEvent } from "./event-utils.js";
|
|
24
|
+
function isWebWritable(s) {
|
|
25
|
+
return (typeof s === "object" &&
|
|
26
|
+
s !== null &&
|
|
27
|
+
typeof s.getWriter === "function");
|
|
28
|
+
}
|
|
29
|
+
function isNodeWritable(s) {
|
|
30
|
+
return (typeof s === "object" &&
|
|
31
|
+
s !== null &&
|
|
32
|
+
typeof s.write === "function" &&
|
|
33
|
+
typeof s.end === "function" &&
|
|
34
|
+
(typeof s.once === "function" ||
|
|
35
|
+
typeof s.on === "function"));
|
|
36
|
+
}
|
|
37
|
+
/** Unified sink view with awaited write + error capture. */
|
|
38
|
+
export class SinkAdapter {
|
|
39
|
+
constructor(sink) {
|
|
40
|
+
this._error = null;
|
|
41
|
+
this._ended = false;
|
|
42
|
+
if (isWebWritable(sink)) {
|
|
43
|
+
this._kind = "web";
|
|
44
|
+
this._webWriter = sink.getWriter();
|
|
45
|
+
// Web writers expose .closed; surface termination errors through
|
|
46
|
+
// the same _error channel so producers see them.
|
|
47
|
+
this._webWriter.closed.catch((err) => {
|
|
48
|
+
this._captureError(err);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else if (isNodeWritable(sink)) {
|
|
52
|
+
this._kind = "node";
|
|
53
|
+
this._nodeSink = sink;
|
|
54
|
+
this._attachErrorListener(sink);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this._kind = "duck";
|
|
58
|
+
this._duckSink = sink;
|
|
59
|
+
this._attachErrorListener(sink);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The first error reported by the sink (or `null`). Producers that
|
|
64
|
+
* cannot await `write()` (synchronous emit callbacks) should poll
|
|
65
|
+
* this between operations.
|
|
66
|
+
*/
|
|
67
|
+
get error() {
|
|
68
|
+
return this._error;
|
|
69
|
+
}
|
|
70
|
+
async write(chunk) {
|
|
71
|
+
this._throwIfErrored();
|
|
72
|
+
if (this._ended) {
|
|
73
|
+
throw new Error("SinkAdapter: write after end");
|
|
74
|
+
}
|
|
75
|
+
if (chunk.length === 0) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (this._kind === "web") {
|
|
79
|
+
const w = this._webWriter;
|
|
80
|
+
// `ready` resolves once the internal queue has drained below the
|
|
81
|
+
// high-water mark; awaiting it gives backpressure for free.
|
|
82
|
+
await w.ready;
|
|
83
|
+
await w.write(chunk);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (this._kind === "node") {
|
|
87
|
+
const sink = this._nodeSink;
|
|
88
|
+
const ok = sink.write(chunk);
|
|
89
|
+
if (!ok) {
|
|
90
|
+
await onceEvent(sink, "drain");
|
|
91
|
+
this._throwIfErrored();
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// duck
|
|
96
|
+
const sink = this._duckSink;
|
|
97
|
+
const result = sink.write(chunk);
|
|
98
|
+
if (result instanceof Promise) {
|
|
99
|
+
await result;
|
|
100
|
+
}
|
|
101
|
+
else if (!result) {
|
|
102
|
+
await onceEvent(sink, "drain");
|
|
103
|
+
this._throwIfErrored();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async end() {
|
|
107
|
+
if (this._ended) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
this._ended = true;
|
|
111
|
+
this._throwIfErrored();
|
|
112
|
+
if (this._kind === "web") {
|
|
113
|
+
// close() rejects if the stream has already errored — we let that
|
|
114
|
+
// propagate so callers see the underlying failure.
|
|
115
|
+
await this._webWriter.close();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (this._kind === "node") {
|
|
119
|
+
const sink = this._nodeSink;
|
|
120
|
+
// Prefer the close event when available; some Node writables emit
|
|
121
|
+
// 'finish' first and only emit 'close' on `destroy()`. We listen
|
|
122
|
+
// for both.
|
|
123
|
+
const finished = onceEventAny(sink, ["close", "finish"]);
|
|
124
|
+
sink.end();
|
|
125
|
+
await finished;
|
|
126
|
+
this._throwIfErrored();
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
// duck
|
|
130
|
+
const sink = this._duckSink;
|
|
131
|
+
const finished = onceEventAny(sink, ["close", "finish"]);
|
|
132
|
+
sink.end();
|
|
133
|
+
await finished;
|
|
134
|
+
this._throwIfErrored();
|
|
135
|
+
}
|
|
136
|
+
_captureError(err) {
|
|
137
|
+
if (this._error) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
this._error = err instanceof Error ? err : new Error(String(err));
|
|
141
|
+
}
|
|
142
|
+
_throwIfErrored() {
|
|
143
|
+
if (this._error) {
|
|
144
|
+
throw this._error;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
_attachErrorListener(sink) {
|
|
148
|
+
if (typeof sink.on === "function") {
|
|
149
|
+
sink.on("error", (err) => {
|
|
150
|
+
this._captureError(err);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else if (typeof sink.once === "function") {
|
|
154
|
+
// Best-effort: a once listener is enough to capture the first error.
|
|
155
|
+
sink.once("error", (err) => {
|
|
156
|
+
this._captureError(err);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/** Resolve on the first of `events` (or reject on `error`). */
|
|
162
|
+
function onceEventAny(emitter, events) {
|
|
163
|
+
return new Promise((resolve, reject) => {
|
|
164
|
+
const cleanup = () => {
|
|
165
|
+
const off = (e, l) => {
|
|
166
|
+
if (typeof emitter.off === "function") {
|
|
167
|
+
emitter.off(e, l);
|
|
168
|
+
}
|
|
169
|
+
else if (typeof emitter.removeListener === "function") {
|
|
170
|
+
emitter.removeListener(e, l);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
off("error", onError);
|
|
174
|
+
for (const e of events) {
|
|
175
|
+
off(e, onDone);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
const onError = (err) => {
|
|
179
|
+
cleanup();
|
|
180
|
+
reject(err instanceof Error ? err : new Error(String(err)));
|
|
181
|
+
};
|
|
182
|
+
const onDone = () => {
|
|
183
|
+
cleanup();
|
|
184
|
+
resolve();
|
|
185
|
+
};
|
|
186
|
+
if (typeof emitter.once === "function") {
|
|
187
|
+
emitter.once("error", onError);
|
|
188
|
+
for (const e of events) {
|
|
189
|
+
emitter.once(e, onDone);
|
|
190
|
+
}
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
emitter.on?.("error", onError);
|
|
194
|
+
for (const e of events) {
|
|
195
|
+
emitter.on?.(e, onDone);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
@@ -17,15 +17,32 @@ export declare class PullStream extends EventEmitter {
|
|
|
17
17
|
protected finished: boolean;
|
|
18
18
|
protected _match?: number;
|
|
19
19
|
private _destroyed;
|
|
20
|
-
|
|
20
|
+
private _highWaterMark;
|
|
21
|
+
private _needsDrain;
|
|
22
|
+
constructor(options?: PullStreamOptions);
|
|
21
23
|
/** Reset the internal buffer to empty. */
|
|
22
24
|
private _resetBuffer;
|
|
23
25
|
protected get buffer(): Uint8Array;
|
|
24
26
|
protected set buffer(buf: Uint8Array);
|
|
25
27
|
/**
|
|
26
|
-
* Write data to the stream
|
|
28
|
+
* Write data to the stream.
|
|
29
|
+
*
|
|
30
|
+
* Returns `false` when the buffer's readable size exceeds `highWaterMark`
|
|
31
|
+
* (backpressure signal). Producers should pause and resume on the next
|
|
32
|
+
* `'drain'` event.
|
|
27
33
|
*/
|
|
28
34
|
write(chunk: Uint8Array): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Set `_needsDrain` based on current buffer size, return whether the
|
|
37
|
+
* producer should keep writing (true) or pause (false).
|
|
38
|
+
*/
|
|
39
|
+
private _evaluateBackpressure;
|
|
40
|
+
/**
|
|
41
|
+
* Internal: subclasses or pull paths must call this after consuming bytes
|
|
42
|
+
* (advancing `_bufferReadIndex`) to potentially emit `'drain'`. Idempotent
|
|
43
|
+
* and free when no backpressure is in effect.
|
|
44
|
+
*/
|
|
45
|
+
protected _maybeEmitDrain(): void;
|
|
29
46
|
/**
|
|
30
47
|
* Signal end of input
|
|
31
48
|
*/
|
|
@@ -11,7 +11,7 @@ const EMPTY_U8 = new Uint8Array(0);
|
|
|
11
11
|
* Browser-compatible Pull Stream - Read data from buffer on demand with pattern matching
|
|
12
12
|
*/
|
|
13
13
|
export class PullStream extends EventEmitter {
|
|
14
|
-
constructor(
|
|
14
|
+
constructor(options = {}) {
|
|
15
15
|
super();
|
|
16
16
|
// Single growable buffer with read/write cursors.
|
|
17
17
|
// IMPORTANT: never mutate bytes that have already been returned via subarray
|
|
@@ -22,6 +22,18 @@ export class PullStream extends EventEmitter {
|
|
|
22
22
|
this._bufferWriteIndex = 0;
|
|
23
23
|
this.finished = false;
|
|
24
24
|
this._destroyed = false;
|
|
25
|
+
// Backpressure: when buffer length exceeds highWaterMark, `write()` returns
|
|
26
|
+
// false so producers know to slow down. `'drain'` fires once the buffer
|
|
27
|
+
// drops below half the HWM (low-water mark). Defaults to Infinity for
|
|
28
|
+
// backward compatibility — callers that opt in by passing `highWaterMark`
|
|
29
|
+
// get bounded memory, callers that don't keep the legacy unbounded behaviour.
|
|
30
|
+
this._highWaterMark = Infinity;
|
|
31
|
+
this._needsDrain = false;
|
|
32
|
+
if (options.highWaterMark !== undefined &&
|
|
33
|
+
options.highWaterMark > 0 &&
|
|
34
|
+
Number.isFinite(options.highWaterMark)) {
|
|
35
|
+
this._highWaterMark = options.highWaterMark;
|
|
36
|
+
}
|
|
25
37
|
}
|
|
26
38
|
/** Reset the internal buffer to empty. */
|
|
27
39
|
_resetBuffer() {
|
|
@@ -47,7 +59,11 @@ export class PullStream extends EventEmitter {
|
|
|
47
59
|
this._bufferWriteIndex = buf.length;
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
50
|
-
* Write data to the stream
|
|
62
|
+
* Write data to the stream.
|
|
63
|
+
*
|
|
64
|
+
* Returns `false` when the buffer's readable size exceeds `highWaterMark`
|
|
65
|
+
* (backpressure signal). Producers should pause and resume on the next
|
|
66
|
+
* `'drain'` event.
|
|
51
67
|
*/
|
|
52
68
|
write(chunk) {
|
|
53
69
|
if (this._destroyed) {
|
|
@@ -57,7 +73,7 @@ export class PullStream extends EventEmitter {
|
|
|
57
73
|
const chunkLen = chunk.length;
|
|
58
74
|
if (chunkLen === 0) {
|
|
59
75
|
this.emit("chunk");
|
|
60
|
-
return
|
|
76
|
+
return !this._needsDrain;
|
|
61
77
|
}
|
|
62
78
|
// Fast path: first write can reuse caller buffer without copy.
|
|
63
79
|
if (this._buffer.length === 0) {
|
|
@@ -65,14 +81,14 @@ export class PullStream extends EventEmitter {
|
|
|
65
81
|
this._bufferReadIndex = 0;
|
|
66
82
|
this._bufferWriteIndex = chunkLen;
|
|
67
83
|
this.emit("chunk");
|
|
68
|
-
return
|
|
84
|
+
return this._evaluateBackpressure();
|
|
69
85
|
}
|
|
70
86
|
const required = this._bufferWriteIndex + chunkLen;
|
|
71
87
|
if (required <= this._buffer.length) {
|
|
72
88
|
this._buffer.set(chunk, this._bufferWriteIndex);
|
|
73
89
|
this._bufferWriteIndex += chunkLen;
|
|
74
90
|
this.emit("chunk");
|
|
75
|
-
return
|
|
91
|
+
return this._evaluateBackpressure();
|
|
76
92
|
}
|
|
77
93
|
// Need a new buffer. We keep previously returned views stable by allocating.
|
|
78
94
|
const remaining = this._bufferWriteIndex - this._bufferReadIndex;
|
|
@@ -87,8 +103,36 @@ export class PullStream extends EventEmitter {
|
|
|
87
103
|
this._bufferReadIndex = 0;
|
|
88
104
|
this._bufferWriteIndex = nextLength;
|
|
89
105
|
this.emit("chunk");
|
|
106
|
+
return this._evaluateBackpressure();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Set `_needsDrain` based on current buffer size, return whether the
|
|
110
|
+
* producer should keep writing (true) or pause (false).
|
|
111
|
+
*/
|
|
112
|
+
_evaluateBackpressure() {
|
|
113
|
+
const readable = this._bufferWriteIndex - this._bufferReadIndex;
|
|
114
|
+
if (readable >= this._highWaterMark) {
|
|
115
|
+
this._needsDrain = true;
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
90
118
|
return true;
|
|
91
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Internal: subclasses or pull paths must call this after consuming bytes
|
|
122
|
+
* (advancing `_bufferReadIndex`) to potentially emit `'drain'`. Idempotent
|
|
123
|
+
* and free when no backpressure is in effect.
|
|
124
|
+
*/
|
|
125
|
+
_maybeEmitDrain() {
|
|
126
|
+
if (!this._needsDrain) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const readable = this._bufferWriteIndex - this._bufferReadIndex;
|
|
130
|
+
// Low-water mark = half of HWM (classic Node Writable behaviour).
|
|
131
|
+
if (readable * 2 < this._highWaterMark) {
|
|
132
|
+
this._needsDrain = false;
|
|
133
|
+
this.emit("drain");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
92
136
|
/**
|
|
93
137
|
* Signal end of input
|
|
94
138
|
*/
|
|
@@ -156,6 +200,7 @@ export class PullStream extends EventEmitter {
|
|
|
156
200
|
if (this._bufferReadIndex === this._bufferWriteIndex) {
|
|
157
201
|
this._resetBuffer();
|
|
158
202
|
}
|
|
203
|
+
this._maybeEmitDrain();
|
|
159
204
|
resolve(result);
|
|
160
205
|
return;
|
|
161
206
|
}
|
|
@@ -202,6 +247,7 @@ export class PullStream extends EventEmitter {
|
|
|
202
247
|
if (this._bufferReadIndex === this._bufferWriteIndex) {
|
|
203
248
|
this._resetBuffer();
|
|
204
249
|
}
|
|
250
|
+
this._maybeEmitDrain();
|
|
205
251
|
resolve(result);
|
|
206
252
|
return;
|
|
207
253
|
}
|
|
@@ -157,7 +157,19 @@ export interface IDuplex<TRead = any, TWrite = any> extends IReadable<TRead>, IW
|
|
|
157
157
|
/**
|
|
158
158
|
* Options for pull stream (reserved for future use)
|
|
159
159
|
*/
|
|
160
|
-
export type PullStreamOptions =
|
|
160
|
+
export type PullStreamOptions = {
|
|
161
|
+
/**
|
|
162
|
+
* Buffer high-water mark in bytes. When the readable buffer exceeds this
|
|
163
|
+
* size, `write()` returns `false` to signal backpressure to the producer.
|
|
164
|
+
* Once the buffer drops back to the low-water mark (half the HWM), a
|
|
165
|
+
* `'drain'` event is emitted. Defaults to `Infinity` (no backpressure).
|
|
166
|
+
*
|
|
167
|
+
* Set this when the stream is fed by a fast producer with a slow `pull()`
|
|
168
|
+
* consumer to keep memory bounded — the legacy default of `Infinity`
|
|
169
|
+
* preserves existing behaviour for callers that drain promptly.
|
|
170
|
+
*/
|
|
171
|
+
highWaterMark?: number;
|
|
172
|
+
};
|
|
161
173
|
/**
|
|
162
174
|
* Pull stream interface - allows pulling data on demand
|
|
163
175
|
*/
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Module - Document Comparison (Diff)
|
|
3
|
+
*
|
|
4
|
+
* Compares two DocxDocument models and returns a list of differences.
|
|
5
|
+
* This is a text-level comparison — it compares paragraphs by their text content
|
|
6
|
+
* and reports additions, deletions, and modifications.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { diffDocuments } from "excelts/word";
|
|
11
|
+
*
|
|
12
|
+
* const changes = diffDocuments(oldDoc, newDoc);
|
|
13
|
+
* console.log(changes.filter(c => c.type === "modified"));
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
import type { DocxDocument } from "../types.js";
|
|
17
|
+
/** Type of change detected between two documents. */
|
|
18
|
+
export type DiffChangeType = "added" | "deleted" | "modified" | "unchanged";
|
|
19
|
+
/** A single diff entry representing a change between two documents. */
|
|
20
|
+
export interface DiffEntry {
|
|
21
|
+
/** Type of change. */
|
|
22
|
+
readonly type: DiffChangeType;
|
|
23
|
+
/** Paragraph index in the old document (undefined for "added"). */
|
|
24
|
+
readonly oldIndex?: number;
|
|
25
|
+
/** Paragraph index in the new document (undefined for "deleted"). */
|
|
26
|
+
readonly newIndex?: number;
|
|
27
|
+
/** Text content from old document. */
|
|
28
|
+
readonly oldText?: string;
|
|
29
|
+
/** Text content from new document. */
|
|
30
|
+
readonly newText?: string;
|
|
31
|
+
}
|
|
32
|
+
/** Summary statistics for a diff result. */
|
|
33
|
+
export interface DiffSummary {
|
|
34
|
+
/** Total number of paragraphs compared. */
|
|
35
|
+
readonly totalParagraphs: number;
|
|
36
|
+
/** Number of unchanged paragraphs. */
|
|
37
|
+
readonly unchanged: number;
|
|
38
|
+
/** Number of added paragraphs. */
|
|
39
|
+
readonly added: number;
|
|
40
|
+
/** Number of deleted paragraphs. */
|
|
41
|
+
readonly deleted: number;
|
|
42
|
+
/** Number of modified paragraphs. */
|
|
43
|
+
readonly modified: number;
|
|
44
|
+
}
|
|
45
|
+
/** Result of a document comparison. */
|
|
46
|
+
export interface DiffResult {
|
|
47
|
+
/** Individual change entries. */
|
|
48
|
+
readonly entries: readonly DiffEntry[];
|
|
49
|
+
/** Summary statistics. */
|
|
50
|
+
readonly summary: DiffSummary;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Compare two DocxDocuments and return a diff of their text content.
|
|
54
|
+
*
|
|
55
|
+
* Uses the Myers diff algorithm (LCS-based) for optimal minimal edit sequence.
|
|
56
|
+
*
|
|
57
|
+
* @param oldDoc - The original document.
|
|
58
|
+
* @param newDoc - The modified document.
|
|
59
|
+
* @returns DiffResult with entries and summary.
|
|
60
|
+
*/
|
|
61
|
+
export declare function diffDocuments(oldDoc: DocxDocument, newDoc: DocxDocument): DiffResult;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Module - Document Comparison (Diff)
|
|
3
|
+
*
|
|
4
|
+
* Compares two DocxDocument models and returns a list of differences.
|
|
5
|
+
* This is a text-level comparison — it compares paragraphs by their text content
|
|
6
|
+
* and reports additions, deletions, and modifications.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { diffDocuments } from "excelts/word";
|
|
11
|
+
*
|
|
12
|
+
* const changes = diffDocuments(oldDoc, newDoc);
|
|
13
|
+
* console.log(changes.filter(c => c.type === "modified"));
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
import { extractParagraphText } from "../core/text-utils.js";
|
|
17
|
+
import { walkBlocks } from "../core/walker.js";
|
|
18
|
+
/**
|
|
19
|
+
* Compare two DocxDocuments and return a diff of their text content.
|
|
20
|
+
*
|
|
21
|
+
* Uses the Myers diff algorithm (LCS-based) for optimal minimal edit sequence.
|
|
22
|
+
*
|
|
23
|
+
* @param oldDoc - The original document.
|
|
24
|
+
* @param newDoc - The modified document.
|
|
25
|
+
* @returns DiffResult with entries and summary.
|
|
26
|
+
*/
|
|
27
|
+
export function diffDocuments(oldDoc, newDoc) {
|
|
28
|
+
const oldTexts = extractParagraphTexts(oldDoc.body);
|
|
29
|
+
const newTexts = extractParagraphTexts(newDoc.body);
|
|
30
|
+
const entries = computeDiff(oldTexts, newTexts);
|
|
31
|
+
let added = 0;
|
|
32
|
+
let deleted = 0;
|
|
33
|
+
let modified = 0;
|
|
34
|
+
let unchanged = 0;
|
|
35
|
+
for (const e of entries) {
|
|
36
|
+
switch (e.type) {
|
|
37
|
+
case "added":
|
|
38
|
+
added++;
|
|
39
|
+
break;
|
|
40
|
+
case "deleted":
|
|
41
|
+
deleted++;
|
|
42
|
+
break;
|
|
43
|
+
case "modified":
|
|
44
|
+
modified++;
|
|
45
|
+
break;
|
|
46
|
+
case "unchanged":
|
|
47
|
+
unchanged++;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
entries,
|
|
53
|
+
summary: {
|
|
54
|
+
totalParagraphs: Math.max(oldTexts.length, newTexts.length),
|
|
55
|
+
unchanged,
|
|
56
|
+
added,
|
|
57
|
+
deleted,
|
|
58
|
+
modified
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** Extract all paragraph texts from body content (flattens tables). */
|
|
63
|
+
function extractParagraphTexts(body) {
|
|
64
|
+
const texts = [];
|
|
65
|
+
walkBlocks(body, {
|
|
66
|
+
enterParagraph(para) {
|
|
67
|
+
texts.push(extractParagraphText(para));
|
|
68
|
+
return "skip";
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return texts;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Compute diff using LCS (Longest Common Subsequence) approach.
|
|
75
|
+
* Produces an optimal edit sequence.
|
|
76
|
+
*
|
|
77
|
+
* Memory note: the LCS DP table is `(m+1) * (n+1)` cells, each a 32-bit
|
|
78
|
+
* integer. We allocate it as a single `Uint32Array` so two 5000-paragraph
|
|
79
|
+
* documents take ~100 MB instead of ~200 MB. We also reject pairs whose
|
|
80
|
+
* product would exceed `MAX_LCS_CELLS` to avoid OOM-killing the host —
|
|
81
|
+
* callers wanting to diff arbitrarily-large documents should pre-segment
|
|
82
|
+
* by section.
|
|
83
|
+
*/
|
|
84
|
+
const MAX_LCS_CELLS = 32000000; // ~128 MB at 4 bytes/cell
|
|
85
|
+
function computeDiff(oldTexts, newTexts) {
|
|
86
|
+
const m = oldTexts.length;
|
|
87
|
+
const n = newTexts.length;
|
|
88
|
+
if ((m + 1) * (n + 1) > MAX_LCS_CELLS) {
|
|
89
|
+
throw new Error(`diffDocuments: LCS table for ${m}x${n} paragraphs exceeds ` +
|
|
90
|
+
`MAX_LCS_CELLS (${MAX_LCS_CELLS}). Diff was aborted to avoid ` +
|
|
91
|
+
`excessive memory use; consider diffing sections individually.`);
|
|
92
|
+
}
|
|
93
|
+
// Single contiguous Uint32Array indexed as `i * (n+1) + j`. This keeps
|
|
94
|
+
// memory at one allocation and lets the runtime use SIMD-friendly
|
|
95
|
+
// contiguous reads in the hot loop below.
|
|
96
|
+
const stride = n + 1;
|
|
97
|
+
const dp = new Uint32Array((m + 1) * stride);
|
|
98
|
+
for (let i = 1; i <= m; i++) {
|
|
99
|
+
const rowBase = i * stride;
|
|
100
|
+
const prevRowBase = (i - 1) * stride;
|
|
101
|
+
for (let j = 1; j <= n; j++) {
|
|
102
|
+
if (oldTexts[i - 1] === newTexts[j - 1]) {
|
|
103
|
+
dp[rowBase + j] = dp[prevRowBase + (j - 1)] + 1;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const a = dp[prevRowBase + j];
|
|
107
|
+
const b = dp[rowBase + (j - 1)];
|
|
108
|
+
dp[rowBase + j] = a >= b ? a : b;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Backtrack to produce diff entries
|
|
113
|
+
const entries = [];
|
|
114
|
+
let i = m;
|
|
115
|
+
let j = n;
|
|
116
|
+
while (i > 0 || j > 0) {
|
|
117
|
+
if (i > 0 && j > 0 && oldTexts[i - 1] === newTexts[j - 1]) {
|
|
118
|
+
entries.push({
|
|
119
|
+
type: "unchanged",
|
|
120
|
+
oldIndex: i - 1,
|
|
121
|
+
newIndex: j - 1,
|
|
122
|
+
oldText: oldTexts[i - 1],
|
|
123
|
+
newText: newTexts[j - 1]
|
|
124
|
+
});
|
|
125
|
+
i--;
|
|
126
|
+
j--;
|
|
127
|
+
}
|
|
128
|
+
else if (i > 0 && (j === 0 || dp[(i - 1) * stride + j] >= dp[i * stride + (j - 1)])) {
|
|
129
|
+
entries.push({
|
|
130
|
+
type: "deleted",
|
|
131
|
+
oldIndex: i - 1,
|
|
132
|
+
oldText: oldTexts[i - 1]
|
|
133
|
+
});
|
|
134
|
+
i--;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
entries.push({
|
|
138
|
+
type: "added",
|
|
139
|
+
newIndex: j - 1,
|
|
140
|
+
newText: newTexts[j - 1]
|
|
141
|
+
});
|
|
142
|
+
j--;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Reverse since we built it backwards
|
|
146
|
+
entries.reverse();
|
|
147
|
+
// Post-process: pair adjacent delete+add as "modified" when they're at the same position
|
|
148
|
+
const result = [];
|
|
149
|
+
for (let k = 0; k < entries.length; k++) {
|
|
150
|
+
const curr = entries[k];
|
|
151
|
+
const next = k + 1 < entries.length ? entries[k + 1] : undefined;
|
|
152
|
+
if (curr.type === "deleted" && next?.type === "added") {
|
|
153
|
+
result.push({
|
|
154
|
+
type: "modified",
|
|
155
|
+
oldIndex: curr.oldIndex,
|
|
156
|
+
newIndex: next.newIndex,
|
|
157
|
+
oldText: curr.oldText,
|
|
158
|
+
newText: next.newText
|
|
159
|
+
});
|
|
160
|
+
k++; // skip next
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
result.push(curr);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|