@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,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Reader - Shared XML/parsing utilities
|
|
3
|
+
*
|
|
4
|
+
* Low-level helpers used across the various reader sub-modules.
|
|
5
|
+
* Extracted from docx-reader.ts to keep that file focused on
|
|
6
|
+
* orchestration of the higher-level parsers.
|
|
7
|
+
*/
|
|
8
|
+
import type { XmlElement } from "../../xml/types.js";
|
|
9
|
+
import type { ParsedRelationship } from "./reader-context.js";
|
|
10
|
+
/** Get an attribute value, trying both `w:name` and bare `name`. */
|
|
11
|
+
export declare function attrVal(el: XmlElement, name: string): string | undefined;
|
|
12
|
+
/** Get an attribute as an integer (returns undefined if missing or non-numeric). */
|
|
13
|
+
export declare function attrInt(el: XmlElement, name: string): number | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Like `parseInt(value ?? fallback, 10)` but never returns NaN: any
|
|
16
|
+
* non-numeric value falls back to `fallback`. Use this when forwarding
|
|
17
|
+
* raw attribute strings into numeric model fields — round-tripping a
|
|
18
|
+
* `NaN` back into XML produces literal `"NaN"` and corrupts the
|
|
19
|
+
* resulting DOCX.
|
|
20
|
+
*/
|
|
21
|
+
export declare function safeParseInt(value: string | undefined, fallback: number): number;
|
|
22
|
+
/** Get the local name from a possibly-prefixed tag (`"w:p"` → `"p"`). */
|
|
23
|
+
export declare function localName(name: string): string;
|
|
24
|
+
/** Find a child element by local name (matches both `w:name` and bare `name`). */
|
|
25
|
+
export declare function findChildNs(el: XmlElement, localName: string): XmlElement | undefined;
|
|
26
|
+
/** Find all child elements with a given local name. */
|
|
27
|
+
export declare function findChildrenNs(el: XmlElement, localName: string): XmlElement[];
|
|
28
|
+
/**
|
|
29
|
+
* Namespace-agnostic child finder: matches on the **local name** regardless
|
|
30
|
+
* of the prefix. Useful for namespaces other than `w:` (e.g. `m:`, `c:`,
|
|
31
|
+
* `cx:`) where the prefix may be inconsistent across producers.
|
|
32
|
+
*/
|
|
33
|
+
export declare function findChildLocal(el: XmlElement, name: string): XmlElement | undefined;
|
|
34
|
+
/** Namespace-agnostic version of {@link findChildrenNs}. */
|
|
35
|
+
export declare function findChildrenLocal(el: XmlElement, name: string): XmlElement[];
|
|
36
|
+
/**
|
|
37
|
+
* Get an attribute value by **local name**, regardless of prefix.
|
|
38
|
+
* Useful when the same attribute may appear as `w:val`, `m:val`, etc.
|
|
39
|
+
*/
|
|
40
|
+
export declare function attrLocal(el: XmlElement, name: string): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Check for a boolean toggle element.
|
|
43
|
+
*
|
|
44
|
+
* In OOXML, many properties are represented as toggle elements where:
|
|
45
|
+
* - Element present = true
|
|
46
|
+
* - Element with `w:val="0"` or `"false"` = explicit false
|
|
47
|
+
* - Element absent = undefined (use parent's default)
|
|
48
|
+
*/
|
|
49
|
+
export declare function boolToggle(parent: XmlElement, name: string): boolean | undefined;
|
|
50
|
+
/** Serialize an XmlElement back to an XML string (used for opaque preservation). */
|
|
51
|
+
export declare function serializeElement(el: XmlElement): string;
|
|
52
|
+
/** Extract all `r:xxx` attribute values (relationship IDs) from an element tree. */
|
|
53
|
+
export declare function collectRIds(el: XmlElement, out: Set<string>): void;
|
|
54
|
+
export { getPartRelsPath, getFileName, getFileExt } from "../core/opc-paths.js";
|
|
55
|
+
/**
|
|
56
|
+
* Resolve an OPC relationship target against its source part.
|
|
57
|
+
*
|
|
58
|
+
* - Leading `/` → package root absolute
|
|
59
|
+
* - `../` / `./` → resolved relative to the source part's directory
|
|
60
|
+
* - Plain paths → resolved relative to the source part's directory
|
|
61
|
+
*
|
|
62
|
+
* Returns an empty string when the resolved path would escape the package
|
|
63
|
+
* root (i.e. more `..` segments than there are directories above the
|
|
64
|
+
* source). The previous behaviour silently treated extra `..` as a no-op,
|
|
65
|
+
* which let a malicious or malformed `Target` value point at an entirely
|
|
66
|
+
* different part than the directory traversal would suggest.
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolvePartPath(sourcePart: string, target: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* Find the first relationship of a given type and resolve its target path.
|
|
71
|
+
* Returns undefined if no matching relationship exists.
|
|
72
|
+
*/
|
|
73
|
+
export declare function resolveRelTarget(rels: ParsedRelationship[], relType: string, sourcePart: string): string | undefined;
|
|
74
|
+
/** Convert OOXML cryptAlgorithmSid to human-readable algorithm name. */
|
|
75
|
+
export declare function sidToHashAlgorithm(sid: string | undefined): string | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Common shape returned by {@link parseNoteProperties}.
|
|
78
|
+
*
|
|
79
|
+
* `numFmt` is widened to `string` (rather than `NoteNumberFormat`) so the
|
|
80
|
+
* helper can populate either `FootnoteProperties` or `EndnoteProperties`,
|
|
81
|
+
* which only differ in `position`'s narrow union. Callers cast at the
|
|
82
|
+
* assignment site.
|
|
83
|
+
*/
|
|
84
|
+
export interface ParsedNoteProperties {
|
|
85
|
+
numFmt?: string;
|
|
86
|
+
numStart?: number;
|
|
87
|
+
numRestart?: string;
|
|
88
|
+
position?: string;
|
|
89
|
+
}
|
|
90
|
+
/** Parse footnote/endnote properties element. */
|
|
91
|
+
export declare function parseNoteProperties(el: XmlElement): ParsedNoteProperties | undefined;
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Reader - Shared XML/parsing utilities
|
|
3
|
+
*
|
|
4
|
+
* Low-level helpers used across the various reader sub-modules.
|
|
5
|
+
* Extracted from docx-reader.ts to keep that file focused on
|
|
6
|
+
* orchestration of the higher-level parsers.
|
|
7
|
+
*/
|
|
8
|
+
import { findChild, findChildren } from "../../xml/dom.js";
|
|
9
|
+
import { xmlEncode, xmlEncodeAttr } from "../../xml/encode.js";
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Attribute Readers
|
|
12
|
+
// =============================================================================
|
|
13
|
+
/** Get an attribute value, trying both `w:name` and bare `name`. */
|
|
14
|
+
export function attrVal(el, name) {
|
|
15
|
+
return el.attributes[`w:${name}`] ?? el.attributes[name];
|
|
16
|
+
}
|
|
17
|
+
/** Get an attribute as an integer (returns undefined if missing or non-numeric). */
|
|
18
|
+
export function attrInt(el, name) {
|
|
19
|
+
const v = attrVal(el, name);
|
|
20
|
+
if (v === undefined) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const n = parseInt(v, 10);
|
|
24
|
+
return Number.isFinite(n) ? n : undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Like `parseInt(value ?? fallback, 10)` but never returns NaN: any
|
|
28
|
+
* non-numeric value falls back to `fallback`. Use this when forwarding
|
|
29
|
+
* raw attribute strings into numeric model fields — round-tripping a
|
|
30
|
+
* `NaN` back into XML produces literal `"NaN"` and corrupts the
|
|
31
|
+
* resulting DOCX.
|
|
32
|
+
*/
|
|
33
|
+
export function safeParseInt(value, fallback) {
|
|
34
|
+
if (value === undefined) {
|
|
35
|
+
return fallback;
|
|
36
|
+
}
|
|
37
|
+
const n = parseInt(value, 10);
|
|
38
|
+
return Number.isFinite(n) ? n : fallback;
|
|
39
|
+
}
|
|
40
|
+
// =============================================================================
|
|
41
|
+
// Child Element Readers
|
|
42
|
+
// =============================================================================
|
|
43
|
+
/** Get the local name from a possibly-prefixed tag (`"w:p"` → `"p"`). */
|
|
44
|
+
export function localName(name) {
|
|
45
|
+
const idx = name.indexOf(":");
|
|
46
|
+
return idx >= 0 ? name.slice(idx + 1) : name;
|
|
47
|
+
}
|
|
48
|
+
/** Find a child element by local name (matches both `w:name` and bare `name`). */
|
|
49
|
+
export function findChildNs(el, localName) {
|
|
50
|
+
return findChild(el, `w:${localName}`) ?? findChild(el, localName);
|
|
51
|
+
}
|
|
52
|
+
/** Find all child elements with a given local name. */
|
|
53
|
+
export function findChildrenNs(el, localName) {
|
|
54
|
+
const a = findChildren(el, `w:${localName}`);
|
|
55
|
+
return a.length > 0 ? a : findChildren(el, localName);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Namespace-agnostic child finder: matches on the **local name** regardless
|
|
59
|
+
* of the prefix. Useful for namespaces other than `w:` (e.g. `m:`, `c:`,
|
|
60
|
+
* `cx:`) where the prefix may be inconsistent across producers.
|
|
61
|
+
*/
|
|
62
|
+
export function findChildLocal(el, name) {
|
|
63
|
+
for (const child of el.children) {
|
|
64
|
+
if (child.type === "element" && localName(child.name) === name) {
|
|
65
|
+
return child;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
/** Namespace-agnostic version of {@link findChildrenNs}. */
|
|
71
|
+
export function findChildrenLocal(el, name) {
|
|
72
|
+
const out = [];
|
|
73
|
+
for (const child of el.children) {
|
|
74
|
+
if (child.type === "element" && localName(child.name) === name) {
|
|
75
|
+
out.push(child);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get an attribute value by **local name**, regardless of prefix.
|
|
82
|
+
* Useful when the same attribute may appear as `w:val`, `m:val`, etc.
|
|
83
|
+
*/
|
|
84
|
+
export function attrLocal(el, name) {
|
|
85
|
+
for (const [k, v] of Object.entries(el.attributes)) {
|
|
86
|
+
if (localName(k) === name) {
|
|
87
|
+
return v;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Check for a boolean toggle element.
|
|
94
|
+
*
|
|
95
|
+
* In OOXML, many properties are represented as toggle elements where:
|
|
96
|
+
* - Element present = true
|
|
97
|
+
* - Element with `w:val="0"` or `"false"` = explicit false
|
|
98
|
+
* - Element absent = undefined (use parent's default)
|
|
99
|
+
*/
|
|
100
|
+
export function boolToggle(parent, name) {
|
|
101
|
+
const el = findChildNs(parent, name);
|
|
102
|
+
if (!el) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const v = attrVal(el, "val");
|
|
106
|
+
if (v === "0" || v === "false") {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
// =============================================================================
|
|
112
|
+
// XML Serialization
|
|
113
|
+
// =============================================================================
|
|
114
|
+
/** Serialize an XmlElement back to an XML string (used for opaque preservation). */
|
|
115
|
+
export function serializeElement(el) {
|
|
116
|
+
let s = `<${el.name}`;
|
|
117
|
+
for (const [k, v] of Object.entries(el.attributes)) {
|
|
118
|
+
s += ` ${k}="${xmlEncodeAttr(v)}"`;
|
|
119
|
+
}
|
|
120
|
+
if (el.children.length === 0) {
|
|
121
|
+
return s + "/>";
|
|
122
|
+
}
|
|
123
|
+
s += ">";
|
|
124
|
+
for (const child of el.children) {
|
|
125
|
+
if (child.type === "element") {
|
|
126
|
+
s += serializeElement(child);
|
|
127
|
+
}
|
|
128
|
+
else if (child.type === "text") {
|
|
129
|
+
s += xmlEncode(child.value);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
s += `</${el.name}>`;
|
|
133
|
+
return s;
|
|
134
|
+
}
|
|
135
|
+
/** Extract all `r:xxx` attribute values (relationship IDs) from an element tree. */
|
|
136
|
+
export function collectRIds(el, out) {
|
|
137
|
+
for (const [k, v] of Object.entries(el.attributes)) {
|
|
138
|
+
if (k.startsWith("r:") || k === "r:id" || k === "r:embed" || k === "r:link") {
|
|
139
|
+
out.add(v);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
for (const child of el.children) {
|
|
143
|
+
if (child.type === "element") {
|
|
144
|
+
collectRIds(child, out);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// =============================================================================
|
|
149
|
+
// Path / Relationship Helpers
|
|
150
|
+
// =============================================================================
|
|
151
|
+
export { getPartRelsPath, getFileName, getFileExt } from "../core/opc-paths.js";
|
|
152
|
+
/**
|
|
153
|
+
* Resolve an OPC relationship target against its source part.
|
|
154
|
+
*
|
|
155
|
+
* - Leading `/` → package root absolute
|
|
156
|
+
* - `../` / `./` → resolved relative to the source part's directory
|
|
157
|
+
* - Plain paths → resolved relative to the source part's directory
|
|
158
|
+
*
|
|
159
|
+
* Returns an empty string when the resolved path would escape the package
|
|
160
|
+
* root (i.e. more `..` segments than there are directories above the
|
|
161
|
+
* source). The previous behaviour silently treated extra `..` as a no-op,
|
|
162
|
+
* which let a malicious or malformed `Target` value point at an entirely
|
|
163
|
+
* different part than the directory traversal would suggest.
|
|
164
|
+
*/
|
|
165
|
+
export function resolvePartPath(sourcePart, target) {
|
|
166
|
+
if (!target) {
|
|
167
|
+
return "";
|
|
168
|
+
}
|
|
169
|
+
if (target.startsWith("/")) {
|
|
170
|
+
return target.slice(1);
|
|
171
|
+
}
|
|
172
|
+
const lastSlash = sourcePart.lastIndexOf("/");
|
|
173
|
+
const baseDir = lastSlash >= 0 ? sourcePart.substring(0, lastSlash).split("/") : [];
|
|
174
|
+
const segs = target.split("/");
|
|
175
|
+
for (const seg of segs) {
|
|
176
|
+
if (seg === "..") {
|
|
177
|
+
if (baseDir.length === 0) {
|
|
178
|
+
// The target asks to step above the package root. Treat as
|
|
179
|
+
// unresolvable instead of silently swallowing the segment.
|
|
180
|
+
return "";
|
|
181
|
+
}
|
|
182
|
+
baseDir.pop();
|
|
183
|
+
}
|
|
184
|
+
else if (seg !== "." && seg !== "") {
|
|
185
|
+
baseDir.push(seg);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return baseDir.join("/");
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Find the first relationship of a given type and resolve its target path.
|
|
192
|
+
* Returns undefined if no matching relationship exists.
|
|
193
|
+
*/
|
|
194
|
+
export function resolveRelTarget(rels, relType, sourcePart) {
|
|
195
|
+
for (const rel of rels) {
|
|
196
|
+
if (rel.type === relType) {
|
|
197
|
+
return resolvePartPath(sourcePart, rel.target);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
// =============================================================================
|
|
203
|
+
// Crypto Helpers
|
|
204
|
+
// =============================================================================
|
|
205
|
+
/** Convert OOXML cryptAlgorithmSid to human-readable algorithm name. */
|
|
206
|
+
export function sidToHashAlgorithm(sid) {
|
|
207
|
+
if (!sid) {
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
switch (sid) {
|
|
211
|
+
case "1":
|
|
212
|
+
return "MD2";
|
|
213
|
+
case "2":
|
|
214
|
+
return "MD4";
|
|
215
|
+
case "3":
|
|
216
|
+
return "MD5";
|
|
217
|
+
case "4":
|
|
218
|
+
return "SHA-1";
|
|
219
|
+
case "12":
|
|
220
|
+
return "SHA-256";
|
|
221
|
+
case "13":
|
|
222
|
+
return "SHA-384";
|
|
223
|
+
case "14":
|
|
224
|
+
return "SHA-512";
|
|
225
|
+
default:
|
|
226
|
+
return `SID-${sid}`;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/** Parse footnote/endnote properties element. */
|
|
230
|
+
export function parseNoteProperties(el) {
|
|
231
|
+
const props = {};
|
|
232
|
+
const numFmtEl = findChildNs(el, "numFmt");
|
|
233
|
+
if (numFmtEl) {
|
|
234
|
+
props.numFmt = attrVal(numFmtEl, "val");
|
|
235
|
+
}
|
|
236
|
+
const numStartEl = findChildNs(el, "numStart");
|
|
237
|
+
if (numStartEl) {
|
|
238
|
+
props.numStart = attrInt(numStartEl, "val");
|
|
239
|
+
}
|
|
240
|
+
const numRestartEl = findChildNs(el, "numRestart");
|
|
241
|
+
if (numRestartEl) {
|
|
242
|
+
props.numRestart = attrVal(numRestartEl, "val");
|
|
243
|
+
}
|
|
244
|
+
const posEl = findChildNs(el, "pos");
|
|
245
|
+
if (posEl) {
|
|
246
|
+
props.position = attrVal(posEl, "val");
|
|
247
|
+
}
|
|
248
|
+
return Object.keys(props).length > 0 ? props : undefined;
|
|
249
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Reader - Properties Parsers
|
|
3
|
+
*
|
|
4
|
+
* Pure parsers for OOXML property structures that don't depend on the
|
|
5
|
+
* main reader context. These are the building blocks used by the higher-level
|
|
6
|
+
* paragraph/run/table/section parsers.
|
|
7
|
+
*
|
|
8
|
+
* Includes:
|
|
9
|
+
* - `parseRunProperties` (w:rPr)
|
|
10
|
+
* - `parseShading` (w:shd)
|
|
11
|
+
* - `parseBorder` (any border element)
|
|
12
|
+
* - `parseTableWidth` (w:tblW, w:tcW, etc.)
|
|
13
|
+
* - `parseRevisionInfo` (w:ins/w:del/w:rPrChange/etc. revision metadata)
|
|
14
|
+
*/
|
|
15
|
+
import type { XmlElement } from "../../xml/types.js";
|
|
16
|
+
import type { Border, RevisionInfo, RunProperties, Shading, TableWidth } from "../types.js";
|
|
17
|
+
export declare function parseRunProperties(rPrEl: XmlElement): RunProperties;
|
|
18
|
+
export declare function parseShading(el: XmlElement): Shading;
|
|
19
|
+
export declare function parseBorder(el: XmlElement): Border;
|
|
20
|
+
export declare function parseTableWidth(el: XmlElement): TableWidth;
|
|
21
|
+
export declare function parseRevisionInfo(el: XmlElement): RevisionInfo | undefined;
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Reader - Properties Parsers
|
|
3
|
+
*
|
|
4
|
+
* Pure parsers for OOXML property structures that don't depend on the
|
|
5
|
+
* main reader context. These are the building blocks used by the higher-level
|
|
6
|
+
* paragraph/run/table/section parsers.
|
|
7
|
+
*
|
|
8
|
+
* Includes:
|
|
9
|
+
* - `parseRunProperties` (w:rPr)
|
|
10
|
+
* - `parseShading` (w:shd)
|
|
11
|
+
* - `parseBorder` (any border element)
|
|
12
|
+
* - `parseTableWidth` (w:tblW, w:tcW, etc.)
|
|
13
|
+
* - `parseRevisionInfo` (w:ins/w:del/w:rPrChange/etc. revision metadata)
|
|
14
|
+
*/
|
|
15
|
+
import {} from "../core/internal-utils.js";
|
|
16
|
+
import { attrInt, attrVal, boolToggle, findChildNs, safeParseInt } from "./parse-utils.js";
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Run Properties
|
|
19
|
+
// =============================================================================
|
|
20
|
+
export function parseRunProperties(rPrEl) {
|
|
21
|
+
const rPr = {};
|
|
22
|
+
const rStyleEl = findChildNs(rPrEl, "rStyle");
|
|
23
|
+
if (rStyleEl) {
|
|
24
|
+
rPr.style = attrVal(rStyleEl, "val");
|
|
25
|
+
}
|
|
26
|
+
const fontsEl = findChildNs(rPrEl, "rFonts");
|
|
27
|
+
if (fontsEl) {
|
|
28
|
+
const f = {};
|
|
29
|
+
const ascii = attrVal(fontsEl, "ascii");
|
|
30
|
+
const hAnsi = attrVal(fontsEl, "hAnsi");
|
|
31
|
+
const eastAsia = attrVal(fontsEl, "eastAsia");
|
|
32
|
+
const cs = attrVal(fontsEl, "cs");
|
|
33
|
+
const hint = attrVal(fontsEl, "hint");
|
|
34
|
+
if (ascii) {
|
|
35
|
+
f.ascii = ascii;
|
|
36
|
+
}
|
|
37
|
+
if (hAnsi) {
|
|
38
|
+
f.hAnsi = hAnsi;
|
|
39
|
+
}
|
|
40
|
+
if (eastAsia) {
|
|
41
|
+
f.eastAsia = eastAsia;
|
|
42
|
+
}
|
|
43
|
+
if (cs) {
|
|
44
|
+
f.cs = cs;
|
|
45
|
+
}
|
|
46
|
+
if (hint) {
|
|
47
|
+
f.hint = hint;
|
|
48
|
+
}
|
|
49
|
+
const asciiTheme = attrVal(fontsEl, "asciiTheme");
|
|
50
|
+
if (asciiTheme) {
|
|
51
|
+
f.asciiTheme = asciiTheme;
|
|
52
|
+
}
|
|
53
|
+
const hAnsiTheme = attrVal(fontsEl, "hAnsiTheme");
|
|
54
|
+
if (hAnsiTheme) {
|
|
55
|
+
f.hAnsiTheme = hAnsiTheme;
|
|
56
|
+
}
|
|
57
|
+
const eastAsiaTheme = attrVal(fontsEl, "eastAsiaTheme");
|
|
58
|
+
if (eastAsiaTheme) {
|
|
59
|
+
f.eastAsiaTheme = eastAsiaTheme;
|
|
60
|
+
}
|
|
61
|
+
const cstheme = attrVal(fontsEl, "cstheme");
|
|
62
|
+
if (cstheme) {
|
|
63
|
+
f.cstheme = cstheme;
|
|
64
|
+
}
|
|
65
|
+
rPr.font = f;
|
|
66
|
+
}
|
|
67
|
+
// Boolean toggles: true-only (element presence = true; absence = undefined)
|
|
68
|
+
// Format: [elementName, propertyKey]
|
|
69
|
+
const RUN_ONCE_TOGGLES = [
|
|
70
|
+
["strike", "strike"],
|
|
71
|
+
["dstrike", "doubleStrike"],
|
|
72
|
+
["caps", "caps"],
|
|
73
|
+
["smallCaps", "smallCaps"],
|
|
74
|
+
["vanish", "vanish"],
|
|
75
|
+
["emboss", "emboss"],
|
|
76
|
+
["imprint", "imprint"],
|
|
77
|
+
["noProof", "noProof"],
|
|
78
|
+
["specVanish", "specVanish"],
|
|
79
|
+
["outline", "outline"],
|
|
80
|
+
["shadow", "shadow"],
|
|
81
|
+
["cs", "complexScript"],
|
|
82
|
+
["oMath", "math"],
|
|
83
|
+
["webHidden", "webHidden"]
|
|
84
|
+
];
|
|
85
|
+
for (const [tag, key] of RUN_ONCE_TOGGLES) {
|
|
86
|
+
if (findChildNs(rPrEl, tag) && boolToggle(rPrEl, tag) !== false) {
|
|
87
|
+
rPr[key] = true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Boolean toggles: tri-state (can be explicitly true or false)
|
|
91
|
+
const RUN_TRISTATE_TOGGLES = [
|
|
92
|
+
["b", "bold"],
|
|
93
|
+
["bCs", "boldCs"],
|
|
94
|
+
["i", "italic"],
|
|
95
|
+
["iCs", "italicCs"],
|
|
96
|
+
["snapToGrid", "snapToGrid"],
|
|
97
|
+
["rtl", "rightToLeft"]
|
|
98
|
+
];
|
|
99
|
+
for (const [tag, key] of RUN_TRISTATE_TOGGLES) {
|
|
100
|
+
const v = boolToggle(rPrEl, tag);
|
|
101
|
+
if (v !== undefined) {
|
|
102
|
+
rPr[key] = v;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// fitText
|
|
106
|
+
const fitTextEl = findChildNs(rPrEl, "fitText");
|
|
107
|
+
if (fitTextEl) {
|
|
108
|
+
const val = attrInt(fitTextEl, "val");
|
|
109
|
+
if (val !== undefined) {
|
|
110
|
+
const id = attrInt(fitTextEl, "id");
|
|
111
|
+
rPr.fitText = id !== undefined ? { val, id } : { val };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const colorEl = findChildNs(rPrEl, "color");
|
|
115
|
+
if (colorEl) {
|
|
116
|
+
const val = attrVal(colorEl, "val");
|
|
117
|
+
const themeColor = attrVal(colorEl, "themeColor");
|
|
118
|
+
if (themeColor) {
|
|
119
|
+
const spec = { val, themeColor };
|
|
120
|
+
const themeTint = attrVal(colorEl, "themeTint");
|
|
121
|
+
const themeShade = attrVal(colorEl, "themeShade");
|
|
122
|
+
if (themeTint) {
|
|
123
|
+
spec.themeTint = themeTint;
|
|
124
|
+
}
|
|
125
|
+
if (themeShade) {
|
|
126
|
+
spec.themeShade = themeShade;
|
|
127
|
+
}
|
|
128
|
+
rPr.color = spec;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
rPr.color = val;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const szEl = findChildNs(rPrEl, "sz");
|
|
135
|
+
if (szEl) {
|
|
136
|
+
rPr.size = attrInt(szEl, "val");
|
|
137
|
+
}
|
|
138
|
+
const szCsEl = findChildNs(rPrEl, "szCs");
|
|
139
|
+
if (szCsEl) {
|
|
140
|
+
rPr.sizeCs = attrInt(szCsEl, "val");
|
|
141
|
+
}
|
|
142
|
+
const uEl = findChildNs(rPrEl, "u");
|
|
143
|
+
if (uEl) {
|
|
144
|
+
const uStyle = (attrVal(uEl, "val") ?? "single");
|
|
145
|
+
const uColor = attrVal(uEl, "color");
|
|
146
|
+
if (uColor) {
|
|
147
|
+
rPr.underline = { style: uStyle, color: uColor };
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
rPr.underline = uStyle;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const highlightEl = findChildNs(rPrEl, "highlight");
|
|
154
|
+
if (highlightEl) {
|
|
155
|
+
rPr.highlight = attrVal(highlightEl, "val");
|
|
156
|
+
}
|
|
157
|
+
const vertAlignEl = findChildNs(rPrEl, "vertAlign");
|
|
158
|
+
if (vertAlignEl) {
|
|
159
|
+
rPr.vertAlign = attrVal(vertAlignEl, "val");
|
|
160
|
+
}
|
|
161
|
+
const spacingEl = findChildNs(rPrEl, "spacing");
|
|
162
|
+
if (spacingEl) {
|
|
163
|
+
rPr.spacing = attrInt(spacingEl, "val");
|
|
164
|
+
}
|
|
165
|
+
const shdEl = findChildNs(rPrEl, "shd");
|
|
166
|
+
if (shdEl) {
|
|
167
|
+
rPr.shading = parseShading(shdEl);
|
|
168
|
+
}
|
|
169
|
+
const langEl = findChildNs(rPrEl, "lang");
|
|
170
|
+
if (langEl) {
|
|
171
|
+
rPr.language = {
|
|
172
|
+
val: attrVal(langEl, "val"),
|
|
173
|
+
eastAsia: attrVal(langEl, "eastAsia"),
|
|
174
|
+
bidi: attrVal(langEl, "bidi")
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// New valued properties
|
|
178
|
+
const kernEl = findChildNs(rPrEl, "kern");
|
|
179
|
+
if (kernEl) {
|
|
180
|
+
rPr.kern = attrInt(kernEl, "val");
|
|
181
|
+
}
|
|
182
|
+
const positionEl = findChildNs(rPrEl, "position");
|
|
183
|
+
if (positionEl) {
|
|
184
|
+
rPr.position = attrInt(positionEl, "val");
|
|
185
|
+
}
|
|
186
|
+
const wEl = findChildNs(rPrEl, "w");
|
|
187
|
+
if (wEl) {
|
|
188
|
+
rPr.scale = attrInt(wEl, "val");
|
|
189
|
+
}
|
|
190
|
+
const effectEl = findChildNs(rPrEl, "effect");
|
|
191
|
+
if (effectEl) {
|
|
192
|
+
rPr.effect = attrVal(effectEl, "val");
|
|
193
|
+
}
|
|
194
|
+
const emEl = findChildNs(rPrEl, "em");
|
|
195
|
+
if (emEl) {
|
|
196
|
+
rPr.emphasisMark = attrVal(emEl, "val");
|
|
197
|
+
}
|
|
198
|
+
const eaLayoutEl = findChildNs(rPrEl, "eastAsianLayout");
|
|
199
|
+
if (eaLayoutEl) {
|
|
200
|
+
const ea = parseEastAsianLayout(eaLayoutEl);
|
|
201
|
+
if (ea) {
|
|
202
|
+
rPr.eastAsianLayout = ea;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const bdrEl = findChildNs(rPrEl, "bdr");
|
|
206
|
+
if (bdrEl) {
|
|
207
|
+
rPr.border = parseBorder(bdrEl);
|
|
208
|
+
}
|
|
209
|
+
// rPrChange (track changes for run properties)
|
|
210
|
+
const rPrChangeEl = findChildNs(rPrEl, "rPrChange");
|
|
211
|
+
if (rPrChangeEl) {
|
|
212
|
+
const rev = parseRevisionInfo(rPrChangeEl);
|
|
213
|
+
if (rev) {
|
|
214
|
+
const prevRPrEl = findChildNs(rPrChangeEl, "rPr");
|
|
215
|
+
const change = {
|
|
216
|
+
revision: rev,
|
|
217
|
+
previousProperties: prevRPrEl ? parseRunProperties(prevRPrEl) : undefined
|
|
218
|
+
};
|
|
219
|
+
rPr.propertyChange = change;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return rPr;
|
|
223
|
+
}
|
|
224
|
+
// =============================================================================
|
|
225
|
+
// East Asian Layout
|
|
226
|
+
// =============================================================================
|
|
227
|
+
const VALID_COMBINE_BRACKETS = new Set([
|
|
228
|
+
"none",
|
|
229
|
+
"round",
|
|
230
|
+
"square",
|
|
231
|
+
"angle",
|
|
232
|
+
"curly"
|
|
233
|
+
]);
|
|
234
|
+
/**
|
|
235
|
+
* Interpret an OOXML on/off attribute (ECMA-376 §17.17.4): a value of
|
|
236
|
+
* `"1"`, `"true"`, `"on"` or the empty string is true; `"0"`, `"false"`,
|
|
237
|
+
* `"off"` is false; missing yields undefined.
|
|
238
|
+
*/
|
|
239
|
+
function attrOnOff(el, name) {
|
|
240
|
+
const v = attrVal(el, name);
|
|
241
|
+
if (v == null) {
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
244
|
+
if (v === "0" || v === "false" || v === "off") {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
function parseEastAsianLayout(el) {
|
|
250
|
+
const spec = {};
|
|
251
|
+
const id = attrInt(el, "id");
|
|
252
|
+
if (id != null) {
|
|
253
|
+
spec.id = id;
|
|
254
|
+
}
|
|
255
|
+
if (attrOnOff(el, "combine") === true) {
|
|
256
|
+
spec.combine = true;
|
|
257
|
+
}
|
|
258
|
+
const brackets = attrVal(el, "combineBrackets");
|
|
259
|
+
if (brackets && VALID_COMBINE_BRACKETS.has(brackets)) {
|
|
260
|
+
spec.combineBrackets = brackets;
|
|
261
|
+
}
|
|
262
|
+
if (attrOnOff(el, "vert") === true) {
|
|
263
|
+
spec.vert = true;
|
|
264
|
+
}
|
|
265
|
+
if (attrOnOff(el, "vertCompress") === true) {
|
|
266
|
+
spec.vertCompress = true;
|
|
267
|
+
}
|
|
268
|
+
return Object.keys(spec).length > 0 ? spec : undefined;
|
|
269
|
+
}
|
|
270
|
+
// =============================================================================
|
|
271
|
+
// Shading / Border / Width
|
|
272
|
+
// =============================================================================
|
|
273
|
+
export function parseShading(el) {
|
|
274
|
+
return {
|
|
275
|
+
pattern: attrVal(el, "val"),
|
|
276
|
+
color: attrVal(el, "color"),
|
|
277
|
+
fill: attrVal(el, "fill") ?? "auto"
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
export function parseBorder(el) {
|
|
281
|
+
const b = {
|
|
282
|
+
style: (attrVal(el, "val") ?? "single"),
|
|
283
|
+
size: attrInt(el, "sz"),
|
|
284
|
+
space: attrInt(el, "space"),
|
|
285
|
+
color: attrVal(el, "color")
|
|
286
|
+
};
|
|
287
|
+
const tc = attrVal(el, "themeColor");
|
|
288
|
+
if (tc) {
|
|
289
|
+
b.themeColor = tc;
|
|
290
|
+
}
|
|
291
|
+
const shadow = attrVal(el, "shadow");
|
|
292
|
+
if (shadow === "1" || shadow === "true") {
|
|
293
|
+
b.shadow = true;
|
|
294
|
+
}
|
|
295
|
+
const frame = attrVal(el, "frame");
|
|
296
|
+
if (frame === "1" || frame === "true") {
|
|
297
|
+
b.frame = true;
|
|
298
|
+
}
|
|
299
|
+
const art = attrVal(el, "art");
|
|
300
|
+
if (art) {
|
|
301
|
+
b.art = art;
|
|
302
|
+
}
|
|
303
|
+
return b;
|
|
304
|
+
}
|
|
305
|
+
export function parseTableWidth(el) {
|
|
306
|
+
return {
|
|
307
|
+
// Reject non-numeric values (a hostile DOCX could write
|
|
308
|
+
// `<w:tblW w:w="abc"/>`); falling back to 0 keeps the model field
|
|
309
|
+
// a finite number and prevents `NaN` from being serialised back to
|
|
310
|
+
// the output XML, which Word rejects.
|
|
311
|
+
value: safeParseInt(el.attributes["w:w"] ?? el.attributes["w"], 0),
|
|
312
|
+
type: (el.attributes["w:type"] ?? el.attributes["type"] ?? "dxa")
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
// =============================================================================
|
|
316
|
+
// Revision Info
|
|
317
|
+
// =============================================================================
|
|
318
|
+
export function parseRevisionInfo(el) {
|
|
319
|
+
const author = attrVal(el, "author");
|
|
320
|
+
const id = attrInt(el, "id");
|
|
321
|
+
// ECMA-376 marks `w:author` and `w:id` as optional on revision elements.
|
|
322
|
+
// Earlier we returned `undefined` if either was missing — that quietly
|
|
323
|
+
// dropped the entire `<w:ins>`/`<w:del>` body in callers that gate on
|
|
324
|
+
// this result. Fall back to a sentinel author/id so the surrounding runs
|
|
325
|
+
// are still preserved (the user-visible text is what matters; the
|
|
326
|
+
// metadata is purely informational).
|
|
327
|
+
return {
|
|
328
|
+
author: author ?? "",
|
|
329
|
+
id: id ?? 0,
|
|
330
|
+
date: attrVal(el, "date")
|
|
331
|
+
};
|
|
332
|
+
}
|