pdf-lite 1.0.1-alpha.2 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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,103 @@
|
|
|
1
|
+
import { Parser } from './parser';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when the parser needs more input to continue parsing.
|
|
4
|
+
*/
|
|
5
|
+
export declare class NoMoreTokensError extends Error {
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when the end of file has been reached and no more input is available.
|
|
9
|
+
*/
|
|
10
|
+
export declare class EofReachedError extends Error {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Abstract base class for incremental parsers that can process input as it becomes available.
|
|
14
|
+
* Supports buffering, lookahead, and backtracking for complex parsing scenarios.
|
|
15
|
+
*
|
|
16
|
+
* @typeParam I - The input item type
|
|
17
|
+
* @typeParam O - The output item type
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class IncrementalParser<I, O> extends Parser<I, O> {
|
|
20
|
+
/** Current position in the input stream */
|
|
21
|
+
protected inputOffset: number;
|
|
22
|
+
/** Number of outputs generated */
|
|
23
|
+
protected outputOffset: number;
|
|
24
|
+
/** Buffer holding input items */
|
|
25
|
+
protected buffer: I[];
|
|
26
|
+
/** Current position in the buffer */
|
|
27
|
+
protected bufferIndex: number;
|
|
28
|
+
/** Whether end of file has been signaled */
|
|
29
|
+
eof: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Feeds input items into the parser buffer.
|
|
32
|
+
*
|
|
33
|
+
* @param input - Input items to add to the buffer
|
|
34
|
+
*/
|
|
35
|
+
feed(...input: (I | I[])[]): void;
|
|
36
|
+
/**
|
|
37
|
+
* Checks if end of file has been reached and buffer is exhausted.
|
|
38
|
+
*
|
|
39
|
+
* @returns True if no more input is available
|
|
40
|
+
*/
|
|
41
|
+
protected atEof(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Peeks at an item in the buffer without consuming it.
|
|
44
|
+
*
|
|
45
|
+
* @param ahead - Number of positions to look ahead (default: 0)
|
|
46
|
+
* @returns The item at the peek position, or null if at EOF
|
|
47
|
+
* @throws NoMoreTokensError if more input is needed and EOF not signaled
|
|
48
|
+
*/
|
|
49
|
+
protected peek(ahead?: number): I | null;
|
|
50
|
+
/**
|
|
51
|
+
* Consumes and returns the next item from the buffer.
|
|
52
|
+
*
|
|
53
|
+
* @returns The next item
|
|
54
|
+
* @throws NoMoreTokensError if more input is needed and EOF not signaled
|
|
55
|
+
* @throws EofReachedError if at EOF and no more items available
|
|
56
|
+
*/
|
|
57
|
+
protected next(): I;
|
|
58
|
+
private expectValue;
|
|
59
|
+
/**
|
|
60
|
+
* Consumes and validates the next item against an expected type or value.
|
|
61
|
+
*
|
|
62
|
+
* @typeParam T - The expected item type
|
|
63
|
+
* @param itemType - Constructor or value to match against
|
|
64
|
+
* @returns The consumed item cast to the expected type
|
|
65
|
+
* @throws Error if the item doesn't match the expected type/value
|
|
66
|
+
*/
|
|
67
|
+
protected expect<T extends I>(itemType: (new (...args: any[]) => T) | T): T;
|
|
68
|
+
/**
|
|
69
|
+
* Tries multiple parsing functions and returns the first successful result.
|
|
70
|
+
* Automatically backtracks on failure.
|
|
71
|
+
*
|
|
72
|
+
* @param fn - Array of parsing functions to try
|
|
73
|
+
* @returns The result from the first successful parsing function
|
|
74
|
+
* @throws NoMoreTokensError if any function needs more input
|
|
75
|
+
* @throws Error if all parsing functions fail
|
|
76
|
+
*/
|
|
77
|
+
protected oneOf(...fn: (() => O)[]): O;
|
|
78
|
+
/**
|
|
79
|
+
* Compacts the buffer by removing consumed items
|
|
80
|
+
*/
|
|
81
|
+
protected compact(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Override to customize when to compact the buffer
|
|
84
|
+
* By default, compacts when more than 1000 items have been consumed
|
|
85
|
+
*
|
|
86
|
+
* @returns boolean indicating whether to compact the buffer
|
|
87
|
+
*/
|
|
88
|
+
protected canCompact(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Generates parsed output items from the buffer.
|
|
91
|
+
* Handles backtracking when more input is needed.
|
|
92
|
+
*
|
|
93
|
+
* @returns A generator yielding parsed output items
|
|
94
|
+
*/
|
|
95
|
+
nextItems(): Generator<O>;
|
|
96
|
+
/**
|
|
97
|
+
* Abstract method to parse the next output item from the buffer.
|
|
98
|
+
* Subclasses must implement this to define parsing logic.
|
|
99
|
+
*
|
|
100
|
+
* @returns The parsed output item
|
|
101
|
+
*/
|
|
102
|
+
protected abstract parse(): O;
|
|
103
|
+
}
|
package/{packages/pdf-lite/src/core/incremental-parser.ts → dist/core/incremental-parser.js}
RENAMED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { Parser } from './parser'
|
|
2
|
-
|
|
1
|
+
import { Parser } from './parser';
|
|
3
2
|
/**
|
|
4
3
|
* Error thrown when the parser needs more input to continue parsing.
|
|
5
4
|
*/
|
|
6
|
-
export class NoMoreTokensError extends Error {
|
|
7
|
-
|
|
5
|
+
export class NoMoreTokensError extends Error {
|
|
6
|
+
}
|
|
8
7
|
/**
|
|
9
8
|
* Error thrown when the end of file has been reached and no more input is available.
|
|
10
9
|
*/
|
|
11
|
-
export class EofReachedError extends Error {
|
|
12
|
-
|
|
10
|
+
export class EofReachedError extends Error {
|
|
11
|
+
}
|
|
13
12
|
/**
|
|
14
13
|
* Abstract base class for incremental parsers that can process input as it becomes available.
|
|
15
14
|
* Supports buffering, lookahead, and backtracking for complex parsing scenarios.
|
|
@@ -17,48 +16,41 @@ export class EofReachedError extends Error {}
|
|
|
17
16
|
* @typeParam I - The input item type
|
|
18
17
|
* @typeParam O - The output item type
|
|
19
18
|
*/
|
|
20
|
-
export
|
|
19
|
+
export class IncrementalParser extends Parser {
|
|
21
20
|
/** Current position in the input stream */
|
|
22
|
-
|
|
21
|
+
inputOffset = 0;
|
|
23
22
|
/** Number of outputs generated */
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
outputOffset = 0;
|
|
26
24
|
/** Buffer holding input items */
|
|
27
|
-
|
|
25
|
+
buffer = [];
|
|
28
26
|
/** Current position in the buffer */
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
bufferIndex = 0;
|
|
31
28
|
/** Whether end of file has been signaled */
|
|
32
|
-
eof
|
|
33
|
-
|
|
29
|
+
eof = false;
|
|
34
30
|
/**
|
|
35
31
|
* Feeds input items into the parser buffer.
|
|
36
32
|
*
|
|
37
33
|
* @param input - Input items to add to the buffer
|
|
38
34
|
*/
|
|
39
|
-
feed(...input
|
|
35
|
+
feed(...input) {
|
|
40
36
|
for (const item of input) {
|
|
41
37
|
if (Array.isArray(item)) {
|
|
42
38
|
for (const subItem of item) {
|
|
43
|
-
this.buffer.push(subItem)
|
|
39
|
+
this.buffer.push(subItem);
|
|
44
40
|
}
|
|
45
|
-
|
|
46
|
-
continue
|
|
41
|
+
continue;
|
|
47
42
|
}
|
|
48
|
-
|
|
49
|
-
this.buffer.push(item)
|
|
43
|
+
this.buffer.push(item);
|
|
50
44
|
}
|
|
51
45
|
}
|
|
52
|
-
|
|
53
46
|
/**
|
|
54
47
|
* Checks if end of file has been reached and buffer is exhausted.
|
|
55
48
|
*
|
|
56
49
|
* @returns True if no more input is available
|
|
57
50
|
*/
|
|
58
|
-
|
|
59
|
-
return this.eof && this.bufferIndex >= this.buffer.length
|
|
51
|
+
atEof() {
|
|
52
|
+
return this.eof && this.bufferIndex >= this.buffer.length;
|
|
60
53
|
}
|
|
61
|
-
|
|
62
54
|
/**
|
|
63
55
|
* Peeks at an item in the buffer without consuming it.
|
|
64
56
|
*
|
|
@@ -66,17 +58,16 @@ export abstract class IncrementalParser<I, O> extends Parser<I, O> {
|
|
|
66
58
|
* @returns The item at the peek position, or null if at EOF
|
|
67
59
|
* @throws NoMoreTokensError if more input is needed and EOF not signaled
|
|
68
60
|
*/
|
|
69
|
-
|
|
70
|
-
const index = this.bufferIndex + ahead
|
|
61
|
+
peek(ahead = 0) {
|
|
62
|
+
const index = this.bufferIndex + ahead;
|
|
71
63
|
if (index >= this.buffer.length) {
|
|
72
64
|
if (!this.eof) {
|
|
73
|
-
throw new NoMoreTokensError('No more items available')
|
|
65
|
+
throw new NoMoreTokensError('No more items available');
|
|
74
66
|
}
|
|
75
|
-
return null
|
|
67
|
+
return null;
|
|
76
68
|
}
|
|
77
|
-
return this.buffer[index]
|
|
69
|
+
return this.buffer[index];
|
|
78
70
|
}
|
|
79
|
-
|
|
80
71
|
/**
|
|
81
72
|
* Consumes and returns the next item from the buffer.
|
|
82
73
|
*
|
|
@@ -84,43 +75,31 @@ export abstract class IncrementalParser<I, O> extends Parser<I, O> {
|
|
|
84
75
|
* @throws NoMoreTokensError if more input is needed and EOF not signaled
|
|
85
76
|
* @throws EofReachedError if at EOF and no more items available
|
|
86
77
|
*/
|
|
87
|
-
|
|
78
|
+
next() {
|
|
88
79
|
if (this.bufferIndex >= this.buffer.length) {
|
|
89
80
|
if (!this.eof) {
|
|
90
|
-
throw new NoMoreTokensError('No more items available')
|
|
81
|
+
throw new NoMoreTokensError('No more items available');
|
|
91
82
|
}
|
|
92
|
-
throw new EofReachedError('End of file reached')
|
|
83
|
+
throw new EofReachedError('End of file reached');
|
|
93
84
|
}
|
|
94
|
-
this.inputOffset
|
|
95
|
-
return this.buffer[this.bufferIndex++]
|
|
85
|
+
this.inputOffset++;
|
|
86
|
+
return this.buffer[this.bufferIndex++];
|
|
96
87
|
}
|
|
97
|
-
|
|
98
|
-
private expectValue<T extends I>(
|
|
99
|
-
value: I,
|
|
100
|
-
itemType: (new (...args: any[]) => T) | T,
|
|
101
|
-
): T {
|
|
88
|
+
expectValue(value, itemType) {
|
|
102
89
|
if (typeof itemType === 'function') {
|
|
103
90
|
if (!(value instanceof itemType)) {
|
|
104
|
-
throw new Error(
|
|
105
|
-
`[offset: ${this.inputOffset}] Expected ${itemType.name} but got ${value}`,
|
|
106
|
-
)
|
|
91
|
+
throw new Error(`[offset: ${this.inputOffset}] Expected ${itemType.name} but got ${value}`);
|
|
107
92
|
}
|
|
108
|
-
return value
|
|
93
|
+
return value;
|
|
109
94
|
}
|
|
110
|
-
|
|
111
95
|
if (value !== itemType) {
|
|
112
|
-
const type =
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
throw new Error(
|
|
118
|
-
`[offset: ${this.inputOffset}] Expected ${itemType} but got ${type}`,
|
|
119
|
-
)
|
|
96
|
+
const type = typeof value === 'object'
|
|
97
|
+
? (value?.constructor.name ?? value)
|
|
98
|
+
: value;
|
|
99
|
+
throw new Error(`[offset: ${this.inputOffset}] Expected ${itemType} but got ${type}`);
|
|
120
100
|
}
|
|
121
|
-
return value
|
|
101
|
+
return value;
|
|
122
102
|
}
|
|
123
|
-
|
|
124
103
|
/**
|
|
125
104
|
* Consumes and validates the next item against an expected type or value.
|
|
126
105
|
*
|
|
@@ -129,13 +108,10 @@ export abstract class IncrementalParser<I, O> extends Parser<I, O> {
|
|
|
129
108
|
* @returns The consumed item cast to the expected type
|
|
130
109
|
* @throws Error if the item doesn't match the expected type/value
|
|
131
110
|
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const item = this.next()
|
|
136
|
-
return this.expectValue(item, itemType)
|
|
111
|
+
expect(itemType) {
|
|
112
|
+
const item = this.next();
|
|
113
|
+
return this.expectValue(item, itemType);
|
|
137
114
|
}
|
|
138
|
-
|
|
139
115
|
/**
|
|
140
116
|
* Tries multiple parsing functions and returns the first successful result.
|
|
141
117
|
* Automatically backtracks on failure.
|
|
@@ -145,77 +121,64 @@ export abstract class IncrementalParser<I, O> extends Parser<I, O> {
|
|
|
145
121
|
* @throws NoMoreTokensError if any function needs more input
|
|
146
122
|
* @throws Error if all parsing functions fail
|
|
147
123
|
*/
|
|
148
|
-
|
|
124
|
+
oneOf(...fn) {
|
|
149
125
|
for (const f of fn) {
|
|
150
|
-
const savedOffset = this.inputOffset
|
|
151
|
-
const savedIndex = this.bufferIndex
|
|
152
|
-
|
|
126
|
+
const savedOffset = this.inputOffset;
|
|
127
|
+
const savedIndex = this.bufferIndex;
|
|
153
128
|
try {
|
|
154
|
-
return f.bind(this)()
|
|
155
|
-
}
|
|
129
|
+
return f.bind(this)();
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
156
132
|
if (err instanceof NoMoreTokensError) {
|
|
157
|
-
throw err
|
|
133
|
+
throw err;
|
|
158
134
|
}
|
|
159
|
-
this.inputOffset = savedOffset
|
|
160
|
-
this.bufferIndex = savedIndex
|
|
135
|
+
this.inputOffset = savedOffset;
|
|
136
|
+
this.bufferIndex = savedIndex;
|
|
161
137
|
}
|
|
162
138
|
}
|
|
163
|
-
|
|
164
|
-
throw new Error('No parsing function succeeded')
|
|
139
|
+
throw new Error('No parsing function succeeded');
|
|
165
140
|
}
|
|
166
|
-
|
|
167
141
|
/**
|
|
168
142
|
* Compacts the buffer by removing consumed items
|
|
169
143
|
*/
|
|
170
|
-
|
|
144
|
+
compact() {
|
|
171
145
|
if (this.bufferIndex > 0) {
|
|
172
|
-
this.buffer = this.buffer.slice(this.bufferIndex)
|
|
173
|
-
this.bufferIndex = 0
|
|
146
|
+
this.buffer = this.buffer.slice(this.bufferIndex);
|
|
147
|
+
this.bufferIndex = 0;
|
|
174
148
|
}
|
|
175
149
|
}
|
|
176
|
-
|
|
177
150
|
/**
|
|
178
151
|
* Override to customize when to compact the buffer
|
|
179
152
|
* By default, compacts when more than 1000 items have been consumed
|
|
180
153
|
*
|
|
181
154
|
* @returns boolean indicating whether to compact the buffer
|
|
182
155
|
*/
|
|
183
|
-
|
|
184
|
-
return this.bufferIndex > 1000
|
|
156
|
+
canCompact() {
|
|
157
|
+
return this.bufferIndex > 1000;
|
|
185
158
|
}
|
|
186
|
-
|
|
187
159
|
/**
|
|
188
160
|
* Generates parsed output items from the buffer.
|
|
189
161
|
* Handles backtracking when more input is needed.
|
|
190
162
|
*
|
|
191
163
|
* @returns A generator yielding parsed output items
|
|
192
164
|
*/
|
|
193
|
-
*nextItems()
|
|
165
|
+
*nextItems() {
|
|
194
166
|
while (!this.atEof()) {
|
|
195
|
-
const savedIndex = this.bufferIndex
|
|
196
|
-
|
|
167
|
+
const savedIndex = this.bufferIndex;
|
|
197
168
|
try {
|
|
198
|
-
yield this.parse()
|
|
199
|
-
this.outputOffset
|
|
200
|
-
|
|
169
|
+
yield this.parse();
|
|
170
|
+
this.outputOffset++;
|
|
201
171
|
if (this.canCompact()) {
|
|
202
|
-
this.compact()
|
|
172
|
+
this.compact();
|
|
203
173
|
}
|
|
204
|
-
}
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
205
176
|
if (!(err instanceof NoMoreTokensError)) {
|
|
206
|
-
throw err
|
|
177
|
+
throw err;
|
|
207
178
|
}
|
|
208
|
-
this.bufferIndex = savedIndex
|
|
209
|
-
break
|
|
179
|
+
this.bufferIndex = savedIndex;
|
|
180
|
+
break;
|
|
210
181
|
}
|
|
211
182
|
}
|
|
212
183
|
}
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Abstract method to parse the next output item from the buffer.
|
|
216
|
-
* Subclasses must implement this to define parsing logic.
|
|
217
|
-
*
|
|
218
|
-
* @returns The parsed output item
|
|
219
|
-
*/
|
|
220
|
-
protected abstract parse(): O
|
|
221
184
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PdfWhitespaceToken } from '../tokens/whitespace-token';
|
|
2
|
+
import { PdfObject } from './pdf-object';
|
|
3
|
+
export declare class PdfArray<T extends PdfObject = PdfObject> extends PdfObject {
|
|
4
|
+
items: T[];
|
|
5
|
+
innerTokens: PdfWhitespaceToken[];
|
|
6
|
+
constructor(items?: T[]);
|
|
7
|
+
get length(): number;
|
|
8
|
+
push(item: T): void;
|
|
9
|
+
protected tokenize(): import("../tokens/token").PdfToken[];
|
|
10
|
+
clone(): this;
|
|
11
|
+
isModified(): boolean;
|
|
12
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { PdfEndArrayToken } from '../tokens/end-array-token';
|
|
2
|
+
import { PdfStartArrayToken } from '../tokens/start-array-token';
|
|
3
|
+
import { PdfWhitespaceToken } from '../tokens/whitespace-token';
|
|
4
|
+
import { PdfObject } from './pdf-object';
|
|
5
|
+
export class PdfArray extends PdfObject {
|
|
6
|
+
items;
|
|
7
|
+
innerTokens = [];
|
|
8
|
+
constructor(items = []) {
|
|
9
|
+
super();
|
|
10
|
+
this.items = items;
|
|
11
|
+
}
|
|
12
|
+
get length() {
|
|
13
|
+
return this.items.length;
|
|
14
|
+
}
|
|
15
|
+
push(item) {
|
|
16
|
+
this.items.push(item);
|
|
17
|
+
}
|
|
18
|
+
tokenize() {
|
|
19
|
+
const items = this.items.flatMap((item, index) => {
|
|
20
|
+
const tokens = item.toTokens();
|
|
21
|
+
const preTokens = item.preTokens
|
|
22
|
+
? []
|
|
23
|
+
: index === 0
|
|
24
|
+
? [PdfWhitespaceToken.SPACE]
|
|
25
|
+
: [];
|
|
26
|
+
const postTokens = item.postTokens ? [] : [PdfWhitespaceToken.SPACE];
|
|
27
|
+
return [...preTokens, ...tokens, ...postTokens];
|
|
28
|
+
});
|
|
29
|
+
return [
|
|
30
|
+
new PdfStartArrayToken(),
|
|
31
|
+
...this.innerTokens,
|
|
32
|
+
...items,
|
|
33
|
+
new PdfEndArrayToken(),
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
clone() {
|
|
37
|
+
return new PdfArray(this.items.map((x) => x.clone()));
|
|
38
|
+
}
|
|
39
|
+
isModified() {
|
|
40
|
+
return (super.isModified() || this.items.some((item) => item.isModified()));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PdfBooleanToken } from '../tokens/boolean-token';
|
|
2
|
+
import { PdfObject } from './pdf-object';
|
|
3
|
+
export declare class PdfBoolean extends PdfObject {
|
|
4
|
+
value: boolean;
|
|
5
|
+
constructor(value: boolean);
|
|
6
|
+
protected tokenize(): PdfBooleanToken[];
|
|
7
|
+
clone(): this;
|
|
8
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PdfBooleanToken } from '../tokens/boolean-token';
|
|
2
|
+
import { PdfObject } from './pdf-object';
|
|
3
|
+
export class PdfBoolean extends PdfObject {
|
|
4
|
+
value;
|
|
5
|
+
constructor(value) {
|
|
6
|
+
super();
|
|
7
|
+
this.value = value;
|
|
8
|
+
}
|
|
9
|
+
tokenize() {
|
|
10
|
+
return [new PdfBooleanToken(this.value)];
|
|
11
|
+
}
|
|
12
|
+
clone() {
|
|
13
|
+
return new PdfBoolean(this.value);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ByteArray } from '../../types';
|
|
2
|
+
import { PdfCommentToken } from '../tokens/comment-token';
|
|
3
|
+
import { PdfObject } from './pdf-object';
|
|
4
|
+
export declare class PdfComment extends PdfObject {
|
|
5
|
+
static EOF: PdfComment;
|
|
6
|
+
/**
|
|
7
|
+
* The comment value as raw bytes.
|
|
8
|
+
*/
|
|
9
|
+
raw: ByteArray;
|
|
10
|
+
constructor(raw: string | ByteArray);
|
|
11
|
+
isEof(): boolean;
|
|
12
|
+
asString(): string;
|
|
13
|
+
isVersionComment(): boolean;
|
|
14
|
+
isEOFComment(): boolean;
|
|
15
|
+
static versionComment(version: string): PdfComment;
|
|
16
|
+
protected tokenize(): PdfCommentToken[];
|
|
17
|
+
clone(): this;
|
|
18
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { stringToBytes } from '../../utils/stringToBytes';
|
|
2
|
+
import { PdfCommentToken } from '../tokens/comment-token';
|
|
3
|
+
import { PdfWhitespaceToken } from '../tokens/whitespace-token';
|
|
4
|
+
import { PdfObject } from './pdf-object';
|
|
5
|
+
export class PdfComment extends PdfObject {
|
|
6
|
+
static EOF = new PdfComment('%EOF');
|
|
7
|
+
/**
|
|
8
|
+
* The comment value as raw bytes.
|
|
9
|
+
*/
|
|
10
|
+
raw;
|
|
11
|
+
constructor(raw) {
|
|
12
|
+
super();
|
|
13
|
+
this.raw = typeof raw === 'string' ? stringToBytes(raw) : raw;
|
|
14
|
+
}
|
|
15
|
+
isEof() {
|
|
16
|
+
return this.equals(PdfComment.EOF);
|
|
17
|
+
}
|
|
18
|
+
asString() {
|
|
19
|
+
return new TextDecoder().decode(this.raw);
|
|
20
|
+
}
|
|
21
|
+
isVersionComment() {
|
|
22
|
+
const str = this.asString().toUpperCase();
|
|
23
|
+
return str.startsWith('PDF-');
|
|
24
|
+
}
|
|
25
|
+
isEOFComment() {
|
|
26
|
+
return this.equals(PdfComment.EOF);
|
|
27
|
+
}
|
|
28
|
+
static versionComment(version) {
|
|
29
|
+
const comment = new PdfComment(`PDF-${version}`);
|
|
30
|
+
comment.postTokens = [PdfWhitespaceToken.NEWLINE];
|
|
31
|
+
return comment;
|
|
32
|
+
}
|
|
33
|
+
tokenize() {
|
|
34
|
+
return [new PdfCommentToken(this.raw)];
|
|
35
|
+
}
|
|
36
|
+
clone() {
|
|
37
|
+
return new PdfComment(new Uint8Array(this.raw));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PdfString } from './pdf-string';
|
|
2
|
+
export class PdfDate extends PdfString {
|
|
3
|
+
constructor(date) {
|
|
4
|
+
const pad = (n, width = 2) => n.toString().padStart(width, '0');
|
|
5
|
+
const year = date.getFullYear();
|
|
6
|
+
const month = pad(date.getMonth() + 1);
|
|
7
|
+
const day = pad(date.getDate());
|
|
8
|
+
const hours = pad(date.getHours());
|
|
9
|
+
const minutes = pad(date.getMinutes());
|
|
10
|
+
const seconds = pad(date.getSeconds());
|
|
11
|
+
const tzOffsetMinutes = -date.getTimezoneOffset(); // local to UTC
|
|
12
|
+
const sign = tzOffsetMinutes >= 0 ? '+' : '-';
|
|
13
|
+
const offsetHours = pad(Math.floor(Math.abs(tzOffsetMinutes) / 60));
|
|
14
|
+
const offsetMins = pad(Math.abs(tzOffsetMinutes) % 60);
|
|
15
|
+
const dateString = `D:${year}${month}${day}${hours}${minutes}${seconds}${sign}${offsetHours}'${offsetMins}'`;
|
|
16
|
+
super(dateString);
|
|
17
|
+
}
|
|
18
|
+
get date() {
|
|
19
|
+
const str = new TextDecoder().decode(this.raw);
|
|
20
|
+
const match = /^D:(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})([+\-Z])?(\d{2})?'?(\d{2})?'?/.exec(str);
|
|
21
|
+
if (!match) {
|
|
22
|
+
throw new Error(`Invalid PDF date string: ${str}`);
|
|
23
|
+
}
|
|
24
|
+
const [, year, month, day, hours, minutes, seconds, tzSign, tzHours, tzMinutes,] = match;
|
|
25
|
+
let date = new Date(Date.UTC(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hours), parseInt(minutes), parseInt(seconds)));
|
|
26
|
+
if (tzSign && tzSign !== 'Z') {
|
|
27
|
+
const offsetHours = parseInt(tzHours);
|
|
28
|
+
const offsetMinutes = parseInt(tzMinutes);
|
|
29
|
+
const totalOffsetMinutes = offsetHours * 60 + (isNaN(offsetMinutes) ? 0 : offsetMinutes);
|
|
30
|
+
const offsetMillis = totalOffsetMinutes * 60 * 1000;
|
|
31
|
+
if (tzSign === '+') {
|
|
32
|
+
date = new Date(date.getTime() - offsetMillis);
|
|
33
|
+
}
|
|
34
|
+
else if (tzSign === '-') {
|
|
35
|
+
date = new Date(date.getTime() + offsetMillis);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return date;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PdfToken } from '../tokens/token';
|
|
2
|
+
import { PdfName } from './pdf-name';
|
|
3
|
+
import { PdfObject } from './pdf-object';
|
|
4
|
+
export type PdfDictionaryEntry = PdfObject | undefined;
|
|
5
|
+
export type PdfDictionaryEntries = Record<string, PdfDictionaryEntry>;
|
|
6
|
+
export type PdfDictionaryMap = Map<PdfName, PdfObject | undefined>;
|
|
7
|
+
export declare class PdfDictionary<T extends PdfDictionaryEntries = PdfDictionaryEntries> extends PdfObject {
|
|
8
|
+
#private;
|
|
9
|
+
innerTokens: PdfToken[];
|
|
10
|
+
constructor(entries?: T | PdfDictionaryMap);
|
|
11
|
+
get<K extends Extract<keyof T, string>>(key: PdfName<K> | K): T[K] | undefined;
|
|
12
|
+
set<K extends Extract<keyof T, string>>(key: PdfName<K> | K, value: T[K]): void;
|
|
13
|
+
delete<K extends Extract<keyof T, string>>(key: PdfName<K> | K): void;
|
|
14
|
+
has<K extends Extract<keyof T, string>>(key: PdfName<K> | K): boolean;
|
|
15
|
+
get values(): {
|
|
16
|
+
readonly [K in Extract<keyof T, string>]: T[K];
|
|
17
|
+
};
|
|
18
|
+
protected tokenize(): PdfToken[];
|
|
19
|
+
copyFrom(other: PdfDictionary<any>): void;
|
|
20
|
+
clone(): this;
|
|
21
|
+
isModified(): boolean;
|
|
22
|
+
}
|