@cj-tech-master/excelts 3.1.0-canary.20260102071304.d80b29d → 4.0.0-canary.20260103013222.0e5d37f
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/README.md +2 -2
- package/README_zh.md +2 -2
- package/dist/browser/index.browser.d.ts +25 -0
- package/dist/browser/index.browser.js +40 -0
- package/dist/browser/index.d.ts +23 -0
- package/dist/browser/index.js +35 -0
- package/dist/browser/modules/archive/byte-queue.d.ts +18 -0
- package/dist/browser/modules/archive/byte-queue.js +125 -0
- package/dist/browser/modules/archive/compress.base.d.ts +98 -0
- package/dist/browser/modules/archive/compress.base.js +173 -0
- package/dist/browser/modules/archive/compress.browser.d.ts +57 -0
- package/dist/browser/modules/archive/compress.browser.js +93 -0
- package/dist/browser/modules/archive/compress.d.ts +44 -0
- package/dist/browser/modules/archive/compress.js +86 -0
- package/dist/browser/modules/archive/crc32.base.d.ts +25 -0
- package/dist/browser/modules/archive/crc32.base.js +51 -0
- package/dist/browser/modules/archive/crc32.browser.d.ts +30 -0
- package/dist/browser/modules/archive/crc32.browser.js +32 -0
- package/dist/browser/modules/archive/crc32.d.ts +59 -0
- package/dist/browser/modules/archive/crc32.js +97 -0
- package/dist/browser/modules/archive/defaults.d.ts +4 -0
- package/dist/browser/modules/archive/defaults.js +3 -0
- package/dist/browser/modules/archive/deflate-fallback.d.ts +39 -0
- package/dist/browser/modules/archive/deflate-fallback.js +564 -0
- package/dist/browser/modules/archive/extract.d.ts +94 -0
- package/dist/browser/modules/archive/extract.js +106 -0
- package/dist/browser/modules/archive/index.base.d.ts +11 -0
- package/dist/browser/modules/archive/index.base.js +13 -0
- package/dist/browser/modules/archive/index.browser.d.ts +11 -0
- package/dist/browser/modules/archive/index.browser.js +17 -0
- package/dist/browser/modules/archive/index.d.ts +11 -0
- package/dist/browser/modules/archive/index.js +15 -0
- package/dist/browser/modules/archive/parse.base.d.ts +198 -0
- package/dist/browser/modules/archive/parse.base.js +610 -0
- package/dist/browser/modules/archive/parse.browser.d.ts +22 -0
- package/dist/browser/modules/archive/parse.browser.js +564 -0
- package/dist/browser/modules/archive/parse.d.ts +16 -0
- package/dist/browser/modules/archive/parse.js +94 -0
- package/dist/browser/modules/archive/streaming-compress.base.d.ts +36 -0
- package/dist/browser/modules/archive/streaming-compress.base.js +9 -0
- package/dist/browser/modules/archive/streaming-compress.browser.d.ts +26 -0
- package/dist/browser/modules/archive/streaming-compress.browser.js +296 -0
- package/dist/browser/modules/archive/streaming-compress.d.ts +22 -0
- package/dist/browser/modules/archive/streaming-compress.js +68 -0
- package/dist/browser/modules/archive/streaming-zip.d.ts +120 -0
- package/dist/browser/modules/archive/streaming-zip.js +407 -0
- package/dist/browser/modules/archive/utils/binary.d.ts +24 -0
- package/dist/browser/modules/archive/utils/binary.js +69 -0
- package/dist/browser/modules/archive/utils/bytes.d.ts +7 -0
- package/dist/browser/modules/archive/utils/bytes.js +101 -0
- package/dist/browser/modules/archive/utils/parse-buffer.d.ts +18 -0
- package/dist/browser/modules/archive/utils/parse-buffer.js +55 -0
- package/dist/browser/modules/archive/utils/text.d.ts +20 -0
- package/dist/browser/modules/archive/utils/text.js +33 -0
- package/dist/browser/modules/archive/utils/timestamps.d.ts +28 -0
- package/dist/browser/modules/archive/utils/timestamps.js +48 -0
- package/dist/browser/modules/archive/utils/zip-extra-fields.d.ts +19 -0
- package/dist/browser/modules/archive/utils/zip-extra-fields.js +72 -0
- package/dist/browser/modules/archive/utils/zip-extra.d.ts +18 -0
- package/dist/browser/modules/archive/utils/zip-extra.js +68 -0
- package/dist/browser/modules/archive/zip-builder.d.ts +117 -0
- package/dist/browser/modules/archive/zip-builder.js +292 -0
- package/dist/browser/modules/archive/zip-constants.d.ts +18 -0
- package/dist/browser/modules/archive/zip-constants.js +23 -0
- package/dist/browser/modules/archive/zip-entry-info.d.ts +29 -0
- package/dist/browser/modules/archive/zip-entry-info.js +6 -0
- package/dist/browser/modules/archive/zip-entry-metadata.d.ts +23 -0
- package/dist/browser/modules/archive/zip-entry-metadata.js +24 -0
- package/dist/browser/modules/archive/zip-parser.d.ts +62 -0
- package/dist/browser/modules/archive/zip-parser.js +332 -0
- package/dist/browser/modules/archive/zip-records.d.ts +43 -0
- package/dist/browser/modules/archive/zip-records.js +84 -0
- package/dist/browser/modules/csv/csv-core.d.ts +215 -0
- package/dist/browser/modules/csv/csv-core.js +723 -0
- package/dist/browser/modules/csv/csv-number.d.ts +3 -0
- package/dist/browser/modules/csv/csv-number.js +20 -0
- package/dist/browser/modules/csv/csv-stream.d.ts +121 -0
- package/dist/browser/modules/csv/csv-stream.js +703 -0
- package/dist/browser/modules/csv/csv.browser.d.ts +60 -0
- package/dist/browser/modules/csv/csv.browser.js +265 -0
- package/dist/browser/modules/csv/csv.d.ts +14 -0
- package/dist/browser/modules/csv/csv.js +29 -0
- package/dist/browser/modules/excel/anchor.d.ts +33 -0
- package/dist/browser/modules/excel/anchor.js +97 -0
- package/dist/browser/modules/excel/cell.d.ts +138 -0
- package/dist/browser/modules/excel/cell.js +946 -0
- package/dist/browser/modules/excel/column.d.ts +122 -0
- package/dist/browser/modules/excel/column.js +358 -0
- package/dist/browser/modules/excel/data-validations.d.ts +11 -0
- package/dist/browser/modules/excel/data-validations.js +43 -0
- package/dist/browser/modules/excel/defined-names.d.ts +37 -0
- package/dist/browser/modules/excel/defined-names.js +214 -0
- package/dist/browser/modules/excel/enums.d.ts +62 -0
- package/dist/browser/modules/excel/enums.js +58 -0
- package/dist/browser/modules/excel/image.d.ts +64 -0
- package/dist/browser/modules/excel/image.js +60 -0
- package/dist/browser/modules/excel/note.d.ts +29 -0
- package/dist/browser/modules/excel/note.js +61 -0
- package/dist/browser/modules/excel/pivot-table.d.ts +152 -0
- package/dist/browser/modules/excel/pivot-table.js +237 -0
- package/dist/browser/modules/excel/range.d.ts +62 -0
- package/dist/browser/modules/excel/range.js +280 -0
- package/dist/browser/modules/excel/row.d.ts +127 -0
- package/dist/browser/modules/excel/row.js +441 -0
- package/dist/browser/modules/excel/stream/hyperlink-reader.d.ts +33 -0
- package/dist/browser/modules/excel/stream/hyperlink-reader.js +84 -0
- package/dist/browser/modules/excel/stream/sheet-comments-writer.d.ts +26 -0
- package/dist/browser/modules/excel/stream/sheet-comments-writer.js +101 -0
- package/dist/browser/modules/excel/stream/sheet-rels-writer.d.ts +45 -0
- package/dist/browser/modules/excel/stream/sheet-rels-writer.js +91 -0
- package/dist/browser/modules/excel/stream/workbook-reader.browser.d.ts +169 -0
- package/dist/browser/modules/excel/stream/workbook-reader.browser.js +443 -0
- package/dist/browser/modules/excel/stream/workbook-reader.d.ts +24 -0
- package/dist/browser/modules/excel/stream/workbook-reader.js +50 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +147 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.js +356 -0
- package/dist/browser/modules/excel/stream/workbook-writer.d.ts +31 -0
- package/dist/browser/modules/excel/stream/workbook-writer.js +52 -0
- package/dist/browser/modules/excel/stream/worksheet-reader.d.ts +61 -0
- package/dist/browser/modules/excel/stream/worksheet-reader.js +367 -0
- package/dist/browser/modules/excel/stream/worksheet-writer.d.ts +140 -0
- package/dist/browser/modules/excel/stream/worksheet-writer.js +613 -0
- package/dist/browser/modules/excel/table.d.ts +81 -0
- package/dist/browser/modules/excel/table.js +405 -0
- package/dist/browser/modules/excel/types.d.ts +518 -0
- package/dist/browser/modules/excel/types.js +22 -0
- package/dist/browser/modules/excel/utils/cell-format.d.ts +32 -0
- package/dist/browser/modules/excel/utils/cell-format.js +814 -0
- package/dist/browser/modules/excel/utils/cell-matrix.d.ts +37 -0
- package/dist/browser/modules/excel/utils/cell-matrix.js +180 -0
- package/dist/browser/modules/excel/utils/col-cache.d.ts +36 -0
- package/dist/browser/modules/excel/utils/col-cache.js +278 -0
- package/dist/browser/modules/excel/utils/copy-style.d.ts +5 -0
- package/dist/browser/modules/excel/utils/copy-style.js +43 -0
- package/dist/browser/modules/excel/utils/encryptor.browser.d.ts +19 -0
- package/dist/browser/modules/excel/utils/encryptor.browser.js +46 -0
- package/dist/browser/modules/excel/utils/encryptor.d.ts +9 -0
- package/dist/browser/modules/excel/utils/encryptor.js +35 -0
- package/dist/browser/modules/excel/utils/iterate-stream.d.ts +14 -0
- package/dist/browser/modules/excel/utils/iterate-stream.js +55 -0
- package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +64 -0
- package/dist/browser/modules/excel/utils/ooxml-paths.js +209 -0
- package/dist/browser/modules/excel/utils/parse-sax.d.ts +113 -0
- package/dist/browser/modules/excel/utils/parse-sax.js +1206 -0
- package/dist/browser/modules/excel/utils/shared-formula.d.ts +2 -0
- package/dist/browser/modules/excel/utils/shared-formula.js +36 -0
- package/dist/browser/modules/excel/utils/shared-strings.d.ts +12 -0
- package/dist/browser/modules/excel/utils/shared-strings.js +29 -0
- package/dist/browser/modules/excel/utils/sheet-utils.d.ts +190 -0
- package/dist/browser/modules/excel/utils/sheet-utils.js +674 -0
- package/dist/browser/modules/excel/utils/stream-buf.d.ts +126 -0
- package/dist/browser/modules/excel/utils/stream-buf.js +452 -0
- package/dist/browser/modules/excel/utils/string-buf.d.ts +29 -0
- package/dist/browser/modules/excel/utils/string-buf.js +75 -0
- package/dist/browser/modules/excel/utils/under-dash.d.ts +7 -0
- package/dist/browser/modules/excel/utils/under-dash.js +166 -0
- package/dist/browser/modules/excel/utils/xml-stream.d.ts +34 -0
- package/dist/browser/modules/excel/utils/xml-stream.js +179 -0
- package/dist/browser/modules/excel/workbook.d.ts +195 -0
- package/dist/browser/modules/excel/workbook.js +314 -0
- package/dist/browser/modules/excel/worksheet.d.ts +333 -0
- package/dist/browser/modules/excel/worksheet.js +924 -0
- package/dist/browser/modules/excel/xlsx/defaultnumformats.d.ts +12 -0
- package/dist/browser/modules/excel/xlsx/defaultnumformats.js +149 -0
- package/dist/browser/modules/excel/xlsx/rel-type.d.ts +19 -0
- package/dist/browser/modules/excel/xlsx/rel-type.js +19 -0
- package/dist/browser/modules/excel/xlsx/xform/base-xform.d.ts +33 -0
- package/dist/browser/modules/excel/xlsx/xform/base-xform.js +135 -0
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +124 -0
- package/dist/browser/modules/excel/xlsx/xform/book/sheet-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/book/sheet-xform.js +30 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.d.ts +11 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.js +21 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +12 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.js +24 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-properties-xform.d.ts +11 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-properties-xform.js +24 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-view-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-view-xform.js +46 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.d.ts +23 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +234 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.d.ts +28 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.js +76 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/comments-xform.d.ts +21 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/comments-xform.js +72 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-position-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-position-xform.js +34 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-protection-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-protection-xform.js +30 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-anchor-xform.d.ts +27 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-anchor-xform.js +55 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-client-data-xform.d.ts +35 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-client-data-xform.js +82 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-notes-xform.d.ts +24 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-notes-xform.js +96 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-shape-xform.d.ts +25 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-shape-xform.js +83 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-textbox-xform.d.ts +23 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-textbox-xform.js +60 -0
- package/dist/browser/modules/excel/xlsx/xform/composite-xform.d.ts +11 -0
- package/dist/browser/modules/excel/xlsx/xform/composite-xform.js +48 -0
- package/dist/browser/modules/excel/xlsx/xform/core/app-heading-pairs-xform.d.ts +8 -0
- package/dist/browser/modules/excel/xlsx/xform/core/app-heading-pairs-xform.js +24 -0
- package/dist/browser/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.d.ts +8 -0
- package/dist/browser/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.js +21 -0
- package/dist/browser/modules/excel/xlsx/xform/core/app-xform.d.ts +26 -0
- package/dist/browser/modules/excel/xlsx/xform/core/app-xform.js +83 -0
- package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.d.ts +11 -0
- package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +122 -0
- package/dist/browser/modules/excel/xlsx/xform/core/core-xform.d.ts +42 -0
- package/dist/browser/modules/excel/xlsx/xform/core/core-xform.js +124 -0
- package/dist/browser/modules/excel/xlsx/xform/core/relationship-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/core/relationship-xform.js +20 -0
- package/dist/browser/modules/excel/xlsx/xform/core/relationships-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/core/relationships-xform.js +62 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +13 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +44 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/blip-fill-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/blip-fill-xform.js +57 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/blip-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/blip-xform.js +40 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.js +32 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.d.ts +18 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.js +59 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/cell-position-xform.d.ts +24 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/cell-position-xform.js +68 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +24 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +96 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/ext-lst-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/ext-lst-xform.js +37 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/ext-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/ext-xform.js +34 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/hlink-click-xform.d.ts +11 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/hlink-click-xform.js +39 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +15 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.js +56 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +52 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/pic-xform.d.ts +22 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/pic-xform.js +64 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/sp-pr.d.ts +32 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/sp-pr.js +17 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +51 -0
- package/dist/browser/modules/excel/xlsx/xform/list-xform.d.ts +32 -0
- package/dist/browser/modules/excel/xlsx/xform/list-xform.js +89 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +42 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +128 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.d.ts +15 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.js +78 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +60 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +179 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +73 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +234 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +119 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +624 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/auto-filter-xform.d.ts +8 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/auto-filter-xform.js +34 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.js +460 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +41 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +259 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.d.ts +8 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.js +22 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.d.ts +13 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.js +35 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.js +37 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.js +74 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/databar-xform.d.ts +13 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/databar-xform.js +39 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +67 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/formula-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/formula-xform.js +19 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.d.ts +11 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.js +37 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +10 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +22 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +23 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +80 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +13 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +35 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +48 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +13 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +40 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +29 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +69 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.js +19 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +60 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +19 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/col-breaks-xform.js +35 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/col-xform.d.ts +22 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/col-xform.js +75 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.d.ts +12 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.js +269 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/dimension-xform.d.ts +10 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/dimension-xform.js +23 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/drawing-xform.d.ts +12 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/drawing-xform.js +27 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +66 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/header-footer-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/header-footer-xform.js +124 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/hyperlink-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/hyperlink-xform.js +47 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/merge-cell-xform.d.ts +9 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/merge-cell-xform.js +21 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/merges.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/merges.js +50 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/outline-properties-xform.d.ts +13 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/outline-properties-xform.js +36 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-breaks-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-breaks-xform.js +33 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-margins-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-margins-xform.js +42 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.d.ts +12 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.js +29 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.d.ts +27 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.js +96 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/picture-xform.d.ts +12 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/picture-xform.js +27 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/print-options-xform.d.ts +15 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/print-options-xform.js +41 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/row-breaks-xform.d.ts +10 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/row-breaks-xform.js +29 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.d.ts +37 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.js +152 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +16 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.js +49 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-properties-xform.d.ts +19 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-properties-xform.js +82 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-protection-xform.d.ts +31 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-protection-xform.js +80 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-view-xform.d.ts +32 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-view-xform.js +193 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/table-part-xform.d.ts +12 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/table-part-xform.js +27 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.d.ts +21 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +518 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/boolean-xform.d.ts +15 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/boolean-xform.js +24 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/date-xform.d.ts +22 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/date-xform.js +65 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/float-xform.d.ts +18 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/float-xform.js +47 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/integer-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/integer-xform.js +52 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/string-xform.d.ts +18 -0
- package/dist/browser/modules/excel/xlsx/xform/simple/string-xform.js +47 -0
- package/dist/browser/modules/excel/xlsx/xform/static-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/static-xform.js +55 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/phonetic-text-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +86 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/rich-text-xform.d.ts +25 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/rich-text-xform.js +77 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/shared-string-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/shared-string-xform.js +90 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/shared-strings-xform.d.ts +27 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/shared-strings-xform.js +109 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/text-xform.d.ts +10 -0
- package/dist/browser/modules/excel/xlsx/xform/strings/text-xform.js +36 -0
- package/dist/browser/modules/excel/xlsx/xform/style/alignment-xform.d.ts +18 -0
- package/dist/browser/modules/excel/xlsx/xform/style/alignment-xform.js +152 -0
- package/dist/browser/modules/excel/xlsx/xform/style/border-xform.d.ts +49 -0
- package/dist/browser/modules/excel/xlsx/xform/style/border-xform.js +188 -0
- package/dist/browser/modules/excel/xlsx/xform/style/color-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/style/color-xform.js +61 -0
- package/dist/browser/modules/excel/xlsx/xform/style/dxf-xform.d.ts +23 -0
- package/dist/browser/modules/excel/xlsx/xform/style/dxf-xform.js +92 -0
- package/dist/browser/modules/excel/xlsx/xform/style/fill-xform.d.ts +85 -0
- package/dist/browser/modules/excel/xlsx/xform/style/fill-xform.js +312 -0
- package/dist/browser/modules/excel/xlsx/xform/style/font-xform.d.ts +35 -0
- package/dist/browser/modules/excel/xlsx/xform/style/font-xform.js +100 -0
- package/dist/browser/modules/excel/xlsx/xform/style/numfmt-xform.d.ts +18 -0
- package/dist/browser/modules/excel/xlsx/xform/style/numfmt-xform.js +50 -0
- package/dist/browser/modules/excel/xlsx/xform/style/protection-xform.d.ts +13 -0
- package/dist/browser/modules/excel/xlsx/xform/style/protection-xform.js +49 -0
- package/dist/browser/modules/excel/xlsx/xform/style/style-xform.d.ts +30 -0
- package/dist/browser/modules/excel/xlsx/xform/style/style-xform.js +108 -0
- package/dist/browser/modules/excel/xlsx/xform/style/styles-xform.d.ts +46 -0
- package/dist/browser/modules/excel/xlsx/xform/style/styles-xform.js +484 -0
- package/dist/browser/modules/excel/xlsx/xform/style/underline-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/style/underline-xform.js +38 -0
- package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.d.ts +21 -0
- package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +70 -0
- package/dist/browser/modules/excel/xlsx/xform/table/custom-filter-xform.d.ts +15 -0
- package/dist/browser/modules/excel/xlsx/xform/table/custom-filter-xform.js +31 -0
- package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.d.ts +24 -0
- package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.js +87 -0
- package/dist/browser/modules/excel/xlsx/xform/table/filter-xform.d.ts +14 -0
- package/dist/browser/modules/excel/xlsx/xform/table/filter-xform.js +29 -0
- package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.d.ts +21 -0
- package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.js +41 -0
- package/dist/browser/modules/excel/xlsx/xform/table/table-style-info-xform.d.ts +18 -0
- package/dist/browser/modules/excel/xlsx/xform/table/table-style-info-xform.js +44 -0
- package/dist/browser/modules/excel/xlsx/xform/table/table-xform.d.ts +33 -0
- package/dist/browser/modules/excel/xlsx/xform/table/table-xform.js +126 -0
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +208 -0
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +1152 -0
- package/dist/browser/modules/excel/xlsx/xlsx.d.ts +24 -0
- package/dist/browser/modules/excel/xlsx/xlsx.js +239 -0
- package/dist/browser/modules/excel/xlsx/xml/theme1.d.ts +1 -0
- package/dist/browser/modules/excel/xlsx/xml/theme1.js +1 -0
- package/dist/browser/modules/stream/base-transform.d.ts +68 -0
- package/dist/browser/modules/stream/base-transform.js +160 -0
- package/dist/browser/modules/stream/buffered-stream.d.ts +94 -0
- package/dist/browser/modules/stream/buffered-stream.js +277 -0
- package/dist/browser/modules/stream/chunked-builder.d.ts +97 -0
- package/dist/browser/modules/stream/chunked-builder.js +165 -0
- package/dist/browser/modules/stream/event-emitter.d.ts +30 -0
- package/dist/browser/modules/stream/event-emitter.js +239 -0
- package/dist/browser/modules/stream/index.browser.d.ts +22 -0
- package/dist/browser/modules/stream/index.browser.js +25 -0
- package/dist/browser/modules/stream/index.d.ts +49 -0
- package/dist/browser/modules/stream/index.js +52 -0
- package/dist/browser/modules/stream/pull-stream.d.ts +67 -0
- package/dist/browser/modules/stream/pull-stream.js +204 -0
- package/dist/browser/modules/stream/shared.d.ts +54 -0
- package/dist/browser/modules/stream/shared.js +156 -0
- package/dist/browser/modules/stream/streams.browser.d.ts +936 -0
- package/dist/browser/modules/stream/streams.browser.js +3297 -0
- package/dist/browser/modules/stream/streams.d.ts +282 -0
- package/dist/browser/modules/stream/streams.js +940 -0
- package/dist/browser/modules/stream/types.d.ts +238 -0
- package/dist/browser/modules/stream/types.js +7 -0
- package/dist/browser/modules/stream/utils.d.ts +24 -0
- package/dist/browser/modules/stream/utils.js +85 -0
- package/dist/browser/utils/browser.d.ts +9 -0
- package/dist/browser/utils/browser.js +49 -0
- package/dist/browser/utils/datetime.d.ts +56 -0
- package/dist/browser/utils/datetime.js +493 -0
- package/dist/browser/utils/env.d.ts +14 -0
- package/dist/browser/utils/env.js +18 -0
- package/dist/browser/utils/utils.base.d.ts +49 -0
- package/dist/browser/utils/utils.base.js +275 -0
- package/dist/browser/utils/utils.browser.d.ts +6 -0
- package/dist/browser/utils/utils.browser.js +12 -0
- package/dist/browser/utils/utils.d.ts +6 -0
- package/dist/browser/utils/utils.js +19 -0
- package/dist/browser/utils/uuid.d.ts +11 -0
- package/dist/browser/utils/uuid.js +55 -0
- package/dist/{browser → iife}/excelts.iife.js +1 -1
- package/dist/{browser → iife}/excelts.iife.min.js +1 -1
- package/dist/types/index.browser.d.ts +20 -20
- package/dist/types/index.d.ts +23 -23
- package/dist/types/modules/archive/compress.browser.d.ts +1 -1
- package/dist/types/modules/archive/compress.d.ts +2 -2
- package/dist/types/modules/archive/crc32.browser.d.ts +1 -1
- package/dist/types/modules/archive/crc32.d.ts +1 -1
- package/dist/types/modules/archive/defaults.d.ts +1 -1
- package/dist/types/modules/archive/extract.d.ts +2 -2
- package/dist/types/modules/archive/index.base.d.ts +4 -4
- package/dist/types/modules/archive/index.browser.d.ts +5 -5
- package/dist/types/modules/archive/index.d.ts +5 -5
- package/dist/types/modules/archive/parse.base.d.ts +3 -3
- package/dist/types/modules/archive/parse.browser.d.ts +2 -2
- package/dist/types/modules/archive/parse.d.ts +3 -3
- package/dist/types/modules/archive/streaming-compress.browser.d.ts +2 -2
- package/dist/types/modules/archive/streaming-compress.d.ts +2 -2
- package/dist/types/modules/archive/streaming-zip.d.ts +2 -2
- package/dist/types/modules/archive/zip-builder.d.ts +2 -2
- package/dist/types/modules/archive/zip-entry-metadata.d.ts +1 -1
- package/dist/types/modules/archive/zip-parser.d.ts +1 -1
- package/dist/types/modules/csv/csv-stream.d.ts +3 -3
- package/dist/types/modules/csv/csv.browser.d.ts +9 -9
- package/dist/types/modules/csv/csv.d.ts +4 -4
- package/dist/types/modules/excel/anchor.d.ts +1 -1
- package/dist/types/modules/excel/cell.d.ts +7 -7
- package/dist/types/modules/excel/column.d.ts +3 -3
- package/dist/types/modules/excel/defined-names.d.ts +4 -4
- package/dist/types/modules/excel/image.d.ts +2 -2
- package/dist/types/modules/excel/pivot-table.d.ts +1 -1
- package/dist/types/modules/excel/range.d.ts +1 -1
- package/dist/types/modules/excel/row.d.ts +3 -3
- package/dist/types/modules/excel/stream/hyperlink-reader.d.ts +2 -2
- package/dist/types/modules/excel/stream/workbook-reader.browser.d.ts +6 -6
- package/dist/types/modules/excel/stream/workbook-reader.d.ts +5 -5
- package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +8 -8
- package/dist/types/modules/excel/stream/workbook-writer.d.ts +2 -2
- package/dist/types/modules/excel/stream/worksheet-reader.d.ts +6 -6
- package/dist/types/modules/excel/stream/worksheet-writer.d.ts +9 -9
- package/dist/types/modules/excel/table.d.ts +2 -2
- package/dist/types/modules/excel/utils/col-cache.d.ts +1 -1
- package/dist/types/modules/excel/utils/sheet-utils.d.ts +3 -3
- package/dist/types/modules/excel/utils/stream-buf.d.ts +2 -2
- package/dist/types/modules/excel/workbook.d.ts +9 -9
- package/dist/types/modules/excel/worksheet.d.ts +10 -10
- package/dist/types/modules/excel/xlsx/xform/base-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/book/sheet-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/book/workbook-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/comment/comment-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/comment/comments-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/composite-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/core/app-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/core/content-types-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/core/core-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/core/relationship-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/core/relationships-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/drawing/blip-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/ext-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/pic-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/list-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cell-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/col-breaks-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/col-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/page-breaks-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/picture-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/row-breaks-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/row-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/simple/boolean-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/simple/date-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/simple/float-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/simple/integer-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/simple/string-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/static-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/strings/text-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/style/alignment-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/style/border-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/style/color-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/style/dxf-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/style/fill-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/style/font-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/style/numfmt-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/style/protection-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/style/style-xform.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xform/style/styles-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/style/underline-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/table/filter-column-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/table/filter-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/table/table-column-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/table/table-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +3 -3
- package/dist/types/modules/excel/xlsx/xlsx.d.ts +1 -1
- package/dist/types/modules/stream/base-transform.d.ts +1 -1
- package/dist/types/modules/stream/buffered-stream.d.ts +1 -1
- package/dist/types/modules/stream/index.browser.d.ts +8 -8
- package/dist/types/modules/stream/index.d.ts +8 -8
- package/dist/types/modules/stream/pull-stream.d.ts +1 -1
- package/dist/types/modules/stream/streams.browser.d.ts +4 -4
- package/dist/types/modules/stream/streams.d.ts +3 -3
- package/dist/types/modules/stream/utils.d.ts +1 -1
- package/dist/types/utils/utils.browser.d.ts +1 -1
- package/dist/types/utils/utils.d.ts +1 -1
- package/package.json +10 -6
- package/dist/browser/excelts.esm.js +0 -24621
- package/dist/browser/excelts.esm.js.map +0 -1
- package/dist/browser/excelts.esm.min.js +0 -148
- /package/dist/{browser → iife}/excelts.iife.js.map +0 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure Uint8Array-based ZIP parser
|
|
3
|
+
* Works in both Node.js and browser environments
|
|
4
|
+
* No dependency on Node.js stream module
|
|
5
|
+
*/
|
|
6
|
+
import { decompress, decompressSync } from "./compress.browser.js";
|
|
7
|
+
import { BinaryReader } from "./utils/binary.js";
|
|
8
|
+
import { resolveZipLastModifiedDateFromUnixSeconds } from "./utils/timestamps.js";
|
|
9
|
+
import { parseZipExtraFields } from "./utils/zip-extra-fields.js";
|
|
10
|
+
import { CENTRAL_DIR_HEADER_SIG, COMPRESSION_DEFLATE, COMPRESSION_STORE, END_OF_CENTRAL_DIR_SIG, LOCAL_FILE_HEADER_SIG, UINT16_MAX, UINT32_MAX, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG, ZIP64_END_OF_CENTRAL_DIR_SIG } from "./zip-constants.js";
|
|
11
|
+
/**
|
|
12
|
+
* Find the End of Central Directory record
|
|
13
|
+
* Searches backwards from the end of the file
|
|
14
|
+
*/
|
|
15
|
+
function findEndOfCentralDir(data) {
|
|
16
|
+
// EOCD is at least 22 bytes, search backwards
|
|
17
|
+
// Comment can be up to 65535 bytes
|
|
18
|
+
const minOffset = Math.max(0, data.length - 65557);
|
|
19
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
20
|
+
for (let i = data.length - 22; i >= minOffset; i--) {
|
|
21
|
+
if (view.getUint32(i, true) === END_OF_CENTRAL_DIR_SIG) {
|
|
22
|
+
return i;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return -1;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Find ZIP64 End of Central Directory Locator
|
|
29
|
+
*/
|
|
30
|
+
function findZip64EOCDLocator(data, eocdOffset) {
|
|
31
|
+
// ZIP64 EOCD Locator is 20 bytes and appears right before EOCD
|
|
32
|
+
const locatorOffset = eocdOffset - 20;
|
|
33
|
+
if (locatorOffset < 0) {
|
|
34
|
+
return -1;
|
|
35
|
+
}
|
|
36
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
37
|
+
if (view.getUint32(locatorOffset, true) === ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG) {
|
|
38
|
+
return locatorOffset;
|
|
39
|
+
}
|
|
40
|
+
return -1;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse ZIP file entries from Central Directory
|
|
44
|
+
*/
|
|
45
|
+
function parseZipEntries(data, options = {}) {
|
|
46
|
+
const { decodeStrings = true } = options;
|
|
47
|
+
const entries = [];
|
|
48
|
+
// Find End of Central Directory
|
|
49
|
+
const eocdOffset = findEndOfCentralDir(data);
|
|
50
|
+
if (eocdOffset === -1) {
|
|
51
|
+
throw new Error("Invalid ZIP file: End of Central Directory not found");
|
|
52
|
+
}
|
|
53
|
+
const reader = new BinaryReader(data, eocdOffset);
|
|
54
|
+
// Read EOCD
|
|
55
|
+
// Offset Size Description
|
|
56
|
+
// 0 4 EOCD signature (0x06054b50)
|
|
57
|
+
// 4 2 Number of this disk
|
|
58
|
+
// 6 2 Disk where central directory starts
|
|
59
|
+
// 8 2 Number of central directory records on this disk
|
|
60
|
+
// 10 2 Total number of central directory records
|
|
61
|
+
// 12 4 Size of central directory (bytes)
|
|
62
|
+
// 16 4 Offset of start of central directory
|
|
63
|
+
// 20 2 Comment length
|
|
64
|
+
reader.skip(4); // signature
|
|
65
|
+
reader.skip(2); // disk number
|
|
66
|
+
reader.skip(2); // disk where central dir starts
|
|
67
|
+
reader.skip(2); // entries on this disk
|
|
68
|
+
let totalEntries = reader.readUint16(); // total entries
|
|
69
|
+
reader.skip(4); // central directory size (unused)
|
|
70
|
+
let centralDirOffset = reader.readUint32();
|
|
71
|
+
// Check for ZIP64
|
|
72
|
+
const zip64LocatorOffset = findZip64EOCDLocator(data, eocdOffset);
|
|
73
|
+
if (zip64LocatorOffset !== -1) {
|
|
74
|
+
const locatorReader = new BinaryReader(data, zip64LocatorOffset);
|
|
75
|
+
locatorReader.skip(4); // signature
|
|
76
|
+
locatorReader.skip(4); // disk number with ZIP64 EOCD
|
|
77
|
+
const zip64EOCDOffset = Number(locatorReader.readBigUint64());
|
|
78
|
+
// Read ZIP64 EOCD
|
|
79
|
+
const zip64Reader = new BinaryReader(data, zip64EOCDOffset);
|
|
80
|
+
const zip64Sig = zip64Reader.readUint32();
|
|
81
|
+
if (zip64Sig === ZIP64_END_OF_CENTRAL_DIR_SIG) {
|
|
82
|
+
zip64Reader.skip(8); // size of ZIP64 EOCD
|
|
83
|
+
zip64Reader.skip(2); // version made by
|
|
84
|
+
zip64Reader.skip(2); // version needed
|
|
85
|
+
zip64Reader.skip(4); // disk number
|
|
86
|
+
zip64Reader.skip(4); // disk with central dir
|
|
87
|
+
const zip64TotalEntries = Number(zip64Reader.readBigUint64());
|
|
88
|
+
zip64Reader.skip(8); // central directory size (unused)
|
|
89
|
+
const zip64CentralDirOffset = Number(zip64Reader.readBigUint64());
|
|
90
|
+
// Use ZIP64 values if standard values are maxed out
|
|
91
|
+
if (totalEntries === UINT16_MAX) {
|
|
92
|
+
totalEntries = zip64TotalEntries;
|
|
93
|
+
}
|
|
94
|
+
if (centralDirOffset === UINT32_MAX) {
|
|
95
|
+
centralDirOffset = zip64CentralDirOffset;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Read Central Directory entries
|
|
100
|
+
const centralReader = new BinaryReader(data, centralDirOffset);
|
|
101
|
+
for (let i = 0; i < totalEntries; i++) {
|
|
102
|
+
const sig = centralReader.readUint32();
|
|
103
|
+
if (sig !== CENTRAL_DIR_HEADER_SIG) {
|
|
104
|
+
throw new Error(`Invalid Central Directory header signature at entry ${i}`);
|
|
105
|
+
}
|
|
106
|
+
// Central Directory File Header format:
|
|
107
|
+
// Offset Size Description
|
|
108
|
+
// 0 4 Central directory file header signature (0x02014b50)
|
|
109
|
+
// 4 2 Version made by
|
|
110
|
+
// 6 2 Version needed to extract
|
|
111
|
+
// 8 2 General purpose bit flag
|
|
112
|
+
// 10 2 Compression method
|
|
113
|
+
// 12 2 File last modification time
|
|
114
|
+
// 14 2 File last modification date
|
|
115
|
+
// 16 4 CRC-32
|
|
116
|
+
// 20 4 Compressed size
|
|
117
|
+
// 24 4 Uncompressed size
|
|
118
|
+
// 28 2 File name length
|
|
119
|
+
// 30 2 Extra field length
|
|
120
|
+
// 32 2 File comment length
|
|
121
|
+
// 34 2 Disk number where file starts
|
|
122
|
+
// 36 2 Internal file attributes
|
|
123
|
+
// 38 4 External file attributes
|
|
124
|
+
// 42 4 Relative offset of local file header
|
|
125
|
+
// 46 n File name
|
|
126
|
+
// 46+n m Extra field
|
|
127
|
+
// 46+n+m k File comment
|
|
128
|
+
centralReader.skip(2); // version made by
|
|
129
|
+
centralReader.skip(2); // version needed
|
|
130
|
+
const flags = centralReader.readUint16();
|
|
131
|
+
const compressionMethod = centralReader.readUint16();
|
|
132
|
+
const lastModTime = centralReader.readUint16();
|
|
133
|
+
const lastModDate = centralReader.readUint16();
|
|
134
|
+
const crc32 = centralReader.readUint32();
|
|
135
|
+
let compressedSize = centralReader.readUint32();
|
|
136
|
+
let uncompressedSize = centralReader.readUint32();
|
|
137
|
+
const fileNameLength = centralReader.readUint16();
|
|
138
|
+
const extraFieldLength = centralReader.readUint16();
|
|
139
|
+
const commentLength = centralReader.readUint16();
|
|
140
|
+
centralReader.skip(2); // disk number start
|
|
141
|
+
centralReader.skip(2); // internal attributes
|
|
142
|
+
const externalAttributes = centralReader.readUint32();
|
|
143
|
+
let localHeaderOffset = centralReader.readUint32();
|
|
144
|
+
// Check for UTF-8 flag (bit 11)
|
|
145
|
+
const isUtf8 = (flags & 0x800) !== 0;
|
|
146
|
+
const useUtf8 = decodeStrings && isUtf8;
|
|
147
|
+
const fileName = centralReader.readString(fileNameLength, useUtf8);
|
|
148
|
+
const extraField = centralReader.readBytes(extraFieldLength);
|
|
149
|
+
const comment = centralReader.readString(commentLength, useUtf8);
|
|
150
|
+
const vars = {
|
|
151
|
+
compressedSize,
|
|
152
|
+
uncompressedSize,
|
|
153
|
+
offsetToLocalFileHeader: localHeaderOffset
|
|
154
|
+
};
|
|
155
|
+
const extraFields = extraFieldLength > 0 ? parseZipExtraFields(extraField, vars) : {};
|
|
156
|
+
compressedSize = vars.compressedSize;
|
|
157
|
+
uncompressedSize = vars.uncompressedSize;
|
|
158
|
+
localHeaderOffset = vars.offsetToLocalFileHeader ?? localHeaderOffset;
|
|
159
|
+
const isDirectory = fileName.endsWith("/") || (externalAttributes & 0x10) !== 0;
|
|
160
|
+
const isEncrypted = (flags & 0x01) !== 0;
|
|
161
|
+
const unixSecondsMtime = extraFields.mtimeUnixSeconds;
|
|
162
|
+
const lastModified = resolveZipLastModifiedDateFromUnixSeconds(lastModDate, lastModTime, unixSecondsMtime);
|
|
163
|
+
entries.push({
|
|
164
|
+
path: fileName,
|
|
165
|
+
isDirectory,
|
|
166
|
+
compressedSize,
|
|
167
|
+
uncompressedSize,
|
|
168
|
+
compressionMethod,
|
|
169
|
+
crc32,
|
|
170
|
+
lastModified,
|
|
171
|
+
localHeaderOffset,
|
|
172
|
+
comment,
|
|
173
|
+
externalAttributes,
|
|
174
|
+
isEncrypted
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return entries;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Extract file data for a specific entry
|
|
181
|
+
*/
|
|
182
|
+
async function extractEntryData(data, entry) {
|
|
183
|
+
if (entry.isDirectory) {
|
|
184
|
+
return new Uint8Array(0);
|
|
185
|
+
}
|
|
186
|
+
if (entry.isEncrypted) {
|
|
187
|
+
throw new Error(`File "${entry.path}" is encrypted and cannot be extracted`);
|
|
188
|
+
}
|
|
189
|
+
const compressedData = readEntryCompressedData(data, entry);
|
|
190
|
+
if (entry.compressionMethod === COMPRESSION_STORE) {
|
|
191
|
+
return compressedData;
|
|
192
|
+
}
|
|
193
|
+
if (entry.compressionMethod === COMPRESSION_DEFLATE) {
|
|
194
|
+
return decompress(compressedData);
|
|
195
|
+
}
|
|
196
|
+
throw new Error(`Unsupported compression method: ${entry.compressionMethod}`);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Extract file data synchronously
|
|
200
|
+
*/
|
|
201
|
+
function extractEntryDataSync(data, entry) {
|
|
202
|
+
if (entry.isDirectory) {
|
|
203
|
+
return new Uint8Array(0);
|
|
204
|
+
}
|
|
205
|
+
if (entry.isEncrypted) {
|
|
206
|
+
throw new Error(`File "${entry.path}" is encrypted and cannot be extracted`);
|
|
207
|
+
}
|
|
208
|
+
const compressedData = readEntryCompressedData(data, entry);
|
|
209
|
+
if (entry.compressionMethod === COMPRESSION_STORE) {
|
|
210
|
+
return compressedData;
|
|
211
|
+
}
|
|
212
|
+
if (entry.compressionMethod === COMPRESSION_DEFLATE) {
|
|
213
|
+
return decompressSync(compressedData);
|
|
214
|
+
}
|
|
215
|
+
throw new Error(`Unsupported compression method: ${entry.compressionMethod}`);
|
|
216
|
+
}
|
|
217
|
+
function readEntryCompressedData(data, entry) {
|
|
218
|
+
const reader = new BinaryReader(data, entry.localHeaderOffset);
|
|
219
|
+
const sig = reader.readUint32();
|
|
220
|
+
if (sig !== LOCAL_FILE_HEADER_SIG) {
|
|
221
|
+
throw new Error(`Invalid local file header signature for "${entry.path}"`);
|
|
222
|
+
}
|
|
223
|
+
reader.skip(2); // version needed
|
|
224
|
+
reader.skip(2); // flags
|
|
225
|
+
reader.skip(2); // compression method
|
|
226
|
+
reader.skip(2); // last mod time
|
|
227
|
+
reader.skip(2); // last mod date
|
|
228
|
+
reader.skip(4); // crc32
|
|
229
|
+
reader.skip(4); // compressed size
|
|
230
|
+
reader.skip(4); // uncompressed size
|
|
231
|
+
const fileNameLength = reader.readUint16();
|
|
232
|
+
const extraFieldLength = reader.readUint16();
|
|
233
|
+
reader.skip(fileNameLength);
|
|
234
|
+
reader.skip(extraFieldLength);
|
|
235
|
+
return reader.readBytes(entry.compressedSize);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* High-level ZIP parser class
|
|
239
|
+
*/
|
|
240
|
+
export class ZipParser {
|
|
241
|
+
constructor(data, options = {}) {
|
|
242
|
+
this.data = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
|
|
243
|
+
this.entries = parseZipEntries(this.data, options);
|
|
244
|
+
this.entryMap = new Map(this.entries.map(e => [e.path, e]));
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Get all entries in the ZIP file
|
|
248
|
+
*/
|
|
249
|
+
getEntries() {
|
|
250
|
+
return this.entries;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get entry by path
|
|
254
|
+
*/
|
|
255
|
+
getEntry(path) {
|
|
256
|
+
return this.entryMap.get(path);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Check if entry exists
|
|
260
|
+
*/
|
|
261
|
+
hasEntry(path) {
|
|
262
|
+
return this.entryMap.has(path);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* List all file paths
|
|
266
|
+
*/
|
|
267
|
+
listFiles() {
|
|
268
|
+
return this.entries.map(e => e.path);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Extract a single file (async)
|
|
272
|
+
*/
|
|
273
|
+
async extract(path) {
|
|
274
|
+
const entry = this.entryMap.get(path);
|
|
275
|
+
if (!entry) {
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
278
|
+
return extractEntryData(this.data, entry);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Extract a single file (sync)
|
|
282
|
+
*
|
|
283
|
+
* This is supported in both Node.js and browser builds.
|
|
284
|
+
*/
|
|
285
|
+
extractSync(path) {
|
|
286
|
+
const entry = this.entryMap.get(path);
|
|
287
|
+
if (!entry) {
|
|
288
|
+
return null;
|
|
289
|
+
}
|
|
290
|
+
return extractEntryDataSync(this.data, entry);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Extract all files (async)
|
|
294
|
+
*/
|
|
295
|
+
async extractAll() {
|
|
296
|
+
const result = new Map();
|
|
297
|
+
for (const entry of this.entries) {
|
|
298
|
+
const data = await extractEntryData(this.data, entry);
|
|
299
|
+
result.set(entry.path, data);
|
|
300
|
+
}
|
|
301
|
+
return result;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Extract all files (sync)
|
|
305
|
+
* Returns object with file paths as keys and Uint8Array content as values
|
|
306
|
+
*/
|
|
307
|
+
extractAllSync() {
|
|
308
|
+
const result = {};
|
|
309
|
+
for (const entry of this.entries) {
|
|
310
|
+
result[entry.path] = extractEntryDataSync(this.data, entry);
|
|
311
|
+
}
|
|
312
|
+
return result;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Iterate over entries with async callback
|
|
316
|
+
*/
|
|
317
|
+
async forEach(callback) {
|
|
318
|
+
for (const entry of this.entries) {
|
|
319
|
+
let dataPromise = null;
|
|
320
|
+
const getData = () => {
|
|
321
|
+
if (!dataPromise) {
|
|
322
|
+
dataPromise = extractEntryData(this.data, entry);
|
|
323
|
+
}
|
|
324
|
+
return dataPromise;
|
|
325
|
+
};
|
|
326
|
+
const shouldContinue = await callback(entry, getData);
|
|
327
|
+
if (shouldContinue === false) {
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZIP record builders (PKWARE APPNOTE)
|
|
3
|
+
*
|
|
4
|
+
* Shared by streaming zip writer and buffer zip builder.
|
|
5
|
+
*/
|
|
6
|
+
export interface ZipLocalFileHeaderInput {
|
|
7
|
+
fileName: Uint8Array;
|
|
8
|
+
extraField: Uint8Array;
|
|
9
|
+
flags: number;
|
|
10
|
+
compressionMethod: number;
|
|
11
|
+
dosTime: number;
|
|
12
|
+
dosDate: number;
|
|
13
|
+
crc32: number;
|
|
14
|
+
compressedSize: number;
|
|
15
|
+
uncompressedSize: number;
|
|
16
|
+
versionNeeded?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function buildLocalFileHeader(input: ZipLocalFileHeaderInput): Uint8Array;
|
|
19
|
+
export interface ZipCentralDirectoryHeaderInput {
|
|
20
|
+
fileName: Uint8Array;
|
|
21
|
+
extraField: Uint8Array;
|
|
22
|
+
comment: Uint8Array;
|
|
23
|
+
flags: number;
|
|
24
|
+
compressionMethod: number;
|
|
25
|
+
dosTime: number;
|
|
26
|
+
dosDate: number;
|
|
27
|
+
crc32: number;
|
|
28
|
+
compressedSize: number;
|
|
29
|
+
uncompressedSize: number;
|
|
30
|
+
localHeaderOffset: number;
|
|
31
|
+
versionMadeBy?: number;
|
|
32
|
+
versionNeeded?: number;
|
|
33
|
+
externalAttributes?: number;
|
|
34
|
+
}
|
|
35
|
+
export declare function buildCentralDirectoryHeader(input: ZipCentralDirectoryHeaderInput): Uint8Array;
|
|
36
|
+
export interface ZipEndOfCentralDirectoryInput {
|
|
37
|
+
entryCount: number;
|
|
38
|
+
centralDirSize: number;
|
|
39
|
+
centralDirOffset: number;
|
|
40
|
+
comment: Uint8Array;
|
|
41
|
+
}
|
|
42
|
+
export declare function buildEndOfCentralDirectory(input: ZipEndOfCentralDirectoryInput): Uint8Array;
|
|
43
|
+
export declare function buildDataDescriptor(crc32: number, compressedSize: number, uncompressedSize: number): Uint8Array<ArrayBuffer>;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZIP record builders (PKWARE APPNOTE)
|
|
3
|
+
*
|
|
4
|
+
* Shared by streaming zip writer and buffer zip builder.
|
|
5
|
+
*/
|
|
6
|
+
import { CENTRAL_DIR_HEADER_SIG, DATA_DESCRIPTOR_SIG, END_OF_CENTRAL_DIR_SIG, LOCAL_FILE_HEADER_SIG, VERSION_MADE_BY, VERSION_NEEDED } from "./zip-constants.js";
|
|
7
|
+
export function buildLocalFileHeader(input) {
|
|
8
|
+
const versionNeeded = input.versionNeeded ?? VERSION_NEEDED;
|
|
9
|
+
const header = new Uint8Array(30 + input.fileName.length + input.extraField.length);
|
|
10
|
+
const view = new DataView(header.buffer);
|
|
11
|
+
view.setUint32(0, LOCAL_FILE_HEADER_SIG, true);
|
|
12
|
+
view.setUint16(4, versionNeeded, true);
|
|
13
|
+
view.setUint16(6, input.flags, true);
|
|
14
|
+
view.setUint16(8, input.compressionMethod, true);
|
|
15
|
+
view.setUint16(10, input.dosTime, true);
|
|
16
|
+
view.setUint16(12, input.dosDate, true);
|
|
17
|
+
view.setUint32(14, input.crc32, true);
|
|
18
|
+
view.setUint32(18, input.compressedSize, true);
|
|
19
|
+
view.setUint32(22, input.uncompressedSize, true);
|
|
20
|
+
view.setUint16(26, input.fileName.length, true);
|
|
21
|
+
view.setUint16(28, input.extraField.length, true);
|
|
22
|
+
header.set(input.fileName, 30);
|
|
23
|
+
if (input.extraField.length > 0) {
|
|
24
|
+
header.set(input.extraField, 30 + input.fileName.length);
|
|
25
|
+
}
|
|
26
|
+
return header;
|
|
27
|
+
}
|
|
28
|
+
export function buildCentralDirectoryHeader(input) {
|
|
29
|
+
const versionMadeBy = input.versionMadeBy ?? VERSION_MADE_BY;
|
|
30
|
+
const versionNeeded = input.versionNeeded ?? VERSION_NEEDED;
|
|
31
|
+
const externalAttributes = input.externalAttributes ?? 0;
|
|
32
|
+
const header = new Uint8Array(46 + input.fileName.length + input.extraField.length + input.comment.length);
|
|
33
|
+
const view = new DataView(header.buffer);
|
|
34
|
+
view.setUint32(0, CENTRAL_DIR_HEADER_SIG, true);
|
|
35
|
+
view.setUint16(4, versionMadeBy, true);
|
|
36
|
+
view.setUint16(6, versionNeeded, true);
|
|
37
|
+
view.setUint16(8, input.flags, true);
|
|
38
|
+
view.setUint16(10, input.compressionMethod, true);
|
|
39
|
+
view.setUint16(12, input.dosTime, true);
|
|
40
|
+
view.setUint16(14, input.dosDate, true);
|
|
41
|
+
view.setUint32(16, input.crc32, true);
|
|
42
|
+
view.setUint32(20, input.compressedSize, true);
|
|
43
|
+
view.setUint32(24, input.uncompressedSize, true);
|
|
44
|
+
view.setUint16(28, input.fileName.length, true);
|
|
45
|
+
view.setUint16(30, input.extraField.length, true);
|
|
46
|
+
view.setUint16(32, input.comment.length, true);
|
|
47
|
+
view.setUint16(34, 0, true); // disk number start
|
|
48
|
+
view.setUint16(36, 0, true); // internal file attributes
|
|
49
|
+
view.setUint32(38, externalAttributes, true);
|
|
50
|
+
view.setUint32(42, input.localHeaderOffset, true);
|
|
51
|
+
header.set(input.fileName, 46);
|
|
52
|
+
if (input.extraField.length > 0) {
|
|
53
|
+
header.set(input.extraField, 46 + input.fileName.length);
|
|
54
|
+
}
|
|
55
|
+
if (input.comment.length > 0) {
|
|
56
|
+
header.set(input.comment, 46 + input.fileName.length + input.extraField.length);
|
|
57
|
+
}
|
|
58
|
+
return header;
|
|
59
|
+
}
|
|
60
|
+
export function buildEndOfCentralDirectory(input) {
|
|
61
|
+
const record = new Uint8Array(22 + input.comment.length);
|
|
62
|
+
const view = new DataView(record.buffer);
|
|
63
|
+
view.setUint32(0, END_OF_CENTRAL_DIR_SIG, true);
|
|
64
|
+
view.setUint16(4, 0, true);
|
|
65
|
+
view.setUint16(6, 0, true);
|
|
66
|
+
view.setUint16(8, input.entryCount, true);
|
|
67
|
+
view.setUint16(10, input.entryCount, true);
|
|
68
|
+
view.setUint32(12, input.centralDirSize, true);
|
|
69
|
+
view.setUint32(16, input.centralDirOffset, true);
|
|
70
|
+
view.setUint16(20, input.comment.length, true);
|
|
71
|
+
if (input.comment.length > 0) {
|
|
72
|
+
record.set(input.comment, 22);
|
|
73
|
+
}
|
|
74
|
+
return record;
|
|
75
|
+
}
|
|
76
|
+
export function buildDataDescriptor(crc32, compressedSize, uncompressedSize) {
|
|
77
|
+
const descriptor = new Uint8Array(16);
|
|
78
|
+
const view = new DataView(descriptor.buffer);
|
|
79
|
+
view.setUint32(0, DATA_DESCRIPTOR_SIG, true);
|
|
80
|
+
view.setUint32(4, crc32, true);
|
|
81
|
+
view.setUint32(8, compressedSize, true);
|
|
82
|
+
view.setUint32(12, uncompressedSize, true);
|
|
83
|
+
return descriptor;
|
|
84
|
+
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSV Parser and Formatter - RFC 4180 compliant
|
|
3
|
+
*
|
|
4
|
+
* A lightweight, cross-platform CSV implementation that works in both
|
|
5
|
+
* Node.js and Browser environments with zero dependencies.
|
|
6
|
+
*
|
|
7
|
+
* High-performance RFC 4180 compliant CSV parser and formatter.
|
|
8
|
+
*
|
|
9
|
+
* @see https://tools.ietf.org/html/rfc4180
|
|
10
|
+
*/
|
|
11
|
+
/** Header array type (can include undefined to skip columns) */
|
|
12
|
+
export type HeaderArray = (string | undefined | null)[];
|
|
13
|
+
/** Header transform function */
|
|
14
|
+
export type HeaderTransformFunction = (headers: string[]) => HeaderArray;
|
|
15
|
+
/** Row types */
|
|
16
|
+
export type RowArray = string[];
|
|
17
|
+
export type RowMap = Record<string, string>;
|
|
18
|
+
export type Row = RowArray | RowMap;
|
|
19
|
+
/** Row transform callback */
|
|
20
|
+
export type RowTransformCallback<T> = (error?: Error | null, row?: T | null) => void;
|
|
21
|
+
/** Row transform function - sync or async */
|
|
22
|
+
export type RowTransformFunction<I = Row, O = Row> = ((row: I) => O | null) | ((row: I, callback: RowTransformCallback<O>) => void);
|
|
23
|
+
/** Row validate callback */
|
|
24
|
+
export type RowValidateCallback = (error?: Error | null, isValid?: boolean, reason?: string) => void;
|
|
25
|
+
/** Row validate function - sync or async */
|
|
26
|
+
export type RowValidateFunction<T = Row> = ((row: T) => boolean) | ((row: T, callback: RowValidateCallback) => void);
|
|
27
|
+
/**
|
|
28
|
+
* CSV parsing options
|
|
29
|
+
*/
|
|
30
|
+
export interface CsvParseOptions {
|
|
31
|
+
/** Field delimiter (default: ",") */
|
|
32
|
+
delimiter?: string;
|
|
33
|
+
/** Quote character (default: '"'), set to false or null to disable quoting */
|
|
34
|
+
quote?: string | false | null;
|
|
35
|
+
/** Escape character for quotes (default: '"'), set to false or null to disable */
|
|
36
|
+
escape?: string | false | null;
|
|
37
|
+
/** Skip empty lines (default: false) */
|
|
38
|
+
skipEmptyLines?: boolean;
|
|
39
|
+
/** Alias for skipEmptyLines */
|
|
40
|
+
ignoreEmpty?: boolean;
|
|
41
|
+
/** Trim whitespace from both sides of fields (default: false) */
|
|
42
|
+
trim?: boolean;
|
|
43
|
+
/** Left trim whitespace from fields (default: false) */
|
|
44
|
+
ltrim?: boolean;
|
|
45
|
+
/** Right trim whitespace from fields (default: false) */
|
|
46
|
+
rtrim?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Header handling:
|
|
49
|
+
* - true: first row is headers, return objects
|
|
50
|
+
* - false: no headers, return arrays
|
|
51
|
+
* - string[]: use these as headers
|
|
52
|
+
* - function: transform first row headers
|
|
53
|
+
*/
|
|
54
|
+
headers?: boolean | HeaderArray | HeaderTransformFunction;
|
|
55
|
+
/**
|
|
56
|
+
* If true and headers is string[], discard first row and use provided headers
|
|
57
|
+
*/
|
|
58
|
+
renameHeaders?: boolean;
|
|
59
|
+
/** Comment character - lines starting with this are ignored */
|
|
60
|
+
comment?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Decimal separator used when parsing numbers from CSV (default: ".").
|
|
63
|
+
*
|
|
64
|
+
* Note: core CSV parsing returns strings; number conversion is handled by higher-level
|
|
65
|
+
* consumers (e.g. the default value mapper in the CSV module).
|
|
66
|
+
*
|
|
67
|
+
* @deprecated Use CsvReadOptions.valueMapperOptions.decimalSeparator instead.
|
|
68
|
+
*/
|
|
69
|
+
decimalSeparator?: "." | ",";
|
|
70
|
+
/** Maximum number of data rows to parse (excluding header) */
|
|
71
|
+
maxRows?: number;
|
|
72
|
+
/** Number of lines to skip at the beginning (before header detection) */
|
|
73
|
+
skipLines?: number;
|
|
74
|
+
/** Number of data rows to skip (after header detection) */
|
|
75
|
+
skipRows?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Strict column handling:
|
|
78
|
+
* - If true, rows with column count mismatch emit 'data-invalid' event
|
|
79
|
+
* - If false (default), throws error on mismatch (unless discardUnmappedColumns)
|
|
80
|
+
*/
|
|
81
|
+
strictColumnHandling?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* If true, discard columns that exceed header count
|
|
84
|
+
* Only valid when headers are specified
|
|
85
|
+
*/
|
|
86
|
+
discardUnmappedColumns?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Enable object mode (default: true for Node.js streams)
|
|
89
|
+
* - true: push row objects/arrays
|
|
90
|
+
* - false: push JSON strings
|
|
91
|
+
*/
|
|
92
|
+
objectMode?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Character encoding for input (default: "utf8")
|
|
95
|
+
* Only used in Node.js streaming context
|
|
96
|
+
*/
|
|
97
|
+
encoding?: BufferEncoding;
|
|
98
|
+
/**
|
|
99
|
+
* Synchronous transform function to apply to each row after parsing
|
|
100
|
+
* Return null/undefined to skip the row
|
|
101
|
+
* Works in both Node.js and Browser environments
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* // With headers (row is Record<string, string>)
|
|
105
|
+
* transform: (row) => ({ ...row, name: row.name.toUpperCase() })
|
|
106
|
+
*
|
|
107
|
+
* // Without headers (row is string[])
|
|
108
|
+
* transform: (row) => [row[0].toUpperCase(), row[1]]
|
|
109
|
+
*/
|
|
110
|
+
transform?: (row: Row) => Row | null | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Synchronous validate function to check each row
|
|
113
|
+
* Return false to mark row as invalid (will be in invalidRows)
|
|
114
|
+
* Can also return { isValid: boolean, reason?: string }
|
|
115
|
+
* Works in both Node.js and Browser environments
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* // With headers
|
|
119
|
+
* validate: (row) => row.name !== ''
|
|
120
|
+
*
|
|
121
|
+
* // With custom reason
|
|
122
|
+
* validate: (row) => ({ isValid: row.age >= 18, reason: 'Must be adult' })
|
|
123
|
+
*/
|
|
124
|
+
validate?: (row: Row) => boolean | {
|
|
125
|
+
isValid: boolean;
|
|
126
|
+
reason?: string;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* CSV formatting options
|
|
131
|
+
*/
|
|
132
|
+
export interface CsvFormatOptions {
|
|
133
|
+
/** Field delimiter (default: ",") */
|
|
134
|
+
delimiter?: string;
|
|
135
|
+
/** Quote character (default: '"'), set to false or null to disable quoting */
|
|
136
|
+
quote?: string | false | null;
|
|
137
|
+
/** Escape character (default: same as quote) */
|
|
138
|
+
escape?: string | false | null;
|
|
139
|
+
/** Row delimiter (default: "\n") */
|
|
140
|
+
rowDelimiter?: string;
|
|
141
|
+
/**
|
|
142
|
+
* Decimal separator used when formatting numbers to CSV (default: ".").
|
|
143
|
+
* For European-style CSV, this is commonly "," (often together with delimiter ";").
|
|
144
|
+
*/
|
|
145
|
+
decimalSeparator?: "." | ",";
|
|
146
|
+
/** Always quote all fields (default: false, only quote when necessary) */
|
|
147
|
+
alwaysQuote?: boolean;
|
|
148
|
+
/** Quote specific columns by name or index */
|
|
149
|
+
quoteColumns?: boolean | boolean[] | Record<string, boolean>;
|
|
150
|
+
/** Quote header fields */
|
|
151
|
+
quoteHeaders?: boolean | boolean[] | Record<string, boolean>;
|
|
152
|
+
/**
|
|
153
|
+
* Header handling:
|
|
154
|
+
* - true: auto-detect headers from first object
|
|
155
|
+
* - false/null: no headers
|
|
156
|
+
* - string[]: use these as headers
|
|
157
|
+
*/
|
|
158
|
+
headers?: string[] | boolean | null;
|
|
159
|
+
/**
|
|
160
|
+
* Whether to write headers (default: true when headers is provided)
|
|
161
|
+
* Set to false to suppress header row output
|
|
162
|
+
*/
|
|
163
|
+
writeHeaders?: boolean;
|
|
164
|
+
/** Include BOM for UTF-8 (default: false) */
|
|
165
|
+
writeBOM?: boolean;
|
|
166
|
+
/** Include final row delimiter (default: true) */
|
|
167
|
+
includeEndRowDelimiter?: boolean;
|
|
168
|
+
/** Write headers even when there's no data (default: false) */
|
|
169
|
+
alwaysWriteHeaders?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Transform function to apply to each row before formatting
|
|
172
|
+
* Can be sync (returns row) or async (calls callback)
|
|
173
|
+
*/
|
|
174
|
+
transform?: RowTransformFunction<Row, Row>;
|
|
175
|
+
/**
|
|
176
|
+
* Enable object mode (default: true for Node.js streams)
|
|
177
|
+
* - true: accept row objects/arrays directly
|
|
178
|
+
* - false: accept JSON strings
|
|
179
|
+
*/
|
|
180
|
+
objectMode?: boolean;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Parsed CSV result with headers
|
|
184
|
+
*/
|
|
185
|
+
export interface CsvParseResult<T = string[]> {
|
|
186
|
+
/** Header row (if headers option was true) */
|
|
187
|
+
headers?: string[];
|
|
188
|
+
/** Data rows */
|
|
189
|
+
rows: T[];
|
|
190
|
+
/** Invalid rows (when strictColumnHandling is true) */
|
|
191
|
+
invalidRows?: {
|
|
192
|
+
row: string[];
|
|
193
|
+
reason: string;
|
|
194
|
+
}[];
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Check if a transform function is synchronous (1 argument) vs async (2 arguments)
|
|
198
|
+
*/
|
|
199
|
+
export declare function isSyncTransform<I, O>(transform: RowTransformFunction<I, O>): transform is (row: I) => O | null;
|
|
200
|
+
/**
|
|
201
|
+
* Check if a validate function is synchronous (1 argument) vs async (2 arguments)
|
|
202
|
+
*/
|
|
203
|
+
export declare function isSyncValidate<T>(validate: RowValidateFunction<T>): validate is (row: T) => boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Parse a CSV string into rows of fields
|
|
206
|
+
*/
|
|
207
|
+
export declare function parseCsv(input: string, options?: CsvParseOptions): string[][] | CsvParseResult<Record<string, string>>;
|
|
208
|
+
/**
|
|
209
|
+
* Format data as a CSV string
|
|
210
|
+
*/
|
|
211
|
+
export declare function formatCsv(data: (string | number | boolean | null | undefined)[][] | Record<string, any>[], options?: CsvFormatOptions): string;
|
|
212
|
+
/**
|
|
213
|
+
* Async CSV parser that yields rows one at a time
|
|
214
|
+
*/
|
|
215
|
+
export declare function parseCsvStream(input: string | AsyncIterable<string>, options?: CsvParseOptions): AsyncGenerator<string[] | Record<string, string>, void, unknown>;
|