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
|
@@ -1,1213 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
-
import { PdfByteStreamTokeniser } from '../../src/core/tokeniser.js'
|
|
3
|
-
import { PdfToken } from '../../src/core/tokens/token.js'
|
|
4
|
-
import { PdfCommentToken } from '../../src/core/tokens/comment-token.js'
|
|
5
|
-
import { PdfWhitespaceToken } from '../../src/core/tokens/whitespace-token.js'
|
|
6
|
-
import { PdfStartDictionaryToken } from '../../src/core/tokens/start-dictionary-token.js'
|
|
7
|
-
import { PdfNameToken } from '../../src/core/tokens/name-token.js'
|
|
8
|
-
import { PdfEndDictionaryToken } from '../../src/core/tokens/end-dictionary-token.js'
|
|
9
|
-
import { PdfHexadecimalToken } from '../../src/core/tokens/hexadecimal-token.js'
|
|
10
|
-
import { PdfObjectReferenceToken } from '../../src/core/tokens/object-reference-token.js'
|
|
11
|
-
import { PdfStartArrayToken } from '../../src/core/tokens/start-array-token.js'
|
|
12
|
-
import { PdfNumberToken } from '../../src/core/tokens/number-token.js'
|
|
13
|
-
import { PdfEndArrayToken } from '../../src/core/tokens/end-array-token.js'
|
|
14
|
-
import { PdfStringToken } from '../../src/core/tokens/string-token.js'
|
|
15
|
-
import { PdfStartObjectToken } from '../../src/core/tokens/start-object-token.js'
|
|
16
|
-
import { PdfEndObjectToken } from '../../src/core/tokens/end-object-token.js'
|
|
17
|
-
import { PdfBooleanToken } from '../../src/core/tokens/boolean-token.js'
|
|
18
|
-
import { PdfNullToken } from '../../src/core/tokens/null-token.js'
|
|
19
|
-
import { PdfStartStreamToken } from '../../src/core/tokens/start-stream-token.js'
|
|
20
|
-
import { PdfStreamChunkToken } from '../../src/core/tokens/stream-chunk-token.js'
|
|
21
|
-
import { PdfEndStreamToken } from '../../src/core/tokens/end-stream-token.js'
|
|
22
|
-
import { PdfStartXRefToken } from '../../src/core/tokens/start-xref-token.js'
|
|
23
|
-
import { PdfTrailerToken } from '../../src/core/tokens/trailer-token.js'
|
|
24
|
-
import { PdfXRefTableStartToken } from '../../src/core/tokens/xref-table-start-token.js'
|
|
25
|
-
import { PdfXRefTableSectionStartToken } from '../../src/core/tokens/xref-table-section-start-token.js'
|
|
26
|
-
import { PdfXRefTableEntryToken } from '../../src/core/tokens/xref-table-entry-token.js'
|
|
27
|
-
import { concatUint8Arrays } from '../../src/utils/concatUint8Arrays.js'
|
|
28
|
-
import { bytesToString } from '../../src/utils/bytesToString.js'
|
|
29
|
-
import { stringToBytes } from '../../src/utils/stringToBytes.js'
|
|
30
|
-
import { ByteArray } from '../../src/types.js'
|
|
31
|
-
|
|
32
|
-
function stringToPdfTokens(str: string | ByteArray): PdfToken[] {
|
|
33
|
-
const reader = new PdfByteStreamTokeniser()
|
|
34
|
-
const tokens: PdfToken[] = []
|
|
35
|
-
|
|
36
|
-
const bytes = str instanceof Uint8Array ? str : stringToBytes(str)
|
|
37
|
-
|
|
38
|
-
// Break it into chunks to test that the tokeniser can handle data in chunks
|
|
39
|
-
const chunks: ByteArray[] = []
|
|
40
|
-
const chunkSize = 10
|
|
41
|
-
|
|
42
|
-
for (let i = 0; i < bytes.length; i += chunkSize) {
|
|
43
|
-
chunks.push(bytes.slice(i, i + chunkSize))
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
for (const chunk of chunks) {
|
|
47
|
-
reader.feedBytes(chunk)
|
|
48
|
-
|
|
49
|
-
for (const token of reader.nextItems()) {
|
|
50
|
-
tokens.push(token)
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
reader.eof = true
|
|
55
|
-
|
|
56
|
-
for (const token of reader.nextItems()) {
|
|
57
|
-
tokens.push(token)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return tokens
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
describe('PDF tokeniser', () => {
|
|
64
|
-
it('should tokenise a PDF comment', () => {
|
|
65
|
-
const pdfString = '% This is a comment\n % This is another comment'
|
|
66
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
67
|
-
|
|
68
|
-
expect(tokens).toEqual([
|
|
69
|
-
new PdfCommentToken(' This is a comment'),
|
|
70
|
-
PdfWhitespaceToken.NEWLINE,
|
|
71
|
-
PdfWhitespaceToken.SPACE,
|
|
72
|
-
PdfWhitespaceToken.SPACE,
|
|
73
|
-
new PdfCommentToken(' This is another comment'),
|
|
74
|
-
])
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
it('should tokenise comments between other tokens', () => {
|
|
78
|
-
const pdfString = '<</Value /Name % This is a comment>>'
|
|
79
|
-
const expectedTokens = [
|
|
80
|
-
new PdfStartDictionaryToken(),
|
|
81
|
-
new PdfNameToken('Value'),
|
|
82
|
-
PdfWhitespaceToken.SPACE,
|
|
83
|
-
new PdfNameToken('Name'),
|
|
84
|
-
PdfWhitespaceToken.SPACE,
|
|
85
|
-
PdfWhitespaceToken.SPACE,
|
|
86
|
-
new PdfCommentToken(' This is a comment'),
|
|
87
|
-
new PdfEndDictionaryToken(),
|
|
88
|
-
]
|
|
89
|
-
|
|
90
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
91
|
-
expect(tokens).toEqual(expectedTokens)
|
|
92
|
-
})
|
|
93
|
-
|
|
94
|
-
it('should tokenise a PDF dictionary', () => {
|
|
95
|
-
const pdfString =
|
|
96
|
-
'<< /Type /Page /Id <deadbeef> /Parent 1 0 R /MediaBox[ 0 0 612 792 ] >>'
|
|
97
|
-
const expectedTokens = [
|
|
98
|
-
new PdfStartDictionaryToken(),
|
|
99
|
-
PdfWhitespaceToken.SPACE,
|
|
100
|
-
new PdfNameToken('Type'),
|
|
101
|
-
PdfWhitespaceToken.SPACE,
|
|
102
|
-
new PdfNameToken('Page'),
|
|
103
|
-
PdfWhitespaceToken.SPACE,
|
|
104
|
-
new PdfNameToken('Id'),
|
|
105
|
-
PdfWhitespaceToken.SPACE,
|
|
106
|
-
new PdfHexadecimalToken('deadbeef'),
|
|
107
|
-
PdfWhitespaceToken.SPACE,
|
|
108
|
-
new PdfNameToken('Parent'),
|
|
109
|
-
PdfWhitespaceToken.SPACE,
|
|
110
|
-
new PdfObjectReferenceToken(1, 0),
|
|
111
|
-
PdfWhitespaceToken.SPACE,
|
|
112
|
-
new PdfNameToken('MediaBox'),
|
|
113
|
-
new PdfStartArrayToken(),
|
|
114
|
-
PdfWhitespaceToken.SPACE,
|
|
115
|
-
new PdfNumberToken(0),
|
|
116
|
-
PdfWhitespaceToken.SPACE,
|
|
117
|
-
new PdfNumberToken(0),
|
|
118
|
-
PdfWhitespaceToken.SPACE,
|
|
119
|
-
new PdfNumberToken(612),
|
|
120
|
-
PdfWhitespaceToken.SPACE,
|
|
121
|
-
new PdfNumberToken(792),
|
|
122
|
-
PdfWhitespaceToken.SPACE,
|
|
123
|
-
new PdfEndArrayToken(),
|
|
124
|
-
PdfWhitespaceToken.SPACE,
|
|
125
|
-
new PdfEndDictionaryToken(),
|
|
126
|
-
]
|
|
127
|
-
|
|
128
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
129
|
-
expect(tokens).toEqual(expectedTokens)
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
it('should tokenise nested dictionaries', () => {
|
|
133
|
-
const pdfString = '<</Sub << /Type /Page /Parent 1 0 R >> >>'
|
|
134
|
-
const expectedTokens = [
|
|
135
|
-
new PdfStartDictionaryToken(),
|
|
136
|
-
new PdfNameToken('Sub'),
|
|
137
|
-
PdfWhitespaceToken.SPACE,
|
|
138
|
-
new PdfStartDictionaryToken(),
|
|
139
|
-
PdfWhitespaceToken.SPACE,
|
|
140
|
-
new PdfNameToken('Type'),
|
|
141
|
-
PdfWhitespaceToken.SPACE,
|
|
142
|
-
new PdfNameToken('Page'),
|
|
143
|
-
PdfWhitespaceToken.SPACE,
|
|
144
|
-
new PdfNameToken('Parent'),
|
|
145
|
-
PdfWhitespaceToken.SPACE,
|
|
146
|
-
new PdfObjectReferenceToken(1, 0),
|
|
147
|
-
PdfWhitespaceToken.SPACE,
|
|
148
|
-
new PdfEndDictionaryToken(),
|
|
149
|
-
PdfWhitespaceToken.SPACE,
|
|
150
|
-
new PdfEndDictionaryToken(),
|
|
151
|
-
]
|
|
152
|
-
|
|
153
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
154
|
-
expect(tokens).toEqual(expectedTokens)
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
it('should handle nested arrays', () => {
|
|
158
|
-
const pdfString = '<< /Type /Page /MediaBox [ 0 0 [ 612 792 ] ] >>'
|
|
159
|
-
const expectedTokens = [
|
|
160
|
-
new PdfStartDictionaryToken(),
|
|
161
|
-
PdfWhitespaceToken.SPACE,
|
|
162
|
-
new PdfNameToken('Type'),
|
|
163
|
-
PdfWhitespaceToken.SPACE,
|
|
164
|
-
new PdfNameToken('Page'),
|
|
165
|
-
PdfWhitespaceToken.SPACE,
|
|
166
|
-
new PdfNameToken('MediaBox'),
|
|
167
|
-
PdfWhitespaceToken.SPACE,
|
|
168
|
-
new PdfStartArrayToken(),
|
|
169
|
-
PdfWhitespaceToken.SPACE,
|
|
170
|
-
new PdfNumberToken(0),
|
|
171
|
-
PdfWhitespaceToken.SPACE,
|
|
172
|
-
new PdfNumberToken(0),
|
|
173
|
-
PdfWhitespaceToken.SPACE,
|
|
174
|
-
new PdfStartArrayToken(),
|
|
175
|
-
PdfWhitespaceToken.SPACE,
|
|
176
|
-
new PdfNumberToken(612),
|
|
177
|
-
PdfWhitespaceToken.SPACE,
|
|
178
|
-
new PdfNumberToken(792),
|
|
179
|
-
PdfWhitespaceToken.SPACE,
|
|
180
|
-
PdfWhitespaceToken.SPACE,
|
|
181
|
-
PdfWhitespaceToken.SPACE,
|
|
182
|
-
new PdfEndArrayToken(),
|
|
183
|
-
PdfWhitespaceToken.SPACE,
|
|
184
|
-
new PdfEndArrayToken(),
|
|
185
|
-
PdfWhitespaceToken.SPACE,
|
|
186
|
-
PdfWhitespaceToken.SPACE,
|
|
187
|
-
new PdfEndDictionaryToken(),
|
|
188
|
-
]
|
|
189
|
-
|
|
190
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
191
|
-
expect(tokens).toEqual(expectedTokens)
|
|
192
|
-
})
|
|
193
|
-
|
|
194
|
-
it('should handle hex strings', () => {
|
|
195
|
-
const pdfString = '<deadbeef>'
|
|
196
|
-
const expectedToken = new PdfHexadecimalToken('deadbeef')
|
|
197
|
-
|
|
198
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
199
|
-
expect(tokens).toEqual([expectedToken])
|
|
200
|
-
})
|
|
201
|
-
|
|
202
|
-
it('should handle object references', () => {
|
|
203
|
-
const pdfString = '1 0 R'
|
|
204
|
-
const expectedToken = new PdfObjectReferenceToken(1, 0)
|
|
205
|
-
|
|
206
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
207
|
-
expect(tokens).toEqual([expectedToken])
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
it('should handle strings', () => {
|
|
211
|
-
const pdfString = '<</Type (Hello, World!)/Something/Test>>'
|
|
212
|
-
const expectedTokens = [
|
|
213
|
-
new PdfStartDictionaryToken(),
|
|
214
|
-
new PdfNameToken('Type'),
|
|
215
|
-
PdfWhitespaceToken.SPACE,
|
|
216
|
-
new PdfStringToken('Hello, World!'),
|
|
217
|
-
new PdfNameToken('Something'),
|
|
218
|
-
new PdfNameToken('Test'),
|
|
219
|
-
new PdfEndDictionaryToken(),
|
|
220
|
-
]
|
|
221
|
-
|
|
222
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
223
|
-
expect(tokens).toEqual(expectedTokens)
|
|
224
|
-
})
|
|
225
|
-
|
|
226
|
-
it('should handle numbers', () => {
|
|
227
|
-
const pdfString = ' 123.456 '
|
|
228
|
-
const expectedTokens = [
|
|
229
|
-
PdfWhitespaceToken.SPACE,
|
|
230
|
-
new PdfNumberToken(123.456, 0, 3),
|
|
231
|
-
PdfWhitespaceToken.SPACE,
|
|
232
|
-
]
|
|
233
|
-
|
|
234
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
235
|
-
expect(tokens).toEqual(expectedTokens)
|
|
236
|
-
})
|
|
237
|
-
|
|
238
|
-
it('should handle objects', () => {
|
|
239
|
-
const pdfString = [
|
|
240
|
-
'0 0 obj',
|
|
241
|
-
'<<',
|
|
242
|
-
'/Type /Page',
|
|
243
|
-
'/MediaBox [ 0 0 612 792 ]',
|
|
244
|
-
'>>',
|
|
245
|
-
'endobj',
|
|
246
|
-
].join('\n')
|
|
247
|
-
|
|
248
|
-
const expectedTokens = [
|
|
249
|
-
new PdfStartObjectToken(0, 0, 0),
|
|
250
|
-
PdfWhitespaceToken.NEWLINE,
|
|
251
|
-
new PdfStartDictionaryToken(),
|
|
252
|
-
PdfWhitespaceToken.NEWLINE,
|
|
253
|
-
new PdfNameToken('Type'),
|
|
254
|
-
PdfWhitespaceToken.SPACE,
|
|
255
|
-
new PdfNameToken('Page'),
|
|
256
|
-
PdfWhitespaceToken.NEWLINE,
|
|
257
|
-
new PdfNameToken('MediaBox'),
|
|
258
|
-
PdfWhitespaceToken.SPACE,
|
|
259
|
-
new PdfStartArrayToken(),
|
|
260
|
-
PdfWhitespaceToken.SPACE,
|
|
261
|
-
new PdfNumberToken(0),
|
|
262
|
-
PdfWhitespaceToken.SPACE,
|
|
263
|
-
new PdfNumberToken(0),
|
|
264
|
-
PdfWhitespaceToken.SPACE,
|
|
265
|
-
new PdfNumberToken(612),
|
|
266
|
-
PdfWhitespaceToken.SPACE,
|
|
267
|
-
new PdfNumberToken(792),
|
|
268
|
-
PdfWhitespaceToken.SPACE,
|
|
269
|
-
new PdfEndArrayToken(),
|
|
270
|
-
PdfWhitespaceToken.NEWLINE,
|
|
271
|
-
new PdfEndDictionaryToken(),
|
|
272
|
-
PdfWhitespaceToken.NEWLINE,
|
|
273
|
-
new PdfEndObjectToken(),
|
|
274
|
-
]
|
|
275
|
-
|
|
276
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
277
|
-
expect(tokens).toEqual(expectedTokens)
|
|
278
|
-
})
|
|
279
|
-
|
|
280
|
-
it('should handle objects 2', () => {
|
|
281
|
-
const pdfString = `\n30 0 obj
|
|
282
|
-
<</Linearized 1/L 71443/H[548 187]/O 36/E 2636/N 1/T 71078>>
|
|
283
|
-
endobj`
|
|
284
|
-
|
|
285
|
-
const expectedTokens = [
|
|
286
|
-
PdfWhitespaceToken.NEWLINE,
|
|
287
|
-
new PdfStartObjectToken(30, 0, 1),
|
|
288
|
-
PdfWhitespaceToken.NEWLINE,
|
|
289
|
-
new PdfStartDictionaryToken(),
|
|
290
|
-
new PdfNameToken('Linearized'),
|
|
291
|
-
PdfWhitespaceToken.SPACE,
|
|
292
|
-
new PdfNumberToken(1),
|
|
293
|
-
new PdfNameToken('L'),
|
|
294
|
-
PdfWhitespaceToken.SPACE,
|
|
295
|
-
new PdfNumberToken(71443),
|
|
296
|
-
new PdfNameToken('H'),
|
|
297
|
-
new PdfStartArrayToken(),
|
|
298
|
-
new PdfNumberToken(548),
|
|
299
|
-
PdfWhitespaceToken.SPACE,
|
|
300
|
-
new PdfNumberToken(187),
|
|
301
|
-
new PdfEndArrayToken(),
|
|
302
|
-
new PdfNameToken('O'),
|
|
303
|
-
PdfWhitespaceToken.SPACE,
|
|
304
|
-
new PdfNumberToken(36),
|
|
305
|
-
new PdfNameToken('E'),
|
|
306
|
-
PdfWhitespaceToken.SPACE,
|
|
307
|
-
new PdfNumberToken(2636),
|
|
308
|
-
new PdfNameToken('N'),
|
|
309
|
-
PdfWhitespaceToken.SPACE,
|
|
310
|
-
new PdfNumberToken(1),
|
|
311
|
-
new PdfNameToken('T'),
|
|
312
|
-
PdfWhitespaceToken.SPACE,
|
|
313
|
-
PdfWhitespaceToken.SPACE,
|
|
314
|
-
new PdfNumberToken(71078),
|
|
315
|
-
new PdfEndDictionaryToken(),
|
|
316
|
-
PdfWhitespaceToken.NEWLINE,
|
|
317
|
-
new PdfEndObjectToken(),
|
|
318
|
-
]
|
|
319
|
-
|
|
320
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
321
|
-
expect(tokens).toEqual(expectedTokens)
|
|
322
|
-
})
|
|
323
|
-
|
|
324
|
-
it('should handle objects 3', () => {
|
|
325
|
-
const pdfString = `<</Length 49 /Type /XRef /Size 41 /Filter /FlateDecode /Index [30 11] /Encrypt 32 0 R /Root 33 0 R /Info 16 0 R /ID [<F68F2B76D21DB2110A00000000000000><3F5AB404D0A3432E838AB405E7DD80F9>] /Prev 71079 /W [1 2 1] /DecodeParms <</Columns 4/Predictor 12>>>>`
|
|
326
|
-
|
|
327
|
-
const expectedTokens = [
|
|
328
|
-
new PdfStartDictionaryToken(),
|
|
329
|
-
new PdfNameToken('Length'),
|
|
330
|
-
PdfWhitespaceToken.SPACE,
|
|
331
|
-
PdfWhitespaceToken.SPACE,
|
|
332
|
-
PdfWhitespaceToken.SPACE,
|
|
333
|
-
PdfWhitespaceToken.SPACE,
|
|
334
|
-
new PdfNumberToken(49),
|
|
335
|
-
PdfWhitespaceToken.SPACE,
|
|
336
|
-
new PdfNameToken('Type'),
|
|
337
|
-
PdfWhitespaceToken.SPACE,
|
|
338
|
-
new PdfNameToken('XRef'),
|
|
339
|
-
PdfWhitespaceToken.SPACE,
|
|
340
|
-
new PdfNameToken('Size'),
|
|
341
|
-
PdfWhitespaceToken.SPACE,
|
|
342
|
-
new PdfNumberToken(41),
|
|
343
|
-
PdfWhitespaceToken.SPACE,
|
|
344
|
-
new PdfNameToken('Filter'),
|
|
345
|
-
PdfWhitespaceToken.SPACE,
|
|
346
|
-
new PdfNameToken('FlateDecode'),
|
|
347
|
-
PdfWhitespaceToken.SPACE,
|
|
348
|
-
new PdfNameToken('Index'),
|
|
349
|
-
PdfWhitespaceToken.SPACE,
|
|
350
|
-
new PdfStartArrayToken(),
|
|
351
|
-
new PdfNumberToken(30),
|
|
352
|
-
PdfWhitespaceToken.SPACE,
|
|
353
|
-
new PdfNumberToken(11),
|
|
354
|
-
new PdfEndArrayToken(),
|
|
355
|
-
PdfWhitespaceToken.SPACE,
|
|
356
|
-
new PdfNameToken('Encrypt'),
|
|
357
|
-
PdfWhitespaceToken.SPACE,
|
|
358
|
-
new PdfObjectReferenceToken(32, 0),
|
|
359
|
-
PdfWhitespaceToken.SPACE,
|
|
360
|
-
new PdfNameToken('Root'),
|
|
361
|
-
PdfWhitespaceToken.SPACE,
|
|
362
|
-
new PdfObjectReferenceToken(33, 0),
|
|
363
|
-
PdfWhitespaceToken.SPACE,
|
|
364
|
-
new PdfNameToken('Info'),
|
|
365
|
-
PdfWhitespaceToken.SPACE,
|
|
366
|
-
new PdfObjectReferenceToken(16, 0),
|
|
367
|
-
PdfWhitespaceToken.SPACE,
|
|
368
|
-
new PdfNameToken('ID'),
|
|
369
|
-
PdfWhitespaceToken.SPACE,
|
|
370
|
-
new PdfStartArrayToken(),
|
|
371
|
-
new PdfHexadecimalToken('F68F2B76D21DB2110A00000000000000'),
|
|
372
|
-
new PdfHexadecimalToken('3F5AB404D0A3432E838AB405E7DD80F9'),
|
|
373
|
-
new PdfEndArrayToken(),
|
|
374
|
-
PdfWhitespaceToken.SPACE,
|
|
375
|
-
new PdfNameToken('Prev'),
|
|
376
|
-
PdfWhitespaceToken.SPACE,
|
|
377
|
-
new PdfNumberToken(71079),
|
|
378
|
-
PdfWhitespaceToken.SPACE,
|
|
379
|
-
new PdfNameToken('W'),
|
|
380
|
-
PdfWhitespaceToken.SPACE,
|
|
381
|
-
new PdfStartArrayToken(),
|
|
382
|
-
new PdfNumberToken(1),
|
|
383
|
-
PdfWhitespaceToken.SPACE,
|
|
384
|
-
new PdfNumberToken(2),
|
|
385
|
-
PdfWhitespaceToken.SPACE,
|
|
386
|
-
new PdfNumberToken(1),
|
|
387
|
-
new PdfEndArrayToken(),
|
|
388
|
-
PdfWhitespaceToken.SPACE,
|
|
389
|
-
new PdfNameToken('DecodeParms'),
|
|
390
|
-
PdfWhitespaceToken.SPACE,
|
|
391
|
-
new PdfStartDictionaryToken(),
|
|
392
|
-
new PdfNameToken('Columns'),
|
|
393
|
-
PdfWhitespaceToken.SPACE,
|
|
394
|
-
new PdfNumberToken(4),
|
|
395
|
-
new PdfNameToken('Predictor'),
|
|
396
|
-
PdfWhitespaceToken.SPACE,
|
|
397
|
-
new PdfNumberToken(12),
|
|
398
|
-
new PdfEndDictionaryToken(),
|
|
399
|
-
new PdfEndDictionaryToken(),
|
|
400
|
-
]
|
|
401
|
-
|
|
402
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
403
|
-
expect(tokens).toEqual(expectedTokens)
|
|
404
|
-
})
|
|
405
|
-
|
|
406
|
-
it('should handle objects 4', () => {
|
|
407
|
-
const pdfString = `32 0 obj
|
|
408
|
-
<</StrF/StdCF/O(123)/Filter/Standard/R 4/CF<</StdCF<</Type/CryptFilter/Length 16/CFM/AESV2/EncryptMetadata false>>>>/U(456)/EncryptMetadata false/Length 128/StmF/StdCF/P -532/V 4>>
|
|
409
|
-
endobj`
|
|
410
|
-
|
|
411
|
-
const expectedTokens = [
|
|
412
|
-
new PdfStartObjectToken(32, 0, 0),
|
|
413
|
-
PdfWhitespaceToken.NEWLINE,
|
|
414
|
-
new PdfStartDictionaryToken(),
|
|
415
|
-
new PdfNameToken('StrF'),
|
|
416
|
-
new PdfNameToken('StdCF'),
|
|
417
|
-
new PdfNameToken('O'),
|
|
418
|
-
new PdfStringToken('123'),
|
|
419
|
-
new PdfNameToken('Filter'),
|
|
420
|
-
new PdfNameToken('Standard'),
|
|
421
|
-
new PdfNameToken('R'),
|
|
422
|
-
PdfWhitespaceToken.SPACE,
|
|
423
|
-
new PdfNumberToken(4),
|
|
424
|
-
new PdfNameToken('CF'),
|
|
425
|
-
new PdfStartDictionaryToken(),
|
|
426
|
-
new PdfNameToken('StdCF'),
|
|
427
|
-
new PdfStartDictionaryToken(),
|
|
428
|
-
new PdfNameToken('Type'),
|
|
429
|
-
new PdfNameToken('CryptFilter'),
|
|
430
|
-
new PdfNameToken('Length'),
|
|
431
|
-
PdfWhitespaceToken.SPACE,
|
|
432
|
-
new PdfNumberToken(16),
|
|
433
|
-
new PdfNameToken('CFM'),
|
|
434
|
-
new PdfNameToken('AESV2'),
|
|
435
|
-
new PdfNameToken('EncryptMetadata'),
|
|
436
|
-
PdfWhitespaceToken.SPACE,
|
|
437
|
-
new PdfBooleanToken(false),
|
|
438
|
-
new PdfEndDictionaryToken(),
|
|
439
|
-
new PdfEndDictionaryToken(),
|
|
440
|
-
new PdfNameToken('U'),
|
|
441
|
-
new PdfStringToken('456'),
|
|
442
|
-
new PdfNameToken('EncryptMetadata'),
|
|
443
|
-
PdfWhitespaceToken.SPACE,
|
|
444
|
-
new PdfBooleanToken(false),
|
|
445
|
-
new PdfNameToken('Length'),
|
|
446
|
-
PdfWhitespaceToken.SPACE,
|
|
447
|
-
new PdfNumberToken(128),
|
|
448
|
-
new PdfNameToken('StmF'),
|
|
449
|
-
new PdfNameToken('StdCF'),
|
|
450
|
-
new PdfNameToken('P'),
|
|
451
|
-
PdfWhitespaceToken.SPACE,
|
|
452
|
-
new PdfNumberToken(-532),
|
|
453
|
-
new PdfNameToken('V'),
|
|
454
|
-
PdfWhitespaceToken.SPACE,
|
|
455
|
-
new PdfNumberToken(4),
|
|
456
|
-
new PdfEndDictionaryToken(),
|
|
457
|
-
PdfWhitespaceToken.NEWLINE,
|
|
458
|
-
new PdfEndObjectToken(),
|
|
459
|
-
]
|
|
460
|
-
|
|
461
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
462
|
-
expect(tokens).toEqual(expectedTokens)
|
|
463
|
-
})
|
|
464
|
-
|
|
465
|
-
it('should handle objects 5', () => {
|
|
466
|
-
const pdfString = `3 0 obj
|
|
467
|
-
<</D[18 0 R/XYZ 0 792 null]/S/GoTo>>
|
|
468
|
-
endobj`
|
|
469
|
-
|
|
470
|
-
const expectedTokens = [
|
|
471
|
-
new PdfStartObjectToken(3, 0, 0),
|
|
472
|
-
PdfWhitespaceToken.NEWLINE,
|
|
473
|
-
new PdfStartDictionaryToken(),
|
|
474
|
-
new PdfNameToken('D'),
|
|
475
|
-
new PdfStartArrayToken(),
|
|
476
|
-
new PdfObjectReferenceToken(18, 0),
|
|
477
|
-
new PdfNameToken('XYZ'),
|
|
478
|
-
PdfWhitespaceToken.SPACE,
|
|
479
|
-
new PdfNumberToken(0),
|
|
480
|
-
PdfWhitespaceToken.SPACE,
|
|
481
|
-
new PdfNumberToken(792),
|
|
482
|
-
PdfWhitespaceToken.SPACE,
|
|
483
|
-
new PdfNullToken(),
|
|
484
|
-
new PdfEndArrayToken(),
|
|
485
|
-
new PdfNameToken('S'),
|
|
486
|
-
new PdfNameToken('GoTo'),
|
|
487
|
-
new PdfEndDictionaryToken(),
|
|
488
|
-
PdfWhitespaceToken.NEWLINE,
|
|
489
|
-
new PdfEndObjectToken(),
|
|
490
|
-
]
|
|
491
|
-
|
|
492
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
493
|
-
expect(tokens).toEqual(expectedTokens)
|
|
494
|
-
})
|
|
495
|
-
|
|
496
|
-
it('should handle booleans', () => {
|
|
497
|
-
const pdfString = '<</Contents true/Another false >>'
|
|
498
|
-
const expectedTokens = [
|
|
499
|
-
new PdfStartDictionaryToken(),
|
|
500
|
-
new PdfNameToken('Contents'),
|
|
501
|
-
PdfWhitespaceToken.SPACE,
|
|
502
|
-
new PdfBooleanToken(true),
|
|
503
|
-
new PdfNameToken('Another'),
|
|
504
|
-
PdfWhitespaceToken.SPACE,
|
|
505
|
-
new PdfBooleanToken(false),
|
|
506
|
-
PdfWhitespaceToken.SPACE,
|
|
507
|
-
new PdfEndDictionaryToken(),
|
|
508
|
-
]
|
|
509
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
510
|
-
expect(tokens).toEqual(expectedTokens)
|
|
511
|
-
})
|
|
512
|
-
|
|
513
|
-
it('should handle null', () => {
|
|
514
|
-
const pdfString = '<</Contents null /Another /null>>'
|
|
515
|
-
const expectedTokens = [
|
|
516
|
-
new PdfStartDictionaryToken(),
|
|
517
|
-
new PdfNameToken('Contents'),
|
|
518
|
-
PdfWhitespaceToken.SPACE,
|
|
519
|
-
new PdfNullToken(),
|
|
520
|
-
PdfWhitespaceToken.SPACE,
|
|
521
|
-
new PdfNameToken('Another'),
|
|
522
|
-
PdfWhitespaceToken.SPACE,
|
|
523
|
-
new PdfNameToken('null'),
|
|
524
|
-
new PdfEndDictionaryToken(),
|
|
525
|
-
]
|
|
526
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
527
|
-
expect(tokens).toEqual(expectedTokens)
|
|
528
|
-
})
|
|
529
|
-
|
|
530
|
-
it('should handle streams', () => {
|
|
531
|
-
const pdfString = [
|
|
532
|
-
'',
|
|
533
|
-
'',
|
|
534
|
-
'0 0 obj',
|
|
535
|
-
'<<',
|
|
536
|
-
'/Type /Page',
|
|
537
|
-
'/MediaBox [ 0 0 612 792 ]',
|
|
538
|
-
'>> ',
|
|
539
|
-
' stream',
|
|
540
|
-
'Hello, World!',
|
|
541
|
-
'endstream',
|
|
542
|
-
'endobj',
|
|
543
|
-
].join('\n')
|
|
544
|
-
|
|
545
|
-
const expectedTokens = [
|
|
546
|
-
PdfWhitespaceToken.NEWLINE,
|
|
547
|
-
PdfWhitespaceToken.NEWLINE,
|
|
548
|
-
new PdfStartObjectToken(0, 0, 2),
|
|
549
|
-
PdfWhitespaceToken.NEWLINE,
|
|
550
|
-
new PdfStartDictionaryToken(),
|
|
551
|
-
PdfWhitespaceToken.NEWLINE,
|
|
552
|
-
new PdfNameToken('Type'),
|
|
553
|
-
PdfWhitespaceToken.SPACE,
|
|
554
|
-
new PdfNameToken('Page'),
|
|
555
|
-
PdfWhitespaceToken.NEWLINE,
|
|
556
|
-
new PdfNameToken('MediaBox'),
|
|
557
|
-
PdfWhitespaceToken.SPACE,
|
|
558
|
-
new PdfStartArrayToken(),
|
|
559
|
-
PdfWhitespaceToken.SPACE,
|
|
560
|
-
new PdfNumberToken(0),
|
|
561
|
-
PdfWhitespaceToken.SPACE,
|
|
562
|
-
new PdfNumberToken(0),
|
|
563
|
-
PdfWhitespaceToken.SPACE,
|
|
564
|
-
new PdfNumberToken(612),
|
|
565
|
-
PdfWhitespaceToken.SPACE,
|
|
566
|
-
new PdfNumberToken(792),
|
|
567
|
-
PdfWhitespaceToken.SPACE,
|
|
568
|
-
new PdfEndArrayToken(),
|
|
569
|
-
PdfWhitespaceToken.NEWLINE,
|
|
570
|
-
new PdfEndDictionaryToken(),
|
|
571
|
-
PdfWhitespaceToken.SPACE,
|
|
572
|
-
PdfWhitespaceToken.NEWLINE,
|
|
573
|
-
PdfWhitespaceToken.SPACE,
|
|
574
|
-
new PdfStartStreamToken(stringToBytes('stream\n')),
|
|
575
|
-
new PdfStreamChunkToken(stringToBytes('Hello, World!\n')),
|
|
576
|
-
new PdfEndStreamToken(),
|
|
577
|
-
PdfWhitespaceToken.NEWLINE,
|
|
578
|
-
new PdfEndObjectToken(),
|
|
579
|
-
]
|
|
580
|
-
|
|
581
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
582
|
-
expect(tokens).toEqual(expectedTokens)
|
|
583
|
-
})
|
|
584
|
-
|
|
585
|
-
it('should handle streams on the same line as endstream', () => {
|
|
586
|
-
const pdfString = [
|
|
587
|
-
'0 0 obj',
|
|
588
|
-
'<<',
|
|
589
|
-
'/Type /Page',
|
|
590
|
-
'/MediaBox [ 0 0 612 792 ]',
|
|
591
|
-
'>>',
|
|
592
|
-
'stream',
|
|
593
|
-
'Hello, World!endstream',
|
|
594
|
-
'endobj',
|
|
595
|
-
].join('\n')
|
|
596
|
-
|
|
597
|
-
expect(stringToPdfTokens(pdfString)).toEqual([
|
|
598
|
-
new PdfStartObjectToken(0, 0, 0),
|
|
599
|
-
PdfWhitespaceToken.NEWLINE,
|
|
600
|
-
new PdfStartDictionaryToken(),
|
|
601
|
-
PdfWhitespaceToken.NEWLINE,
|
|
602
|
-
new PdfNameToken('Type'),
|
|
603
|
-
PdfWhitespaceToken.SPACE,
|
|
604
|
-
new PdfNameToken('Page'),
|
|
605
|
-
PdfWhitespaceToken.NEWLINE,
|
|
606
|
-
new PdfNameToken('MediaBox'),
|
|
607
|
-
PdfWhitespaceToken.SPACE,
|
|
608
|
-
new PdfStartArrayToken(),
|
|
609
|
-
PdfWhitespaceToken.SPACE,
|
|
610
|
-
new PdfNumberToken(0),
|
|
611
|
-
PdfWhitespaceToken.SPACE,
|
|
612
|
-
new PdfNumberToken(0),
|
|
613
|
-
PdfWhitespaceToken.SPACE,
|
|
614
|
-
new PdfNumberToken(612),
|
|
615
|
-
PdfWhitespaceToken.SPACE,
|
|
616
|
-
new PdfNumberToken(792),
|
|
617
|
-
PdfWhitespaceToken.SPACE,
|
|
618
|
-
new PdfEndArrayToken(),
|
|
619
|
-
PdfWhitespaceToken.NEWLINE,
|
|
620
|
-
new PdfEndDictionaryToken(),
|
|
621
|
-
PdfWhitespaceToken.NEWLINE,
|
|
622
|
-
new PdfStartStreamToken(stringToBytes('stream\n')),
|
|
623
|
-
new PdfStreamChunkToken(stringToBytes('Hello, World!')),
|
|
624
|
-
new PdfEndStreamToken(stringToBytes('endstream')),
|
|
625
|
-
PdfWhitespaceToken.NEWLINE,
|
|
626
|
-
new PdfEndObjectToken(),
|
|
627
|
-
])
|
|
628
|
-
})
|
|
629
|
-
|
|
630
|
-
it('should allow endstream to not be on a new line', () => {
|
|
631
|
-
const pdfString = [
|
|
632
|
-
'0 0 obj',
|
|
633
|
-
'<<',
|
|
634
|
-
'/Type /Page',
|
|
635
|
-
'/MediaBox [ 0 0 612 792 ]',
|
|
636
|
-
'>>',
|
|
637
|
-
'stream',
|
|
638
|
-
'Hello, World!',
|
|
639
|
-
'endstream',
|
|
640
|
-
'endobj',
|
|
641
|
-
].join('\n')
|
|
642
|
-
|
|
643
|
-
const expectedTokens = [
|
|
644
|
-
new PdfStartObjectToken(0, 0, 0),
|
|
645
|
-
PdfWhitespaceToken.NEWLINE,
|
|
646
|
-
new PdfStartDictionaryToken(),
|
|
647
|
-
PdfWhitespaceToken.NEWLINE,
|
|
648
|
-
new PdfNameToken('Type'),
|
|
649
|
-
PdfWhitespaceToken.SPACE,
|
|
650
|
-
new PdfNameToken('Page'),
|
|
651
|
-
PdfWhitespaceToken.NEWLINE,
|
|
652
|
-
new PdfNameToken('MediaBox'),
|
|
653
|
-
PdfWhitespaceToken.SPACE,
|
|
654
|
-
new PdfStartArrayToken(),
|
|
655
|
-
PdfWhitespaceToken.SPACE,
|
|
656
|
-
new PdfNumberToken(0),
|
|
657
|
-
PdfWhitespaceToken.SPACE,
|
|
658
|
-
new PdfNumberToken(0),
|
|
659
|
-
PdfWhitespaceToken.SPACE,
|
|
660
|
-
new PdfNumberToken(612),
|
|
661
|
-
PdfWhitespaceToken.SPACE,
|
|
662
|
-
new PdfNumberToken(792),
|
|
663
|
-
PdfWhitespaceToken.SPACE,
|
|
664
|
-
new PdfEndArrayToken(),
|
|
665
|
-
PdfWhitespaceToken.NEWLINE,
|
|
666
|
-
new PdfEndDictionaryToken(),
|
|
667
|
-
PdfWhitespaceToken.NEWLINE,
|
|
668
|
-
new PdfStartStreamToken(stringToBytes('stream\n')),
|
|
669
|
-
new PdfStreamChunkToken(stringToBytes('Hello, World!\n')),
|
|
670
|
-
new PdfEndStreamToken(),
|
|
671
|
-
PdfWhitespaceToken.NEWLINE,
|
|
672
|
-
new PdfEndObjectToken(),
|
|
673
|
-
]
|
|
674
|
-
|
|
675
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
676
|
-
expect(tokens).toEqual(expectedTokens)
|
|
677
|
-
})
|
|
678
|
-
|
|
679
|
-
it('should handle a multi-line object', () => {
|
|
680
|
-
const str = `37 0 obj
|
|
681
|
-
<</Filter /FlateDecode /Length 528>>stream
|
|
682
|
-
test
|
|
683
|
-
test
|
|
684
|
-
test
|
|
685
|
-
endstream
|
|
686
|
-
endobj`
|
|
687
|
-
|
|
688
|
-
const expectedTokens = [
|
|
689
|
-
new PdfStartObjectToken(37, 0, 0),
|
|
690
|
-
PdfWhitespaceToken.NEWLINE,
|
|
691
|
-
new PdfStartDictionaryToken(),
|
|
692
|
-
new PdfNameToken('Filter'),
|
|
693
|
-
PdfWhitespaceToken.SPACE,
|
|
694
|
-
new PdfNameToken('FlateDecode'),
|
|
695
|
-
PdfWhitespaceToken.SPACE,
|
|
696
|
-
new PdfNameToken('Length'),
|
|
697
|
-
PdfWhitespaceToken.SPACE,
|
|
698
|
-
PdfWhitespaceToken.SPACE,
|
|
699
|
-
PdfWhitespaceToken.SPACE,
|
|
700
|
-
PdfWhitespaceToken.SPACE,
|
|
701
|
-
new PdfNumberToken(528),
|
|
702
|
-
new PdfEndDictionaryToken(),
|
|
703
|
-
new PdfStartStreamToken(stringToBytes('stream\n')),
|
|
704
|
-
new PdfStreamChunkToken(stringToBytes('test\ntest\ntest\n')),
|
|
705
|
-
new PdfEndStreamToken(),
|
|
706
|
-
PdfWhitespaceToken.NEWLINE,
|
|
707
|
-
new PdfEndObjectToken(),
|
|
708
|
-
]
|
|
709
|
-
|
|
710
|
-
const tokens = stringToPdfTokens(str)
|
|
711
|
-
expect(tokens).toEqual(expectedTokens)
|
|
712
|
-
})
|
|
713
|
-
|
|
714
|
-
it('should handle object references as the second array element', () => {
|
|
715
|
-
const pdfString = `49 0 obj
|
|
716
|
-
<</Nums[0 51 0 2 4 R]>>
|
|
717
|
-
endobj`
|
|
718
|
-
|
|
719
|
-
const expectedTokens = [
|
|
720
|
-
new PdfStartObjectToken(49, 0, 0),
|
|
721
|
-
PdfWhitespaceToken.NEWLINE,
|
|
722
|
-
new PdfStartDictionaryToken(),
|
|
723
|
-
new PdfNameToken('Nums'),
|
|
724
|
-
new PdfStartArrayToken(),
|
|
725
|
-
new PdfNumberToken(0),
|
|
726
|
-
PdfWhitespaceToken.SPACE,
|
|
727
|
-
new PdfNumberToken(51),
|
|
728
|
-
PdfWhitespaceToken.SPACE,
|
|
729
|
-
new PdfNumberToken(0),
|
|
730
|
-
PdfWhitespaceToken.SPACE,
|
|
731
|
-
new PdfObjectReferenceToken(2, 4),
|
|
732
|
-
new PdfEndArrayToken(),
|
|
733
|
-
new PdfEndDictionaryToken(),
|
|
734
|
-
PdfWhitespaceToken.NEWLINE,
|
|
735
|
-
new PdfEndObjectToken(),
|
|
736
|
-
]
|
|
737
|
-
|
|
738
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
739
|
-
expect(tokens).toEqual(expectedTokens)
|
|
740
|
-
})
|
|
741
|
-
|
|
742
|
-
it('should handle a startxref', () => {
|
|
743
|
-
const pdfString = ['startxref ', '123456'].join('\n')
|
|
744
|
-
|
|
745
|
-
const expectedTokens = [
|
|
746
|
-
new PdfStartXRefToken(),
|
|
747
|
-
PdfWhitespaceToken.SPACE,
|
|
748
|
-
PdfWhitespaceToken.NEWLINE,
|
|
749
|
-
new PdfNumberToken(123456),
|
|
750
|
-
]
|
|
751
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
752
|
-
expect(tokens).toEqual(expectedTokens)
|
|
753
|
-
})
|
|
754
|
-
|
|
755
|
-
it('should handle a trailer', () => {
|
|
756
|
-
const pdfString = [
|
|
757
|
-
'trailer ',
|
|
758
|
-
'<</Size 50/Root 1 0 R>>',
|
|
759
|
-
'startxref',
|
|
760
|
-
'123456',
|
|
761
|
-
'%%EOF',
|
|
762
|
-
].join('\n')
|
|
763
|
-
|
|
764
|
-
const expectedTokens = [
|
|
765
|
-
new PdfTrailerToken(0),
|
|
766
|
-
PdfWhitespaceToken.SPACE,
|
|
767
|
-
PdfWhitespaceToken.SPACE,
|
|
768
|
-
PdfWhitespaceToken.NEWLINE,
|
|
769
|
-
new PdfStartDictionaryToken(),
|
|
770
|
-
new PdfNameToken('Size'),
|
|
771
|
-
PdfWhitespaceToken.SPACE,
|
|
772
|
-
new PdfNumberToken(50),
|
|
773
|
-
new PdfNameToken('Root'),
|
|
774
|
-
PdfWhitespaceToken.SPACE,
|
|
775
|
-
new PdfObjectReferenceToken(1, 0),
|
|
776
|
-
new PdfEndDictionaryToken(),
|
|
777
|
-
PdfWhitespaceToken.NEWLINE,
|
|
778
|
-
new PdfStartXRefToken(),
|
|
779
|
-
PdfWhitespaceToken.NEWLINE,
|
|
780
|
-
new PdfNumberToken(123456),
|
|
781
|
-
PdfWhitespaceToken.NEWLINE,
|
|
782
|
-
new PdfCommentToken('%EOF'),
|
|
783
|
-
]
|
|
784
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
785
|
-
expect(tokens).toEqual(expectedTokens)
|
|
786
|
-
})
|
|
787
|
-
|
|
788
|
-
it('should handle xref tables', () => {
|
|
789
|
-
const pdfString = [
|
|
790
|
-
'xref ',
|
|
791
|
-
'0 3 ',
|
|
792
|
-
'0000000000 65535 f ',
|
|
793
|
-
'0000000010 00005 n ',
|
|
794
|
-
'0000001000 00020 f ',
|
|
795
|
-
'trailer',
|
|
796
|
-
].join('\n')
|
|
797
|
-
|
|
798
|
-
const expectedTokens = [
|
|
799
|
-
new PdfXRefTableStartToken(0),
|
|
800
|
-
PdfWhitespaceToken.SPACE,
|
|
801
|
-
PdfWhitespaceToken.NEWLINE,
|
|
802
|
-
new PdfXRefTableSectionStartToken(0, 3),
|
|
803
|
-
PdfWhitespaceToken.SPACE,
|
|
804
|
-
PdfWhitespaceToken.NEWLINE,
|
|
805
|
-
new PdfXRefTableEntryToken(
|
|
806
|
-
new PdfNumberToken(stringToBytes('0000000000')),
|
|
807
|
-
new PdfNumberToken(stringToBytes('65535')),
|
|
808
|
-
0,
|
|
809
|
-
false,
|
|
810
|
-
),
|
|
811
|
-
PdfWhitespaceToken.SPACE,
|
|
812
|
-
PdfWhitespaceToken.NEWLINE,
|
|
813
|
-
new PdfXRefTableEntryToken(
|
|
814
|
-
new PdfNumberToken(stringToBytes('0000000010')),
|
|
815
|
-
new PdfNumberToken(stringToBytes('00005')),
|
|
816
|
-
1,
|
|
817
|
-
true,
|
|
818
|
-
),
|
|
819
|
-
PdfWhitespaceToken.SPACE,
|
|
820
|
-
PdfWhitespaceToken.NEWLINE,
|
|
821
|
-
new PdfXRefTableEntryToken(
|
|
822
|
-
new PdfNumberToken(stringToBytes('0000001000')),
|
|
823
|
-
new PdfNumberToken(stringToBytes('00020')),
|
|
824
|
-
2,
|
|
825
|
-
false,
|
|
826
|
-
),
|
|
827
|
-
PdfWhitespaceToken.SPACE,
|
|
828
|
-
PdfWhitespaceToken.NEWLINE,
|
|
829
|
-
new PdfTrailerToken(102),
|
|
830
|
-
]
|
|
831
|
-
|
|
832
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
833
|
-
expect(tokens).toEqual(expectedTokens)
|
|
834
|
-
})
|
|
835
|
-
|
|
836
|
-
it('should handle xref tables with object references', () => {
|
|
837
|
-
const pdfString = [
|
|
838
|
-
'xref ',
|
|
839
|
-
'0 1',
|
|
840
|
-
'0000000000 65535 f',
|
|
841
|
-
'8 1',
|
|
842
|
-
'0000005897 00000 n',
|
|
843
|
-
'22 1 ',
|
|
844
|
-
'0000009571 00000 n',
|
|
845
|
-
'trailer',
|
|
846
|
-
'<</Size 50/Root 1 0 R>>',
|
|
847
|
-
].join('\n')
|
|
848
|
-
|
|
849
|
-
const expectedTokens = [
|
|
850
|
-
new PdfXRefTableStartToken(0),
|
|
851
|
-
PdfWhitespaceToken.SPACE,
|
|
852
|
-
PdfWhitespaceToken.NEWLINE,
|
|
853
|
-
new PdfXRefTableSectionStartToken(0, 1),
|
|
854
|
-
PdfWhitespaceToken.NEWLINE,
|
|
855
|
-
new PdfXRefTableEntryToken(
|
|
856
|
-
new PdfNumberToken(stringToBytes('0000000000')),
|
|
857
|
-
65535,
|
|
858
|
-
0,
|
|
859
|
-
false,
|
|
860
|
-
),
|
|
861
|
-
PdfWhitespaceToken.NEWLINE,
|
|
862
|
-
new PdfXRefTableSectionStartToken(8, 1),
|
|
863
|
-
PdfWhitespaceToken.NEWLINE,
|
|
864
|
-
new PdfXRefTableEntryToken(
|
|
865
|
-
new PdfNumberToken(stringToBytes('0000005897')),
|
|
866
|
-
new PdfNumberToken(stringToBytes('00000')),
|
|
867
|
-
8,
|
|
868
|
-
true,
|
|
869
|
-
),
|
|
870
|
-
PdfWhitespaceToken.NEWLINE,
|
|
871
|
-
new PdfXRefTableSectionStartToken(22, 1),
|
|
872
|
-
PdfWhitespaceToken.SPACE,
|
|
873
|
-
PdfWhitespaceToken.NEWLINE,
|
|
874
|
-
new PdfXRefTableEntryToken(
|
|
875
|
-
new PdfNumberToken(stringToBytes('0000009571')),
|
|
876
|
-
new PdfNumberToken(stringToBytes('00000')),
|
|
877
|
-
22,
|
|
878
|
-
true,
|
|
879
|
-
),
|
|
880
|
-
PdfWhitespaceToken.NEWLINE,
|
|
881
|
-
new PdfTrailerToken(129),
|
|
882
|
-
PdfWhitespaceToken.NEWLINE,
|
|
883
|
-
new PdfStartDictionaryToken(),
|
|
884
|
-
new PdfNameToken('Size'),
|
|
885
|
-
PdfWhitespaceToken.SPACE,
|
|
886
|
-
new PdfNumberToken(50),
|
|
887
|
-
new PdfNameToken('Root'),
|
|
888
|
-
PdfWhitespaceToken.SPACE,
|
|
889
|
-
new PdfObjectReferenceToken(1, 0),
|
|
890
|
-
new PdfEndDictionaryToken(),
|
|
891
|
-
]
|
|
892
|
-
|
|
893
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
894
|
-
expect(tokens).toEqual(expectedTokens)
|
|
895
|
-
})
|
|
896
|
-
|
|
897
|
-
it('should handle escape sequences in strings', () => {
|
|
898
|
-
const leftParmethesis = 0x28
|
|
899
|
-
const rightParmethesis = 0x29
|
|
900
|
-
const bashslash = 0x5c
|
|
901
|
-
const pdfString = new Uint8Array([
|
|
902
|
-
leftParmethesis,
|
|
903
|
-
bashslash,
|
|
904
|
-
bashslash,
|
|
905
|
-
rightParmethesis,
|
|
906
|
-
])
|
|
907
|
-
|
|
908
|
-
const expectedTokens = [new PdfStringToken(stringToBytes('\\'))]
|
|
909
|
-
|
|
910
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
911
|
-
expect(tokens).toEqual(expectedTokens)
|
|
912
|
-
})
|
|
913
|
-
|
|
914
|
-
it('should escape octal sequences in strings', () => {
|
|
915
|
-
const pdfString = new Uint8Array([0x28, 0x5c, 0x31, 0x30, 0x31, 0x29])
|
|
916
|
-
|
|
917
|
-
const expectedTokens = [new PdfStringToken(new Uint8Array([0x41]))]
|
|
918
|
-
|
|
919
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
920
|
-
expect(tokens).toEqual(expectedTokens)
|
|
921
|
-
})
|
|
922
|
-
|
|
923
|
-
it('should escape line feed in strings', () => {
|
|
924
|
-
const pdfString = new Uint8Array([0x28, 0x5c, 0x6e, 0x29])
|
|
925
|
-
|
|
926
|
-
const expectedTokens = [new PdfStringToken(new Uint8Array([0x0a]))]
|
|
927
|
-
|
|
928
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
929
|
-
expect(tokens).toEqual(expectedTokens)
|
|
930
|
-
})
|
|
931
|
-
|
|
932
|
-
it('should handle nested strings', () => {
|
|
933
|
-
const pdfString = '((Hello, World!))'
|
|
934
|
-
|
|
935
|
-
const expectedTokens = [
|
|
936
|
-
new PdfStringToken(stringToBytes('(Hello, World!)')),
|
|
937
|
-
]
|
|
938
|
-
|
|
939
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
940
|
-
expect(tokens).toEqual(expectedTokens)
|
|
941
|
-
})
|
|
942
|
-
|
|
943
|
-
it('should handle nested strings', () => {
|
|
944
|
-
const pdfString = '((Hello, World!))'
|
|
945
|
-
|
|
946
|
-
const expectedTokens = [
|
|
947
|
-
new PdfStringToken(stringToBytes('(Hello, World!)')),
|
|
948
|
-
]
|
|
949
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
950
|
-
expect(tokens).toEqual(expectedTokens)
|
|
951
|
-
})
|
|
952
|
-
|
|
953
|
-
it('should treat a backslash followed by a line feed as a line continuation', () => {
|
|
954
|
-
const pdfString = '(Hello\\\nWorld)'
|
|
955
|
-
|
|
956
|
-
const expectedTokens = [new PdfStringToken(stringToBytes('HelloWorld'))]
|
|
957
|
-
|
|
958
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
959
|
-
expect(tokens).toEqual(expectedTokens)
|
|
960
|
-
})
|
|
961
|
-
|
|
962
|
-
it('should handle objects across multiple lines', () => {
|
|
963
|
-
const pdfString = `
|
|
964
|
-
trailer
|
|
965
|
-
<<
|
|
966
|
-
/Root -1 -1 R
|
|
967
|
-
/Size 1
|
|
968
|
-
>>`
|
|
969
|
-
|
|
970
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
971
|
-
const byteCount = tokens.reduce(
|
|
972
|
-
(sum, token) => sum + token.byteLength,
|
|
973
|
-
0,
|
|
974
|
-
)
|
|
975
|
-
expect(tokens.map((x) => x.toString()).join('')).toBe(pdfString)
|
|
976
|
-
expect(byteCount).toBe(pdfString.length)
|
|
977
|
-
expect(tokens).toMatchInlineSnapshot(`
|
|
978
|
-
[
|
|
979
|
-
PdfWhitespaceToken {
|
|
980
|
-
"rawBytes": Uint8Array [
|
|
981
|
-
10,
|
|
982
|
-
],
|
|
983
|
-
},
|
|
984
|
-
PdfWhitespaceToken {
|
|
985
|
-
"rawBytes": Uint8Array [
|
|
986
|
-
32,
|
|
987
|
-
],
|
|
988
|
-
},
|
|
989
|
-
PdfWhitespaceToken {
|
|
990
|
-
"rawBytes": Uint8Array [
|
|
991
|
-
32,
|
|
992
|
-
],
|
|
993
|
-
},
|
|
994
|
-
PdfWhitespaceToken {
|
|
995
|
-
"rawBytes": Uint8Array [
|
|
996
|
-
32,
|
|
997
|
-
],
|
|
998
|
-
},
|
|
999
|
-
PdfWhitespaceToken {
|
|
1000
|
-
"rawBytes": Uint8Array [
|
|
1001
|
-
32,
|
|
1002
|
-
],
|
|
1003
|
-
},
|
|
1004
|
-
PdfWhitespaceToken {
|
|
1005
|
-
"rawBytes": Uint8Array [
|
|
1006
|
-
32,
|
|
1007
|
-
],
|
|
1008
|
-
},
|
|
1009
|
-
PdfWhitespaceToken {
|
|
1010
|
-
"rawBytes": Uint8Array [
|
|
1011
|
-
32,
|
|
1012
|
-
],
|
|
1013
|
-
},
|
|
1014
|
-
PdfWhitespaceToken {
|
|
1015
|
-
"rawBytes": Uint8Array [
|
|
1016
|
-
32,
|
|
1017
|
-
],
|
|
1018
|
-
},
|
|
1019
|
-
PdfWhitespaceToken {
|
|
1020
|
-
"rawBytes": Uint8Array [
|
|
1021
|
-
32,
|
|
1022
|
-
],
|
|
1023
|
-
},
|
|
1024
|
-
PdfTrailerToken {
|
|
1025
|
-
"byteOffset": 10,
|
|
1026
|
-
"rawBytes": Uint8Array [
|
|
1027
|
-
116,
|
|
1028
|
-
114,
|
|
1029
|
-
97,
|
|
1030
|
-
105,
|
|
1031
|
-
108,
|
|
1032
|
-
101,
|
|
1033
|
-
114,
|
|
1034
|
-
],
|
|
1035
|
-
},
|
|
1036
|
-
PdfWhitespaceToken {
|
|
1037
|
-
"rawBytes": Uint8Array [
|
|
1038
|
-
10,
|
|
1039
|
-
],
|
|
1040
|
-
},
|
|
1041
|
-
PdfWhitespaceToken {
|
|
1042
|
-
"rawBytes": Uint8Array [
|
|
1043
|
-
32,
|
|
1044
|
-
],
|
|
1045
|
-
},
|
|
1046
|
-
PdfWhitespaceToken {
|
|
1047
|
-
"rawBytes": Uint8Array [
|
|
1048
|
-
32,
|
|
1049
|
-
],
|
|
1050
|
-
},
|
|
1051
|
-
PdfWhitespaceToken {
|
|
1052
|
-
"rawBytes": Uint8Array [
|
|
1053
|
-
32,
|
|
1054
|
-
],
|
|
1055
|
-
},
|
|
1056
|
-
PdfWhitespaceToken {
|
|
1057
|
-
"rawBytes": Uint8Array [
|
|
1058
|
-
32,
|
|
1059
|
-
],
|
|
1060
|
-
},
|
|
1061
|
-
PdfWhitespaceToken {
|
|
1062
|
-
"rawBytes": Uint8Array [
|
|
1063
|
-
32,
|
|
1064
|
-
],
|
|
1065
|
-
},
|
|
1066
|
-
PdfWhitespaceToken {
|
|
1067
|
-
"rawBytes": Uint8Array [
|
|
1068
|
-
32,
|
|
1069
|
-
],
|
|
1070
|
-
},
|
|
1071
|
-
PdfWhitespaceToken {
|
|
1072
|
-
"rawBytes": Uint8Array [
|
|
1073
|
-
32,
|
|
1074
|
-
],
|
|
1075
|
-
},
|
|
1076
|
-
PdfWhitespaceToken {
|
|
1077
|
-
"rawBytes": Uint8Array [
|
|
1078
|
-
32,
|
|
1079
|
-
],
|
|
1080
|
-
},
|
|
1081
|
-
PdfStartDictionaryToken {
|
|
1082
|
-
"rawBytes": Uint8Array [
|
|
1083
|
-
60,
|
|
1084
|
-
60,
|
|
1085
|
-
],
|
|
1086
|
-
},
|
|
1087
|
-
PdfWhitespaceToken {
|
|
1088
|
-
"rawBytes": Uint8Array [
|
|
1089
|
-
32,
|
|
1090
|
-
],
|
|
1091
|
-
},
|
|
1092
|
-
PdfWhitespaceToken {
|
|
1093
|
-
"rawBytes": Uint8Array [
|
|
1094
|
-
32,
|
|
1095
|
-
],
|
|
1096
|
-
},
|
|
1097
|
-
PdfWhitespaceToken {
|
|
1098
|
-
"rawBytes": Uint8Array [
|
|
1099
|
-
10,
|
|
1100
|
-
],
|
|
1101
|
-
},
|
|
1102
|
-
PdfWhitespaceToken {
|
|
1103
|
-
"rawBytes": Uint8Array [
|
|
1104
|
-
32,
|
|
1105
|
-
],
|
|
1106
|
-
},
|
|
1107
|
-
PdfWhitespaceToken {
|
|
1108
|
-
"rawBytes": Uint8Array [
|
|
1109
|
-
32,
|
|
1110
|
-
],
|
|
1111
|
-
},
|
|
1112
|
-
PdfNameToken {
|
|
1113
|
-
"name": "Root",
|
|
1114
|
-
"rawBytes": Uint8Array [
|
|
1115
|
-
47,
|
|
1116
|
-
82,
|
|
1117
|
-
111,
|
|
1118
|
-
111,
|
|
1119
|
-
116,
|
|
1120
|
-
],
|
|
1121
|
-
},
|
|
1122
|
-
PdfWhitespaceToken {
|
|
1123
|
-
"rawBytes": Uint8Array [
|
|
1124
|
-
32,
|
|
1125
|
-
],
|
|
1126
|
-
},
|
|
1127
|
-
PdfObjectReferenceToken {
|
|
1128
|
-
"generationNumber": -1,
|
|
1129
|
-
"objectNumber": -1,
|
|
1130
|
-
"rawBytes": Uint8Array [
|
|
1131
|
-
45,
|
|
1132
|
-
49,
|
|
1133
|
-
32,
|
|
1134
|
-
45,
|
|
1135
|
-
49,
|
|
1136
|
-
32,
|
|
1137
|
-
82,
|
|
1138
|
-
],
|
|
1139
|
-
},
|
|
1140
|
-
PdfWhitespaceToken {
|
|
1141
|
-
"rawBytes": Uint8Array [
|
|
1142
|
-
10,
|
|
1143
|
-
],
|
|
1144
|
-
},
|
|
1145
|
-
PdfNameToken {
|
|
1146
|
-
"name": "Size",
|
|
1147
|
-
"rawBytes": Uint8Array [
|
|
1148
|
-
47,
|
|
1149
|
-
83,
|
|
1150
|
-
105,
|
|
1151
|
-
122,
|
|
1152
|
-
101,
|
|
1153
|
-
],
|
|
1154
|
-
},
|
|
1155
|
-
PdfWhitespaceToken {
|
|
1156
|
-
"rawBytes": Uint8Array [
|
|
1157
|
-
32,
|
|
1158
|
-
],
|
|
1159
|
-
},
|
|
1160
|
-
PdfNumberToken {
|
|
1161
|
-
"decimalPlaces": 0,
|
|
1162
|
-
"isByteToken": false,
|
|
1163
|
-
"padTo": 0,
|
|
1164
|
-
"rawBytes": Uint8Array [],
|
|
1165
|
-
},
|
|
1166
|
-
PdfWhitespaceToken {
|
|
1167
|
-
"rawBytes": Uint8Array [
|
|
1168
|
-
10,
|
|
1169
|
-
],
|
|
1170
|
-
},
|
|
1171
|
-
PdfEndDictionaryToken {
|
|
1172
|
-
"rawBytes": Uint8Array [
|
|
1173
|
-
62,
|
|
1174
|
-
62,
|
|
1175
|
-
],
|
|
1176
|
-
},
|
|
1177
|
-
]
|
|
1178
|
-
`)
|
|
1179
|
-
})
|
|
1180
|
-
|
|
1181
|
-
it('should handle an array of names', () => {
|
|
1182
|
-
const pdfString = '/Annots[/Create/Delete/Modify]'
|
|
1183
|
-
|
|
1184
|
-
const expectedTokens = [
|
|
1185
|
-
new PdfNameToken('Annots'),
|
|
1186
|
-
new PdfStartArrayToken(),
|
|
1187
|
-
new PdfNameToken('Create'),
|
|
1188
|
-
new PdfNameToken('Delete'),
|
|
1189
|
-
new PdfNameToken('Modify'),
|
|
1190
|
-
new PdfEndArrayToken(),
|
|
1191
|
-
]
|
|
1192
|
-
|
|
1193
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
1194
|
-
expect(tokens).toEqual(expectedTokens)
|
|
1195
|
-
})
|
|
1196
|
-
|
|
1197
|
-
it('should handle object references inside an object', () => {
|
|
1198
|
-
const pdfString = ['51 0 obj', ' [52 0 R]', 'endobj'].join('\n')
|
|
1199
|
-
|
|
1200
|
-
const expectedTokens = [
|
|
1201
|
-
new PdfStartObjectToken(51, 0, 0),
|
|
1202
|
-
PdfWhitespaceToken.NEWLINE,
|
|
1203
|
-
PdfWhitespaceToken.SPACE,
|
|
1204
|
-
new PdfStartArrayToken(),
|
|
1205
|
-
new PdfObjectReferenceToken(52, 0),
|
|
1206
|
-
new PdfEndArrayToken(),
|
|
1207
|
-
PdfWhitespaceToken.NEWLINE,
|
|
1208
|
-
new PdfEndObjectToken(),
|
|
1209
|
-
]
|
|
1210
|
-
const tokens = stringToPdfTokens(pdfString)
|
|
1211
|
-
expect(tokens).toEqual(expectedTokens)
|
|
1212
|
-
})
|
|
1213
|
-
})
|