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.
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
@@ -1,9 +1,7 @@
1
- import { DEFAULT_PADDING } from '../constants.js'
2
- import { md5 } from '../../utils/algos.js'
3
- import { int32ToLittleEndianBytes } from '../utils.js'
4
- import { concatUint8Arrays } from '../../utils/concatUint8Arrays.js'
5
- import { ByteArray } from '../../types.js'
6
-
1
+ import { DEFAULT_PADDING } from '../constants.js';
2
+ import { md5 } from '../../utils/algos.js';
3
+ import { int32ToLittleEndianBytes } from '../utils.js';
4
+ import { concatUint8Arrays } from '../../utils/concatUint8Arrays.js';
7
5
  /**
8
6
  * Pads a password to exactly 32 bytes using the PDF standard padding.
9
7
  * If the password is shorter than 32 bytes, it is padded with bytes from DEFAULT_PADDING.
@@ -17,20 +15,17 @@ import { ByteArray } from '../../types.js'
17
15
  * const padded = padPassword(new Uint8Array([1, 2, 3])) // Returns 32-byte array
18
16
  * ```
19
17
  */
20
- export function padPassword(password: ByteArray): ByteArray {
21
- const padded = new Uint8Array(32)
18
+ export function padPassword(password) {
19
+ const padded = new Uint8Array(32);
22
20
  if (password.length >= 32) {
23
- padded.set(password.subarray(0, 32))
24
- } else {
25
- padded.set(password)
26
- padded.set(
27
- DEFAULT_PADDING.subarray(0, 32 - password.length),
28
- password.length,
29
- )
21
+ padded.set(password.subarray(0, 32));
30
22
  }
31
- return padded
23
+ else {
24
+ padded.set(password);
25
+ padded.set(DEFAULT_PADDING.subarray(0, 32 - password.length), password.length);
26
+ }
27
+ return padded;
32
28
  }
33
-
34
29
  /**
35
30
  * Compute the master encryption key for a PDF file.
36
31
  *
@@ -41,46 +36,28 @@ export function padPassword(password: ByteArray): ByteArray {
41
36
  * @param keyLengthBits Usually 40, 128 or 256
42
37
  * @param encryptMetadata Whether /EncryptMetadata is false
43
38
  */
44
- export async function computeMasterKey(
45
- password: ByteArray,
46
- ownerKey: ByteArray,
47
- permissions: number,
48
- id0: ByteArray,
49
- keyLengthBits: number,
50
- encryptMetadata: boolean,
51
- revision: number = 3,
52
- ): Promise<ByteArray> {
39
+ export async function computeMasterKey(password, ownerKey, permissions, id0, keyLengthBits, encryptMetadata, revision = 3) {
53
40
  if (keyLengthBits % 8 !== 0) {
54
- throw new Error(
55
- `keyLengthBits must be a multiple of 8, got ${keyLengthBits}`,
56
- )
41
+ throw new Error(`keyLengthBits must be a multiple of 8, got ${keyLengthBits}`);
57
42
  }
58
-
59
- const keyLengthBytes = keyLengthBits / 8
60
-
61
- const paddedPassword = padPassword(password)
62
- const permissionsBytes = int32ToLittleEndianBytes(permissions)
63
-
64
- const hashInputParts = [paddedPassword, ownerKey, permissionsBytes, id0]
65
-
43
+ const keyLengthBytes = keyLengthBits / 8;
44
+ const paddedPassword = padPassword(password);
45
+ const permissionsBytes = int32ToLittleEndianBytes(permissions);
46
+ const hashInputParts = [paddedPassword, ownerKey, permissionsBytes, id0];
66
47
  if (keyLengthBits > 40 && !encryptMetadata && revision >= 4) {
67
- hashInputParts.push(new Uint8Array([0xff, 0xff, 0xff, 0xff]))
48
+ hashInputParts.push(new Uint8Array([0xff, 0xff, 0xff, 0xff]));
68
49
  }
69
-
70
50
  // Initial MD5 hash
71
- let digest = await md5(concatUint8Arrays(...hashInputParts))
72
-
51
+ let digest = await md5(concatUint8Arrays(...hashInputParts));
73
52
  if (keyLengthBits > 40) {
74
53
  // Perform 50 iterations of MD5 rehash
75
54
  for (let i = 0; i < 50; i++) {
76
- digest = await md5(digest.subarray(0, keyLengthBytes))
55
+ digest = await md5(digest.subarray(0, keyLengthBytes));
77
56
  }
78
57
  }
79
-
80
58
  // Truncate to key length
81
- return digest.subarray(0, keyLengthBytes)
59
+ return digest.subarray(0, keyLengthBytes);
82
60
  }
83
-
84
61
  /**
85
62
  * Derives an object-specific encryption key from the master key.
86
63
  * Used to encrypt individual PDF objects with unique keys.
@@ -96,27 +73,19 @@ export async function computeMasterKey(
96
73
  * const objectKey = await deriveObjectKey(masterKey, 5, 0)
97
74
  * ```
98
75
  */
99
- export async function deriveObjectKey(
100
- mkey: ByteArray,
101
- objNumber: number,
102
- objGeneration: number,
103
- useAesSalt: boolean = true,
104
- ): Promise<ByteArray> {
105
- const extra = useAesSalt ? 4 : 0 // 4 extra bytes if AES salt
106
- const buffer = new Uint8Array(mkey.length + 5 + extra) // <--- make room for salt if needed
107
- buffer.set(mkey, 0)
108
- buffer[mkey.length + 0] = objNumber & 0xff
109
- buffer[mkey.length + 1] = (objNumber >> 8) & 0xff
110
- buffer[mkey.length + 2] = (objNumber >> 16) & 0xff
111
- buffer[mkey.length + 3] = objGeneration & 0xff
112
- buffer[mkey.length + 4] = (objGeneration >> 8) & 0xff
113
-
76
+ export async function deriveObjectKey(mkey, objNumber, objGeneration, useAesSalt = true) {
77
+ const extra = useAesSalt ? 4 : 0; // 4 extra bytes if AES salt
78
+ const buffer = new Uint8Array(mkey.length + 5 + extra); // <--- make room for salt if needed
79
+ buffer.set(mkey, 0);
80
+ buffer[mkey.length + 0] = objNumber & 0xff;
81
+ buffer[mkey.length + 1] = (objNumber >> 8) & 0xff;
82
+ buffer[mkey.length + 2] = (objNumber >> 16) & 0xff;
83
+ buffer[mkey.length + 3] = objGeneration & 0xff;
84
+ buffer[mkey.length + 4] = (objGeneration >> 8) & 0xff;
114
85
  if (useAesSalt) {
115
- buffer.set([0x73, 0x41, 0x6c, 0x54], mkey.length + 5) // append 'sAlT'
86
+ buffer.set([0x73, 0x41, 0x6c, 0x54], mkey.length + 5); // append 'sAlT'
116
87
  }
117
-
118
- const digest = await md5(buffer)
119
-
120
- const keySize = Math.min(mkey.length + 5, 16)
121
- return new Uint8Array(digest.subarray(0, keySize))
88
+ const digest = await md5(buffer);
89
+ const keySize = Math.min(mkey.length + 5, 16);
90
+ return new Uint8Array(digest.subarray(0, keySize));
122
91
  }
@@ -0,0 +1,36 @@
1
+ import { ByteArray } from '../../types.js';
2
+ /**
3
+ * Generates the /U and /UE values for AES-256 PDF encryption.
4
+ * These values are used to validate the user password and decrypt the file key.
5
+ *
6
+ * @param password - The user password.
7
+ * @param fileKey - The 32-byte file encryption key.
8
+ * @returns A promise that resolves to an object containing the 48-byte U and 32-byte UE values.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const { U, UE } = await generateUandUe(password, fileKey)
13
+ * ```
14
+ */
15
+ export declare function generateUandUe(password: ByteArray, fileKey: ByteArray): Promise<{
16
+ U: ByteArray;
17
+ UE: ByteArray;
18
+ }>;
19
+ /**
20
+ * Generates the /O and /OE values for AES-256 PDF encryption.
21
+ * These values are used to validate the owner password and decrypt the file key.
22
+ *
23
+ * @param password - The owner password.
24
+ * @param U - The 48-byte /U value (required for owner key derivation).
25
+ * @param fileKey - The 32-byte file encryption key.
26
+ * @returns A promise that resolves to an object containing the 48-byte O and 32-byte OE values.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const { O, OE } = await generateOandOe(ownerPassword, U, fileKey)
31
+ * ```
32
+ */
33
+ export declare function generateOandOe(password: ByteArray, U: ByteArray, fileKey: ByteArray): Promise<{
34
+ O: ByteArray;
35
+ OE: ByteArray;
36
+ }>;
@@ -1,8 +1,6 @@
1
- import { computeAlgorithm2bHash } from '../key-derivation/key-derivation-aes256.js'
2
- import { getRandomBytes } from '../../utils/algos.js'
3
- import { aes256CbcNoPaddingEncrypt } from '../../utils/algos.js'
4
- import { ByteArray } from '../../types.js'
5
-
1
+ import { computeAlgorithm2bHash } from '../key-derivation/key-derivation-aes256.js';
2
+ import { getRandomBytes } from '../../utils/algos.js';
3
+ import { aes256CbcNoPaddingEncrypt } from '../../utils/algos.js';
6
4
  /**
7
5
  * Generates the /U and /UE values for AES-256 PDF encryption.
8
6
  * These values are used to validate the user password and decrypt the file key.
@@ -16,29 +14,18 @@ import { ByteArray } from '../../types.js'
16
14
  * const { U, UE } = await generateUandUe(password, fileKey)
17
15
  * ```
18
16
  */
19
- export async function generateUandUe(
20
- password: ByteArray,
21
- fileKey: ByteArray,
22
- ): Promise<{ U: ByteArray; UE: ByteArray }> {
23
- const random = getRandomBytes(16)
24
- const userValidationSalt = random.subarray(0, 8)
25
- const userKeySalt = random.subarray(8, 16)
26
-
27
- const U = new Uint8Array(48)
28
- U.set(await computeAlgorithm2bHash(password, userValidationSalt))
29
- U.set(userValidationSalt, 32)
30
- U.set(userKeySalt, 40)
31
-
32
- const hash = await computeAlgorithm2bHash(password, userKeySalt)
33
- const UE = await aes256CbcNoPaddingEncrypt(
34
- hash,
35
- fileKey,
36
- new Uint8Array(16),
37
- )
38
-
39
- return { U, UE }
17
+ export async function generateUandUe(password, fileKey) {
18
+ const random = getRandomBytes(16);
19
+ const userValidationSalt = random.subarray(0, 8);
20
+ const userKeySalt = random.subarray(8, 16);
21
+ const U = new Uint8Array(48);
22
+ U.set(await computeAlgorithm2bHash(password, userValidationSalt));
23
+ U.set(userValidationSalt, 32);
24
+ U.set(userKeySalt, 40);
25
+ const hash = await computeAlgorithm2bHash(password, userKeySalt);
26
+ const UE = await aes256CbcNoPaddingEncrypt(hash, fileKey, new Uint8Array(16));
27
+ return { U, UE };
40
28
  }
41
-
42
29
  /**
43
30
  * Generates the /O and /OE values for AES-256 PDF encryption.
44
31
  * These values are used to validate the owner password and decrypt the file key.
@@ -53,27 +40,15 @@ export async function generateUandUe(
53
40
  * const { O, OE } = await generateOandOe(ownerPassword, U, fileKey)
54
41
  * ```
55
42
  */
56
- export async function generateOandOe(
57
- password: ByteArray,
58
- U: ByteArray,
59
- fileKey: ByteArray,
60
- ): Promise<{ O: ByteArray; OE: ByteArray }> {
61
- const random = getRandomBytes(16)
62
- const ownerValidationSalt = random.subarray(0, 8)
63
- const ownerKeySalt = random.subarray(8, 16)
64
-
65
- const O = new Uint8Array(48)
66
- O.set(await computeAlgorithm2bHash(password, ownerValidationSalt, U))
67
- O.set(ownerValidationSalt, 32)
68
- O.set(ownerKeySalt, 40)
69
-
70
- const hash = await computeAlgorithm2bHash(password, ownerKeySalt, U)
71
-
72
- const OE = await aes256CbcNoPaddingEncrypt(
73
- hash,
74
- fileKey,
75
- new Uint8Array(16),
76
- )
77
-
78
- return { O, OE }
43
+ export async function generateOandOe(password, U, fileKey) {
44
+ const random = getRandomBytes(16);
45
+ const ownerValidationSalt = random.subarray(0, 8);
46
+ const ownerKeySalt = random.subarray(8, 16);
47
+ const O = new Uint8Array(48);
48
+ O.set(await computeAlgorithm2bHash(password, ownerValidationSalt, U));
49
+ O.set(ownerValidationSalt, 32);
50
+ O.set(ownerKeySalt, 40);
51
+ const hash = await computeAlgorithm2bHash(password, ownerKeySalt, U);
52
+ const OE = await aes256CbcNoPaddingEncrypt(hash, fileKey, new Uint8Array(16));
53
+ return { O, OE };
79
54
  }
@@ -0,0 +1,47 @@
1
+ import { ByteArray } from '../../types';
2
+ /**
3
+ * Decrypts the user password from the /O value using RC4-128.
4
+ * Used to recover the user password when the owner password is known.
5
+ *
6
+ * @param ownerPw - The owner password.
7
+ * @param ownerKey - The /O value from the encryption dictionary.
8
+ * @returns A promise that resolves to the decrypted user password (with padding removed).
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const userPassword = await decryptUserPasswordRc4_128(ownerPw, O)
13
+ * ```
14
+ */
15
+ export declare function decryptUserPasswordRc4_128(ownerPw: ByteArray, ownerKey: ByteArray): Promise<ByteArray>;
16
+ /**
17
+ * Computes the /O value for RC4-128 PDF encryption.
18
+ * The /O value is used to verify the owner password.
19
+ *
20
+ * @param ownerPassword - The owner password.
21
+ * @param userPassword - The user password.
22
+ * @returns A promise that resolves to the 32-byte /O value.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const O = await computeOValueRc4_128(ownerPassword, userPassword)
27
+ * ```
28
+ */
29
+ export declare function computeOValueRc4_128(ownerPassword: ByteArray, userPassword: ByteArray): Promise<ByteArray>;
30
+ /**
31
+ * Computes the /U value for RC4-128 PDF encryption.
32
+ * The /U value is used to verify the user password.
33
+ *
34
+ * @param userPassword - The user password.
35
+ * @param oValue - The /O value.
36
+ * @param permissions - The /P value (permissions flags).
37
+ * @param id - The first element of the /ID array.
38
+ * @param encryptMetadata - Whether to encrypt metadata.
39
+ * @param revision - The encryption revision number.
40
+ * @returns A promise that resolves to the 32-byte /U value.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const U = await computeUValueRc4_128(userPassword, O, permissions, fileId, true)
45
+ * ```
46
+ */
47
+ export declare function computeUValueRc4_128(userPassword: ByteArray, oValue: ByteArray, permissions: number, id: ByteArray, encryptMetadata: boolean, revision?: number): Promise<ByteArray>;
@@ -1,11 +1,9 @@
1
- import { ByteArray } from '../../types'
2
- import { md5 } from '../../utils/algos'
3
- import { concatUint8Arrays } from '../../utils/concatUint8Arrays'
4
- import { rc4 } from '../ciphers/rc4'
5
- import { DEFAULT_PADDING } from '../constants'
6
- import { padPassword } from '../key-derivation/key-derivation'
7
- import { int32ToLittleEndianBytes, removePdfPasswordPadding } from '../utils'
8
-
1
+ import { md5 } from '../../utils/algos';
2
+ import { concatUint8Arrays } from '../../utils/concatUint8Arrays';
3
+ import { rc4 } from '../ciphers/rc4';
4
+ import { DEFAULT_PADDING } from '../constants';
5
+ import { padPassword } from '../key-derivation/key-derivation';
6
+ import { int32ToLittleEndianBytes, removePdfPasswordPadding } from '../utils';
9
7
  /**
10
8
  * Encrypts data with RC4 using the provided key.
11
9
  *
@@ -13,13 +11,9 @@ import { int32ToLittleEndianBytes, removePdfPasswordPadding } from '../utils'
13
11
  * @param data - The data to encrypt.
14
12
  * @returns A promise that resolves to the encrypted data.
15
13
  */
16
- async function rc4EncryptWithKey(
17
- key: ByteArray,
18
- data: ByteArray,
19
- ): Promise<ByteArray> {
20
- return await rc4(key).encrypt(data)
14
+ async function rc4EncryptWithKey(key, data) {
15
+ return await rc4(key).encrypt(data);
21
16
  }
22
-
23
17
  /**
24
18
  * Decrypts the user password from the /O value using RC4-128.
25
19
  * Used to recover the user password when the owner password is known.
@@ -33,27 +27,20 @@ async function rc4EncryptWithKey(
33
27
  * const userPassword = await decryptUserPasswordRc4_128(ownerPw, O)
34
28
  * ```
35
29
  */
36
- export async function decryptUserPasswordRc4_128(
37
- ownerPw: ByteArray,
38
- ownerKey: ByteArray,
39
- ): Promise<ByteArray> {
40
- const ownerPad = padPassword(ownerPw)
41
- let digest = await md5(ownerPad)
42
-
30
+ export async function decryptUserPasswordRc4_128(ownerPw, ownerKey) {
31
+ const ownerPad = padPassword(ownerPw);
32
+ let digest = await md5(ownerPad);
43
33
  for (let i = 0; i < 50; i++) {
44
- digest = await md5(digest)
34
+ digest = await md5(digest);
45
35
  }
46
-
47
- const key = digest.subarray(0, 16)
48
- let data = ownerKey
36
+ const key = digest.subarray(0, 16);
37
+ let data = ownerKey;
49
38
  for (let i = 0; i < 20; i++) {
50
- const roundKey = key.map((b) => b ^ i)
51
- data = await rc4EncryptWithKey(roundKey, data)
39
+ const roundKey = key.map((b) => b ^ i);
40
+ data = await rc4EncryptWithKey(roundKey, data);
52
41
  }
53
-
54
- return removePdfPasswordPadding(data)
42
+ return removePdfPasswordPadding(data);
55
43
  }
56
-
57
44
  /**
58
45
  * Computes the /O value for RC4-128 PDF encryption.
59
46
  * The /O value is used to verify the owner password.
@@ -67,30 +54,21 @@ export async function decryptUserPasswordRc4_128(
67
54
  * const O = await computeOValueRc4_128(ownerPassword, userPassword)
68
55
  * ```
69
56
  */
70
- export async function computeOValueRc4_128(
71
- ownerPassword: ByteArray,
72
- userPassword: ByteArray,
73
- ): Promise<ByteArray> {
74
- const oPad = padPassword(ownerPassword)
75
-
76
- let digest = await md5(oPad)
57
+ export async function computeOValueRc4_128(ownerPassword, userPassword) {
58
+ const oPad = padPassword(ownerPassword);
59
+ let digest = await md5(oPad);
77
60
  for (let i = 0; i < 50; i++) {
78
- digest = await md5(digest)
61
+ digest = await md5(digest);
79
62
  }
80
-
81
- const key = digest.subarray(0, 16)
82
-
83
- const uPad = padPassword(userPassword)
84
- let data = await rc4EncryptWithKey(key, uPad)
85
-
63
+ const key = digest.subarray(0, 16);
64
+ const uPad = padPassword(userPassword);
65
+ let data = await rc4EncryptWithKey(key, uPad);
86
66
  for (let i = 1; i <= 19; i++) {
87
- const roundKey = key.map((b) => b ^ i)
88
- data = await rc4EncryptWithKey(roundKey, data)
67
+ const roundKey = key.map((b) => b ^ i);
68
+ data = await rc4EncryptWithKey(roundKey, data);
89
69
  }
90
-
91
- return data
70
+ return data;
92
71
  }
93
-
94
72
  /**
95
73
  * Computes the 128-bit encryption key for RC4-128 PDF encryption.
96
74
  *
@@ -102,36 +80,17 @@ export async function computeOValueRc4_128(
102
80
  * @param revision - The encryption revision number.
103
81
  * @returns A promise that resolves to the 16-byte encryption key.
104
82
  */
105
- async function computeEncryptionKeyRc4_128(
106
- userPad: ByteArray,
107
- oValue: ByteArray,
108
- permissions: number,
109
- id: ByteArray,
110
- encryptMetadata: boolean,
111
- revision: number = 3,
112
- ): Promise<ByteArray> {
113
- const perms = int32ToLittleEndianBytes(permissions)
114
-
115
- let digest = await md5(
116
- concatUint8Arrays(
117
- userPad,
118
- oValue,
119
- perms,
120
- id,
121
- revision >= 4 && !encryptMetadata
122
- ? new Uint8Array([0xff, 0xff, 0xff, 0xff])
123
- : new Uint8Array(),
124
- ),
125
- )
126
-
83
+ async function computeEncryptionKeyRc4_128(userPad, oValue, permissions, id, encryptMetadata, revision = 3) {
84
+ const perms = int32ToLittleEndianBytes(permissions);
85
+ let digest = await md5(concatUint8Arrays(userPad, oValue, perms, id, revision >= 4 && !encryptMetadata
86
+ ? new Uint8Array([0xff, 0xff, 0xff, 0xff])
87
+ : new Uint8Array()));
127
88
  // 50 iterations
128
89
  for (let i = 0; i < 50; i++) {
129
- digest = await md5(digest)
90
+ digest = await md5(digest);
130
91
  }
131
-
132
- return digest.subarray(0, 16) // RC4-128
92
+ return digest.subarray(0, 16); // RC4-128
133
93
  }
134
-
135
94
  /**
136
95
  * Computes the /U value for RC4-128 PDF encryption.
137
96
  * The /U value is used to verify the user password.
@@ -149,42 +108,22 @@ async function computeEncryptionKeyRc4_128(
149
108
  * const U = await computeUValueRc4_128(userPassword, O, permissions, fileId, true)
150
109
  * ```
151
110
  */
152
- export async function computeUValueRc4_128(
153
- userPassword: ByteArray,
154
- oValue: ByteArray,
155
- permissions: number,
156
- id: ByteArray,
157
- encryptMetadata: boolean,
158
- revision?: number,
159
- ): Promise<ByteArray> {
160
- const userPad = padPassword(userPassword)
161
-
111
+ export async function computeUValueRc4_128(userPassword, oValue, permissions, id, encryptMetadata, revision) {
112
+ const userPad = padPassword(userPassword);
162
113
  // Step 1: Compute encryption key
163
- const encryptionKey = await computeEncryptionKeyRc4_128(
164
- userPad,
165
- oValue,
166
- permissions,
167
- id,
168
- encryptMetadata,
169
- revision,
170
- )
171
-
114
+ const encryptionKey = await computeEncryptionKeyRc4_128(userPad, oValue, permissions, id, encryptMetadata, revision);
172
115
  // Step 2 & 3: MD5 of padding + file ID
173
- const hash = await md5(concatUint8Arrays(DEFAULT_PADDING, id)) // 16 bytes
174
-
116
+ const hash = await md5(concatUint8Arrays(DEFAULT_PADDING, id)); // 16 bytes
175
117
  // Step 4: First RC4 encrypt with base key
176
- let data = await rc4EncryptWithKey(encryptionKey, hash)
177
-
118
+ let data = await rc4EncryptWithKey(encryptionKey, hash);
178
119
  // Step 5: 19 more rounds of RC4 with key XOR i
179
120
  for (let i = 1; i <= 19; i++) {
180
- const roundKey = encryptionKey.map((b) => b ^ i)
181
- data = await rc4EncryptWithKey(roundKey, data)
121
+ const roundKey = encryptionKey.map((b) => b ^ i);
122
+ data = await rc4EncryptWithKey(roundKey, data);
182
123
  }
183
-
184
124
  // Step 6: Append 16 more bytes (usually same padding again, or random)
185
- const result = new Uint8Array(32)
186
- result.set(data, 0)
187
- result.set(DEFAULT_PADDING.subarray(0, 16), 16)
188
-
189
- return result
125
+ const result = new Uint8Array(32);
126
+ result.set(data, 0);
127
+ result.set(DEFAULT_PADDING.subarray(0, 16), 16);
128
+ return result;
190
129
  }
@@ -0,0 +1,60 @@
1
+ import { ByteArray } from '../../types.js';
2
+ /**
3
+ * Decrypts the user password from the /O value using RC4-40.
4
+ * Used to recover the user password when the owner password is known.
5
+ *
6
+ * @param ownerPw - The owner password.
7
+ * @param ownerKey - The /O value from the encryption dictionary.
8
+ * @returns A promise that resolves to the decrypted user password (with padding removed).
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const userPassword = await decryptUserPasswordRc4_40(ownerPw, O)
13
+ * ```
14
+ */
15
+ export declare function decryptUserPasswordRc4_40(ownerPw: ByteArray, ownerKey: ByteArray): Promise<ByteArray>;
16
+ /**
17
+ * Computes the /O value for RC4-40 PDF encryption.
18
+ * The /O value is used to verify the owner password.
19
+ *
20
+ * @param ownerPw - The owner password.
21
+ * @param userPw - The user password.
22
+ * @returns A promise that resolves to the 32-byte /O value.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const O = await computeORc4_40(ownerPassword, userPassword)
27
+ * ```
28
+ */
29
+ export declare function computeORc4_40(ownerPw: ByteArray, userPw: ByteArray): Promise<ByteArray>;
30
+ /**
31
+ * Computes the 40-bit encryption key for RC4-40 PDF encryption.
32
+ *
33
+ * @param userPw - The user password.
34
+ * @param oValue - The /O value.
35
+ * @param permissions - The /P value (permissions flags).
36
+ * @param fileId - The first element of the /ID array.
37
+ * @returns A promise that resolves to the 5-byte (40-bit) encryption key.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const key = await computeEncryptionKeyRc4_40(userPw, O, permissions, fileId)
42
+ * ```
43
+ */
44
+ export declare function computeEncryptionKeyRc4_40(userPw: ByteArray, oValue: ByteArray, permissions: number, fileId: ByteArray): Promise<ByteArray>;
45
+ /**
46
+ * Computes the /U value for RC4-40 PDF encryption.
47
+ * The /U value is used to verify the user password.
48
+ *
49
+ * @param userPw - The user password.
50
+ * @param oValue - The /O value.
51
+ * @param permissions - The /P value (permissions flags).
52
+ * @param fileId - The first element of the /ID array.
53
+ * @returns A promise that resolves to the 32-byte /U value.
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const U = await computeURc4_40(userPassword, O, permissions, fileId)
58
+ * ```
59
+ */
60
+ export declare function computeURc4_40(userPw: ByteArray, oValue: ByteArray, permissions: number, fileId: ByteArray): Promise<ByteArray>;