pdf-lite 1.0.1-alpha.1 → 1.0.1-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/dist/core/decoder.d.ts +39 -0
  2. package/dist/core/decoder.js +367 -0
  3. package/dist/core/generators.d.ts +37 -0
  4. package/{packages/pdf-lite/src/core/generators.ts → dist/core/generators.js} +36 -67
  5. package/dist/core/incremental-parser.d.ts +103 -0
  6. package/{packages/pdf-lite/src/core/incremental-parser.ts → dist/core/incremental-parser.js} +63 -100
  7. package/dist/core/index.d.ts +2 -0
  8. package/dist/core/index.js +2 -0
  9. package/dist/core/objects/pdf-array.d.ts +12 -0
  10. package/dist/core/objects/pdf-array.js +42 -0
  11. package/dist/core/objects/pdf-boolean.d.ts +8 -0
  12. package/dist/core/objects/pdf-boolean.js +15 -0
  13. package/dist/core/objects/pdf-comment.d.ts +18 -0
  14. package/dist/core/objects/pdf-comment.js +39 -0
  15. package/dist/core/objects/pdf-date.d.ts +5 -0
  16. package/dist/core/objects/pdf-date.js +40 -0
  17. package/dist/core/objects/pdf-dictionary.d.ts +22 -0
  18. package/dist/core/objects/pdf-dictionary.js +136 -0
  19. package/dist/core/objects/pdf-hexadecimal.d.ts +17 -0
  20. package/dist/core/objects/pdf-hexadecimal.js +42 -0
  21. package/dist/core/objects/pdf-indirect-object.d.ts +27 -0
  22. package/dist/core/objects/pdf-indirect-object.js +100 -0
  23. package/dist/core/objects/pdf-name.d.ts +8 -0
  24. package/dist/core/objects/pdf-name.js +15 -0
  25. package/dist/core/objects/pdf-null.d.ts +7 -0
  26. package/dist/core/objects/pdf-null.js +11 -0
  27. package/dist/core/objects/pdf-number.d.ts +25 -0
  28. package/dist/core/objects/pdf-number.js +77 -0
  29. package/dist/core/objects/pdf-object-reference.d.ts +9 -0
  30. package/dist/core/objects/pdf-object-reference.js +19 -0
  31. package/dist/core/objects/pdf-object.d.ts +30 -0
  32. package/dist/core/objects/pdf-object.js +77 -0
  33. package/dist/core/objects/pdf-start-xref.d.ts +10 -0
  34. package/dist/core/objects/pdf-start-xref.js +32 -0
  35. package/dist/core/objects/pdf-stream.d.ts +100 -0
  36. package/dist/core/objects/pdf-stream.js +521 -0
  37. package/dist/core/objects/pdf-string.d.ts +15 -0
  38. package/dist/core/objects/pdf-string.js +30 -0
  39. package/dist/core/objects/pdf-trailer.d.ts +26 -0
  40. package/dist/core/objects/pdf-trailer.js +33 -0
  41. package/dist/core/objects/pdf-xref-table.d.ts +48 -0
  42. package/dist/core/objects/pdf-xref-table.js +183 -0
  43. package/{packages/pdf-lite/src/core/parser.ts → dist/core/parser.d.ts} +3 -4
  44. package/dist/core/parser.js +9 -0
  45. package/dist/core/ref.d.ts +59 -0
  46. package/{packages/pdf-lite/src/core/ref.ts → dist/core/ref.js} +23 -41
  47. package/dist/core/serializer.d.ts +36 -0
  48. package/{packages/pdf-lite/src/core/serializer.ts → dist/core/serializer.js} +20 -30
  49. package/dist/core/streams/object-stream.d.ts +6 -0
  50. package/dist/core/streams/object-stream.js +15 -0
  51. package/dist/core/tokeniser.d.ts +98 -0
  52. package/dist/core/tokeniser.js +552 -0
  53. package/dist/core/tokens/boolean-token.d.ts +8 -0
  54. package/dist/core/tokens/boolean-token.js +15 -0
  55. package/dist/core/tokens/byte-offset-token.d.ts +8 -0
  56. package/dist/core/tokens/byte-offset-token.js +15 -0
  57. package/dist/core/tokens/comment-token.d.ts +10 -0
  58. package/dist/core/tokens/comment-token.js +26 -0
  59. package/dist/core/tokens/end-array-token.d.ts +4 -0
  60. package/dist/core/tokens/end-array-token.js +8 -0
  61. package/dist/core/tokens/end-dictionary-token.d.ts +4 -0
  62. package/dist/core/tokens/end-dictionary-token.js +8 -0
  63. package/dist/core/tokens/end-object-token.d.ts +4 -0
  64. package/dist/core/tokens/end-object-token.js +8 -0
  65. package/dist/core/tokens/end-stream-token.d.ts +5 -0
  66. package/dist/core/tokens/end-stream-token.js +8 -0
  67. package/dist/core/tokens/hexadecimal-token.d.ts +7 -0
  68. package/dist/core/tokens/hexadecimal-token.js +16 -0
  69. package/dist/core/tokens/name-token.d.ts +6 -0
  70. package/dist/core/tokens/name-token.js +15 -0
  71. package/dist/core/tokens/null-token.d.ts +4 -0
  72. package/dist/core/tokens/null-token.js +8 -0
  73. package/dist/core/tokens/number-token.d.ts +24 -0
  74. package/dist/core/tokens/number-token.js +104 -0
  75. package/dist/core/tokens/object-reference-token.d.ts +7 -0
  76. package/dist/core/tokens/object-reference-token.js +17 -0
  77. package/dist/core/tokens/start-array-token.d.ts +4 -0
  78. package/dist/core/tokens/start-array-token.js +8 -0
  79. package/dist/core/tokens/start-dictionary-token.d.ts +4 -0
  80. package/dist/core/tokens/start-dictionary-token.js +8 -0
  81. package/dist/core/tokens/start-object-token.d.ts +8 -0
  82. package/dist/core/tokens/start-object-token.js +17 -0
  83. package/dist/core/tokens/start-stream-token.d.ts +8 -0
  84. package/dist/core/tokens/start-stream-token.js +38 -0
  85. package/dist/core/tokens/start-xref-token.d.ts +4 -0
  86. package/dist/core/tokens/start-xref-token.js +8 -0
  87. package/dist/core/tokens/stream-chunk-token.d.ts +5 -0
  88. package/dist/core/tokens/stream-chunk-token.js +6 -0
  89. package/dist/core/tokens/string-token.d.ts +7 -0
  90. package/dist/core/tokens/string-token.js +13 -0
  91. package/dist/core/tokens/token.d.ts +10 -0
  92. package/dist/core/tokens/token.js +32 -0
  93. package/dist/core/tokens/trailer-token.d.ts +5 -0
  94. package/dist/core/tokens/trailer-token.js +10 -0
  95. package/dist/core/tokens/whitespace-token.d.ts +11 -0
  96. package/dist/core/tokens/whitespace-token.js +36 -0
  97. package/dist/core/tokens/xref-table-entry-token.d.ts +13 -0
  98. package/dist/core/tokens/xref-table-entry-token.js +40 -0
  99. package/dist/core/tokens/xref-table-section-start-token.d.ts +8 -0
  100. package/dist/core/tokens/xref-table-section-start-token.js +21 -0
  101. package/dist/core/tokens/xref-table-start-token.d.ts +5 -0
  102. package/dist/core/tokens/xref-table-start-token.js +10 -0
  103. package/dist/crypto/ciphers/aes128.d.ts +19 -0
  104. package/{packages/pdf-lite/src/crypto/ciphers/aes128.ts → dist/crypto/ciphers/aes128.js} +17 -27
  105. package/dist/crypto/ciphers/aes256.d.ts +18 -0
  106. package/{packages/pdf-lite/src/crypto/ciphers/aes256.ts → dist/crypto/ciphers/aes256.js} +14 -17
  107. package/dist/crypto/ciphers/rc4.d.ts +18 -0
  108. package/{packages/pdf-lite/src/crypto/ciphers/rc4.ts → dist/crypto/ciphers/rc4.js} +25 -30
  109. package/dist/crypto/constants.d.ts +6 -0
  110. package/{packages/pdf-lite/src/crypto/constants.ts → dist/crypto/constants.js} +1 -1
  111. package/dist/crypto/key-derivation/key-derivation-aes256.d.ts +56 -0
  112. package/dist/crypto/key-derivation/key-derivation-aes256.js +156 -0
  113. package/dist/crypto/key-derivation/key-derivation.d.ts +42 -0
  114. package/{packages/pdf-lite/src/crypto/key-derivation/key-derivation.ts → dist/crypto/key-derivation/key-derivation.js} +35 -66
  115. package/dist/crypto/key-gen/key-gen-aes256.d.ts +36 -0
  116. package/{packages/pdf-lite/src/crypto/key-gen/key-gen-aes256.ts → dist/crypto/key-gen/key-gen-aes256.js} +25 -50
  117. package/dist/crypto/key-gen/key-gen-rc4-128.d.ts +47 -0
  118. package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-128.ts → dist/crypto/key-gen/key-gen-rc4-128.js} +45 -106
  119. package/dist/crypto/key-gen/key-gen-rc4-40.d.ts +60 -0
  120. package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-40.ts → dist/crypto/key-gen/key-gen-rc4-40.js} +26 -62
  121. package/dist/crypto/types.d.ts +5 -0
  122. package/dist/crypto/types.js +1 -0
  123. package/dist/crypto/utils.d.ts +40 -0
  124. package/{packages/pdf-lite/src/crypto/utils.ts → dist/crypto/utils.js} +27 -36
  125. package/dist/filters/ascii85.d.ts +16 -0
  126. package/{packages/pdf-lite/src/filters/ascii85.ts → dist/filters/ascii85.js} +41 -65
  127. package/dist/filters/asciihex.d.ts +16 -0
  128. package/{packages/pdf-lite/src/filters/asciihex.ts → dist/filters/asciihex.js} +18 -19
  129. package/dist/filters/flate.d.ts +15 -0
  130. package/{packages/pdf-lite/src/filters/flate.ts → dist/filters/flate.js} +7 -10
  131. package/dist/filters/lzw.d.ts +16 -0
  132. package/dist/filters/lzw.js +150 -0
  133. package/dist/filters/pass-through.d.ts +14 -0
  134. package/{packages/pdf-lite/src/filters/pass-through.ts → dist/filters/pass-through.js} +6 -9
  135. package/dist/filters/runlength.d.ts +16 -0
  136. package/{packages/pdf-lite/src/filters/runlength.ts → dist/filters/runlength.js} +36 -40
  137. package/dist/filters/types.d.ts +18 -0
  138. package/{packages/pdf-lite/src/filters/types.ts → dist/filters/types.js} +1 -10
  139. package/dist/index.d.ts +4 -0
  140. package/dist/index.js +4 -0
  141. package/dist/pdf/errors.d.ts +6 -0
  142. package/{packages/pdf-lite/src/pdf/errors.ts → dist/pdf/errors.js} +2 -1
  143. package/dist/pdf/index.d.ts +4 -0
  144. package/dist/pdf/index.js +4 -0
  145. package/dist/pdf/pdf-document.d.ts +277 -0
  146. package/{packages/pdf-lite/src/pdf/pdf-document.ts → dist/pdf/pdf-document.js} +305 -541
  147. package/dist/pdf/pdf-reader.d.ts +37 -0
  148. package/{packages/pdf-lite/src/pdf/pdf-reader.ts → dist/pdf/pdf-reader.js} +12 -22
  149. package/dist/pdf/pdf-revision.d.ts +101 -0
  150. package/{packages/pdf-lite/src/pdf/pdf-revision.ts → dist/pdf/pdf-revision.js} +70 -105
  151. package/dist/pdf/pdf-xref-lookup.d.ts +149 -0
  152. package/dist/pdf/pdf-xref-lookup.js +402 -0
  153. package/dist/security/crypt-filters/aesv2.d.ts +35 -0
  154. package/{packages/pdf-lite/src/security/crypt-filters/aesv2.ts → dist/security/crypt-filters/aesv2.js} +9 -26
  155. package/dist/security/crypt-filters/aesv3.d.ts +36 -0
  156. package/{packages/pdf-lite/src/security/crypt-filters/aesv3.ts → dist/security/crypt-filters/aesv3.js} +9 -23
  157. package/{packages/pdf-lite/src/security/crypt-filters/base.ts → dist/security/crypt-filters/base.d.ts} +21 -73
  158. package/dist/security/crypt-filters/base.js +93 -0
  159. package/dist/security/crypt-filters/identity.d.ts +28 -0
  160. package/{packages/pdf-lite/src/security/crypt-filters/identity.ts → dist/security/crypt-filters/identity.js} +9 -13
  161. package/dist/security/crypt-filters/v2.d.ts +37 -0
  162. package/{packages/pdf-lite/src/security/crypt-filters/v2.ts → dist/security/crypt-filters/v2.js} +9 -26
  163. package/dist/security/handlers/base.d.ts +304 -0
  164. package/dist/security/handlers/base.js +359 -0
  165. package/dist/security/handlers/pubSec.d.ts +164 -0
  166. package/dist/security/handlers/pubSec.js +299 -0
  167. package/dist/security/handlers/utils.d.ts +77 -0
  168. package/dist/security/handlers/utils.js +244 -0
  169. package/dist/security/handlers/v1.d.ts +81 -0
  170. package/dist/security/handlers/v1.js +135 -0
  171. package/dist/security/handlers/v2.d.ts +63 -0
  172. package/{packages/pdf-lite/src/security/handlers/v2.ts → dist/security/handlers/v2.js} +25 -62
  173. package/dist/security/handlers/v4.d.ts +121 -0
  174. package/dist/security/handlers/v4.js +257 -0
  175. package/dist/security/handlers/v5.d.ts +112 -0
  176. package/dist/security/handlers/v5.js +210 -0
  177. package/{packages/pdf-lite/src/security/types.ts → dist/security/types.d.ts} +72 -94
  178. package/dist/security/types.js +1 -0
  179. package/dist/signing/document-security-store.d.ts +108 -0
  180. package/dist/signing/document-security-store.js +156 -0
  181. package/dist/signing/index.d.ts +3 -0
  182. package/dist/signing/index.js +3 -0
  183. package/dist/signing/signatures/adbe-pkcs7-detached.d.ts +57 -0
  184. package/dist/signing/signatures/adbe-pkcs7-detached.js +117 -0
  185. package/dist/signing/signatures/adbe-pkcs7-sha1.d.ts +55 -0
  186. package/dist/signing/signatures/adbe-pkcs7-sha1.js +121 -0
  187. package/dist/signing/signatures/adbe-x509-rsa-sha1.d.ts +49 -0
  188. package/dist/signing/signatures/adbe-x509-rsa-sha1.js +81 -0
  189. package/dist/signing/signatures/base.d.ts +107 -0
  190. package/dist/signing/signatures/base.js +145 -0
  191. package/dist/signing/signatures/etsi-cades-detached.d.ts +64 -0
  192. package/dist/signing/signatures/etsi-cades-detached.js +159 -0
  193. package/dist/signing/signatures/etsi-rfc3161.d.ts +37 -0
  194. package/{packages/pdf-lite/src/signing/signatures/etsi-rfc3161.ts → dist/signing/signatures/etsi-rfc3161.js} +21 -43
  195. package/dist/signing/signatures/index.d.ts +6 -0
  196. package/dist/signing/signatures/index.js +6 -0
  197. package/dist/signing/signer.d.ts +23 -0
  198. package/dist/signing/signer.js +92 -0
  199. package/{packages/pdf-lite/src/signing/types.ts → dist/signing/types.d.ts} +40 -48
  200. package/dist/signing/types.js +1 -0
  201. package/dist/signing/utils.d.ts +32 -0
  202. package/{packages/pdf-lite/src/signing/utils.ts → dist/signing/utils.js} +12 -31
  203. package/dist/types.d.ts +23 -0
  204. package/dist/types.js +11 -0
  205. package/dist/utils/IterableReadableStream.d.ts +24 -0
  206. package/{packages/pdf-lite/src/utils/IterableReadableStream.ts → dist/utils/IterableReadableStream.js} +6 -6
  207. package/dist/utils/algos.d.ts +242 -0
  208. package/{packages/pdf-lite/src/utils/algos.ts → dist/utils/algos.js} +63 -136
  209. package/dist/utils/assert.d.ts +28 -0
  210. package/{packages/pdf-lite/src/utils/assert.ts → dist/utils/assert.js} +5 -10
  211. package/dist/utils/bytesToHex.d.ts +13 -0
  212. package/{packages/pdf-lite/src/utils/bytesToHex.ts → dist/utils/bytesToHex.js} +4 -6
  213. package/dist/utils/bytesToHexBytes.d.ts +14 -0
  214. package/{packages/pdf-lite/src/utils/bytesToHexBytes.ts → dist/utils/bytesToHexBytes.js} +7 -12
  215. package/dist/utils/bytesToString.d.ts +13 -0
  216. package/{packages/pdf-lite/src/utils/bytesToString.ts → dist/utils/bytesToString.js} +3 -5
  217. package/dist/utils/concatUint8Arrays.d.ts +16 -0
  218. package/{packages/pdf-lite/src/utils/concatUint8Arrays.ts → dist/utils/concatUint8Arrays.js} +7 -9
  219. package/dist/utils/escapeString.d.ts +14 -0
  220. package/dist/utils/escapeString.js +43 -0
  221. package/dist/utils/hexBytesToBytes.d.ts +15 -0
  222. package/{packages/pdf-lite/src/utils/hexBytesToBytes.ts → dist/utils/hexBytesToBytes.js} +4 -6
  223. package/dist/utils/hexBytesToString.d.ts +13 -0
  224. package/{packages/pdf-lite/src/utils/hexBytesToString.ts → dist/utils/hexBytesToString.js} +5 -7
  225. package/dist/utils/hexToBytes.d.ts +13 -0
  226. package/{packages/pdf-lite/src/utils/hexToBytes.ts → dist/utils/hexToBytes.js} +4 -6
  227. package/dist/utils/padBytes.d.ts +15 -0
  228. package/{packages/pdf-lite/src/utils/padBytes.ts → dist/utils/padBytes.js} +5 -9
  229. package/dist/utils/predictors.d.ts +113 -0
  230. package/{packages/pdf-lite/src/utils/predictors.ts → dist/utils/predictors.js} +103 -156
  231. package/dist/utils/replaceInBuffer.d.ts +22 -0
  232. package/{packages/pdf-lite/src/utils/replaceInBuffer.ts → dist/utils/replaceInBuffer.js} +18 -27
  233. package/dist/utils/stringToBytes.d.ts +14 -0
  234. package/{packages/pdf-lite/src/utils/stringToBytes.ts → dist/utils/stringToBytes.js} +6 -7
  235. package/dist/utils/stringToHexBytes.d.ts +15 -0
  236. package/{packages/pdf-lite/src/utils/stringToHexBytes.ts → dist/utils/stringToHexBytes.js} +5 -7
  237. package/dist/utils/unescapeString.d.ts +16 -0
  238. package/dist/utils/unescapeString.js +114 -0
  239. package/package.json +37 -34
  240. package/.commitlintrc.cjs +0 -25
  241. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  242. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  243. package/.github/workflows/docs.yaml +0 -95
  244. package/.github/workflows/prepare-release.yaml +0 -79
  245. package/.github/workflows/release.yaml +0 -80
  246. package/.github/workflows/test.yaml +0 -35
  247. package/.husky/commit-msg +0 -1
  248. package/.husky/pre-commit +0 -1
  249. package/.prettierignore +0 -4
  250. package/.prettierrc +0 -4
  251. package/CONTRIBUTING.md +0 -109
  252. package/EXAMPLES.md +0 -1512
  253. package/docs/README.md +0 -127
  254. package/docs/core/README.md +0 -43
  255. package/docs/core/decoder/README.md +0 -11
  256. package/docs/core/decoder/classes/PdfDecoder.md +0 -362
  257. package/docs/core/generators/README.md +0 -14
  258. package/docs/core/generators/functions/bytesToPdfObjects.md +0 -26
  259. package/docs/core/generators/functions/pdfDecoder.md +0 -36
  260. package/docs/core/generators/functions/pdfDecoderAsync.md +0 -26
  261. package/docs/core/generators/functions/stringToPdfObjects.md +0 -25
  262. package/docs/core/incremental-parser/README.md +0 -13
  263. package/docs/core/incremental-parser/classes/EofReachedError.md +0 -55
  264. package/docs/core/incremental-parser/classes/IncrementalParser.md +0 -299
  265. package/docs/core/incremental-parser/classes/NoMoreTokensError.md +0 -55
  266. package/docs/core/objects/pdf-array/README.md +0 -11
  267. package/docs/core/objects/pdf-array/classes/PdfArray.md +0 -305
  268. package/docs/core/objects/pdf-boolean/README.md +0 -11
  269. package/docs/core/objects/pdf-boolean/classes/PdfBoolean.md +0 -265
  270. package/docs/core/objects/pdf-comment/README.md +0 -11
  271. package/docs/core/objects/pdf-comment/classes/PdfComment.md +0 -329
  272. package/docs/core/objects/pdf-date/README.md +0 -11
  273. package/docs/core/objects/pdf-date/classes/PdfDate.md +0 -317
  274. package/docs/core/objects/pdf-dictionary/README.md +0 -17
  275. package/docs/core/objects/pdf-dictionary/classes/PdfDictionary.md +0 -396
  276. package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntries.md +0 -9
  277. package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntry.md +0 -9
  278. package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryMap.md +0 -9
  279. package/docs/core/objects/pdf-hexadecimal/README.md +0 -11
  280. package/docs/core/objects/pdf-hexadecimal/classes/PdfHexadecimal.md +0 -320
  281. package/docs/core/objects/pdf-indirect-object/README.md +0 -11
  282. package/docs/core/objects/pdf-indirect-object/classes/PdfIndirectObject.md +0 -411
  283. package/docs/core/objects/pdf-name/README.md +0 -11
  284. package/docs/core/objects/pdf-name/classes/PdfName.md +0 -271
  285. package/docs/core/objects/pdf-null/README.md +0 -11
  286. package/docs/core/objects/pdf-null/classes/PdfNull.md +0 -259
  287. package/docs/core/objects/pdf-number/README.md +0 -12
  288. package/docs/core/objects/pdf-number/classes/PdfByteOffsetNumber.md +0 -369
  289. package/docs/core/objects/pdf-number/classes/PdfNumber.md +0 -345
  290. package/docs/core/objects/pdf-object/README.md +0 -11
  291. package/docs/core/objects/pdf-object/classes/PdfObject.md +0 -214
  292. package/docs/core/objects/pdf-object-reference/README.md +0 -11
  293. package/docs/core/objects/pdf-object-reference/classes/PdfObjectReference.md +0 -279
  294. package/docs/core/objects/pdf-start-xref/README.md +0 -11
  295. package/docs/core/objects/pdf-start-xref/classes/PdfStartXRef.md +0 -265
  296. package/docs/core/objects/pdf-stream/README.md +0 -23
  297. package/docs/core/objects/pdf-stream/classes/PdfObjStream.md +0 -699
  298. package/docs/core/objects/pdf-stream/classes/PdfStream.md +0 -570
  299. package/docs/core/objects/pdf-stream/classes/PdfXRefStream.md +0 -723
  300. package/docs/core/objects/pdf-stream/classes/PdfXRefStreamCompressedEntry.md +0 -51
  301. package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamEntry.md +0 -9
  302. package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamStandardEntry.md +0 -9
  303. package/docs/core/objects/pdf-stream/variables/PdfXRefStreamStandardEntry.md +0 -9
  304. package/docs/core/objects/pdf-string/README.md +0 -11
  305. package/docs/core/objects/pdf-string/classes/PdfString.md +0 -301
  306. package/docs/core/objects/pdf-trailer/README.md +0 -16
  307. package/docs/core/objects/pdf-trailer/classes/PdfTrailer.md +0 -271
  308. package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerDictionary.md +0 -9
  309. package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerEntries.md +0 -51
  310. package/docs/core/objects/pdf-xref-table/README.md +0 -13
  311. package/docs/core/objects/pdf-xref-table/classes/PdfXRefTable.md +0 -331
  312. package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableEntry.md +0 -297
  313. package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableSectionHeader.md +0 -277
  314. package/docs/core/parser/README.md +0 -11
  315. package/docs/core/parser/classes/Parser.md +0 -74
  316. package/docs/core/ref/README.md +0 -15
  317. package/docs/core/ref/classes/Ref.md +0 -149
  318. package/docs/core/ref/type-aliases/RefUpdateCallback.md +0 -33
  319. package/docs/core/serializer/README.md +0 -11
  320. package/docs/core/serializer/classes/PdfTokenSerializer.md +0 -106
  321. package/docs/core/streams/object-stream/README.md +0 -11
  322. package/docs/core/streams/object-stream/classes/PdfObjectStream.md +0 -69
  323. package/docs/core/tokeniser/README.md +0 -21
  324. package/docs/core/tokeniser/classes/PdfByteStreamTokeniser.md +0 -366
  325. package/docs/core/tokeniser/classes/PdfObjectTokeniser.md +0 -69
  326. package/docs/core/tokeniser/functions/objectToTokens.md +0 -25
  327. package/docs/core/tokeniser/functions/pdfObjectStreamTokeniser.md +0 -27
  328. package/docs/core/tokeniser/type-aliases/PdfTokeniser.md +0 -11
  329. package/docs/core/tokens/boolean-token/README.md +0 -11
  330. package/docs/core/tokens/boolean-token/classes/PdfBooleanToken.md +0 -139
  331. package/docs/core/tokens/byte-offset-token/README.md +0 -11
  332. package/docs/core/tokens/byte-offset-token/classes/PdfByteOffsetToken.md +0 -153
  333. package/docs/core/tokens/comment-token/README.md +0 -11
  334. package/docs/core/tokens/comment-token/classes/PdfCommentToken.md +0 -161
  335. package/docs/core/tokens/end-array-token/README.md +0 -11
  336. package/docs/core/tokens/end-array-token/classes/PdfEndArrayToken.md +0 -115
  337. package/docs/core/tokens/end-dictionary-token/README.md +0 -11
  338. package/docs/core/tokens/end-dictionary-token/classes/PdfEndDictionaryToken.md +0 -115
  339. package/docs/core/tokens/end-object-token/README.md +0 -11
  340. package/docs/core/tokens/end-object-token/classes/PdfEndObjectToken.md +0 -115
  341. package/docs/core/tokens/end-stream-token/README.md +0 -11
  342. package/docs/core/tokens/end-stream-token/classes/PdfEndStreamToken.md +0 -121
  343. package/docs/core/tokens/hexadecimal-token/README.md +0 -11
  344. package/docs/core/tokens/hexadecimal-token/classes/PdfHexadecimalToken.md +0 -127
  345. package/docs/core/tokens/name-token/README.md +0 -11
  346. package/docs/core/tokens/name-token/classes/PdfNameToken.md +0 -127
  347. package/docs/core/tokens/null-token/README.md +0 -11
  348. package/docs/core/tokens/null-token/classes/PdfNullToken.md +0 -115
  349. package/docs/core/tokens/number-token/README.md +0 -11
  350. package/docs/core/tokens/number-token/classes/PdfNumberToken.md +0 -271
  351. package/docs/core/tokens/object-reference-token/README.md +0 -11
  352. package/docs/core/tokens/object-reference-token/classes/PdfObjectReferenceToken.md +0 -137
  353. package/docs/core/tokens/start-array-token/README.md +0 -11
  354. package/docs/core/tokens/start-array-token/classes/PdfStartArrayToken.md +0 -115
  355. package/docs/core/tokens/start-dictionary-token/README.md +0 -11
  356. package/docs/core/tokens/start-dictionary-token/classes/PdfStartDictionaryToken.md +0 -115
  357. package/docs/core/tokens/start-object-token/README.md +0 -11
  358. package/docs/core/tokens/start-object-token/classes/PdfStartObjectToken.md +0 -147
  359. package/docs/core/tokens/start-stream-token/README.md +0 -11
  360. package/docs/core/tokens/start-stream-token/classes/PdfStartStreamToken.md +0 -147
  361. package/docs/core/tokens/start-xref-token/README.md +0 -11
  362. package/docs/core/tokens/start-xref-token/classes/PdfStartXRefToken.md +0 -115
  363. package/docs/core/tokens/stream-chunk-token/README.md +0 -11
  364. package/docs/core/tokens/stream-chunk-token/classes/PdfStreamChunkToken.md +0 -121
  365. package/docs/core/tokens/string-token/README.md +0 -11
  366. package/docs/core/tokens/string-token/classes/PdfStringToken.md +0 -127
  367. package/docs/core/tokens/token/README.md +0 -11
  368. package/docs/core/tokens/token/classes/PdfToken.md +0 -116
  369. package/docs/core/tokens/trailer-token/README.md +0 -11
  370. package/docs/core/tokens/trailer-token/classes/PdfTrailerToken.md +0 -127
  371. package/docs/core/tokens/whitespace-token/README.md +0 -11
  372. package/docs/core/tokens/whitespace-token/classes/PdfWhitespaceToken.md +0 -161
  373. package/docs/core/tokens/xref-table-entry-token/README.md +0 -11
  374. package/docs/core/tokens/xref-table-entry-token/classes/PdfXRefTableEntryToken.md +0 -157
  375. package/docs/core/tokens/xref-table-section-start-token/README.md +0 -11
  376. package/docs/core/tokens/xref-table-section-start-token/classes/PdfXRefTableSectionStartToken.md +0 -137
  377. package/docs/core/tokens/xref-table-start-token/README.md +0 -11
  378. package/docs/core/tokens/xref-table-start-token/classes/PdfXRefTableStartToken.md +0 -127
  379. package/docs/crypto/ciphers/aes128/README.md +0 -11
  380. package/docs/crypto/ciphers/aes128/functions/aes128.md +0 -39
  381. package/docs/crypto/ciphers/aes256/README.md +0 -11
  382. package/docs/crypto/ciphers/aes256/functions/aes256.md +0 -35
  383. package/docs/crypto/ciphers/rc4/README.md +0 -11
  384. package/docs/crypto/ciphers/rc4/functions/rc4.md +0 -35
  385. package/docs/crypto/constants/README.md +0 -11
  386. package/docs/crypto/constants/variables/DEFAULT_PADDING.md +0 -13
  387. package/docs/crypto/key-derivation/key-derivation/README.md +0 -13
  388. package/docs/crypto/key-derivation/key-derivation/functions/computeMasterKey.md +0 -57
  389. package/docs/crypto/key-derivation/key-derivation/functions/deriveObjectKey.md +0 -50
  390. package/docs/crypto/key-derivation/key-derivation/functions/padPassword.md +0 -33
  391. package/docs/crypto/key-derivation/key-derivation-aes256/README.md +0 -13
  392. package/docs/crypto/key-derivation/key-derivation-aes256/functions/computeAlgorithm2bHash.md +0 -45
  393. package/docs/crypto/key-derivation/key-derivation-aes256/functions/getFileKey.md +0 -66
  394. package/docs/crypto/key-derivation/key-derivation-aes256/functions/validatePasswordHash.md +0 -52
  395. package/docs/crypto/key-gen/key-gen-aes256/README.md +0 -12
  396. package/docs/crypto/key-gen/key-gen-aes256/functions/generateOandOe.md +0 -44
  397. package/docs/crypto/key-gen/key-gen-aes256/functions/generateUandUe.md +0 -38
  398. package/docs/crypto/key-gen/key-gen-rc4-128/README.md +0 -13
  399. package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeOValueRc4_128.md +0 -38
  400. package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeUValueRc4_128.md +0 -62
  401. package/docs/crypto/key-gen/key-gen-rc4-128/functions/decryptUserPasswordRc4_128.md +0 -38
  402. package/docs/crypto/key-gen/key-gen-rc4-40/README.md +0 -14
  403. package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeEncryptionKeyRc4_40.md +0 -49
  404. package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeORc4_40.md +0 -38
  405. package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeURc4_40.md +0 -50
  406. package/docs/crypto/key-gen/key-gen-rc4-40/functions/decryptUserPasswordRc4_40.md +0 -38
  407. package/docs/crypto/types/README.md +0 -11
  408. package/docs/crypto/types/interfaces/Cipher.md +0 -39
  409. package/docs/crypto/utils/README.md +0 -13
  410. package/docs/crypto/utils/functions/int32ToLittleEndianBytes.md +0 -31
  411. package/docs/crypto/utils/functions/padPassword.md +0 -33
  412. package/docs/crypto/utils/functions/removePdfPasswordPadding.md +0 -32
  413. package/docs/filters/ascii85/README.md +0 -11
  414. package/docs/filters/ascii85/functions/ascii85.md +0 -27
  415. package/docs/filters/asciihex/README.md +0 -11
  416. package/docs/filters/asciihex/functions/asciiHex.md +0 -27
  417. package/docs/filters/flate/README.md +0 -11
  418. package/docs/filters/flate/functions/flate.md +0 -26
  419. package/docs/filters/lzw/README.md +0 -11
  420. package/docs/filters/lzw/functions/lzw.md +0 -27
  421. package/docs/filters/pass-through/README.md +0 -11
  422. package/docs/filters/pass-through/functions/passthroughFilter.md +0 -25
  423. package/docs/filters/runlength/README.md +0 -11
  424. package/docs/filters/runlength/functions/runLength.md +0 -27
  425. package/docs/filters/types/README.md +0 -19
  426. package/docs/filters/types/interfaces/PdfFilter.md +0 -39
  427. package/docs/filters/types/type-aliases/PdfStreamFilterType.md +0 -9
  428. package/docs/filters/types/variables/PDF_FILTER_TYPES.md +0 -51
  429. package/docs/index/README.md +0 -235
  430. package/docs/pdf/README.md +0 -31
  431. package/docs/pdf/errors/README.md +0 -11
  432. package/docs/pdf/errors/classes/FoundCompressedObjectError.md +0 -56
  433. package/docs/pdf/pdf-document/README.md +0 -11
  434. package/docs/pdf/pdf-document/classes/PdfDocument.md +0 -876
  435. package/docs/pdf/pdf-reader/README.md +0 -11
  436. package/docs/pdf/pdf-reader/classes/PdfReader.md +0 -82
  437. package/docs/pdf/pdf-revision/README.md +0 -11
  438. package/docs/pdf/pdf-revision/classes/PdfRevision.md +0 -508
  439. package/docs/pdf/pdf-xref-lookup/README.md +0 -11
  440. package/docs/pdf/pdf-xref-lookup/classes/PdfXrefLookup.md +0 -421
  441. package/docs/security/crypt-filters/aesv2/README.md +0 -11
  442. package/docs/security/crypt-filters/aesv2/classes/AesV2CryptFilter.md +0 -274
  443. package/docs/security/crypt-filters/aesv3/README.md +0 -11
  444. package/docs/security/crypt-filters/aesv3/classes/AesV3CryptFilter.md +0 -275
  445. package/docs/security/crypt-filters/base/README.md +0 -15
  446. package/docs/security/crypt-filters/base/classes/PdfCryptFilter.md +0 -221
  447. package/docs/security/crypt-filters/base/type-aliases/CryptFilterOptions.md +0 -43
  448. package/docs/security/crypt-filters/identity/README.md +0 -11
  449. package/docs/security/crypt-filters/identity/classes/IdentityCryptFilter.md +0 -249
  450. package/docs/security/crypt-filters/v2/README.md +0 -11
  451. package/docs/security/crypt-filters/v2/classes/V2CryptFilter.md +0 -279
  452. package/docs/security/handlers/base/README.md +0 -17
  453. package/docs/security/handlers/base/classes/PdfSecurityHandler.md +0 -384
  454. package/docs/security/handlers/base/classes/PdfStandardSecurityHandler.md +0 -694
  455. package/docs/security/handlers/base/type-aliases/PdfSecurityHandlerOptions.md +0 -27
  456. package/docs/security/handlers/base/type-aliases/PdfStandardSecurityHandlerOptions.md +0 -43
  457. package/docs/security/handlers/pubSec/README.md +0 -11
  458. package/docs/security/handlers/pubSec/classes/PdfPublicKeySecurityHandler.md +0 -503
  459. package/docs/security/handlers/utils/README.md +0 -14
  460. package/docs/security/handlers/utils/functions/createFromDictionary.md +0 -56
  461. package/docs/security/handlers/utils/functions/createFromEncryptionOptions.md +0 -40
  462. package/docs/security/handlers/utils/functions/createStandardSecurityHandlerFromDictionary.md +0 -55
  463. package/docs/security/handlers/utils/functions/getCryptFilter.md +0 -35
  464. package/docs/security/handlers/v1/README.md +0 -11
  465. package/docs/security/handlers/v1/classes/PdfV1SecurityHandler.md +0 -779
  466. package/docs/security/handlers/v2/README.md +0 -11
  467. package/docs/security/handlers/v2/classes/PdfV2SecurityHandler.md +0 -783
  468. package/docs/security/handlers/v4/README.md +0 -11
  469. package/docs/security/handlers/v4/classes/PdfV4SecurityHandler.md +0 -907
  470. package/docs/security/handlers/v5/README.md +0 -11
  471. package/docs/security/handlers/v5/classes/PdfV5SecurityHandler.md +0 -926
  472. package/docs/security/types/README.md +0 -19
  473. package/docs/security/types/type-aliases/CryptFilterType.md +0 -15
  474. package/docs/security/types/type-aliases/PdfCryptFilterDictionary.md +0 -12
  475. package/docs/security/types/type-aliases/PdfEncryptionAlgorithmOptions.md +0 -11
  476. package/docs/security/types/type-aliases/PdfEncryptionAlgorithmType.md +0 -17
  477. package/docs/security/types/type-aliases/PdfEncryptionDictionary.md +0 -13
  478. package/docs/security/types/type-aliases/PdfEncryptionDictionaryObject.md +0 -11
  479. package/docs/security/types/type-aliases/PdfEncryptionOptions.md +0 -90
  480. package/docs/security/types/type-aliases/PdfEncryptionRecipient.md +0 -24
  481. package/docs/security/types/type-aliases/PdfId.md +0 -13
  482. package/docs/signing/README.md +0 -127
  483. package/docs/signing/document-security-store/README.md +0 -19
  484. package/docs/signing/document-security-store/classes/PdfCertObject.md +0 -443
  485. package/docs/signing/document-security-store/classes/PdfCrlObject.md +0 -443
  486. package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreDictionary.md +0 -416
  487. package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreObject.md +0 -563
  488. package/docs/signing/document-security-store/classes/PdfOcspObject.md +0 -443
  489. package/docs/signing/document-security-store/type-aliases/PdfVriObject.md +0 -12
  490. package/docs/signing/signatures/README.md +0 -55
  491. package/docs/signing/signatures/adbe-pkcs7-detached/README.md +0 -11
  492. package/docs/signing/signatures/adbe-pkcs7-detached/classes/PdfAdbePkcs7DetachedSignatureObject.md +0 -669
  493. package/docs/signing/signatures/adbe-pkcs7-sha1/README.md +0 -11
  494. package/docs/signing/signatures/adbe-pkcs7-sha1/classes/PdfAdbePkcs7Sha1SignatureObject.md +0 -667
  495. package/docs/signing/signatures/adbe-x509-rsa-sha1/README.md +0 -11
  496. package/docs/signing/signatures/adbe-x509-rsa-sha1/classes/PdfAdbePkcsX509RsaSha1SignatureObject.md +0 -651
  497. package/docs/signing/signatures/base/README.md +0 -16
  498. package/docs/signing/signatures/base/classes/PdfSignatureDictionary.md +0 -420
  499. package/docs/signing/signatures/base/classes/PdfSignatureObject.md +0 -584
  500. package/docs/signing/signatures/base/type-aliases/PdfSignatureSignOptions.md +0 -51
  501. package/docs/signing/signatures/etsi-cades-detached/README.md +0 -11
  502. package/docs/signing/signatures/etsi-cades-detached/classes/PdfEtsiCadesDetachedSignatureObject.md +0 -693
  503. package/docs/signing/signatures/etsi-rfc3161/README.md +0 -11
  504. package/docs/signing/signatures/etsi-rfc3161/classes/PdfEtsiRfc3161SignatureObject.md +0 -614
  505. package/docs/signing/signer/README.md +0 -11
  506. package/docs/signing/signer/classes/PdfSigner.md +0 -58
  507. package/docs/signing/types/README.md +0 -16
  508. package/docs/signing/types/type-aliases/PdfSignatureDictionaryEntries.md +0 -95
  509. package/docs/signing/types/type-aliases/PdfSignatureSubType.md +0 -17
  510. package/docs/signing/types/type-aliases/PdfSignatureType.md +0 -14
  511. package/docs/signing/types/type-aliases/RevocationInfo.md +0 -43
  512. package/docs/signing/types/type-aliases/SignaturePolicyDocument.md +0 -35
  513. package/docs/signing/types/type-aliases/TimeStampAuthority.md +0 -35
  514. package/docs/signing/utils/README.md +0 -11
  515. package/docs/signing/utils/functions/fetchRevocationInfo.md +0 -70
  516. package/docs/types/README.md +0 -21
  517. package/docs/types/type-aliases/ByteArray.md +0 -9
  518. package/docs/types/type-aliases/ChangeType.md +0 -9
  519. package/docs/types/type-aliases/DecodeParms.md +0 -33
  520. package/docs/types/type-aliases/HashAlgorithm.md +0 -9
  521. package/docs/types/type-aliases/PdfEncryptionAlgorithm.md +0 -9
  522. package/docs/types/type-aliases/PdfPermissions.md +0 -63
  523. package/docs/types/type-aliases/PdfVersion.md +0 -9
  524. package/docs/types/variables/PERMISSION_FLAGS.md +0 -9
  525. package/docs/utils/IterableReadableStream/README.md +0 -11
  526. package/docs/utils/IterableReadableStream/classes/IterableReadableStream.md +0 -103
  527. package/docs/utils/algos/README.md +0 -28
  528. package/docs/utils/algos/functions/aes128CbcNoPaddingEncrypt.md +0 -43
  529. package/docs/utils/algos/functions/aes128cbcDecrypt.md +0 -47
  530. package/docs/utils/algos/functions/aes128cbcEncrypt.md +0 -47
  531. package/docs/utils/algos/functions/aes256CbcNoPaddingDecrypt.md +0 -43
  532. package/docs/utils/algos/functions/aes256CbcNoPaddingEncrypt.md +0 -43
  533. package/docs/utils/algos/functions/aes256cbcDecrypt.md +0 -43
  534. package/docs/utils/algos/functions/aes256cbcEncrypt.md +0 -43
  535. package/docs/utils/algos/functions/aes256ecbDecrypt.md +0 -41
  536. package/docs/utils/algos/functions/aes256ecbEncrypt.md +0 -41
  537. package/docs/utils/algos/functions/deflateData.md +0 -31
  538. package/docs/utils/algos/functions/getRandomBytes.md +0 -35
  539. package/docs/utils/algos/functions/hash.md +0 -41
  540. package/docs/utils/algos/functions/inflateData.md +0 -35
  541. package/docs/utils/algos/functions/md5.md +0 -31
  542. package/docs/utils/algos/functions/sha1.md +0 -31
  543. package/docs/utils/algos/functions/sha256.md +0 -31
  544. package/docs/utils/algos/functions/sha384.md +0 -31
  545. package/docs/utils/algos/functions/sha512.md +0 -31
  546. package/docs/utils/assert/README.md +0 -12
  547. package/docs/utils/assert/functions/assert.md +0 -39
  548. package/docs/utils/assert/functions/assertIfDefined.md +0 -46
  549. package/docs/utils/bytesToHex/README.md +0 -11
  550. package/docs/utils/bytesToHex/functions/bytesToHex.md +0 -31
  551. package/docs/utils/bytesToHexBytes/README.md +0 -11
  552. package/docs/utils/bytesToHexBytes/functions/bytesToHexBytes.md +0 -32
  553. package/docs/utils/bytesToString/README.md +0 -11
  554. package/docs/utils/bytesToString/functions/bytesToString.md +0 -31
  555. package/docs/utils/concatUint8Arrays/README.md +0 -11
  556. package/docs/utils/concatUint8Arrays/functions/concatUint8Arrays.md +0 -31
  557. package/docs/utils/escapeString/README.md +0 -11
  558. package/docs/utils/escapeString/functions/escapeString.md +0 -32
  559. package/docs/utils/hexBytesToBytes/README.md +0 -11
  560. package/docs/utils/hexBytesToBytes/functions/hexBytesToBytes.md +0 -33
  561. package/docs/utils/hexBytesToString/README.md +0 -11
  562. package/docs/utils/hexBytesToString/functions/hexBytesToString.md +0 -31
  563. package/docs/utils/hexToBytes/README.md +0 -11
  564. package/docs/utils/hexToBytes/functions/hexToBytes.md +0 -31
  565. package/docs/utils/padBytes/README.md +0 -11
  566. package/docs/utils/padBytes/functions/padBytes.md +0 -41
  567. package/docs/utils/predictors/README.md +0 -11
  568. package/docs/utils/predictors/classes/Predictor.md +0 -306
  569. package/docs/utils/replaceInBuffer/README.md +0 -11
  570. package/docs/utils/replaceInBuffer/functions/replaceInBuffer.md +0 -65
  571. package/docs/utils/stringToBytes/README.md +0 -11
  572. package/docs/utils/stringToBytes/functions/stringToBytes.md +0 -32
  573. package/docs/utils/stringToHexBytes/README.md +0 -11
  574. package/docs/utils/stringToHexBytes/functions/stringToHexBytes.md +0 -33
  575. package/docs/utils/unescapeString/README.md +0 -11
  576. package/docs/utils/unescapeString/functions/unescapeString.md +0 -34
  577. package/examples/001-create-pdf.ts +0 -112
  578. package/examples/002-create-encrypted-pdf.ts +0 -121
  579. package/examples/003-sign-pdf.ts +0 -347
  580. package/examples/004-incremental-update.ts +0 -206
  581. package/examples/005-modify-acroform.ts +0 -374
  582. package/examples/006-tokeniser-example.ts +0 -131
  583. package/examples/007-decoder-example.ts +0 -197
  584. package/packages/pdf-lite/README.md +0 -3
  585. package/packages/pdf-lite/node_modules/.bin/playwright +0 -16
  586. package/packages/pdf-lite/node_modules/.bin/tsc +0 -16
  587. package/packages/pdf-lite/node_modules/.bin/tsserver +0 -16
  588. package/packages/pdf-lite/node_modules/.bin/vitest +0 -16
  589. package/packages/pdf-lite/package.json +0 -68
  590. package/packages/pdf-lite/scripts/create-encryption-tests.sh +0 -41
  591. package/packages/pdf-lite/scripts/gen-signing-keys.sh +0 -290
  592. package/packages/pdf-lite/scripts/generate-all-signing-keys.sh +0 -70
  593. package/packages/pdf-lite/src/core/decoder.ts +0 -454
  594. package/packages/pdf-lite/src/core/index.ts +0 -2
  595. package/packages/pdf-lite/src/core/objects/pdf-array.ts +0 -54
  596. package/packages/pdf-lite/src/core/objects/pdf-boolean.ts +0 -19
  597. package/packages/pdf-lite/src/core/objects/pdf-comment.ts +0 -50
  598. package/packages/pdf-lite/src/core/objects/pdf-date.ts +0 -74
  599. package/packages/pdf-lite/src/core/objects/pdf-dictionary.ts +0 -171
  600. package/packages/pdf-lite/src/core/objects/pdf-hexadecimal.ts +0 -54
  601. package/packages/pdf-lite/src/core/objects/pdf-indirect-object.ts +0 -137
  602. package/packages/pdf-lite/src/core/objects/pdf-name.ts +0 -19
  603. package/packages/pdf-lite/src/core/objects/pdf-null.ts +0 -15
  604. package/packages/pdf-lite/src/core/objects/pdf-number.ts +0 -98
  605. package/packages/pdf-lite/src/core/objects/pdf-object-reference.ts +0 -30
  606. package/packages/pdf-lite/src/core/objects/pdf-object.ts +0 -107
  607. package/packages/pdf-lite/src/core/objects/pdf-start-xref.ts +0 -39
  608. package/packages/pdf-lite/src/core/objects/pdf-stream.ts +0 -687
  609. package/packages/pdf-lite/src/core/objects/pdf-string.ts +0 -38
  610. package/packages/pdf-lite/src/core/objects/pdf-trailer.ts +0 -57
  611. package/packages/pdf-lite/src/core/objects/pdf-xref-table.ts +0 -264
  612. package/packages/pdf-lite/src/core/streams/object-stream.ts +0 -20
  613. package/packages/pdf-lite/src/core/tokeniser.ts +0 -687
  614. package/packages/pdf-lite/src/core/tokens/boolean-token.ts +0 -20
  615. package/packages/pdf-lite/src/core/tokens/byte-offset-token.ts +0 -20
  616. package/packages/pdf-lite/src/core/tokens/comment-token.ts +0 -32
  617. package/packages/pdf-lite/src/core/tokens/end-array-token.ts +0 -10
  618. package/packages/pdf-lite/src/core/tokens/end-dictionary-token.ts +0 -10
  619. package/packages/pdf-lite/src/core/tokens/end-object-token.ts +0 -10
  620. package/packages/pdf-lite/src/core/tokens/end-stream-token.ts +0 -11
  621. package/packages/pdf-lite/src/core/tokens/hexadecimal-token.ts +0 -22
  622. package/packages/pdf-lite/src/core/tokens/name-token.ts +0 -19
  623. package/packages/pdf-lite/src/core/tokens/null-token.ts +0 -9
  624. package/packages/pdf-lite/src/core/tokens/number-token.ts +0 -164
  625. package/packages/pdf-lite/src/core/tokens/object-reference-token.ts +0 -24
  626. package/packages/pdf-lite/src/core/tokens/start-array-token.ts +0 -10
  627. package/packages/pdf-lite/src/core/tokens/start-dictionary-token.ts +0 -10
  628. package/packages/pdf-lite/src/core/tokens/start-object-token.ts +0 -28
  629. package/packages/pdf-lite/src/core/tokens/start-stream-token.ts +0 -52
  630. package/packages/pdf-lite/src/core/tokens/start-xref-token.ts +0 -10
  631. package/packages/pdf-lite/src/core/tokens/stream-chunk-token.ts +0 -8
  632. package/packages/pdf-lite/src/core/tokens/string-token.ts +0 -17
  633. package/packages/pdf-lite/src/core/tokens/token.ts +0 -43
  634. package/packages/pdf-lite/src/core/tokens/trailer-token.ts +0 -12
  635. package/packages/pdf-lite/src/core/tokens/whitespace-token.ts +0 -43
  636. package/packages/pdf-lite/src/core/tokens/xref-table-entry-token.ts +0 -65
  637. package/packages/pdf-lite/src/core/tokens/xref-table-section-start-token.ts +0 -31
  638. package/packages/pdf-lite/src/core/tokens/xref-table-start-token.ts +0 -13
  639. package/packages/pdf-lite/src/crypto/key-derivation/key-derivation-aes256.ts +0 -213
  640. package/packages/pdf-lite/src/crypto/types.ts +0 -6
  641. package/packages/pdf-lite/src/filters/lzw.ts +0 -144
  642. package/packages/pdf-lite/src/index.ts +0 -4
  643. package/packages/pdf-lite/src/pdf/index.ts +0 -4
  644. package/packages/pdf-lite/src/pdf/pdf-xref-lookup.ts +0 -527
  645. package/packages/pdf-lite/src/security/handlers/base.ts +0 -625
  646. package/packages/pdf-lite/src/security/handlers/pubSec.ts +0 -413
  647. package/packages/pdf-lite/src/security/handlers/utils.ts +0 -304
  648. package/packages/pdf-lite/src/security/handlers/v1.ts +0 -225
  649. package/packages/pdf-lite/src/security/handlers/v4.ts +0 -379
  650. package/packages/pdf-lite/src/security/handlers/v5.ts +0 -298
  651. package/packages/pdf-lite/src/signing/document-security-store.ts +0 -224
  652. package/packages/pdf-lite/src/signing/index.ts +0 -3
  653. package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-detached.ts +0 -154
  654. package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-sha1.ts +0 -161
  655. package/packages/pdf-lite/src/signing/signatures/adbe-x509-rsa-sha1.ts +0 -106
  656. package/packages/pdf-lite/src/signing/signatures/base.ts +0 -229
  657. package/packages/pdf-lite/src/signing/signatures/etsi-cades-detached.ts +0 -229
  658. package/packages/pdf-lite/src/signing/signatures/index.ts +0 -6
  659. package/packages/pdf-lite/src/signing/signer.ts +0 -120
  660. package/packages/pdf-lite/src/types.ts +0 -44
  661. package/packages/pdf-lite/src/utils/escapeString.ts +0 -49
  662. package/packages/pdf-lite/src/utils/unescapeString.ts +0 -123
  663. package/packages/pdf-lite/test/acceptance/__snapshots__/versions.node.test.ts.snap +0 -60766
  664. package/packages/pdf-lite/test/acceptance/fixtures/1.3/basic.pdf +0 -0
  665. package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-128.pdf +0 -0
  666. package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-256.pdf +0 -0
  667. package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-128.pdf +0 -0
  668. package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-40.pdf +0 -0
  669. package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic.pdf +0 -0
  670. package/packages/pdf-lite/test/acceptance/fixtures/1.5/basic.pdf +0 -0
  671. package/packages/pdf-lite/test/acceptance/fixtures/1.6/basic.pdf +0 -0
  672. package/packages/pdf-lite/test/acceptance/fixtures/1.7/basic.pdf +0 -0
  673. package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-128.pdf +0 -43
  674. package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-256.pdf +0 -43
  675. package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-128.pdf +0 -43
  676. package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-40.pdf +0 -44
  677. package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic.pdf +0 -79
  678. package/packages/pdf-lite/test/acceptance/versions.node.test.ts +0 -41
  679. package/packages/pdf-lite/test/unit/__snapshots__/decoder.node.test.ts.snap +0 -86947
  680. package/packages/pdf-lite/test/unit/__snapshots__/tokeniser.node.test.ts.snap +0 -131829
  681. package/packages/pdf-lite/test/unit/ciphers.test.ts +0 -61
  682. package/packages/pdf-lite/test/unit/decoder.node.test.ts +0 -21
  683. package/packages/pdf-lite/test/unit/decoder.test.ts +0 -567
  684. package/packages/pdf-lite/test/unit/filters.test.ts +0 -67
  685. package/packages/pdf-lite/test/unit/fixtures/basic.pdf +0 -0
  686. package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-128.pdf +0 -0
  687. package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-256.pdf +0 -0
  688. package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-128.pdf +0 -0
  689. package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-40.pdf +0 -43
  690. package/packages/pdf-lite/test/unit/fixtures/protectedAdobeLivecycle.pdf +0 -0
  691. package/packages/pdf-lite/test/unit/fixtures/rsa-2048/index.ts +0 -187
  692. package/packages/pdf-lite/test/unit/fixtures/template.pdf +0 -0
  693. package/packages/pdf-lite/test/unit/incremental-update.test.ts +0 -0
  694. package/packages/pdf-lite/test/unit/objects.test.ts +0 -0
  695. package/packages/pdf-lite/test/unit/pdf-document-signing.test.ts +0 -0
  696. package/packages/pdf-lite/test/unit/pdf-revision.test.ts +0 -195
  697. package/packages/pdf-lite/test/unit/pdf.browser.test.ts +0 -0
  698. package/packages/pdf-lite/test/unit/predictors.test.ts +0 -226
  699. package/packages/pdf-lite/test/unit/ref.test.ts +0 -158
  700. package/packages/pdf-lite/test/unit/security-handlers.test.ts +0 -645
  701. package/packages/pdf-lite/test/unit/serializer.test.ts +0 -81
  702. package/packages/pdf-lite/test/unit/signature-objects.test.ts +0 -814
  703. package/packages/pdf-lite/test/unit/string-escaping.test.ts +0 -84
  704. package/packages/pdf-lite/test/unit/tokeniser.node.test.ts +0 -38
  705. package/packages/pdf-lite/test/unit/tokeniser.test.ts +0 -1213
  706. package/packages/pdf-lite/test/unit/utils.test.ts +0 -248
  707. package/packages/pdf-lite/test/unit/xref-lookup.test.ts +0 -72
  708. package/packages/pdf-lite/tsconfig.json +0 -4
  709. package/packages/pdf-lite/tsconfig.prod.json +0 -8
  710. package/packages/pdf-lite/typedoc.json +0 -14
  711. package/packages/pdf-lite/vitest.config.ts +0 -43
  712. package/pnpm-workspace.yaml +0 -2
  713. package/renovate.json +0 -34
  714. package/scripts/build-examples.ts +0 -30
  715. package/scripts/bump-version.sh +0 -56
  716. package/scripts/gen-html-docs.sh +0 -21
  717. package/scripts/gen-md-docs.sh +0 -15
  718. package/scripts/prepare-release.sh +0 -33
  719. package/tsconfig.json +0 -22
  720. package/tsconfig.prod.json +0 -12
  721. package/typedoc.json +0 -34
