pdf-lite 1.0.1-alpha.2 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,100 @@
1
+ import { PdfToken } from '../tokens/token';
2
+ import { PdfDictionary } from './pdf-dictionary';
3
+ import { PdfObject } from './pdf-object';
4
+ import { ByteArray } from '../../types';
5
+ import { PdfNumber } from './pdf-number';
6
+ import { PdfIndirectObject } from './pdf-indirect-object';
7
+ import { PdfXRefTableEntry } from './pdf-xref-table';
8
+ import { PdfFilter, PdfStreamFilterType } from '../../filters/types';
9
+ export declare class PdfStream<T extends PdfDictionary = PdfDictionary> extends PdfObject {
10
+ header: T;
11
+ original: ByteArray;
12
+ preStreamDataTokens?: PdfToken[];
13
+ postStreamDataTokens?: PdfToken[];
14
+ constructor(options: {
15
+ header: T;
16
+ original: ByteArray | string;
17
+ isModified?: boolean;
18
+ } | ByteArray | string);
19
+ get raw(): ByteArray;
20
+ set raw(data: ByteArray);
21
+ get originalAsString(): string;
22
+ get rawAsString(): string;
23
+ getFilters(): PdfStreamFilterType[];
24
+ addFilter(filterName: PdfStreamFilterType): this;
25
+ setPredictor(predictorParams: {
26
+ Predictor?: number;
27
+ Columns?: number;
28
+ Colors?: number;
29
+ BitsPerComponent?: number;
30
+ }): this;
31
+ removeFilter(filterName: PdfStreamFilterType): this;
32
+ removePredictor(): this;
33
+ removeAllFilters(): this;
34
+ decode(): ByteArray;
35
+ parseAs<T extends PdfStream>(Class: new (options: {
36
+ header: PdfDictionary;
37
+ original: ByteArray;
38
+ isModified?: boolean;
39
+ }) => T): T;
40
+ protected tokenize(): PdfToken[];
41
+ isType(name: string): boolean;
42
+ static getFilter(name: PdfStreamFilterType): PdfFilter;
43
+ static getAllFilters(): {
44
+ readonly FlateDecode: PdfFilter;
45
+ readonly Fl: PdfFilter;
46
+ readonly ASCIIHexDecode: PdfFilter;
47
+ readonly ASCII85Decode: PdfFilter;
48
+ readonly LZWDecode: PdfFilter;
49
+ readonly RunLengthDecode: PdfFilter;
50
+ readonly CCITTFaxDecode: PdfFilter;
51
+ readonly DCTDecode: PdfFilter;
52
+ readonly JPXDecode: PdfFilter;
53
+ readonly Crypt: PdfFilter;
54
+ };
55
+ static applyFilters(data: ByteArray, filters: PdfStreamFilterType[]): ByteArray;
56
+ clone(): this;
57
+ }
58
+ export declare class PdfObjStream extends PdfStream {
59
+ constructor(options: {
60
+ header: PdfDictionary;
61
+ original: ByteArray | string;
62
+ isModified?: boolean;
63
+ });
64
+ static fromObjects(objects: Iterable<PdfIndirectObject>): PdfObjStream;
65
+ getObjectStream(): Generator<PdfIndirectObject>;
66
+ getObject(options: {
67
+ objectNumber: number;
68
+ }): PdfIndirectObject | undefined;
69
+ getObjects(): PdfIndirectObject[];
70
+ clone(): this;
71
+ }
72
+ export declare class PdfXRefStreamCompressedEntry {
73
+ objectNumber: PdfNumber;
74
+ objectStreamNumber: PdfNumber;
75
+ index: PdfNumber;
76
+ constructor(options: {
77
+ objectNumber: number | PdfNumber;
78
+ objectStreamNumber: number | PdfNumber;
79
+ index: number | PdfNumber;
80
+ });
81
+ }
82
+ export type PdfXRefStreamStandardEntry = PdfXRefTableEntry;
83
+ export declare const PdfXRefStreamStandardEntry: typeof PdfXRefTableEntry;
84
+ export type PdfXRefStreamEntry = PdfXRefStreamStandardEntry | PdfXRefStreamCompressedEntry;
85
+ export declare class PdfXRefStream extends PdfStream {
86
+ constructor(options?: {
87
+ header?: PdfDictionary;
88
+ original?: ByteArray | string;
89
+ isModified?: boolean;
90
+ });
91
+ static createNewHeader(): PdfDictionary;
92
+ static fromEntries(entries: PdfXRefStreamEntry[], headerDict?: PdfDictionary): PdfXRefStream;
93
+ addEntry(entry: PdfXRefStreamEntry): this;
94
+ private static calculateW;
95
+ get prev(): PdfNumber | undefined;
96
+ getEntryStream(): Generator<PdfXRefStreamEntry>;
97
+ getEntries(): PdfXRefStreamEntry[];
98
+ private readInt;
99
+ clone(): this;
100
+ }
@@ -0,0 +1,521 @@
1
+ import { PdfEndStreamToken } from '../tokens/end-stream-token';
2
+ import { PdfStartStreamToken } from '../tokens/start-stream-token';
3
+ import { PdfStreamChunkToken } from '../tokens/stream-chunk-token';
4
+ import { PdfDictionary } from './pdf-dictionary';
5
+ import { PdfObject } from './pdf-object';
6
+ import { PdfName } from './pdf-name';
7
+ import { PdfArray } from './pdf-array';
8
+ import { flate } from '../../filters/flate';
9
+ import { asciiHex } from '../../filters/asciihex';
10
+ import { ascii85 } from '../../filters/ascii85';
11
+ import { lzw } from '../../filters/lzw';
12
+ import { runLength } from '../../filters/runlength';
13
+ import { passthroughFilter } from '../../filters/pass-through';
14
+ import { PdfNumber } from './pdf-number';
15
+ import { Predictor } from '../../utils/predictors';
16
+ import { bytesToPdfObjects } from '../generators';
17
+ import { PdfIndirectObject } from './pdf-indirect-object';
18
+ import { PdfXRefTableEntry } from './pdf-xref-table';
19
+ import { stringToBytes } from '../../utils/stringToBytes';
20
+ export class PdfStream extends PdfObject {
21
+ header;
22
+ original;
23
+ preStreamDataTokens;
24
+ postStreamDataTokens;
25
+ constructor(options) {
26
+ super();
27
+ if (typeof options === 'string' || options instanceof Uint8Array) {
28
+ options = { header: new PdfDictionary(), original: options };
29
+ }
30
+ this.header = options.header;
31
+ this.modified = options.isModified ?? true;
32
+ this.original =
33
+ typeof options.original === 'string'
34
+ ? stringToBytes(options.original)
35
+ : options.original;
36
+ if (!this.header.get('Length')) {
37
+ this.header.set('Length', new PdfNumber(this.original.length));
38
+ }
39
+ }
40
+ get raw() {
41
+ const length = this.header.get('Length')?.as(PdfNumber)?.value;
42
+ if (length === undefined)
43
+ return this.original;
44
+ return this.original.slice(0, length);
45
+ }
46
+ set raw(data) {
47
+ this.setModified();
48
+ this.original = data;
49
+ this.header.set('Length', new PdfNumber(data.length));
50
+ }
51
+ get originalAsString() {
52
+ return new TextDecoder().decode(this.original);
53
+ }
54
+ get rawAsString() {
55
+ return new TextDecoder().decode(this.raw);
56
+ }
57
+ getFilters() {
58
+ const filters = this.header.get('Filter');
59
+ if (!filters) {
60
+ return [];
61
+ }
62
+ if (filters instanceof PdfName) {
63
+ return [filters.value];
64
+ }
65
+ else if (filters instanceof PdfArray) {
66
+ return filters.items.map((item) => item.value);
67
+ }
68
+ else {
69
+ throw new Error('Invalid Filter entry in PDF stream');
70
+ }
71
+ }
72
+ addFilter(filterName) {
73
+ const filters = this.header.get('Filter');
74
+ if (!filters) {
75
+ this.header.set('Filter', new PdfName(filterName));
76
+ }
77
+ else if (filters instanceof PdfName) {
78
+ this.header.set('Filter', new PdfArray([new PdfName(filterName), filters]));
79
+ }
80
+ else if (filters instanceof PdfArray) {
81
+ filters.items.unshift(new PdfName(filterName));
82
+ }
83
+ else {
84
+ throw new Error('Invalid Filter entry in PDF stream');
85
+ }
86
+ const filter = PdfStream.getFilter(filterName);
87
+ this.raw = filter.encode(this.raw);
88
+ return this;
89
+ }
90
+ setPredictor(predictorParams) {
91
+ let decodeParms = this.header.get('DecodeParms')?.as(PdfDictionary);
92
+ if (!decodeParms) {
93
+ decodeParms = new PdfDictionary();
94
+ this.header.set('DecodeParms', decodeParms);
95
+ }
96
+ else if (decodeParms instanceof PdfDictionary) {
97
+ // already a dictionary
98
+ }
99
+ else {
100
+ throw new Error('Invalid DecodeParms entry in PDF stream');
101
+ }
102
+ for (const [key, value] of Object.entries(predictorParams)) {
103
+ decodeParms.set(key, new PdfNumber(value));
104
+ }
105
+ this.raw = Predictor.encode(this.raw, predictorParams);
106
+ return this;
107
+ }
108
+ removeFilter(filterName) {
109
+ let filters = this.header.get('Filter');
110
+ if (!filters) {
111
+ return this;
112
+ }
113
+ const decoded = this.decode();
114
+ if (filters instanceof PdfName) {
115
+ if (filters.value === filterName) {
116
+ this.header.delete('Filter');
117
+ }
118
+ }
119
+ else if (filters instanceof PdfArray) {
120
+ filters.items = filters.items.filter((item) => item.value !== filterName);
121
+ if (filters.items.length === 0) {
122
+ this.header.delete('Filter');
123
+ }
124
+ else if (filters.items.length === 1) {
125
+ this.header.set('Filter', filters.items[0]);
126
+ }
127
+ }
128
+ else {
129
+ throw new Error('Invalid Filter entry in PDF stream');
130
+ }
131
+ const finalFilters = this.getFilters();
132
+ const encoded = PdfStream.applyFilters(decoded, finalFilters);
133
+ this.raw = encoded;
134
+ return this;
135
+ }
136
+ removePredictor() {
137
+ const decoded = this.decode();
138
+ this.header.delete('DecodeParms');
139
+ this.raw = decoded;
140
+ return this;
141
+ }
142
+ removeAllFilters() {
143
+ const decoded = this.decode();
144
+ this.raw = decoded;
145
+ this.header.delete('Filter');
146
+ return this;
147
+ }
148
+ decode() {
149
+ let data = this.raw;
150
+ const filters = this.getFilters();
151
+ for (const filterName of filters) {
152
+ const filter = PdfStream.getFilter(filterName);
153
+ data = filter.decode(data);
154
+ }
155
+ const predictorParams = Predictor.getDecodeParms(this.header.get('DecodeParms')?.as(PdfDictionary));
156
+ if (predictorParams) {
157
+ data = Predictor.decode(data, predictorParams);
158
+ }
159
+ return data;
160
+ }
161
+ parseAs(Class) {
162
+ const instance = new Class({
163
+ header: this.header,
164
+ original: this.original,
165
+ isModified: this.isModified(),
166
+ });
167
+ instance.preTokens = this.preTokens;
168
+ instance.postTokens = this.postTokens;
169
+ instance.preStreamDataTokens = this.preStreamDataTokens;
170
+ instance.postStreamDataTokens = this.postStreamDataTokens;
171
+ return instance;
172
+ }
173
+ tokenize() {
174
+ return [
175
+ ...this.header.toTokens(),
176
+ PdfStartStreamToken.withTrailingWhitespace(this.preStreamDataTokens),
177
+ new PdfStreamChunkToken(this.original),
178
+ new PdfEndStreamToken(),
179
+ ];
180
+ }
181
+ isType(name) {
182
+ const type = this.header.get('Type');
183
+ return type instanceof PdfName && type.value === name;
184
+ }
185
+ static getFilter(name) {
186
+ const allFilters = PdfStream.getAllFilters();
187
+ if (!allFilters[name]) {
188
+ throw new Error(`Unsupported filter: ${name}`);
189
+ }
190
+ return allFilters[name];
191
+ }
192
+ static getAllFilters() {
193
+ return {
194
+ FlateDecode: flate(),
195
+ Fl: flate(),
196
+ ASCIIHexDecode: asciiHex(),
197
+ ASCII85Decode: ascii85(),
198
+ LZWDecode: lzw(),
199
+ RunLengthDecode: runLength(),
200
+ CCITTFaxDecode: passthroughFilter(),
201
+ DCTDecode: passthroughFilter(),
202
+ JPXDecode: passthroughFilter(),
203
+ Crypt: passthroughFilter(),
204
+ };
205
+ }
206
+ static applyFilters(data, filters) {
207
+ let result = data;
208
+ for (const filterName of filters) {
209
+ const filter = PdfStream.getFilter(filterName);
210
+ if (!filter) {
211
+ throw new Error(`Unsupported filter: ${filterName}`);
212
+ }
213
+ result = filter.encode(result);
214
+ }
215
+ return result;
216
+ }
217
+ clone() {
218
+ return new PdfStream({
219
+ header: this.header.clone(),
220
+ original: new Uint8Array(this.original),
221
+ });
222
+ }
223
+ }
224
+ export class PdfObjStream extends PdfStream {
225
+ constructor(options) {
226
+ super(options);
227
+ if (!this.isType('ObjStm')) {
228
+ throw new Error('PDF Object Stream must be of type ObjStm');
229
+ }
230
+ }
231
+ static fromObjects(objects) {
232
+ let header = '';
233
+ let objectData = '';
234
+ let offset = 0;
235
+ for (const obj of objects) {
236
+ header += `${obj.objectNumber} ${offset} `;
237
+ const objString = obj.content.toString();
238
+ objectData += objString + '\n';
239
+ offset += objString.length + 1;
240
+ }
241
+ const headerDict = new PdfDictionary();
242
+ headerDict.set('Type', new PdfName('ObjStm'));
243
+ headerDict.set('N', new PdfNumber(header.length));
244
+ headerDict.set('First', new PdfNumber(offset));
245
+ objectData = `${header.trim()}\n${objectData.trim()}`;
246
+ return new PdfObjStream({
247
+ header: headerDict,
248
+ original: objectData,
249
+ });
250
+ }
251
+ *getObjectStream() {
252
+ const decodedData = this.decode();
253
+ const reader = bytesToPdfObjects([decodedData]);
254
+ const numbers = [];
255
+ let i = 0;
256
+ while (true) {
257
+ const { value: obj, done } = reader.next();
258
+ if (done)
259
+ break;
260
+ if (obj instanceof PdfDictionary) {
261
+ const objectNumber = numbers[i * 2].value;
262
+ const generationNumber = 0;
263
+ yield new PdfIndirectObject({
264
+ objectNumber,
265
+ generationNumber,
266
+ content: obj,
267
+ });
268
+ i++;
269
+ }
270
+ else if (obj instanceof PdfNumber) {
271
+ numbers.push(obj);
272
+ }
273
+ else {
274
+ throw new Error('Invalid object in PDF Object Stream');
275
+ }
276
+ }
277
+ }
278
+ getObject(options) {
279
+ for (const obj of this.getObjectStream()) {
280
+ if (obj.objectNumber === options.objectNumber) {
281
+ return obj;
282
+ }
283
+ }
284
+ return undefined;
285
+ }
286
+ getObjects() {
287
+ return Array.from(this.getObjectStream());
288
+ }
289
+ clone() {
290
+ return new PdfObjStream({
291
+ header: this.header.clone(),
292
+ original: new Uint8Array(this.original),
293
+ });
294
+ }
295
+ }
296
+ export class PdfXRefStreamCompressedEntry {
297
+ objectNumber;
298
+ objectStreamNumber;
299
+ index;
300
+ constructor(options) {
301
+ this.objectNumber =
302
+ options.objectNumber instanceof PdfNumber
303
+ ? options.objectNumber
304
+ : new PdfNumber(options.objectNumber);
305
+ this.objectStreamNumber =
306
+ options.objectStreamNumber instanceof PdfNumber
307
+ ? options.objectStreamNumber
308
+ : new PdfNumber(options.objectStreamNumber);
309
+ this.index =
310
+ options.index instanceof PdfNumber
311
+ ? options.index
312
+ : new PdfNumber(options.index);
313
+ }
314
+ }
315
+ export const PdfXRefStreamStandardEntry = PdfXRefTableEntry;
316
+ export class PdfXRefStream extends PdfStream {
317
+ constructor(options) {
318
+ super({
319
+ header: options?.header ?? PdfXRefStream.createNewHeader(),
320
+ original: options?.original ?? new Uint8Array(),
321
+ isModified: options?.isModified,
322
+ });
323
+ if (!this.isType('XRef')) {
324
+ throw new Error('PDF XRef Stream must be of type XRef');
325
+ }
326
+ }
327
+ static createNewHeader() {
328
+ const headerDict = new PdfDictionary();
329
+ headerDict.set('Type', new PdfName('XRef'));
330
+ headerDict.set('W', new PdfArray([
331
+ new PdfNumber(1),
332
+ new PdfNumber(4),
333
+ new PdfNumber(2),
334
+ ]));
335
+ headerDict.set('Size', new PdfNumber(0));
336
+ return headerDict;
337
+ }
338
+ static fromEntries(entries, headerDict = new PdfDictionary()) {
339
+ headerDict.delete('DecodeParms');
340
+ headerDict.delete('Filter');
341
+ headerDict.set('Type', new PdfName('XRef'));
342
+ entries.sort((a, b) => a.objectNumber.value - b.objectNumber.value);
343
+ const W = this.calculateW(entries);
344
+ headerDict.set('W', new PdfArray(W.map((w) => new PdfNumber(w))));
345
+ // Build Index array - pairs of [start, count] for each contiguous range
346
+ const indexArray = [];
347
+ if (entries.length > 0) {
348
+ let rangeStart = entries[0].objectNumber.value;
349
+ let rangeCount = 1;
350
+ for (let i = 1; i < entries.length; i++) {
351
+ const currentNum = entries[i].objectNumber.value;
352
+ const prevNum = entries[i - 1].objectNumber.value;
353
+ if (currentNum === prevNum + 1) {
354
+ // Contiguous - extend current range
355
+ rangeCount++;
356
+ }
357
+ else {
358
+ // Gap found - save current range and start new one
359
+ indexArray.push(rangeStart, rangeCount);
360
+ rangeStart = currentNum;
361
+ rangeCount = 1;
362
+ }
363
+ }
364
+ // Add final range
365
+ indexArray.push(rangeStart, rangeCount);
366
+ }
367
+ headerDict.set('Index', new PdfArray(indexArray.map((num) => new PdfNumber(num))));
368
+ const size = entries.length === 0
369
+ ? 0
370
+ : Math.max(...entries.map((entry) => entry.objectNumber.value)) + 1;
371
+ headerDict.set('Size', new PdfNumber(size));
372
+ // Encode entries to bytes
373
+ const entrySize = W.reduce((a, b) => a + b, 0);
374
+ const streamBytes = new Uint8Array(entries.length * entrySize);
375
+ let offset = 0;
376
+ for (const entry of entries) {
377
+ const typeByte = entry instanceof PdfXRefTableEntry ? (entry.inUse ? 1 : 0) : 2;
378
+ let field1 = typeByte;
379
+ let field2 = 0;
380
+ let field3 = 0;
381
+ if (entry instanceof PdfXRefTableEntry) {
382
+ field2 = entry.byteOffset.value;
383
+ field3 = entry.generationNumber.value;
384
+ }
385
+ else if (entry instanceof PdfXRefStreamCompressedEntry) {
386
+ field2 = entry.objectStreamNumber.value;
387
+ field3 = entry.index.value;
388
+ }
389
+ for (let i = 0; i < W[0]; i++) {
390
+ streamBytes[offset++] = (field1 >> (8 * (W[0] - 1 - i))) & 0xff;
391
+ }
392
+ for (let i = 0; i < W[1]; i++) {
393
+ streamBytes[offset++] = (field2 >> (8 * (W[1] - 1 - i))) & 0xff;
394
+ }
395
+ for (let i = 0; i < W[2]; i++) {
396
+ streamBytes[offset++] = (field3 >> (8 * (W[2] - 1 - i))) & 0xff;
397
+ }
398
+ }
399
+ const rawData = new Uint8Array(streamBytes);
400
+ headerDict.set('Length', new PdfNumber(rawData.length));
401
+ return new PdfXRefStream({
402
+ header: headerDict,
403
+ original: rawData,
404
+ });
405
+ }
406
+ addEntry(entry) {
407
+ const entries = this.getEntries();
408
+ entries.push(entry);
409
+ const newXRefStream = PdfXRefStream.fromEntries(entries);
410
+ this.header = newXRefStream.header;
411
+ this.raw = newXRefStream.raw;
412
+ return this;
413
+ }
414
+ static calculateW(entries) {
415
+ let maxGeneration = 0;
416
+ const maxOffset = Math.max(...entries.map((entry) => {
417
+ let value = 0;
418
+ if (entry instanceof PdfXRefTableEntry) {
419
+ value = entry.byteOffset.value;
420
+ maxGeneration = Math.max(maxGeneration, entry.generationNumber.value);
421
+ }
422
+ else if (entry instanceof PdfXRefStreamCompressedEntry) {
423
+ value = entry.objectStreamNumber.value;
424
+ }
425
+ return value;
426
+ }));
427
+ const W1 = 1; // Type byte
428
+ const W2 = maxOffset === -1 ? 0 : Math.ceil(Math.log2(maxOffset + 1) / 8) || 1; // Offset or next free
429
+ const W3 = Math.ceil(Math.log2(maxGeneration + 1) / 8) || 1; // Generation number or index
430
+ return [W1, W2, W3];
431
+ }
432
+ get prev() {
433
+ const prev = this.header.get('Prev');
434
+ return prev instanceof PdfNumber ? prev : undefined;
435
+ }
436
+ *getEntryStream() {
437
+ const data = this.decode();
438
+ const header = this.header;
439
+ const W = header
440
+ .get('W')
441
+ ?.as((PdfArray))
442
+ ?.items?.map((v) => v.value);
443
+ if (!W)
444
+ throw new Error('Missing W entry in XRef stream');
445
+ if (W.length !== 3) {
446
+ throw new Error('Invalid W entry in XRef stream. Expected array of 3 numbers.');
447
+ }
448
+ const entrySize = W[0] + W[1] + W[2];
449
+ const Index = header
450
+ .get('Index')
451
+ ?.as((PdfArray))
452
+ ?.items?.map((v) => v.value);
453
+ const Size = header.get('Size').as(PdfNumber).value;
454
+ const objectRanges = Index
455
+ ? Array.from({ length: Index.length / 2 }, (_, i) => [
456
+ Index[i * 2],
457
+ Index[i * 2 + 1],
458
+ ])
459
+ : [[0, Size]];
460
+ const expectedLength = objectRanges.reduce((sum, [, count]) => sum + count, 0) * entrySize;
461
+ if (data.length < expectedLength) {
462
+ throw new Error(`XRef stream too short: expected ${expectedLength} bytes, got ${data.length}`);
463
+ }
464
+ let offset = 0;
465
+ for (const [startObj, count] of objectRanges) {
466
+ for (let i = 0; i < count; i++) {
467
+ const objectNumber = startObj + i;
468
+ const type = this.readInt(data, offset, W[0]);
469
+ offset += W[0];
470
+ const field2 = this.readInt(data, offset, W[1]);
471
+ offset += W[1];
472
+ const field3 = this.readInt(data, offset, W[2]);
473
+ offset += W[2];
474
+ let entry;
475
+ if (type === 0) {
476
+ entry = new PdfXRefTableEntry({
477
+ objectNumber,
478
+ generationNumber: field3,
479
+ byteOffset: field2,
480
+ inUse: false,
481
+ });
482
+ }
483
+ else if (type === 1) {
484
+ entry = new PdfXRefTableEntry({
485
+ objectNumber,
486
+ generationNumber: field3,
487
+ byteOffset: field2,
488
+ inUse: true,
489
+ });
490
+ }
491
+ else if (type === 2) {
492
+ entry = new PdfXRefStreamCompressedEntry({
493
+ objectNumber,
494
+ objectStreamNumber: field2,
495
+ index: field3,
496
+ });
497
+ }
498
+ else {
499
+ throw new Error(`Unknown xref entry type: ${type}`);
500
+ }
501
+ yield entry;
502
+ }
503
+ }
504
+ }
505
+ getEntries() {
506
+ return Array.from(this.getEntryStream());
507
+ }
508
+ readInt(data, offset, length) {
509
+ let value = 0;
510
+ for (let i = 0; i < length; i++) {
511
+ value = (value << 8) | data[offset + i];
512
+ }
513
+ return value;
514
+ }
515
+ clone() {
516
+ return new PdfXRefStream({
517
+ header: this.header.clone(),
518
+ original: new Uint8Array(this.original),
519
+ });
520
+ }
521
+ }
@@ -0,0 +1,15 @@
1
+ import { ByteArray } from '../../types';
2
+ import { PdfStringToken } from '../tokens/string-token';
3
+ import { PdfObject } from './pdf-object';
4
+ export declare class PdfString extends PdfObject {
5
+ /**
6
+ * The raw bytes of the PDF string.
7
+ */
8
+ private _raw;
9
+ constructor(raw: ByteArray | string);
10
+ get raw(): ByteArray;
11
+ set raw(raw: ByteArray);
12
+ get value(): string;
13
+ protected tokenize(): PdfStringToken[];
14
+ clone(): this;
15
+ }
@@ -0,0 +1,30 @@
1
+ import { bytesToString } from '../../utils/bytesToString';
2
+ import { stringToBytes } from '../../utils/stringToBytes';
3
+ import { PdfStringToken } from '../tokens/string-token';
4
+ import { PdfObject } from './pdf-object';
5
+ export class PdfString extends PdfObject {
6
+ /**
7
+ * The raw bytes of the PDF string.
8
+ */
9
+ _raw;
10
+ constructor(raw) {
11
+ super();
12
+ this._raw = typeof raw === 'string' ? stringToBytes(raw) : raw;
13
+ }
14
+ get raw() {
15
+ return this._raw;
16
+ }
17
+ set raw(raw) {
18
+ this.setModified();
19
+ this._raw = raw;
20
+ }
21
+ get value() {
22
+ return bytesToString(this.raw);
23
+ }
24
+ tokenize() {
25
+ return [new PdfStringToken(this.raw)];
26
+ }
27
+ clone() {
28
+ return new PdfString(new Uint8Array(this.raw));
29
+ }
30
+ }
@@ -0,0 +1,26 @@
1
+ import { Ref } from '../ref';
2
+ import { PdfToken } from '../tokens/token';
3
+ import { PdfArray } from './pdf-array';
4
+ import { PdfDictionary } from './pdf-dictionary';
5
+ import { PdfHexadecimal } from './pdf-hexadecimal';
6
+ import { PdfNumber } from './pdf-number';
7
+ import { PdfObject } from './pdf-object';
8
+ import { PdfObjectReference } from './pdf-object-reference';
9
+ export type PdfTrailerEntries = {
10
+ Size: PdfNumber;
11
+ Root?: PdfObjectReference;
12
+ Info?: PdfObjectReference;
13
+ Prev?: PdfNumber;
14
+ XRefStm?: PdfNumber;
15
+ Encrypt?: PdfObjectReference;
16
+ ID?: PdfArray<PdfHexadecimal>;
17
+ };
18
+ export type PdfTrailerDictionary = PdfDictionary<PdfTrailerEntries>;
19
+ export declare class PdfTrailer extends PdfObject {
20
+ dict: PdfTrailerDictionary;
21
+ offset: Ref<number>;
22
+ constructor(entries: PdfTrailerEntries | PdfDictionary<PdfTrailerEntries>);
23
+ protected tokenize(): PdfToken[];
24
+ clone(): this;
25
+ isModified(): boolean;
26
+ }