pdf-lite 1.0.1-alpha.2 → 1.0.1-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/decoder.d.ts +39 -0
- package/dist/core/decoder.js +367 -0
- package/dist/core/generators.d.ts +37 -0
- package/{packages/pdf-lite/src/core/generators.ts → dist/core/generators.js} +36 -67
- package/dist/core/incremental-parser.d.ts +103 -0
- package/{packages/pdf-lite/src/core/incremental-parser.ts → dist/core/incremental-parser.js} +63 -100
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +2 -0
- package/dist/core/objects/pdf-array.d.ts +12 -0
- package/dist/core/objects/pdf-array.js +42 -0
- package/dist/core/objects/pdf-boolean.d.ts +8 -0
- package/dist/core/objects/pdf-boolean.js +15 -0
- package/dist/core/objects/pdf-comment.d.ts +18 -0
- package/dist/core/objects/pdf-comment.js +39 -0
- package/dist/core/objects/pdf-date.d.ts +5 -0
- package/dist/core/objects/pdf-date.js +40 -0
- package/dist/core/objects/pdf-dictionary.d.ts +22 -0
- package/dist/core/objects/pdf-dictionary.js +136 -0
- package/dist/core/objects/pdf-hexadecimal.d.ts +17 -0
- package/dist/core/objects/pdf-hexadecimal.js +42 -0
- package/dist/core/objects/pdf-indirect-object.d.ts +27 -0
- package/dist/core/objects/pdf-indirect-object.js +100 -0
- package/dist/core/objects/pdf-name.d.ts +8 -0
- package/dist/core/objects/pdf-name.js +15 -0
- package/dist/core/objects/pdf-null.d.ts +7 -0
- package/dist/core/objects/pdf-null.js +11 -0
- package/dist/core/objects/pdf-number.d.ts +25 -0
- package/dist/core/objects/pdf-number.js +77 -0
- package/dist/core/objects/pdf-object-reference.d.ts +9 -0
- package/dist/core/objects/pdf-object-reference.js +19 -0
- package/dist/core/objects/pdf-object.d.ts +30 -0
- package/dist/core/objects/pdf-object.js +77 -0
- package/dist/core/objects/pdf-start-xref.d.ts +10 -0
- package/dist/core/objects/pdf-start-xref.js +32 -0
- package/dist/core/objects/pdf-stream.d.ts +100 -0
- package/dist/core/objects/pdf-stream.js +521 -0
- package/dist/core/objects/pdf-string.d.ts +15 -0
- package/dist/core/objects/pdf-string.js +30 -0
- package/dist/core/objects/pdf-trailer.d.ts +26 -0
- package/dist/core/objects/pdf-trailer.js +33 -0
- package/dist/core/objects/pdf-xref-table.d.ts +48 -0
- package/dist/core/objects/pdf-xref-table.js +183 -0
- package/{packages/pdf-lite/src/core/parser.ts → dist/core/parser.d.ts} +3 -4
- package/dist/core/parser.js +9 -0
- package/dist/core/ref.d.ts +59 -0
- package/{packages/pdf-lite/src/core/ref.ts → dist/core/ref.js} +23 -41
- package/dist/core/serializer.d.ts +36 -0
- package/{packages/pdf-lite/src/core/serializer.ts → dist/core/serializer.js} +20 -30
- package/dist/core/streams/object-stream.d.ts +6 -0
- package/dist/core/streams/object-stream.js +15 -0
- package/dist/core/tokeniser.d.ts +98 -0
- package/dist/core/tokeniser.js +552 -0
- package/dist/core/tokens/boolean-token.d.ts +8 -0
- package/dist/core/tokens/boolean-token.js +15 -0
- package/dist/core/tokens/byte-offset-token.d.ts +8 -0
- package/dist/core/tokens/byte-offset-token.js +15 -0
- package/dist/core/tokens/comment-token.d.ts +10 -0
- package/dist/core/tokens/comment-token.js +26 -0
- package/dist/core/tokens/end-array-token.d.ts +4 -0
- package/dist/core/tokens/end-array-token.js +8 -0
- package/dist/core/tokens/end-dictionary-token.d.ts +4 -0
- package/dist/core/tokens/end-dictionary-token.js +8 -0
- package/dist/core/tokens/end-object-token.d.ts +4 -0
- package/dist/core/tokens/end-object-token.js +8 -0
- package/dist/core/tokens/end-stream-token.d.ts +5 -0
- package/dist/core/tokens/end-stream-token.js +8 -0
- package/dist/core/tokens/hexadecimal-token.d.ts +7 -0
- package/dist/core/tokens/hexadecimal-token.js +16 -0
- package/dist/core/tokens/name-token.d.ts +6 -0
- package/dist/core/tokens/name-token.js +15 -0
- package/dist/core/tokens/null-token.d.ts +4 -0
- package/dist/core/tokens/null-token.js +8 -0
- package/dist/core/tokens/number-token.d.ts +24 -0
- package/dist/core/tokens/number-token.js +104 -0
- package/dist/core/tokens/object-reference-token.d.ts +7 -0
- package/dist/core/tokens/object-reference-token.js +17 -0
- package/dist/core/tokens/start-array-token.d.ts +4 -0
- package/dist/core/tokens/start-array-token.js +8 -0
- package/dist/core/tokens/start-dictionary-token.d.ts +4 -0
- package/dist/core/tokens/start-dictionary-token.js +8 -0
- package/dist/core/tokens/start-object-token.d.ts +8 -0
- package/dist/core/tokens/start-object-token.js +17 -0
- package/dist/core/tokens/start-stream-token.d.ts +8 -0
- package/dist/core/tokens/start-stream-token.js +38 -0
- package/dist/core/tokens/start-xref-token.d.ts +4 -0
- package/dist/core/tokens/start-xref-token.js +8 -0
- package/dist/core/tokens/stream-chunk-token.d.ts +5 -0
- package/dist/core/tokens/stream-chunk-token.js +6 -0
- package/dist/core/tokens/string-token.d.ts +7 -0
- package/dist/core/tokens/string-token.js +13 -0
- package/dist/core/tokens/token.d.ts +10 -0
- package/dist/core/tokens/token.js +32 -0
- package/dist/core/tokens/trailer-token.d.ts +5 -0
- package/dist/core/tokens/trailer-token.js +10 -0
- package/dist/core/tokens/whitespace-token.d.ts +11 -0
- package/dist/core/tokens/whitespace-token.js +36 -0
- package/dist/core/tokens/xref-table-entry-token.d.ts +13 -0
- package/dist/core/tokens/xref-table-entry-token.js +40 -0
- package/dist/core/tokens/xref-table-section-start-token.d.ts +8 -0
- package/dist/core/tokens/xref-table-section-start-token.js +21 -0
- package/dist/core/tokens/xref-table-start-token.d.ts +5 -0
- package/dist/core/tokens/xref-table-start-token.js +10 -0
- package/dist/crypto/ciphers/aes128.d.ts +19 -0
- package/{packages/pdf-lite/src/crypto/ciphers/aes128.ts → dist/crypto/ciphers/aes128.js} +17 -27
- package/dist/crypto/ciphers/aes256.d.ts +18 -0
- package/{packages/pdf-lite/src/crypto/ciphers/aes256.ts → dist/crypto/ciphers/aes256.js} +14 -17
- package/dist/crypto/ciphers/rc4.d.ts +18 -0
- package/{packages/pdf-lite/src/crypto/ciphers/rc4.ts → dist/crypto/ciphers/rc4.js} +25 -30
- package/dist/crypto/constants.d.ts +6 -0
- package/{packages/pdf-lite/src/crypto/constants.ts → dist/crypto/constants.js} +1 -1
- package/dist/crypto/key-derivation/key-derivation-aes256.d.ts +56 -0
- package/dist/crypto/key-derivation/key-derivation-aes256.js +156 -0
- package/dist/crypto/key-derivation/key-derivation.d.ts +42 -0
- package/{packages/pdf-lite/src/crypto/key-derivation/key-derivation.ts → dist/crypto/key-derivation/key-derivation.js} +35 -66
- package/dist/crypto/key-gen/key-gen-aes256.d.ts +36 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-aes256.ts → dist/crypto/key-gen/key-gen-aes256.js} +25 -50
- package/dist/crypto/key-gen/key-gen-rc4-128.d.ts +47 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-128.ts → dist/crypto/key-gen/key-gen-rc4-128.js} +45 -106
- package/dist/crypto/key-gen/key-gen-rc4-40.d.ts +60 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-40.ts → dist/crypto/key-gen/key-gen-rc4-40.js} +26 -62
- package/dist/crypto/types.d.ts +5 -0
- package/dist/crypto/types.js +1 -0
- package/dist/crypto/utils.d.ts +40 -0
- package/{packages/pdf-lite/src/crypto/utils.ts → dist/crypto/utils.js} +27 -36
- package/dist/filters/ascii85.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/ascii85.ts → dist/filters/ascii85.js} +41 -65
- package/dist/filters/asciihex.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/asciihex.ts → dist/filters/asciihex.js} +18 -19
- package/dist/filters/flate.d.ts +15 -0
- package/{packages/pdf-lite/src/filters/flate.ts → dist/filters/flate.js} +7 -10
- package/dist/filters/lzw.d.ts +16 -0
- package/dist/filters/lzw.js +150 -0
- package/dist/filters/pass-through.d.ts +14 -0
- package/{packages/pdf-lite/src/filters/pass-through.ts → dist/filters/pass-through.js} +6 -9
- package/dist/filters/runlength.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/runlength.ts → dist/filters/runlength.js} +36 -40
- package/dist/filters/types.d.ts +18 -0
- package/{packages/pdf-lite/src/filters/types.ts → dist/filters/types.js} +1 -10
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/pdf/errors.d.ts +6 -0
- package/{packages/pdf-lite/src/pdf/errors.ts → dist/pdf/errors.js} +2 -1
- package/dist/pdf/index.d.ts +4 -0
- package/dist/pdf/index.js +4 -0
- package/dist/pdf/pdf-document.d.ts +277 -0
- package/{packages/pdf-lite/src/pdf/pdf-document.ts → dist/pdf/pdf-document.js} +305 -541
- package/dist/pdf/pdf-reader.d.ts +37 -0
- package/{packages/pdf-lite/src/pdf/pdf-reader.ts → dist/pdf/pdf-reader.js} +12 -22
- package/dist/pdf/pdf-revision.d.ts +101 -0
- package/{packages/pdf-lite/src/pdf/pdf-revision.ts → dist/pdf/pdf-revision.js} +70 -105
- package/dist/pdf/pdf-xref-lookup.d.ts +149 -0
- package/dist/pdf/pdf-xref-lookup.js +402 -0
- package/dist/security/crypt-filters/aesv2.d.ts +35 -0
- package/{packages/pdf-lite/src/security/crypt-filters/aesv2.ts → dist/security/crypt-filters/aesv2.js} +9 -26
- package/dist/security/crypt-filters/aesv3.d.ts +36 -0
- package/{packages/pdf-lite/src/security/crypt-filters/aesv3.ts → dist/security/crypt-filters/aesv3.js} +9 -23
- package/{packages/pdf-lite/src/security/crypt-filters/base.ts → dist/security/crypt-filters/base.d.ts} +21 -73
- package/dist/security/crypt-filters/base.js +93 -0
- package/dist/security/crypt-filters/identity.d.ts +28 -0
- package/{packages/pdf-lite/src/security/crypt-filters/identity.ts → dist/security/crypt-filters/identity.js} +9 -13
- package/dist/security/crypt-filters/v2.d.ts +37 -0
- package/{packages/pdf-lite/src/security/crypt-filters/v2.ts → dist/security/crypt-filters/v2.js} +9 -26
- package/dist/security/handlers/base.d.ts +304 -0
- package/dist/security/handlers/base.js +359 -0
- package/dist/security/handlers/pubSec.d.ts +164 -0
- package/dist/security/handlers/pubSec.js +299 -0
- package/dist/security/handlers/utils.d.ts +77 -0
- package/dist/security/handlers/utils.js +244 -0
- package/dist/security/handlers/v1.d.ts +81 -0
- package/dist/security/handlers/v1.js +135 -0
- package/dist/security/handlers/v2.d.ts +63 -0
- package/{packages/pdf-lite/src/security/handlers/v2.ts → dist/security/handlers/v2.js} +25 -62
- package/dist/security/handlers/v4.d.ts +121 -0
- package/dist/security/handlers/v4.js +257 -0
- package/dist/security/handlers/v5.d.ts +112 -0
- package/dist/security/handlers/v5.js +210 -0
- package/{packages/pdf-lite/src/security/types.ts → dist/security/types.d.ts} +72 -94
- package/dist/security/types.js +1 -0
- package/dist/signing/document-security-store.d.ts +108 -0
- package/dist/signing/document-security-store.js +156 -0
- package/dist/signing/index.d.ts +3 -0
- package/dist/signing/index.js +3 -0
- package/dist/signing/signatures/adbe-pkcs7-detached.d.ts +57 -0
- package/dist/signing/signatures/adbe-pkcs7-detached.js +117 -0
- package/dist/signing/signatures/adbe-pkcs7-sha1.d.ts +55 -0
- package/dist/signing/signatures/adbe-pkcs7-sha1.js +121 -0
- package/dist/signing/signatures/adbe-x509-rsa-sha1.d.ts +49 -0
- package/dist/signing/signatures/adbe-x509-rsa-sha1.js +81 -0
- package/dist/signing/signatures/base.d.ts +107 -0
- package/dist/signing/signatures/base.js +145 -0
- package/dist/signing/signatures/etsi-cades-detached.d.ts +64 -0
- package/dist/signing/signatures/etsi-cades-detached.js +159 -0
- package/dist/signing/signatures/etsi-rfc3161.d.ts +37 -0
- package/{packages/pdf-lite/src/signing/signatures/etsi-rfc3161.ts → dist/signing/signatures/etsi-rfc3161.js} +21 -43
- package/dist/signing/signatures/index.d.ts +6 -0
- package/dist/signing/signatures/index.js +6 -0
- package/dist/signing/signer.d.ts +23 -0
- package/dist/signing/signer.js +92 -0
- package/{packages/pdf-lite/src/signing/types.ts → dist/signing/types.d.ts} +40 -48
- package/dist/signing/types.js +1 -0
- package/dist/signing/utils.d.ts +32 -0
- package/{packages/pdf-lite/src/signing/utils.ts → dist/signing/utils.js} +12 -31
- package/dist/types.d.ts +23 -0
- package/dist/types.js +11 -0
- package/dist/utils/IterableReadableStream.d.ts +24 -0
- package/{packages/pdf-lite/src/utils/IterableReadableStream.ts → dist/utils/IterableReadableStream.js} +6 -6
- package/dist/utils/algos.d.ts +242 -0
- package/{packages/pdf-lite/src/utils/algos.ts → dist/utils/algos.js} +63 -136
- package/dist/utils/assert.d.ts +28 -0
- package/{packages/pdf-lite/src/utils/assert.ts → dist/utils/assert.js} +5 -10
- package/dist/utils/bytesToHex.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/bytesToHex.ts → dist/utils/bytesToHex.js} +4 -6
- package/dist/utils/bytesToHexBytes.d.ts +14 -0
- package/{packages/pdf-lite/src/utils/bytesToHexBytes.ts → dist/utils/bytesToHexBytes.js} +7 -12
- package/dist/utils/bytesToString.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/bytesToString.ts → dist/utils/bytesToString.js} +3 -5
- package/dist/utils/concatUint8Arrays.d.ts +16 -0
- package/{packages/pdf-lite/src/utils/concatUint8Arrays.ts → dist/utils/concatUint8Arrays.js} +7 -9
- package/dist/utils/escapeString.d.ts +14 -0
- package/dist/utils/escapeString.js +43 -0
- package/dist/utils/hexBytesToBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/hexBytesToBytes.ts → dist/utils/hexBytesToBytes.js} +4 -6
- package/dist/utils/hexBytesToString.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/hexBytesToString.ts → dist/utils/hexBytesToString.js} +5 -7
- package/dist/utils/hexToBytes.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/hexToBytes.ts → dist/utils/hexToBytes.js} +4 -6
- package/dist/utils/padBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/padBytes.ts → dist/utils/padBytes.js} +5 -9
- package/dist/utils/predictors.d.ts +113 -0
- package/{packages/pdf-lite/src/utils/predictors.ts → dist/utils/predictors.js} +103 -156
- package/dist/utils/replaceInBuffer.d.ts +22 -0
- package/{packages/pdf-lite/src/utils/replaceInBuffer.ts → dist/utils/replaceInBuffer.js} +18 -27
- package/dist/utils/stringToBytes.d.ts +14 -0
- package/{packages/pdf-lite/src/utils/stringToBytes.ts → dist/utils/stringToBytes.js} +6 -7
- package/dist/utils/stringToHexBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/stringToHexBytes.ts → dist/utils/stringToHexBytes.js} +5 -7
- package/dist/utils/unescapeString.d.ts +16 -0
- package/dist/utils/unescapeString.js +114 -0
- package/package.json +37 -34
- package/.commitlintrc.cjs +0 -25
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/workflows/docs.yaml +0 -95
- package/.github/workflows/prepare-release.yaml +0 -79
- package/.github/workflows/release.yaml +0 -80
- package/.github/workflows/test.yaml +0 -35
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.prettierignore +0 -4
- package/.prettierrc +0 -4
- package/CONTRIBUTING.md +0 -109
- package/EXAMPLES.md +0 -1512
- package/docs/README.md +0 -127
- package/docs/core/README.md +0 -43
- package/docs/core/decoder/README.md +0 -11
- package/docs/core/decoder/classes/PdfDecoder.md +0 -362
- package/docs/core/generators/README.md +0 -14
- package/docs/core/generators/functions/bytesToPdfObjects.md +0 -26
- package/docs/core/generators/functions/pdfDecoder.md +0 -36
- package/docs/core/generators/functions/pdfDecoderAsync.md +0 -26
- package/docs/core/generators/functions/stringToPdfObjects.md +0 -25
- package/docs/core/incremental-parser/README.md +0 -13
- package/docs/core/incremental-parser/classes/EofReachedError.md +0 -55
- package/docs/core/incremental-parser/classes/IncrementalParser.md +0 -299
- package/docs/core/incremental-parser/classes/NoMoreTokensError.md +0 -55
- package/docs/core/objects/pdf-array/README.md +0 -11
- package/docs/core/objects/pdf-array/classes/PdfArray.md +0 -305
- package/docs/core/objects/pdf-boolean/README.md +0 -11
- package/docs/core/objects/pdf-boolean/classes/PdfBoolean.md +0 -265
- package/docs/core/objects/pdf-comment/README.md +0 -11
- package/docs/core/objects/pdf-comment/classes/PdfComment.md +0 -329
- package/docs/core/objects/pdf-date/README.md +0 -11
- package/docs/core/objects/pdf-date/classes/PdfDate.md +0 -317
- package/docs/core/objects/pdf-dictionary/README.md +0 -17
- package/docs/core/objects/pdf-dictionary/classes/PdfDictionary.md +0 -396
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntries.md +0 -9
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntry.md +0 -9
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryMap.md +0 -9
- package/docs/core/objects/pdf-hexadecimal/README.md +0 -11
- package/docs/core/objects/pdf-hexadecimal/classes/PdfHexadecimal.md +0 -320
- package/docs/core/objects/pdf-indirect-object/README.md +0 -11
- package/docs/core/objects/pdf-indirect-object/classes/PdfIndirectObject.md +0 -411
- package/docs/core/objects/pdf-name/README.md +0 -11
- package/docs/core/objects/pdf-name/classes/PdfName.md +0 -271
- package/docs/core/objects/pdf-null/README.md +0 -11
- package/docs/core/objects/pdf-null/classes/PdfNull.md +0 -259
- package/docs/core/objects/pdf-number/README.md +0 -12
- package/docs/core/objects/pdf-number/classes/PdfByteOffsetNumber.md +0 -369
- package/docs/core/objects/pdf-number/classes/PdfNumber.md +0 -345
- package/docs/core/objects/pdf-object/README.md +0 -11
- package/docs/core/objects/pdf-object/classes/PdfObject.md +0 -214
- package/docs/core/objects/pdf-object-reference/README.md +0 -11
- package/docs/core/objects/pdf-object-reference/classes/PdfObjectReference.md +0 -279
- package/docs/core/objects/pdf-start-xref/README.md +0 -11
- package/docs/core/objects/pdf-start-xref/classes/PdfStartXRef.md +0 -265
- package/docs/core/objects/pdf-stream/README.md +0 -23
- package/docs/core/objects/pdf-stream/classes/PdfObjStream.md +0 -699
- package/docs/core/objects/pdf-stream/classes/PdfStream.md +0 -570
- package/docs/core/objects/pdf-stream/classes/PdfXRefStream.md +0 -723
- package/docs/core/objects/pdf-stream/classes/PdfXRefStreamCompressedEntry.md +0 -51
- package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamEntry.md +0 -9
- package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamStandardEntry.md +0 -9
- package/docs/core/objects/pdf-stream/variables/PdfXRefStreamStandardEntry.md +0 -9
- package/docs/core/objects/pdf-string/README.md +0 -11
- package/docs/core/objects/pdf-string/classes/PdfString.md +0 -301
- package/docs/core/objects/pdf-trailer/README.md +0 -16
- package/docs/core/objects/pdf-trailer/classes/PdfTrailer.md +0 -271
- package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerDictionary.md +0 -9
- package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerEntries.md +0 -51
- package/docs/core/objects/pdf-xref-table/README.md +0 -13
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTable.md +0 -331
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableEntry.md +0 -297
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableSectionHeader.md +0 -277
- package/docs/core/parser/README.md +0 -11
- package/docs/core/parser/classes/Parser.md +0 -74
- package/docs/core/ref/README.md +0 -15
- package/docs/core/ref/classes/Ref.md +0 -149
- package/docs/core/ref/type-aliases/RefUpdateCallback.md +0 -33
- package/docs/core/serializer/README.md +0 -11
- package/docs/core/serializer/classes/PdfTokenSerializer.md +0 -106
- package/docs/core/streams/object-stream/README.md +0 -11
- package/docs/core/streams/object-stream/classes/PdfObjectStream.md +0 -69
- package/docs/core/tokeniser/README.md +0 -21
- package/docs/core/tokeniser/classes/PdfByteStreamTokeniser.md +0 -366
- package/docs/core/tokeniser/classes/PdfObjectTokeniser.md +0 -69
- package/docs/core/tokeniser/functions/objectToTokens.md +0 -25
- package/docs/core/tokeniser/functions/pdfObjectStreamTokeniser.md +0 -27
- package/docs/core/tokeniser/type-aliases/PdfTokeniser.md +0 -11
- package/docs/core/tokens/boolean-token/README.md +0 -11
- package/docs/core/tokens/boolean-token/classes/PdfBooleanToken.md +0 -139
- package/docs/core/tokens/byte-offset-token/README.md +0 -11
- package/docs/core/tokens/byte-offset-token/classes/PdfByteOffsetToken.md +0 -153
- package/docs/core/tokens/comment-token/README.md +0 -11
- package/docs/core/tokens/comment-token/classes/PdfCommentToken.md +0 -161
- package/docs/core/tokens/end-array-token/README.md +0 -11
- package/docs/core/tokens/end-array-token/classes/PdfEndArrayToken.md +0 -115
- package/docs/core/tokens/end-dictionary-token/README.md +0 -11
- package/docs/core/tokens/end-dictionary-token/classes/PdfEndDictionaryToken.md +0 -115
- package/docs/core/tokens/end-object-token/README.md +0 -11
- package/docs/core/tokens/end-object-token/classes/PdfEndObjectToken.md +0 -115
- package/docs/core/tokens/end-stream-token/README.md +0 -11
- package/docs/core/tokens/end-stream-token/classes/PdfEndStreamToken.md +0 -121
- package/docs/core/tokens/hexadecimal-token/README.md +0 -11
- package/docs/core/tokens/hexadecimal-token/classes/PdfHexadecimalToken.md +0 -127
- package/docs/core/tokens/name-token/README.md +0 -11
- package/docs/core/tokens/name-token/classes/PdfNameToken.md +0 -127
- package/docs/core/tokens/null-token/README.md +0 -11
- package/docs/core/tokens/null-token/classes/PdfNullToken.md +0 -115
- package/docs/core/tokens/number-token/README.md +0 -11
- package/docs/core/tokens/number-token/classes/PdfNumberToken.md +0 -271
- package/docs/core/tokens/object-reference-token/README.md +0 -11
- package/docs/core/tokens/object-reference-token/classes/PdfObjectReferenceToken.md +0 -137
- package/docs/core/tokens/start-array-token/README.md +0 -11
- package/docs/core/tokens/start-array-token/classes/PdfStartArrayToken.md +0 -115
- package/docs/core/tokens/start-dictionary-token/README.md +0 -11
- package/docs/core/tokens/start-dictionary-token/classes/PdfStartDictionaryToken.md +0 -115
- package/docs/core/tokens/start-object-token/README.md +0 -11
- package/docs/core/tokens/start-object-token/classes/PdfStartObjectToken.md +0 -147
- package/docs/core/tokens/start-stream-token/README.md +0 -11
- package/docs/core/tokens/start-stream-token/classes/PdfStartStreamToken.md +0 -147
- package/docs/core/tokens/start-xref-token/README.md +0 -11
- package/docs/core/tokens/start-xref-token/classes/PdfStartXRefToken.md +0 -115
- package/docs/core/tokens/stream-chunk-token/README.md +0 -11
- package/docs/core/tokens/stream-chunk-token/classes/PdfStreamChunkToken.md +0 -121
- package/docs/core/tokens/string-token/README.md +0 -11
- package/docs/core/tokens/string-token/classes/PdfStringToken.md +0 -127
- package/docs/core/tokens/token/README.md +0 -11
- package/docs/core/tokens/token/classes/PdfToken.md +0 -116
- package/docs/core/tokens/trailer-token/README.md +0 -11
- package/docs/core/tokens/trailer-token/classes/PdfTrailerToken.md +0 -127
- package/docs/core/tokens/whitespace-token/README.md +0 -11
- package/docs/core/tokens/whitespace-token/classes/PdfWhitespaceToken.md +0 -161
- package/docs/core/tokens/xref-table-entry-token/README.md +0 -11
- package/docs/core/tokens/xref-table-entry-token/classes/PdfXRefTableEntryToken.md +0 -157
- package/docs/core/tokens/xref-table-section-start-token/README.md +0 -11
- package/docs/core/tokens/xref-table-section-start-token/classes/PdfXRefTableSectionStartToken.md +0 -137
- package/docs/core/tokens/xref-table-start-token/README.md +0 -11
- package/docs/core/tokens/xref-table-start-token/classes/PdfXRefTableStartToken.md +0 -127
- package/docs/crypto/ciphers/aes128/README.md +0 -11
- package/docs/crypto/ciphers/aes128/functions/aes128.md +0 -39
- package/docs/crypto/ciphers/aes256/README.md +0 -11
- package/docs/crypto/ciphers/aes256/functions/aes256.md +0 -35
- package/docs/crypto/ciphers/rc4/README.md +0 -11
- package/docs/crypto/ciphers/rc4/functions/rc4.md +0 -35
- package/docs/crypto/constants/README.md +0 -11
- package/docs/crypto/constants/variables/DEFAULT_PADDING.md +0 -13
- package/docs/crypto/key-derivation/key-derivation/README.md +0 -13
- package/docs/crypto/key-derivation/key-derivation/functions/computeMasterKey.md +0 -57
- package/docs/crypto/key-derivation/key-derivation/functions/deriveObjectKey.md +0 -50
- package/docs/crypto/key-derivation/key-derivation/functions/padPassword.md +0 -33
- package/docs/crypto/key-derivation/key-derivation-aes256/README.md +0 -13
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/computeAlgorithm2bHash.md +0 -45
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/getFileKey.md +0 -66
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/validatePasswordHash.md +0 -52
- package/docs/crypto/key-gen/key-gen-aes256/README.md +0 -12
- package/docs/crypto/key-gen/key-gen-aes256/functions/generateOandOe.md +0 -44
- package/docs/crypto/key-gen/key-gen-aes256/functions/generateUandUe.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-128/README.md +0 -13
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeOValueRc4_128.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeUValueRc4_128.md +0 -62
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/decryptUserPasswordRc4_128.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-40/README.md +0 -14
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeEncryptionKeyRc4_40.md +0 -49
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeORc4_40.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeURc4_40.md +0 -50
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/decryptUserPasswordRc4_40.md +0 -38
- package/docs/crypto/types/README.md +0 -11
- package/docs/crypto/types/interfaces/Cipher.md +0 -39
- package/docs/crypto/utils/README.md +0 -13
- package/docs/crypto/utils/functions/int32ToLittleEndianBytes.md +0 -31
- package/docs/crypto/utils/functions/padPassword.md +0 -33
- package/docs/crypto/utils/functions/removePdfPasswordPadding.md +0 -32
- package/docs/filters/ascii85/README.md +0 -11
- package/docs/filters/ascii85/functions/ascii85.md +0 -27
- package/docs/filters/asciihex/README.md +0 -11
- package/docs/filters/asciihex/functions/asciiHex.md +0 -27
- package/docs/filters/flate/README.md +0 -11
- package/docs/filters/flate/functions/flate.md +0 -26
- package/docs/filters/lzw/README.md +0 -11
- package/docs/filters/lzw/functions/lzw.md +0 -27
- package/docs/filters/pass-through/README.md +0 -11
- package/docs/filters/pass-through/functions/passthroughFilter.md +0 -25
- package/docs/filters/runlength/README.md +0 -11
- package/docs/filters/runlength/functions/runLength.md +0 -27
- package/docs/filters/types/README.md +0 -19
- package/docs/filters/types/interfaces/PdfFilter.md +0 -39
- package/docs/filters/types/type-aliases/PdfStreamFilterType.md +0 -9
- package/docs/filters/types/variables/PDF_FILTER_TYPES.md +0 -51
- package/docs/index/README.md +0 -235
- package/docs/pdf/README.md +0 -31
- package/docs/pdf/errors/README.md +0 -11
- package/docs/pdf/errors/classes/FoundCompressedObjectError.md +0 -56
- package/docs/pdf/pdf-document/README.md +0 -11
- package/docs/pdf/pdf-document/classes/PdfDocument.md +0 -876
- package/docs/pdf/pdf-reader/README.md +0 -11
- package/docs/pdf/pdf-reader/classes/PdfReader.md +0 -82
- package/docs/pdf/pdf-revision/README.md +0 -11
- package/docs/pdf/pdf-revision/classes/PdfRevision.md +0 -508
- package/docs/pdf/pdf-xref-lookup/README.md +0 -11
- package/docs/pdf/pdf-xref-lookup/classes/PdfXrefLookup.md +0 -421
- package/docs/security/crypt-filters/aesv2/README.md +0 -11
- package/docs/security/crypt-filters/aesv2/classes/AesV2CryptFilter.md +0 -274
- package/docs/security/crypt-filters/aesv3/README.md +0 -11
- package/docs/security/crypt-filters/aesv3/classes/AesV3CryptFilter.md +0 -275
- package/docs/security/crypt-filters/base/README.md +0 -15
- package/docs/security/crypt-filters/base/classes/PdfCryptFilter.md +0 -221
- package/docs/security/crypt-filters/base/type-aliases/CryptFilterOptions.md +0 -43
- package/docs/security/crypt-filters/identity/README.md +0 -11
- package/docs/security/crypt-filters/identity/classes/IdentityCryptFilter.md +0 -249
- package/docs/security/crypt-filters/v2/README.md +0 -11
- package/docs/security/crypt-filters/v2/classes/V2CryptFilter.md +0 -279
- package/docs/security/handlers/base/README.md +0 -17
- package/docs/security/handlers/base/classes/PdfSecurityHandler.md +0 -384
- package/docs/security/handlers/base/classes/PdfStandardSecurityHandler.md +0 -694
- package/docs/security/handlers/base/type-aliases/PdfSecurityHandlerOptions.md +0 -27
- package/docs/security/handlers/base/type-aliases/PdfStandardSecurityHandlerOptions.md +0 -43
- package/docs/security/handlers/pubSec/README.md +0 -11
- package/docs/security/handlers/pubSec/classes/PdfPublicKeySecurityHandler.md +0 -503
- package/docs/security/handlers/utils/README.md +0 -14
- package/docs/security/handlers/utils/functions/createFromDictionary.md +0 -56
- package/docs/security/handlers/utils/functions/createFromEncryptionOptions.md +0 -40
- package/docs/security/handlers/utils/functions/createStandardSecurityHandlerFromDictionary.md +0 -55
- package/docs/security/handlers/utils/functions/getCryptFilter.md +0 -35
- package/docs/security/handlers/v1/README.md +0 -11
- package/docs/security/handlers/v1/classes/PdfV1SecurityHandler.md +0 -779
- package/docs/security/handlers/v2/README.md +0 -11
- package/docs/security/handlers/v2/classes/PdfV2SecurityHandler.md +0 -783
- package/docs/security/handlers/v4/README.md +0 -11
- package/docs/security/handlers/v4/classes/PdfV4SecurityHandler.md +0 -907
- package/docs/security/handlers/v5/README.md +0 -11
- package/docs/security/handlers/v5/classes/PdfV5SecurityHandler.md +0 -926
- package/docs/security/types/README.md +0 -19
- package/docs/security/types/type-aliases/CryptFilterType.md +0 -15
- package/docs/security/types/type-aliases/PdfCryptFilterDictionary.md +0 -12
- package/docs/security/types/type-aliases/PdfEncryptionAlgorithmOptions.md +0 -11
- package/docs/security/types/type-aliases/PdfEncryptionAlgorithmType.md +0 -17
- package/docs/security/types/type-aliases/PdfEncryptionDictionary.md +0 -13
- package/docs/security/types/type-aliases/PdfEncryptionDictionaryObject.md +0 -11
- package/docs/security/types/type-aliases/PdfEncryptionOptions.md +0 -90
- package/docs/security/types/type-aliases/PdfEncryptionRecipient.md +0 -24
- package/docs/security/types/type-aliases/PdfId.md +0 -13
- package/docs/signing/README.md +0 -127
- package/docs/signing/document-security-store/README.md +0 -19
- package/docs/signing/document-security-store/classes/PdfCertObject.md +0 -443
- package/docs/signing/document-security-store/classes/PdfCrlObject.md +0 -443
- package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreDictionary.md +0 -416
- package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreObject.md +0 -563
- package/docs/signing/document-security-store/classes/PdfOcspObject.md +0 -443
- package/docs/signing/document-security-store/type-aliases/PdfVriObject.md +0 -12
- package/docs/signing/signatures/README.md +0 -55
- package/docs/signing/signatures/adbe-pkcs7-detached/README.md +0 -11
- package/docs/signing/signatures/adbe-pkcs7-detached/classes/PdfAdbePkcs7DetachedSignatureObject.md +0 -669
- package/docs/signing/signatures/adbe-pkcs7-sha1/README.md +0 -11
- package/docs/signing/signatures/adbe-pkcs7-sha1/classes/PdfAdbePkcs7Sha1SignatureObject.md +0 -667
- package/docs/signing/signatures/adbe-x509-rsa-sha1/README.md +0 -11
- package/docs/signing/signatures/adbe-x509-rsa-sha1/classes/PdfAdbePkcsX509RsaSha1SignatureObject.md +0 -651
- package/docs/signing/signatures/base/README.md +0 -16
- package/docs/signing/signatures/base/classes/PdfSignatureDictionary.md +0 -420
- package/docs/signing/signatures/base/classes/PdfSignatureObject.md +0 -584
- package/docs/signing/signatures/base/type-aliases/PdfSignatureSignOptions.md +0 -51
- package/docs/signing/signatures/etsi-cades-detached/README.md +0 -11
- package/docs/signing/signatures/etsi-cades-detached/classes/PdfEtsiCadesDetachedSignatureObject.md +0 -693
- package/docs/signing/signatures/etsi-rfc3161/README.md +0 -11
- package/docs/signing/signatures/etsi-rfc3161/classes/PdfEtsiRfc3161SignatureObject.md +0 -614
- package/docs/signing/signer/README.md +0 -11
- package/docs/signing/signer/classes/PdfSigner.md +0 -58
- package/docs/signing/types/README.md +0 -16
- package/docs/signing/types/type-aliases/PdfSignatureDictionaryEntries.md +0 -95
- package/docs/signing/types/type-aliases/PdfSignatureSubType.md +0 -17
- package/docs/signing/types/type-aliases/PdfSignatureType.md +0 -14
- package/docs/signing/types/type-aliases/RevocationInfo.md +0 -43
- package/docs/signing/types/type-aliases/SignaturePolicyDocument.md +0 -35
- package/docs/signing/types/type-aliases/TimeStampAuthority.md +0 -35
- package/docs/signing/utils/README.md +0 -11
- package/docs/signing/utils/functions/fetchRevocationInfo.md +0 -70
- package/docs/types/README.md +0 -21
- package/docs/types/type-aliases/ByteArray.md +0 -9
- package/docs/types/type-aliases/ChangeType.md +0 -9
- package/docs/types/type-aliases/DecodeParms.md +0 -33
- package/docs/types/type-aliases/HashAlgorithm.md +0 -9
- package/docs/types/type-aliases/PdfEncryptionAlgorithm.md +0 -9
- package/docs/types/type-aliases/PdfPermissions.md +0 -63
- package/docs/types/type-aliases/PdfVersion.md +0 -9
- package/docs/types/variables/PERMISSION_FLAGS.md +0 -9
- package/docs/utils/IterableReadableStream/README.md +0 -11
- package/docs/utils/IterableReadableStream/classes/IterableReadableStream.md +0 -103
- package/docs/utils/algos/README.md +0 -28
- package/docs/utils/algos/functions/aes128CbcNoPaddingEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes128cbcDecrypt.md +0 -47
- package/docs/utils/algos/functions/aes128cbcEncrypt.md +0 -47
- package/docs/utils/algos/functions/aes256CbcNoPaddingDecrypt.md +0 -43
- package/docs/utils/algos/functions/aes256CbcNoPaddingEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes256cbcDecrypt.md +0 -43
- package/docs/utils/algos/functions/aes256cbcEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes256ecbDecrypt.md +0 -41
- package/docs/utils/algos/functions/aes256ecbEncrypt.md +0 -41
- package/docs/utils/algos/functions/deflateData.md +0 -31
- package/docs/utils/algos/functions/getRandomBytes.md +0 -35
- package/docs/utils/algos/functions/hash.md +0 -41
- package/docs/utils/algos/functions/inflateData.md +0 -35
- package/docs/utils/algos/functions/md5.md +0 -31
- package/docs/utils/algos/functions/sha1.md +0 -31
- package/docs/utils/algos/functions/sha256.md +0 -31
- package/docs/utils/algos/functions/sha384.md +0 -31
- package/docs/utils/algos/functions/sha512.md +0 -31
- package/docs/utils/assert/README.md +0 -12
- package/docs/utils/assert/functions/assert.md +0 -39
- package/docs/utils/assert/functions/assertIfDefined.md +0 -46
- package/docs/utils/bytesToHex/README.md +0 -11
- package/docs/utils/bytesToHex/functions/bytesToHex.md +0 -31
- package/docs/utils/bytesToHexBytes/README.md +0 -11
- package/docs/utils/bytesToHexBytes/functions/bytesToHexBytes.md +0 -32
- package/docs/utils/bytesToString/README.md +0 -11
- package/docs/utils/bytesToString/functions/bytesToString.md +0 -31
- package/docs/utils/concatUint8Arrays/README.md +0 -11
- package/docs/utils/concatUint8Arrays/functions/concatUint8Arrays.md +0 -31
- package/docs/utils/escapeString/README.md +0 -11
- package/docs/utils/escapeString/functions/escapeString.md +0 -32
- package/docs/utils/hexBytesToBytes/README.md +0 -11
- package/docs/utils/hexBytesToBytes/functions/hexBytesToBytes.md +0 -33
- package/docs/utils/hexBytesToString/README.md +0 -11
- package/docs/utils/hexBytesToString/functions/hexBytesToString.md +0 -31
- package/docs/utils/hexToBytes/README.md +0 -11
- package/docs/utils/hexToBytes/functions/hexToBytes.md +0 -31
- package/docs/utils/padBytes/README.md +0 -11
- package/docs/utils/padBytes/functions/padBytes.md +0 -41
- package/docs/utils/predictors/README.md +0 -11
- package/docs/utils/predictors/classes/Predictor.md +0 -306
- package/docs/utils/replaceInBuffer/README.md +0 -11
- package/docs/utils/replaceInBuffer/functions/replaceInBuffer.md +0 -65
- package/docs/utils/stringToBytes/README.md +0 -11
- package/docs/utils/stringToBytes/functions/stringToBytes.md +0 -32
- package/docs/utils/stringToHexBytes/README.md +0 -11
- package/docs/utils/stringToHexBytes/functions/stringToHexBytes.md +0 -33
- package/docs/utils/unescapeString/README.md +0 -11
- package/docs/utils/unescapeString/functions/unescapeString.md +0 -34
- package/examples/001-create-pdf.ts +0 -112
- package/examples/002-create-encrypted-pdf.ts +0 -121
- package/examples/003-sign-pdf.ts +0 -347
- package/examples/004-incremental-update.ts +0 -206
- package/examples/005-modify-acroform.ts +0 -374
- package/examples/006-tokeniser-example.ts +0 -131
- package/examples/007-decoder-example.ts +0 -197
- package/packages/pdf-lite/README.md +0 -3
- package/packages/pdf-lite/node_modules/.bin/playwright +0 -16
- package/packages/pdf-lite/node_modules/.bin/tsc +0 -16
- package/packages/pdf-lite/node_modules/.bin/tsserver +0 -16
- package/packages/pdf-lite/node_modules/.bin/vitest +0 -16
- package/packages/pdf-lite/package.json +0 -68
- package/packages/pdf-lite/scripts/create-encryption-tests.sh +0 -41
- package/packages/pdf-lite/scripts/gen-signing-keys.sh +0 -290
- package/packages/pdf-lite/scripts/generate-all-signing-keys.sh +0 -70
- package/packages/pdf-lite/src/core/decoder.ts +0 -454
- package/packages/pdf-lite/src/core/index.ts +0 -2
- package/packages/pdf-lite/src/core/objects/pdf-array.ts +0 -54
- package/packages/pdf-lite/src/core/objects/pdf-boolean.ts +0 -19
- package/packages/pdf-lite/src/core/objects/pdf-comment.ts +0 -50
- package/packages/pdf-lite/src/core/objects/pdf-date.ts +0 -74
- package/packages/pdf-lite/src/core/objects/pdf-dictionary.ts +0 -171
- package/packages/pdf-lite/src/core/objects/pdf-hexadecimal.ts +0 -54
- package/packages/pdf-lite/src/core/objects/pdf-indirect-object.ts +0 -137
- package/packages/pdf-lite/src/core/objects/pdf-name.ts +0 -19
- package/packages/pdf-lite/src/core/objects/pdf-null.ts +0 -15
- package/packages/pdf-lite/src/core/objects/pdf-number.ts +0 -98
- package/packages/pdf-lite/src/core/objects/pdf-object-reference.ts +0 -30
- package/packages/pdf-lite/src/core/objects/pdf-object.ts +0 -107
- package/packages/pdf-lite/src/core/objects/pdf-start-xref.ts +0 -39
- package/packages/pdf-lite/src/core/objects/pdf-stream.ts +0 -687
- package/packages/pdf-lite/src/core/objects/pdf-string.ts +0 -38
- package/packages/pdf-lite/src/core/objects/pdf-trailer.ts +0 -57
- package/packages/pdf-lite/src/core/objects/pdf-xref-table.ts +0 -264
- package/packages/pdf-lite/src/core/streams/object-stream.ts +0 -20
- package/packages/pdf-lite/src/core/tokeniser.ts +0 -687
- package/packages/pdf-lite/src/core/tokens/boolean-token.ts +0 -20
- package/packages/pdf-lite/src/core/tokens/byte-offset-token.ts +0 -20
- package/packages/pdf-lite/src/core/tokens/comment-token.ts +0 -32
- package/packages/pdf-lite/src/core/tokens/end-array-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-dictionary-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-object-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-stream-token.ts +0 -11
- package/packages/pdf-lite/src/core/tokens/hexadecimal-token.ts +0 -22
- package/packages/pdf-lite/src/core/tokens/name-token.ts +0 -19
- package/packages/pdf-lite/src/core/tokens/null-token.ts +0 -9
- package/packages/pdf-lite/src/core/tokens/number-token.ts +0 -164
- package/packages/pdf-lite/src/core/tokens/object-reference-token.ts +0 -24
- package/packages/pdf-lite/src/core/tokens/start-array-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/start-dictionary-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/start-object-token.ts +0 -28
- package/packages/pdf-lite/src/core/tokens/start-stream-token.ts +0 -52
- package/packages/pdf-lite/src/core/tokens/start-xref-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/stream-chunk-token.ts +0 -8
- package/packages/pdf-lite/src/core/tokens/string-token.ts +0 -17
- package/packages/pdf-lite/src/core/tokens/token.ts +0 -43
- package/packages/pdf-lite/src/core/tokens/trailer-token.ts +0 -12
- package/packages/pdf-lite/src/core/tokens/whitespace-token.ts +0 -43
- package/packages/pdf-lite/src/core/tokens/xref-table-entry-token.ts +0 -65
- package/packages/pdf-lite/src/core/tokens/xref-table-section-start-token.ts +0 -31
- package/packages/pdf-lite/src/core/tokens/xref-table-start-token.ts +0 -13
- package/packages/pdf-lite/src/crypto/key-derivation/key-derivation-aes256.ts +0 -213
- package/packages/pdf-lite/src/crypto/types.ts +0 -6
- package/packages/pdf-lite/src/filters/lzw.ts +0 -144
- package/packages/pdf-lite/src/index.ts +0 -4
- package/packages/pdf-lite/src/pdf/index.ts +0 -4
- package/packages/pdf-lite/src/pdf/pdf-xref-lookup.ts +0 -527
- package/packages/pdf-lite/src/security/handlers/base.ts +0 -625
- package/packages/pdf-lite/src/security/handlers/pubSec.ts +0 -413
- package/packages/pdf-lite/src/security/handlers/utils.ts +0 -304
- package/packages/pdf-lite/src/security/handlers/v1.ts +0 -225
- package/packages/pdf-lite/src/security/handlers/v4.ts +0 -379
- package/packages/pdf-lite/src/security/handlers/v5.ts +0 -298
- package/packages/pdf-lite/src/signing/document-security-store.ts +0 -224
- package/packages/pdf-lite/src/signing/index.ts +0 -3
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-detached.ts +0 -154
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-sha1.ts +0 -161
- package/packages/pdf-lite/src/signing/signatures/adbe-x509-rsa-sha1.ts +0 -106
- package/packages/pdf-lite/src/signing/signatures/base.ts +0 -229
- package/packages/pdf-lite/src/signing/signatures/etsi-cades-detached.ts +0 -229
- package/packages/pdf-lite/src/signing/signatures/index.ts +0 -6
- package/packages/pdf-lite/src/signing/signer.ts +0 -120
- package/packages/pdf-lite/src/types.ts +0 -44
- package/packages/pdf-lite/src/utils/escapeString.ts +0 -49
- package/packages/pdf-lite/src/utils/unescapeString.ts +0 -123
- package/packages/pdf-lite/test/acceptance/__snapshots__/versions.node.test.ts.snap +0 -60766
- package/packages/pdf-lite/test/acceptance/fixtures/1.3/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-128.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-256.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-128.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-40.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.5/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.6/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.7/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-128.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-256.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-128.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-40.pdf +0 -44
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic.pdf +0 -79
- package/packages/pdf-lite/test/acceptance/versions.node.test.ts +0 -41
- package/packages/pdf-lite/test/unit/__snapshots__/decoder.node.test.ts.snap +0 -86947
- package/packages/pdf-lite/test/unit/__snapshots__/tokeniser.node.test.ts.snap +0 -131829
- package/packages/pdf-lite/test/unit/ciphers.test.ts +0 -61
- package/packages/pdf-lite/test/unit/decoder.node.test.ts +0 -21
- package/packages/pdf-lite/test/unit/decoder.test.ts +0 -567
- package/packages/pdf-lite/test/unit/filters.test.ts +0 -67
- package/packages/pdf-lite/test/unit/fixtures/basic.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-128.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-256.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-128.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-40.pdf +0 -43
- package/packages/pdf-lite/test/unit/fixtures/protectedAdobeLivecycle.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/rsa-2048/index.ts +0 -187
- package/packages/pdf-lite/test/unit/fixtures/template.pdf +0 -0
- package/packages/pdf-lite/test/unit/incremental-update.test.ts +0 -0
- package/packages/pdf-lite/test/unit/objects.test.ts +0 -0
- package/packages/pdf-lite/test/unit/pdf-document-signing.test.ts +0 -0
- package/packages/pdf-lite/test/unit/pdf-revision.test.ts +0 -195
- package/packages/pdf-lite/test/unit/pdf.browser.test.ts +0 -0
- package/packages/pdf-lite/test/unit/predictors.test.ts +0 -226
- package/packages/pdf-lite/test/unit/ref.test.ts +0 -158
- package/packages/pdf-lite/test/unit/security-handlers.test.ts +0 -645
- package/packages/pdf-lite/test/unit/serializer.test.ts +0 -81
- package/packages/pdf-lite/test/unit/signature-objects.test.ts +0 -814
- package/packages/pdf-lite/test/unit/string-escaping.test.ts +0 -84
- package/packages/pdf-lite/test/unit/tokeniser.node.test.ts +0 -38
- package/packages/pdf-lite/test/unit/tokeniser.test.ts +0 -1213
- package/packages/pdf-lite/test/unit/utils.test.ts +0 -248
- package/packages/pdf-lite/test/unit/xref-lookup.test.ts +0 -72
- package/packages/pdf-lite/tsconfig.json +0 -4
- package/packages/pdf-lite/tsconfig.prod.json +0 -8
- package/packages/pdf-lite/typedoc.json +0 -14
- package/packages/pdf-lite/vitest.config.ts +0 -43
- package/pnpm-workspace.yaml +0 -2
- package/renovate.json +0 -34
- package/scripts/build-examples.ts +0 -30
- package/scripts/bump-version.sh +0 -56
- package/scripts/gen-html-docs.sh +0 -21
- package/scripts/gen-md-docs.sh +0 -15
- package/scripts/prepare-release.sh +0 -33
- package/tsconfig.json +0 -22
- package/tsconfig.prod.json +0 -12
- package/typedoc.json +0 -34
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
// PDF creation with encryption example
|
|
2
|
-
|
|
3
|
-
import { writeFileSync } from 'fs'
|
|
4
|
-
import { PdfArray } from 'pdf-lite/core/objects/pdf-array'
|
|
5
|
-
import { PdfDictionary } from 'pdf-lite/core/objects/pdf-dictionary'
|
|
6
|
-
import { PdfIndirectObject } from 'pdf-lite/core/objects/pdf-indirect-object'
|
|
7
|
-
import { PdfName } from 'pdf-lite/core/objects/pdf-name'
|
|
8
|
-
import { PdfNumber } from 'pdf-lite/core/objects/pdf-number'
|
|
9
|
-
import { PdfObjectReference } from 'pdf-lite/core/objects/pdf-object-reference'
|
|
10
|
-
import { PdfStream } from 'pdf-lite/core/objects/pdf-stream'
|
|
11
|
-
import { PdfDocument } from 'pdf-lite/pdf/pdf-document'
|
|
12
|
-
import { PdfV2SecurityHandler } from 'pdf-lite/security/handlers/v2'
|
|
13
|
-
|
|
14
|
-
function createPage(
|
|
15
|
-
contentStreamRef: PdfObjectReference,
|
|
16
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
17
|
-
const pageDict = new PdfDictionary()
|
|
18
|
-
pageDict.set('Type', new PdfName('Page'))
|
|
19
|
-
pageDict.set(
|
|
20
|
-
'MediaBox',
|
|
21
|
-
new PdfArray([
|
|
22
|
-
new PdfNumber(0),
|
|
23
|
-
new PdfNumber(0),
|
|
24
|
-
new PdfNumber(612),
|
|
25
|
-
new PdfNumber(792),
|
|
26
|
-
]),
|
|
27
|
-
)
|
|
28
|
-
pageDict.set('Contents', contentStreamRef)
|
|
29
|
-
return new PdfIndirectObject({ content: pageDict })
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function createPages(
|
|
33
|
-
pages: PdfIndirectObject<PdfDictionary>[],
|
|
34
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
35
|
-
const pagesDict = new PdfDictionary()
|
|
36
|
-
pagesDict.set('Type', new PdfName('Pages'))
|
|
37
|
-
pagesDict.set('Kids', new PdfArray(pages.map((x) => x.reference)))
|
|
38
|
-
pagesDict.set('Count', new PdfNumber(pages.length))
|
|
39
|
-
return new PdfIndirectObject({ content: pagesDict })
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function createCatalog(
|
|
43
|
-
pagesRef: PdfObjectReference,
|
|
44
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
45
|
-
const catalogDict = new PdfDictionary()
|
|
46
|
-
catalogDict.set('Type', new PdfName('Catalog'))
|
|
47
|
-
catalogDict.set('Pages', pagesRef)
|
|
48
|
-
return new PdfIndirectObject({ content: catalogDict })
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function createFont(): PdfIndirectObject<PdfDictionary> {
|
|
52
|
-
const fontDict = new PdfDictionary()
|
|
53
|
-
fontDict.set('Type', new PdfName('Font'))
|
|
54
|
-
fontDict.set('Subtype', new PdfName('Type1'))
|
|
55
|
-
fontDict.set('BaseFont', new PdfName('Helvetica'))
|
|
56
|
-
return new PdfIndirectObject({ content: fontDict })
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function createResources(
|
|
60
|
-
fontRef: PdfObjectReference,
|
|
61
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
62
|
-
const resourcesDict = new PdfDictionary()
|
|
63
|
-
const fontDict = new PdfDictionary()
|
|
64
|
-
fontDict.set('F1', fontRef)
|
|
65
|
-
resourcesDict.set('Font', fontDict)
|
|
66
|
-
return new PdfIndirectObject({ content: resourcesDict })
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Create the document
|
|
70
|
-
const document = new PdfDocument()
|
|
71
|
-
|
|
72
|
-
// Create font
|
|
73
|
-
const font = createFont()
|
|
74
|
-
document.add(font)
|
|
75
|
-
|
|
76
|
-
// Create resources with the font
|
|
77
|
-
const resources = createResources(font.reference)
|
|
78
|
-
document.add(resources)
|
|
79
|
-
|
|
80
|
-
// Create content stream
|
|
81
|
-
const contentStream = new PdfIndirectObject({
|
|
82
|
-
content: new PdfStream({
|
|
83
|
-
header: new PdfDictionary(),
|
|
84
|
-
original: 'BT /F1 24 Tf 100 700 Td (Hello, PDF-Lite!) Tj ET',
|
|
85
|
-
}),
|
|
86
|
-
})
|
|
87
|
-
|
|
88
|
-
// Create a page
|
|
89
|
-
const page = createPage(contentStream.reference)
|
|
90
|
-
// Add resources to the page
|
|
91
|
-
page.content.set('Resources', resources.reference)
|
|
92
|
-
document.add(page)
|
|
93
|
-
|
|
94
|
-
// Create pages collection
|
|
95
|
-
const pages = createPages([page])
|
|
96
|
-
// Set parent reference for the page
|
|
97
|
-
page.content.set('Parent', pages.reference)
|
|
98
|
-
document.add(pages)
|
|
99
|
-
|
|
100
|
-
// Create catalog
|
|
101
|
-
const catalog = createCatalog(pages.reference)
|
|
102
|
-
document.add(catalog)
|
|
103
|
-
|
|
104
|
-
// Set the catalog as the root
|
|
105
|
-
document.trailerDict.set('Root', catalog.reference)
|
|
106
|
-
|
|
107
|
-
document.add(contentStream)
|
|
108
|
-
await document.commit()
|
|
109
|
-
|
|
110
|
-
document.securityHandler = new PdfV2SecurityHandler({
|
|
111
|
-
password: 'up',
|
|
112
|
-
documentId: 'cafebabe',
|
|
113
|
-
encryptMetadata: true,
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
await document.encrypt()
|
|
117
|
-
|
|
118
|
-
const file = `${import.meta.dirname}/tmp/encrypted.pdf`
|
|
119
|
-
console.log(`Writing encrypted PDF to: ${file}. Password: "up"`)
|
|
120
|
-
|
|
121
|
-
await writeFileSync(`${file}`, document.toBytes())
|
package/examples/003-sign-pdf.ts
DELETED
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
// PDF signature example
|
|
2
|
-
|
|
3
|
-
import { PdfArray } from 'pdf-lite/core/objects/pdf-array'
|
|
4
|
-
import { PdfDictionary } from 'pdf-lite/core/objects/pdf-dictionary'
|
|
5
|
-
import { PdfIndirectObject } from 'pdf-lite/core/objects/pdf-indirect-object'
|
|
6
|
-
import { PdfName } from 'pdf-lite/core/objects/pdf-name'
|
|
7
|
-
import { PdfNumber } from 'pdf-lite/core/objects/pdf-number'
|
|
8
|
-
import { PdfObjectReference } from 'pdf-lite/core/objects/pdf-object-reference'
|
|
9
|
-
import { PdfStream } from 'pdf-lite/core/objects/pdf-stream'
|
|
10
|
-
import { PdfDocument } from 'pdf-lite/pdf/pdf-document'
|
|
11
|
-
import { PdfString } from 'pdf-lite/core/objects/pdf-string'
|
|
12
|
-
import {
|
|
13
|
-
PdfAdbePkcsX509RsaSha1SignatureObject,
|
|
14
|
-
PdfAdbePkcs7DetachedSignatureObject,
|
|
15
|
-
PdfAdbePkcs7Sha1SignatureObject,
|
|
16
|
-
PdfEtsiCadesDetachedSignatureObject,
|
|
17
|
-
PdfEtsiRfc3161SignatureObject,
|
|
18
|
-
} from 'pdf-lite'
|
|
19
|
-
import { rsaSigningKeys } from '../packages/pdf-lite/test/unit/fixtures/rsa-2048/index'
|
|
20
|
-
import fs from 'fs/promises'
|
|
21
|
-
|
|
22
|
-
function createPage(
|
|
23
|
-
contentStreamRef: PdfObjectReference,
|
|
24
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
25
|
-
const pageDict = new PdfDictionary()
|
|
26
|
-
pageDict.set('Type', new PdfName('Page'))
|
|
27
|
-
pageDict.set(
|
|
28
|
-
'MediaBox',
|
|
29
|
-
new PdfArray([
|
|
30
|
-
new PdfNumber(0),
|
|
31
|
-
new PdfNumber(0),
|
|
32
|
-
new PdfNumber(612),
|
|
33
|
-
new PdfNumber(792),
|
|
34
|
-
]),
|
|
35
|
-
)
|
|
36
|
-
pageDict.set('Contents', contentStreamRef)
|
|
37
|
-
return new PdfIndirectObject({ content: pageDict })
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function createPages(
|
|
41
|
-
pages: PdfIndirectObject<PdfDictionary>[],
|
|
42
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
43
|
-
const pagesDict = new PdfDictionary()
|
|
44
|
-
pagesDict.set('Type', new PdfName('Pages'))
|
|
45
|
-
pagesDict.set('Kids', new PdfArray(pages.map((x) => x.reference)))
|
|
46
|
-
pagesDict.set('Count', new PdfNumber(pages.length))
|
|
47
|
-
return new PdfIndirectObject({ content: pagesDict })
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function createCatalog(
|
|
51
|
-
pagesRef: PdfObjectReference,
|
|
52
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
53
|
-
const catalogDict = new PdfDictionary()
|
|
54
|
-
catalogDict.set('Type', new PdfName('Catalog'))
|
|
55
|
-
catalogDict.set('Pages', pagesRef)
|
|
56
|
-
return new PdfIndirectObject({ content: catalogDict })
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function createFont(): PdfIndirectObject<PdfDictionary> {
|
|
60
|
-
const fontDict = new PdfDictionary()
|
|
61
|
-
fontDict.set('Type', new PdfName('Font'))
|
|
62
|
-
fontDict.set('Subtype', new PdfName('Type1'))
|
|
63
|
-
fontDict.set('BaseFont', new PdfName('Helvetica'))
|
|
64
|
-
return new PdfIndirectObject({ content: fontDict })
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function createResources(
|
|
68
|
-
fontRef: PdfObjectReference,
|
|
69
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
70
|
-
const resourcesDict = new PdfDictionary()
|
|
71
|
-
const fontDict = new PdfDictionary()
|
|
72
|
-
fontDict.set('F1', fontRef)
|
|
73
|
-
resourcesDict.set('Font', fontDict)
|
|
74
|
-
return new PdfIndirectObject({ content: resourcesDict })
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function createPageWithSignatureField(
|
|
78
|
-
contentStreamRef: PdfObjectReference,
|
|
79
|
-
signatureAnnotRef: PdfObjectReference,
|
|
80
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
81
|
-
const pageDict = new PdfDictionary()
|
|
82
|
-
pageDict.set('Type', new PdfName('Page'))
|
|
83
|
-
pageDict.set(
|
|
84
|
-
'MediaBox',
|
|
85
|
-
new PdfArray([
|
|
86
|
-
new PdfNumber(0),
|
|
87
|
-
new PdfNumber(0),
|
|
88
|
-
new PdfNumber(612),
|
|
89
|
-
new PdfNumber(792),
|
|
90
|
-
]),
|
|
91
|
-
)
|
|
92
|
-
pageDict.set('Contents', contentStreamRef)
|
|
93
|
-
pageDict.set('Annots', new PdfArray([signatureAnnotRef]))
|
|
94
|
-
|
|
95
|
-
return new PdfIndirectObject({ content: pageDict })
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function createSignatureAnnotation(
|
|
99
|
-
signatureRef: PdfObjectReference,
|
|
100
|
-
appearanceStreamRef: PdfObjectReference,
|
|
101
|
-
pageRef: PdfObjectReference,
|
|
102
|
-
signatureName: string,
|
|
103
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
104
|
-
const signatureAnnotation = new PdfDictionary()
|
|
105
|
-
signatureAnnotation.set('Type', new PdfName('Annot'))
|
|
106
|
-
signatureAnnotation.set('Subtype', new PdfName('Widget'))
|
|
107
|
-
signatureAnnotation.set('FT', new PdfName('Sig'))
|
|
108
|
-
signatureAnnotation.set('T', new PdfString(signatureName))
|
|
109
|
-
signatureAnnotation.set(
|
|
110
|
-
'Rect',
|
|
111
|
-
new PdfArray([
|
|
112
|
-
new PdfNumber(135), // x1: Start after "Signature: " text (~72 + 63)
|
|
113
|
-
new PdfNumber(640), // y1: Bottom of signature area (652 - 12)
|
|
114
|
-
new PdfNumber(400), // x2: End of signature line
|
|
115
|
-
new PdfNumber(665), // y2: Top of signature area (652 + 13)
|
|
116
|
-
]),
|
|
117
|
-
)
|
|
118
|
-
signatureAnnotation.set('F', new PdfNumber(4))
|
|
119
|
-
signatureAnnotation.set('P', pageRef) // Reference to parent page
|
|
120
|
-
signatureAnnotation.set('V', signatureRef)
|
|
121
|
-
|
|
122
|
-
// Add appearance dictionary
|
|
123
|
-
const appearanceDict = new PdfDictionary()
|
|
124
|
-
appearanceDict.set('N', appearanceStreamRef)
|
|
125
|
-
signatureAnnotation.set('AP', appearanceDict)
|
|
126
|
-
|
|
127
|
-
return new PdfIndirectObject({ content: signatureAnnotation })
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function createSignatureAppearance(): PdfIndirectObject<PdfStream> {
|
|
131
|
-
// Create font for appearance
|
|
132
|
-
const appearanceFont = new PdfDictionary()
|
|
133
|
-
appearanceFont.set('Type', new PdfName('Font'))
|
|
134
|
-
appearanceFont.set('Subtype', new PdfName('Type1'))
|
|
135
|
-
appearanceFont.set('BaseFont', new PdfName('Helvetica'))
|
|
136
|
-
|
|
137
|
-
const fontDict = new PdfDictionary()
|
|
138
|
-
fontDict.set('F1', appearanceFont)
|
|
139
|
-
|
|
140
|
-
const resourcesDict = new PdfDictionary()
|
|
141
|
-
resourcesDict.set('Font', fontDict)
|
|
142
|
-
|
|
143
|
-
// Create appearance stream header
|
|
144
|
-
const appearanceHeader = new PdfDictionary()
|
|
145
|
-
appearanceHeader.set('Type', new PdfName('XObject'))
|
|
146
|
-
appearanceHeader.set('Subtype', new PdfName('Form'))
|
|
147
|
-
appearanceHeader.set(
|
|
148
|
-
'BBox',
|
|
149
|
-
new PdfArray([
|
|
150
|
-
new PdfNumber(0),
|
|
151
|
-
new PdfNumber(0),
|
|
152
|
-
new PdfNumber(265), // Width: 400 - 135
|
|
153
|
-
new PdfNumber(25), // Height: 665 - 640
|
|
154
|
-
]),
|
|
155
|
-
)
|
|
156
|
-
appearanceHeader.set('Resources', resourcesDict)
|
|
157
|
-
|
|
158
|
-
// Create appearance stream for the signature
|
|
159
|
-
return new PdfIndirectObject({
|
|
160
|
-
content: new PdfStream({
|
|
161
|
-
header: appearanceHeader,
|
|
162
|
-
original:
|
|
163
|
-
'BT /F1 10 Tf 5 14 Td (Digitally signed by: Jake Shirley) Tj ET',
|
|
164
|
-
}),
|
|
165
|
-
})
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// Create the document
|
|
169
|
-
const document = new PdfDocument()
|
|
170
|
-
|
|
171
|
-
// Create font
|
|
172
|
-
const font = createFont()
|
|
173
|
-
document.add(font)
|
|
174
|
-
|
|
175
|
-
// Create resources with the font
|
|
176
|
-
const resources = createResources(font.reference)
|
|
177
|
-
document.add(resources)
|
|
178
|
-
|
|
179
|
-
// Create content stream for first page
|
|
180
|
-
const contentStream = new PdfIndirectObject({
|
|
181
|
-
content: new PdfStream({
|
|
182
|
-
header: new PdfDictionary(),
|
|
183
|
-
original: 'BT /F1 24 Tf 100 700 Td (Hello, PDF-Lite!) Tj ET',
|
|
184
|
-
}),
|
|
185
|
-
})
|
|
186
|
-
document.add(contentStream)
|
|
187
|
-
|
|
188
|
-
// Create first page
|
|
189
|
-
const page1 = createPage(contentStream.reference)
|
|
190
|
-
page1.content.set('Resources', resources.reference)
|
|
191
|
-
document.add(page1)
|
|
192
|
-
|
|
193
|
-
// Array to hold all pages and signature objects
|
|
194
|
-
const allPages: PdfIndirectObject<PdfDictionary>[] = [page1]
|
|
195
|
-
const allSignatures: any[] = []
|
|
196
|
-
const signatureFields: PdfObjectReference[] = []
|
|
197
|
-
|
|
198
|
-
// Helper function to create a signature page
|
|
199
|
-
function createSignaturePage(
|
|
200
|
-
signatureType: string,
|
|
201
|
-
signatureObj: any,
|
|
202
|
-
pageNumber: number,
|
|
203
|
-
) {
|
|
204
|
-
const content = new PdfIndirectObject({
|
|
205
|
-
content: new PdfStream({
|
|
206
|
-
header: new PdfDictionary(),
|
|
207
|
-
original: `BT /F1 12 Tf 72 712 Td (Signature Type: ${signatureType}) Tj 0 -60 Td (Signature: ________________________________) Tj ET`,
|
|
208
|
-
}),
|
|
209
|
-
})
|
|
210
|
-
document.add(content)
|
|
211
|
-
|
|
212
|
-
const appearance = createSignatureAppearance()
|
|
213
|
-
document.add(appearance)
|
|
214
|
-
|
|
215
|
-
// Create page first to get its reference
|
|
216
|
-
const page = createPageWithSignatureField(
|
|
217
|
-
content.reference,
|
|
218
|
-
new PdfObjectReference(0, 0), // Temporary placeholder
|
|
219
|
-
)
|
|
220
|
-
page.content.set('Resources', resources.reference)
|
|
221
|
-
document.add(page)
|
|
222
|
-
|
|
223
|
-
// Now create annotation with page reference
|
|
224
|
-
const annotation = createSignatureAnnotation(
|
|
225
|
-
signatureObj.reference,
|
|
226
|
-
appearance.reference,
|
|
227
|
-
page.reference,
|
|
228
|
-
`Signature${pageNumber}`,
|
|
229
|
-
)
|
|
230
|
-
document.add(annotation)
|
|
231
|
-
|
|
232
|
-
// Update page's Annots array with actual annotation reference
|
|
233
|
-
page.content.set('Annots', new PdfArray([annotation.reference]))
|
|
234
|
-
|
|
235
|
-
signatureFields.push(annotation.reference)
|
|
236
|
-
return page
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// Page 2: Adobe PKCS7 Detached
|
|
240
|
-
const pkcs7DetachedSig = new PdfAdbePkcs7DetachedSignatureObject({
|
|
241
|
-
privateKey: rsaSigningKeys.privateKey,
|
|
242
|
-
certificate: rsaSigningKeys.cert,
|
|
243
|
-
issuerCertificate: rsaSigningKeys.caCert,
|
|
244
|
-
name: 'Jake Shirley',
|
|
245
|
-
location: 'Earth',
|
|
246
|
-
reason: 'PKCS7 Detached Signature',
|
|
247
|
-
contactInfo: 'test@test.com',
|
|
248
|
-
revocationInfo: {
|
|
249
|
-
crls: [rsaSigningKeys.caCrl],
|
|
250
|
-
ocsps: [rsaSigningKeys.ocspResponse],
|
|
251
|
-
},
|
|
252
|
-
})
|
|
253
|
-
allSignatures.push(pkcs7DetachedSig)
|
|
254
|
-
allPages.push(createSignaturePage('Adobe PKCS7 Detached', pkcs7DetachedSig, 2))
|
|
255
|
-
|
|
256
|
-
// Page 3: Adobe PKCS7 SHA1
|
|
257
|
-
const pkcs7Sha1Sig = new PdfAdbePkcs7Sha1SignatureObject({
|
|
258
|
-
privateKey: rsaSigningKeys.privateKey,
|
|
259
|
-
certificate: rsaSigningKeys.cert,
|
|
260
|
-
issuerCertificate: rsaSigningKeys.caCert,
|
|
261
|
-
name: 'Jake Shirley',
|
|
262
|
-
location: 'Earth',
|
|
263
|
-
reason: 'PKCS7 SHA1 Signature',
|
|
264
|
-
contactInfo: 'test@test.com',
|
|
265
|
-
})
|
|
266
|
-
allSignatures.push(pkcs7Sha1Sig)
|
|
267
|
-
allPages.push(createSignaturePage('Adobe PKCS7 SHA1', pkcs7Sha1Sig, 3))
|
|
268
|
-
|
|
269
|
-
// Page 4: Adobe X509 RSA SHA1
|
|
270
|
-
const x509RsaSha1Sig = new PdfAdbePkcsX509RsaSha1SignatureObject({
|
|
271
|
-
privateKey: rsaSigningKeys.privateKey,
|
|
272
|
-
certificate: rsaSigningKeys.cert,
|
|
273
|
-
additionalCertificates: [rsaSigningKeys.caCert],
|
|
274
|
-
name: 'Jake Shirley',
|
|
275
|
-
location: 'Earth',
|
|
276
|
-
reason: 'X509 RSA SHA1 Signature',
|
|
277
|
-
contactInfo: 'test@test.com',
|
|
278
|
-
revocationInfo: {
|
|
279
|
-
crls: [rsaSigningKeys.caCrl],
|
|
280
|
-
ocsps: [rsaSigningKeys.ocspResponse],
|
|
281
|
-
},
|
|
282
|
-
})
|
|
283
|
-
allSignatures.push(x509RsaSha1Sig)
|
|
284
|
-
allPages.push(createSignaturePage('Adobe X509 RSA SHA1', x509RsaSha1Sig, 4))
|
|
285
|
-
|
|
286
|
-
// Page 5: ETSI CAdES Detached
|
|
287
|
-
const cadesDetachedSig = new PdfEtsiCadesDetachedSignatureObject({
|
|
288
|
-
privateKey: rsaSigningKeys.privateKey,
|
|
289
|
-
certificate: rsaSigningKeys.cert,
|
|
290
|
-
issuerCertificate: rsaSigningKeys.caCert,
|
|
291
|
-
name: 'Jake Shirley',
|
|
292
|
-
location: 'Earth',
|
|
293
|
-
reason: 'CAdES Detached Signature',
|
|
294
|
-
contactInfo: 'test@test.com',
|
|
295
|
-
revocationInfo: {
|
|
296
|
-
crls: [rsaSigningKeys.caCrl],
|
|
297
|
-
ocsps: [rsaSigningKeys.ocspResponse],
|
|
298
|
-
},
|
|
299
|
-
})
|
|
300
|
-
allSignatures.push(cadesDetachedSig)
|
|
301
|
-
allPages.push(createSignaturePage('ETSI CAdES Detached', cadesDetachedSig, 5))
|
|
302
|
-
|
|
303
|
-
// Page 6: ETSI RFC3161 (Timestamp)
|
|
304
|
-
const rfc3161Sig = new PdfEtsiRfc3161SignatureObject({
|
|
305
|
-
timeStampAuthority: {
|
|
306
|
-
url: 'https://freetsa.org/tsr',
|
|
307
|
-
},
|
|
308
|
-
})
|
|
309
|
-
allSignatures.push(rfc3161Sig)
|
|
310
|
-
allPages.push(createSignaturePage('ETSI RFC3161 Timestamp', rfc3161Sig, 6))
|
|
311
|
-
|
|
312
|
-
// Create pages collection with all pages
|
|
313
|
-
const pages = createPages(allPages)
|
|
314
|
-
// Set parent reference for all pages
|
|
315
|
-
allPages.forEach((page) => {
|
|
316
|
-
page.content.set('Parent', pages.reference)
|
|
317
|
-
})
|
|
318
|
-
document.add(pages)
|
|
319
|
-
|
|
320
|
-
// Create catalog with AcroForm
|
|
321
|
-
const catalog = createCatalog(pages.reference)
|
|
322
|
-
|
|
323
|
-
// Add AcroForm to catalog with all signature fields
|
|
324
|
-
const acroForm = new PdfDictionary()
|
|
325
|
-
acroForm.set('Fields', new PdfArray(signatureFields))
|
|
326
|
-
acroForm.set('SigFlags', new PdfNumber(3))
|
|
327
|
-
const acroFormObj = new PdfIndirectObject({ content: acroForm })
|
|
328
|
-
document.add(acroFormObj)
|
|
329
|
-
catalog.content.set('AcroForm', acroFormObj.reference)
|
|
330
|
-
|
|
331
|
-
document.add(catalog)
|
|
332
|
-
|
|
333
|
-
// Set the catalog as the root
|
|
334
|
-
document.trailerDict.set('Root', catalog.reference)
|
|
335
|
-
|
|
336
|
-
// IMPORTANT: Add all signatures LAST - after all other objects
|
|
337
|
-
// This ensures the ByteRange is calculated correctly for each signature
|
|
338
|
-
allSignatures.forEach((sig) => {
|
|
339
|
-
document.startNewRevision()
|
|
340
|
-
document.add(sig)
|
|
341
|
-
})
|
|
342
|
-
|
|
343
|
-
await document.commit()
|
|
344
|
-
|
|
345
|
-
const tmpFolder = `${import.meta.dirname}/tmp`
|
|
346
|
-
await fs.mkdir(tmpFolder, { recursive: true })
|
|
347
|
-
await fs.writeFile(`${tmpFolder}/signed-output.pdf`, document.toBytes())
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
// Incremental PDF update example
|
|
2
|
-
|
|
3
|
-
import { PdfArray } from 'pdf-lite/core/objects/pdf-array'
|
|
4
|
-
import { PdfDictionary } from 'pdf-lite/core/objects/pdf-dictionary'
|
|
5
|
-
import { PdfIndirectObject } from 'pdf-lite/core/objects/pdf-indirect-object'
|
|
6
|
-
import { PdfName } from 'pdf-lite/core/objects/pdf-name'
|
|
7
|
-
import { PdfNumber } from 'pdf-lite/core/objects/pdf-number'
|
|
8
|
-
import { PdfObjectReference } from 'pdf-lite/core/objects/pdf-object-reference'
|
|
9
|
-
import { PdfStream } from 'pdf-lite/core/objects/pdf-stream'
|
|
10
|
-
import { PdfDocument } from 'pdf-lite/pdf/pdf-document'
|
|
11
|
-
import fs from 'fs/promises'
|
|
12
|
-
|
|
13
|
-
const tmpFolder = `${import.meta.dirname}/tmp`
|
|
14
|
-
await fs.mkdir(tmpFolder, { recursive: true })
|
|
15
|
-
|
|
16
|
-
// Helper functions for creating PDF objects
|
|
17
|
-
function createPage(
|
|
18
|
-
contentStreamRef: PdfObjectReference,
|
|
19
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
20
|
-
const pageDict = new PdfDictionary()
|
|
21
|
-
pageDict.set('Type', new PdfName('Page'))
|
|
22
|
-
pageDict.set(
|
|
23
|
-
'MediaBox',
|
|
24
|
-
new PdfArray([
|
|
25
|
-
new PdfNumber(0),
|
|
26
|
-
new PdfNumber(0),
|
|
27
|
-
new PdfNumber(612),
|
|
28
|
-
new PdfNumber(792),
|
|
29
|
-
]),
|
|
30
|
-
)
|
|
31
|
-
pageDict.set('Contents', contentStreamRef)
|
|
32
|
-
return new PdfIndirectObject({ content: pageDict })
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function createPages(
|
|
36
|
-
pages: PdfIndirectObject<PdfDictionary>[],
|
|
37
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
38
|
-
const pagesDict = new PdfDictionary()
|
|
39
|
-
pagesDict.set('Type', new PdfName('Pages'))
|
|
40
|
-
pagesDict.set('Kids', new PdfArray(pages.map((x) => x.reference)))
|
|
41
|
-
pagesDict.set('Count', new PdfNumber(pages.length))
|
|
42
|
-
return new PdfIndirectObject({ content: pagesDict })
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function createCatalog(
|
|
46
|
-
pagesRef: PdfObjectReference,
|
|
47
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
48
|
-
const catalogDict = new PdfDictionary()
|
|
49
|
-
catalogDict.set('Type', new PdfName('Catalog'))
|
|
50
|
-
catalogDict.set('Pages', pagesRef)
|
|
51
|
-
return new PdfIndirectObject({ content: catalogDict })
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function createFont(): PdfIndirectObject<PdfDictionary> {
|
|
55
|
-
const fontDict = new PdfDictionary()
|
|
56
|
-
fontDict.set('Type', new PdfName('Font'))
|
|
57
|
-
fontDict.set('Subtype', new PdfName('Type1'))
|
|
58
|
-
fontDict.set('BaseFont', new PdfName('Helvetica'))
|
|
59
|
-
return new PdfIndirectObject({ content: fontDict })
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function createResources(
|
|
63
|
-
fontRef: PdfObjectReference,
|
|
64
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
65
|
-
const resourcesDict = new PdfDictionary()
|
|
66
|
-
const fontDict = new PdfDictionary()
|
|
67
|
-
fontDict.set('F1', fontRef)
|
|
68
|
-
resourcesDict.set('Font', fontDict)
|
|
69
|
-
return new PdfIndirectObject({ content: resourcesDict })
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Step 1: Create an initial PDF document
|
|
73
|
-
console.log('Step 1: Creating initial PDF document...')
|
|
74
|
-
const document = new PdfDocument()
|
|
75
|
-
|
|
76
|
-
const font = createFont()
|
|
77
|
-
document.add(font)
|
|
78
|
-
const resources = createResources(font.reference)
|
|
79
|
-
document.add(resources)
|
|
80
|
-
|
|
81
|
-
const contentStream = new PdfIndirectObject({
|
|
82
|
-
content: new PdfStream({
|
|
83
|
-
header: new PdfDictionary(),
|
|
84
|
-
original:
|
|
85
|
-
'BT /F1 24 Tf 100 700 Td (Original Document - Revision 1) Tj ET',
|
|
86
|
-
}),
|
|
87
|
-
})
|
|
88
|
-
|
|
89
|
-
const page = createPage(contentStream.reference)
|
|
90
|
-
page.content.set('Resources', resources.reference)
|
|
91
|
-
document.add(page)
|
|
92
|
-
|
|
93
|
-
const pages = createPages([page])
|
|
94
|
-
page.content.set('Parent', pages.reference)
|
|
95
|
-
document.add(pages)
|
|
96
|
-
|
|
97
|
-
const catalog = createCatalog(pages.reference)
|
|
98
|
-
document.add(catalog)
|
|
99
|
-
|
|
100
|
-
document.trailerDict.set('Root', catalog.reference)
|
|
101
|
-
document.add(contentStream)
|
|
102
|
-
|
|
103
|
-
await document.commit()
|
|
104
|
-
// Save the original PDF
|
|
105
|
-
const originalPdfPath = `${tmpFolder}/original.pdf`
|
|
106
|
-
await fs.writeFile(originalPdfPath, document.toBytes())
|
|
107
|
-
console.log(`Original PDF saved to: ${originalPdfPath}`)
|
|
108
|
-
console.log(`Original PDF has ${document.revisions.length} revision(s)`)
|
|
109
|
-
|
|
110
|
-
// Step 2: Load the PDF and perform an incremental update
|
|
111
|
-
console.log('\nStep 2: Loading PDF and performing incremental update...')
|
|
112
|
-
|
|
113
|
-
// Read the existing PDF
|
|
114
|
-
const existingPdfBytes = await fs.readFile(originalPdfPath)
|
|
115
|
-
const loadedDocument = await PdfDocument.fromBytes([existingPdfBytes])
|
|
116
|
-
|
|
117
|
-
// Lock existing revisions to enable incremental mode
|
|
118
|
-
// This ensures changes are added as new revisions instead of modifying existing ones
|
|
119
|
-
loadedDocument.setIncremental(true)
|
|
120
|
-
|
|
121
|
-
// Create new content for the incremental update
|
|
122
|
-
// In a real scenario, this could be adding annotations, form fields, signatures, etc.
|
|
123
|
-
const newContentStream = new PdfIndirectObject({
|
|
124
|
-
objectNumber: contentStream.objectNumber,
|
|
125
|
-
generationNumber: contentStream.generationNumber,
|
|
126
|
-
content: new PdfStream({
|
|
127
|
-
header: new PdfDictionary(),
|
|
128
|
-
original:
|
|
129
|
-
'BT /F1 18 Tf 100 650 Td (This content was added in Revision 2) Tj ET',
|
|
130
|
-
}),
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
// Add the new content to the document
|
|
134
|
-
loadedDocument.add(newContentStream)
|
|
135
|
-
await loadedDocument.commit()
|
|
136
|
-
|
|
137
|
-
// Save the incrementally updated PDF
|
|
138
|
-
const updatedPdfPath = `${tmpFolder}/incremental-update.pdf`
|
|
139
|
-
await fs.writeFile(updatedPdfPath, loadedDocument.toBytes())
|
|
140
|
-
console.log(`Incrementally updated PDF saved to: ${updatedPdfPath}`)
|
|
141
|
-
console.log(`Updated PDF has ${loadedDocument.revisions.length} revision(s)`)
|
|
142
|
-
|
|
143
|
-
// Step 3: Verify the incremental update preserved the original content
|
|
144
|
-
console.log('\nStep 3: Verifying incremental update...')
|
|
145
|
-
|
|
146
|
-
// Check file sizes to confirm incremental update (new file should be larger)
|
|
147
|
-
const originalStats = await fs.stat(originalPdfPath)
|
|
148
|
-
const updatedStats = await fs.stat(updatedPdfPath)
|
|
149
|
-
|
|
150
|
-
console.log(`Original PDF size: ${originalStats.size} bytes`)
|
|
151
|
-
console.log(`Updated PDF size: ${updatedStats.size} bytes`)
|
|
152
|
-
console.log(
|
|
153
|
-
`Size difference: ${updatedStats.size - originalStats.size} bytes (new revision data)`,
|
|
154
|
-
)
|
|
155
|
-
|
|
156
|
-
// The updated PDF contains the original bytes plus the new revision
|
|
157
|
-
// This is the key feature of incremental updates - the original PDF is preserved
|
|
158
|
-
const updatedPdfBytes = await fs.readFile(updatedPdfPath)
|
|
159
|
-
const originalPdfBytesForComparison = await fs.readFile(originalPdfPath)
|
|
160
|
-
|
|
161
|
-
// Verify that the beginning of the updated PDF matches the original
|
|
162
|
-
const originalBytesMatch = updatedPdfBytes
|
|
163
|
-
.slice(0, originalPdfBytesForComparison.length - 10) // Exclude the %%EOF marker area
|
|
164
|
-
.toString()
|
|
165
|
-
.includes(
|
|
166
|
-
originalPdfBytesForComparison
|
|
167
|
-
.subarray(0, -10)
|
|
168
|
-
.toString()
|
|
169
|
-
.substring(0, 100),
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
console.log(`Original content preserved: ${originalBytesMatch ? 'Yes' : 'No'}`)
|
|
173
|
-
|
|
174
|
-
// Step 4: Add another incremental revision
|
|
175
|
-
console.log('\nStep 4: Adding another incremental revision...')
|
|
176
|
-
|
|
177
|
-
const secondUpdate = await PdfDocument.fromBytes([updatedPdfBytes])
|
|
178
|
-
secondUpdate.setIncremental(true)
|
|
179
|
-
|
|
180
|
-
const thirdRevisionContent = new PdfIndirectObject({
|
|
181
|
-
objectNumber: contentStream.objectNumber,
|
|
182
|
-
generationNumber: contentStream.generationNumber,
|
|
183
|
-
content: new PdfStream(
|
|
184
|
-
'BT /F1 14 Tf 100 600 Td (Third revision - demonstrates multiple incremental updates) Tj ET',
|
|
185
|
-
),
|
|
186
|
-
})
|
|
187
|
-
|
|
188
|
-
secondUpdate.add(thirdRevisionContent)
|
|
189
|
-
await secondUpdate.commit()
|
|
190
|
-
|
|
191
|
-
const multiRevisionPdfPath = `${tmpFolder}/multi-revision.pdf`
|
|
192
|
-
await fs.writeFile(multiRevisionPdfPath, secondUpdate.toBytes())
|
|
193
|
-
console.log(`Multi-revision PDF saved to: ${multiRevisionPdfPath}`)
|
|
194
|
-
console.log(
|
|
195
|
-
`Multi-revision PDF has ${secondUpdate.revisions.length} revision(s)`,
|
|
196
|
-
)
|
|
197
|
-
|
|
198
|
-
const multiRevisionStats = await fs.stat(multiRevisionPdfPath)
|
|
199
|
-
console.log(`Multi-revision PDF size: ${multiRevisionStats.size} bytes`)
|
|
200
|
-
|
|
201
|
-
console.log('\n=== Summary ===')
|
|
202
|
-
console.log('Incremental updates allow you to:')
|
|
203
|
-
console.log('1. Preserve the original PDF content (important for signatures)')
|
|
204
|
-
console.log('2. Add new content without modifying existing revisions')
|
|
205
|
-
console.log('3. Maintain a complete history of document changes')
|
|
206
|
-
console.log('4. Stack multiple revisions on top of each other')
|