@@ -0,0 +1,40 @@
1
+ import { stringToBytes } from '../../utils/stringToBytes';
2
+ import { PdfNumberToken } from './number-token';
3
+ import { PdfToken } from './token.js';
4
+ export class PdfXRefTableEntryToken extends PdfToken {
5
+ objectNumber;
6
+ generationNumber;
7
+ offset;
8
+ inUse;
9
+ constructor(offset, generationNumber, objectNumber, inUse) {
10
+ super();
11
+ this.objectNumber =
12
+ objectNumber instanceof PdfNumberToken
13
+ ? objectNumber
14
+ : new PdfNumberToken({ value: objectNumber });
15
+ this.generationNumber =
16
+ generationNumber instanceof PdfNumberToken
17
+ ? generationNumber
18
+ : new PdfNumberToken({ value: generationNumber });
19
+ this.offset =
20
+ offset instanceof PdfNumberToken
21
+ ? offset
22
+ : new PdfNumberToken({ value: offset });
23
+ this.inUse = inUse;
24
+ }
25
+ toBytes() {
26
+ return PdfXRefTableEntryToken.toBytes(this.generationNumber, this.offset, this.inUse);
27
+ }
28
+ static toBytes(generationNumber, offset, inUse) {
29
+ const offsetString = offset instanceof PdfNumberToken
30
+ ? offset.toString()
31
+ : new PdfNumberToken({ value: offset, padTo: 10 }).toString();
32
+ const generationNumberString = generationNumber instanceof PdfNumberToken
33
+ ? generationNumber.toString()
34
+ : new PdfNumberToken({
35
+ value: generationNumber,
36
+ padTo: 5,
37
+ }).toString();
38
+ return stringToBytes(`${offsetString} ${generationNumberString} ${inUse ? 'n' : 'f'}`);
39
+ }
40
+ }
@@ -0,0 +1,8 @@
1
+ import { PdfNumberToken } from './number-token';
2
+ import { PdfToken } from './token';
3
+ export declare class PdfXRefTableSectionStartToken extends PdfToken {
4
+ start: PdfNumberToken;
5
+ count: PdfNumberToken;
6
+ constructor(start: number | PdfNumberToken, count: number | PdfNumberToken);
7
+ private static toBytes;
8
+ }
@@ -0,0 +1,21 @@
1
+ import { stringToBytes } from '../../utils/stringToBytes';
2
+ import { PdfNumberToken } from './number-token';
3
+ import { PdfToken } from './token';
4
+ export class PdfXRefTableSectionStartToken extends PdfToken {
5
+ start;
6
+ count;
7
+ constructor(start, count) {
8
+ super(PdfXRefTableSectionStartToken.toBytes(start, count));
9
+ this.start =
10
+ start instanceof PdfNumberToken
11
+ ? start
12
+ : new PdfNumberToken({ value: start });
13
+ this.count =
14
+ count instanceof PdfNumberToken
15
+ ? count
16
+ : new PdfNumberToken({ value: count });
17
+ }
18
+ static toBytes(start, count) {
19
+ return stringToBytes(`${start.toString()} ${count.toString()}`);
20
+ }
21
+ }
@@ -0,0 +1,5 @@
1
+ import { PdfToken } from './token';
2
+ export declare class PdfXRefTableStartToken extends PdfToken {
3
+ byteOffset?: number;
4
+ constructor(byteOffset?: number);
5
+ }
@@ -0,0 +1,10 @@
1
+ import { stringToBytes } from '../../utils/stringToBytes';
2
+ import { PdfToken } from './token';
3
+ const XREF = stringToBytes('xref');
4
+ export class PdfXRefTableStartToken extends PdfToken {
5
+ byteOffset;
6
+ constructor(byteOffset) {
7
+ super(XREF);
8
+ this.byteOffset = byteOffset;
9
+ }
10
+ }
@@ -0,0 +1,19 @@
1
+ import { ByteArray } from '../../types.js';
2
+ import { Cipher } from '../types.js';
3
+ /**
4
+ * Creates an AES-128-CBC cipher for PDF encryption.
5
+ * The cipher prepends a zero IV to encrypted data during encryption
6
+ * and extracts the IV from the first 16 bytes during decryption.
7
+ *
8
+ * @param key - The 16-byte encryption key.
9
+ * @returns A Cipher object with encrypt and decrypt methods.
10
+ * @throws Error if the key is not exactly 16 bytes.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const cipher = aes128(key)
15
+ * const encrypted = await cipher.encrypt(plaintext)
16
+ * const decrypted = await cipher.decrypt(encrypted)
17
+ * ```
18
+ */
19
+ export declare function aes128(key: ByteArray): Cipher;
@@ -1,7 +1,4 @@
1
- import { ByteArray } from '../../types.js'
2
- import { aes128cbcDecrypt, aes128cbcEncrypt } from '../../utils/algos.js'
3
- import { Cipher } from '../types.js'
4
-
1
+ import { aes128cbcDecrypt, aes128cbcEncrypt } from '../../utils/algos.js';
5
2
  /**
6
3
  * Creates an AES-128-CBC cipher for PDF encryption.
7
4
  * The cipher prepends a zero IV to encrypted data during encryption
@@ -18,14 +15,10 @@ import { Cipher } from '../types.js'
18
15
  * const decrypted = await cipher.decrypt(encrypted)
19
16
  * ```
20
17
  */
