pdf-lite 1.0.1-alpha.2 → 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,37 @@
|
|
|
1
|
+
import { PdfObject } from '../core/objects/pdf-object';
|
|
2
|
+
import { ByteArray } from '../types';
|
|
3
|
+
import { PdfDocument } from './pdf-document';
|
|
4
|
+
/**
|
|
5
|
+
* A reader for parsing PDF data into PdfDocument instances.
|
|
6
|
+
* Processes streams of PDF objects and constructs documents from them.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Read PDF from file bytes
|
|
11
|
+
* const document = await PdfReader.fromBytes(fileBytes)
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare class PdfReader {
|
|
15
|
+
/** The stream of PDF objects to read from */
|
|
16
|
+
protected objectStream: AsyncIterable<PdfObject> | Iterable<PdfObject>;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a new PdfReader instance.
|
|
19
|
+
*
|
|
20
|
+
* @param objectStream - An async or sync iterable of PDF objects
|
|
21
|
+
*/
|
|
22
|
+
constructor(objectStream: AsyncIterable<PdfObject> | Iterable<PdfObject>);
|
|
23
|
+
/**
|
|
24
|
+
* Reads all objects from the stream and constructs a PdfDocument.
|
|
25
|
+
*
|
|
26
|
+
* @returns A promise that resolves to the parsed PdfDocument
|
|
27
|
+
*/
|
|
28
|
+
read(): Promise<PdfDocument>;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a PdfDocument directly from a byte stream.
|
|
31
|
+
* Convenience method that creates a reader internally.
|
|
32
|
+
*
|
|
33
|
+
* @param input - Async or sync iterable of byte arrays
|
|
34
|
+
* @returns A promise that resolves to the parsed PdfDocument
|
|
35
|
+
*/
|
|
36
|
+
static fromBytes(input: AsyncIterable<ByteArray> | Iterable<ByteArray>): Promise<PdfDocument>;
|
|
37
|
+
}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ByteArray } from '../types'
|
|
4
|
-
import { PdfDocument } from './pdf-document'
|
|
5
|
-
|
|
1
|
+
import { PdfObjectStream } from '../core/streams/object-stream';
|
|
2
|
+
import { PdfDocument } from './pdf-document';
|
|
6
3
|
/**
|
|
7
4
|
* A reader for parsing PDF data into PdfDocument instances.
|
|
8
5
|
* Processes streams of PDF objects and constructs documents from them.
|
|
@@ -15,32 +12,27 @@ import { PdfDocument } from './pdf-document'
|
|
|
15
12
|
*/
|
|
16
13
|
export class PdfReader {
|
|
17
14
|
/** The stream of PDF objects to read from */
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
objectStream;
|
|
20
16
|
/**
|
|
21
17
|
* Creates a new PdfReader instance.
|
|
22
18
|
*
|
|
23
19
|
* @param objectStream - An async or sync iterable of PDF objects
|
|
24
20
|
*/
|
|
25
|
-
constructor(objectStream
|
|
26
|
-
this.objectStream = objectStream
|
|
21
|
+
constructor(objectStream) {
|
|
22
|
+
this.objectStream = objectStream;
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
/**
|
|
30
25
|
* Reads all objects from the stream and constructs a PdfDocument.
|
|
31
26
|
*
|
|
32
27
|
* @returns A promise that resolves to the parsed PdfDocument
|
|
33
28
|
*/
|
|
34
|
-
async read()
|
|
35
|
-
const objects
|
|
36
|
-
|
|
29
|
+
async read() {
|
|
30
|
+
const objects = [];
|
|
37
31
|
for await (const obj of this.objectStream) {
|
|
38
|
-
objects.push(obj)
|
|
32
|
+
objects.push(obj);
|
|
39
33
|
}
|
|
40
|
-
|
|
41
|
-
return PdfDocument.fromObjects(objects)
|
|
34
|
+
return PdfDocument.fromObjects(objects);
|
|
42
35
|
}
|
|
43
|
-
|
|
44
36
|
/**
|
|
45
37
|
* Creates a PdfDocument directly from a byte stream.
|
|
46
38
|
* Convenience method that creates a reader internally.
|
|
@@ -48,10 +40,8 @@ export class PdfReader {
|
|
|
48
40
|
* @param input - Async or sync iterable of byte arrays
|
|
49
41
|
* @returns A promise that resolves to the parsed PdfDocument
|
|
50
42
|
*/
|
|
51
|
-
static async fromBytes(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const reader = new PdfReader(new PdfObjectStream(input))
|
|
55
|
-
return reader.read()
|
|
43
|
+
static async fromBytes(input) {
|
|
44
|
+
const reader = new PdfReader(new PdfObjectStream(input));
|
|
45
|
+
return reader.read();
|
|
56
46
|
}
|
|
57
47
|
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { PdfDictionary } from '../core/objects/pdf-dictionary';
|
|
2
|
+
import { PdfObject } from '../core/objects/pdf-object';
|
|
3
|
+
import { PdfTrailerEntries } from '../core/objects/pdf-trailer';
|
|
4
|
+
import { PdfToken } from '../core/tokens/token';
|
|
5
|
+
import { PdfXrefLookup } from './pdf-xref-lookup';
|
|
6
|
+
/**
|
|
7
|
+
* Represents a single revision of a PDF document.
|
|
8
|
+
* PDF documents can have multiple revisions for incremental updates,
|
|
9
|
+
* where each revision contains its own set of objects and cross-reference table.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PdfRevision extends PdfObject {
|
|
12
|
+
/** Objects contained in this revision */
|
|
13
|
+
objects: PdfObject[];
|
|
14
|
+
/** Cross-reference lookup table for this revision */
|
|
15
|
+
xref: PdfXrefLookup;
|
|
16
|
+
/** Whether this revision is locked (cannot be modified) */
|
|
17
|
+
locked: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new PDF revision.
|
|
20
|
+
*
|
|
21
|
+
* @param options - Configuration options for the revision
|
|
22
|
+
* @param options.objects - Initial objects for this revision
|
|
23
|
+
* @param options.prev - Previous revision or xref lookup to link to
|
|
24
|
+
* @param options.locked - Whether the revision should be locked initially
|
|
25
|
+
*/
|
|
26
|
+
constructor(options?: {
|
|
27
|
+
objects?: PdfObject[];
|
|
28
|
+
prev?: PdfXrefLookup | PdfRevision;
|
|
29
|
+
locked?: boolean;
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Links this revision to a previous revision's cross-reference table.
|
|
33
|
+
*
|
|
34
|
+
* @param xref - The previous revision's xref lookup or revision
|
|
35
|
+
*/
|
|
36
|
+
setPrev(xref: PdfXrefLookup | PdfRevision): void;
|
|
37
|
+
/**
|
|
38
|
+
* Checks if an object reference exists in this revision.
|
|
39
|
+
*
|
|
40
|
+
* @param object - The object to check for
|
|
41
|
+
* @returns True if the exact object instance exists in this revision
|
|
42
|
+
*/
|
|
43
|
+
contains(object: PdfObject): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Checks if an equivalent object exists in this revision (by value equality).
|
|
46
|
+
*
|
|
47
|
+
* @param object - The object to check for
|
|
48
|
+
* @returns True if an equal object exists in this revision
|
|
49
|
+
*/
|
|
50
|
+
exists(object: PdfObject): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Adds objects to the beginning of the revision's object list.
|
|
53
|
+
*
|
|
54
|
+
* @param objects - Objects to add at the beginning
|
|
55
|
+
*/
|
|
56
|
+
unshift(...objects: PdfObject[]): void;
|
|
57
|
+
/**
|
|
58
|
+
* Adds objects to the revision.
|
|
59
|
+
*
|
|
60
|
+
* @param objects - Objects to add to the revision
|
|
61
|
+
*/
|
|
62
|
+
addObject(...objects: PdfObject[]): void;
|
|
63
|
+
/**
|
|
64
|
+
* Adds an object at a specific position in the revision.
|
|
65
|
+
*
|
|
66
|
+
* @param object - The object to add
|
|
67
|
+
* @param index - Position to insert at (number) or object to insert before
|
|
68
|
+
* @throws Error if the revision is locked or index is out of bounds
|
|
69
|
+
*/
|
|
70
|
+
addObjectAt(object: PdfObject, index?: number | PdfObject): void;
|
|
71
|
+
/**
|
|
72
|
+
* Removes objects from the revision.
|
|
73
|
+
*
|
|
74
|
+
* @param objects - Objects to remove from the revision
|
|
75
|
+
* @throws Error if the revision is locked
|
|
76
|
+
*/
|
|
77
|
+
deleteObject(...objects: PdfObject[]): void;
|
|
78
|
+
isModified(): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Updates the revision by sorting objects and updating the xref table.
|
|
81
|
+
*/
|
|
82
|
+
update(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Sorts objects by their insertion order.
|
|
85
|
+
* Indirect objects are placed before other objects.
|
|
86
|
+
*/
|
|
87
|
+
sortObjects(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Gets the trailer dictionary for this revision.
|
|
90
|
+
*
|
|
91
|
+
* @returns The trailer dictionary containing document metadata references
|
|
92
|
+
*/
|
|
93
|
+
get trailerDict(): PdfDictionary<PdfTrailerEntries>;
|
|
94
|
+
/**
|
|
95
|
+
* Creates a deep copy of this revision.
|
|
96
|
+
*
|
|
97
|
+
* @returns A cloned PdfRevision instance
|
|
98
|
+
*/
|
|
99
|
+
clone(): this;
|
|
100
|
+
protected tokenize(): PdfToken[];
|
|
101
|
+
}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { PdfToken } from '../core/tokens/token'
|
|
6
|
-
import { PdfWhitespaceToken } from '../core/tokens/whitespace-token'
|
|
7
|
-
import { PdfXrefLookup } from './pdf-xref-lookup'
|
|
8
|
-
|
|
1
|
+
import { PdfIndirectObject } from '../core/objects/pdf-indirect-object';
|
|
2
|
+
import { PdfObject } from '../core/objects/pdf-object';
|
|
3
|
+
import { PdfWhitespaceToken } from '../core/tokens/whitespace-token';
|
|
4
|
+
import { PdfXrefLookup } from './pdf-xref-lookup';
|
|
9
5
|
/**
|
|
10
6
|
* Represents a single revision of a PDF document.
|
|
11
7
|
* PDF documents can have multiple revisions for incremental updates,
|
|
@@ -13,12 +9,11 @@ import { PdfXrefLookup } from './pdf-xref-lookup'
|
|
|
13
9
|
*/
|
|
14
10
|
export class PdfRevision extends PdfObject {
|
|
15
11
|
/** Objects contained in this revision */
|
|
16
|
-
objects
|
|
12
|
+
objects = [];
|
|
17
13
|
/** Cross-reference lookup table for this revision */
|
|
18
|
-
xref
|
|
14
|
+
xref;
|
|
19
15
|
/** Whether this revision is locked (cannot be modified) */
|
|
20
|
-
locked
|
|
21
|
-
|
|
16
|
+
locked = false;
|
|
22
17
|
/**
|
|
23
18
|
* Creates a new PDF revision.
|
|
24
19
|
*
|
|
@@ -27,81 +22,71 @@ export class PdfRevision extends PdfObject {
|
|
|
27
22
|
* @param options.prev - Previous revision or xref lookup to link to
|
|
28
23
|
* @param options.locked - Whether the revision should be locked initially
|
|
29
24
|
*/
|
|
30
|
-
constructor(options
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.objects = options?.objects ?? []
|
|
38
|
-
|
|
39
|
-
this.xref = PdfXrefLookup.fromObjects(this.objects)
|
|
40
|
-
|
|
41
|
-
if (options?.prev) this.setPrev(options.prev)
|
|
25
|
+
constructor(options) {
|
|
26
|
+
super();
|
|
27
|
+
this.modified = false;
|
|
28
|
+
this.objects = options?.objects ?? [];
|
|
29
|
+
this.xref = PdfXrefLookup.fromObjects(this.objects);
|
|
30
|
+
if (options?.prev)
|
|
31
|
+
this.setPrev(options.prev);
|
|
42
32
|
if (!this.contains(this.xref.object))
|
|
43
|
-
this.addObject(...this.xref.toTrailerSection())
|
|
44
|
-
this.locked = options?.locked ?? false
|
|
33
|
+
this.addObject(...this.xref.toTrailerSection());
|
|
34
|
+
this.locked = options?.locked ?? false;
|
|
45
35
|
}
|
|
46
|
-
|
|
47
36
|
/**
|
|
48
37
|
* Links this revision to a previous revision's cross-reference table.
|
|
49
38
|
*
|
|
50
39
|
* @param xref - The previous revision's xref lookup or revision
|
|
51
40
|
*/
|
|
52
|
-
setPrev(xref
|
|
53
|
-
xref = xref instanceof PdfRevision ? xref.xref : xref
|
|
54
|
-
this.xref.setPrev(xref)
|
|
41
|
+
setPrev(xref) {
|
|
42
|
+
xref = xref instanceof PdfRevision ? xref.xref : xref;
|
|
43
|
+
this.xref.setPrev(xref);
|
|
55
44
|
}
|
|
56
|
-
|
|
57
45
|
/**
|
|
58
46
|
* Checks if an object reference exists in this revision.
|
|
59
47
|
*
|
|
60
48
|
* @param object - The object to check for
|
|
61
49
|
* @returns True if the exact object instance exists in this revision
|
|
62
50
|
*/
|
|
63
|
-
contains(object
|
|
64
|
-
return this.objects.includes(object)
|
|
51
|
+
contains(object) {
|
|
52
|
+
return this.objects.includes(object);
|
|
65
53
|
}
|
|
66
|
-
|
|
67
54
|
/**
|
|
68
55
|
* Checks if an equivalent object exists in this revision (by value equality).
|
|
69
56
|
*
|
|
70
57
|
* @param object - The object to check for
|
|
71
58
|
* @returns True if an equal object exists in this revision
|
|
72
59
|
*/
|
|
73
|
-
exists(object
|
|
60
|
+
exists(object) {
|
|
74
61
|
for (const obj of this.objects) {
|
|
75
62
|
if (obj.equals(object)) {
|
|
76
|
-
return true
|
|
63
|
+
return true;
|
|
77
64
|
}
|
|
78
65
|
}
|
|
79
|
-
return false
|
|
66
|
+
return false;
|
|
80
67
|
}
|
|
81
|
-
|
|
82
68
|
/**
|
|
83
69
|
* Adds objects to the beginning of the revision's object list.
|
|
84
70
|
*
|
|
85
71
|
* @param objects - Objects to add at the beginning
|
|
86
72
|
*/
|
|
87
|
-
unshift(...objects
|
|
73
|
+
unshift(...objects) {
|
|
88
74
|
for (const obj of objects.reverse()) {
|
|
89
|
-
this.objects.unshift(obj)
|
|
90
|
-
if (obj instanceof PdfIndirectObject)
|
|
75
|
+
this.objects.unshift(obj);
|
|
76
|
+
if (obj instanceof PdfIndirectObject)
|
|
77
|
+
this.xref.addObject(obj);
|
|
91
78
|
}
|
|
92
79
|
}
|
|
93
|
-
|
|
94
80
|
/**
|
|
95
81
|
* Adds objects to the revision.
|
|
96
82
|
*
|
|
97
83
|
* @param objects - Objects to add to the revision
|
|
98
84
|
*/
|
|
99
|
-
addObject(...objects
|
|
85
|
+
addObject(...objects) {
|
|
100
86
|
for (const obj of objects) {
|
|
101
|
-
this.addObjectAt(obj)
|
|
87
|
+
this.addObjectAt(obj);
|
|
102
88
|
}
|
|
103
89
|
}
|
|
104
|
-
|
|
105
90
|
/**
|
|
106
91
|
* Adds an object at a specific position in the revision.
|
|
107
92
|
*
|
|
@@ -109,126 +94,106 @@ export class PdfRevision extends PdfObject {
|
|
|
109
94
|
* @param index - Position to insert at (number) or object to insert before
|
|
110
95
|
* @throws Error if the revision is locked or index is out of bounds
|
|
111
96
|
*/
|
|
112
|
-
addObjectAt(object
|
|
97
|
+
addObjectAt(object, index) {
|
|
113
98
|
if (this.locked) {
|
|
114
|
-
throw new Error('Cannot add object to locked PDF revision')
|
|
99
|
+
throw new Error('Cannot add object to locked PDF revision');
|
|
115
100
|
}
|
|
116
|
-
|
|
117
101
|
if (index === undefined) {
|
|
118
102
|
index =
|
|
119
103
|
object instanceof PdfIndirectObject
|
|
120
104
|
? this.xref.object
|
|
121
|
-
: this.objects.length
|
|
105
|
+
: this.objects.length;
|
|
122
106
|
}
|
|
123
|
-
|
|
124
107
|
if (typeof index !== 'number') {
|
|
125
|
-
index = this.objects.indexOf(index)
|
|
126
|
-
|
|
108
|
+
index = this.objects.indexOf(index);
|
|
127
109
|
if (index === -1) {
|
|
128
|
-
index = this.objects.length
|
|
110
|
+
index = this.objects.length;
|
|
129
111
|
}
|
|
130
112
|
}
|
|
131
|
-
|
|
132
113
|
if (index < 0 || index > this.objects.length) {
|
|
133
|
-
throw new Error('Index out of bounds')
|
|
114
|
+
throw new Error('Index out of bounds');
|
|
134
115
|
}
|
|
135
|
-
|
|
136
|
-
this.
|
|
137
|
-
this.sortObjects()
|
|
138
|
-
|
|
116
|
+
this.objects.splice(index, 0, object);
|
|
117
|
+
this.sortObjects();
|
|
139
118
|
if (object instanceof PdfIndirectObject) {
|
|
140
|
-
this.xref.addObject(object)
|
|
119
|
+
this.xref.addObject(object);
|
|
141
120
|
}
|
|
142
|
-
|
|
143
|
-
this.update()
|
|
121
|
+
this.update();
|
|
144
122
|
}
|
|
145
|
-
|
|
146
123
|
/**
|
|
147
124
|
* Removes objects from the revision.
|
|
148
125
|
*
|
|
149
126
|
* @param objects - Objects to remove from the revision
|
|
150
127
|
* @throws Error if the revision is locked
|
|
151
128
|
*/
|
|
152
|
-
deleteObject(...objects
|
|
129
|
+
deleteObject(...objects) {
|
|
153
130
|
if (this.locked) {
|
|
154
|
-
throw new Error('Cannot delete object from locked PDF revision')
|
|
131
|
+
throw new Error('Cannot delete object from locked PDF revision');
|
|
155
132
|
}
|
|
156
|
-
|
|
157
133
|
for (const object of objects) {
|
|
158
|
-
const index = this.objects.indexOf(object)
|
|
134
|
+
const index = this.objects.indexOf(object);
|
|
159
135
|
if (index === -1) {
|
|
160
|
-
return
|
|
136
|
+
return;
|
|
161
137
|
}
|
|
162
|
-
|
|
163
|
-
this.
|
|
164
|
-
this.objects.splice(index, 1)
|
|
165
|
-
|
|
138
|
+
this.modified = true;
|
|
139
|
+
this.objects.splice(index, 1);
|
|
166
140
|
if (object instanceof PdfIndirectObject) {
|
|
167
|
-
this.xref.removeObject(object)
|
|
141
|
+
this.xref.removeObject(object);
|
|
168
142
|
}
|
|
169
143
|
}
|
|
170
144
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return (
|
|
174
|
-
super.isModified() ||
|
|
145
|
+
isModified() {
|
|
146
|
+
return (super.isModified() ||
|
|
175
147
|
this.xref.trailerDict.isModified() ||
|
|
176
|
-
this.objects.some((obj) => obj.isModified())
|
|
177
|
-
)
|
|
148
|
+
this.objects.some((obj) => obj.isModified()));
|
|
178
149
|
}
|
|
179
|
-
|
|
180
150
|
/**
|
|
181
151
|
* Updates the revision by sorting objects and updating the xref table.
|
|
182
152
|
*/
|
|
183
|
-
update()
|
|
153
|
+
update() {
|
|
184
154
|
if (this.locked) {
|
|
185
|
-
return
|
|
155
|
+
return;
|
|
186
156
|
}
|
|
187
|
-
this.sortObjects()
|
|
188
|
-
this.xref.update()
|
|
189
|
-
this.modified = false
|
|
157
|
+
this.sortObjects();
|
|
158
|
+
this.xref.update();
|
|
159
|
+
this.modified = false;
|
|
190
160
|
}
|
|
191
|
-
|
|
192
161
|
/**
|
|
193
162
|
* Sorts objects by their insertion order.
|
|
194
163
|
* Indirect objects are placed before other objects.
|
|
195
164
|
*/
|
|
196
|
-
sortObjects()
|
|
165
|
+
sortObjects() {
|
|
197
166
|
this.objects.sort((a, b) => {
|
|
198
|
-
if (
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
) {
|
|
202
|
-
return a.order() - b.order()
|
|
203
|
-
} else {
|
|
204
|
-
return 0
|
|
167
|
+
if (a instanceof PdfIndirectObject &&
|
|
168
|
+
b instanceof PdfIndirectObject) {
|
|
169
|
+
return a.order() - b.order();
|
|
205
170
|
}
|
|
206
|
-
|
|
171
|
+
else {
|
|
172
|
+
return 0;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
207
175
|
}
|
|
208
|
-
|
|
209
176
|
/**
|
|
210
177
|
* Gets the trailer dictionary for this revision.
|
|
211
178
|
*
|
|
212
179
|
* @returns The trailer dictionary containing document metadata references
|
|
213
180
|
*/
|
|
214
|
-
get trailerDict()
|
|
215
|
-
return this.xref.trailerDict
|
|
181
|
+
get trailerDict() {
|
|
182
|
+
return this.xref.trailerDict;
|
|
216
183
|
}
|
|
217
|
-
|
|
218
184
|
/**
|
|
219
185
|
* Creates a deep copy of this revision.
|
|
220
186
|
*
|
|
221
187
|
* @returns A cloned PdfRevision instance
|
|
222
188
|
*/
|
|
223
|
-
clone()
|
|
224
|
-
const clonedObjects = this.objects.map((obj) => obj.clone())
|
|
225
|
-
return new PdfRevision({ objects: clonedObjects })
|
|
189
|
+
clone() {
|
|
190
|
+
const clonedObjects = this.objects.map((obj) => obj.clone());
|
|
191
|
+
return new PdfRevision({ objects: clonedObjects });
|
|
226
192
|
}
|
|
227
|
-
|
|
228
|
-
protected tokenize(): PdfToken[] {
|
|
193
|
+
tokenize() {
|
|
229
194
|
return this.objects.flatMap((obj) => [
|
|
230
195
|
...obj.toTokens(),
|
|
231
196
|
PdfWhitespaceToken.NEWLINE,
|
|
232
|
-
])
|
|
197
|
+
]);
|
|
233
198
|
}
|
|
234
199
|
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { PdfObject } from '../core/objects/pdf-object';
|
|
2
|
+
import { PdfIndirectObject } from '../core/objects/pdf-indirect-object';
|
|
3
|
+
import { PdfXRefTable } from '../core/objects/pdf-xref-table';
|
|
4
|
+
import { PdfTrailer, PdfTrailerEntries } from '../core/objects/pdf-trailer';
|
|
5
|
+
import { PdfStream, PdfXRefStream, PdfXRefStreamEntry } from '../core/objects/pdf-stream';
|
|
6
|
+
import { PdfDictionary } from '../core/objects/pdf-dictionary';
|
|
7
|
+
import { Ref } from '../core/ref';
|
|
8
|
+
/**
|
|
9
|
+
* Manages cross-reference (xref) lookup for PDF objects.
|
|
10
|
+
* Handles both traditional xref tables and xref streams, including hybrid documents.
|
|
11
|
+
* Supports linking multiple revisions through the Prev chain.
|
|
12
|
+
*/
|
|
13
|
+
export declare class PdfXrefLookup {
|
|
14
|
+
/** The underlying xref object (either a table or stream) */
|
|
15
|
+
object: PdfIndirectObject<PdfXRefStream> | PdfXRefTable;
|
|
16
|
+
/** Map of object numbers to their xref entries */
|
|
17
|
+
entries: Map<number, PdfXRefStreamEntry>;
|
|
18
|
+
/** Trailer dictionary containing document metadata references */
|
|
19
|
+
trailerDict: PdfDictionary<PdfTrailerEntries>;
|
|
20
|
+
/** Reference to the previous xref lookup in the revision chain */
|
|
21
|
+
prev?: PdfXrefLookup;
|
|
22
|
+
private type?;
|
|
23
|
+
private hybridXRefStream?;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a new xref lookup instance.
|
|
26
|
+
*
|
|
27
|
+
* @param options - Configuration options
|
|
28
|
+
* @param options.type - Type of xref ('table' or 'stream')
|
|
29
|
+
* @param options.object - Pre-existing xref table or stream object
|
|
30
|
+
* @param options.trailerDict - Pre-existing trailer dictionary
|
|
31
|
+
* @param options.prev - Previous xref lookup to link to
|
|
32
|
+
*/
|
|
33
|
+
constructor(options?: {
|
|
34
|
+
type?: 'table' | 'stream';
|
|
35
|
+
object?: PdfIndirectObject<PdfStream> | PdfXRefTable;
|
|
36
|
+
trailerDict?: PdfDictionary<PdfTrailerEntries>;
|
|
37
|
+
prev?: PdfXrefLookup;
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Links this xref to a previous xref lookup.
|
|
41
|
+
* Copies missing trailer entries from the previous xref.
|
|
42
|
+
*
|
|
43
|
+
* @param xref - The previous xref lookup to link to
|
|
44
|
+
* @throws Error if trying to set self as previous (would create circular reference) or if offsets match (would create ambiguous or invalid xref chain)
|
|
45
|
+
*/
|
|
46
|
+
setPrev(xref: PdfXrefLookup): void;
|
|
47
|
+
/**
|
|
48
|
+
* Sets the byte offset of the xref object.
|
|
49
|
+
*/
|
|
50
|
+
set offset(value: Ref<number>);
|
|
51
|
+
/**
|
|
52
|
+
* Gets the byte offset of the xref object.
|
|
53
|
+
*/
|
|
54
|
+
get offset(): Ref<number>;
|
|
55
|
+
/**
|
|
56
|
+
* Creates xref lookups from an array of PDF objects.
|
|
57
|
+
* Parses both xref tables and xref streams, linking them via the Prev chain.
|
|
58
|
+
*
|
|
59
|
+
* @param objects - Array of PDF objects to parse
|
|
60
|
+
* @returns The most recent xref lookup with linked previous lookups
|
|
61
|
+
*/
|
|
62
|
+
static fromObjects(objects: PdfObject[]): PdfXrefLookup;
|
|
63
|
+
/**
|
|
64
|
+
* Creates an xref lookup from a traditional xref table and trailer.
|
|
65
|
+
* Handles hybrid xref documents with both table and stream entries.
|
|
66
|
+
*
|
|
67
|
+
* @param xrefTable - The xref table object
|
|
68
|
+
* @param trailer - The trailer object
|
|
69
|
+
* @param objects - Optional array of objects for resolving hybrid xref streams
|
|
70
|
+
* @returns A new PdfXrefLookup instance
|
|
71
|
+
*/
|
|
72
|
+
static fromXrefTable(xrefTable: PdfXRefTable, trailer: PdfTrailer, objects?: PdfObject[]): PdfXrefLookup;
|
|
73
|
+
/**
|
|
74
|
+
* Creates an xref lookup from an xref stream object.
|
|
75
|
+
*
|
|
76
|
+
* @param streamObject - The indirect object containing the xref stream
|
|
77
|
+
* @returns A new PdfXrefLookup instance
|
|
78
|
+
*/
|
|
79
|
+
static fromXrefStream(streamObject: PdfIndirectObject<PdfStream>): PdfXrefLookup;
|
|
80
|
+
/**
|
|
81
|
+
* Gets the size of the xref table (highest object number + 1).
|
|
82
|
+
* Ensures size is at least as large as the previous revision.
|
|
83
|
+
*/
|
|
84
|
+
get size(): number;
|
|
85
|
+
/**
|
|
86
|
+
* Sets the size of the xref table.
|
|
87
|
+
*/
|
|
88
|
+
set size(value: number);
|
|
89
|
+
/**
|
|
90
|
+
* Gets all xref entries as an array.
|
|
91
|
+
*/
|
|
92
|
+
get entriesValues(): PdfXRefStreamEntry[];
|
|
93
|
+
/**
|
|
94
|
+
* Links xref entries to their corresponding indirect objects.
|
|
95
|
+
* Updates byte offset references to point to actual object offsets.
|
|
96
|
+
*
|
|
97
|
+
* @param objects - Array of indirect objects to link
|
|
98
|
+
*/
|
|
99
|
+
linkIndirectObjects(objects: PdfIndirectObject[]): void;
|
|
100
|
+
/**
|
|
101
|
+
* Links this xref to a previous xref lookup based on the Prev trailer entry.
|
|
102
|
+
*
|
|
103
|
+
* @param objects - Array of xref lookups to search for the previous one
|
|
104
|
+
*/
|
|
105
|
+
linkPrev(objects: PdfXrefLookup[]): void;
|
|
106
|
+
/**
|
|
107
|
+
* Updates the xref object with current entries.
|
|
108
|
+
* Handles both table and stream formats, including hybrid documents.
|
|
109
|
+
*
|
|
110
|
+
* @returns The updated xref object
|
|
111
|
+
*/
|
|
112
|
+
update(): PdfIndirectObject<PdfXRefStream> | PdfXRefTable;
|
|
113
|
+
/**
|
|
114
|
+
* Adds an indirect object to the xref lookup.
|
|
115
|
+
* Assigns an object number if not already set.
|
|
116
|
+
*
|
|
117
|
+
* @param newObject - The indirect object to add
|
|
118
|
+
* @param options - Options for compressed objects
|
|
119
|
+
* @param options.parentObjectNumber - Object number of the containing object stream
|
|
120
|
+
* @param options.indexInStream - Index within the object stream
|
|
121
|
+
* @throws Error if trying to add compressed object with non-zero generation number
|
|
122
|
+
*/
|
|
123
|
+
addObject(newObject: PdfIndirectObject, options?: {
|
|
124
|
+
parentObjectNumber?: number;
|
|
125
|
+
indexInStream?: number;
|
|
126
|
+
}): void;
|
|
127
|
+
/**
|
|
128
|
+
* Removes an indirect object from the xref lookup.
|
|
129
|
+
* Also removes any trailer references to the object.
|
|
130
|
+
*
|
|
131
|
+
* @param object - The indirect object to remove
|
|
132
|
+
*/
|
|
133
|
+
removeObject(object: PdfIndirectObject): void;
|
|
134
|
+
/**
|
|
135
|
+
* Gets an xref entry by object number.
|
|
136
|
+
* Falls back to the previous xref if not found in current entries.
|
|
137
|
+
*
|
|
138
|
+
* @param objectNumber - The object number to look up
|
|
139
|
+
* @returns The xref entry or undefined if not found
|
|
140
|
+
*/
|
|
141
|
+
getObject(objectNumber: number): PdfXRefStreamEntry | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* Generates the trailer section objects for this xref.
|
|
144
|
+
* Includes xref table/stream, trailer (if using table), startxref, and EOF.
|
|
145
|
+
*
|
|
146
|
+
* @returns Array of objects forming the trailer section
|
|
147
|
+
*/
|
|
148
|
+
toTrailerSection(): PdfObject[];
|
|
149
|
+
}
|