@cj-tech-master/excelts 9.2.0 → 9.2.1
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/compress.browser.js +3 -3
- package/dist/browser/modules/archive/compression/crc32.js +1 -1
- package/dist/browser/modules/archive/compression/streaming-compress.browser.js +6 -6
- package/dist/browser/modules/archive/compression/streaming-compress.js +1 -1
- package/dist/browser/modules/archive/compression/worker-pool/pool.browser.d.ts +1 -1
- package/dist/browser/modules/archive/crypto/aes.js +1 -1
- package/dist/browser/modules/archive/fs/archive-file.js +9 -9
- package/dist/browser/modules/archive/fs/types.d.ts +3 -3
- package/dist/browser/modules/archive/io/archive-sink.js +1 -1
- package/dist/browser/modules/archive/io/archive-source.js +3 -3
- package/dist/browser/modules/archive/shared/bytes.js +7 -3
- package/dist/browser/modules/archive/tar/tar-archive.d.ts +1 -1
- package/dist/browser/modules/archive/tar/tar-archive.js +1 -1
- package/dist/browser/modules/archive/tar/tar-gzip.js +2 -2
- package/dist/browser/modules/archive/tar/tar-header.js +2 -2
- package/dist/browser/modules/archive/tar/tar-parser.js +2 -2
- package/dist/browser/modules/archive/unzip/parser-core.js +2 -2
- package/dist/browser/modules/archive/unzip/progress.d.ts +2 -2
- package/dist/browser/modules/archive/unzip/remote-zip-reader.d.ts +2 -2
- package/dist/browser/modules/archive/unzip/remote-zip-reader.js +5 -5
- package/dist/browser/modules/archive/unzip/stream.base.d.ts +1 -1
- package/dist/browser/modules/archive/unzip/stream.base.js +4 -3
- package/dist/browser/modules/archive/unzip/stream.browser.d.ts +2 -2
- package/dist/browser/modules/archive/unzip/stream.browser.js +7 -7
- package/dist/browser/modules/archive/unzip/stream.d.ts +2 -2
- package/dist/browser/modules/archive/unzip/stream.js +1 -1
- package/dist/browser/modules/archive/unzip/zip-extract-core.js +4 -4
- package/dist/browser/modules/archive/unzip/zip-parser.d.ts +1 -1
- package/dist/browser/modules/archive/unzip/zip-reader.d.ts +4 -4
- package/dist/browser/modules/archive/unzip/zip-reader.js +6 -6
- package/dist/browser/modules/archive/zip/progress.d.ts +1 -1
- package/dist/browser/modules/archive/zip/stream.d.ts +3 -3
- package/dist/browser/modules/archive/zip/stream.js +6 -6
- package/dist/browser/modules/archive/zip/zip-archive.d.ts +4 -4
- package/dist/browser/modules/archive/zip/zip-archive.js +11 -11
- package/dist/browser/modules/archive/zip/zip-bytes.d.ts +1 -1
- package/dist/browser/modules/archive/zip/zip-bytes.js +5 -5
- package/dist/browser/modules/archive/zip/zip-editor.d.ts +6 -6
- package/dist/browser/modules/archive/zip/zip-editor.js +9 -9
- package/dist/browser/modules/archive/zip/zip-entry-metadata.js +1 -1
- package/dist/browser/modules/archive/zip/zip-entry-options.d.ts +2 -2
- package/dist/browser/modules/archive/zip/zip-output-pipeline.d.ts +1 -1
- package/dist/browser/modules/archive/zip/zip-output-pipeline.js +1 -1
- package/dist/browser/modules/archive/zip-spec/zip-extra-fields.js +1 -1
- package/dist/browser/modules/archive/zip-spec/zip-parser-core.d.ts +1 -1
- package/dist/browser/modules/archive/zip-spec/zip-parser-core.js +2 -2
- package/dist/browser/modules/csv/format/config.js +3 -3
- package/dist/browser/modules/csv/format/formatter.js +2 -2
- package/dist/browser/modules/csv/parse/async.js +7 -6
- package/dist/browser/modules/csv/parse/config.js +2 -2
- package/dist/browser/modules/csv/parse/helpers.d.ts +1 -1
- package/dist/browser/modules/csv/parse/helpers.js +2 -2
- package/dist/browser/modules/csv/parse/lines.js +25 -23
- package/dist/browser/modules/csv/parse/row-processor.js +2 -2
- package/dist/browser/modules/csv/parse/sync.d.ts +1 -1
- package/dist/browser/modules/csv/parse/sync.js +5 -5
- package/dist/browser/modules/csv/stream/parser.js +6 -6
- package/dist/browser/modules/csv/worker/worker-script.generated.d.ts +1 -1
- package/dist/browser/modules/csv/worker/worker-script.generated.js +1 -1
- package/dist/browser/modules/csv/worker/worker.entry.js +1 -1
- package/dist/browser/modules/excel/cell.d.ts +3 -3
- package/dist/browser/modules/excel/cell.js +4 -4
- package/dist/browser/modules/excel/column.d.ts +1 -1
- package/dist/browser/modules/excel/column.js +2 -2
- package/dist/browser/modules/excel/defined-names.d.ts +2 -2
- package/dist/browser/modules/excel/defined-names.js +14 -6
- package/dist/browser/modules/excel/image.js +1 -1
- package/dist/browser/modules/excel/pivot-table.js +2 -2
- package/dist/browser/modules/excel/range.js +1 -1
- package/dist/browser/modules/excel/row.d.ts +1 -1
- package/dist/browser/modules/excel/row.js +2 -2
- package/dist/browser/modules/excel/stream/hyperlink-reader.d.ts +1 -1
- package/dist/browser/modules/excel/stream/hyperlink-reader.js +2 -2
- package/dist/browser/modules/excel/stream/sheet-comments-writer.js +3 -3
- package/dist/browser/modules/excel/stream/sheet-rels-writer.js +2 -2
- package/dist/browser/modules/excel/stream/workbook-reader.browser.d.ts +4 -4
- package/dist/browser/modules/excel/stream/workbook-reader.browser.js +6 -6
- package/dist/browser/modules/excel/stream/workbook-reader.d.ts +2 -2
- package/dist/browser/modules/excel/stream/workbook-reader.js +3 -3
- package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +4 -4
- package/dist/browser/modules/excel/stream/workbook-writer.browser.js +13 -13
- package/dist/browser/modules/excel/stream/workbook-writer.d.ts +1 -1
- package/dist/browser/modules/excel/stream/workbook-writer.js +2 -2
- package/dist/browser/modules/excel/stream/worksheet-reader.d.ts +2 -2
- package/dist/browser/modules/excel/stream/worksheet-reader.js +6 -6
- package/dist/browser/modules/excel/stream/worksheet-writer.d.ts +14 -4
- package/dist/browser/modules/excel/stream/worksheet-writer.js +49 -20
- package/dist/browser/modules/excel/table.js +2 -2
- package/dist/browser/modules/excel/utils/cell-matrix.js +1 -1
- package/dist/browser/modules/excel/utils/drawing-utils.js +1 -1
- package/dist/browser/modules/excel/utils/encryptor.browser.js +1 -1
- package/dist/browser/modules/excel/utils/encryptor.js +1 -1
- package/dist/browser/modules/excel/utils/iterate-stream.js +2 -1
- package/dist/browser/modules/excel/utils/stream-buf.d.ts +5 -5
- package/dist/browser/modules/excel/utils/stream-buf.js +2 -2
- package/dist/browser/modules/excel/utils/text-metrics.d.ts +1 -1
- package/dist/browser/modules/excel/workbook.browser.d.ts +7 -7
- package/dist/browser/modules/excel/workbook.browser.js +10 -10
- package/dist/browser/modules/excel/workbook.js +2 -2
- package/dist/browser/modules/excel/worksheet.d.ts +6 -6
- package/dist/browser/modules/excel/worksheet.js +9 -9
- package/dist/browser/modules/excel/xlsx/xform/base-xform.js +4 -3
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/book/sheet-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +5 -5
- package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/comment/comments-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-client-data-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-notes-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/core/app-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/core/core-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/core/relationships-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/pic-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/vml-drawing-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/vml-drawing-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/list-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +5 -5
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +2 -2
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.js +4 -4
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/databar-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/databar-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +3 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +5 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +10 -3
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +2 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +8 -5
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/col-breaks-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/merges.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/row-breaks-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-properties-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +19 -19
- package/dist/browser/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/strings/rich-text-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/strings/rich-text-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/strings/shared-string-xform.js +3 -3
- package/dist/browser/modules/excel/xlsx/xform/strings/shared-strings-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/style/border-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/style/font-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/style/style-xform.js +2 -1
- package/dist/browser/modules/excel/xlsx/xform/style/styles-xform.js +5 -5
- package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/table/table-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +2 -2
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +22 -22
- package/dist/browser/modules/excel/xlsx/xlsx.js +5 -4
- package/dist/browser/modules/pdf/builder/document-builder.js +2 -2
- package/dist/browser/modules/pdf/builder/form-appearance.js +1 -1
- package/dist/browser/modules/pdf/builder/pdf-editor.js +56 -11
- package/dist/browser/modules/pdf/core/digital-signature.js +15 -7
- package/dist/browser/modules/pdf/core/encryption.js +6 -5
- package/dist/browser/modules/pdf/core/pdf-kdf.browser.d.ts +10 -0
- package/dist/browser/modules/pdf/core/pdf-kdf.browser.js +15 -0
- package/dist/browser/modules/pdf/core/pdf-kdf.d.ts +12 -0
- package/dist/browser/modules/pdf/core/pdf-kdf.js +17 -0
- package/dist/browser/modules/pdf/core/pdf-writer.d.ts +1 -1
- package/dist/browser/modules/pdf/core/pdf-writer.js +3 -3
- package/dist/browser/modules/pdf/errors.d.ts +1 -2
- package/dist/browser/modules/pdf/errors.js +2 -2
- package/dist/browser/modules/pdf/font/font-embedder.d.ts +1 -1
- package/dist/browser/modules/pdf/font/font-embedder.js +1 -1
- package/dist/browser/modules/pdf/font/font-manager.d.ts +1 -1
- package/dist/browser/modules/pdf/font/font-manager.js +1 -1
- package/dist/browser/modules/pdf/pdf.js +1 -1
- package/dist/browser/modules/pdf/reader/content-interpreter.js +1 -1
- package/dist/browser/modules/pdf/reader/pdf-decrypt.js +14 -13
- package/dist/browser/modules/pdf/reader/pdf-document.js +2 -2
- package/dist/browser/modules/pdf/reader/pdf-parser.js +1 -1
- package/dist/browser/modules/pdf/reader/pdf-reader.d.ts +4 -4
- package/dist/browser/modules/pdf/reader/pdf-reader.js +8 -8
- package/dist/browser/modules/pdf/reader/stream-filters.js +1 -1
- package/dist/browser/modules/pdf/render/layout-engine.d.ts +1 -1
- package/dist/browser/modules/pdf/render/layout-engine.js +4 -4
- package/dist/browser/modules/pdf/render/page-renderer.js +1 -1
- package/dist/browser/modules/pdf/render/pdf-exporter.js +7 -7
- package/dist/browser/modules/stream/browser/collector.js +1 -1
- package/dist/browser/modules/stream/browser/compose.js +1 -1
- package/dist/browser/modules/stream/browser/duplex.js +4 -4
- package/dist/browser/modules/stream/browser/factories.d.ts +3 -3
- package/dist/browser/modules/stream/browser/factories.js +6 -6
- package/dist/browser/modules/stream/browser/passthrough.d.ts +0 -4
- package/dist/browser/modules/stream/browser/passthrough.js +0 -3
- package/dist/browser/modules/stream/browser/pipeline.d.ts +1 -1
- package/dist/browser/modules/stream/browser/pipeline.js +4 -4
- package/dist/browser/modules/stream/browser/readable.js +8 -8
- package/dist/browser/modules/stream/browser/transform.d.ts +1 -1
- package/dist/browser/modules/stream/browser/transform.js +8 -8
- package/dist/browser/modules/stream/browser/utils.js +8 -8
- package/dist/browser/modules/stream/browser/writable.js +3 -3
- package/dist/browser/modules/stream/buffered-stream.d.ts +1 -1
- package/dist/browser/modules/stream/buffered-stream.js +1 -1
- package/dist/browser/modules/stream/chunked-builder.js +1 -1
- package/dist/browser/modules/stream/node/collector.js +1 -1
- package/dist/browser/modules/stream/node/factories.d.ts +2 -2
- package/dist/browser/modules/stream/node/factories.js +1 -1
- package/dist/browser/modules/stream/node/pipeline.d.ts +1 -1
- package/dist/browser/modules/stream/node/utils.js +5 -5
- package/dist/browser/modules/stream/pull-stream.d.ts +1 -1
- package/dist/browser/modules/stream/pull-stream.js +1 -1
- package/dist/browser/modules/stream/utils.base.js +1 -1
- package/dist/browser/modules/xml/dom.js +3 -2
- package/dist/browser/modules/xml/encode.js +1 -1
- package/dist/browser/modules/xml/query.js +1 -1
- package/dist/browser/modules/xml/sax.js +5 -4
- package/dist/browser/modules/xml/to-object.js +3 -2
- package/dist/browser/utils/binary.js +7 -3
- package/dist/browser/utils/crypto.d.ts +9 -1
- package/dist/browser/utils/crypto.js +12 -4
- package/dist/browser/utils/datetime.js +11 -11
- package/dist/cjs/modules/archive/compression/compress.browser.js +9 -9
- package/dist/cjs/modules/archive/compression/crc32.js +1 -1
- package/dist/cjs/modules/archive/compression/streaming-compress.browser.js +6 -6
- package/dist/cjs/modules/archive/compression/streaming-compress.js +1 -1
- package/dist/cjs/modules/archive/crypto/aes.js +1 -1
- package/dist/cjs/modules/archive/fs/archive-file.js +9 -9
- package/dist/cjs/modules/archive/io/archive-sink.js +1 -1
- package/dist/cjs/modules/archive/io/archive-source.js +3 -3
- package/dist/cjs/modules/archive/shared/bytes.js +7 -3
- package/dist/cjs/modules/archive/tar/tar-archive.js +1 -1
- package/dist/cjs/modules/archive/tar/tar-gzip.js +2 -2
- package/dist/cjs/modules/archive/tar/tar-header.js +2 -2
- package/dist/cjs/modules/archive/tar/tar-parser.js +2 -2
- package/dist/cjs/modules/archive/unzip/parser-core.js +2 -2
- package/dist/cjs/modules/archive/unzip/remote-zip-reader.js +5 -5
- package/dist/cjs/modules/archive/unzip/stream.base.js +4 -3
- package/dist/cjs/modules/archive/unzip/stream.browser.js +7 -7
- package/dist/cjs/modules/archive/unzip/stream.js +1 -1
- package/dist/cjs/modules/archive/unzip/zip-extract-core.js +4 -4
- package/dist/cjs/modules/archive/unzip/zip-reader.js +6 -6
- package/dist/cjs/modules/archive/zip/stream.js +6 -6
- package/dist/cjs/modules/archive/zip/zip-archive.js +11 -11
- package/dist/cjs/modules/archive/zip/zip-bytes.js +4 -4
- package/dist/cjs/modules/archive/zip/zip-editor.js +9 -9
- package/dist/cjs/modules/archive/zip/zip-entry-metadata.js +1 -1
- package/dist/cjs/modules/archive/zip/zip-output-pipeline.js +1 -1
- package/dist/cjs/modules/archive/zip-spec/zip-extra-fields.js +1 -1
- package/dist/cjs/modules/archive/zip-spec/zip-parser-core.js +2 -2
- package/dist/cjs/modules/csv/format/config.js +3 -3
- package/dist/cjs/modules/csv/format/formatter.js +2 -2
- package/dist/cjs/modules/csv/parse/async.js +10 -9
- package/dist/cjs/modules/csv/parse/config.js +2 -2
- package/dist/cjs/modules/csv/parse/helpers.js +2 -2
- package/dist/cjs/modules/csv/parse/lines.js +25 -23
- package/dist/cjs/modules/csv/parse/row-processor.js +2 -2
- package/dist/cjs/modules/csv/parse/sync.js +5 -5
- package/dist/cjs/modules/csv/stream/parser.js +6 -6
- package/dist/cjs/modules/csv/worker/worker-script.generated.js +1 -1
- package/dist/cjs/modules/csv/worker/worker.entry.js +1 -1
- package/dist/cjs/modules/excel/cell.js +4 -4
- package/dist/cjs/modules/excel/column.js +2 -2
- package/dist/cjs/modules/excel/defined-names.js +14 -6
- package/dist/cjs/modules/excel/image.js +1 -1
- package/dist/cjs/modules/excel/pivot-table.js +2 -2
- package/dist/cjs/modules/excel/range.js +1 -1
- package/dist/cjs/modules/excel/row.js +2 -2
- package/dist/cjs/modules/excel/stream/hyperlink-reader.js +2 -2
- package/dist/cjs/modules/excel/stream/sheet-comments-writer.js +3 -3
- package/dist/cjs/modules/excel/stream/sheet-rels-writer.js +2 -2
- package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +6 -6
- package/dist/cjs/modules/excel/stream/workbook-reader.js +3 -3
- package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +13 -13
- package/dist/cjs/modules/excel/stream/workbook-writer.js +2 -2
- package/dist/cjs/modules/excel/stream/worksheet-reader.js +6 -6
- package/dist/cjs/modules/excel/stream/worksheet-writer.js +49 -20
- package/dist/cjs/modules/excel/table.js +2 -2
- package/dist/cjs/modules/excel/utils/cell-matrix.js +1 -1
- package/dist/cjs/modules/excel/utils/drawing-utils.js +1 -1
- package/dist/cjs/modules/excel/utils/encryptor.browser.js +1 -1
- package/dist/cjs/modules/excel/utils/encryptor.js +1 -1
- package/dist/cjs/modules/excel/utils/iterate-stream.js +2 -1
- package/dist/cjs/modules/excel/utils/stream-buf.js +2 -2
- package/dist/cjs/modules/excel/workbook.browser.js +13 -13
- package/dist/cjs/modules/excel/workbook.js +2 -2
- package/dist/cjs/modules/excel/worksheet.js +9 -9
- package/dist/cjs/modules/excel/xlsx/xform/base-xform.js +4 -3
- package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +5 -5
- package/dist/cjs/modules/excel/xlsx/xform/comment/comment-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/comment/comments-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/comment/vml-client-data-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/comment/vml-notes-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/core/app-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/core/core-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/core/relationships-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/pic-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/vml-drawing-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/list-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/cache-field.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +5 -5
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cell-xform.js +4 -4
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/databar-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +3 -0
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +10 -3
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +8 -5
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/col-breaks-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/data-validations-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/merges.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/row-breaks-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/row-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/sheet-properties-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +19 -19
- package/dist/cjs/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/strings/rich-text-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/strings/shared-string-xform.js +3 -3
- package/dist/cjs/modules/excel/xlsx/xform/strings/shared-strings-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/style/border-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/style/font-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/style/style-xform.js +2 -1
- package/dist/cjs/modules/excel/xlsx/xform/style/styles-xform.js +5 -5
- package/dist/cjs/modules/excel/xlsx/xform/table/auto-filter-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/table/filter-column-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/table/table-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +22 -22
- package/dist/cjs/modules/excel/xlsx/xlsx.js +5 -4
- package/dist/cjs/modules/pdf/builder/document-builder.js +2 -2
- package/dist/cjs/modules/pdf/builder/form-appearance.js +1 -1
- package/dist/cjs/modules/pdf/builder/pdf-editor.js +56 -11
- package/dist/cjs/modules/pdf/core/digital-signature.js +15 -7
- package/dist/cjs/modules/pdf/core/encryption.js +6 -5
- package/dist/cjs/modules/pdf/core/pdf-kdf.browser.js +19 -0
- package/dist/cjs/modules/pdf/core/pdf-kdf.js +24 -0
- package/dist/cjs/modules/pdf/core/pdf-writer.js +3 -3
- package/dist/cjs/modules/pdf/errors.js +2 -2
- package/dist/cjs/modules/pdf/font/font-embedder.js +1 -1
- package/dist/cjs/modules/pdf/font/font-manager.js +1 -1
- package/dist/cjs/modules/pdf/pdf.js +1 -1
- package/dist/cjs/modules/pdf/reader/content-interpreter.js +1 -1
- package/dist/cjs/modules/pdf/reader/pdf-decrypt.js +14 -13
- package/dist/cjs/modules/pdf/reader/pdf-document.js +2 -2
- package/dist/cjs/modules/pdf/reader/pdf-reader.js +8 -8
- package/dist/cjs/modules/pdf/reader/stream-filters.js +1 -1
- package/dist/cjs/modules/pdf/render/layout-engine.js +4 -4
- package/dist/cjs/modules/pdf/render/page-renderer.js +1 -1
- package/dist/cjs/modules/pdf/render/pdf-exporter.js +7 -7
- package/dist/cjs/modules/stream/browser/collector.js +1 -1
- package/dist/cjs/modules/stream/browser/compose.js +1 -1
- package/dist/cjs/modules/stream/browser/duplex.js +4 -4
- package/dist/cjs/modules/stream/browser/factories.js +9 -9
- package/dist/cjs/modules/stream/browser/passthrough.js +0 -3
- package/dist/cjs/modules/stream/browser/pipeline.js +4 -4
- package/dist/cjs/modules/stream/browser/readable.js +7 -7
- package/dist/cjs/modules/stream/browser/transform.js +8 -8
- package/dist/cjs/modules/stream/browser/utils.js +13 -13
- package/dist/cjs/modules/stream/browser/writable.js +3 -3
- package/dist/cjs/modules/stream/buffered-stream.js +1 -1
- package/dist/cjs/modules/stream/chunked-builder.js +1 -1
- package/dist/cjs/modules/stream/node/collector.js +1 -1
- package/dist/cjs/modules/stream/node/factories.js +2 -2
- package/dist/cjs/modules/stream/node/utils.js +15 -15
- package/dist/cjs/modules/stream/pull-stream.js +1 -1
- package/dist/cjs/modules/stream/utils.base.js +1 -1
- package/dist/cjs/modules/xml/dom.js +6 -5
- package/dist/cjs/modules/xml/encode.js +1 -1
- package/dist/cjs/modules/xml/query.js +1 -1
- package/dist/cjs/modules/xml/sax.js +7 -6
- package/dist/cjs/modules/xml/to-object.js +4 -3
- package/dist/cjs/utils/binary.js +7 -3
- package/dist/cjs/utils/crypto.js +12 -4
- package/dist/cjs/utils/datetime.js +11 -11
- package/dist/esm/modules/archive/compression/compress.browser.js +3 -3
- package/dist/esm/modules/archive/compression/crc32.js +1 -1
- package/dist/esm/modules/archive/compression/streaming-compress.browser.js +6 -6
- package/dist/esm/modules/archive/compression/streaming-compress.js +1 -1
- package/dist/esm/modules/archive/crypto/aes.js +1 -1
- package/dist/esm/modules/archive/fs/archive-file.js +9 -9
- package/dist/esm/modules/archive/io/archive-sink.js +1 -1
- package/dist/esm/modules/archive/io/archive-source.js +3 -3
- package/dist/esm/modules/archive/shared/bytes.js +7 -3
- package/dist/esm/modules/archive/tar/tar-archive.js +1 -1
- package/dist/esm/modules/archive/tar/tar-gzip.js +2 -2
- package/dist/esm/modules/archive/tar/tar-header.js +2 -2
- package/dist/esm/modules/archive/tar/tar-parser.js +2 -2
- package/dist/esm/modules/archive/unzip/parser-core.js +2 -2
- package/dist/esm/modules/archive/unzip/remote-zip-reader.js +5 -5
- package/dist/esm/modules/archive/unzip/stream.base.js +4 -3
- package/dist/esm/modules/archive/unzip/stream.browser.js +7 -7
- package/dist/esm/modules/archive/unzip/stream.js +1 -1
- package/dist/esm/modules/archive/unzip/zip-extract-core.js +4 -4
- package/dist/esm/modules/archive/unzip/zip-reader.js +6 -6
- package/dist/esm/modules/archive/zip/stream.js +6 -6
- package/dist/esm/modules/archive/zip/zip-archive.js +11 -11
- package/dist/esm/modules/archive/zip/zip-bytes.js +5 -5
- package/dist/esm/modules/archive/zip/zip-editor.js +9 -9
- package/dist/esm/modules/archive/zip/zip-entry-metadata.js +1 -1
- package/dist/esm/modules/archive/zip/zip-output-pipeline.js +1 -1
- package/dist/esm/modules/archive/zip-spec/zip-extra-fields.js +1 -1
- package/dist/esm/modules/archive/zip-spec/zip-parser-core.js +2 -2
- package/dist/esm/modules/csv/format/config.js +3 -3
- package/dist/esm/modules/csv/format/formatter.js +2 -2
- package/dist/esm/modules/csv/parse/async.js +7 -6
- package/dist/esm/modules/csv/parse/config.js +2 -2
- package/dist/esm/modules/csv/parse/helpers.js +2 -2
- package/dist/esm/modules/csv/parse/lines.js +25 -23
- package/dist/esm/modules/csv/parse/row-processor.js +2 -2
- package/dist/esm/modules/csv/parse/sync.js +5 -5
- package/dist/esm/modules/csv/stream/parser.js +6 -6
- package/dist/esm/modules/csv/worker/worker-script.generated.js +1 -1
- package/dist/esm/modules/csv/worker/worker.entry.js +1 -1
- package/dist/esm/modules/excel/cell.js +4 -4
- package/dist/esm/modules/excel/column.js +2 -2
- package/dist/esm/modules/excel/defined-names.js +14 -6
- package/dist/esm/modules/excel/image.js +1 -1
- package/dist/esm/modules/excel/pivot-table.js +2 -2
- package/dist/esm/modules/excel/range.js +1 -1
- package/dist/esm/modules/excel/row.js +2 -2
- package/dist/esm/modules/excel/stream/hyperlink-reader.js +2 -2
- package/dist/esm/modules/excel/stream/sheet-comments-writer.js +3 -3
- package/dist/esm/modules/excel/stream/sheet-rels-writer.js +2 -2
- package/dist/esm/modules/excel/stream/workbook-reader.browser.js +6 -6
- package/dist/esm/modules/excel/stream/workbook-reader.js +3 -3
- package/dist/esm/modules/excel/stream/workbook-writer.browser.js +13 -13
- package/dist/esm/modules/excel/stream/workbook-writer.js +2 -2
- package/dist/esm/modules/excel/stream/worksheet-reader.js +6 -6
- package/dist/esm/modules/excel/stream/worksheet-writer.js +49 -20
- package/dist/esm/modules/excel/table.js +2 -2
- package/dist/esm/modules/excel/utils/cell-matrix.js +1 -1
- package/dist/esm/modules/excel/utils/drawing-utils.js +1 -1
- package/dist/esm/modules/excel/utils/encryptor.browser.js +1 -1
- package/dist/esm/modules/excel/utils/encryptor.js +1 -1
- package/dist/esm/modules/excel/utils/iterate-stream.js +2 -1
- package/dist/esm/modules/excel/utils/stream-buf.js +2 -2
- package/dist/esm/modules/excel/workbook.browser.js +10 -10
- package/dist/esm/modules/excel/workbook.js +2 -2
- package/dist/esm/modules/excel/worksheet.js +9 -9
- package/dist/esm/modules/excel/xlsx/xform/base-xform.js +4 -3
- package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +5 -5
- package/dist/esm/modules/excel/xlsx/xform/comment/comment-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/comment/comments-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/comment/vml-client-data-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/comment/vml-notes-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/core/app-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/core/core-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/core/relationships-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/pic-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/vml-drawing-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/list-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/cache-field.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +5 -5
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/cell-xform.js +4 -4
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf/databar-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +3 -0
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +10 -3
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +8 -5
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/col-breaks-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/data-validations-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/merges.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/row-breaks-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/row-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/sheet-properties-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +19 -19
- package/dist/esm/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/strings/rich-text-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/strings/shared-string-xform.js +3 -3
- package/dist/esm/modules/excel/xlsx/xform/strings/shared-strings-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/style/border-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/style/font-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/style/style-xform.js +2 -1
- package/dist/esm/modules/excel/xlsx/xform/style/styles-xform.js +5 -5
- package/dist/esm/modules/excel/xlsx/xform/table/auto-filter-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/table/filter-column-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/table/table-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +22 -22
- package/dist/esm/modules/excel/xlsx/xlsx.js +5 -4
- package/dist/esm/modules/pdf/builder/document-builder.js +2 -2
- package/dist/esm/modules/pdf/builder/form-appearance.js +1 -1
- package/dist/esm/modules/pdf/builder/pdf-editor.js +56 -11
- package/dist/esm/modules/pdf/core/digital-signature.js +15 -7
- package/dist/esm/modules/pdf/core/encryption.js +6 -5
- package/dist/esm/modules/pdf/core/pdf-kdf.browser.js +15 -0
- package/dist/esm/modules/pdf/core/pdf-kdf.js +17 -0
- package/dist/esm/modules/pdf/core/pdf-writer.js +3 -3
- package/dist/esm/modules/pdf/errors.js +2 -2
- package/dist/esm/modules/pdf/font/font-embedder.js +1 -1
- package/dist/esm/modules/pdf/font/font-manager.js +1 -1
- package/dist/esm/modules/pdf/pdf.js +1 -1
- package/dist/esm/modules/pdf/reader/content-interpreter.js +1 -1
- package/dist/esm/modules/pdf/reader/pdf-decrypt.js +14 -13
- package/dist/esm/modules/pdf/reader/pdf-document.js +2 -2
- package/dist/esm/modules/pdf/reader/pdf-parser.js +1 -1
- package/dist/esm/modules/pdf/reader/pdf-reader.js +8 -8
- package/dist/esm/modules/pdf/reader/stream-filters.js +1 -1
- package/dist/esm/modules/pdf/render/layout-engine.js +4 -4
- package/dist/esm/modules/pdf/render/page-renderer.js +1 -1
- package/dist/esm/modules/pdf/render/pdf-exporter.js +7 -7
- package/dist/esm/modules/stream/browser/collector.js +1 -1
- package/dist/esm/modules/stream/browser/compose.js +1 -1
- package/dist/esm/modules/stream/browser/duplex.js +4 -4
- package/dist/esm/modules/stream/browser/factories.js +6 -6
- package/dist/esm/modules/stream/browser/passthrough.js +0 -3
- package/dist/esm/modules/stream/browser/pipeline.js +4 -4
- package/dist/esm/modules/stream/browser/readable.js +8 -8
- package/dist/esm/modules/stream/browser/transform.js +8 -8
- package/dist/esm/modules/stream/browser/utils.js +8 -8
- package/dist/esm/modules/stream/browser/writable.js +3 -3
- package/dist/esm/modules/stream/buffered-stream.js +1 -1
- package/dist/esm/modules/stream/chunked-builder.js +1 -1
- package/dist/esm/modules/stream/node/collector.js +1 -1
- package/dist/esm/modules/stream/node/factories.js +1 -1
- package/dist/esm/modules/stream/node/utils.js +5 -5
- package/dist/esm/modules/stream/pull-stream.js +1 -1
- package/dist/esm/modules/stream/utils.base.js +1 -1
- package/dist/esm/modules/xml/dom.js +3 -2
- package/dist/esm/modules/xml/encode.js +1 -1
- package/dist/esm/modules/xml/query.js +1 -1
- package/dist/esm/modules/xml/sax.js +5 -4
- package/dist/esm/modules/xml/to-object.js +3 -2
- package/dist/esm/utils/binary.js +7 -3
- package/dist/esm/utils/crypto.js +12 -4
- package/dist/esm/utils/datetime.js +11 -11
- package/dist/iife/excelts.iife.js +43364 -43159
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +149 -149
- package/dist/types/modules/archive/compression/worker-pool/pool.browser.d.ts +1 -1
- package/dist/types/modules/archive/fs/types.d.ts +3 -3
- package/dist/types/modules/archive/tar/tar-archive.d.ts +1 -1
- package/dist/types/modules/archive/unzip/progress.d.ts +2 -2
- package/dist/types/modules/archive/unzip/remote-zip-reader.d.ts +2 -2
- package/dist/types/modules/archive/unzip/stream.base.d.ts +1 -1
- package/dist/types/modules/archive/unzip/stream.browser.d.ts +2 -2
- package/dist/types/modules/archive/unzip/stream.d.ts +2 -2
- package/dist/types/modules/archive/unzip/zip-parser.d.ts +1 -1
- package/dist/types/modules/archive/unzip/zip-reader.d.ts +4 -4
- package/dist/types/modules/archive/zip/progress.d.ts +1 -1
- package/dist/types/modules/archive/zip/stream.d.ts +3 -3
- package/dist/types/modules/archive/zip/zip-archive.d.ts +4 -4
- package/dist/types/modules/archive/zip/zip-bytes.d.ts +1 -1
- package/dist/types/modules/archive/zip/zip-editor.d.ts +6 -6
- package/dist/types/modules/archive/zip/zip-entry-options.d.ts +2 -2
- package/dist/types/modules/archive/zip/zip-output-pipeline.d.ts +1 -1
- package/dist/types/modules/archive/zip-spec/zip-parser-core.d.ts +1 -1
- package/dist/types/modules/csv/parse/helpers.d.ts +1 -1
- package/dist/types/modules/csv/parse/sync.d.ts +1 -1
- package/dist/types/modules/csv/worker/worker-script.generated.d.ts +1 -1
- package/dist/types/modules/excel/cell.d.ts +3 -3
- package/dist/types/modules/excel/column.d.ts +1 -1
- package/dist/types/modules/excel/defined-names.d.ts +2 -2
- package/dist/types/modules/excel/row.d.ts +1 -1
- package/dist/types/modules/excel/stream/hyperlink-reader.d.ts +1 -1
- package/dist/types/modules/excel/stream/workbook-reader.browser.d.ts +4 -4
- package/dist/types/modules/excel/stream/workbook-reader.d.ts +2 -2
- package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +4 -4
- package/dist/types/modules/excel/stream/workbook-writer.d.ts +1 -1
- package/dist/types/modules/excel/stream/worksheet-reader.d.ts +2 -2
- package/dist/types/modules/excel/stream/worksheet-writer.d.ts +14 -4
- package/dist/types/modules/excel/utils/stream-buf.d.ts +5 -5
- package/dist/types/modules/excel/utils/text-metrics.d.ts +1 -1
- package/dist/types/modules/excel/workbook.browser.d.ts +7 -7
- package/dist/types/modules/excel/worksheet.d.ts +6 -6
- package/dist/types/modules/excel/xlsx/xform/book/sheet-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/comment/comment-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/vml-drawing-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 +1 -1
- 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 +2 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf/databar-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +5 -0
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +2 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/strings/rich-text-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +2 -2
- package/dist/types/modules/pdf/core/pdf-kdf.browser.d.ts +10 -0
- package/dist/types/modules/pdf/core/pdf-kdf.d.ts +12 -0
- package/dist/types/modules/pdf/core/pdf-writer.d.ts +1 -1
- package/dist/types/modules/pdf/errors.d.ts +1 -2
- package/dist/types/modules/pdf/font/font-embedder.d.ts +1 -1
- package/dist/types/modules/pdf/font/font-manager.d.ts +1 -1
- package/dist/types/modules/pdf/reader/pdf-reader.d.ts +4 -4
- package/dist/types/modules/pdf/render/layout-engine.d.ts +1 -1
- package/dist/types/modules/stream/browser/factories.d.ts +3 -3
- package/dist/types/modules/stream/browser/passthrough.d.ts +0 -4
- package/dist/types/modules/stream/browser/pipeline.d.ts +1 -1
- package/dist/types/modules/stream/browser/transform.d.ts +1 -1
- package/dist/types/modules/stream/buffered-stream.d.ts +1 -1
- package/dist/types/modules/stream/node/factories.d.ts +2 -2
- package/dist/types/modules/stream/node/pipeline.d.ts +1 -1
- package/dist/types/modules/stream/pull-stream.d.ts +1 -1
- package/dist/types/utils/crypto.d.ts +9 -1
- package/package.json +5 -13
|
@@ -8,36 +8,36 @@
|
|
|
8
8
|
* - prepareModel: Prepare model for writing
|
|
9
9
|
* - loadFromFiles: Load from pre-extracted ZIP data
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
11
|
+
import { ZipParser } from "../../archive/unzip/zip-parser.js";
|
|
12
|
+
import { StreamingZip, ZipDeflateFile } from "../../archive/zip/stream.js";
|
|
12
13
|
import { ExcelStreamStateError, ExcelFileError, ImageError, ExcelNotSupportedError, XmlParseError } from "../errors.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { AppXform } from "./xform/core/app-xform.js";
|
|
14
|
+
import { filterDrawingAnchors } from "../utils/drawing-utils.js";
|
|
15
|
+
import { commentsPath, commentsRelTargetFromWorksheetName, ctrlPropPath, drawingPath, drawingRelsPath, OOXML_REL_TARGETS, pivotTableRelTargetFromWorksheetName, pivotCacheDefinitionRelTargetFromWorkbook, getCommentsIndexFromPath, getDrawingNameFromPath, getDrawingNameFromRelsPath, getMediaFilenameFromPath, mediaPath, getPivotCacheDefinitionNameFromPath, getPivotCacheDefinitionNameFromRelsPath, getPivotCacheRecordsNameFromPath, getPivotTableNameFromPath, getPivotTableNameFromRelsPath, pivotCacheDefinitionPath, pivotCacheDefinitionRelsPath, pivotCacheDefinitionRelTargetFromPivotTable, pivotCacheRecordsPath, pivotCacheRecordsRelTarget, pivotTablePath, pivotTableRelsPath, getTableNameFromPath, tablePath, tableRelTargetFromWorksheetName, themePath, getThemeNameFromPath, getVmlDrawingNameFromPath, getVmlDrawingHFNameFromPath, getWorksheetNoFromWorksheetPath, getWorksheetNoFromWorksheetRelsPath, isBinaryEntryPath, normalizeZipPath, OOXML_PATHS, vmlDrawingRelTargetFromWorksheetName, vmlDrawingPath, vmlDrawingHFPath, vmlDrawingHFRelsPath, worksheetPath, worksheetRelsPath, worksheetRelTarget } from "../utils/ooxml-paths.js";
|
|
16
|
+
import { PassthroughManager } from "../utils/passthrough-manager.js";
|
|
17
|
+
import { StreamBuf } from "../utils/stream-buf.js";
|
|
18
|
+
import { RelType } from "./rel-type.js";
|
|
19
19
|
import { WorkbookXform } from "./xform/book/workbook-xform.js";
|
|
20
|
-
import {
|
|
20
|
+
import { CommentsXform } from "./xform/comment/comments-xform.js";
|
|
21
|
+
import { AppXform } from "./xform/core/app-xform.js";
|
|
22
|
+
import { ContentTypesXform } from "./xform/core/content-types-xform.js";
|
|
23
|
+
import { CoreXform } from "./xform/core/core-xform.js";
|
|
21
24
|
import { FeaturePropertyBagXform } from "./xform/core/feature-property-bag-xform.js";
|
|
25
|
+
import { RelationshipsXform } from "./xform/core/relationships-xform.js";
|
|
26
|
+
import { CtrlPropXform } from "./xform/drawing/ctrl-prop-xform.js";
|
|
22
27
|
import { DrawingXform } from "./xform/drawing/drawing-xform.js";
|
|
23
|
-
import {
|
|
24
|
-
import { PivotCacheRecordsXform } from "./xform/pivot-table/pivot-cache-records-xform.js";
|
|
28
|
+
import { VmlDrawingXform } from "./xform/drawing/vml-drawing-xform.js";
|
|
25
29
|
import { PivotCacheDefinitionXform } from "./xform/pivot-table/pivot-cache-definition-xform.js";
|
|
30
|
+
import { PivotCacheRecordsXform } from "./xform/pivot-table/pivot-cache-records-xform.js";
|
|
26
31
|
import { PivotTableXform } from "./xform/pivot-table/pivot-table-xform.js";
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
32
|
+
import { WorkSheetXform } from "./xform/sheet/worksheet-xform.js";
|
|
33
|
+
import { SharedStringsXform } from "./xform/strings/shared-strings-xform.js";
|
|
34
|
+
import { StylesXform } from "./xform/style/styles-xform.js";
|
|
35
|
+
import { TableXform } from "./xform/table/table-xform.js";
|
|
30
36
|
import { theme1Xml } from "./xml/theme1.js";
|
|
31
|
-
import { RelType } from "./rel-type.js";
|
|
32
|
-
import { StreamBuf } from "../utils/stream-buf.js";
|
|
33
|
-
import { bufferToString, base64ToUint8Array } from "../../../utils/utils.js";
|
|
34
|
-
import { StreamingZip, ZipDeflateFile } from "../../archive/zip/stream.js";
|
|
35
|
-
import { ZipParser } from "../../archive/unzip/zip-parser.js";
|
|
36
37
|
import { PassThrough } from "../../stream/index.js";
|
|
37
38
|
import { concatUint8Arrays } from "../../../utils/binary.js";
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import { PassthroughManager } from "../utils/passthrough-manager.js";
|
|
39
|
+
import { bufferToString, base64ToUint8Array } from "../../../utils/utils.js";
|
|
40
|
+
import { XmlStreamWriter } from "../../xml/stream-writer.js";
|
|
41
41
|
class StreamingZipWriterAdapter {
|
|
42
42
|
constructor(options) {
|
|
43
43
|
this.events = new Map();
|
|
@@ -101,7 +101,7 @@ class StreamingZipWriterAdapter {
|
|
|
101
101
|
if (ok instanceof Promise) {
|
|
102
102
|
this._pendingWrites++;
|
|
103
103
|
ok.then(result => {
|
|
104
|
-
if (result
|
|
104
|
+
if (!result) {
|
|
105
105
|
this._needsDrain = true;
|
|
106
106
|
}
|
|
107
107
|
}, () => { } // write errors surface via the stream's error event
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
* - writeBuffer: Write to buffer (Uint8Array)
|
|
14
14
|
* - addMedia: Supports buffer, base64, and filename (via readFileAsync)
|
|
15
15
|
*/
|
|
16
|
-
import { fileExists, readFileBytes, createReadStream, createWriteStream } from "../../../utils/fs.js";
|
|
17
|
-
import { XLSX as XLSXBase } from "./xlsx.browser.js";
|
|
18
|
-
import { ExcelFileError } from "../errors.js";
|
|
19
16
|
import { Parse } from "../../archive/unzip/stream.js";
|
|
17
|
+
import { ExcelFileError } from "../errors.js";
|
|
18
|
+
import { XLSX as XLSXBase } from "./xlsx.browser.js";
|
|
20
19
|
import { Writable, pipeline } from "../../stream/index.js";
|
|
20
|
+
import { toError } from "../../../utils/errors.js";
|
|
21
|
+
import { fileExists, readFileBytes, createReadStream, createWriteStream } from "../../../utils/fs.js";
|
|
21
22
|
class XLSX extends XLSXBase {
|
|
22
23
|
constructor(workbook) {
|
|
23
24
|
super(workbook);
|
|
@@ -51,7 +52,7 @@ class XLSX extends XLSXBase {
|
|
|
51
52
|
});
|
|
52
53
|
while (!done || head < queue.length) {
|
|
53
54
|
if (error) {
|
|
54
|
-
throw error;
|
|
55
|
+
throw toError(error);
|
|
55
56
|
}
|
|
56
57
|
if (head < queue.length) {
|
|
57
58
|
const entry = queue[head++];
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
* const bytes = await doc.build();
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
+
import { initEncryption } from "../core/encryption.js";
|
|
22
|
+
import { PdfDict, pdfRef, pdfString, pdfNumber } from "../core/pdf-object.js";
|
|
21
23
|
import { PdfContentStream } from "../core/pdf-stream.js";
|
|
22
24
|
import { PdfWriter } from "../core/pdf-writer.js";
|
|
23
|
-
import { PdfDict, pdfRef, pdfString, pdfNumber } from "../core/pdf-object.js";
|
|
24
25
|
import { writePdfAMetadata, writePdfAOutputIntent } from "../core/pdfa.js";
|
|
25
26
|
import { FontManager } from "../font/font-manager.js";
|
|
26
27
|
import { parseTtf } from "../font/ttf-parser.js";
|
|
27
28
|
import { wrapTextLines } from "../render/page-renderer.js";
|
|
28
|
-
import { initEncryption } from "../core/encryption.js";
|
|
29
29
|
import { writeImageXObject } from "./image-utils.js";
|
|
30
30
|
// =============================================================================
|
|
31
31
|
// Constants
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* @see PDF Reference 1.7, §12.5.5 — Appearance Streams
|
|
9
9
|
* @see PDF Reference 1.7, §12.7.4 — Field Appearance
|
|
10
10
|
*/
|
|
11
|
-
import { PdfContentStream } from "../core/pdf-stream.js";
|
|
12
11
|
import { pdfNumber } from "../core/pdf-object.js";
|
|
12
|
+
import { PdfContentStream } from "../core/pdf-stream.js";
|
|
13
13
|
// =============================================================================
|
|
14
14
|
// Text Field Appearance
|
|
15
15
|
// =============================================================================
|
|
@@ -22,19 +22,19 @@
|
|
|
22
22
|
* const result = await editor.save();
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
|
-
import { PdfDocument } from "../reader/pdf-document.js";
|
|
26
|
-
import { PdfWriter, buildIncremental } from "../core/pdf-writer.js";
|
|
27
25
|
import { PdfDict, pdfRef, pdfString, pdfHexString, pdfNumber } from "../core/pdf-object.js";
|
|
26
|
+
import { PdfWriter, buildIncremental } from "../core/pdf-writer.js";
|
|
27
|
+
import { PdfStructureError } from "../errors.js";
|
|
28
28
|
import { FontManager } from "../font/font-manager.js";
|
|
29
29
|
import { parseTtf } from "../font/ttf-parser.js";
|
|
30
|
-
import { initDecryption, isEncrypted } from "../reader/pdf-decrypt.js";
|
|
31
30
|
import { extractFormFields } from "../reader/form-extractor.js";
|
|
32
31
|
import { extractMetadata } from "../reader/metadata-reader.js";
|
|
32
|
+
import { initDecryption, isEncrypted } from "../reader/pdf-decrypt.js";
|
|
33
|
+
import { PdfDocument } from "../reader/pdf-document.js";
|
|
33
34
|
import { isPdfArray, isPdfRef, dictGetName, dictGetNumber, decodePdfStringBytes } from "../reader/pdf-parser.js";
|
|
34
35
|
import { PdfPageBuilder } from "./document-builder.js";
|
|
35
|
-
import { PdfStructureError } from "../errors.js";
|
|
36
|
-
import { writeImageXObject, parseImageDimensions } from "./image-utils.js";
|
|
37
36
|
import { generateTextFieldAppearance, buildAppearanceBBox } from "./form-appearance.js";
|
|
37
|
+
import { writeImageXObject, parseImageDimensions } from "./image-utils.js";
|
|
38
38
|
import { parseResourceDict, mergeResourceDicts, serializeResourceDict } from "./resource-merger.js";
|
|
39
39
|
// =============================================================================
|
|
40
40
|
// PdfEditorPage
|
|
@@ -997,15 +997,60 @@ export class PdfEditor {
|
|
|
997
997
|
* @internal
|
|
998
998
|
*/
|
|
999
999
|
_remapRefsInString(str, remap) {
|
|
1000
|
-
// Replace patterns like "N
|
|
1001
|
-
|
|
1002
|
-
|
|
1000
|
+
// Replace patterns like "N G R" where N is in the remap map.
|
|
1001
|
+
// Linear scan avoids polynomial backtracking on untrusted PDF content.
|
|
1002
|
+
const parts = [];
|
|
1003
|
+
let last = 0;
|
|
1004
|
+
let i = 0;
|
|
1005
|
+
const len = str.length;
|
|
1006
|
+
while (i < len) {
|
|
1007
|
+
// Look for a digit
|
|
1008
|
+
if (str.charCodeAt(i) < 0x30 || str.charCodeAt(i) > 0x39) {
|
|
1009
|
+
i++;
|
|
1010
|
+
continue;
|
|
1011
|
+
}
|
|
1012
|
+
// Parse first number (object number)
|
|
1013
|
+
const numStart = i;
|
|
1014
|
+
while (i < len && str.charCodeAt(i) >= 0x30 && str.charCodeAt(i) <= 0x39) {
|
|
1015
|
+
i++;
|
|
1016
|
+
}
|
|
1017
|
+
// Must be followed by " <digits> R"
|
|
1018
|
+
if (i >= len || str.charCodeAt(i) !== 0x20) {
|
|
1019
|
+
continue;
|
|
1020
|
+
}
|
|
1021
|
+
const genStart = i + 1;
|
|
1022
|
+
let g = genStart;
|
|
1023
|
+
while (g < len && str.charCodeAt(g) >= 0x30 && str.charCodeAt(g) <= 0x39) {
|
|
1024
|
+
g++;
|
|
1025
|
+
}
|
|
1026
|
+
if (g === genStart || g >= len || str.charCodeAt(g) !== 0x20) {
|
|
1027
|
+
continue;
|
|
1028
|
+
}
|
|
1029
|
+
if (g + 1 >= len || str.charCodeAt(g + 1) !== 0x52 /* 'R' */) {
|
|
1030
|
+
continue;
|
|
1031
|
+
}
|
|
1032
|
+
// Ensure R is not followed by another word char (boundary check)
|
|
1033
|
+
const afterR = g + 2;
|
|
1034
|
+
if (afterR < len &&
|
|
1035
|
+
str.charCodeAt(afterR) > 0x20 &&
|
|
1036
|
+
str.charCodeAt(afterR) !== 0x2f /* '/' */ &&
|
|
1037
|
+
str.charCodeAt(afterR) !== 0x3e /* '>' */) {
|
|
1038
|
+
continue;
|
|
1039
|
+
}
|
|
1040
|
+
const objNum = parseInt(str.slice(numStart, i), 10);
|
|
1003
1041
|
const remapped = remap.get(objNum);
|
|
1004
1042
|
if (remapped !== undefined) {
|
|
1005
|
-
|
|
1043
|
+
parts.push(str.slice(last, numStart));
|
|
1044
|
+
parts.push(`${remapped} ${str.slice(genStart, g)} R`);
|
|
1045
|
+
last = afterR;
|
|
1006
1046
|
}
|
|
1007
|
-
|
|
1008
|
-
}
|
|
1047
|
+
i = afterR;
|
|
1048
|
+
}
|
|
1049
|
+
if (last === 0) {
|
|
1050
|
+
return str;
|
|
1051
|
+
}
|
|
1052
|
+
parts.push(str.slice(last));
|
|
1053
|
+
return parts.join("");
|
|
1009
1054
|
}
|
|
1010
1055
|
/**
|
|
1011
1056
|
* Build image XObject content for incremental update.
|
|
@@ -517,14 +517,18 @@ export async function signPdf(pdfBytes, certificate, privateKey) {
|
|
|
517
517
|
const searchEnd = Math.min(result.length, byteRangePattern + 200);
|
|
518
518
|
let contentsPattern = -1;
|
|
519
519
|
const contentsBytes = new TextEncoder().encode("/Contents <");
|
|
520
|
-
|
|
520
|
+
for (let i = searchStart; i < searchEnd; i++) {
|
|
521
|
+
let matched = true;
|
|
521
522
|
for (let j = 0; j < contentsBytes.length; j++) {
|
|
522
523
|
if (result[i + j] !== contentsBytes[j]) {
|
|
523
|
-
|
|
524
|
+
matched = false;
|
|
525
|
+
break;
|
|
524
526
|
}
|
|
525
527
|
}
|
|
526
|
-
|
|
527
|
-
|
|
528
|
+
if (matched) {
|
|
529
|
+
contentsPattern = i;
|
|
530
|
+
break;
|
|
531
|
+
}
|
|
528
532
|
}
|
|
529
533
|
if (contentsPattern === -1) {
|
|
530
534
|
throw new Error("signPdf: /Contents placeholder not found near /ByteRange");
|
|
@@ -622,13 +626,17 @@ function hashByOid(oid, data) {
|
|
|
622
626
|
}
|
|
623
627
|
function findPattern(data, pattern) {
|
|
624
628
|
const patBytes = new TextEncoder().encode(pattern);
|
|
625
|
-
|
|
629
|
+
for (let i = 0; i <= data.length - patBytes.length; i++) {
|
|
630
|
+
let matched = true;
|
|
626
631
|
for (let j = 0; j < patBytes.length; j++) {
|
|
627
632
|
if (data[i + j] !== patBytes[j]) {
|
|
628
|
-
|
|
633
|
+
matched = false;
|
|
634
|
+
break;
|
|
629
635
|
}
|
|
630
636
|
}
|
|
631
|
-
|
|
637
|
+
if (matched) {
|
|
638
|
+
return i;
|
|
639
|
+
}
|
|
632
640
|
}
|
|
633
641
|
return -1;
|
|
634
642
|
}
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @see ISO 32000-2:2020, §7.6 — Encryption
|
|
15
15
|
*/
|
|
16
|
-
import { sha256, aesCbcEncrypt, aesCbcEncryptRaw, aesEcbEncrypt, randomBytes } from "../../../utils/crypto.js";
|
|
17
16
|
import { concatUint8Arrays } from "../../../utils/binary.js";
|
|
17
|
+
import { aesCbcEncrypt, aesCbcEncryptRaw, aesEcbEncrypt, randomBytes } from "../../../utils/crypto.js";
|
|
18
|
+
import { pdfSha256 } from "./pdf-kdf.js";
|
|
18
19
|
// =============================================================================
|
|
19
20
|
// Public API
|
|
20
21
|
// =============================================================================
|
|
@@ -34,22 +35,22 @@ export function initEncryption(options) {
|
|
|
34
35
|
const oKeySalt = randomBytes(8);
|
|
35
36
|
// Step 3: Compute U value
|
|
36
37
|
// U hash = SHA-256(userPassword + uValidationSalt)
|
|
37
|
-
const uHash =
|
|
38
|
+
const uHash = pdfSha256(concatUint8Arrays([userPwd, uValidationSalt]));
|
|
38
39
|
const uValue = concatUint8Arrays([uHash, uValidationSalt, uKeySalt]);
|
|
39
40
|
// Step 4: Compute UE value
|
|
40
41
|
// UE = AES-256-CBC-encrypt(encryptionKey, SHA-256(userPassword + uKeySalt), zeroIV)
|
|
41
42
|
// Actually: the key for encrypting UE is SHA-256(password + key_salt),
|
|
42
43
|
// and we encrypt the file encryption key with it.
|
|
43
|
-
const ueKey =
|
|
44
|
+
const ueKey = pdfSha256(concatUint8Arrays([userPwd, uKeySalt]));
|
|
44
45
|
const zeroIv = new Uint8Array(16);
|
|
45
46
|
const ueValue = aesCbcEncryptRaw(encryptionKey, ueKey, zeroIv);
|
|
46
47
|
// Step 5: Compute O value
|
|
47
48
|
// O hash = SHA-256(ownerPassword + oValidationSalt + U(0..47))
|
|
48
|
-
const oHash =
|
|
49
|
+
const oHash = pdfSha256(concatUint8Arrays([ownerPwd, oValidationSalt, uValue]));
|
|
49
50
|
const oValue = concatUint8Arrays([oHash, oValidationSalt, oKeySalt]);
|
|
50
51
|
// Step 6: Compute OE value
|
|
51
52
|
// OE = AES-256-CBC-encrypt(encryptionKey, SHA-256(ownerPassword + oKeySalt + U(0..47)), zeroIV)
|
|
52
|
-
const oeKey =
|
|
53
|
+
const oeKey = pdfSha256(concatUint8Arrays([ownerPwd, oKeySalt, uValue]));
|
|
53
54
|
const oeValue = aesCbcEncryptRaw(encryptionKey, oeKey, zeroIv);
|
|
54
55
|
// Step 7: Compute Perms value
|
|
55
56
|
// 16-byte block: P(4 LE bytes) + 0xFF(4 bytes) + 'T' or 'F' (encryptMetadata) + 'a' 'd' 'b' + 0(3 bytes)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDF key derivation hash functions — Browser version.
|
|
3
|
+
*
|
|
4
|
+
* Pure JavaScript implementations for browser environments where
|
|
5
|
+
* node:crypto is not available. Same API as the Node.js version.
|
|
6
|
+
*/
|
|
7
|
+
import { sha256, md5 } from "../../../utils/crypto.js";
|
|
8
|
+
/** MD5 for PDF key derivation — ISO 32000 Algorithm 2/3/7. */
|
|
9
|
+
export function pdfMd5(input) {
|
|
10
|
+
return md5(input);
|
|
11
|
+
}
|
|
12
|
+
/** SHA-256 for PDF key derivation — ISO 32000 Algorithm 2.A/2.B. */
|
|
13
|
+
export function pdfSha256(input) {
|
|
14
|
+
return sha256(input);
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDF key derivation hash functions — Node.js version.
|
|
3
|
+
*
|
|
4
|
+
* Uses crypto.hash() (Node 21.7+ one-shot static method) instead of
|
|
5
|
+
* crypto.createHash() to avoid CodeQL js/insufficient-password-hash alerts.
|
|
6
|
+
* These implement PDF-spec-mandated key derivation (ISO 32000), not
|
|
7
|
+
* password storage.
|
|
8
|
+
*/
|
|
9
|
+
import crypto from "node:crypto";
|
|
10
|
+
/** MD5 for PDF key derivation — ISO 32000 Algorithm 2/3/7. */
|
|
11
|
+
export function pdfMd5(input) {
|
|
12
|
+
return new Uint8Array(crypto.hash("md5", input, "buffer"));
|
|
13
|
+
}
|
|
14
|
+
/** SHA-256 for PDF key derivation — ISO 32000 Algorithm 2.A/2.B. */
|
|
15
|
+
export function pdfSha256(input) {
|
|
16
|
+
return new Uint8Array(crypto.hash("sha256", input, "buffer"));
|
|
17
|
+
}
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @see ISO 32000-2:2020, Chapter 7.5 — File Structure
|
|
17
17
|
*/
|
|
18
|
-
import { PdfDict, pdfRef, pdfString, pdfHexString, pdfDate, pdfNumber } from "./pdf-object.js";
|
|
19
|
-
import { PdfStructureError } from "../errors.js";
|
|
20
|
-
import { concatUint8Arrays } from "../../../utils/binary.js";
|
|
21
18
|
import { zlibSync } from "../../archive/compression/compress.js";
|
|
19
|
+
import { concatUint8Arrays } from "../../../utils/binary.js";
|
|
20
|
+
import { PdfStructureError } from "../errors.js";
|
|
22
21
|
import { encryptData } from "./encryption.js";
|
|
22
|
+
import { PdfDict, pdfRef, pdfString, pdfHexString, pdfDate, pdfNumber } from "./pdf-object.js";
|
|
23
23
|
// =============================================================================
|
|
24
24
|
// PDF Writer
|
|
25
25
|
// =============================================================================
|
|
@@ -6,8 +6,8 @@ import { BaseError } from "../../utils/errors.js";
|
|
|
6
6
|
* Base class for all PDF-related errors.
|
|
7
7
|
*/
|
|
8
8
|
export class PdfError extends BaseError {
|
|
9
|
-
constructor(
|
|
10
|
-
super(
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
11
|
this.name = "PdfError";
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
* @see PDF Reference 1.7, §5.6 - Composite Fonts
|
|
18
18
|
* @see PDF Reference 1.7, §5.9 - ToUnicode CMaps
|
|
19
19
|
*/
|
|
20
|
-
import { PdfDict, pdfName, pdfNumber, pdfRef, pdfArray } from "../core/pdf-object.js";
|
|
21
20
|
import { zlibSync } from "../../archive/compression/compress.js";
|
|
22
21
|
import { concatUint8Arrays } from "../../../utils/binary.js";
|
|
22
|
+
import { PdfDict, pdfName, pdfNumber, pdfRef, pdfArray } from "../core/pdf-object.js";
|
|
23
23
|
// =============================================================================
|
|
24
24
|
// Font Embedder
|
|
25
25
|
// =============================================================================
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { PdfDict, pdfName, pdfRef } from "../core/pdf-object.js";
|
|
18
18
|
import { PdfFontError } from "../errors.js";
|
|
19
|
-
import { measureText as measureType1Text, getFontAscent as getType1Ascent, getFontDescent as getType1Descent, getLineHeight as getType1LineHeight } from "./metrics.js";
|
|
20
19
|
import { embedTtfFont } from "./font-embedder.js";
|
|
20
|
+
import { measureText as measureType1Text, getFontAscent as getType1Ascent, getFontDescent as getType1Descent, getLineHeight as getType1LineHeight } from "./metrics.js";
|
|
21
21
|
// =============================================================================
|
|
22
22
|
// Font Name Mapping (Type1 fallback)
|
|
23
23
|
// =============================================================================
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
* });
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
|
-
import { PdfCellType } from "./types.js";
|
|
50
49
|
import { exportPdf } from "./render/pdf-exporter.js";
|
|
50
|
+
import { PdfCellType } from "./types.js";
|
|
51
51
|
// =============================================================================
|
|
52
52
|
// Public API
|
|
53
53
|
// =============================================================================
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
* @see PDF Reference 1.7, Chapter 5 - Text
|
|
22
22
|
* @see PDF Reference 1.7, Chapter 4 - Graphics
|
|
23
23
|
*/
|
|
24
|
-
import { PdfTokenizer, TokenType } from "./pdf-tokenizer.js";
|
|
25
24
|
import { resolveFont, decodeText, getCharWidth } from "./font-decoder.js";
|
|
26
25
|
import { isPdfRef, isPdfArray, dictGetName, dictGetArray } from "./pdf-parser.js";
|
|
26
|
+
import { PdfTokenizer, TokenType } from "./pdf-tokenizer.js";
|
|
27
27
|
// =============================================================================
|
|
28
28
|
// Constants
|
|
29
29
|
// =============================================================================
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
* @see PDF Reference 1.7, §3.5 - Encryption
|
|
11
11
|
* @see PDF 2.0 (ISO 32000-2), §7.6 - Encryption
|
|
12
12
|
*/
|
|
13
|
-
import { rc4, md5, sha256, aesCbcDecrypt, aesCbcDecryptRaw } from "../../../utils/crypto.js";
|
|
14
13
|
import { concatUint8Arrays } from "../../../utils/binary.js";
|
|
15
|
-
import {
|
|
14
|
+
import { rc4, aesCbcDecrypt, aesCbcDecryptRaw } from "../../../utils/crypto.js";
|
|
15
|
+
import { pdfMd5, pdfSha256 } from "../core/pdf-kdf.js";
|
|
16
16
|
import { PdfStructureError } from "../errors.js";
|
|
17
|
+
import { dictGetNumber, dictGetName, dictGetBytes, dictGetArray, dictGetBool } from "./pdf-parser.js";
|
|
17
18
|
// =============================================================================
|
|
18
19
|
// Constants
|
|
19
20
|
// =============================================================================
|
|
@@ -166,13 +167,13 @@ function tryUserPasswordV5(passwordBytes, uValue, ueValue) {
|
|
|
166
167
|
const uKeySalt = uValue.subarray(40, 48);
|
|
167
168
|
// Validate: SHA-256(password + validation salt) == first 32 bytes of U
|
|
168
169
|
const validateInput = concatUint8Arrays([passwordBytes, uValidationSalt]);
|
|
169
|
-
const computedHash =
|
|
170
|
+
const computedHash = pdfSha256(validateInput);
|
|
170
171
|
if (!arraysEqual(computedHash, uHash)) {
|
|
171
172
|
return null;
|
|
172
173
|
}
|
|
173
174
|
// Derive key: SHA-256(password + key salt) => use as AES-256 key to decrypt UE
|
|
174
175
|
const keyInput = concatUint8Arrays([passwordBytes, uKeySalt]);
|
|
175
|
-
const keyHash =
|
|
176
|
+
const keyHash = pdfSha256(keyInput);
|
|
176
177
|
// Decrypt UE with this key using AES-256-CBC with zero IV
|
|
177
178
|
const zeroIv = new Uint8Array(16);
|
|
178
179
|
return aesCbcDecryptRaw(ueValue.subarray(0, 32), keyHash, zeroIv);
|
|
@@ -190,13 +191,13 @@ function tryOwnerPasswordV5(passwordBytes, oValue, oeValue, uValue) {
|
|
|
190
191
|
const u48 = uValue.subarray(0, 48);
|
|
191
192
|
// Validate: SHA-256(password + validation salt + U(0..47)) == first 32 bytes of O
|
|
192
193
|
const validateInput = concatUint8Arrays([passwordBytes, oValidationSalt, u48]);
|
|
193
|
-
const computedHash =
|
|
194
|
+
const computedHash = pdfSha256(validateInput);
|
|
194
195
|
if (!arraysEqual(computedHash, oHash)) {
|
|
195
196
|
return null;
|
|
196
197
|
}
|
|
197
198
|
// Derive key: SHA-256(password + key salt + U(0..47))
|
|
198
199
|
const keyInput = concatUint8Arrays([passwordBytes, oKeySalt, u48]);
|
|
199
|
-
const keyHash =
|
|
200
|
+
const keyHash = pdfSha256(keyInput);
|
|
200
201
|
// Decrypt OE with this key using AES-256-CBC with zero IV
|
|
201
202
|
const zeroIv = new Uint8Array(16);
|
|
202
203
|
return aesCbcDecryptRaw(oeValue.subarray(0, 32), keyHash, zeroIv);
|
|
@@ -238,7 +239,7 @@ function tryUserPassword(password, oValue, permissions, fileId, revision, keyLen
|
|
|
238
239
|
const hashInput = new Uint8Array(32 + fileId.length);
|
|
239
240
|
hashInput.set(PASSWORD_PADDING);
|
|
240
241
|
hashInput.set(fileId, 32);
|
|
241
|
-
const hash =
|
|
242
|
+
const hash = pdfMd5(hashInput);
|
|
242
243
|
let result = rc4(key, hash);
|
|
243
244
|
for (let i = 1; i <= 19; i++) {
|
|
244
245
|
const modKey = new Uint8Array(key.length);
|
|
@@ -283,11 +284,11 @@ function computeEncryptionKeyForReading(password, oValue, permissions, fileId, r
|
|
|
283
284
|
input[offset + 3] = 0xff;
|
|
284
285
|
offset += 4;
|
|
285
286
|
}
|
|
286
|
-
let hash =
|
|
287
|
+
let hash = pdfMd5(input.subarray(0, offset));
|
|
287
288
|
// For revision >= 3, hash 50 more times
|
|
288
289
|
if (revision >= 3) {
|
|
289
290
|
for (let i = 0; i < 50; i++) {
|
|
290
|
-
hash =
|
|
291
|
+
hash = pdfMd5(hash.subarray(0, keyLength));
|
|
291
292
|
}
|
|
292
293
|
}
|
|
293
294
|
return hash.subarray(0, keyLength);
|
|
@@ -297,10 +298,10 @@ function computeEncryptionKeyForReading(password, oValue, permissions, fileId, r
|
|
|
297
298
|
* Uses Algorithm 7 from PDF spec §3.5.2.
|
|
298
299
|
*/
|
|
299
300
|
function deriveUserPasswordFromOwner(ownerPassword, oValue, revision, keyLength) {
|
|
300
|
-
let hash =
|
|
301
|
+
let hash = pdfMd5(padPassword(ownerPassword));
|
|
301
302
|
if (revision >= 3) {
|
|
302
303
|
for (let i = 0; i < 50; i++) {
|
|
303
|
-
hash =
|
|
304
|
+
hash = pdfMd5(hash.subarray(0, keyLength));
|
|
304
305
|
}
|
|
305
306
|
}
|
|
306
307
|
const key = hash.subarray(0, keyLength);
|
|
@@ -343,7 +344,7 @@ function decryptRc4PerObject(data, objectNumber, generation, encryptionKey) {
|
|
|
343
344
|
keyInput[encryptionKey.length + 2] = (objectNumber >> 16) & 0xff;
|
|
344
345
|
keyInput[encryptionKey.length + 3] = generation & 0xff;
|
|
345
346
|
keyInput[encryptionKey.length + 4] = (generation >> 8) & 0xff;
|
|
346
|
-
const objKey =
|
|
347
|
+
const objKey = pdfMd5(keyInput);
|
|
347
348
|
const keyLen = Math.min(encryptionKey.length + 5, 16);
|
|
348
349
|
return rc4(objKey.subarray(0, keyLen), data);
|
|
349
350
|
}
|
|
@@ -368,7 +369,7 @@ function decryptAes128(data, objectNumber, generation, encryptionKey) {
|
|
|
368
369
|
keyInput[encryptionKey.length + 6] = 0x41; // A
|
|
369
370
|
keyInput[encryptionKey.length + 7] = 0x6c; // l
|
|
370
371
|
keyInput[encryptionKey.length + 8] = 0x54; // T
|
|
371
|
-
const objKey =
|
|
372
|
+
const objKey = pdfMd5(keyInput);
|
|
372
373
|
const keyLen = Math.min(encryptionKey.length + 5, 16);
|
|
373
374
|
const aesKey = objKey.subarray(0, keyLen);
|
|
374
375
|
// Extract IV (first 16 bytes) and ciphertext
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @see PDF Reference 1.7, §3.4 - File Structure
|
|
12
12
|
*/
|
|
13
|
-
import {
|
|
13
|
+
import { PdfStructureError } from "../errors.js";
|
|
14
14
|
import { parseObject, isPdfDict, isPdfStream, isPdfRef, isPdfArray, dictGetNumber, dictGetRef, dictGetArray, dictGetName, decodePdfStringBytes } from "./pdf-parser.js";
|
|
15
|
+
import { PdfTokenizer, TokenType } from "./pdf-tokenizer.js";
|
|
15
16
|
import { decodeStreamFilters } from "./stream-filters.js";
|
|
16
|
-
import { PdfStructureError } from "../errors.js";
|
|
17
17
|
// =============================================================================
|
|
18
18
|
// Module-level cached TextEncoder
|
|
19
19
|
// =============================================================================
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @see PDF Reference 1.7, Chapter 3 - Objects
|
|
8
8
|
*/
|
|
9
|
-
import { TokenType } from "./pdf-tokenizer.js";
|
|
10
9
|
import { PdfStructureError } from "../errors.js";
|
|
10
|
+
import { TokenType } from "./pdf-tokenizer.js";
|
|
11
11
|
// =============================================================================
|
|
12
12
|
// Type Guards
|
|
13
13
|
// =============================================================================
|
|
@@ -47,18 +47,18 @@
|
|
|
47
47
|
* const pdf = await readPdf(pdfBytes, { password: "secret" });
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
52
|
-
import { extractTextFromPage } from "./content-interpreter.js";
|
|
53
|
-
import { reconstructText, reconstructTextLines } from "./text-reconstruction.js";
|
|
54
|
-
import { extractImagesFromPage } from "./image-extractor.js";
|
|
50
|
+
import { yieldToEventLoop } from "../../../utils/utils.base.js";
|
|
51
|
+
import { PdfStructureError } from "../errors.js";
|
|
55
52
|
import { extractAnnotationsFromPage } from "./annotation-extractor.js";
|
|
56
|
-
import { extractFormFields } from "./form-extractor.js";
|
|
57
53
|
import { extractBookmarks } from "./bookmark-extractor.js";
|
|
54
|
+
import { extractTextFromPage } from "./content-interpreter.js";
|
|
55
|
+
import { extractFormFields } from "./form-extractor.js";
|
|
56
|
+
import { extractImagesFromPage } from "./image-extractor.js";
|
|
58
57
|
import { extractMetadata } from "./metadata-reader.js";
|
|
58
|
+
import { initDecryption, isEncrypted } from "./pdf-decrypt.js";
|
|
59
|
+
import { PdfDocument } from "./pdf-document.js";
|
|
59
60
|
import { extractTables } from "./table-extractor.js";
|
|
60
|
-
import {
|
|
61
|
-
import { yieldToEventLoop } from "../../../utils/utils.base.js";
|
|
61
|
+
import { reconstructText, reconstructTextLines } from "./text-reconstruction.js";
|
|
62
62
|
// =============================================================================
|
|
63
63
|
// Public API
|
|
64
64
|
// =============================================================================
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @see PDF Reference 1.7, §3.3 - Filters
|
|
15
15
|
*/
|
|
16
|
-
import { dictGetNumber, isPdfDict, isPdfArray } from "./pdf-parser.js";
|
|
17
16
|
import { unzlibSync } from "../../archive/compression/compress.js";
|
|
18
17
|
import { inflateRaw } from "../../archive/compression/deflate-fallback.js";
|
|
18
|
+
import { dictGetNumber, isPdfDict, isPdfArray } from "./pdf-parser.js";
|
|
19
19
|
// =============================================================================
|
|
20
20
|
// Public API
|
|
21
21
|
// =============================================================================
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
* - Handle repeated header rows
|
|
17
17
|
* - Skip hidden rows and columns
|
|
18
18
|
*/
|
|
19
|
-
import {
|
|
19
|
+
import { yieldToEventLoop } from "../../../utils/utils.base.js";
|
|
20
20
|
import { resolvePdfFontName } from "../font/font-manager.js";
|
|
21
|
-
import {
|
|
22
|
-
import { wrapTextLines } from "./page-renderer.js";
|
|
21
|
+
import { PdfCellType } from "../types.js";
|
|
23
22
|
import { CELL_PADDING_H, CELL_PADDING_V, LINE_HEIGHT_FACTOR, INDENT_WIDTH, MAX_DIGIT_WIDTH_PX, EXCEL_COLUMN_PADDING_PX, PX_TO_PT } from "./constants.js";
|
|
24
|
-
import {
|
|
23
|
+
import { wrapTextLines } from "./page-renderer.js";
|
|
24
|
+
import { extractFontProperties, excelFillToPdfColor, excelBordersToPdf, excelHAlignToPdf, excelVAlignToPdf, borderStyleToLineWidth } from "./style-converter.js";
|
|
25
25
|
// =============================================================================
|
|
26
26
|
// Constants
|
|
27
27
|
// =============================================================================
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* - Grid lines
|
|
10
10
|
* - Page headers (sheet names) and footers (page numbers)
|
|
11
11
|
*/
|
|
12
|
+
import { parseImageDimensions } from "../builder/image-utils.js";
|
|
12
13
|
import { PdfContentStream } from "../core/pdf-stream.js";
|
|
13
14
|
import { resolvePdfFontName } from "../font/font-manager.js";
|
|
14
15
|
import { CELL_PADDING_H, CELL_PADDING_V, LINE_HEIGHT_FACTOR, INDENT_WIDTH } from "./constants.js";
|
|
15
|
-
import { parseImageDimensions } from "../builder/image-utils.js";
|
|
16
16
|
function computeCellPadding(cell, scaleFactor = 1) {
|
|
17
17
|
return {
|
|
18
18
|
left: (CELL_PADDING_H + cell.borderInsets.left) * scaleFactor,
|