21
- export function aes128(key: ByteArray): Cipher {
18
+ export function aes128(key) {
22
19
  if (key.length !== 16)
23
- throw new Error(
24
- `AES-128 key must be exactly 16 bytes, got ${key.length}`,
25
- )
26
-
27
- const iv = new Uint8Array(16) // Zero IV, as per PDF spec
28
-
20
+ throw new Error(`AES-128 key must be exactly 16 bytes, got ${key.length}`);
21
+ const iv = new Uint8Array(16); // Zero IV, as per PDF spec
29
22
  return {
30
23
  /**
31
24
  * Encrypts data using AES-128-CBC.
@@ -35,16 +28,14 @@ export function aes128(key: ByteArray): Cipher {
35
28
  * @returns A promise that resolves to IV followed by ciphertext.
36
29
  * @throws Error if the IV is not exactly 16 bytes.
37
30
  */
38
- encrypt: async (data: ByteArray): Promise<ByteArray> => {
39
- if (iv.length !== 16) throw new Error('IV must be exactly 16 bytes')
40
-
41
- const encrypted = await aes128cbcEncrypt(key, data)
42
- const result = new Uint8Array(iv.length + encrypted.length)
43
-
44
- result.set(iv, 0)
45
- result.set(encrypted, iv.length)
46
-
47
- return result
31
+ encrypt: async (data) => {
32
+ if (iv.length !== 16)
33
+ throw new Error('IV must be exactly 16 bytes');
34
+ const encrypted = await aes128cbcEncrypt(key, data);
35
+ const result = new Uint8Array(iv.length + encrypted.length);
36
+ result.set(iv, 0);
37
+ result.set(encrypted, iv.length);
38
+ return result;
48
39
  },
49
40
  /**
50
41
  * Decrypts data using AES-128-CBC.
@@ -53,11 +44,10 @@ export function aes128(key: ByteArray): Cipher {
53
44
  * @param data - The data to decrypt (IV + ciphertext).
54
45
  * @returns A promise that resolves to the decrypted plaintext.
55
46
  */
56
- decrypt: async (data: ByteArray): Promise<ByteArray> => {
57
- const iv = data.slice(0, 16)
58
- const ciphertext = data.slice(16)
59
-
60
- return await aes128cbcDecrypt(key, ciphertext, iv)
47
+ decrypt: async (data) => {
48
+ const iv = data.slice(0, 16);
49
+ const ciphertext = data.slice(16);
50
+ return await aes128cbcDecrypt(key, ciphertext, iv);
61
51
  },
62
- }
52
+ };
63
53
  }
@@ -0,0 +1,18 @@
1
+ import { ByteArray } from '../../types.js';
2
+ import { Cipher } from '../types.js';
3
+ /**
4
+ * Creates an AES-256-CBC cipher for PDF encryption.
5
+ * The cipher prepends a zero IV to encrypted data during encryption
6
+ * and extracts the IV from the first 16 bytes during decryption.
7
+ *
8
+ * @param key - The 32-byte encryption key.
9
+ * @returns A Cipher object with encrypt and decrypt methods.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const cipher = aes256(key)
14
+ * const encrypted = await cipher.encrypt(plaintext)
15
+ * const decrypted = await cipher.decrypt(encrypted)
16
+ * ```
17
+ */
18
+ export declare function aes256(key: ByteArray): Cipher;
@@ -1,7 +1,4 @@
1
- import { ByteArray } from '../../types.js'
2
- import { aes256cbcDecrypt, aes256cbcEncrypt } from '../../utils/algos.js'
3
- import { Cipher } from '../types.js'
4
-
1
+ import { aes256cbcDecrypt, aes256cbcEncrypt } from '../../utils/algos.js';
5
2
  /**
6
3
  * Creates an AES-256-CBC cipher for PDF encryption.
7
4
  * The cipher prepends a zero IV to encrypted data during encryption
@@ -17,8 +14,8 @@ import { Cipher } from '../types.js'
17
14
  * const decrypted = await cipher.decrypt(encrypted)
18
15
  * ```
19
16
  */
20
- export function aes256(key: ByteArray): Cipher {
21
- const iv = new Uint8Array(16) // Zero IV, as per PDF spec
17
+ export function aes256(key) {
18
+ const iv = new Uint8Array(16); // Zero IV, as per PDF spec
22
19
  return {
23
20
  /**
24
21
  * Encrypts data using AES-256-CBC.
@@ -27,12 +24,12 @@ export function aes256(key: ByteArray): Cipher {
27
24
  * @param data - The data to encrypt.
28
25
  * @returns A promise that resolves to IV followed by ciphertext.
29
26
  */
30
- encrypt: async (data: ByteArray): Promise<ByteArray> => {
31
- const encrypted = await aes256cbcEncrypt(key, data, iv)
32
- const result = new Uint8Array(iv.length + encrypted.length)
33
- result.set(iv, 0)
34
- result.set(encrypted, iv.length)
35
- return result
27
+ encrypt: async (data) => {
28
+ const encrypted = await aes256cbcEncrypt(key, data, iv);
29
+ const result = new Uint8Array(iv.length + encrypted.length);
30
+ result.set(iv, 0);
31
+ result.set(encrypted, iv.length);
32
+ return result;
36
33
  },
37
34
  /**
38
35
  * Decrypts data using AES-256-CBC.
@@ -41,10 +38,10 @@ export function aes256(key: ByteArray): Cipher {
41
38
  * @param data - The data to decrypt (IV + ciphertext).
42
39
  * @returns A promise that resolves to the decrypted plaintext.
43
40
  */
44
- decrypt: async (data: ByteArray): Promise<ByteArray> => {
45
- const iv = data.slice(0, 16)
46
- const ciphertext = data.slice(16)
47
- return await aes256cbcDecrypt(key, ciphertext, iv)
41
+ decrypt: async (data) => {
42
+ const iv = data.slice(0, 16);
43
+ const ciphertext = data.slice(16);
44
+ return await aes256cbcDecrypt(key, ciphertext, iv);
48
45
  },
49
- }
46
+ };
50
47
  }
@@ -0,0 +1,18 @@
1
+ import { ByteArray } from '../../types.js';
2
+ import { Cipher } from '../types.js';
3
+ /**
4
+ * Creates an RC4 cipher for PDF encryption.
5
+ * RC4 is a symmetric stream cipher where encryption and decryption
6
+ * use the same operation (XOR with the key stream).
7
+ *
8
+ * @param key - The encryption key (variable length).
9
+ * @returns A Cipher object with encrypt and decrypt methods.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const cipher = rc4(key)
14
+ * const encrypted = await cipher.encrypt(plaintext)
15
+ * const decrypted = await cipher.decrypt(encrypted)
16
+ * ```
17
+ */
18
+ export declare function rc4(key: ByteArray): Cipher;
@@ -1,6 +1,3 @@
1
- import { ByteArray } from '../../types.js'
2
- import { Cipher } from '../types.js'
3
-
4
1
  /**
5
2
  * Creates an RC4 cipher for PDF encryption.
6
3
  * RC4 is a symmetric stream cipher where encryption and decryption
@@ -16,7 +13,7 @@ import { Cipher } from '../types.js'
16
13
  * const decrypted = await cipher.decrypt(encrypted)
17
14
  * ```
18
15
  */
19
- export function rc4(key: ByteArray): Cipher {
16
+ export function rc4(key) {
20
17
  /**
21
18
  * RC4 Key Scheduling Algorithm (KSA).
22
19
  * Initializes the permutation in the S array based on the key.
@@ -24,17 +21,17 @@ export function rc4(key: ByteArray): Cipher {
24
21
  * @param key - The encryption key.
25
22
  * @returns The initialized S array (256 bytes).
26
23
  */
27
- function ksa(key: ByteArray) {
28
- const S = new Uint8Array(256)
29
- for (let i = 0; i < 256; i++) S[i] = i
30
- let j = 0
24
+ function ksa(key) {
25
+ const S = new Uint8Array(256);
26
+ for (let i = 0; i < 256; i++)
27
+ S[i] = i;
28
+ let j = 0;
31
29
  for (let i = 0; i < 256; i++) {
32
- j = (j + S[i] + key[i % key.length]) & 0xff
33
- ;[S[i], S[j]] = [S[j], S[i]]
30
+ j = (j + S[i] + key[i % key.length]) & 0xff;
31
+ [S[i], S[j]] = [S[j], S[i]];
34
32
  }
35
- return S
33
+ return S;
36
34
  }
37
-
38
35
  /**
39
36
  * RC4 Pseudo-Random Generation Algorithm (PRGA).
40
37
  * Generates the key stream and XORs it with the data.
@@ -43,22 +40,20 @@ export function rc4(key: ByteArray): Cipher {
43
40
  * @param S - The initialized S array from KSA.
44
41
  * @returns The encrypted or decrypted data.
45
42
  */
46
- function rc4(data: ByteArray, S: ByteArray): ByteArray {
47
- const out = new Uint8Array(data.length)
48
- let i = 0,
49
- j = 0
50
- const s = S.slice() // Copy S for each operation
43
+ function rc4(data, S) {
44
+ const out = new Uint8Array(data.length);
45
+ let i = 0, j = 0;
46
+ const s = S.slice(); // Copy S for each operation
51
47
  for (let k = 0; k < data.length; k++) {
52
- i = (i + 1) & 0xff
53
- j = (j + s[i]) & 0xff
54
- ;[s[i], s[j]] = [s[j], s[i]]
55
- const rnd = s[(s[i] + s[j]) & 0xff]
56
- out[k] = data[k] ^ rnd
48
+ i = (i + 1) & 0xff;
49
+ j = (j + s[i]) & 0xff;
50
+ [s[i], s[j]] = [s[j], s[i]];
51
+ const rnd = s[(s[i] + s[j]) & 0xff];
52
+ out[k] = data[k] ^ rnd;
57
53
  }
58
- return out
54
+ return out;
59
55
  }
60
-
61
- const S = ksa(key)
56
+ const S = ksa(key);
62
57
  return {
63
58
  /**
64
59
  * Encrypts data using RC4.
@@ -66,8 +61,8 @@ export function rc4(key: ByteArray): Cipher {
66
61
  * @param data - The data to encrypt.
67
62
  * @returns A promise that resolves to the encrypted data.
68
63
  */
69
- encrypt: async (data: ByteArray): Promise<ByteArray> => {
70
- return rc4(data, S)
64
+ encrypt: async (data) => {
65
+ return rc4(data, S);
71
66
  },
72
67
  /**
73
68
  * Decrypts data using RC4.
@@ -75,8 +70,8 @@ export function rc4(key: ByteArray): Cipher {
75
70
  * @param data - The data to decrypt.
76
71
  * @returns A promise that resolves to the decrypted data.
77
72
  */
78
- decrypt: async (data: ByteArray): Promise<ByteArray> => {
79
- return rc4(data, S)
73
+ decrypt: async (data) => {
74
+ return rc4(data, S);
80
75
  },
81
- }
76
+ };
82
77
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Default password padding used in PDF encryption.
3
+ * This 32-byte constant is defined in the PDF specification and is used
4
+ * to pad passwords shorter than 32 bytes during encryption key derivation.
5
+ */
6
+ export declare const DEFAULT_PADDING: Uint8Array<ArrayBuffer>;
@@ -7,4 +7,4 @@ export const DEFAULT_PADDING = new Uint8Array([
7
7
  0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,
8
8
  0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,
9
9
  0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,
10
- ])
10
+ ]);
@@ -0,0 +1,56 @@
1
+ import { ByteArray } from '../../types';
2
+ /**
3
+ * Computes the Algorithm 2.B hash for PDF 2.0 AES-256 encryption.
4
+ * This iterative hash algorithm uses SHA-256, SHA-384, or SHA-512 based on
5
+ * intermediate results, running for at least 64 rounds.
6
+ *
7
+ * @param password - The user or owner password.
8
+ * @param salt - The 8-byte validation or key salt.
9
+ * @param userKey - The user key (required for owner password validation). Defaults to empty.
10
+ * @returns A promise that resolves to a 32-byte hash.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const hash = await computeAlgorithm2bHash(password, salt)
15
+ * ```
16
+ */
17
+ export declare function computeAlgorithm2bHash(password: ByteArray, salt: ByteArray, userKey?: ByteArray): Promise<ByteArray>;
18
+ /**
19
+ * Validates a password against a stored hash using the Algorithm 2.B hash.
20
+ *
21
+ * @param password - The password to validate.
22
+ * @param key - The stored key containing the hash (first 32 bytes) and validation salt (bytes 32-40).
23
+ * @param extra - Extra data for owner password validation (user key).
24
+ * @returns A promise that resolves to the computed hash if validation succeeds.
25
+ * @throws Error if the password is invalid or salt/hash lengths are incorrect.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * try {
30
+ * await validatePasswordHash(password, storedKey)
31
+ * console.log('Password is valid')
32
+ * } catch (e) {
33
+ * console.log('Invalid password')
34
+ * }
35
+ * ```
36
+ */
37
+ export declare function validatePasswordHash(password: ByteArray, key: ByteArray, extra?: ByteArray): Promise<ByteArray>;
38
+ /**
39
+ * Retrieves the file encryption key using user or owner password.
40
+ * Tries owner password first, then falls back to user password.
41
+ *
42
+ * @param userPassword - The user password to try.
43
+ * @param ownerPassword - The owner password to try.
44
+ * @param u - The 48-byte /U value from the encryption dictionary.
45
+ * @param ue - The 32-byte /UE value (encrypted user key).
46
+ * @param o - The 48-byte /O value from the encryption dictionary.
47
+ * @param oe - The 32-byte /OE value (encrypted owner key).
48
+ * @returns A promise that resolves to the 32-byte file encryption key.
49
+ * @throws Error if both passwords are invalid.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const fileKey = await getFileKey(userPw, ownerPw, U, UE, O, OE)
54
+ * ```
55
+ */
56
+ export declare function getFileKey(userPassword: ByteArray, ownerPassword: ByteArray, u: ByteArray, ue: ByteArray, o: ByteArray, oe: ByteArray): Promise<ByteArray>;
@@ -0,0 +1,156 @@
1
+ import { aes128CbcNoPaddingEncrypt, aes256CbcNoPaddingDecrypt, sha256, sha384, sha512, } from '../../utils/algos';
2
+ import { assert } from '../../utils/assert';
3
+ /**
4
+ * Converts the first 16 bytes of input to a big-endian bigint.
5
+ *
6
+ * @param input - The byte array to convert.
7
+ * @returns A 128-bit bigint value.
8
+ */
9
+ function getUint16ByteBigEndian(input) {
10
+ let value = 0n;
11
+ for (let i = 0; i < 16; i++) {
12
+ value = (value << 8n) | BigInt(input[i]);
13
+ }
14
+ return value;
15
+ }
16
+ /**
17
+ * Computes the Algorithm 2.B hash for PDF 2.0 AES-256 encryption.
18
+ * This iterative hash algorithm uses SHA-256, SHA-384, or SHA-512 based on
19
+ * intermediate results, running for at least 64 rounds.
20
+ *
21
+ * @param password - The user or owner password.
22
+ * @param salt - The 8-byte validation or key salt.
23
+ * @param userKey - The user key (required for owner password validation). Defaults to empty.
24
+ * @returns A promise that resolves to a 32-byte hash.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const hash = await computeAlgorithm2bHash(password, salt)
29
+ * ```
30
+ */
31
+ export async function computeAlgorithm2bHash(password, salt, userKey = new Uint8Array()) {
32
+ // Step 1: Initial hash
33
+ let K = new Uint8Array(password.length + salt.length + userKey.length);
34
+ K.set(password);
35
+ K.set(salt, password.length);
36
+ K.set(userKey, password.length + salt.length);
37
+ K = await sha256(K);
38
+ let roundNumber = 0;
39
+ let E = new Uint8Array();
40
+ while (roundNumber < 64 || E.at(-1) > roundNumber - 32) {
41
+ // Step 2: K1 = 64 × (password || K || [userKey])
42
+ const base = new Uint8Array(password.length + K.length + userKey.length);
43
+ base.set(password);
44
+ base.set(K, password.length);
45
+ base.set(userKey, password.length + K.length);
46
+ const K1 = new Uint8Array(base.length * 64);
47
+ for (let i = 0; i < 64; i++) {
48
+ K1.set(base, i * base.length);
49
+ }
50
+ // Step 3: Encrypt K1 with AES-128-CBC using key/iv from K
51
+ const key = K.subarray(0, 16);
52
+ const iv = K.subarray(16, 32);
53
+ E = await aes128CbcNoPaddingEncrypt(key, K1, iv);
54
+ // Step 4: Choose hash
55
+ const value = getUint16ByteBigEndian(E);
56
+ const mod = Number(value % 3n);
57
+ if (mod === 0) {
58
+ K = await sha256(E);
59
+ }
60
+ else if (mod === 1) {
61
+ K = await sha384(E);
62
+ }
63
+ else if (mod === 2) {
64
+ K = await sha512(E);
65
+ }
66
+ else {
67
+ throw new Error('Invalid mod');
68
+ }
69
+ roundNumber++;
70
+ }
71
+ return K.subarray(0, 32);
72
+ }
73
+ /**
74
+ * Validates a password against a stored hash using the Algorithm 2.B hash.
75
+ *
76
+ * @param password - The password to validate.
77
+ * @param key - The stored key containing the hash (first 32 bytes) and validation salt (bytes 32-40).
78
+ * @param extra - Extra data for owner password validation (user key).
79
+ * @returns A promise that resolves to the computed hash if validation succeeds.
80
+ * @throws Error if the password is invalid or salt/hash lengths are incorrect.
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * try {
85
+ * await validatePasswordHash(password, storedKey)
86
+ * console.log('Password is valid')
87
+ * } catch (e) {
88
+ * console.log('Invalid password')
89
+ * }
90
+ * ```
91
+ */
92
+ export async function validatePasswordHash(password, key, extra) {
93
+ const validationSalt = key.slice(32, 40);
94
+ if (validationSalt.length !== 8) {
95
+ throw new Error('Invalid salt length');
96
+ }
97
+ const hash = await computeAlgorithm2bHash(password, validationSalt, extra);
98
+ if (hash.length !== 32) {
99
+ throw new Error('Invalid hash length');
100
+ }
101
+ for (let i = 0; i < 32; i++) {
102
+ if (hash[i] !== key[i]) {
103
+ throw new Error('Key mismatch');
104
+ }
105
+ }
106
+ return hash;
107
+ }
108
+ /**
109
+ * Retrieves the file encryption key using user or owner password.
110
+ * Tries owner password first, then falls back to user password.
111
+ *
112
+ * @param userPassword - The user password to try.
113
+ * @param ownerPassword - The owner password to try.
114
+ * @param u - The 48-byte /U value from the encryption dictionary.
115
+ * @param ue - The 32-byte /UE value (encrypted user key).
116
+ * @param o - The 48-byte /O value from the encryption dictionary.
117
+ * @param oe - The 32-byte /OE value (encrypted owner key).
118
+ * @returns A promise that resolves to the 32-byte file encryption key.
119
+ * @throws Error if both passwords are invalid.
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const fileKey = await getFileKey(userPw, ownerPw, U, UE, O, OE)
124
+ * ```
125
+ */
126
+ export async function getFileKey(userPassword, ownerPassword, u, ue, o, oe) {
127
+ if (userPassword.length > 128) {
128
+ userPassword = userPassword.subarray(0, 128);
129
+ }
130
+ if (ownerPassword.length > 128) {
131
+ ownerPassword = ownerPassword.subarray(0, 128);
132
+ }
133
+ assert(oe.length === 32, 'Invalid OE length');
134
+ assert(ue.length === 32, 'Invalid UE length');
135
+ assert(u.length === 48, 'Invalid U length');
136
+ assert(o.length === 48, 'Invalid O length');
137
+ try {
138
+ // First try owner password
139
+ await validatePasswordHash(ownerPassword, o, u);
140
+ const hash = await computeAlgorithm2bHash(ownerPassword, o.subarray(40, 48), u);
141
+ const key = await aes256CbcNoPaddingDecrypt(hash, oe, new Uint8Array(16));
142
+ return key;
143
+ }
144
+ catch (e) {
145
+ try {
146
+ // Then try user password
147
+ await validatePasswordHash(userPassword, u);
148
+ const hash = await computeAlgorithm2bHash(userPassword, u.subarray(40, 48));
149
+ const key = await aes256CbcNoPaddingDecrypt(hash, ue, new Uint8Array(16));
150
+ return key;
151
+ }
152
+ catch (e) {
153
+ throw new Error('Invalid password');
154
+ }
155
+ }
156
+ }
@@ -0,0 +1,42 @@
1
+ import { ByteArray } from '../../types.js';
2
+ /**
3
+ * Pads a password to exactly 32 bytes using the PDF standard padding.
4
+ * If the password is shorter than 32 bytes, it is padded with bytes from DEFAULT_PADDING.
5
+ * If the password is 32 bytes or longer, only the first 32 bytes are used.
6
+ *
7
+ * @param password - The password to pad.
8
+ * @returns A 32-byte padded password.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const padded = padPassword(new Uint8Array([1, 2, 3])) // Returns 32-byte array
13
+ * ```
14
+ */
15
+ export declare function padPassword(password: ByteArray): ByteArray;
16
+ /**
17
+ * Compute the master encryption key for a PDF file.
18
+ *
19
+ * @param password User-supplied password (empty if no password)
20
+ * @param ownerKey Owner key (/O value)
21
+ * @param permissions /P value
22
+ * @param id0 First element of /ID array
23
+ * @param keyLengthBits Usually 40, 128 or 256
24
+ * @param encryptMetadata Whether /EncryptMetadata is false
25
+ */
26
+ export declare function computeMasterKey(password: ByteArray, ownerKey: ByteArray, permissions: number, id0: ByteArray, keyLengthBits: number, encryptMetadata: boolean, revision?: number): Promise<ByteArray>;
27
+ /**
28
+ * Derives an object-specific encryption key from the master key.
29
+ * Used to encrypt individual PDF objects with unique keys.
30
+ *
31
+ * @param mkey - The master encryption key.
32
+ * @param objNumber - The PDF object number.
33
+ * @param objGeneration - The PDF object generation number.
34
+ * @param useAesSalt - Whether to include the AES salt ('sAlT'). Defaults to true.
35
+ * @returns A promise that resolves to the derived object key.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const objectKey = await deriveObjectKey(masterKey, 5, 0)
40
+ * ```
41
+ */
42
+ export declare function deriveObjectKey(mkey: ByteArray, objNumber: number, objGeneration: number, useAesSalt?: boolean): Promise<ByteArray>;