pdf-lite 1.0.1-alpha.1 → 1.0.1-alpha.3
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/core/decoder.d.ts +39 -0
- package/dist/core/decoder.js +367 -0
- package/dist/core/generators.d.ts +37 -0
- package/{packages/pdf-lite/src/core/generators.ts → dist/core/generators.js} +36 -67
- package/dist/core/incremental-parser.d.ts +103 -0
- package/{packages/pdf-lite/src/core/incremental-parser.ts → dist/core/incremental-parser.js} +63 -100
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +2 -0
- package/dist/core/objects/pdf-array.d.ts +12 -0
- package/dist/core/objects/pdf-array.js +42 -0
- package/dist/core/objects/pdf-boolean.d.ts +8 -0
- package/dist/core/objects/pdf-boolean.js +15 -0
- package/dist/core/objects/pdf-comment.d.ts +18 -0
- package/dist/core/objects/pdf-comment.js +39 -0
- package/dist/core/objects/pdf-date.d.ts +5 -0
- package/dist/core/objects/pdf-date.js +40 -0
- package/dist/core/objects/pdf-dictionary.d.ts +22 -0
- package/dist/core/objects/pdf-dictionary.js +136 -0
- package/dist/core/objects/pdf-hexadecimal.d.ts +17 -0
- package/dist/core/objects/pdf-hexadecimal.js +42 -0
- package/dist/core/objects/pdf-indirect-object.d.ts +27 -0
- package/dist/core/objects/pdf-indirect-object.js +100 -0
- package/dist/core/objects/pdf-name.d.ts +8 -0
- package/dist/core/objects/pdf-name.js +15 -0
- package/dist/core/objects/pdf-null.d.ts +7 -0
- package/dist/core/objects/pdf-null.js +11 -0
- package/dist/core/objects/pdf-number.d.ts +25 -0
- package/dist/core/objects/pdf-number.js +77 -0
- package/dist/core/objects/pdf-object-reference.d.ts +9 -0
- package/dist/core/objects/pdf-object-reference.js +19 -0
- package/dist/core/objects/pdf-object.d.ts +30 -0
- package/dist/core/objects/pdf-object.js +77 -0
- package/dist/core/objects/pdf-start-xref.d.ts +10 -0
- package/dist/core/objects/pdf-start-xref.js +32 -0
- package/dist/core/objects/pdf-stream.d.ts +100 -0
- package/dist/core/objects/pdf-stream.js +521 -0
- package/dist/core/objects/pdf-string.d.ts +15 -0
- package/dist/core/objects/pdf-string.js +30 -0
- package/dist/core/objects/pdf-trailer.d.ts +26 -0
- package/dist/core/objects/pdf-trailer.js +33 -0
- package/dist/core/objects/pdf-xref-table.d.ts +48 -0
- package/dist/core/objects/pdf-xref-table.js +183 -0
- package/{packages/pdf-lite/src/core/parser.ts → dist/core/parser.d.ts} +3 -4
- package/dist/core/parser.js +9 -0
- package/dist/core/ref.d.ts +59 -0
- package/{packages/pdf-lite/src/core/ref.ts → dist/core/ref.js} +23 -41
- package/dist/core/serializer.d.ts +36 -0
- package/{packages/pdf-lite/src/core/serializer.ts → dist/core/serializer.js} +20 -30
- package/dist/core/streams/object-stream.d.ts +6 -0
- package/dist/core/streams/object-stream.js +15 -0
- package/dist/core/tokeniser.d.ts +98 -0
- package/dist/core/tokeniser.js +552 -0
- package/dist/core/tokens/boolean-token.d.ts +8 -0
- package/dist/core/tokens/boolean-token.js +15 -0
- package/dist/core/tokens/byte-offset-token.d.ts +8 -0
- package/dist/core/tokens/byte-offset-token.js +15 -0
- package/dist/core/tokens/comment-token.d.ts +10 -0
- package/dist/core/tokens/comment-token.js +26 -0
- package/dist/core/tokens/end-array-token.d.ts +4 -0
- package/dist/core/tokens/end-array-token.js +8 -0
- package/dist/core/tokens/end-dictionary-token.d.ts +4 -0
- package/dist/core/tokens/end-dictionary-token.js +8 -0
- package/dist/core/tokens/end-object-token.d.ts +4 -0
- package/dist/core/tokens/end-object-token.js +8 -0
- package/dist/core/tokens/end-stream-token.d.ts +5 -0
- package/dist/core/tokens/end-stream-token.js +8 -0
- package/dist/core/tokens/hexadecimal-token.d.ts +7 -0
- package/dist/core/tokens/hexadecimal-token.js +16 -0
- package/dist/core/tokens/name-token.d.ts +6 -0
- package/dist/core/tokens/name-token.js +15 -0
- package/dist/core/tokens/null-token.d.ts +4 -0
- package/dist/core/tokens/null-token.js +8 -0
- package/dist/core/tokens/number-token.d.ts +24 -0
- package/dist/core/tokens/number-token.js +104 -0
- package/dist/core/tokens/object-reference-token.d.ts +7 -0
- package/dist/core/tokens/object-reference-token.js +17 -0
- package/dist/core/tokens/start-array-token.d.ts +4 -0
- package/dist/core/tokens/start-array-token.js +8 -0
- package/dist/core/tokens/start-dictionary-token.d.ts +4 -0
- package/dist/core/tokens/start-dictionary-token.js +8 -0
- package/dist/core/tokens/start-object-token.d.ts +8 -0
- package/dist/core/tokens/start-object-token.js +17 -0
- package/dist/core/tokens/start-stream-token.d.ts +8 -0
- package/dist/core/tokens/start-stream-token.js +38 -0
- package/dist/core/tokens/start-xref-token.d.ts +4 -0
- package/dist/core/tokens/start-xref-token.js +8 -0
- package/dist/core/tokens/stream-chunk-token.d.ts +5 -0
- package/dist/core/tokens/stream-chunk-token.js +6 -0
- package/dist/core/tokens/string-token.d.ts +7 -0
- package/dist/core/tokens/string-token.js +13 -0
- package/dist/core/tokens/token.d.ts +10 -0
- package/dist/core/tokens/token.js +32 -0
- package/dist/core/tokens/trailer-token.d.ts +5 -0
- package/dist/core/tokens/trailer-token.js +10 -0
- package/dist/core/tokens/whitespace-token.d.ts +11 -0
- package/dist/core/tokens/whitespace-token.js +36 -0
- package/dist/core/tokens/xref-table-entry-token.d.ts +13 -0
- package/dist/core/tokens/xref-table-entry-token.js +40 -0
- package/dist/core/tokens/xref-table-section-start-token.d.ts +8 -0
- package/dist/core/tokens/xref-table-section-start-token.js +21 -0
- package/dist/core/tokens/xref-table-start-token.d.ts +5 -0
- package/dist/core/tokens/xref-table-start-token.js +10 -0
- package/dist/crypto/ciphers/aes128.d.ts +19 -0
- package/{packages/pdf-lite/src/crypto/ciphers/aes128.ts → dist/crypto/ciphers/aes128.js} +17 -27
- package/dist/crypto/ciphers/aes256.d.ts +18 -0
- package/{packages/pdf-lite/src/crypto/ciphers/aes256.ts → dist/crypto/ciphers/aes256.js} +14 -17
- package/dist/crypto/ciphers/rc4.d.ts +18 -0
- package/{packages/pdf-lite/src/crypto/ciphers/rc4.ts → dist/crypto/ciphers/rc4.js} +25 -30
- package/dist/crypto/constants.d.ts +6 -0
- package/{packages/pdf-lite/src/crypto/constants.ts → dist/crypto/constants.js} +1 -1
- package/dist/crypto/key-derivation/key-derivation-aes256.d.ts +56 -0
- package/dist/crypto/key-derivation/key-derivation-aes256.js +156 -0
- package/dist/crypto/key-derivation/key-derivation.d.ts +42 -0
- package/{packages/pdf-lite/src/crypto/key-derivation/key-derivation.ts → dist/crypto/key-derivation/key-derivation.js} +35 -66
- package/dist/crypto/key-gen/key-gen-aes256.d.ts +36 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-aes256.ts → dist/crypto/key-gen/key-gen-aes256.js} +25 -50
- package/dist/crypto/key-gen/key-gen-rc4-128.d.ts +47 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-128.ts → dist/crypto/key-gen/key-gen-rc4-128.js} +45 -106
- package/dist/crypto/key-gen/key-gen-rc4-40.d.ts +60 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-40.ts → dist/crypto/key-gen/key-gen-rc4-40.js} +26 -62
- package/dist/crypto/types.d.ts +5 -0
- package/dist/crypto/types.js +1 -0
- package/dist/crypto/utils.d.ts +40 -0
- package/{packages/pdf-lite/src/crypto/utils.ts → dist/crypto/utils.js} +27 -36
- package/dist/filters/ascii85.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/ascii85.ts → dist/filters/ascii85.js} +41 -65
- package/dist/filters/asciihex.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/asciihex.ts → dist/filters/asciihex.js} +18 -19
- package/dist/filters/flate.d.ts +15 -0
- package/{packages/pdf-lite/src/filters/flate.ts → dist/filters/flate.js} +7 -10
- package/dist/filters/lzw.d.ts +16 -0
- package/dist/filters/lzw.js +150 -0
- package/dist/filters/pass-through.d.ts +14 -0
- package/{packages/pdf-lite/src/filters/pass-through.ts → dist/filters/pass-through.js} +6 -9
- package/dist/filters/runlength.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/runlength.ts → dist/filters/runlength.js} +36 -40
- package/dist/filters/types.d.ts +18 -0
- package/{packages/pdf-lite/src/filters/types.ts → dist/filters/types.js} +1 -10
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/pdf/errors.d.ts +6 -0
- package/{packages/pdf-lite/src/pdf/errors.ts → dist/pdf/errors.js} +2 -1
- package/dist/pdf/index.d.ts +4 -0
- package/dist/pdf/index.js +4 -0
- package/dist/pdf/pdf-document.d.ts +277 -0
- package/{packages/pdf-lite/src/pdf/pdf-document.ts → dist/pdf/pdf-document.js} +305 -541
- package/dist/pdf/pdf-reader.d.ts +37 -0
- package/{packages/pdf-lite/src/pdf/pdf-reader.ts → dist/pdf/pdf-reader.js} +12 -22
- package/dist/pdf/pdf-revision.d.ts +101 -0
- package/{packages/pdf-lite/src/pdf/pdf-revision.ts → dist/pdf/pdf-revision.js} +70 -105
- package/dist/pdf/pdf-xref-lookup.d.ts +149 -0
- package/dist/pdf/pdf-xref-lookup.js +402 -0
- package/dist/security/crypt-filters/aesv2.d.ts +35 -0
- package/{packages/pdf-lite/src/security/crypt-filters/aesv2.ts → dist/security/crypt-filters/aesv2.js} +9 -26
- package/dist/security/crypt-filters/aesv3.d.ts +36 -0
- package/{packages/pdf-lite/src/security/crypt-filters/aesv3.ts → dist/security/crypt-filters/aesv3.js} +9 -23
- package/{packages/pdf-lite/src/security/crypt-filters/base.ts → dist/security/crypt-filters/base.d.ts} +21 -73
- package/dist/security/crypt-filters/base.js +93 -0
- package/dist/security/crypt-filters/identity.d.ts +28 -0
- package/{packages/pdf-lite/src/security/crypt-filters/identity.ts → dist/security/crypt-filters/identity.js} +9 -13
- package/dist/security/crypt-filters/v2.d.ts +37 -0
- package/{packages/pdf-lite/src/security/crypt-filters/v2.ts → dist/security/crypt-filters/v2.js} +9 -26
- package/dist/security/handlers/base.d.ts +304 -0
- package/dist/security/handlers/base.js +359 -0
- package/dist/security/handlers/pubSec.d.ts +164 -0
- package/dist/security/handlers/pubSec.js +299 -0
- package/dist/security/handlers/utils.d.ts +77 -0
- package/dist/security/handlers/utils.js +244 -0
- package/dist/security/handlers/v1.d.ts +81 -0
- package/dist/security/handlers/v1.js +135 -0
- package/dist/security/handlers/v2.d.ts +63 -0
- package/{packages/pdf-lite/src/security/handlers/v2.ts → dist/security/handlers/v2.js} +25 -62
- package/dist/security/handlers/v4.d.ts +121 -0
- package/dist/security/handlers/v4.js +257 -0
- package/dist/security/handlers/v5.d.ts +112 -0
- package/dist/security/handlers/v5.js +210 -0
- package/{packages/pdf-lite/src/security/types.ts → dist/security/types.d.ts} +72 -94
- package/dist/security/types.js +1 -0
- package/dist/signing/document-security-store.d.ts +108 -0
- package/dist/signing/document-security-store.js +156 -0
- package/dist/signing/index.d.ts +3 -0
- package/dist/signing/index.js +3 -0
- package/dist/signing/signatures/adbe-pkcs7-detached.d.ts +57 -0
- package/dist/signing/signatures/adbe-pkcs7-detached.js +117 -0
- package/dist/signing/signatures/adbe-pkcs7-sha1.d.ts +55 -0
- package/dist/signing/signatures/adbe-pkcs7-sha1.js +121 -0
- package/dist/signing/signatures/adbe-x509-rsa-sha1.d.ts +49 -0
- package/dist/signing/signatures/adbe-x509-rsa-sha1.js +81 -0
- package/dist/signing/signatures/base.d.ts +107 -0
- package/dist/signing/signatures/base.js +145 -0
- package/dist/signing/signatures/etsi-cades-detached.d.ts +64 -0
- package/dist/signing/signatures/etsi-cades-detached.js +159 -0
- package/dist/signing/signatures/etsi-rfc3161.d.ts +37 -0
- package/{packages/pdf-lite/src/signing/signatures/etsi-rfc3161.ts → dist/signing/signatures/etsi-rfc3161.js} +21 -43
- package/dist/signing/signatures/index.d.ts +6 -0
- package/dist/signing/signatures/index.js +6 -0
- package/dist/signing/signer.d.ts +23 -0
- package/dist/signing/signer.js +92 -0
- package/{packages/pdf-lite/src/signing/types.ts → dist/signing/types.d.ts} +40 -48
- package/dist/signing/types.js +1 -0
- package/dist/signing/utils.d.ts +32 -0
- package/{packages/pdf-lite/src/signing/utils.ts → dist/signing/utils.js} +12 -31
- package/dist/types.d.ts +23 -0
- package/dist/types.js +11 -0
- package/dist/utils/IterableReadableStream.d.ts +24 -0
- package/{packages/pdf-lite/src/utils/IterableReadableStream.ts → dist/utils/IterableReadableStream.js} +6 -6
- package/dist/utils/algos.d.ts +242 -0
- package/{packages/pdf-lite/src/utils/algos.ts → dist/utils/algos.js} +63 -136
- package/dist/utils/assert.d.ts +28 -0
- package/{packages/pdf-lite/src/utils/assert.ts → dist/utils/assert.js} +5 -10
- package/dist/utils/bytesToHex.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/bytesToHex.ts → dist/utils/bytesToHex.js} +4 -6
- package/dist/utils/bytesToHexBytes.d.ts +14 -0
- package/{packages/pdf-lite/src/utils/bytesToHexBytes.ts → dist/utils/bytesToHexBytes.js} +7 -12
- package/dist/utils/bytesToString.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/bytesToString.ts → dist/utils/bytesToString.js} +3 -5
- package/dist/utils/concatUint8Arrays.d.ts +16 -0
- package/{packages/pdf-lite/src/utils/concatUint8Arrays.ts → dist/utils/concatUint8Arrays.js} +7 -9
- package/dist/utils/escapeString.d.ts +14 -0
- package/dist/utils/escapeString.js +43 -0
- package/dist/utils/hexBytesToBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/hexBytesToBytes.ts → dist/utils/hexBytesToBytes.js} +4 -6
- package/dist/utils/hexBytesToString.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/hexBytesToString.ts → dist/utils/hexBytesToString.js} +5 -7
- package/dist/utils/hexToBytes.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/hexToBytes.ts → dist/utils/hexToBytes.js} +4 -6
- package/dist/utils/padBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/padBytes.ts → dist/utils/padBytes.js} +5 -9
- package/dist/utils/predictors.d.ts +113 -0
- package/{packages/pdf-lite/src/utils/predictors.ts → dist/utils/predictors.js} +103 -156
- package/dist/utils/replaceInBuffer.d.ts +22 -0
- package/{packages/pdf-lite/src/utils/replaceInBuffer.ts → dist/utils/replaceInBuffer.js} +18 -27
- package/dist/utils/stringToBytes.d.ts +14 -0
- package/{packages/pdf-lite/src/utils/stringToBytes.ts → dist/utils/stringToBytes.js} +6 -7
- package/dist/utils/stringToHexBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/stringToHexBytes.ts → dist/utils/stringToHexBytes.js} +5 -7
- package/dist/utils/unescapeString.d.ts +16 -0
- package/dist/utils/unescapeString.js +114 -0
- package/package.json +37 -34
- package/.commitlintrc.cjs +0 -25
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/workflows/docs.yaml +0 -95
- package/.github/workflows/prepare-release.yaml +0 -79
- package/.github/workflows/release.yaml +0 -80
- package/.github/workflows/test.yaml +0 -35
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.prettierignore +0 -4
- package/.prettierrc +0 -4
- package/CONTRIBUTING.md +0 -109
- package/EXAMPLES.md +0 -1512
- package/docs/README.md +0 -127
- package/docs/core/README.md +0 -43
- package/docs/core/decoder/README.md +0 -11
- package/docs/core/decoder/classes/PdfDecoder.md +0 -362
- package/docs/core/generators/README.md +0 -14
- package/docs/core/generators/functions/bytesToPdfObjects.md +0 -26
- package/docs/core/generators/functions/pdfDecoder.md +0 -36
- package/docs/core/generators/functions/pdfDecoderAsync.md +0 -26
- package/docs/core/generators/functions/stringToPdfObjects.md +0 -25
- package/docs/core/incremental-parser/README.md +0 -13
- package/docs/core/incremental-parser/classes/EofReachedError.md +0 -55
- package/docs/core/incremental-parser/classes/IncrementalParser.md +0 -299
- package/docs/core/incremental-parser/classes/NoMoreTokensError.md +0 -55
- package/docs/core/objects/pdf-array/README.md +0 -11
- package/docs/core/objects/pdf-array/classes/PdfArray.md +0 -305
- package/docs/core/objects/pdf-boolean/README.md +0 -11
- package/docs/core/objects/pdf-boolean/classes/PdfBoolean.md +0 -265
- package/docs/core/objects/pdf-comment/README.md +0 -11
- package/docs/core/objects/pdf-comment/classes/PdfComment.md +0 -329
- package/docs/core/objects/pdf-date/README.md +0 -11
- package/docs/core/objects/pdf-date/classes/PdfDate.md +0 -317
- package/docs/core/objects/pdf-dictionary/README.md +0 -17
- package/docs/core/objects/pdf-dictionary/classes/PdfDictionary.md +0 -396
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntries.md +0 -9
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntry.md +0 -9
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryMap.md +0 -9
- package/docs/core/objects/pdf-hexadecimal/README.md +0 -11
- package/docs/core/objects/pdf-hexadecimal/classes/PdfHexadecimal.md +0 -320
- package/docs/core/objects/pdf-indirect-object/README.md +0 -11
- package/docs/core/objects/pdf-indirect-object/classes/PdfIndirectObject.md +0 -411
- package/docs/core/objects/pdf-name/README.md +0 -11
- package/docs/core/objects/pdf-name/classes/PdfName.md +0 -271
- package/docs/core/objects/pdf-null/README.md +0 -11
- package/docs/core/objects/pdf-null/classes/PdfNull.md +0 -259
- package/docs/core/objects/pdf-number/README.md +0 -12
- package/docs/core/objects/pdf-number/classes/PdfByteOffsetNumber.md +0 -369
- package/docs/core/objects/pdf-number/classes/PdfNumber.md +0 -345
- package/docs/core/objects/pdf-object/README.md +0 -11
- package/docs/core/objects/pdf-object/classes/PdfObject.md +0 -214
- package/docs/core/objects/pdf-object-reference/README.md +0 -11
- package/docs/core/objects/pdf-object-reference/classes/PdfObjectReference.md +0 -279
- package/docs/core/objects/pdf-start-xref/README.md +0 -11
- package/docs/core/objects/pdf-start-xref/classes/PdfStartXRef.md +0 -265
- package/docs/core/objects/pdf-stream/README.md +0 -23
- package/docs/core/objects/pdf-stream/classes/PdfObjStream.md +0 -699
- package/docs/core/objects/pdf-stream/classes/PdfStream.md +0 -570
- package/docs/core/objects/pdf-stream/classes/PdfXRefStream.md +0 -723
- package/docs/core/objects/pdf-stream/classes/PdfXRefStreamCompressedEntry.md +0 -51
- package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamEntry.md +0 -9
- package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamStandardEntry.md +0 -9
- package/docs/core/objects/pdf-stream/variables/PdfXRefStreamStandardEntry.md +0 -9
- package/docs/core/objects/pdf-string/README.md +0 -11
- package/docs/core/objects/pdf-string/classes/PdfString.md +0 -301
- package/docs/core/objects/pdf-trailer/README.md +0 -16
- package/docs/core/objects/pdf-trailer/classes/PdfTrailer.md +0 -271
- package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerDictionary.md +0 -9
- package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerEntries.md +0 -51
- package/docs/core/objects/pdf-xref-table/README.md +0 -13
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTable.md +0 -331
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableEntry.md +0 -297
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableSectionHeader.md +0 -277
- package/docs/core/parser/README.md +0 -11
- package/docs/core/parser/classes/Parser.md +0 -74
- package/docs/core/ref/README.md +0 -15
- package/docs/core/ref/classes/Ref.md +0 -149
- package/docs/core/ref/type-aliases/RefUpdateCallback.md +0 -33
- package/docs/core/serializer/README.md +0 -11
- package/docs/core/serializer/classes/PdfTokenSerializer.md +0 -106
- package/docs/core/streams/object-stream/README.md +0 -11
- package/docs/core/streams/object-stream/classes/PdfObjectStream.md +0 -69
- package/docs/core/tokeniser/README.md +0 -21
- package/docs/core/tokeniser/classes/PdfByteStreamTokeniser.md +0 -366
- package/docs/core/tokeniser/classes/PdfObjectTokeniser.md +0 -69
- package/docs/core/tokeniser/functions/objectToTokens.md +0 -25
- package/docs/core/tokeniser/functions/pdfObjectStreamTokeniser.md +0 -27
- package/docs/core/tokeniser/type-aliases/PdfTokeniser.md +0 -11
- package/docs/core/tokens/boolean-token/README.md +0 -11
- package/docs/core/tokens/boolean-token/classes/PdfBooleanToken.md +0 -139
- package/docs/core/tokens/byte-offset-token/README.md +0 -11
- package/docs/core/tokens/byte-offset-token/classes/PdfByteOffsetToken.md +0 -153
- package/docs/core/tokens/comment-token/README.md +0 -11
- package/docs/core/tokens/comment-token/classes/PdfCommentToken.md +0 -161
- package/docs/core/tokens/end-array-token/README.md +0 -11
- package/docs/core/tokens/end-array-token/classes/PdfEndArrayToken.md +0 -115
- package/docs/core/tokens/end-dictionary-token/README.md +0 -11
- package/docs/core/tokens/end-dictionary-token/classes/PdfEndDictionaryToken.md +0 -115
- package/docs/core/tokens/end-object-token/README.md +0 -11
- package/docs/core/tokens/end-object-token/classes/PdfEndObjectToken.md +0 -115
- package/docs/core/tokens/end-stream-token/README.md +0 -11
- package/docs/core/tokens/end-stream-token/classes/PdfEndStreamToken.md +0 -121
- package/docs/core/tokens/hexadecimal-token/README.md +0 -11
- package/docs/core/tokens/hexadecimal-token/classes/PdfHexadecimalToken.md +0 -127
- package/docs/core/tokens/name-token/README.md +0 -11
- package/docs/core/tokens/name-token/classes/PdfNameToken.md +0 -127
- package/docs/core/tokens/null-token/README.md +0 -11
- package/docs/core/tokens/null-token/classes/PdfNullToken.md +0 -115
- package/docs/core/tokens/number-token/README.md +0 -11
- package/docs/core/tokens/number-token/classes/PdfNumberToken.md +0 -271
- package/docs/core/tokens/object-reference-token/README.md +0 -11
- package/docs/core/tokens/object-reference-token/classes/PdfObjectReferenceToken.md +0 -137
- package/docs/core/tokens/start-array-token/README.md +0 -11
- package/docs/core/tokens/start-array-token/classes/PdfStartArrayToken.md +0 -115
- package/docs/core/tokens/start-dictionary-token/README.md +0 -11
- package/docs/core/tokens/start-dictionary-token/classes/PdfStartDictionaryToken.md +0 -115
- package/docs/core/tokens/start-object-token/README.md +0 -11
- package/docs/core/tokens/start-object-token/classes/PdfStartObjectToken.md +0 -147
- package/docs/core/tokens/start-stream-token/README.md +0 -11
- package/docs/core/tokens/start-stream-token/classes/PdfStartStreamToken.md +0 -147
- package/docs/core/tokens/start-xref-token/README.md +0 -11
- package/docs/core/tokens/start-xref-token/classes/PdfStartXRefToken.md +0 -115
- package/docs/core/tokens/stream-chunk-token/README.md +0 -11
- package/docs/core/tokens/stream-chunk-token/classes/PdfStreamChunkToken.md +0 -121
- package/docs/core/tokens/string-token/README.md +0 -11
- package/docs/core/tokens/string-token/classes/PdfStringToken.md +0 -127
- package/docs/core/tokens/token/README.md +0 -11
- package/docs/core/tokens/token/classes/PdfToken.md +0 -116
- package/docs/core/tokens/trailer-token/README.md +0 -11
- package/docs/core/tokens/trailer-token/classes/PdfTrailerToken.md +0 -127
- package/docs/core/tokens/whitespace-token/README.md +0 -11
- package/docs/core/tokens/whitespace-token/classes/PdfWhitespaceToken.md +0 -161
- package/docs/core/tokens/xref-table-entry-token/README.md +0 -11
- package/docs/core/tokens/xref-table-entry-token/classes/PdfXRefTableEntryToken.md +0 -157
- package/docs/core/tokens/xref-table-section-start-token/README.md +0 -11
- package/docs/core/tokens/xref-table-section-start-token/classes/PdfXRefTableSectionStartToken.md +0 -137
- package/docs/core/tokens/xref-table-start-token/README.md +0 -11
- package/docs/core/tokens/xref-table-start-token/classes/PdfXRefTableStartToken.md +0 -127
- package/docs/crypto/ciphers/aes128/README.md +0 -11
- package/docs/crypto/ciphers/aes128/functions/aes128.md +0 -39
- package/docs/crypto/ciphers/aes256/README.md +0 -11
- package/docs/crypto/ciphers/aes256/functions/aes256.md +0 -35
- package/docs/crypto/ciphers/rc4/README.md +0 -11
- package/docs/crypto/ciphers/rc4/functions/rc4.md +0 -35
- package/docs/crypto/constants/README.md +0 -11
- package/docs/crypto/constants/variables/DEFAULT_PADDING.md +0 -13
- package/docs/crypto/key-derivation/key-derivation/README.md +0 -13
- package/docs/crypto/key-derivation/key-derivation/functions/computeMasterKey.md +0 -57
- package/docs/crypto/key-derivation/key-derivation/functions/deriveObjectKey.md +0 -50
- package/docs/crypto/key-derivation/key-derivation/functions/padPassword.md +0 -33
- package/docs/crypto/key-derivation/key-derivation-aes256/README.md +0 -13
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/computeAlgorithm2bHash.md +0 -45
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/getFileKey.md +0 -66
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/validatePasswordHash.md +0 -52
- package/docs/crypto/key-gen/key-gen-aes256/README.md +0 -12
- package/docs/crypto/key-gen/key-gen-aes256/functions/generateOandOe.md +0 -44
- package/docs/crypto/key-gen/key-gen-aes256/functions/generateUandUe.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-128/README.md +0 -13
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeOValueRc4_128.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeUValueRc4_128.md +0 -62
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/decryptUserPasswordRc4_128.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-40/README.md +0 -14
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeEncryptionKeyRc4_40.md +0 -49
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeORc4_40.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeURc4_40.md +0 -50
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/decryptUserPasswordRc4_40.md +0 -38
- package/docs/crypto/types/README.md +0 -11
- package/docs/crypto/types/interfaces/Cipher.md +0 -39
- package/docs/crypto/utils/README.md +0 -13
- package/docs/crypto/utils/functions/int32ToLittleEndianBytes.md +0 -31
- package/docs/crypto/utils/functions/padPassword.md +0 -33
- package/docs/crypto/utils/functions/removePdfPasswordPadding.md +0 -32
- package/docs/filters/ascii85/README.md +0 -11
- package/docs/filters/ascii85/functions/ascii85.md +0 -27
- package/docs/filters/asciihex/README.md +0 -11
- package/docs/filters/asciihex/functions/asciiHex.md +0 -27
- package/docs/filters/flate/README.md +0 -11
- package/docs/filters/flate/functions/flate.md +0 -26
- package/docs/filters/lzw/README.md +0 -11
- package/docs/filters/lzw/functions/lzw.md +0 -27
- package/docs/filters/pass-through/README.md +0 -11
- package/docs/filters/pass-through/functions/passthroughFilter.md +0 -25
- package/docs/filters/runlength/README.md +0 -11
- package/docs/filters/runlength/functions/runLength.md +0 -27
- package/docs/filters/types/README.md +0 -19
- package/docs/filters/types/interfaces/PdfFilter.md +0 -39
- package/docs/filters/types/type-aliases/PdfStreamFilterType.md +0 -9
- package/docs/filters/types/variables/PDF_FILTER_TYPES.md +0 -51
- package/docs/index/README.md +0 -235
- package/docs/pdf/README.md +0 -31
- package/docs/pdf/errors/README.md +0 -11
- package/docs/pdf/errors/classes/FoundCompressedObjectError.md +0 -56
- package/docs/pdf/pdf-document/README.md +0 -11
- package/docs/pdf/pdf-document/classes/PdfDocument.md +0 -876
- package/docs/pdf/pdf-reader/README.md +0 -11
- package/docs/pdf/pdf-reader/classes/PdfReader.md +0 -82
- package/docs/pdf/pdf-revision/README.md +0 -11
- package/docs/pdf/pdf-revision/classes/PdfRevision.md +0 -508
- package/docs/pdf/pdf-xref-lookup/README.md +0 -11
- package/docs/pdf/pdf-xref-lookup/classes/PdfXrefLookup.md +0 -421
- package/docs/security/crypt-filters/aesv2/README.md +0 -11
- package/docs/security/crypt-filters/aesv2/classes/AesV2CryptFilter.md +0 -274
- package/docs/security/crypt-filters/aesv3/README.md +0 -11
- package/docs/security/crypt-filters/aesv3/classes/AesV3CryptFilter.md +0 -275
- package/docs/security/crypt-filters/base/README.md +0 -15
- package/docs/security/crypt-filters/base/classes/PdfCryptFilter.md +0 -221
- package/docs/security/crypt-filters/base/type-aliases/CryptFilterOptions.md +0 -43
- package/docs/security/crypt-filters/identity/README.md +0 -11
- package/docs/security/crypt-filters/identity/classes/IdentityCryptFilter.md +0 -249
- package/docs/security/crypt-filters/v2/README.md +0 -11
- package/docs/security/crypt-filters/v2/classes/V2CryptFilter.md +0 -279
- package/docs/security/handlers/base/README.md +0 -17
- package/docs/security/handlers/base/classes/PdfSecurityHandler.md +0 -384
- package/docs/security/handlers/base/classes/PdfStandardSecurityHandler.md +0 -694
- package/docs/security/handlers/base/type-aliases/PdfSecurityHandlerOptions.md +0 -27
- package/docs/security/handlers/base/type-aliases/PdfStandardSecurityHandlerOptions.md +0 -43
- package/docs/security/handlers/pubSec/README.md +0 -11
- package/docs/security/handlers/pubSec/classes/PdfPublicKeySecurityHandler.md +0 -503
- package/docs/security/handlers/utils/README.md +0 -14
- package/docs/security/handlers/utils/functions/createFromDictionary.md +0 -56
- package/docs/security/handlers/utils/functions/createFromEncryptionOptions.md +0 -40
- package/docs/security/handlers/utils/functions/createStandardSecurityHandlerFromDictionary.md +0 -55
- package/docs/security/handlers/utils/functions/getCryptFilter.md +0 -35
- package/docs/security/handlers/v1/README.md +0 -11
- package/docs/security/handlers/v1/classes/PdfV1SecurityHandler.md +0 -779
- package/docs/security/handlers/v2/README.md +0 -11
- package/docs/security/handlers/v2/classes/PdfV2SecurityHandler.md +0 -783
- package/docs/security/handlers/v4/README.md +0 -11
- package/docs/security/handlers/v4/classes/PdfV4SecurityHandler.md +0 -907
- package/docs/security/handlers/v5/README.md +0 -11
- package/docs/security/handlers/v5/classes/PdfV5SecurityHandler.md +0 -926
- package/docs/security/types/README.md +0 -19
- package/docs/security/types/type-aliases/CryptFilterType.md +0 -15
- package/docs/security/types/type-aliases/PdfCryptFilterDictionary.md +0 -12
- package/docs/security/types/type-aliases/PdfEncryptionAlgorithmOptions.md +0 -11
- package/docs/security/types/type-aliases/PdfEncryptionAlgorithmType.md +0 -17
- package/docs/security/types/type-aliases/PdfEncryptionDictionary.md +0 -13
- package/docs/security/types/type-aliases/PdfEncryptionDictionaryObject.md +0 -11
- package/docs/security/types/type-aliases/PdfEncryptionOptions.md +0 -90
- package/docs/security/types/type-aliases/PdfEncryptionRecipient.md +0 -24
- package/docs/security/types/type-aliases/PdfId.md +0 -13
- package/docs/signing/README.md +0 -127
- package/docs/signing/document-security-store/README.md +0 -19
- package/docs/signing/document-security-store/classes/PdfCertObject.md +0 -443
- package/docs/signing/document-security-store/classes/PdfCrlObject.md +0 -443
- package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreDictionary.md +0 -416
- package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreObject.md +0 -563
- package/docs/signing/document-security-store/classes/PdfOcspObject.md +0 -443
- package/docs/signing/document-security-store/type-aliases/PdfVriObject.md +0 -12
- package/docs/signing/signatures/README.md +0 -55
- package/docs/signing/signatures/adbe-pkcs7-detached/README.md +0 -11
- package/docs/signing/signatures/adbe-pkcs7-detached/classes/PdfAdbePkcs7DetachedSignatureObject.md +0 -669
- package/docs/signing/signatures/adbe-pkcs7-sha1/README.md +0 -11
- package/docs/signing/signatures/adbe-pkcs7-sha1/classes/PdfAdbePkcs7Sha1SignatureObject.md +0 -667
- package/docs/signing/signatures/adbe-x509-rsa-sha1/README.md +0 -11
- package/docs/signing/signatures/adbe-x509-rsa-sha1/classes/PdfAdbePkcsX509RsaSha1SignatureObject.md +0 -651
- package/docs/signing/signatures/base/README.md +0 -16
- package/docs/signing/signatures/base/classes/PdfSignatureDictionary.md +0 -420
- package/docs/signing/signatures/base/classes/PdfSignatureObject.md +0 -584
- package/docs/signing/signatures/base/type-aliases/PdfSignatureSignOptions.md +0 -51
- package/docs/signing/signatures/etsi-cades-detached/README.md +0 -11
- package/docs/signing/signatures/etsi-cades-detached/classes/PdfEtsiCadesDetachedSignatureObject.md +0 -693
- package/docs/signing/signatures/etsi-rfc3161/README.md +0 -11
- package/docs/signing/signatures/etsi-rfc3161/classes/PdfEtsiRfc3161SignatureObject.md +0 -614
- package/docs/signing/signer/README.md +0 -11
- package/docs/signing/signer/classes/PdfSigner.md +0 -58
- package/docs/signing/types/README.md +0 -16
- package/docs/signing/types/type-aliases/PdfSignatureDictionaryEntries.md +0 -95
- package/docs/signing/types/type-aliases/PdfSignatureSubType.md +0 -17
- package/docs/signing/types/type-aliases/PdfSignatureType.md +0 -14
- package/docs/signing/types/type-aliases/RevocationInfo.md +0 -43
- package/docs/signing/types/type-aliases/SignaturePolicyDocument.md +0 -35
- package/docs/signing/types/type-aliases/TimeStampAuthority.md +0 -35
- package/docs/signing/utils/README.md +0 -11
- package/docs/signing/utils/functions/fetchRevocationInfo.md +0 -70
- package/docs/types/README.md +0 -21
- package/docs/types/type-aliases/ByteArray.md +0 -9
- package/docs/types/type-aliases/ChangeType.md +0 -9
- package/docs/types/type-aliases/DecodeParms.md +0 -33
- package/docs/types/type-aliases/HashAlgorithm.md +0 -9
- package/docs/types/type-aliases/PdfEncryptionAlgorithm.md +0 -9
- package/docs/types/type-aliases/PdfPermissions.md +0 -63
- package/docs/types/type-aliases/PdfVersion.md +0 -9
- package/docs/types/variables/PERMISSION_FLAGS.md +0 -9
- package/docs/utils/IterableReadableStream/README.md +0 -11
- package/docs/utils/IterableReadableStream/classes/IterableReadableStream.md +0 -103
- package/docs/utils/algos/README.md +0 -28
- package/docs/utils/algos/functions/aes128CbcNoPaddingEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes128cbcDecrypt.md +0 -47
- package/docs/utils/algos/functions/aes128cbcEncrypt.md +0 -47
- package/docs/utils/algos/functions/aes256CbcNoPaddingDecrypt.md +0 -43
- package/docs/utils/algos/functions/aes256CbcNoPaddingEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes256cbcDecrypt.md +0 -43
- package/docs/utils/algos/functions/aes256cbcEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes256ecbDecrypt.md +0 -41
- package/docs/utils/algos/functions/aes256ecbEncrypt.md +0 -41
- package/docs/utils/algos/functions/deflateData.md +0 -31
- package/docs/utils/algos/functions/getRandomBytes.md +0 -35
- package/docs/utils/algos/functions/hash.md +0 -41
- package/docs/utils/algos/functions/inflateData.md +0 -35
- package/docs/utils/algos/functions/md5.md +0 -31
- package/docs/utils/algos/functions/sha1.md +0 -31
- package/docs/utils/algos/functions/sha256.md +0 -31
- package/docs/utils/algos/functions/sha384.md +0 -31
- package/docs/utils/algos/functions/sha512.md +0 -31
- package/docs/utils/assert/README.md +0 -12
- package/docs/utils/assert/functions/assert.md +0 -39
- package/docs/utils/assert/functions/assertIfDefined.md +0 -46
- package/docs/utils/bytesToHex/README.md +0 -11
- package/docs/utils/bytesToHex/functions/bytesToHex.md +0 -31
- package/docs/utils/bytesToHexBytes/README.md +0 -11
- package/docs/utils/bytesToHexBytes/functions/bytesToHexBytes.md +0 -32
- package/docs/utils/bytesToString/README.md +0 -11
- package/docs/utils/bytesToString/functions/bytesToString.md +0 -31
- package/docs/utils/concatUint8Arrays/README.md +0 -11
- package/docs/utils/concatUint8Arrays/functions/concatUint8Arrays.md +0 -31
- package/docs/utils/escapeString/README.md +0 -11
- package/docs/utils/escapeString/functions/escapeString.md +0 -32
- package/docs/utils/hexBytesToBytes/README.md +0 -11
- package/docs/utils/hexBytesToBytes/functions/hexBytesToBytes.md +0 -33
- package/docs/utils/hexBytesToString/README.md +0 -11
- package/docs/utils/hexBytesToString/functions/hexBytesToString.md +0 -31
- package/docs/utils/hexToBytes/README.md +0 -11
- package/docs/utils/hexToBytes/functions/hexToBytes.md +0 -31
- package/docs/utils/padBytes/README.md +0 -11
- package/docs/utils/padBytes/functions/padBytes.md +0 -41
- package/docs/utils/predictors/README.md +0 -11
- package/docs/utils/predictors/classes/Predictor.md +0 -306
- package/docs/utils/replaceInBuffer/README.md +0 -11
- package/docs/utils/replaceInBuffer/functions/replaceInBuffer.md +0 -65
- package/docs/utils/stringToBytes/README.md +0 -11
- package/docs/utils/stringToBytes/functions/stringToBytes.md +0 -32
- package/docs/utils/stringToHexBytes/README.md +0 -11
- package/docs/utils/stringToHexBytes/functions/stringToHexBytes.md +0 -33
- package/docs/utils/unescapeString/README.md +0 -11
- package/docs/utils/unescapeString/functions/unescapeString.md +0 -34
- package/examples/001-create-pdf.ts +0 -112
- package/examples/002-create-encrypted-pdf.ts +0 -121
- package/examples/003-sign-pdf.ts +0 -347
- package/examples/004-incremental-update.ts +0 -206
- package/examples/005-modify-acroform.ts +0 -374
- package/examples/006-tokeniser-example.ts +0 -131
- package/examples/007-decoder-example.ts +0 -197
- package/packages/pdf-lite/README.md +0 -3
- package/packages/pdf-lite/node_modules/.bin/playwright +0 -16
- package/packages/pdf-lite/node_modules/.bin/tsc +0 -16
- package/packages/pdf-lite/node_modules/.bin/tsserver +0 -16
- package/packages/pdf-lite/node_modules/.bin/vitest +0 -16
- package/packages/pdf-lite/package.json +0 -68
- package/packages/pdf-lite/scripts/create-encryption-tests.sh +0 -41
- package/packages/pdf-lite/scripts/gen-signing-keys.sh +0 -290
- package/packages/pdf-lite/scripts/generate-all-signing-keys.sh +0 -70
- package/packages/pdf-lite/src/core/decoder.ts +0 -454
- package/packages/pdf-lite/src/core/index.ts +0 -2
- package/packages/pdf-lite/src/core/objects/pdf-array.ts +0 -54
- package/packages/pdf-lite/src/core/objects/pdf-boolean.ts +0 -19
- package/packages/pdf-lite/src/core/objects/pdf-comment.ts +0 -50
- package/packages/pdf-lite/src/core/objects/pdf-date.ts +0 -74
- package/packages/pdf-lite/src/core/objects/pdf-dictionary.ts +0 -171
- package/packages/pdf-lite/src/core/objects/pdf-hexadecimal.ts +0 -54
- package/packages/pdf-lite/src/core/objects/pdf-indirect-object.ts +0 -137
- package/packages/pdf-lite/src/core/objects/pdf-name.ts +0 -19
- package/packages/pdf-lite/src/core/objects/pdf-null.ts +0 -15
- package/packages/pdf-lite/src/core/objects/pdf-number.ts +0 -98
- package/packages/pdf-lite/src/core/objects/pdf-object-reference.ts +0 -30
- package/packages/pdf-lite/src/core/objects/pdf-object.ts +0 -107
- package/packages/pdf-lite/src/core/objects/pdf-start-xref.ts +0 -39
- package/packages/pdf-lite/src/core/objects/pdf-stream.ts +0 -687
- package/packages/pdf-lite/src/core/objects/pdf-string.ts +0 -38
- package/packages/pdf-lite/src/core/objects/pdf-trailer.ts +0 -57
- package/packages/pdf-lite/src/core/objects/pdf-xref-table.ts +0 -264
- package/packages/pdf-lite/src/core/streams/object-stream.ts +0 -20
- package/packages/pdf-lite/src/core/tokeniser.ts +0 -687
- package/packages/pdf-lite/src/core/tokens/boolean-token.ts +0 -20
- package/packages/pdf-lite/src/core/tokens/byte-offset-token.ts +0 -20
- package/packages/pdf-lite/src/core/tokens/comment-token.ts +0 -32
- package/packages/pdf-lite/src/core/tokens/end-array-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-dictionary-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-object-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-stream-token.ts +0 -11
- package/packages/pdf-lite/src/core/tokens/hexadecimal-token.ts +0 -22
- package/packages/pdf-lite/src/core/tokens/name-token.ts +0 -19
- package/packages/pdf-lite/src/core/tokens/null-token.ts +0 -9
- package/packages/pdf-lite/src/core/tokens/number-token.ts +0 -164
- package/packages/pdf-lite/src/core/tokens/object-reference-token.ts +0 -24
- package/packages/pdf-lite/src/core/tokens/start-array-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/start-dictionary-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/start-object-token.ts +0 -28
- package/packages/pdf-lite/src/core/tokens/start-stream-token.ts +0 -52
- package/packages/pdf-lite/src/core/tokens/start-xref-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/stream-chunk-token.ts +0 -8
- package/packages/pdf-lite/src/core/tokens/string-token.ts +0 -17
- package/packages/pdf-lite/src/core/tokens/token.ts +0 -43
- package/packages/pdf-lite/src/core/tokens/trailer-token.ts +0 -12
- package/packages/pdf-lite/src/core/tokens/whitespace-token.ts +0 -43
- package/packages/pdf-lite/src/core/tokens/xref-table-entry-token.ts +0 -65
- package/packages/pdf-lite/src/core/tokens/xref-table-section-start-token.ts +0 -31
- package/packages/pdf-lite/src/core/tokens/xref-table-start-token.ts +0 -13
- package/packages/pdf-lite/src/crypto/key-derivation/key-derivation-aes256.ts +0 -213
- package/packages/pdf-lite/src/crypto/types.ts +0 -6
- package/packages/pdf-lite/src/filters/lzw.ts +0 -144
- package/packages/pdf-lite/src/index.ts +0 -4
- package/packages/pdf-lite/src/pdf/index.ts +0 -4
- package/packages/pdf-lite/src/pdf/pdf-xref-lookup.ts +0 -527
- package/packages/pdf-lite/src/security/handlers/base.ts +0 -625
- package/packages/pdf-lite/src/security/handlers/pubSec.ts +0 -413
- package/packages/pdf-lite/src/security/handlers/utils.ts +0 -304
- package/packages/pdf-lite/src/security/handlers/v1.ts +0 -225
- package/packages/pdf-lite/src/security/handlers/v4.ts +0 -379
- package/packages/pdf-lite/src/security/handlers/v5.ts +0 -298
- package/packages/pdf-lite/src/signing/document-security-store.ts +0 -224
- package/packages/pdf-lite/src/signing/index.ts +0 -3
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-detached.ts +0 -154
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-sha1.ts +0 -161
- package/packages/pdf-lite/src/signing/signatures/adbe-x509-rsa-sha1.ts +0 -106
- package/packages/pdf-lite/src/signing/signatures/base.ts +0 -229
- package/packages/pdf-lite/src/signing/signatures/etsi-cades-detached.ts +0 -229
- package/packages/pdf-lite/src/signing/signatures/index.ts +0 -6
- package/packages/pdf-lite/src/signing/signer.ts +0 -120
- package/packages/pdf-lite/src/types.ts +0 -44
- package/packages/pdf-lite/src/utils/escapeString.ts +0 -49
- package/packages/pdf-lite/src/utils/unescapeString.ts +0 -123
- package/packages/pdf-lite/test/acceptance/__snapshots__/versions.node.test.ts.snap +0 -60766
- package/packages/pdf-lite/test/acceptance/fixtures/1.3/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-128.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-256.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-128.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-40.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.5/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.6/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.7/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-128.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-256.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-128.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-40.pdf +0 -44
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic.pdf +0 -79
- package/packages/pdf-lite/test/acceptance/versions.node.test.ts +0 -41
- package/packages/pdf-lite/test/unit/__snapshots__/decoder.node.test.ts.snap +0 -86947
- package/packages/pdf-lite/test/unit/__snapshots__/tokeniser.node.test.ts.snap +0 -131829
- package/packages/pdf-lite/test/unit/ciphers.test.ts +0 -61
- package/packages/pdf-lite/test/unit/decoder.node.test.ts +0 -21
- package/packages/pdf-lite/test/unit/decoder.test.ts +0 -567
- package/packages/pdf-lite/test/unit/filters.test.ts +0 -67
- package/packages/pdf-lite/test/unit/fixtures/basic.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-128.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-256.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-128.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-40.pdf +0 -43
- package/packages/pdf-lite/test/unit/fixtures/protectedAdobeLivecycle.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/rsa-2048/index.ts +0 -187
- package/packages/pdf-lite/test/unit/fixtures/template.pdf +0 -0
- package/packages/pdf-lite/test/unit/incremental-update.test.ts +0 -0
- package/packages/pdf-lite/test/unit/objects.test.ts +0 -0
- package/packages/pdf-lite/test/unit/pdf-document-signing.test.ts +0 -0
- package/packages/pdf-lite/test/unit/pdf-revision.test.ts +0 -195
- package/packages/pdf-lite/test/unit/pdf.browser.test.ts +0 -0
- package/packages/pdf-lite/test/unit/predictors.test.ts +0 -226
- package/packages/pdf-lite/test/unit/ref.test.ts +0 -158
- package/packages/pdf-lite/test/unit/security-handlers.test.ts +0 -645
- package/packages/pdf-lite/test/unit/serializer.test.ts +0 -81
- package/packages/pdf-lite/test/unit/signature-objects.test.ts +0 -814
- package/packages/pdf-lite/test/unit/string-escaping.test.ts +0 -84
- package/packages/pdf-lite/test/unit/tokeniser.node.test.ts +0 -38
- package/packages/pdf-lite/test/unit/tokeniser.test.ts +0 -1213
- package/packages/pdf-lite/test/unit/utils.test.ts +0 -248
- package/packages/pdf-lite/test/unit/xref-lookup.test.ts +0 -72
- package/packages/pdf-lite/tsconfig.json +0 -4
- package/packages/pdf-lite/tsconfig.prod.json +0 -8
- package/packages/pdf-lite/typedoc.json +0 -14
- package/packages/pdf-lite/vitest.config.ts +0 -43
- package/pnpm-workspace.yaml +0 -2
- package/renovate.json +0 -34
- package/scripts/build-examples.ts +0 -30
- package/scripts/bump-version.sh +0 -56
- package/scripts/gen-html-docs.sh +0 -21
- package/scripts/gen-md-docs.sh +0 -15
- package/scripts/prepare-release.sh +0 -33
- package/tsconfig.json +0 -22
- package/tsconfig.prod.json +0 -12
- package/typedoc.json +0 -34
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PdfObject } from './objects/pdf-object.js';
|
|
2
|
+
import { PdfToken } from './tokens/token.js';
|
|
3
|
+
import { IncrementalParser } from './incremental-parser.js';
|
|
4
|
+
/**
|
|
5
|
+
* Decodes PDF tokens into PDF objects.
|
|
6
|
+
* Handles parsing of all PDF object types including dictionaries, arrays, streams, and xref tables.
|
|
7
|
+
*/
|
|
8
|
+
export declare class PdfDecoder extends IncrementalParser<PdfToken, PdfObject> {
|
|
9
|
+
private ignoreWhitespace;
|
|
10
|
+
private maxBufferSizeBytes;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new PDF decoder.
|
|
13
|
+
*
|
|
14
|
+
* @param options - Configuration options
|
|
15
|
+
* @param options.ignoreWhitespace - If true, whitespace tokens are ignored
|
|
16
|
+
* @param options.maxBufferSizeBytes - Maximum buffer size before compaction (default: 10MB)
|
|
17
|
+
*/
|
|
18
|
+
constructor(options?: {
|
|
19
|
+
ignoreWhitespace?: boolean;
|
|
20
|
+
maxBufferSizeBytes?: number;
|
|
21
|
+
});
|
|
22
|
+
private nextName;
|
|
23
|
+
private nextIndirectObject;
|
|
24
|
+
private nextValue;
|
|
25
|
+
private nextDictionary;
|
|
26
|
+
private nextArray;
|
|
27
|
+
private nextStream;
|
|
28
|
+
private nextComment;
|
|
29
|
+
private nextPrimitive;
|
|
30
|
+
private nextExtraTokens;
|
|
31
|
+
private nextXRefTable;
|
|
32
|
+
private nextTrailer;
|
|
33
|
+
private nextStartXRef;
|
|
34
|
+
private nextObject;
|
|
35
|
+
private static isPrimitive;
|
|
36
|
+
protected bufferSize(): number;
|
|
37
|
+
protected canCompact(): boolean;
|
|
38
|
+
protected parse(): PdfObject;
|
|
39
|
+
}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { PdfStartObjectToken } from './tokens/start-object-token.js';
|
|
2
|
+
import { PdfIndirectObject } from './objects/pdf-indirect-object.js';
|
|
3
|
+
import { PdfDictionary } from './objects/pdf-dictionary.js';
|
|
4
|
+
import { PdfEndObjectToken } from './tokens/end-object-token.js';
|
|
5
|
+
import { PdfStartDictionaryToken } from './tokens/start-dictionary-token.js';
|
|
6
|
+
import { PdfArray } from './objects/pdf-array.js';
|
|
7
|
+
import { PdfEndDictionaryToken } from './tokens/end-dictionary-token.js';
|
|
8
|
+
import { PdfNumber } from './objects/pdf-number.js';
|
|
9
|
+
import { PdfObjectReference } from './objects/pdf-object-reference.js';
|
|
10
|
+
import { PdfTrailer } from './objects/pdf-trailer.js';
|
|
11
|
+
import { PdfHexadecimal } from './objects/pdf-hexadecimal.js';
|
|
12
|
+
import { PdfStartArrayToken } from './tokens/start-array-token.js';
|
|
13
|
+
import { PdfEndArrayToken } from './tokens/end-array-token.js';
|
|
14
|
+
import { PdfNameToken } from './tokens/name-token.js';
|
|
15
|
+
import { PdfName } from './objects/pdf-name.js';
|
|
16
|
+
import { PdfBoolean } from './objects/pdf-boolean.js';
|
|
17
|
+
import { PdfNull } from './objects/pdf-null.js';
|
|
18
|
+
import { PdfString } from './objects/pdf-string.js';
|
|
19
|
+
import { PdfNumberToken } from './tokens/number-token.js';
|
|
20
|
+
import { PdfBooleanToken } from './tokens/boolean-token.js';
|
|
21
|
+
import { PdfHexadecimalToken } from './tokens/hexadecimal-token.js';
|
|
22
|
+
import { PdfNullToken } from './tokens/null-token.js';
|
|
23
|
+
import { PdfObjectReferenceToken } from './tokens/object-reference-token.js';
|
|
24
|
+
import { PdfStringToken } from './tokens/string-token.js';
|
|
25
|
+
import { PdfStartStreamToken } from './tokens/start-stream-token.js';
|
|
26
|
+
import { PdfStream } from './objects/pdf-stream.js';
|
|
27
|
+
import { PdfEndStreamToken } from './tokens/end-stream-token.js';
|
|
28
|
+
import { PdfStreamChunkToken } from './tokens/stream-chunk-token.js';
|
|
29
|
+
import { PdfXRefTableStartToken } from './tokens/xref-table-start-token.js';
|
|
30
|
+
import { PdfXRefTable, PdfXRefTableEntry, PdfXRefTableSectionHeader, } from './objects/pdf-xref-table.js';
|
|
31
|
+
import { PdfXRefTableSectionStartToken } from './tokens/xref-table-section-start-token.js';
|
|
32
|
+
import { PdfXRefTableEntryToken } from './tokens/xref-table-entry-token.js';
|
|
33
|
+
import { PdfTrailerToken } from './tokens/trailer-token.js';
|
|
34
|
+
import { PdfCommentToken } from './tokens/comment-token.js';
|
|
35
|
+
import { PdfComment } from './objects/pdf-comment.js';
|
|
36
|
+
import { PdfStartXRefToken } from './tokens/start-xref-token.js';
|
|
37
|
+
import { PdfStartXRef } from './objects/pdf-start-xref.js';
|
|
38
|
+
import { PdfWhitespaceToken } from './tokens/whitespace-token.js';
|
|
39
|
+
import { IncrementalParser } from './incremental-parser.js';
|
|
40
|
+
import { concatUint8Arrays } from '../utils/concatUint8Arrays.js';
|
|
41
|
+
const DEFAULT_MAX_BUFFER_SIZE_BYTES = 10 * 1024 * 1024; // 10 MB
|
|
42
|
+
/**
|
|
43
|
+
* Decodes PDF tokens into PDF objects.
|
|
44
|
+
* Handles parsing of all PDF object types including dictionaries, arrays, streams, and xref tables.
|
|
45
|
+
*/
|
|
46
|
+
export class PdfDecoder extends IncrementalParser {
|
|
47
|
+
ignoreWhitespace = false;
|
|
48
|
+
maxBufferSizeBytes = DEFAULT_MAX_BUFFER_SIZE_BYTES;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a new PDF decoder.
|
|
51
|
+
*
|
|
52
|
+
* @param options - Configuration options
|
|
53
|
+
* @param options.ignoreWhitespace - If true, whitespace tokens are ignored
|
|
54
|
+
* @param options.maxBufferSizeBytes - Maximum buffer size before compaction (default: 10MB)
|
|
55
|
+
*/
|
|
56
|
+
constructor(options) {
|
|
57
|
+
super();
|
|
58
|
+
this.ignoreWhitespace = options?.ignoreWhitespace ?? false;
|
|
59
|
+
this.maxBufferSizeBytes =
|
|
60
|
+
options?.maxBufferSizeBytes ?? DEFAULT_MAX_BUFFER_SIZE_BYTES;
|
|
61
|
+
}
|
|
62
|
+
nextName() {
|
|
63
|
+
const preTokens = this.nextExtraTokens();
|
|
64
|
+
const token = this.expect(PdfNameToken);
|
|
65
|
+
const postTokens = this.nextExtraTokens();
|
|
66
|
+
const name = new PdfName(token.name);
|
|
67
|
+
name.preTokens = preTokens;
|
|
68
|
+
name.postTokens = postTokens;
|
|
69
|
+
return name;
|
|
70
|
+
}
|
|
71
|
+
nextIndirectObject() {
|
|
72
|
+
const preTokens = this.nextExtraTokens();
|
|
73
|
+
const startToken = this.expect(PdfStartObjectToken);
|
|
74
|
+
const contentPreTokens = this.nextExtraTokens();
|
|
75
|
+
const content = this.nextValue();
|
|
76
|
+
content.preTokens = contentPreTokens;
|
|
77
|
+
this.expect(PdfEndObjectToken);
|
|
78
|
+
const postTokens = this.nextExtraTokens();
|
|
79
|
+
const obj = new PdfIndirectObject({
|
|
80
|
+
objectNumber: startToken.objectNumber,
|
|
81
|
+
generationNumber: startToken.generationNumber,
|
|
82
|
+
content,
|
|
83
|
+
offset: startToken.byteOffset,
|
|
84
|
+
});
|
|
85
|
+
obj.preTokens = preTokens;
|
|
86
|
+
obj.postTokens = postTokens;
|
|
87
|
+
return obj;
|
|
88
|
+
}
|
|
89
|
+
nextValue() {
|
|
90
|
+
return this.nextObject();
|
|
91
|
+
}
|
|
92
|
+
nextDictionary() {
|
|
93
|
+
const preTokens = this.nextExtraTokens();
|
|
94
|
+
this.expect(PdfStartDictionaryToken);
|
|
95
|
+
const dictionary = new PdfDictionary();
|
|
96
|
+
dictionary.innerTokens = this.nextExtraTokens();
|
|
97
|
+
while (true) {
|
|
98
|
+
let next = this.peek();
|
|
99
|
+
if (!next || next instanceof PdfEndDictionaryToken) {
|
|
100
|
+
this.next(); // consume end token
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
const name = this.nextName();
|
|
104
|
+
const value = this.nextValue();
|
|
105
|
+
dictionary.set(name, value);
|
|
106
|
+
}
|
|
107
|
+
const postTokens = this.nextExtraTokens();
|
|
108
|
+
dictionary.setModified(false);
|
|
109
|
+
dictionary.preTokens = preTokens;
|
|
110
|
+
dictionary.postTokens = postTokens;
|
|
111
|
+
if (this.peek() instanceof PdfStartStreamToken) {
|
|
112
|
+
const stream = this.nextStream(dictionary);
|
|
113
|
+
return stream;
|
|
114
|
+
}
|
|
115
|
+
return dictionary;
|
|
116
|
+
}
|
|
117
|
+
nextArray() {
|
|
118
|
+
const preTokens = this.nextExtraTokens();
|
|
119
|
+
this.expect(PdfStartArrayToken);
|
|
120
|
+
const array = new PdfArray();
|
|
121
|
+
const innerTokens = this.nextExtraTokens();
|
|
122
|
+
array.innerTokens = innerTokens;
|
|
123
|
+
while (true) {
|
|
124
|
+
const next = this.peek();
|
|
125
|
+
if (!next || next instanceof PdfEndArrayToken) {
|
|
126
|
+
this.next(); // consume end token
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
array.push(this.nextValue());
|
|
130
|
+
}
|
|
131
|
+
const postTokens = this.nextExtraTokens();
|
|
132
|
+
array.preTokens = preTokens;
|
|
133
|
+
array.postTokens = postTokens;
|
|
134
|
+
return array;
|
|
135
|
+
}
|
|
136
|
+
nextStream(header) {
|
|
137
|
+
const preTokens = this.nextExtraTokens();
|
|
138
|
+
const startStreamToken = this.expect(PdfStartStreamToken);
|
|
139
|
+
const chunks = [];
|
|
140
|
+
const preStreamTokens = startStreamToken.getTrailingWhitespaceTokens();
|
|
141
|
+
while (this.peek() instanceof PdfStreamChunkToken) {
|
|
142
|
+
const chunk = this.expect(PdfStreamChunkToken);
|
|
143
|
+
chunks.push(chunk.toBytes());
|
|
144
|
+
}
|
|
145
|
+
const postStreamDataTokens = this.nextExtraTokens();
|
|
146
|
+
this.expect(PdfEndStreamToken);
|
|
147
|
+
const postTokens = this.nextExtraTokens();
|
|
148
|
+
const stream = new PdfStream({
|
|
149
|
+
header,
|
|
150
|
+
original: concatUint8Arrays(...chunks),
|
|
151
|
+
});
|
|
152
|
+
stream.preStreamDataTokens = preStreamTokens;
|
|
153
|
+
stream.postStreamDataTokens = postStreamDataTokens;
|
|
154
|
+
stream.preTokens = preTokens;
|
|
155
|
+
stream.postTokens = postTokens;
|
|
156
|
+
return stream;
|
|
157
|
+
}
|
|
158
|
+
nextComment() {
|
|
159
|
+
const token = this.expect(PdfCommentToken);
|
|
160
|
+
const comment = new PdfComment(token.comment);
|
|
161
|
+
return comment;
|
|
162
|
+
}
|
|
163
|
+
nextPrimitive() {
|
|
164
|
+
const preTokens = this.nextExtraTokens();
|
|
165
|
+
const token = this.next(); // consume the primitive token
|
|
166
|
+
if (!token) {
|
|
167
|
+
throw new Error('Expected primitive token but got EOF');
|
|
168
|
+
}
|
|
169
|
+
const postTokens = this.nextExtraTokens();
|
|
170
|
+
let out;
|
|
171
|
+
if (token instanceof PdfNumberToken) {
|
|
172
|
+
out = new PdfNumber({
|
|
173
|
+
value: token.value,
|
|
174
|
+
padTo: token.padTo,
|
|
175
|
+
decimalPlaces: token.decimalPlaces,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
else if (token instanceof PdfBooleanToken) {
|
|
179
|
+
out = new PdfBoolean(token.value);
|
|
180
|
+
}
|
|
181
|
+
else if (token instanceof PdfHexadecimalToken) {
|
|
182
|
+
out = new PdfHexadecimal(token.raw, 'hex');
|
|
183
|
+
}
|
|
184
|
+
else if (token instanceof PdfNullToken) {
|
|
185
|
+
out = new PdfNull();
|
|
186
|
+
}
|
|
187
|
+
else if (token instanceof PdfObjectReferenceToken) {
|
|
188
|
+
out = new PdfObjectReference(token.objectNumber, token.generationNumber);
|
|
189
|
+
}
|
|
190
|
+
else if (token instanceof PdfStringToken) {
|
|
191
|
+
out = new PdfString(token.value);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
throw new Error(`Unknown primitive token type: ${token.type}`);
|
|
195
|
+
}
|
|
196
|
+
out.preTokens = preTokens;
|
|
197
|
+
out.postTokens = postTokens;
|
|
198
|
+
return out;
|
|
199
|
+
}
|
|
200
|
+
nextExtraTokens(root = false) {
|
|
201
|
+
const tokens = [];
|
|
202
|
+
while (true) {
|
|
203
|
+
if (this.atEof()) {
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
const token = this.peek();
|
|
207
|
+
if (!token) {
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
if (this.ignoreWhitespace && token instanceof PdfWhitespaceToken) {
|
|
211
|
+
this.next(); // consume whitespace
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
if (root && token instanceof PdfCommentToken) {
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
if (!(token instanceof PdfWhitespaceToken ||
|
|
218
|
+
token instanceof PdfCommentToken)) {
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
tokens.push(this.next());
|
|
222
|
+
}
|
|
223
|
+
return tokens;
|
|
224
|
+
}
|
|
225
|
+
nextXRefTable() {
|
|
226
|
+
const preTokens = this.nextExtraTokens();
|
|
227
|
+
const xrefToken = this.expect(PdfXRefTableStartToken);
|
|
228
|
+
if (xrefToken.byteOffset === undefined) {
|
|
229
|
+
throw new Error('XRef table token missing byte offset');
|
|
230
|
+
}
|
|
231
|
+
const xrefTable = new PdfXRefTable({
|
|
232
|
+
offset: xrefToken.byteOffset,
|
|
233
|
+
});
|
|
234
|
+
while (true) {
|
|
235
|
+
const preTokens = this.nextExtraTokens();
|
|
236
|
+
const next = this.peek();
|
|
237
|
+
if (!next) {
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
if (next instanceof PdfXRefTableSectionStartToken) {
|
|
241
|
+
const sectionToken = this.expect(PdfXRefTableSectionStartToken);
|
|
242
|
+
const postTokens = this.nextExtraTokens();
|
|
243
|
+
const section = new PdfXRefTableSectionHeader({
|
|
244
|
+
startObjectNumber: sectionToken.start.value,
|
|
245
|
+
entryCount: sectionToken.count.value,
|
|
246
|
+
});
|
|
247
|
+
section.startObjectNumber.setModified(false);
|
|
248
|
+
section.entryCount.setModified(false);
|
|
249
|
+
section.setModified(false);
|
|
250
|
+
section.preTokens = preTokens;
|
|
251
|
+
section.postTokens = postTokens;
|
|
252
|
+
xrefTable.sections.push(section);
|
|
253
|
+
}
|
|
254
|
+
else if (next instanceof PdfXRefTableEntryToken) {
|
|
255
|
+
const entryToken = this.expect(PdfXRefTableEntryToken);
|
|
256
|
+
const postTokens = this.nextExtraTokens();
|
|
257
|
+
const entry = new PdfXRefTableEntry({
|
|
258
|
+
objectNumber: entryToken.objectNumber.value,
|
|
259
|
+
byteOffset: entryToken.offset.ref,
|
|
260
|
+
generationNumber: entryToken.generationNumber.value,
|
|
261
|
+
inUse: entryToken.inUse,
|
|
262
|
+
});
|
|
263
|
+
entry.objectNumber.setModified(false);
|
|
264
|
+
entry.generationNumber.setModified(false);
|
|
265
|
+
entry.byteOffset.setModified(false);
|
|
266
|
+
entry.setModified(false);
|
|
267
|
+
entry.preTokens = preTokens;
|
|
268
|
+
entry.postTokens = postTokens;
|
|
269
|
+
xrefTable.entries.push(entry);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
xrefTable.preTokens = preTokens;
|
|
276
|
+
xrefTable.postTokens = this.nextExtraTokens();
|
|
277
|
+
return xrefTable;
|
|
278
|
+
}
|
|
279
|
+
nextTrailer() {
|
|
280
|
+
const preTokens = this.nextExtraTokens();
|
|
281
|
+
const trailerToken = this.expect(PdfTrailerToken);
|
|
282
|
+
const dictionary = this.nextDictionary();
|
|
283
|
+
const postTokens = this.nextExtraTokens();
|
|
284
|
+
const trailer = new PdfTrailer(dictionary);
|
|
285
|
+
if (trailerToken.byteOffset === undefined) {
|
|
286
|
+
throw new Error('Trailer token missing byte offset');
|
|
287
|
+
}
|
|
288
|
+
trailer.offset.update(trailerToken.byteOffset);
|
|
289
|
+
trailer.offset.isModified = false;
|
|
290
|
+
trailer.preTokens = preTokens;
|
|
291
|
+
trailer.postTokens = postTokens;
|
|
292
|
+
return trailer;
|
|
293
|
+
}
|
|
294
|
+
nextStartXRef() {
|
|
295
|
+
const preTokens = this.nextExtraTokens();
|
|
296
|
+
this.expect(PdfStartXRefToken);
|
|
297
|
+
const preOffsetTokens = this.nextExtraTokens();
|
|
298
|
+
const offsetToken = this.expect(PdfNumberToken);
|
|
299
|
+
const offset = new PdfNumber(offsetToken.value);
|
|
300
|
+
offset.setModified(false);
|
|
301
|
+
const startXref = new PdfStartXRef(offset);
|
|
302
|
+
startXref.preTokens = preTokens;
|
|
303
|
+
offset.preTokens = preOffsetTokens;
|
|
304
|
+
return startXref;
|
|
305
|
+
}
|
|
306
|
+
nextObject(root = false) {
|
|
307
|
+
const preTokens = this.nextExtraTokens(root);
|
|
308
|
+
const token = this.peek();
|
|
309
|
+
if (!token) {
|
|
310
|
+
// This should never happen as atEof should be checked before calling nextObject
|
|
311
|
+
throw new Error('Expected token but did not find one');
|
|
312
|
+
}
|
|
313
|
+
let out;
|
|
314
|
+
if (token instanceof PdfStartDictionaryToken) {
|
|
315
|
+
out = this.nextDictionary();
|
|
316
|
+
}
|
|
317
|
+
else if (token instanceof PdfStartObjectToken) {
|
|
318
|
+
out = this.nextIndirectObject();
|
|
319
|
+
}
|
|
320
|
+
else if (token instanceof PdfStartArrayToken) {
|
|
321
|
+
out = this.nextArray();
|
|
322
|
+
}
|
|
323
|
+
else if (token instanceof PdfNameToken) {
|
|
324
|
+
out = this.nextName();
|
|
325
|
+
}
|
|
326
|
+
else if (PdfDecoder.isPrimitive(token)) {
|
|
327
|
+
out = this.nextPrimitive();
|
|
328
|
+
}
|
|
329
|
+
else if (token instanceof PdfCommentToken) {
|
|
330
|
+
out = this.nextComment();
|
|
331
|
+
}
|
|
332
|
+
else if (token instanceof PdfXRefTableStartToken) {
|
|
333
|
+
out = this.nextXRefTable();
|
|
334
|
+
}
|
|
335
|
+
else if (token instanceof PdfTrailerToken) {
|
|
336
|
+
out = this.nextTrailer();
|
|
337
|
+
}
|
|
338
|
+
else if (token instanceof PdfStartXRefToken) {
|
|
339
|
+
out = this.nextStartXRef();
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
throw new Error(`Unknown token type: ${token.type}`);
|
|
343
|
+
}
|
|
344
|
+
const postTokens = this.nextExtraTokens(root);
|
|
345
|
+
out.preTokens = [...preTokens, ...(out.preTokens ?? [])];
|
|
346
|
+
out.postTokens = [...(out.postTokens ?? []), ...postTokens];
|
|
347
|
+
out.setModified(false);
|
|
348
|
+
return out;
|
|
349
|
+
}
|
|
350
|
+
static isPrimitive(token) {
|
|
351
|
+
return (token instanceof PdfNumberToken ||
|
|
352
|
+
token instanceof PdfBooleanToken ||
|
|
353
|
+
token instanceof PdfHexadecimalToken ||
|
|
354
|
+
token instanceof PdfNullToken ||
|
|
355
|
+
token instanceof PdfObjectReferenceToken ||
|
|
356
|
+
token instanceof PdfStringToken);
|
|
357
|
+
}
|
|
358
|
+
bufferSize() {
|
|
359
|
+
return this.buffer.reduce((acc, obj) => acc + obj.byteLength, 0);
|
|
360
|
+
}
|
|
361
|
+
canCompact() {
|
|
362
|
+
return (this.bufferIndex > 50 && this.bufferSize() > this.maxBufferSizeBytes);
|
|
363
|
+
}
|
|
364
|
+
parse() {
|
|
365
|
+
return this.nextObject(true);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ByteArray } from '../types';
|
|
2
|
+
import { PdfObject } from './objects/pdf-object';
|
|
3
|
+
/**
|
|
4
|
+
* Converts an iterable of byte arrays into PDF objects.
|
|
5
|
+
* Processes bytes through tokenization and decoding.
|
|
6
|
+
*
|
|
7
|
+
* @param bytes - Iterable of byte arrays to process
|
|
8
|
+
* @returns A generator yielding parsed PDF objects
|
|
9
|
+
*/
|
|
10
|
+
export declare function bytesToPdfObjects(bytes: Iterable<ByteArray>): Generator<PdfObject>;
|
|
11
|
+
/**
|
|
12
|
+
* Converts a string containing PDF content into PDF objects.
|
|
13
|
+
*
|
|
14
|
+
* @param str - The string to parse as PDF content
|
|
15
|
+
* @returns A generator yielding parsed PDF objects
|
|
16
|
+
*/
|
|
17
|
+
export declare function stringToPdfObjects(str: string): Generator<PdfObject>;
|
|
18
|
+
/**
|
|
19
|
+
* Decodes an iterable of byte arrays into PDF objects.
|
|
20
|
+
* Allows configuring whitespace handling.
|
|
21
|
+
*
|
|
22
|
+
* @param input - Iterable of byte arrays to decode
|
|
23
|
+
* @param options - Configuration options
|
|
24
|
+
* @param options.ignoreWhitespace - If true, whitespace tokens are ignored
|
|
25
|
+
* @returns A generator yielding parsed PDF objects
|
|
26
|
+
*/
|
|
27
|
+
export declare function pdfDecoder(input: Iterable<ByteArray>, options?: {
|
|
28
|
+
ignoreWhitespace?: boolean;
|
|
29
|
+
}): Generator<PdfObject, void, any>;
|
|
30
|
+
/**
|
|
31
|
+
* Asynchronously decodes byte arrays into PDF objects.
|
|
32
|
+
* Supports both async and sync iterables for streaming PDF parsing.
|
|
33
|
+
*
|
|
34
|
+
* @param input - Async or sync iterable of byte arrays
|
|
35
|
+
* @returns An async generator yielding parsed PDF objects
|
|
36
|
+
*/
|
|
37
|
+
export declare function pdfDecoderAsync(input: AsyncIterable<ByteArray> | Iterable<ByteArray>): AsyncGenerator<PdfObject>;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { PdfObject } from './objects/pdf-object'
|
|
5
|
-
import { PdfByteStreamTokeniser } from './tokeniser'
|
|
6
|
-
|
|
1
|
+
import { stringToBytes } from '../utils/stringToBytes';
|
|
2
|
+
import { PdfDecoder } from './decoder';
|
|
3
|
+
import { PdfByteStreamTokeniser } from './tokeniser';
|
|
7
4
|
/**
|
|
8
5
|
* Converts an iterable of byte arrays into PDF objects.
|
|
9
6
|
* Processes bytes through tokenization and decoding.
|
|
@@ -11,47 +8,37 @@ import { PdfByteStreamTokeniser } from './tokeniser'
|
|
|
11
8
|
* @param bytes - Iterable of byte arrays to process
|
|
12
9
|
* @returns A generator yielding parsed PDF objects
|
|
13
10
|
*/
|
|
14
|
-
export function* bytesToPdfObjects(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const tokeniser = new PdfByteStreamTokeniser()
|
|
18
|
-
const decoder = new PdfDecoder()
|
|
19
|
-
|
|
11
|
+
export function* bytesToPdfObjects(bytes) {
|
|
12
|
+
const tokeniser = new PdfByteStreamTokeniser();
|
|
13
|
+
const decoder = new PdfDecoder();
|
|
20
14
|
for (const chunk of bytes) {
|
|
21
|
-
tokeniser.feedBytes(chunk)
|
|
22
|
-
|
|
15
|
+
tokeniser.feedBytes(chunk);
|
|
23
16
|
for (const token of tokeniser.nextItems()) {
|
|
24
|
-
decoder.feed(token)
|
|
25
|
-
|
|
17
|
+
decoder.feed(token);
|
|
26
18
|
for (const obj of decoder.nextItems()) {
|
|
27
|
-
yield obj
|
|
19
|
+
yield obj;
|
|
28
20
|
}
|
|
29
21
|
}
|
|
30
22
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
decoder.eof = true
|
|
34
|
-
|
|
23
|
+
tokeniser.eof = true;
|
|
24
|
+
decoder.eof = true;
|
|
35
25
|
for (const token of tokeniser.nextItems()) {
|
|
36
|
-
decoder.feed(token)
|
|
26
|
+
decoder.feed(token);
|
|
37
27
|
}
|
|
38
|
-
|
|
39
28
|
for (const obj of decoder.nextItems()) {
|
|
40
|
-
yield obj
|
|
29
|
+
yield obj;
|
|
41
30
|
}
|
|
42
31
|
}
|
|
43
|
-
|
|
44
32
|
/**
|
|
45
33
|
* Converts a string containing PDF content into PDF objects.
|
|
46
34
|
*
|
|
47
35
|
* @param str - The string to parse as PDF content
|
|
48
36
|
* @returns A generator yielding parsed PDF objects
|
|
49
37
|
*/
|
|
50
|
-
export function* stringToPdfObjects(str
|
|
51
|
-
const bytes = stringToBytes(str)
|
|
52
|
-
yield* bytesToPdfObjects([bytes])
|
|
38
|
+
export function* stringToPdfObjects(str) {
|
|
39
|
+
const bytes = stringToBytes(str);
|
|
40
|
+
yield* bytesToPdfObjects([bytes]);
|
|
53
41
|
}
|
|
54
|
-
|
|
55
42
|
/**
|
|
56
43
|
* Decodes an iterable of byte arrays into PDF objects.
|
|
57
44
|
* Allows configuring whitespace handling.
|
|
@@ -61,35 +48,25 @@ export function* stringToPdfObjects(str: string): Generator<PdfObject> {
|
|
|
61
48
|
* @param options.ignoreWhitespace - If true, whitespace tokens are ignored
|
|
62
49
|
* @returns A generator yielding parsed PDF objects
|
|
63
50
|
*/
|
|
64
|
-
export function* pdfDecoder(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
) {
|
|
68
|
-
const decoder = new PdfDecoder(options)
|
|
69
|
-
const tokeniser = new PdfByteStreamTokeniser()
|
|
70
|
-
|
|
51
|
+
export function* pdfDecoder(input, options) {
|
|
52
|
+
const decoder = new PdfDecoder(options);
|
|
53
|
+
const tokeniser = new PdfByteStreamTokeniser();
|
|
71
54
|
for (const chunk of input) {
|
|
72
55
|
for (const byte of chunk) {
|
|
73
|
-
tokeniser.feed(byte)
|
|
56
|
+
tokeniser.feed(byte);
|
|
74
57
|
}
|
|
75
|
-
|
|
76
58
|
for (const token of tokeniser.nextItems()) {
|
|
77
|
-
decoder.feed(token)
|
|
59
|
+
decoder.feed(token);
|
|
78
60
|
}
|
|
79
|
-
|
|
80
|
-
yield* decoder.nextItems()
|
|
61
|
+
yield* decoder.nextItems();
|
|
81
62
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
decoder.eof = true
|
|
85
|
-
|
|
63
|
+
tokeniser.eof = true;
|
|
64
|
+
decoder.eof = true;
|
|
86
65
|
for (const token of tokeniser.nextItems()) {
|
|
87
|
-
decoder.feed(token)
|
|
66
|
+
decoder.feed(token);
|
|
88
67
|
}
|
|
89
|
-
|
|
90
|
-
yield* decoder.nextItems()
|
|
68
|
+
yield* decoder.nextItems();
|
|
91
69
|
}
|
|
92
|
-
|
|
93
70
|
/**
|
|
94
71
|
* Asynchronously decodes byte arrays into PDF objects.
|
|
95
72
|
* Supports both async and sync iterables for streaming PDF parsing.
|
|
@@ -97,32 +74,24 @@ export function* pdfDecoder(
|
|
|
97
74
|
* @param input - Async or sync iterable of byte arrays
|
|
98
75
|
* @returns An async generator yielding parsed PDF objects
|
|
99
76
|
*/
|
|
100
|
-
export async function* pdfDecoderAsync(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const tokeniser = new PdfByteStreamTokeniser()
|
|
104
|
-
const decoder = new PdfDecoder()
|
|
105
|
-
|
|
77
|
+
export async function* pdfDecoderAsync(input) {
|
|
78
|
+
const tokeniser = new PdfByteStreamTokeniser();
|
|
79
|
+
const decoder = new PdfDecoder();
|
|
106
80
|
for await (const chunk of input) {
|
|
107
|
-
tokeniser.feedBytes(chunk)
|
|
108
|
-
|
|
81
|
+
tokeniser.feedBytes(chunk);
|
|
109
82
|
for (const token of tokeniser.nextItems()) {
|
|
110
|
-
decoder.feed(token)
|
|
111
|
-
|
|
83
|
+
decoder.feed(token);
|
|
112
84
|
for (const obj of decoder.nextItems()) {
|
|
113
|
-
yield obj
|
|
85
|
+
yield obj;
|
|
114
86
|
}
|
|
115
87
|
}
|
|
116
88
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
decoder.eof = true
|
|
120
|
-
|
|
89
|
+
tokeniser.eof = true;
|
|
90
|
+
decoder.eof = true;
|
|
121
91
|
for (const token of tokeniser.nextItems()) {
|
|
122
|
-
decoder.feed(token)
|
|
92
|
+
decoder.feed(token);
|
|
123
93
|
}
|
|
124
|
-
|
|
125
94
|
for (const obj of decoder.nextItems()) {
|
|
126
|
-
yield obj
|
|
95
|
+
yield obj;
|
|
127
96
|
}
|
|
128
97
|
}
|